Copy disabled (too large)
Download .txt
Showing preview only (29,885K chars total). Download the full file to get everything.
Repository: apache-superset/superset-ui
Branch: master
Commit: 881e25c7ee72
Files: 1265
Total size: 28.2 MB
Directory structure:
gitextract__11r4nww/
├── .eslintignore
├── .eslintrc.js
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── feature_request.md
│ │ └── question.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── config.yml
│ ├── dependabot.yml
│ ├── issue_label_bot.yaml
│ ├── semantic.yml
│ └── workflows/
│ ├── chromatic.yml
│ ├── ci.yml
│ ├── codecov.sh
│ └── release.yml
├── .gitignore
├── .nvmrc
├── .prettierignore
├── .rat-excludes
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── babel.config.js
├── codecov.yml
├── commitlint.config.js
├── docs/
│ ├── debugging.md
│ └── storybook.md
├── jest.config.js
├── lerna.json
├── package.json
├── packages/
│ ├── generator-superset/
│ │ ├── .gitattributes
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── generators/
│ │ │ ├── app/
│ │ │ │ └── index.js
│ │ │ ├── package/
│ │ │ │ ├── index.js
│ │ │ │ └── templates/
│ │ │ │ ├── README.md
│ │ │ │ ├── _package.json
│ │ │ │ ├── src/
│ │ │ │ │ └── index.txt
│ │ │ │ └── test/
│ │ │ │ └── index.txt
│ │ │ └── plugin-chart/
│ │ │ ├── index.js
│ │ │ └── templates/
│ │ │ ├── README.erb
│ │ │ ├── package.erb
│ │ │ ├── src/
│ │ │ │ ├── MyChart.erb
│ │ │ │ ├── index.erb
│ │ │ │ ├── plugin/
│ │ │ │ │ ├── buildQuery.erb
│ │ │ │ │ ├── controlPanel.erb
│ │ │ │ │ ├── index.erb
│ │ │ │ │ └── transformProps.erb
│ │ │ │ └── types.erb
│ │ │ ├── test/
│ │ │ │ ├── index.erb
│ │ │ │ └── plugin/
│ │ │ │ ├── buildQuery.test.erb
│ │ │ │ └── transformProps.test.erb
│ │ │ ├── tsconfig.json
│ │ │ └── types/
│ │ │ └── external.d.ts
│ │ ├── package.json
│ │ └── test/
│ │ ├── app.test.js
│ │ ├── package.test.js
│ │ ├── plugin-chart.test.js
│ │ └── tsconfig.json
│ ├── superset-ui-chart-controls/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── components/
│ │ │ │ ├── CertifiedIconWithTooltip.tsx
│ │ │ │ ├── ColumnOption.tsx
│ │ │ │ ├── ColumnTypeLabel.tsx
│ │ │ │ ├── ControlForm/
│ │ │ │ │ ├── ControlFormItem.tsx
│ │ │ │ │ ├── controls.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ControlHeader.tsx
│ │ │ │ ├── InfoTooltipWithTrigger.tsx
│ │ │ │ ├── MetricOption.tsx
│ │ │ │ ├── Select.tsx
│ │ │ │ └── Tooltip.tsx
│ │ │ ├── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── operators/
│ │ │ │ ├── boxplotOperator.ts
│ │ │ │ ├── contributionOperator.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── pivotOperator.ts
│ │ │ │ ├── prophetOperator.ts
│ │ │ │ ├── resampleOperator.ts
│ │ │ │ ├── rollingWindowOperator.ts
│ │ │ │ ├── sortOperator.ts
│ │ │ │ ├── timeCompareOperator.ts
│ │ │ │ ├── timeComparePivotOperator.ts
│ │ │ │ ├── types.ts
│ │ │ │ └── utils/
│ │ │ │ ├── constants.ts
│ │ │ │ ├── getMetricOffsetsMap.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── isValidTimeCompare.ts
│ │ │ ├── sections/
│ │ │ │ ├── advancedAnalytics.tsx
│ │ │ │ ├── annotationsAndLayers.tsx
│ │ │ │ ├── chartTitle.tsx
│ │ │ │ ├── forecastInterval.tsx
│ │ │ │ ├── index.ts
│ │ │ │ └── sections.tsx
│ │ │ ├── shared-controls/
│ │ │ │ ├── components/
│ │ │ │ │ ├── ColumnConfigControl/
│ │ │ │ │ │ ├── ColumnConfigControl.tsx
│ │ │ │ │ │ ├── ColumnConfigItem.tsx
│ │ │ │ │ │ ├── ColumnConfigPopover.tsx
│ │ │ │ │ │ ├── constants.tsx
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── types.ts
│ │ │ │ │ ├── RadioButtonControl.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── types.ts
│ │ │ │ ├── dndControls.tsx
│ │ │ │ ├── emitFilterControl.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── legacySortBy.tsx
│ │ │ ├── types.ts
│ │ │ └── utils/
│ │ │ ├── D3Formatting.ts
│ │ │ ├── columnChoices.ts
│ │ │ ├── expandControlConfig.tsx
│ │ │ ├── getColorFormatters.ts
│ │ │ ├── index.ts
│ │ │ ├── mainMetric.ts
│ │ │ └── selectOptions.ts
│ │ ├── test/
│ │ │ ├── components/
│ │ │ │ ├── ColumnOption.test.tsx
│ │ │ │ ├── ColumnTypeLabel.test.tsx
│ │ │ │ ├── InfoTooltipWithTrigger.test.tsx
│ │ │ │ └── MetricOption.test.tsx
│ │ │ ├── index.test.ts
│ │ │ ├── shared-controls/
│ │ │ │ └── emitFilterControl.test.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── types.test.ts
│ │ │ └── utils/
│ │ │ ├── columnChoices.test.tsx
│ │ │ ├── expandControlConfig.test.tsx
│ │ │ ├── getColorFormatters.test.ts
│ │ │ ├── mainMetric.test.ts
│ │ │ ├── operators/
│ │ │ │ ├── boxplotOperator.test.ts
│ │ │ │ ├── contributionOperator.test.ts
│ │ │ │ ├── pivotOperator.test.ts
│ │ │ │ ├── prophetOperator.test.ts
│ │ │ │ ├── resampleOperator.test.ts
│ │ │ │ ├── rollingWindowOperator.test.ts
│ │ │ │ ├── sortOperator.test.ts
│ │ │ │ └── timeCompareOperator.test.ts
│ │ │ └── selectOptions.test.ts
│ │ └── tsconfig.json
│ ├── superset-ui-core/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── chart/
│ │ │ │ ├── clients/
│ │ │ │ │ └── ChartClient.ts
│ │ │ │ ├── components/
│ │ │ │ │ ├── ChartDataProvider.tsx
│ │ │ │ │ ├── FallbackComponent.tsx
│ │ │ │ │ ├── NoResultsComponent.tsx
│ │ │ │ │ ├── SuperChart.tsx
│ │ │ │ │ ├── SuperChartCore.tsx
│ │ │ │ │ ├── createLoadableRenderer.ts
│ │ │ │ │ └── reactify.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── models/
│ │ │ │ │ ├── ChartControlPanel.ts
│ │ │ │ │ ├── ChartMetadata.ts
│ │ │ │ │ ├── ChartPlugin.ts
│ │ │ │ │ └── ChartProps.ts
│ │ │ │ ├── registries/
│ │ │ │ │ ├── ChartBuildQueryRegistrySingleton.ts
│ │ │ │ │ ├── ChartComponentRegistrySingleton.ts
│ │ │ │ │ ├── ChartControlPanelRegistrySingleton.ts
│ │ │ │ │ ├── ChartMetadataRegistrySingleton.ts
│ │ │ │ │ └── ChartTransformPropsRegistrySingleton.ts
│ │ │ │ └── types/
│ │ │ │ ├── Annotation.ts
│ │ │ │ ├── Base.ts
│ │ │ │ ├── QueryResponse.ts
│ │ │ │ └── TransformFunction.ts
│ │ │ ├── chart-composition/
│ │ │ │ ├── ChartFrame.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── legend/
│ │ │ │ │ └── WithLegend.tsx
│ │ │ │ └── tooltip/
│ │ │ │ ├── TooltipFrame.tsx
│ │ │ │ └── TooltipTable.tsx
│ │ │ ├── color/
│ │ │ │ ├── CategoricalColorNamespace.ts
│ │ │ │ ├── CategoricalColorScale.ts
│ │ │ │ ├── CategoricalScheme.ts
│ │ │ │ ├── CategoricalSchemeRegistrySingleton.ts
│ │ │ │ ├── ColorScheme.ts
│ │ │ │ ├── ColorSchemeRegistry.ts
│ │ │ │ ├── SequentialScheme.ts
│ │ │ │ ├── SequentialSchemeRegistrySingleton.ts
│ │ │ │ ├── colorSchemes/
│ │ │ │ │ ├── categorical/
│ │ │ │ │ │ ├── airbnb.ts
│ │ │ │ │ │ ├── d3.ts
│ │ │ │ │ │ ├── echarts.ts
│ │ │ │ │ │ ├── google.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── lyft.ts
│ │ │ │ │ │ ├── preset.ts
│ │ │ │ │ │ └── superset.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── sequential/
│ │ │ │ │ ├── common.ts
│ │ │ │ │ ├── d3.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── stringifyAndTrim.ts
│ │ │ │ ├── types.ts
│ │ │ │ └── utils.ts
│ │ │ ├── components/
│ │ │ │ ├── SafeMarkdown.tsx
│ │ │ │ ├── constants.ts
│ │ │ │ └── index.ts
│ │ │ ├── connection/
│ │ │ │ ├── README.md
│ │ │ │ ├── SupersetClient.ts
│ │ │ │ ├── SupersetClientClass.ts
│ │ │ │ ├── callApi/
│ │ │ │ │ ├── callApi.ts
│ │ │ │ │ ├── callApiAndParseWithTimeout.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── parseResponse.ts
│ │ │ │ │ └── rejectAfterTimeout.ts
│ │ │ │ ├── constants.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ │ ├── dimension/
│ │ │ │ ├── computeMaxFontSize.ts
│ │ │ │ ├── getMultipleTextDimensions.ts
│ │ │ │ ├── getTextDimension.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── mergeMargin.ts
│ │ │ │ ├── parseLength.ts
│ │ │ │ ├── svg/
│ │ │ │ │ ├── LazyFactory.ts
│ │ │ │ │ ├── constants.ts
│ │ │ │ │ ├── createHiddenSvgNode.ts
│ │ │ │ │ ├── createTextNode.ts
│ │ │ │ │ ├── factories.ts
│ │ │ │ │ ├── getBBoxCeil.ts
│ │ │ │ │ └── updateTextNode.ts
│ │ │ │ └── types.ts
│ │ │ ├── dynamic-plugins/
│ │ │ │ ├── index.ts
│ │ │ │ └── shared-modules.ts
│ │ │ ├── index.ts
│ │ │ ├── math-expression/
│ │ │ │ └── index.ts
│ │ │ ├── models/
│ │ │ │ ├── ExtensibleFunction.ts
│ │ │ │ ├── Plugin.ts
│ │ │ │ ├── Preset.ts
│ │ │ │ ├── Registry.ts
│ │ │ │ ├── RegistryWithDefaultKey.ts
│ │ │ │ └── index.ts
│ │ │ ├── number-format/
│ │ │ │ ├── NumberFormats.ts
│ │ │ │ ├── NumberFormatter.ts
│ │ │ │ ├── NumberFormatterRegistry.ts
│ │ │ │ ├── NumberFormatterRegistrySingleton.ts
│ │ │ │ ├── README.md
│ │ │ │ ├── factories/
│ │ │ │ │ ├── createD3NumberFormatter.ts
│ │ │ │ │ ├── createDurationFormatter.ts
│ │ │ │ │ ├── createSiAtMostNDigitFormatter.ts
│ │ │ │ │ └── createSmartNumberFormatter.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ │ ├── query/
│ │ │ │ ├── DatasourceKey.ts
│ │ │ │ ├── README.md
│ │ │ │ ├── api/
│ │ │ │ │ ├── legacy/
│ │ │ │ │ │ ├── fetchExploreJson.ts
│ │ │ │ │ │ ├── getDatasourceMetadata.ts
│ │ │ │ │ │ ├── getFormData.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── types.ts
│ │ │ │ │ ├── types.ts
│ │ │ │ │ └── v1/
│ │ │ │ │ ├── handleError.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── makeApi.ts
│ │ │ │ │ └── types.ts
│ │ │ │ ├── buildQueryContext.ts
│ │ │ │ ├── buildQueryObject.ts
│ │ │ │ ├── constants.ts
│ │ │ │ ├── convertFilter.ts
│ │ │ │ ├── extractExtras.ts
│ │ │ │ ├── extractQueryFields.ts
│ │ │ │ ├── extractTimegrain.ts
│ │ │ │ ├── getColumnLabel.ts
│ │ │ │ ├── getMetricLabel.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── normalizeOrderBy.ts
│ │ │ │ ├── processExtraFormData.ts
│ │ │ │ ├── processFilters.ts
│ │ │ │ └── types/
│ │ │ │ ├── AdvancedAnalytics.ts
│ │ │ │ ├── AnnotationLayer.ts
│ │ │ │ ├── Column.ts
│ │ │ │ ├── Datasource.ts
│ │ │ │ ├── Filter.ts
│ │ │ │ ├── Metric.ts
│ │ │ │ ├── Operator.ts
│ │ │ │ ├── PostProcessing.ts
│ │ │ │ ├── Query.ts
│ │ │ │ ├── QueryFormData.ts
│ │ │ │ ├── QueryResponse.ts
│ │ │ │ ├── Time.ts
│ │ │ │ └── index.ts
│ │ │ ├── style/
│ │ │ │ └── index.tsx
│ │ │ ├── time-format/
│ │ │ │ ├── README.md
│ │ │ │ ├── TimeFormats.ts
│ │ │ │ ├── TimeFormatsForGranularity.ts
│ │ │ │ ├── TimeFormatter.ts
│ │ │ │ ├── TimeFormatterRegistry.ts
│ │ │ │ ├── TimeFormatterRegistrySingleton.ts
│ │ │ │ ├── TimeRangeFormatter.ts
│ │ │ │ ├── factories/
│ │ │ │ │ ├── createD3TimeFormatter.ts
│ │ │ │ │ └── createMultiFormatter.ts
│ │ │ │ ├── formatters/
│ │ │ │ │ ├── smartDate.ts
│ │ │ │ │ ├── smartDateDetailed.ts
│ │ │ │ │ └── smartDateVerbose.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── types.ts
│ │ │ │ └── utils/
│ │ │ │ ├── createTime.ts
│ │ │ │ ├── createTimeRangeFromGranularity.ts
│ │ │ │ ├── d3Time.ts
│ │ │ │ └── stringifyTimeInput.ts
│ │ │ ├── translation/
│ │ │ │ ├── README.md
│ │ │ │ ├── Translator.ts
│ │ │ │ ├── TranslatorSingleton.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── types/
│ │ │ │ ├── index.ts
│ │ │ │ └── jed.ts
│ │ │ ├── types/
│ │ │ │ └── index.ts
│ │ │ ├── utils/
│ │ │ │ ├── convertKeysToCamelCase.ts
│ │ │ │ ├── ensureIsArray.ts
│ │ │ │ ├── ensureIsInt.ts
│ │ │ │ ├── featureFlags.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── isDefined.ts
│ │ │ │ ├── isRequired.ts
│ │ │ │ ├── logging.ts
│ │ │ │ ├── makeSingleton.ts
│ │ │ │ ├── promiseTimeout.ts
│ │ │ │ ├── random.ts
│ │ │ │ └── removeDuplicates.ts
│ │ │ └── validator/
│ │ │ ├── index.ts
│ │ │ ├── legacyValidateInteger.ts
│ │ │ ├── legacyValidateNumber.ts
│ │ │ ├── validateInteger.ts
│ │ │ ├── validateNonEmpty.ts
│ │ │ └── validateNumber.ts
│ │ ├── test/
│ │ │ ├── __mocks__/
│ │ │ │ └── resize-observer-polyfill.ts
│ │ │ ├── chart/
│ │ │ │ ├── clients/
│ │ │ │ │ └── ChartClient.test.ts
│ │ │ │ ├── components/
│ │ │ │ │ ├── ChartDataProvider.test.tsx
│ │ │ │ │ ├── FallbackComponent.test.tsx
│ │ │ │ │ ├── MockChartPlugins.tsx
│ │ │ │ │ ├── NoResultsComponent.test.tsx
│ │ │ │ │ ├── SuperChart.test.tsx
│ │ │ │ │ ├── SuperChartCore.test.tsx
│ │ │ │ │ ├── createLoadableRenderer.test.tsx
│ │ │ │ │ └── reactify.test.tsx
│ │ │ │ ├── fixtures/
│ │ │ │ │ ├── constants.ts
│ │ │ │ │ └── formData.ts
│ │ │ │ ├── index.test.ts
│ │ │ │ └── models/
│ │ │ │ ├── ChartMetadata.test.ts
│ │ │ │ ├── ChartPlugin.test.tsx
│ │ │ │ └── ChartProps.test.ts
│ │ │ ├── chart-composition/
│ │ │ │ ├── ChartFrame.test.tsx
│ │ │ │ ├── legend/
│ │ │ │ │ └── WithLegend.test.tsx
│ │ │ │ └── tooltip/
│ │ │ │ ├── TooltipFrame.test.tsx
│ │ │ │ └── TooltipTable.test.tsx
│ │ │ ├── color/
│ │ │ │ ├── CategoricalColorNameSpace.test.ts
│ │ │ │ ├── CategoricalColorScale.test.ts
│ │ │ │ ├── CategoricalSchemeRegistrySingleton.test.ts
│ │ │ │ ├── ColorScheme.test.ts
│ │ │ │ ├── ColorSchemeRegistry.test.ts
│ │ │ │ ├── SequentialScheme.test.ts
│ │ │ │ ├── SequentialSchemeRegistrySingleton.test.ts
│ │ │ │ ├── colorSchemes.test.ts
│ │ │ │ ├── index.test.ts
│ │ │ │ └── utils.test.ts
│ │ │ ├── connection/
│ │ │ │ ├── SupersetClient.test.ts
│ │ │ │ ├── SupersetClientClass.test.ts
│ │ │ │ ├── callApi/
│ │ │ │ │ ├── callApi.test.ts
│ │ │ │ │ ├── callApiAndParseWithTimeout.test.ts
│ │ │ │ │ ├── parseResponse.test.ts
│ │ │ │ │ └── rejectAfterTimeout.test.ts
│ │ │ │ └── fixtures/
│ │ │ │ └── constants.ts
│ │ │ ├── dimension/
│ │ │ │ ├── computeMaxFontSize.test.ts
│ │ │ │ ├── getBBoxDummyFill.ts
│ │ │ │ ├── getMultipleTextDimensions.test.ts
│ │ │ │ ├── getTextDimension.test.ts
│ │ │ │ ├── mergeMargin.test.ts
│ │ │ │ ├── parseLength.test.ts
│ │ │ │ └── svg/
│ │ │ │ ├── LazyFactory.test.ts
│ │ │ │ ├── getBBoxCeil.test.ts
│ │ │ │ └── updateTextNode.test.ts
│ │ │ ├── dynamic-plugins/
│ │ │ │ └── shared-modules.test.ts
│ │ │ ├── fixtures.ts
│ │ │ ├── index.test.ts
│ │ │ ├── math-expression/
│ │ │ │ └── index.test.ts
│ │ │ ├── models/
│ │ │ │ ├── ExtensibleFunction.test.ts
│ │ │ │ ├── Plugin.test.ts
│ │ │ │ ├── Preset.test.ts
│ │ │ │ ├── Registry.test.ts
│ │ │ │ └── RegistryWithDefaultKey.test.ts
│ │ │ ├── number-format/
│ │ │ │ ├── NumberFormatter.test.ts
│ │ │ │ ├── NumberFormatterRegistry.test.ts
│ │ │ │ ├── NumberFormatterRegistrySingleton.test.ts
│ │ │ │ ├── factories/
│ │ │ │ │ ├── createD3NumberFormatter.test.ts
│ │ │ │ │ ├── createDurationFormatter.test.ts
│ │ │ │ │ ├── createSiAtMostNDigitFormatter.test.ts
│ │ │ │ │ └── createSmartNumberFormatter.test.ts
│ │ │ │ └── index.test.ts
│ │ │ ├── query/
│ │ │ │ ├── DatasourceKey.test.ts
│ │ │ │ ├── api/
│ │ │ │ │ ├── legacy/
│ │ │ │ │ │ ├── fetchExploreJson.test.ts
│ │ │ │ │ │ ├── getDatasourceMetadata.test.ts
│ │ │ │ │ │ └── getFormData.test.ts
│ │ │ │ │ ├── setupClientForTest.ts
│ │ │ │ │ └── v1/
│ │ │ │ │ ├── getChartData.test.ts
│ │ │ │ │ ├── handleError.test.ts
│ │ │ │ │ └── makeApi.test.ts
│ │ │ │ ├── buildQueryContext.test.ts
│ │ │ │ ├── buildQueryObject.test.ts
│ │ │ │ ├── convertFilter.test.ts
│ │ │ │ ├── extractExtras.test.ts
│ │ │ │ ├── extractQueryFields.test.ts
│ │ │ │ ├── extractTimegrain.test.ts
│ │ │ │ ├── getColumnLabel.test.ts
│ │ │ │ ├── getMetricLabel.test.ts
│ │ │ │ ├── normalizeOrderBy.test.ts
│ │ │ │ ├── processExtraFormData.test.ts
│ │ │ │ ├── processFilters.test.ts
│ │ │ │ └── types/
│ │ │ │ ├── AnnotationLayer.test.ts
│ │ │ │ ├── Filter.test.ts
│ │ │ │ └── PostProcessing.test.ts
│ │ │ ├── style/
│ │ │ │ └── index.test.tsx
│ │ │ ├── time-format/
│ │ │ │ ├── TimeFormatter.test.ts
│ │ │ │ ├── TimeFormatterRegistry.test.ts
│ │ │ │ ├── TimeFormatterRegistrySingleton.test.ts
│ │ │ │ ├── factories/
│ │ │ │ │ ├── createD3TimeFormatter.test.ts
│ │ │ │ │ └── createMultiFormatter.test.ts
│ │ │ │ ├── formatters/
│ │ │ │ │ ├── smartDate.test.ts
│ │ │ │ │ ├── smartDateDetailed.test.ts
│ │ │ │ │ └── smartDateVerbose.test.ts
│ │ │ │ ├── index.test.ts
│ │ │ │ └── utils/
│ │ │ │ ├── createTime.test.ts
│ │ │ │ ├── createTimeRangeFromGranularity.test.ts
│ │ │ │ └── d3Time.test.ts
│ │ │ ├── translation/
│ │ │ │ ├── Translator.test.ts
│ │ │ │ ├── TranslatorSingleton.test.ts
│ │ │ │ ├── index.test.ts
│ │ │ │ └── languagePacks/
│ │ │ │ ├── en.ts
│ │ │ │ └── zh.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── utils/
│ │ │ │ ├── convertKeysToCamelCase.test.ts
│ │ │ │ ├── ensureIsArray.test.ts
│ │ │ │ ├── ensureIsInt.test.ts
│ │ │ │ ├── featureFlag.test.ts
│ │ │ │ ├── isDefined.test.ts
│ │ │ │ ├── isRequired.test.ts
│ │ │ │ ├── logging.test.ts
│ │ │ │ ├── makeSingleton.test.ts
│ │ │ │ ├── promiseTimeout.test.ts
│ │ │ │ ├── random.test.ts
│ │ │ │ └── removeDuplicates.test.ts
│ │ │ └── validator/
│ │ │ ├── legacyValidateInteger.test.ts
│ │ │ ├── legacyValidateNumber.test.ts
│ │ │ ├── setup.ts
│ │ │ ├── validateInteger.test.ts
│ │ │ ├── validateNonEmpty.test.ts
│ │ │ └── validateNumber.test.ts
│ │ ├── tsconfig.json
│ │ └── types/
│ │ ├── external.d.ts
│ │ └── resize-observer-polyfill.d.ts
│ └── superset-ui-demo/
│ ├── .storybook/
│ │ ├── main.js
│ │ ├── preview.js
│ │ ├── storybook.css
│ │ └── themeDecorator.js
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── storybook/
│ │ ├── shared/
│ │ │ ├── components/
│ │ │ │ ├── ErrorMessage.tsx
│ │ │ │ ├── Expandable.tsx
│ │ │ │ ├── ResizableChartDemo.tsx
│ │ │ │ ├── ResizablePanel.tsx
│ │ │ │ ├── VerifyCORS.tsx
│ │ │ │ └── createQueryStory.tsx
│ │ │ └── dummyDatasource.ts
│ │ └── stories/
│ │ ├── plugins/
│ │ │ ├── legacy-plugin-chart-calendar/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-chord/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-country-map/
│ │ │ │ └── CountryMapStories.tsx
│ │ │ ├── legacy-plugin-chart-event-flow/
│ │ │ │ └── Stories.jsx
│ │ │ ├── legacy-plugin-chart-force-directed/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-heatmap/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-histogram/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-horizon/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-map-box/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-paired-t-test/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-parallel-coordinates/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-partition/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-pivot-table/
│ │ │ │ └── Stories.tsx
│ │ │ ├── legacy-plugin-chart-rose/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-sankey/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-sankey-loop/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-sunburst/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-time-table/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-treemap/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-plugin-chart-world-map/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-preset-chart-big-number/
│ │ │ │ ├── BigNumber/
│ │ │ │ │ ├── BigNumberStories.tsx
│ │ │ │ │ └── data.ts
│ │ │ │ └── BigNumberTotal/
│ │ │ │ ├── BigNumberTotalStories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── legacy-preset-chart-nvd3/
│ │ │ │ ├── Area/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ ├── controlsShown.tsx
│ │ │ │ │ ├── expanded.tsx
│ │ │ │ │ ├── stacked.tsx
│ │ │ │ │ └── stackedWithBounds.tsx
│ │ │ │ ├── Bar/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ ├── barWithPositiveAndNegativeValues.tsx
│ │ │ │ │ ├── barWithValues.tsx
│ │ │ │ │ ├── basic.tsx
│ │ │ │ │ └── stackedBarWithValues.tsx
│ │ │ │ ├── BoxPlot/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ └── basic.tsx
│ │ │ │ ├── Bubble/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ └── basic.tsx
│ │ │ │ ├── Bullet/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ └── basic.tsx
│ │ │ │ ├── Compare/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ ├── basic.tsx
│ │ │ │ │ └── timeFormat.tsx
│ │ │ │ ├── DistBar/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ ├── basic.tsx
│ │ │ │ │ └── manyBars.tsx
│ │ │ │ ├── DualLine/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ ├── basic.tsx
│ │ │ │ │ └── verifyConsistentColors.tsx
│ │ │ │ ├── Line/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ ├── data.ts
│ │ │ │ │ └── stories/
│ │ │ │ │ ├── basic.tsx
│ │ │ │ │ ├── logScale.tsx
│ │ │ │ │ ├── markers.tsx
│ │ │ │ │ └── yAxisBounds.tsx
│ │ │ │ └── Pie/
│ │ │ │ ├── Stories.tsx
│ │ │ │ ├── data.ts
│ │ │ │ └── stories/
│ │ │ │ ├── basic.tsx
│ │ │ │ └── noData.tsx
│ │ │ ├── plugin-chart-echarts/
│ │ │ │ ├── BoxPlot/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ └── data.ts
│ │ │ │ ├── Funnel/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ └── constants.ts
│ │ │ │ ├── Gauge/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ └── data.ts
│ │ │ │ ├── Graph/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ └── data.ts
│ │ │ │ ├── MixedTimeseries/
│ │ │ │ │ └── Stories.tsx
│ │ │ │ ├── Pie/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ └── data.ts
│ │ │ │ ├── Radar/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ └── data.ts
│ │ │ │ ├── Timeseries/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ └── data.ts
│ │ │ │ ├── Tree/
│ │ │ │ │ ├── Stories.tsx
│ │ │ │ │ └── data.ts
│ │ │ │ └── Treemap/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ ├── plugin-chart-table/
│ │ │ │ ├── TableStories.tsx
│ │ │ │ ├── birthNames.json
│ │ │ │ └── testData.ts
│ │ │ ├── plugin-chart-word-cloud/
│ │ │ │ ├── Stories.tsx
│ │ │ │ └── data.ts
│ │ │ └── preset-chart-xy/
│ │ │ ├── BoxPlot/
│ │ │ │ ├── Stories.tsx
│ │ │ │ ├── constants.ts
│ │ │ │ ├── data.ts
│ │ │ │ └── stories/
│ │ │ │ ├── Basic.tsx
│ │ │ │ └── Legacy.tsx
│ │ │ ├── Line/
│ │ │ │ ├── Stories.tsx
│ │ │ │ ├── constants.ts
│ │ │ │ ├── data/
│ │ │ │ │ ├── data.js
│ │ │ │ │ ├── data2.js
│ │ │ │ │ └── legacyData.js
│ │ │ │ └── stories/
│ │ │ │ ├── basic.tsx
│ │ │ │ ├── flush.tsx
│ │ │ │ ├── legacy.tsx
│ │ │ │ ├── missing.tsx
│ │ │ │ ├── query.tsx
│ │ │ │ └── timeShift.tsx
│ │ │ └── ScatterPlot/
│ │ │ ├── Stories.tsx
│ │ │ ├── constants.ts
│ │ │ ├── data/
│ │ │ │ ├── data.ts
│ │ │ │ └── legacyData.ts
│ │ │ └── stories/
│ │ │ ├── basic.tsx
│ │ │ ├── bubble.tsx
│ │ │ └── legacy.tsx
│ │ ├── superset-ui-chart/
│ │ │ ├── ChartDataProviderStories.tsx
│ │ │ └── SuperChartStories.tsx
│ │ ├── superset-ui-color/
│ │ │ ├── ColorPallettesStories.jsx
│ │ │ ├── RenderPalettes.jsx
│ │ │ └── color-styles.css
│ │ ├── superset-ui-connection/
│ │ │ └── ConnectionStories.tsx
│ │ ├── superset-ui-number-format/
│ │ │ └── BigNumberStories.jsx
│ │ ├── superset-ui-style/
│ │ │ └── ThemeStories.jsx
│ │ └── superset-ui-time-format/
│ │ └── TimeFormatStories.jsx
│ └── tsconfig.json
├── plugins/
│ ├── legacy-plugin-chart-calendar/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── Calendar.js
│ │ │ ├── ReactCalendar.jsx
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ ├── transformProps.js
│ │ │ └── vendor/
│ │ │ ├── cal-heatmap.css
│ │ │ ├── cal-heatmap.js
│ │ │ └── d3tip.css
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-chord/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── Chord.js
│ │ │ ├── ReactChord.jsx
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-country-map/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── scripts/
│ │ │ └── Country Map GeoJSON Generator.ipynb
│ │ ├── src/
│ │ │ ├── CountryMap.css
│ │ │ ├── CountryMap.js
│ │ │ ├── ReactCountryMap.js
│ │ │ ├── controlPanel.ts
│ │ │ ├── countries/
│ │ │ │ ├── australia.geojson
│ │ │ │ ├── austria.geojson
│ │ │ │ ├── belgium.geojson
│ │ │ │ ├── brazil.geojson
│ │ │ │ ├── bulgaria.geojson
│ │ │ │ ├── canada.geojson
│ │ │ │ ├── china.geojson
│ │ │ │ ├── denmark.geojson
│ │ │ │ ├── egypt.geojson
│ │ │ │ ├── estonia.geojson
│ │ │ │ ├── finland.geojson
│ │ │ │ ├── france.geojson
│ │ │ │ ├── germany.geojson
│ │ │ │ ├── iceland.geojson
│ │ │ │ ├── india.geojson
│ │ │ │ ├── indonesia.geojson
│ │ │ │ ├── iran.geojson
│ │ │ │ ├── italy.geojson
│ │ │ │ ├── italy_regions.geojson
│ │ │ │ ├── japan.geojson
│ │ │ │ ├── korea.geojson
│ │ │ │ ├── liechtenstein.geojson
│ │ │ │ ├── malaysia.geojson
│ │ │ │ ├── morocco.geojson
│ │ │ │ ├── myanmar.geojson
│ │ │ │ ├── netherlands.geojson
│ │ │ │ ├── norway.geojson
│ │ │ │ ├── peru.geojson
│ │ │ │ ├── poland.geojson
│ │ │ │ ├── portugal.geojson
│ │ │ │ ├── russia.geojson
│ │ │ │ ├── saudi_arabia.geojson
│ │ │ │ ├── singapore.geojson
│ │ │ │ ├── slovenia.geojson
│ │ │ │ ├── spain.geojson
│ │ │ │ ├── sweden.geojson
│ │ │ │ ├── switzerland.geojson
│ │ │ │ ├── syria.geojson
│ │ │ │ ├── thailand.geojson
│ │ │ │ ├── timorleste.geojson
│ │ │ │ ├── uk.geojson
│ │ │ │ ├── ukraine.geojson
│ │ │ │ ├── uruguay.geojson
│ │ │ │ ├── usa.geojson
│ │ │ │ ├── vietnam.geojson
│ │ │ │ └── zambia.geojson
│ │ │ ├── countries.ts
│ │ │ ├── geojson.d.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-event-flow/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── EventFlow.tsx
│ │ │ ├── controlPanel.tsx
│ │ │ ├── index.ts
│ │ │ ├── transformProps.ts
│ │ │ └── types/
│ │ │ └── external.d.ts
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-force-directed/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ForceDirected.js
│ │ │ ├── ReactForceDirected.jsx
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-heatmap/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── Heatmap.css
│ │ │ ├── Heatmap.js
│ │ │ ├── ReactHeatmap.js
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ ├── transformProps.js
│ │ │ └── vendor/
│ │ │ └── d3tip.css
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-histogram/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── Histogram.jsx
│ │ │ ├── WithLegend.jsx
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-horizon/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── HorizonChart.css
│ │ │ ├── HorizonChart.jsx
│ │ │ ├── HorizonRow.jsx
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-map-box/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── MapBox.css
│ │ │ ├── MapBox.jsx
│ │ │ ├── ScatterPlotGlowOverlay.jsx
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ ├── transformProps.js
│ │ │ └── utils/
│ │ │ ├── geo.js
│ │ │ ├── luminanceFromRGB.js
│ │ │ └── roundDecimal.js
│ │ ├── test/
│ │ │ ├── tsconfig.json
│ │ │ └── utils/
│ │ │ └── roundDecimal.test.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-paired-t-test/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── PairedTTest.css
│ │ │ ├── PairedTTest.jsx
│ │ │ ├── TTestTable.jsx
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-parallel-coordinates/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ParallelCoordinates.js
│ │ │ ├── ReactParallelCoordinates.jsx
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ ├── transformProps.js
│ │ │ └── vendor/
│ │ │ └── parcoords/
│ │ │ ├── d3.parcoords.css
│ │ │ ├── d3.parcoords.js
│ │ │ └── divgrid.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-partition/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── OptionDescription.tsx
│ │ │ ├── Partition.css
│ │ │ ├── Partition.js
│ │ │ ├── ReactPartition.js
│ │ │ ├── controlPanel.tsx
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ ├── test/
│ │ │ ├── OptionDescription.test.jsx
│ │ │ └── tsconfig.json
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-pivot-table/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── PivotTable.js
│ │ │ ├── ReactPivotTable.js
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ ├── transformProps.js
│ │ │ └── utils/
│ │ │ ├── fixTableHeight.js
│ │ │ └── formatCells.ts
│ │ ├── test/
│ │ │ └── PivotTable.test.ts
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-rose/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ReactRose.js
│ │ │ ├── Rose.css
│ │ │ ├── Rose.js
│ │ │ ├── controlPanel.tsx
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-sankey/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ReactSankey.jsx
│ │ │ ├── Sankey.js
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ ├── tests/
│ │ │ │ └── utils.test.js
│ │ │ ├── transformProps.js
│ │ │ └── utils.ts
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-sankey-loop/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ReactSankeyLoop.js
│ │ │ ├── SankeyLoop.css
│ │ │ ├── SankeyLoop.js
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-sunburst/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ReactSunburst.js
│ │ │ ├── Sunburst.css
│ │ │ ├── Sunburst.js
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ ├── transformProps.js
│ │ │ └── utils/
│ │ │ └── wrapSvgText.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-time-table/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── FormattedNumber.tsx
│ │ │ ├── SparklineCell.tsx
│ │ │ ├── TimeTable.tsx
│ │ │ ├── TimeTableChartPlugin.ts
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.ts
│ │ │ └── transformProps.ts
│ │ ├── tsconfig.json
│ │ └── types/
│ │ └── external.d.ts
│ ├── legacy-plugin-chart-treemap/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ReactTreemap.js
│ │ │ ├── Treemap.css
│ │ │ ├── Treemap.js
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-plugin-chart-world-map/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── ReactWorldMap.jsx
│ │ │ ├── WorldMap.js
│ │ │ ├── controlPanel.ts
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── tsconfig.json
│ ├── legacy-preset-chart-big-number/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── BigNumber/
│ │ │ │ ├── BigNumber.tsx
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ └── transformProps.ts
│ │ │ ├── BigNumberTotal/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.ts
│ │ │ ├── index.ts
│ │ │ ├── preset.ts
│ │ │ ├── sharedControls.ts
│ │ │ └── types/
│ │ │ └── external.d.ts
│ │ ├── test/
│ │ │ ├── transformProps.test.ts
│ │ │ └── tsconfig.json
│ │ └── tsconfig.json
│ ├── legacy-preset-chart-nvd3/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── Area/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── Bar/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── BoxPlot/
│ │ │ │ └── index.js
│ │ │ ├── Bubble/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── Bullet/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── Compare/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── DistBar/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── DualLine/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── Line/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── LineMulti/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── NVD3Controls.tsx
│ │ │ ├── NVD3Vis.js
│ │ │ ├── Pie/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── PropTypes.js
│ │ │ ├── ReactNVD3.jsx
│ │ │ ├── TimePivot/
│ │ │ │ ├── controlPanel.ts
│ │ │ │ └── index.js
│ │ │ ├── index.js
│ │ │ ├── preset.js
│ │ │ ├── transformProps.js
│ │ │ ├── utils/
│ │ │ │ ├── isTruthy.js
│ │ │ │ └── tokenize.ts
│ │ │ ├── utils.js
│ │ │ └── vendor/
│ │ │ └── superset/
│ │ │ ├── AnnotationTypes.js
│ │ │ └── exploreUtils.js
│ │ ├── test/
│ │ │ ├── tsconfig.json
│ │ │ ├── utils/
│ │ │ │ ├── isTruthy.test.js
│ │ │ │ └── tokenize.test.js
│ │ │ └── utils.test.js
│ │ └── tsconfig.json
│ ├── plugin-chart-echarts/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── BoxPlot/
│ │ │ │ ├── EchartsBoxPlot.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── controlPanel.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── Funnel/
│ │ │ │ ├── EchartsFunnel.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── Gauge/
│ │ │ │ ├── EchartsGauge.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── constants.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── Graph/
│ │ │ │ ├── EchartsGraph.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── constants.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── MixedTimeseries/
│ │ │ │ ├── EchartsMixedTimeseries.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── Pie/
│ │ │ │ ├── EchartsPie.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── Radar/
│ │ │ │ ├── EchartsRadar.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── Timeseries/
│ │ │ │ ├── Area/
│ │ │ │ │ ├── controlPanel.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── EchartsTimeseries.tsx
│ │ │ │ ├── Regular/
│ │ │ │ │ ├── Bar/
│ │ │ │ │ │ ├── controlPanel.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── Line/
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── Scatter/
│ │ │ │ │ │ ├── controlPanel.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── SmoothLine/
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ └── controlPanel.tsx
│ │ │ │ ├── Step/
│ │ │ │ │ ├── controlPanel.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ ├── transformers.ts
│ │ │ │ └── types.ts
│ │ │ ├── Tree/
│ │ │ │ ├── EchartsTree.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── constants.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── Treemap/
│ │ │ │ ├── EchartsTreemap.tsx
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── constants.ts
│ │ │ │ ├── controlPanel.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── components/
│ │ │ │ └── Echart.tsx
│ │ │ ├── constants.ts
│ │ │ ├── controls.tsx
│ │ │ ├── defaults.ts
│ │ │ ├── index.ts
│ │ │ ├── types.ts
│ │ │ └── utils/
│ │ │ ├── annotation.ts
│ │ │ ├── controls.ts
│ │ │ ├── prophet.ts
│ │ │ └── series.ts
│ │ ├── test/
│ │ │ ├── BoxPlot/
│ │ │ │ ├── buildQuery.test.ts
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── Funnel/
│ │ │ │ ├── buildQuery.test.ts
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── Gauge/
│ │ │ │ ├── buildQuery.test.ts
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── Graph/
│ │ │ │ ├── buildQuery.test.ts
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── Pie/
│ │ │ │ ├── buildQuery.test.ts
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── Timeseries/
│ │ │ │ ├── buildQuery.test.ts
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── Tree/
│ │ │ │ ├── buildQuery.test.ts
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── Treemap/
│ │ │ │ ├── buildQuery.test.ts
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── index.test.ts
│ │ │ ├── tsconfig.json
│ │ │ └── utils/
│ │ │ ├── annotation.test.ts
│ │ │ ├── controls.test.ts
│ │ │ ├── prophet.test.ts
│ │ │ └── series.test.ts
│ │ ├── tsconfig.json
│ │ └── types/
│ │ └── external.d.ts
│ ├── plugin-chart-pivot-table/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── PivotTableChart.tsx
│ │ │ ├── index.ts
│ │ │ ├── plugin/
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── controlPanel.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── transformProps.ts
│ │ │ └── types.ts
│ │ ├── test/
│ │ │ ├── index.test.ts
│ │ │ └── plugin/
│ │ │ ├── buildQuery.test.ts
│ │ │ └── transformProps.test.ts
│ │ ├── tsconfig.json
│ │ └── types/
│ │ └── external.d.ts
│ ├── plugin-chart-table/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── DataTable/
│ │ │ │ ├── DataTable.tsx
│ │ │ │ ├── README.md
│ │ │ │ ├── components/
│ │ │ │ │ ├── GlobalFilter.tsx
│ │ │ │ │ ├── Pagination.tsx
│ │ │ │ │ └── SelectPageSize.tsx
│ │ │ │ ├── hooks/
│ │ │ │ │ └── useSticky.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── types/
│ │ │ │ │ └── react-table.d.ts
│ │ │ │ └── utils/
│ │ │ │ ├── externalAPIs.ts
│ │ │ │ ├── getScrollBarSize.ts
│ │ │ │ ├── needScrollBar.ts
│ │ │ │ ├── useAsyncState.ts
│ │ │ │ └── useMountedMemo.ts
│ │ │ ├── Styles.tsx
│ │ │ ├── TableChart.tsx
│ │ │ ├── buildQuery.ts
│ │ │ ├── consts.ts
│ │ │ ├── controlPanel.tsx
│ │ │ ├── i18n.ts
│ │ │ ├── index.ts
│ │ │ ├── transformProps.ts
│ │ │ ├── types.ts
│ │ │ └── utils/
│ │ │ ├── DateWithFormatter.ts
│ │ │ ├── extent.ts
│ │ │ ├── formatValue.ts
│ │ │ ├── isEqualArray.ts
│ │ │ └── isEqualColumns.ts
│ │ ├── test/
│ │ │ ├── TableChart.test.tsx
│ │ │ ├── buildQuery.test.ts
│ │ │ ├── enzyme.tsx
│ │ │ ├── testData.ts
│ │ │ └── tsconfig.json
│ │ ├── tsconfig.json
│ │ └── types/
│ │ └── external.d.ts
│ ├── plugin-chart-word-cloud/
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── chart/
│ │ │ │ ├── Encoder.ts
│ │ │ │ └── WordCloud.tsx
│ │ │ ├── configureEncodable.ts
│ │ │ ├── index.ts
│ │ │ ├── legacyPlugin/
│ │ │ │ ├── index.ts
│ │ │ │ ├── transformProps.ts
│ │ │ │ └── types.ts
│ │ │ ├── plugin/
│ │ │ │ ├── buildQuery.ts
│ │ │ │ ├── controlPanel.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── transformProps.ts
│ │ │ └── types.ts
│ │ ├── test/
│ │ │ ├── index.test.ts
│ │ │ ├── legacyPlugin/
│ │ │ │ └── transformProps.test.ts
│ │ │ ├── plugin/
│ │ │ │ └── buildQuery.test.ts
│ │ │ └── tsconfig.json
│ │ ├── tsconfig.json
│ │ └── types/
│ │ └── external.d.ts
│ └── preset-chart-xy/
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src/
│ │ ├── BoxPlot/
│ │ │ ├── controlPanel.ts
│ │ │ ├── createMetadata.ts
│ │ │ ├── index.ts
│ │ │ ├── legacy/
│ │ │ │ ├── index.ts
│ │ │ │ └── transformProps.ts
│ │ │ └── transformProps.ts
│ │ ├── Line/
│ │ │ ├── ChartFormData.ts
│ │ │ ├── buildQuery.ts
│ │ │ ├── createMetadata.ts
│ │ │ ├── index.ts
│ │ │ ├── legacy/
│ │ │ │ ├── index.ts
│ │ │ │ └── transformProps.ts
│ │ │ └── transformProps.ts
│ │ ├── ScatterPlot/
│ │ │ ├── createMetadata.ts
│ │ │ ├── index.ts
│ │ │ ├── legacy/
│ │ │ │ ├── index.ts
│ │ │ │ └── transformProps.ts
│ │ │ └── transformProps.ts
│ │ ├── components/
│ │ │ ├── BoxPlot/
│ │ │ │ ├── BoxPlot.tsx
│ │ │ │ ├── DefaultTooltipRenderer.tsx
│ │ │ │ ├── Encoder.ts
│ │ │ │ └── types.ts
│ │ │ ├── Line/
│ │ │ │ ├── DefaultLegendItemMarkRenderer.tsx
│ │ │ │ ├── DefaultTooltipRenderer.tsx
│ │ │ │ ├── Encoder.ts
│ │ │ │ └── Line.tsx
│ │ │ ├── ScatterPlot/
│ │ │ │ ├── DefaultTooltipRenderer.tsx
│ │ │ │ ├── Encoder.ts
│ │ │ │ └── ScatterPlot.tsx
│ │ │ └── legend/
│ │ │ ├── DefaultLegend.tsx
│ │ │ ├── DefaultLegendGroup.tsx
│ │ │ ├── DefaultLegendItem.tsx
│ │ │ ├── createRenderLegend.tsx
│ │ │ └── types.ts
│ │ ├── configureEncodable.ts
│ │ ├── index.ts
│ │ └── utils/
│ │ ├── XYChartLayout.tsx
│ │ ├── computeAxisLayout.ts
│ │ ├── convertScaleToDataUIScaleShape.ts
│ │ ├── createMarginSelector.tsx
│ │ ├── createTickComponent.tsx
│ │ ├── createTickLabelProps.ts
│ │ └── createXYChartLayoutWithTheme.ts
│ ├── test/
│ │ ├── index.test.ts
│ │ └── tsconfig.json
│ ├── tsconfig.json
│ └── types/
│ ├── @data-ui/
│ │ ├── theme/
│ │ │ └── index.d.ts
│ │ └── xy-chart/
│ │ └── index.d.ts
│ └── external.d.ts
├── prettier.config.js
├── scripts/
│ ├── build.js
│ ├── check_license.sh
│ ├── commitlint.js
│ ├── copyAssets.js
│ ├── lernaVersion.sh
│ └── tsc.sh
├── temporary-plugins/
│ ├── README.md
│ ├── hold-potentially-deprecate/
│ │ ├── superset-ui-legacy-plugin-chart-word-cloud/
│ │ │ ├── README.md
│ │ │ ├── package.json
│ │ │ └── src/
│ │ │ ├── ReactWordCloud.js
│ │ │ ├── WordCloud.js
│ │ │ ├── index.js
│ │ │ └── transformProps.js
│ │ └── superset-ui-plugin-chart-table/
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── Table.tsx
│ │ │ ├── TableFormData.ts
│ │ │ ├── buildQuery.ts
│ │ │ ├── components/
│ │ │ │ └── HTMLRenderer.tsx
│ │ │ ├── createMetadata.ts
│ │ │ ├── getRenderer.tsx
│ │ │ ├── index.ts
│ │ │ ├── legacy/
│ │ │ │ ├── index.ts
│ │ │ │ └── transformProps.ts
│ │ │ ├── processColumns.ts
│ │ │ ├── processData.ts
│ │ │ ├── processMetrics.ts
│ │ │ ├── transformProps.ts
│ │ │ └── types.ts
│ │ ├── test/
│ │ │ ├── buildQuery.test.ts
│ │ │ ├── processData.test.ts
│ │ │ └── processMetrics.test.ts
│ │ └── types/
│ │ └── external.d.ts
│ ├── plugin-chart-choropleth-map/
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── chart/
│ │ │ │ ├── ChoroplethMap.tsx
│ │ │ │ ├── Encoder.ts
│ │ │ │ ├── MapMetadata.ts
│ │ │ │ ├── MapTooltip.tsx
│ │ │ │ ├── Projection.ts
│ │ │ │ ├── components.ts
│ │ │ │ └── loadMap.ts
│ │ │ ├── configureEncodable.ts
│ │ │ ├── index.ts
│ │ │ ├── maps/
│ │ │ │ ├── belgium-topo.json
│ │ │ │ ├── brazil-topo.json
│ │ │ │ ├── bulgaria-topo.json
│ │ │ │ ├── canada-topo.json
│ │ │ │ ├── china-topo.json
│ │ │ │ ├── france-topo.json
│ │ │ │ ├── germany-topo.json
│ │ │ │ ├── index.ts
│ │ │ │ ├── india-topo.json
│ │ │ │ ├── iran-topo.json
│ │ │ │ ├── italy-topo.json
│ │ │ │ ├── japan-topo.json
│ │ │ │ ├── korea-topo.json
│ │ │ │ ├── liechtenstein-topo.json
│ │ │ │ ├── morocco-topo.json
│ │ │ │ ├── myanmar-topo.json
│ │ │ │ ├── netherlands-topo.json
│ │ │ │ ├── portugal-topo.json
│ │ │ │ ├── russia-topo.json
│ │ │ │ ├── singapore-topo.json
│ │ │ │ ├── spain-topo.json
│ │ │ │ ├── switzerland-topo.json
│ │ │ │ ├── thailand-topo.json
│ │ │ │ ├── timorleste-topo.json
│ │ │ │ ├── uk-topo.json
│ │ │ │ ├── ukraine-topo.json
│ │ │ │ ├── usa-topo.json
│ │ │ │ ├── world-topo.json
│ │ │ │ └── zambia-topo.json
│ │ │ ├── plugin/
│ │ │ │ ├── index.ts
│ │ │ │ └── transformProps.ts
│ │ │ └── types.ts
│ │ ├── stories/
│ │ │ ├── ChoroplethMap.stories.tsx
│ │ │ ├── generateFakeMapData.ts
│ │ │ └── useFakeMapData.ts
│ │ ├── test/
│ │ │ ├── index.test.ts
│ │ │ └── tsconfig.json
│ │ ├── tsconfig.json
│ │ └── types/
│ │ └── external.d.ts
│ ├── setupJest.js
│ └── superset-ui-plugins-demo/
│ ├── .storybook/
│ │ ├── addons.js
│ │ ├── config.js
│ │ └── storybook.css
│ ├── README.md
│ ├── package.json
│ └── storybook/
│ └── stories/
│ └── legacy-plugin-chart-word-cloud/
│ ├── Stories.tsx
│ ├── data.js
│ └── index.js
├── test/
│ ├── __mocks__/
│ │ ├── mockExportObject.js
│ │ ├── mockExportString.js
│ │ └── svgrMock.tsx
│ ├── setup.ts
│ └── shims/
│ ├── Cache.ts
│ └── CacheStorage.ts
├── tsconfig.eslint.json
└── tsconfig.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .eslintignore
================================================
coverage/
node_modules/
public/
esm/
lib/
tmp/
dist/
temporary-plugins/
storybook-static/
================================================
FILE: .eslintrc.js
================================================
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
module.exports = {
extends: [
'airbnb',
'prettier',
'prettier/react',
'plugin:react-hooks/recommended',
],
parser: '@babel/eslint-parser',
parserOptions: {
ecmaFeatures: {
experimentalObjectRestSpread: true,
},
},
env: {
browser: true,
},
settings: {
'import/resolver': {
webpack: {},
node: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
},
},
// Allow core/src and core/test, not import modules from lib
'import/internal-regex': /^@superset-ui\/core\/(src|test)/,
'import/core-modules': [
'@superset-ui/core',
'@superset-ui/chart-controls',
'@superset-ui/legacy-plugin-chart-calendar',
'@superset-ui/legacy-plugin-chart-chord',
'@superset-ui/legacy-plugin-chart-country-map',
'@superset-ui/legacy-plugin-chart-event-flow',
'@superset-ui/legacy-plugin-chart-force-directed',
'@superset-ui/legacy-plugin-chart-heatmap',
'@superset-ui/legacy-plugin-chart-histogram',
'@superset-ui/legacy-plugin-chart-horizon',
'@superset-ui/legacy-plugin-chart-map-box',
'@superset-ui/legacy-plugin-chart-paired-t-test',
'@superset-ui/legacy-plugin-chart-parallel-coordinates',
'@superset-ui/legacy-plugin-chart-partition',
'@superset-ui/legacy-plugin-chart-pivot-table',
'@superset-ui/legacy-plugin-chart-rose',
'@superset-ui/legacy-plugin-chart-sankey',
'@superset-ui/legacy-plugin-chart-sankey-loop',
'@superset-ui/legacy-plugin-chart-sunburst',
'@superset-ui/legacy-plugin-chart-time-table',
'@superset-ui/legacy-plugin-chart-treemap',
'@superset-ui/legacy-plugin-chart-world-map',
'@superset-ui/legacy-preset-chart-big-number',
'@superset-ui/legacy-preset-chart-nvd3',
'@superset-ui/plugin-chart-echarts',
'@superset-ui/plugin-chart-table',
'@superset-ui/plugin-chart-word-cloud',
'@superset-ui/preset-chart-xy',
],
react: {
version: 'detect',
},
},
plugins: ['prettier', 'react'],
rules: {
camelcase: [
'error',
{
allow: ['^UNSAFE_'],
properties: 'never',
},
],
curly: 2,
'class-methods-use-this': 0,
'func-names': 0,
'guard-for-in': 0,
'import/extensions': [
'error',
{
'.js': 'always',
'.jsx': 'always',
'.ts': 'always',
'.tsx': 'always',
'.json': 'always',
},
],
'import/no-cycle': 0, // re-enable up for discussion, might require some major refactors
'import/prefer-default-export': 0,
indent: 0,
'jsx-a11y/anchor-is-valid': 0, // disabled temporarily
'jsx-a11y/click-events-have-key-events': 0, // re-enable up for discussion
'jsx-a11y/mouse-events-have-key-events': 0, // re-enable up for discussion
'new-cap': 0,
'no-bitwise': 0,
'no-continue': 0,
'no-mixed-operators': 0,
'no-multi-assign': 0,
'no-multi-spaces': 0,
'no-nested-ternary': 0,
'no-prototype-builtins': 0,
'no-restricted-properties': 0,
'no-restricted-imports': [
'error',
{
paths: [
{
name: 'antd',
message:
'Please import Ant components from the index of common/components',
},
],
},
],
'no-shadow': 0, // re-enable up for discussion
'padded-blocks': 0,
'prefer-arrow-callback': 0,
'prefer-object-spread': 1,
'prefer-destructuring': ['error', { object: true, array: false }],
'react/destructuring-assignment': 0, // re-enable up for discussion
'react/forbid-prop-types': 0,
'react/jsx-filename-extension': [1, { extensions: ['.jsx', '.tsx'] }],
'react/jsx-fragments': 1,
'react/jsx-no-bind': 0,
'react/jsx-props-no-spreading': 0, // re-enable up for discussion
'react/no-array-index-key': 0,
'react/no-string-refs': 0,
'react/no-unescaped-entities': 0,
'react/no-unused-prop-types': 0,
'react/prop-types': 0,
'react/require-default-props': 0,
'react/static-property-placement': 0, // disabled temporarily
'prettier/prettier': 'error',
},
overrides: [
{
files: ['*.ts', '*.tsx'],
parser: '@typescript-eslint/parser',
extends: [
'airbnb',
'plugin:@typescript-eslint/recommended',
'prettier',
'prettier/@typescript-eslint',
'prettier/react',
],
plugins: ['@typescript-eslint/eslint-plugin', 'prettier', 'react'],
rules: {
'@typescript-eslint/ban-ts-ignore': 0,
'@typescript-eslint/ban-ts-comment': 0, // disabled temporarily
'@typescript-eslint/ban-types': 0, // disabled temporarily
'@typescript-eslint/no-empty-function': 0,
'@typescript-eslint/no-explicit-any': 0,
'@typescript-eslint/no-use-before-define': 1,
'@typescript-eslint/no-non-null-assertion': 0, // disabled temporarily
'@typescript-eslint/explicit-function-return-type': 0,
'@typescript-eslint/explicit-module-boundary-types': 0, // re-enable up for discussion
camelcase: 0,
'class-methods-use-this': 0,
'func-names': 0,
'guard-for-in': 0,
// there is a bug related to re-exports with this rule
// which doesn't seem to have been fixed: https://github.com/benmosher/eslint-plugin-import/issues/1460
'import/named': 0,
'import/no-cycle': 0, // re-enable up for discussion, might require some major refactors
'import/extensions': [
'error',
{
'.ts': 'always',
'.tsx': 'always',
'.json': 'always',
},
],
'import/no-named-as-default-member': 0,
'import/prefer-default-export': 0,
indent: 0,
'jsx-a11y/anchor-is-valid': 0, // disabled temporarily
'jsx-a11y/click-events-have-key-events': 0, // re-enable up for discussion
'jsx-a11y/mouse-events-have-key-events': 0, // re-enable up for discussion
'new-cap': 0,
'no-bitwise': 0,
'no-continue': 0,
'no-mixed-operators': 0,
'no-multi-assign': 0,
'no-multi-spaces': 0,
'no-nested-ternary': 0,
'no-prototype-builtins': 0,
'no-restricted-properties': 0,
'no-shadow': 0, // re-enable up for discussion
'no-use-before-define': 0, // disabled temporarily
'padded-blocks': 0,
'prefer-arrow-callback': 0,
'prefer-destructuring': ['error', { object: true, array: false }],
'react/destructuring-assignment': 0, // re-enable up for discussion
'react/forbid-prop-types': 0,
'react/jsx-filename-extension': [1, { extensions: ['.jsx', '.tsx'] }],
'react/jsx-fragments': 1,
'react/jsx-no-bind': 0,
'react/jsx-props-no-spreading': 0, // re-enable up for discussion
'react/no-array-index-key': 0,
'react/no-string-refs': 0,
'react/no-unescaped-entities': 0,
'react/no-unused-prop-types': 0,
'react/prop-types': 0,
'react/require-default-props': 0,
'react/static-property-placement': 0, // re-enable up for discussion
'react/sort-comp': 0,
'prettier/prettier': 'error',
},
settings: {
'import/resolver': {
webpack: {},
typescript: {},
},
react: {
version: 'detect',
},
},
},
{
files: ['*.stories.jsx', '*.stories.tsx'],
rules: {
// this is to keep eslint from complaining about storybook addons,
// since they are included as dev dependencies rather than direct dependencies.
'import/no-extraneous-dependencies': [
'error',
{ devDependencies: true },
],
},
},
{
files: ['*.d.ts'],
rules: {
'max-classes-per-file': 0,
},
},
{
files: [
'*.test.ts',
'*.test.tsx',
'*.test.js',
'*.test.jsx',
'fixtures.*',
],
plugins: ['jest', 'jest-dom', 'no-only-tests', 'testing-library'],
env: {
'jest/globals': true,
},
extends: ['plugin:jest/recommended', 'plugin:testing-library/react'],
rules: {
'import/no-extraneous-dependencies': 0,
'jest/consistent-test-it': 'error',
'jest/no-try-expect': 0,
'max-classes-per-file': 0,
'no-only-tests/no-only-tests': 'error',
'prefer-promise-reject-errors': 0,
},
},
{
files: ['webpack*.js', '.*rc.js', '*.config.js'],
env: {
node: true,
},
settings: {
'import/resolver': {
node: {},
},
},
},
{
files: './packages/generator-superset/**/*.test.*',
env: {
node: true,
},
settings: {
'import/resolver': {
node: {},
},
},
rules: {
'jest/expect-expect': 0,
},
},
],
};
================================================
FILE: .github/CODEOWNERS
================================================
# See https://help.github.com/articles/about-codeowners/
# for more info about CODEOWNERS file
# It uses the same pattern rule for gitignore file
# https://git-scm.com/docs/gitignore#_pattern_format
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# these users/team will be requested for review
# when someone opens a pull request.
* @apache-superset/embeddable-charts-team
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
---
### Describe the bug
A clear and concise description of what the bug is.
### To Reproduce
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
### Expected behavior
A clear and concise description of what you expected to happen.
### Screenshots
If applicable, add screenshots to help explain your problem.
### Environment (please complete the following information):
- superset-ui version: [e.g. v0.5.0]
- Node version: `node -v`
- npm version: `npm -v`
### Additional context
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
---
### Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
### Describe the solution you'd like
A clear and concise description of what you want to happen.
### Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
### Additional context\*\* Add any other context or screenshots about the feature request here.
================================================
FILE: .github/ISSUE_TEMPLATE/question.md
================================================
---
name: Question
about: Ask for help with something.
---
Your question.
- How do I xxx?
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
💔 Breaking Changes
🏆 Enhancements
📜 Documentation
🐛 Bug Fix
🏠 Internal
================================================
FILE: .github/config.yml
================================================
# Configuration for request-info - https://github.com/behaviorbot/request-info
# *Required* Comment to reply with
requestInfoReplyComment: >
We would appreciate it if you could provide us with more info about this issue/pr!
# *OPTIONAL* default titles to check against for lack of descriptiveness
# MUST BE ALL LOWERCASE
requestInfoDefaultTitles:
- update readme.md
- updates
# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given
requestInfoLabelToAdd: needs-more-info
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: npm
directory: '/'
schedule:
interval: daily
open-pull-requests-limit: 10
ignore:
- dependency-name: bootstrap
versions:
- '>= 4.a, < 5'
- dependency-name: d3
versions:
- '>= 6.a, < 7'
- dependency-name: '@types/jsdom'
versions:
- '> 12.2.4'
- dependency-name: '@types/react'
versions:
- 17.0.1
- 17.0.2
- 17.0.3
- dependency-name: '@babel/preset-env'
versions:
- 7.12.13
- 7.13.10
- 7.13.12
- 7.13.9
- dependency-name: '@babel/compat-data'
versions:
- 7.12.13
- 7.13.0
- 7.13.11
- 7.13.12
- 7.13.6
- 7.13.8
- dependency-name: elliptic
versions:
- 6.5.3
- 6.5.4
- dependency-name: yeoman-test
versions:
- 4.0.0
- 5.0.1
- dependency-name: '@emotion/core'
versions:
- 11.0.0
- dependency-name: react-error-boundary
versions:
- 3.1.0
- dependency-name: jquery
versions:
- 3.5.0
================================================
FILE: .github/issue_label_bot.yaml
================================================
label-alias:
bug: '#bug'
feature_request: '#enhancement'
question: '#question'
================================================
FILE: .github/semantic.yml
================================================
# Always validate the PR title, and ignore the commits
titleOnly: true
================================================
FILE: .github/workflows/chromatic.yml
================================================
name: Upload Chomatic Build
on:
workflow_run:
workflows: ['build-and-test-workflow']
types:
- completed
jobs:
upload:
runs-on: ubuntu-latest
if: >
${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion
== 'success' }}
steps:
- name: 'Download artifact'
uses: actions/github-script@v3.1.0
with:
script: |
var artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "storybookBuild"
})[0];
var download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/storybookBuild.zip', Buffer.from(download.data));
- run: unzip storybookBuild.zip
- name: Deploy to Chromatic
uses: chromaui/action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
storybookBuildDir: storybookBuild
# uncomment to automatically accept all chromatic changes
# autoAcceptChanges: true
================================================
FILE: .github/workflows/ci.yml
================================================
name: build-and-test-workflow
on:
push:
branches:
- '*'
tags-ignore:
- 'trigger-patch-test.*'
pull_request:
jobs:
build:
name: Build and test
runs-on: ubuntu-20.04
env:
CODECOV_TOKEN: '${{ secrets.CODECOV_TOKEN }}'
strategy:
matrix:
node-version: [16]
steps:
- uses: actions/checkout@v2
with:
# pulls all commits (needed for lerna / semantic release to correctly version)
fetch-depth: '0'
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache npm
uses: actions/cache@v1
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- name: Get npm cache directory path
id: npm-cache-dir-path
run: echo "::set-output name=dir::$(npm config get cache)"
- name: Cache npm
uses: actions/cache@v1
id: npm-cache # use this to check for `cache-hit` (`steps.npm-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.npm-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- name: Install dependencies
run: npm ci
- name: Run ESLint
run: npm run lint --quiet
- name: Build packages
run: npm run build
- name: Run unit tests
run: npm run test
- name: Build Storybook
run: npm run build-storybook
- uses: actions/upload-artifact@v2
with:
name: storybookBuild
path: ./packages/superset-ui-demo/storybook-static/
- name: Report code coverage
run: .github/workflows/codecov.sh
================================================
FILE: .github/workflows/codecov.sh
================================================
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Note: this script was fetched from https://codecov.io/bash in response
# to a breach that occurred around it in Jan 2021 (https://about.codecov.io/security-update/)
# This script should probably be periodically updated and reviewed from the above URL :)
#
set -e +o pipefail
VERSION="1.0.1"
codecov_flags=( )
url="https://codecov.io"
env="$CODECOV_ENV"
service=""
token=""
search_in=""
# shellcheck disable=SC2153
flags="$CODECOV_FLAGS"
exit_with=0
curlargs=""
curlawsargs=""
dump="0"
clean="0"
curl_s="-s"
name="$CODECOV_NAME"
include_cov=""
exclude_cov=""
ddp="$HOME/Library/Developer/Xcode/DerivedData"
xp=""
files=""
save_to=""
direct_file_upload=""
cacert="$CODECOV_CA_BUNDLE"
gcov_ignore="-not -path './bower_components/**' -not -path './node_modules/**' -not -path './vendor/**'"
gcov_include=""
ft_gcov="1"
ft_coveragepy="1"
ft_fix="1"
ft_search="1"
ft_s3="1"
ft_network="1"
ft_xcodellvm="1"
ft_xcodeplist="0"
ft_gcovout="1"
ft_html="0"
ft_yaml="0"
_git_root=$(git rev-parse --show-toplevel 2>/dev/null || hg root 2>/dev/null || echo "$PWD")
git_root="$_git_root"
remote_addr=""
if [ "$git_root" = "$PWD" ];
then
git_root="."
fi
branch_o=""
build_o=""
commit_o=""
pr_o=""
prefix_o=""
network_filter_o=""
search_in_o=""
slug_o=""
tag_o=""
url_o=""
git_ls_files_recurse_submodules_o=""
package="bash"
commit="$VCS_COMMIT_ID"
branch="$VCS_BRANCH_NAME"
pr="$VCS_PULL_REQUEST"
slug="$VCS_SLUG"
tag="$VCS_TAG"
build_url="$CI_BUILD_URL"
build="$CI_BUILD_ID"
job="$CI_JOB_ID"
beta_xcode_partials=""
proj_root="$git_root"
gcov_exe="gcov"
gcov_arg=""
b="\033[0;36m"
g="\033[0;32m"
r="\033[0;31m"
e="\033[0;90m"
y="\033[0;33m"
x="\033[0m"
show_help() {
cat << EOF
Codecov Bash $VERSION
Global report uploading tool for Codecov
Documentation at https://docs.codecov.io/docs
Contribute at https://github.com/codecov/codecov-bash
-h Display this help and exit
-f FILE Target file(s) to upload
-f "path/to/file" only upload this file
skips searching unless provided patterns below
-f '!*.bar' ignore all files at pattern *.bar
-f '*.foo' include all files at pattern *.foo
Must use single quotes.
This is non-exclusive, use -s "*.foo" to match specific paths.
-s DIR Directory to search for coverage reports.
Already searches project root and artifact folders.
-t TOKEN Set the private repository token
(option) set environment variable CODECOV_TOKEN=:uuid
-t @/path/to/token_file
-t uuid
-n NAME Custom defined name of the upload. Visible in Codecov UI
-e ENV Specify environment variables to be included with this build
Also accepting environment variables: CODECOV_ENV=VAR,VAR2
-e VAR,VAR2
-k prefix Prefix filepaths to help resolve path fixing
-i prefix Only include files in the network with a certain prefix. Useful for upload-specific path fixing
-X feature Toggle functionalities
-X gcov Disable gcov
-X coveragepy Disable python coverage
-X fix Disable report fixing
-X search Disable searching for reports
-X xcode Disable xcode processing
-X network Disable uploading the file network
-X gcovout Disable gcov output
-X html Enable coverage for HTML files
-X recursesubs Enable recurse submodules in git projects when searching for source files
-X yaml Enable coverage for YAML files
-N The commit SHA of the parent for which you are uploading coverage. If not present,
the parent will be determined using the API of your repository provider.
When using the repository provider's API, the parent is determined via finding
the closest ancestor to the commit.
-R root dir Used when not in git/hg project to identify project root directory
-F flag Flag the upload to group coverage metrics
-F unittests This upload is only unittests
-F integration This upload is only integration tests
-F ui,chrome This upload is Chrome - UI tests
-c Move discovered coverage reports to the trash
-z FILE Upload specified file directly to Codecov and bypass all report generation.
This is inteded to be used only with a pre-formatted Codecov report and is not
expected to work under any other circumstances.
-Z Exit with 1 if not successful. Default will Exit with 0
-- xcode --
-D Custom Derived Data Path for Coverage.profdata and gcov processing
Default '~/Library/Developer/Xcode/DerivedData'
-J Specify packages to build coverage. Uploader will only build these packages.
This can significantly reduces time to build coverage reports.
-J 'MyAppName' Will match "MyAppName" and "MyAppNameTests"
-J '^ExampleApp$' Will match only "ExampleApp" not "ExampleAppTests"
-- gcov --
-g GLOB Paths to ignore during gcov gathering
-G GLOB Paths to include during gcov gathering
-p dir Project root directory
Also used when preparing gcov
-x gcovexe gcov executable to run. Defaults to 'gcov'
-a gcovargs extra arguments to pass to gcov
-- Override CI Environment Variables --
These variables are automatically detected by popular CI providers
-B branch Specify the branch name
-C sha Specify the commit sha
-P pr Specify the pull request number
-b build Specify the build number
-T tag Specify the git tag
-- Enterprise --
-u URL Set the target url for Enterprise customers
Not required when retrieving the bash uploader from your CCE
(option) Set environment variable CODECOV_URL=https://my-hosted-codecov.com
-r SLUG owner/repo slug used instead of the private repo token in Enterprise
(option) set environment variable CODECOV_SLUG=:owner/:repo
(option) set in your codecov.yml "codecov.slug"
-S PATH File path to your cacert.pem file used to verify ssl with Codecov Enterprise (optional)
(option) Set environment variable: CODECOV_CA_BUNDLE="/path/to/ca.pem"
-U curlargs Extra curl arguments to communicate with Codecov. e.g., -U "--proxy http://http-proxy"
-A curlargs Extra curl arguments to communicate with AWS.
-- Debugging --
-d Don't upload, but dump upload file to stdout
-q PATH Write upload file to path
-K Remove color from the output
-v Verbose mode
EOF
}
say() {
echo -e "$1"
}
urlencode() {
echo "$1" | curl -Gso /dev/null -w "%{url_effective}" --data-urlencode @- "" | cut -c 3- | sed -e 's/%0A//'
}
swiftcov() {
_dir=$(dirname "$1" | sed 's/\(Build\).*/\1/g')
for _type in app framework xctest
do
find "$_dir" -name "*.$_type" | while read -r f
do
_proj=${f##*/}
_proj=${_proj%."$_type"}
if [ "$2" = "" ] || [ "$(echo "$_proj" | grep -i "$2")" != "" ];
then
say " $g+$x Building reports for $_proj $_type"
dest=$([ -f "$f/$_proj" ] && echo "$f/$_proj" || echo "$f/Contents/MacOS/$_proj")
# shellcheck disable=SC2001
_proj_name=$(echo "$_proj" | sed -e 's/[[:space:]]//g')
# shellcheck disable=SC2086
xcrun llvm-cov show $beta_xcode_partials -instr-profile "$1" "$dest" > "$_proj_name.$_type.coverage.txt" \
|| say " ${r}x>${x} llvm-cov failed to produce results for $dest"
fi
done
done
}
# Credits to: https://gist.github.com/pkuczynski/8665367
parse_yaml() {
local prefix=$2
local s='[[:space:]]*' w='[a-zA-Z0-9_]*'
local fs
fs=$(echo @|tr @ '\034')
sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \
-e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" "$1" |
awk -F"$fs" '{
indent = length($1)/2;
vname[indent] = $2;
for (i in vname) {if (i > indent) {delete vname[i]}}
if (length($3) > 0) {
vn=""; if (indent > 0) {vn=(vn)(vname[0])("_")}
printf("%s%s%s=\"%s\"\n", "'"$prefix"'",vn, $2, $3);
}
}'
}
if [ $# != 0 ];
then
while getopts "a:A:b:B:cC:dD:e:f:F:g:G:hi:J:k:Kn:p:P:Q:q:r:R:s:S:t:T:u:U:vx:X:Zz:N:-" o
do
codecov_flags+=( "$o" )
case "$o" in
"-")
echo -e "${r}Long options are not supported${x}"
exit 2
;;
"?")
;;
"N")
parent=$OPTARG
;;
"a")
gcov_arg=$OPTARG
;;
"A")
curlawsargs="$OPTARG"
;;
"b")
build_o="$OPTARG"
;;
"B")
branch_o="$OPTARG"
;;
"c")
clean="1"
;;
"C")
commit_o="$OPTARG"
;;
"d")
dump="1"
;;
"D")
ddp="$OPTARG"
;;
"e")
env="$env,$OPTARG"
;;
"f")
if [ "${OPTARG::1}" = "!" ];
then
exclude_cov="$exclude_cov -not -path '${OPTARG:1}'"
elif [[ "$OPTARG" = *"*"* ]];
then
include_cov="$include_cov -or -path '$OPTARG'"
else
ft_search=0
if [ "$files" = "" ];
then
files="$OPTARG"
else
files="$files
$OPTARG"
fi
fi
;;
"F")
if [ "$flags" = "" ];
then
flags="$OPTARG"
else
flags="$flags,$OPTARG"
fi
;;
"g")
gcov_ignore="$gcov_ignore -not -path '$OPTARG'"
;;
"G")
gcov_include="$gcov_include -path '$OPTARG'"
;;
"h")
show_help
exit 0;
;;
"i")
network_filter_o="$OPTARG"
;;
"J")
ft_xcodellvm="1"
ft_xcodeplist="0"
if [ "$xp" = "" ];
then
xp="$OPTARG"
else
xp="$xp\|$OPTARG"
fi
;;
"k")
prefix_o=$(echo "$OPTARG" | sed -e 's:^/*::' -e 's:/*$::')
;;
"K")
b=""
g=""
r=""
e=""
x=""
;;
"n")
name="$OPTARG"
;;
"p")
proj_root="$OPTARG"
;;
"P")
pr_o="$OPTARG"
;;
"Q")
# this is only meant for Codecov packages to overwrite
package="$OPTARG"
;;
"q")
save_to="$OPTARG"
;;
"r")
slug_o="$OPTARG"
;;
"R")
git_root="$OPTARG"
;;
"s")
if [ "$search_in_o" = "" ];
then
search_in_o="$OPTARG"
else
search_in_o="$search_in_o $OPTARG"
fi
;;
"S")
# shellcheck disable=SC2089
cacert="--cacert \"$OPTARG\""
;;
"t")
if [ "${OPTARG::1}" = "@" ];
then
token=$(< "${OPTARG:1}" tr -d ' \n')
else
token="$OPTARG"
fi
;;
"T")
tag_o="$OPTARG"
;;
"u")
url_o=$(echo "$OPTARG" | sed -e 's/\/$//')
;;
"U")
curlargs="$OPTARG"
;;
"v")
set -x
curl_s=""
;;
"x")
gcov_exe=$OPTARG
;;
"X")
if [ "$OPTARG" = "gcov" ];
then
ft_gcov="0"
elif [ "$OPTARG" = "coveragepy" ] || [ "$OPTARG" = "py" ];
then
ft_coveragepy="0"
elif [ "$OPTARG" = "gcovout" ];
then
ft_gcovout="0"
elif [ "$OPTARG" = "xcodellvm" ];
then
ft_xcodellvm="1"
ft_xcodeplist="0"
elif [ "$OPTARG" = "fix" ] || [ "$OPTARG" = "fixes" ];
then
ft_fix="0"
elif [ "$OPTARG" = "xcode" ];
then
ft_xcodellvm="0"
ft_xcodeplist="0"
elif [ "$OPTARG" = "search" ];
then
ft_search="0"
elif [ "$OPTARG" = "xcodepartials" ];
then
beta_xcode_partials="-use-color"
elif [ "$OPTARG" = "network" ];
then
ft_network="0"
elif [ "$OPTARG" = "s3" ];
then
ft_s3="0"
elif [ "$OPTARG" = "html" ];
then
ft_html="1"
elif [ "$OPTARG" = "recursesubs" ];
then
git_ls_files_recurse_submodules_o="--recurse-submodules"
elif [ "$OPTARG" = "yaml" ];
then
ft_yaml="1"
fi
;;
"Z")
exit_with=1
;;
"z")
direct_file_upload="$OPTARG"
ft_gcov="0"
ft_coveragepy="0"
ft_fix="0"
ft_search="0"
ft_network="0"
ft_xcodellvm="0"
ft_gcovout="0"
include_cov=""
;;
*)
echo -e "${r}Unexpected flag not supported${x}"
;;
esac
done
fi
say "
_____ _
/ ____| | |
| | ___ __| | ___ ___ _____ __
| | / _ \\ / _\` |/ _ \\/ __/ _ \\ \\ / /
| |___| (_) | (_| | __/ (_| (_) \\ V /
\\_____\\___/ \\__,_|\\___|\\___\\___/ \\_/
Bash-$VERSION
"
# check for installed tools
# git/hg
if [ "$direct_file_upload" = "" ];
then
if [ -x "$(command -v git)" ];
then
say "$b==>$x $(git --version) found"
else
say "$y==>$x git not installed, testing for mercurial"
if [ -x "$(command -v hg)" ];
then
say "$b==>$x $(hg --version) found"
else
say "$r==>$x git nor mercurial are installed. Uploader may fail or have unintended consequences"
fi
fi
fi
# curl
if [ -x "$(command -v curl)" ];
then
say "$b==>$x $(curl --version)"
else
say "$r==>$x curl not installed. Exiting."
exit ${exit_with};
fi
search_in="$proj_root"
#shellcheck disable=SC2154
if [ "$JENKINS_URL" != "" ];
then
say "$e==>$x Jenkins CI detected."
# https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project
# https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin#GitHubpullrequestbuilderplugin-EnvironmentVariables
service="jenkins"
# shellcheck disable=SC2154
if [ "$ghprbSourceBranch" != "" ];
then
branch="$ghprbSourceBranch"
elif [ "$GIT_BRANCH" != "" ];
then
branch="$GIT_BRANCH"
elif [ "$BRANCH_NAME" != "" ];
then
branch="$BRANCH_NAME"
fi
# shellcheck disable=SC2154
if [ "$ghprbActualCommit" != "" ];
then
commit="$ghprbActualCommit"
elif [ "$GIT_COMMIT" != "" ];
then
commit="$GIT_COMMIT"
fi
# shellcheck disable=SC2154
if [ "$ghprbPullId" != "" ];
then
pr="$ghprbPullId"
elif [ "$CHANGE_ID" != "" ];
then
pr="$CHANGE_ID"
fi
build="$BUILD_NUMBER"
# shellcheck disable=SC2153
build_url=$(urlencode "$BUILD_URL")
elif [ "$CI" = "true" ] && [ "$TRAVIS" = "true" ] && [ "$SHIPPABLE" != "true" ];
then
say "$e==>$x Travis CI detected."
# https://docs.travis-ci.com/user/environment-variables/
service="travis"
commit="${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT}"
build="$TRAVIS_JOB_NUMBER"
pr="$TRAVIS_PULL_REQUEST"
job="$TRAVIS_JOB_ID"
slug="$TRAVIS_REPO_SLUG"
env="$env,TRAVIS_OS_NAME"
tag="$TRAVIS_TAG"
if [ "$TRAVIS_BRANCH" != "$TRAVIS_TAG" ];
then
branch="${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}"
fi
language=$(compgen -A variable | grep "^TRAVIS_.*_VERSION$" | head -1)
if [ "$language" != "" ];
then
env="$env,${!language}"
fi
elif [ "$CODEBUILD_CI" = "true" ];
then
say "$e==>$x AWS Codebuild detected."
# https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
service="codebuild"
commit="$CODEBUILD_RESOLVED_SOURCE_VERSION"
build="$CODEBUILD_BUILD_ID"
branch="$(echo "$CODEBUILD_WEBHOOK_HEAD_REF" | sed 's/^refs\/heads\///')"
if [ "${CODEBUILD_SOURCE_VERSION/pr}" = "$CODEBUILD_SOURCE_VERSION" ] ; then
pr="false"
else
pr="$(echo "$CODEBUILD_SOURCE_VERSION" | sed 's/^pr\///')"
fi
job="$CODEBUILD_BUILD_ID"
slug="$(echo "$CODEBUILD_SOURCE_REPO_URL" | sed 's/^.*:\/\/[^\/]*\///' | sed 's/\.git$//')"
elif [ "$CI" = "true" ] && [ "$CI_NAME" = "codeship" ];
then
say "$e==>$x Codeship CI detected."
# https://www.codeship.io/documentation/continuous-integration/set-environment-variables/
service="codeship"
branch="$CI_BRANCH"
build="$CI_BUILD_NUMBER"
build_url=$(urlencode "$CI_BUILD_URL")
commit="$CI_COMMIT_ID"
elif [ -n "$CF_BUILD_URL" ] && [ -n "$CF_BUILD_ID" ];
then
say "$e==>$x Codefresh CI detected."
# https://docs.codefresh.io/v1.0/docs/variables
service="codefresh"
branch="$CF_BRANCH"
build="$CF_BUILD_ID"
build_url=$(urlencode "$CF_BUILD_URL")
commit="$CF_REVISION"
elif [ "$TEAMCITY_VERSION" != "" ];
then
say "$e==>$x TeamCity CI detected."
# https://confluence.jetbrains.com/display/TCD8/Predefined+Build+Parameters
# https://confluence.jetbrains.com/plugins/servlet/mobile#content/view/74847298
if [ "$TEAMCITY_BUILD_BRANCH" = '' ];
then
echo " Teamcity does not automatically make build parameters available as environment variables."
echo " Add the following environment parameters to the build configuration"
echo " env.TEAMCITY_BUILD_BRANCH = %teamcity.build.branch%"
echo " env.TEAMCITY_BUILD_ID = %teamcity.build.id%"
echo " env.TEAMCITY_BUILD_URL = %teamcity.serverUrl%/viewLog.html?buildId=%teamcity.build.id%"
echo " env.TEAMCITY_BUILD_COMMIT = %system.build.vcs.number%"
echo " env.TEAMCITY_BUILD_REPOSITORY = %vcsroot.<YOUR TEAMCITY VCS NAME>.url%"
fi
service="teamcity"
branch="$TEAMCITY_BUILD_BRANCH"
build="$TEAMCITY_BUILD_ID"
build_url=$(urlencode "$TEAMCITY_BUILD_URL")
if [ "$TEAMCITY_BUILD_COMMIT" != "" ];
then
commit="$TEAMCITY_BUILD_COMMIT"
else
commit="$BUILD_VCS_NUMBER"
fi
remote_addr="$TEAMCITY_BUILD_REPOSITORY"
elif [ "$CI" = "true" ] && [ "$CIRCLECI" = "true" ];
then
say "$e==>$x Circle CI detected."
# https://circleci.com/docs/environment-variables
service="circleci"
branch="$CIRCLE_BRANCH"
build="$CIRCLE_BUILD_NUM"
job="$CIRCLE_NODE_INDEX"
if [ "$CIRCLE_PROJECT_REPONAME" != "" ];
then
slug="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME"
else
# git@github.com:owner/repo.git
slug="${CIRCLE_REPOSITORY_URL##*:}"
# owner/repo.git
slug="${slug%%.git}"
fi
pr="${CIRCLE_PULL_REQUEST##*/}"
commit="$CIRCLE_SHA1"
search_in="$search_in $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS"
elif [ "$BUDDYBUILD_BRANCH" != "" ];
then
say "$e==>$x buddybuild detected"
# http://docs.buddybuild.com/v6/docs/custom-prebuild-and-postbuild-steps
service="buddybuild"
branch="$BUDDYBUILD_BRANCH"
build="$BUDDYBUILD_BUILD_NUMBER"
build_url="https://dashboard.buddybuild.com/public/apps/$BUDDYBUILD_APP_ID/build/$BUDDYBUILD_BUILD_ID"
# BUDDYBUILD_TRIGGERED_BY
if [ "$ddp" = "$HOME/Library/Developer/Xcode/DerivedData" ];
then
ddp="/private/tmp/sandbox/${BUDDYBUILD_APP_ID}/bbtest"
fi
elif [ "${bamboo_planRepository_revision}" != "" ];
then
say "$e==>$x Bamboo detected"
# https://confluence.atlassian.com/bamboo/bamboo-variables-289277087.html#Bamboovariables-Build-specificvariables
service="bamboo"
commit="${bamboo_planRepository_revision}"
# shellcheck disable=SC2154
branch="${bamboo_planRepository_branch}"
# shellcheck disable=SC2154
build="${bamboo_buildNumber}"
# shellcheck disable=SC2154
build_url="${bamboo_buildResultsUrl}"
# shellcheck disable=SC2154
remote_addr="${bamboo_planRepository_repositoryUrl}"
elif [ "$CI" = "true" ] && [ "$BITRISE_IO" = "true" ];
then
# http://devcenter.bitrise.io/faq/available-environment-variables/
say "$e==>$x Bitrise CI detected."
service="bitrise"
branch="$BITRISE_GIT_BRANCH"
build="$BITRISE_BUILD_NUMBER"
build_url=$(urlencode "$BITRISE_BUILD_URL")
pr="$BITRISE_PULL_REQUEST"
if [ "$GIT_CLONE_COMMIT_HASH" != "" ];
then
commit="$GIT_CLONE_COMMIT_HASH"
fi
elif [ "$CI" = "true" ] && [ "$SEMAPHORE" = "true" ];
then
say "$e==>$x Semaphore CI detected."
# https://docs.semaphoreci.com/ci-cd-environment/environment-variables/#semaphore-related
service="semaphore"
branch="$SEMAPHORE_GIT_BRANCH"
build="$SEMAPHORE_WORKFLOW_NUMBER"
job="$SEMAPHORE_JOB_ID"
pr="$PULL_REQUEST_NUMBER"
slug="$SEMAPHORE_REPO_SLUG"
commit="$REVISION"
env="$env,SEMAPHORE_TRIGGER_SOURCE"
elif [ "$CI" = "true" ] && [ "$BUILDKITE" = "true" ];
then
say "$e==>$x Buildkite CI detected."
# https://buildkite.com/docs/guides/environment-variables
service="buildkite"
branch="$BUILDKITE_BRANCH"
build="$BUILDKITE_BUILD_NUMBER"
job="$BUILDKITE_JOB_ID"
build_url=$(urlencode "$BUILDKITE_BUILD_URL")
slug="$BUILDKITE_PROJECT_SLUG"
commit="$BUILDKITE_COMMIT"
if [[ "$BUILDKITE_PULL_REQUEST" != "false" ]]; then
pr="$BUILDKITE_PULL_REQUEST"
fi
tag="$BUILDKITE_TAG"
elif [ "$CI" = "drone" ] || [ "$DRONE" = "true" ];
then
say "$e==>$x Drone CI detected."
# http://docs.drone.io/env.html
# drone commits are not full shas
service="drone.io"
branch="$DRONE_BRANCH"
build="$DRONE_BUILD_NUMBER"
build_url=$(urlencode "${DRONE_BUILD_LINK}")
pr="$DRONE_PULL_REQUEST"
job="$DRONE_JOB_NUMBER"
tag="$DRONE_TAG"
elif [ "$CI" = "true" ] && [ "$HEROKU_TEST_RUN_BRANCH" != "" ];
then
say "$e==>$x Heroku CI detected."
# https://devcenter.heroku.com/articles/heroku-ci#environment-variables
service="heroku"
branch="$HEROKU_TEST_RUN_BRANCH"
build="$HEROKU_TEST_RUN_ID"
commit="$HEROKU_TEST_RUN_COMMIT_VERSION"
elif [[ "$CI" = "true" || "$CI" = "True" ]] && [[ "$APPVEYOR" = "true" || "$APPVEYOR" = "True" ]];
then
say "$e==>$x Appveyor CI detected."
# http://www.appveyor.com/docs/environment-variables
service="appveyor"
branch="$APPVEYOR_REPO_BRANCH"
build=$(urlencode "$APPVEYOR_JOB_ID")
pr="$APPVEYOR_PULL_REQUEST_NUMBER"
job="$APPVEYOR_ACCOUNT_NAME%2F$APPVEYOR_PROJECT_SLUG%2F$APPVEYOR_BUILD_VERSION"
slug="$APPVEYOR_REPO_NAME"
commit="$APPVEYOR_REPO_COMMIT"
build_url=$(urlencode "${APPVEYOR_URL}/project/${APPVEYOR_REPO_NAME}/builds/$APPVEYOR_BUILD_ID/job/${APPVEYOR_JOB_ID}")
elif [ "$CI" = "true" ] && [ "$WERCKER_GIT_BRANCH" != "" ];
then
say "$e==>$x Wercker CI detected."
# http://devcenter.wercker.com/articles/steps/variables.html
service="wercker"
branch="$WERCKER_GIT_BRANCH"
build="$WERCKER_MAIN_PIPELINE_STARTED"
slug="$WERCKER_GIT_OWNER/$WERCKER_GIT_REPOSITORY"
commit="$WERCKER_GIT_COMMIT"
elif [ "$CI" = "true" ] && [ "$MAGNUM" = "true" ];
then
say "$e==>$x Magnum CI detected."
# https://magnum-ci.com/docs/environment
service="magnum"
branch="$CI_BRANCH"
build="$CI_BUILD_NUMBER"
commit="$CI_COMMIT"
elif [ "$SHIPPABLE" = "true" ];
then
say "$e==>$x Shippable CI detected."
# http://docs.shippable.com/ci_configure/
service="shippable"
# shellcheck disable=SC2153
branch=$([ "$HEAD_BRANCH" != "" ] && echo "$HEAD_BRANCH" || echo "$BRANCH")
build="$BUILD_NUMBER"
build_url=$(urlencode "$BUILD_URL")
pr="$PULL_REQUEST"
slug="$REPO_FULL_NAME"
# shellcheck disable=SC2153
commit="$COMMIT"
elif [ "$TDDIUM" = "true" ];
then
say "Solano CI detected."
# http://docs.solanolabs.com/Setup/tddium-set-environment-variables/
service="solano"
commit="$TDDIUM_CURRENT_COMMIT"
branch="$TDDIUM_CURRENT_BRANCH"
build="$TDDIUM_TID"
pr="$TDDIUM_PR_ID"
elif [ "$GREENHOUSE" = "true" ];
then
say "$e==>$x Greenhouse CI detected."
# http://docs.greenhouseci.com/docs/environment-variables-files
service="greenhouse"
branch="$GREENHOUSE_BRANCH"
build="$GREENHOUSE_BUILD_NUMBER"
build_url=$(urlencode "$GREENHOUSE_BUILD_URL")
pr="$GREENHOUSE_PULL_REQUEST"
commit="$GREENHOUSE_COMMIT"
search_in="$search_in $GREENHOUSE_EXPORT_DIR"
elif [ "$GITLAB_CI" != "" ];
then
say "$e==>$x GitLab CI detected."
# http://doc.gitlab.com/ce/ci/variables/README.html
service="gitlab"
branch="${CI_BUILD_REF_NAME:-$CI_COMMIT_REF_NAME}"
build="${CI_BUILD_ID:-$CI_JOB_ID}"
remote_addr="${CI_BUILD_REPO:-$CI_REPOSITORY_URL}"
commit="${CI_BUILD_REF:-$CI_COMMIT_SHA}"
slug="${CI_PROJECT_PATH}"
elif [ "$GITHUB_ACTIONS" != "" ];
then
say "$e==>$x GitHub Actions detected."
say " Env vars used:"
say " -> GITHUB_ACTIONS: ${GITHUB_ACTIONS}"
say " -> GITHUB_HEAD_REF: ${GITHUB_HEAD_REF}"
say " -> GITHUB_REF: ${GITHUB_REF}"
say " -> GITHUB_REPOSITORY: ${GITHUB_REPOSITORY}"
say " -> GITHUB_RUN_ID: ${GITHUB_RUN_ID}"
say " -> GITHUB_SHA: ${GITHUB_SHA}"
say " -> GITHUB_WORKFLOW: ${GITHUB_WORKFLOW}"
# https://github.com/features/actions
service="github-actions"
# https://help.github.com/en/articles/virtual-environments-for-github-actions#environment-variables
branch="${GITHUB_REF#refs/heads/}"
if [ "$GITHUB_HEAD_REF" != "" ];
then
# PR refs are in the format: refs/pull/7/merge
pr="${GITHUB_REF#refs/pull/}"
pr="${pr%/merge}"
branch="${GITHUB_HEAD_REF}"
fi
commit="${GITHUB_SHA}"
slug="${GITHUB_REPOSITORY}"
build="${GITHUB_RUN_ID}"
build_url=$(urlencode "http://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}")
job="$(urlencode "${GITHUB_WORKFLOW}")"
# actions/checkout runs in detached HEAD
mc=
if [ -n "$pr" ] && [ "$pr" != false ] && [ "$commit_o" == "" ];
then
mc=$(git show --no-patch --format="%P" 2>/dev/null || echo "")
if [[ "$mc" =~ ^[a-z0-9]{40}[[:space:]][a-z0-9]{40}$ ]];
then
mc=$(echo "$mc" | cut -d' ' -f2)
say " Fixing merge commit SHA $commit -> $mc"
commit=$mc
elif [[ "$mc" = "" ]];
then
say "$r-> Issue detecting commit SHA. Please run actions/checkout with fetch-depth > 1 or set to 0$x"
fi
fi
elif [ "$SYSTEM_TEAMFOUNDATIONSERVERURI" != "" ];
then
say "$e==>$x Azure Pipelines detected."
# https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=vsts
# https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&viewFallbackFrom=vsts&tabs=yaml
service="azure_pipelines"
commit="$BUILD_SOURCEVERSION"
build="$BUILD_BUILDNUMBER"
if [ -z "$SYSTEM_PULLREQUEST_PULLREQUESTNUMBER" ];
then
pr="$SYSTEM_PULLREQUEST_PULLREQUESTID"
else
pr="$SYSTEM_PULLREQUEST_PULLREQUESTNUMBER"
fi
project="${SYSTEM_TEAMPROJECT}"
server_uri="${SYSTEM_TEAMFOUNDATIONSERVERURI}"
job="${BUILD_BUILDID}"
branch="${BUILD_SOURCEBRANCH#"refs/heads/"}"
build_url=$(urlencode "${SYSTEM_TEAMFOUNDATIONSERVERURI}${SYSTEM_TEAMPROJECT}/_build/results?buildId=${BUILD_BUILDID}")
# azure/pipelines runs in detached HEAD
mc=
if [ -n "$pr" ] && [ "$pr" != false ];
then
mc=$(git show --no-patch --format="%P" 2>/dev/null || echo "")
if [[ "$mc" =~ ^[a-z0-9]{40}[[:space:]][a-z0-9]{40}$ ]];
then
mc=$(echo "$mc" | cut -d' ' -f2)
say " Fixing merge commit SHA $commit -> $mc"
commit=$mc
fi
fi
elif [ "$CI" = "true" ] && [ "$BITBUCKET_BUILD_NUMBER" != "" ];
then
say "$e==>$x Bitbucket detected."
# https://confluence.atlassian.com/bitbucket/variables-in-pipelines-794502608.html
service="bitbucket"
branch="$BITBUCKET_BRANCH"
build="$BITBUCKET_BUILD_NUMBER"
slug="$BITBUCKET_REPO_OWNER/$BITBUCKET_REPO_SLUG"
job="$BITBUCKET_BUILD_NUMBER"
pr="$BITBUCKET_PR_ID"
commit="$BITBUCKET_COMMIT"
# See https://jira.atlassian.com/browse/BCLOUD-19393
if [ "${#commit}" = 12 ];
then
commit=$(git rev-parse "$BITBUCKET_COMMIT")
fi
elif [ "$CI" = "true" ] && [ "$BUDDY" = "true" ];
then
say "$e==>$x Buddy CI detected."
# https://buddy.works/docs/pipelines/environment-variables
service="buddy"
branch="$BUDDY_EXECUTION_BRANCH"
build="$BUDDY_EXECUTION_ID"
build_url=$(urlencode "$BUDDY_EXECUTION_URL")
commit="$BUDDY_EXECUTION_REVISION"
pr="$BUDDY_EXECUTION_PULL_REQUEST_NO"
tag="$BUDDY_EXECUTION_TAG"
slug="$BUDDY_REPO_SLUG"
elif [ "$CIRRUS_CI" != "" ];
then
say "$e==>$x Cirrus CI detected."
# https://cirrus-ci.org/guide/writing-tasks/#environment-variables
service="cirrus-ci"
slug="$CIRRUS_REPO_FULL_NAME"
branch="$CIRRUS_BRANCH"
pr="$CIRRUS_PR"
commit="$CIRRUS_CHANGE_IN_REPO"
build="$CIRRUS_BUILD_ID"
build_url=$(urlencode "https://cirrus-ci.com/task/$CIRRUS_TASK_ID")
job="$CIRRUS_TASK_NAME"
elif [ "$DOCKER_REPO" != "" ];
then
say "$e==>$x Docker detected."
# https://docs.docker.com/docker-cloud/builds/advanced/
service="docker"
branch="$SOURCE_BRANCH"
commit="$SOURCE_COMMIT"
slug="$DOCKER_REPO"
tag="$CACHE_TAG"
env="$env,IMAGE_NAME"
else
say "${r}x>${x} No CI provider detected."
say " Testing inside Docker? ${b}http://docs.codecov.io/docs/testing-with-docker${x}"
say " Testing with Tox? ${b}https://docs.codecov.io/docs/python#section-testing-with-tox${x}"
fi
say " ${e}project root:${x} $git_root"
# find branch, commit, repo from git command
if [ "$GIT_BRANCH" != "" ];
then
branch="$GIT_BRANCH"
elif [ "$branch" = "" ];
then
branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || hg branch 2>/dev/null || echo "")
if [ "$branch" = "HEAD" ];
then
branch=""
fi
fi
if [ "$commit_o" = "" ];
then
if [ "$GIT_COMMIT" != "" ];
then
commit="$GIT_COMMIT"
elif [ "$commit" = "" ];
then
commit=$(git log -1 --format="%H" 2>/dev/null || hg id -i --debug 2>/dev/null | tr -d '+' || echo "")
fi
else
commit="$commit_o"
fi
if [ "$CODECOV_TOKEN" != "" ] && [ "$token" = "" ];
then
say "${e}-->${x} token set from env"
token="$CODECOV_TOKEN"
fi
if [ "$CODECOV_URL" != "" ] && [ "$url_o" = "" ];
then
say "${e}-->${x} url set from env"
url_o=$(echo "$CODECOV_URL" | sed -e 's/\/$//')
fi
if [ "$CODECOV_SLUG" != "" ];
then
say "${e}-->${x} slug set from env"
slug_o="$CODECOV_SLUG"
elif [ "$slug" = "" ];
then
if [ "$remote_addr" = "" ];
then
remote_addr=$(git config --get remote.origin.url || hg paths default || echo '')
fi
if [ "$remote_addr" != "" ];
then
if echo "$remote_addr" | grep -q "//"; then
# https
slug=$(echo "$remote_addr" | cut -d / -f 4,5 | sed -e 's/\.git$//')
else
# ssh
slug=$(echo "$remote_addr" | cut -d : -f 2 | sed -e 's/\.git$//')
fi
fi
if [ "$slug" = "/" ];
then
slug=""
fi
fi
yaml=$(cd "$git_root" && \
git ls-files "*codecov.yml" "*codecov.yaml" 2>/dev/null \
|| hg locate "*codecov.yml" "*codecov.yaml" 2>/dev/null \
|| cd "$proj_root" && find . -maxdepth 1 -type f -name '*codecov.y*ml' 2>/dev/null \
|| echo '')
yaml=$(echo "$yaml" | head -1)
if [ "$yaml" != "" ];
then
say " ${e}Yaml found at:${x} $yaml"
if [[ "$yaml" != /* ]]; then
# relative path for yaml file given, assume relative to the repo root
yaml="$git_root/$yaml"
fi
config=$(parse_yaml "$yaml" || echo '')
# TODO validate the yaml here
if [ "$(echo "$config" | grep 'codecov_token="')" != "" ] && [ "$token" = "" ];
then
say "${e}-->${x} token set from yaml"
token="$(echo "$config" | grep 'codecov_token="' | sed -e 's/codecov_token="//' | sed -e 's/"\.*//')"
fi
if [ "$(echo "$config" | grep 'codecov_url="')" != "" ] && [ "$url_o" = "" ];
then
say "${e}-->${x} url set from yaml"
url_o="$(echo "$config" | grep 'codecov_url="' | sed -e 's/codecov_url="//' | sed -e 's/"\.*//')"
fi
if [ "$(echo "$config" | grep 'codecov_slug="')" != "" ] && [ "$slug_o" = "" ];
then
say "${e}-->${x} slug set from yaml"
slug_o="$(echo "$config" | grep 'codecov_slug="' | sed -e 's/codecov_slug="//' | sed -e 's/"\.*//')"
fi
else
say " ${g}Yaml not found, that's ok! Learn more at${x} ${b}http://docs.codecov.io/docs/codecov-yaml${x}"
fi
if [ "$branch_o" != "" ];
then
branch=$(urlencode "$branch_o")
else
branch=$(urlencode "$branch")
fi
if [ "$slug_o" = "" ];
then
urlencoded_slug=$(urlencode "$slug")
else
urlencoded_slug=$(urlencode "$slug_o")
fi
query="branch=$branch\
&commit=$commit\
&build=$([ "$build_o" = "" ] && echo "$build" || echo "$build_o")\
&build_url=$build_url\
&name=$(urlencode "$name")\
&tag=$([ "$tag_o" = "" ] && echo "$tag" || echo "$tag_o")\
&slug=$urlencoded_slug\
&service=$service\
&flags=$flags\
&pr=$([ "$pr_o" = "" ] && echo "${pr##\#}" || echo "${pr_o##\#}")\
&job=$job\
&cmd_args=$(IFS=,; echo "${codecov_flags[*]}")"
if [ -n "$project" ] && [ -n "$server_uri" ];
then
query=$(echo "$query&project=$project&server_uri=$server_uri" | tr -d ' ')
fi
if [ "$parent" != "" ];
then
query=$(echo "parent=$parent&$query" | tr -d ' ')
fi
if [ "$ft_search" = "1" ];
then
# detect bower comoponents location
bower_components="bower_components"
bower_rc=$(cd "$git_root" && cat .bowerrc 2>/dev/null || echo "")
if [ "$bower_rc" != "" ];
then
bower_components=$(echo "$bower_rc" | tr -d '\n' | grep '"directory"' | cut -d'"' -f4 | sed -e 's/\/$//')
if [ "$bower_components" = "" ];
then
bower_components="bower_components"
fi
fi
# Swift Coverage
if [ "$ft_xcodellvm" = "1" ] && [ -d "$ddp" ];
then
say "${e}==>${x} Processing Xcode reports via llvm-cov"
say " DerivedData folder: $ddp"
profdata_files=$(find "$ddp" -name '*.profdata' 2>/dev/null || echo '')
if [ "$profdata_files" != "" ];
then
# xcode via profdata
if [ "$xp" = "" ];
then
# xp=$(xcodebuild -showBuildSettings 2>/dev/null | grep -i "^\s*PRODUCT_NAME" | sed -e 's/.*= \(.*\)/\1/')
# say " ${e}->${x} Speed up Xcode processing by adding ${e}-J '$xp'${x}"
say " ${g}hint${x} Speed up Swift processing by using use ${g}-J 'AppName'${x} (regexp accepted)"
say " ${g}hint${x} This will remove Pods/ from your report. Also ${b}https://docs.codecov.io/docs/ignoring-paths${x}"
fi
while read -r profdata;
do
if [ "$profdata" != "" ];
then
swiftcov "$profdata" "$xp"
fi
done <<< "$profdata_files"
else
say " ${e}->${x} No Swift coverage found"
fi
# Obj-C Gcov Coverage
if [ "$ft_gcov" = "1" ];
then
say " ${e}->${x} Running $gcov_exe for Obj-C"
if [ "$ft_gcovout" = "0" ];
then
# suppress gcov output
bash -c "find $ddp -type f -name '*.gcda' $gcov_include $gcov_ignore -exec $gcov_exe -p $gcov_arg {} +" >/dev/null 2>&1 || true
else
bash -c "find $ddp -type f -name '*.gcda' $gcov_include $gcov_ignore -exec $gcov_exe -p $gcov_arg {} +" || true
fi
fi
fi
if [ "$ft_xcodeplist" = "1" ] && [ -d "$ddp" ];
then
say "${e}==>${x} Processing Xcode plists"
plists_files=$(find "$ddp" -name '*.xccoverage' 2>/dev/null || echo '')
if [ "$plists_files" != "" ];
then
while read -r plist;
do
if [ "$plist" != "" ];
then
say " ${g}Found${x} plist file at $plist"
plutil -convert xml1 -o "$(basename "$plist").plist" -- "$plist"
fi
done <<< "$plists_files"
fi
fi
# Gcov Coverage
if [ "$ft_gcov" = "1" ];
then
say "${e}==>${x} Running $gcov_exe in $proj_root ${e}(disable via -X gcov)${x}"
if [ "$ft_gcovout" = "0" ];
then
# suppress gcov output
bash -c "find $proj_root -type f -name '*.gcno' $gcov_include $gcov_ignore -exec $gcov_exe -pb $gcov_arg {} +" >/dev/null 2>&1 || true
else
bash -c "find $proj_root -type f -name '*.gcno' $gcov_include $gcov_ignore -exec $gcov_exe -pb $gcov_arg {} +" || true
fi
else
say "${e}==>${x} gcov disabled"
fi
# Python Coverage
if [ "$ft_coveragepy" = "1" ];
then
if [ ! -f coverage.xml ];
then
if command -v coverage >/dev/null 2>&1;
then
say "${e}==>${x} Python coveragepy exists ${e}disable via -X coveragepy${x}"
dotcoverage=$(find "$git_root" -name '.coverage' -or -name '.coverage.*' | head -1 || echo '')
if [ "$dotcoverage" != "" ];
then
cd "$(dirname "$dotcoverage")"
if [ ! -f .coverage ];
then
say " ${e}->${x} Running coverage combine"
coverage combine -a
fi
say " ${e}->${x} Running coverage xml"
if [ "$(coverage xml -i)" != "No data to report." ];
then
files="$files
$PWD/coverage.xml"
else
say " ${r}No data to report.${x}"
fi
cd "$proj_root"
else
say " ${r}No .coverage file found.${x}"
fi
else
say "${e}==>${x} Python coveragepy not found"
fi
fi
else
say "${e}==>${x} Python coveragepy disabled"
fi
if [ "$search_in_o" != "" ];
then
# location override
search_in="$search_in_o"
fi
say "$e==>$x Searching for coverage reports in:"
for _path in $search_in
do
say " ${g}+${x} $_path"
done
patterns="find $search_in \( \
-name vendor \
-or -name '$bower_components' \
-or -name '.egg-info*' \
-or -name 'conftest_*.c.gcov' \
-or -name .env \
-or -name .envs \
-or -name .git \
-or -name .hg \
-or -name .tox \
-or -name .venv \
-or -name .venvs \
-or -name .virtualenv \
-or -name .virtualenvs \
-or -name .npm-cache \
-or -name __pycache__ \
-or -name env \
-or -name envs \
-or -name htmlcov \
-or -name js/generated/coverage \
-or -name node_modules \
-or -name venv \
-or -name venvs \
-or -name virtualenv \
-or -name virtualenvs \
\) -prune -or \
-type f \( -name '*coverage*.*' \
-or -name '*.clover' \
-or -name '*.codecov.*' \
-or -name '*.gcov' \
-or -name '*.lcov' \
-or -name '*.lst' \
-or -name 'clover.xml' \
-or -name 'cobertura.xml' \
-or -name 'codecov.*' \
-or -name 'cover.out' \
-or -name 'codecov-result.json' \
-or -name 'coverage-final.json' \
-or -name 'excoveralls.json' \
-or -name 'gcov.info' \
-or -name 'jacoco*.xml' \
-or -name '*Jacoco*.xml' \
-or -name 'lcov.dat' \
-or -name 'lcov.info' \
-or -name 'luacov.report.out' \
-or -name 'naxsi.info' \
-or -name 'nosetests.xml' \
-or -name 'report.xml' \
$include_cov \) \
$exclude_cov \
-not -name '*.am' \
-not -name '*.bash' \
-not -name '*.bat' \
-not -name '*.bw' \
-not -name '*.cfg' \
-not -name '*.class' \
-not -name '*.cmake' \
-not -name '*.cmake' \
-not -name '*.conf' \
-not -name '*.coverage' \
-not -name '*.cp' \
-not -name '*.cpp' \
-not -name '*.crt' \
-not -name '*.css' \
-not -name '*.csv' \
-not -name '*.csv' \
-not -name '*.data' \
-not -name '*.db' \
-not -name '*.dox' \
-not -name '*.ec' \
-not -name '*.ec' \
-not -name '*.egg' \
-not -name '*.el' \
-not -name '*.env' \
-not -name '*.erb' \
-not -name '*.exe' \
-not -name '*.ftl' \
-not -name '*.gif' \
-not -name '*.gradle' \
-not -name '*.gz' \
-not -name '*.h' \
-not -name '*.html' \
-not -name '*.in' \
-not -name '*.jade' \
-not -name '*.jar*' \
-not -name '*.jpeg' \
-not -name '*.jpg' \
-not -name '*.js' \
-not -name '*.less' \
-not -name '*.log' \
-not -name '*.m4' \
-not -name '*.mak*' \
-not -name '*.md' \
-not -name '*.o' \
-not -name '*.p12' \
-not -name '*.pem' \
-not -name '*.png' \
-not -name '*.pom*' \
-not -name '*.profdata' \
-not -name '*.proto' \
-not -name '*.ps1' \
-not -name '*.pth' \
-not -name '*.py' \
-not -name '*.pyc' \
-not -name '*.pyo' \
-not -name '*.rb' \
-not -name '*.rsp' \
-not -name '*.rst' \
-not -name '*.ru' \
-not -name '*.sbt' \
-not -name '*.scss' \
-not -name '*.scss' \
-not -name '*.serialized' \
-not -name '*.sh' \
-not -name '*.snapshot' \
-not -name '*.sql' \
-not -name '*.svg' \
-not -name '*.tar.tz' \
-not -name '*.template' \
-not -name '*.whl' \
-not -name '*.xcconfig' \
-not -name '*.xcoverage.*' \
-not -name '*/classycle/report.xml' \
-not -name '*codecov.yml' \
-not -name '*~' \
-not -name '.*coveragerc' \
-not -name '.coverage*' \
-not -name 'coverage-summary.json' \
-not -name 'createdFiles.lst' \
-not -name 'fullLocaleNames.lst' \
-not -name 'include.lst' \
-not -name 'inputFiles.lst' \
-not -name 'phpunit-code-coverage.xml' \
-not -name 'phpunit-coverage.xml' \
-not -name 'remapInstanbul.coverage*.json' \
-not -name 'scoverage.measurements.*' \
-not -name 'test_*_coverage.txt' \
-not -name 'testrunner-coverage*' \
-print 2>/dev/null"
files=$(eval "$patterns" || echo '')
elif [ "$include_cov" != "" ];
then
files=$(eval "find $search_in -type f \( ${include_cov:5} \)$exclude_cov 2>/dev/null" || echo '')
elif [ "$direct_file_upload" != "" ];
then
files=$direct_file_upload
fi
num_of_files=$(echo "$files" | wc -l | tr -d ' ')
if [ "$num_of_files" != '' ] && [ "$files" != '' ];
then
say " ${e}->${x} Found $num_of_files reports"
fi
# no files found
if [ "$files" = "" ];
then
say "${r}-->${x} No coverage report found."
say " Please visit ${b}http://docs.codecov.io/docs/supported-languages${x}"
exit ${exit_with};
fi
if [ "$ft_network" == "1" ];
then
say "${e}==>${x} Detecting git/mercurial file structure"
network=$(cd "$git_root" && git ls-files $git_ls_files_recurse_submodules_o 2>/dev/null || hg locate 2>/dev/null || echo "")
if [ "$network" = "" ];
then
network=$(find "$git_root" \( \
-name virtualenv \
-name .virtualenv \
-name virtualenvs \
-name .virtualenvs \
-name '*.png' \
-name '*.gif' \
-name '*.jpg' \
-name '*.jpeg' \
-name '*.md' \
-name .env \
-name .envs \
-name env \
-name envs \
-name .venv \
-name .venvs \
-name venv \
-name venvs \
-name .git \
-name .egg-info \
-name shunit2-2.1.6 \
-name vendor \
-name __pycache__ \
-name node_modules \
-path "*/$bower_components/*" \
-path '*/target/delombok/*' \
-path '*/build/lib/*' \
-path '*/js/generated/coverage/*' \
\) -prune -or \
-type f -print 2>/dev/null || echo '')
fi
if [ "$network_filter_o" != "" ];
then
network=$(echo "$network" | grep -e "$network_filter_o/*")
fi
if [ "$prefix_o" != "" ];
then
network=$(echo "$network" | awk "{print \"$prefix_o/\"\$0}")
fi
fi
upload_file=$(mktemp /tmp/codecov.XXXXXX)
adjustments_file=$(mktemp /tmp/codecov.adjustments.XXXXXX)
cleanup() {
rm -f "$upload_file" "$adjustments_file" "$upload_file.gz"
}
trap cleanup INT ABRT TERM
if [ "$env" != "" ];
then
inc_env=""
say "${e}==>${x} Appending build variables"
for varname in $(echo "$env" | tr ',' ' ')
do
if [ "$varname" != "" ];
then
say " ${g}+${x} $varname"
inc_env="${inc_env}${varname}=$(eval echo "\$${varname}")
"
fi
done
echo "$inc_env<<<<<< ENV" >> "$upload_file"
fi
# Append git file list
# write discovered yaml location
if [ "$direct_file_upload" = "" ];
then
echo "$yaml" >> "$upload_file"
fi
if [ "$ft_network" == "1" ];
then
i="woff|eot|otf" # fonts
i="$i|gif|png|jpg|jpeg|psd" # images
i="$i|ptt|pptx|numbers|pages|md|txt|xlsx|docx|doc|pdf|csv" # docs
i="$i|.gitignore" # supporting docs
if [ "$ft_html" != "1" ];
then
i="$i|html"
fi
if [ "$ft_yaml" != "1" ];
then
i="$i|yml|yaml"
fi
echo "$network" | grep -vwE "($i)$" >> "$upload_file"
fi
echo "<<<<<< network" >> "$upload_file"
if [ "$direct_file_upload" = "" ];
then
fr=0
say "${e}==>${x} Reading reports"
while IFS='' read -r file;
do
# read the coverage file
if [ "$(echo "$file" | tr -d ' ')" != '' ];
then
if [ -f "$file" ];
then
report_len=$(wc -c < "$file")
if [ "$report_len" -ne 0 ];
then
say " ${g}+${x} $file ${e}bytes=$(echo "$report_len" | tr -d ' ')${x}"
# append to to upload
_filename=$(basename "$file")
if [ "${_filename##*.}" = 'gcov' ];
then
{
echo "# path=$(echo "$file.reduced" | sed "s|^$git_root/||")";
# get file name
head -1 "$file";
} >> "$upload_file"
# 1. remove source code
# 2. remove ending bracket lines
# 3. remove whitespace
# 4. remove contextual lines
# 5. remove function names
awk -F': *' '{print $1":"$2":"}' "$file" \
| sed '\/: *} *$/d' \
| sed 's/^ *//' \
| sed '/^-/d' \
| sed 's/^function.*/func/' >> "$upload_file"
else
{
echo "# path=${file//^$git_root/||}";
cat "$file";
} >> "$upload_file"
fi
echo "<<<<<< EOF" >> "$upload_file"
fr=1
if [ "$clean" = "1" ];
then
rm "$file"
fi
else
say " ${r}-${x} Skipping empty file $file"
fi
else
say " ${r}-${x} file not found at $file"
fi
fi
done <<< "$(echo -e "$files")"
if [ "$fr" = "0" ];
then
say "${r}-->${x} No coverage data found."
say " Please visit ${b}http://docs.codecov.io/docs/supported-languages${x}"
say " search for your projects language to learn how to collect reports."
exit ${exit_with};
fi
else
cp "$direct_file_upload" "$upload_file"
if [ "$clean" = "1" ];
then
rm "$direct_file_upload"
fi
fi
if [ "$ft_fix" = "1" ];
then
say "${e}==>${x} Appending adjustments"
say " ${b}https://docs.codecov.io/docs/fixing-reports${x}"
empty_line='^[[:space:]]*$'
# //
syntax_comment='^[[:space:]]*//.*'
# /* or */
syntax_comment_block='^[[:space:]]*(\/\*|\*\/)[[:space:]]*$'
# { or }
syntax_bracket='^[[:space:]]*[\{\}][[:space:]]*(//.*)?$'
# [ or ]
syntax_list='^[[:space:]]*[][][[:space:]]*(//.*)?$'
# func ... {
syntax_go_func='^[[:space:]]*[func].*[\{][[:space:]]*$'
# shellcheck disable=SC2089
skip_dirs="-not -path '*/$bower_components/*' \
-not -path '*/node_modules/*'"
cut_and_join() {
awk 'BEGIN { FS=":" }
$3 ~ /\/\*/ || $3 ~ /\*\// { print $0 ; next }
$1!=key { if (key!="") print out ; key=$1 ; out=$1":"$2 ; next }
{ out=out","$2 }
END { print out }' 2>/dev/null
}
if echo "$network" | grep -m1 '.kt$' 1>/dev/null;
then
# skip brackets and comments
cd "$git_root" && \
find . -type f \
-name '*.kt' \
-exec \
grep -nIHE -e "$syntax_bracket" \
-e "$syntax_comment_block" {} \; \
| cut_and_join \
>> "$adjustments_file" \
|| echo ''
# last line in file
cd "$git_root" && \
find . -type f \
-name '*.kt' -exec \
wc -l {} \; \
| while read -r l; do echo "EOF: $l"; done \
2>/dev/null \
>> "$adjustments_file" \
|| echo ''
fi
if echo "$network" | grep -m1 '.go$' 1>/dev/null;
then
# skip empty lines, comments, and brackets
cd "$git_root" && \
find . -type f \
-not -path '*/vendor/*' \
-not -path '*/caches/*' \
-name '*.go' \
-exec \
grep -nIHE \
-e "$empty_line" \
-e "$syntax_comment" \
-e "$syntax_comment_block" \
-e "$syntax_bracket" \
-e "$syntax_go_func" \
{} \; \
| cut_and_join \
>> "$adjustments_file" \
|| echo ''
fi
if echo "$network" | grep -m1 '.dart$' 1>/dev/null;
then
# skip brackets
cd "$git_root" && \
find . -type f \
-name '*.dart' \
-exec \
grep -nIHE \
-e "$syntax_bracket" \
{} \; \
| cut_and_join \
>> "$adjustments_file" \
|| echo ''
fi
if echo "$network" | grep -m1 '.php$' 1>/dev/null;
then
# skip empty lines, comments, and brackets
cd "$git_root" && \
find . -type f \
-not -path "*/vendor/*" \
-name '*.php' \
-exec \
grep -nIHE \
-e "$syntax_list" \
-e "$syntax_bracket" \
-e '^[[:space:]]*\);[[:space:]]*(//.*)?$' \
{} \; \
| cut_and_join \
>> "$adjustments_file" \
|| echo ''
fi
if echo "$network" | grep -m1 '\(.c\.cpp\|.cxx\|.h\|.hpp\|.m\|.swift\|.vala\)$' 1>/dev/null;
then
# skip brackets
# shellcheck disable=SC2086,SC2090
cd "$git_root" && \
find . -type f \
$skip_dirs \
\( \
-name '*.c' \
-or -name '*.cpp' \
-or -name '*.cxx' \
-or -name '*.h' \
-or -name '*.hpp' \
-or -name '*.m' \
-or -name '*.swift' \
-or -name '*.vala' \
\) -exec \
grep -nIHE \
-e "$empty_line" \
-e "$syntax_bracket" \
-e '// LCOV_EXCL' \
{} \; \
| cut_and_join \
>> "$adjustments_file" \
|| echo ''
# skip brackets
# shellcheck disable=SC2086,SC2090
cd "$git_root" && \
find . -type f \
$skip_dirs \
\( \
-name '*.c' \
-or -name '*.cpp' \
-or -name '*.cxx' \
-or -name '*.h' \
-or -name '*.hpp' \
-or -name '*.m' \
-or -name '*.swift' \
-or -name '*.vala' \
\) -exec \
grep -nIH '// LCOV_EXCL' \
{} \; \
>> "$adjustments_file" \
|| echo ''
fi
found=$(< "$adjustments_file" tr -d ' ')
if [ "$found" != "" ];
then
say " ${g}+${x} Found adjustments"
{
echo "# path=fixes";
cat "$adjustments_file";
echo "<<<<<< EOF";
} >> "$upload_file"
rm -rf "$adjustments_file"
else
say " ${e}->${x} No adjustments found"
fi
fi
if [ "$url_o" != "" ];
then
url="$url_o"
fi
if [ "$dump" != "0" ];
then
# trim whitespace from query
say " ${e}->${x} Dumping upload file (no upload)"
echo "$url/upload/v4?$(echo "package=$package-$VERSION&token=$token&$query" | tr -d ' ')"
cat "$upload_file"
else
if [ "$save_to" != "" ];
then
say "${e}==>${x} Copying upload file to ${save_to}"
mkdir -p "$(dirname "$save_to")"
cp "$upload_file" "$save_to"
fi
say "${e}==>${x} Gzipping contents"
gzip -nf9 "$upload_file"
say " $(du -h "$upload_file.gz")"
query=$(echo "${query}" | tr -d ' ')
say "${e}==>${x} Uploading reports"
say " ${e}url:${x} $url"
say " ${e}query:${x} $query"
# Full query without token (to display on terminal output)
queryNoToken=$(echo "package=$package-$VERSION&token=secret&$query" | tr -d ' ')
# now add token to query
query=$(echo "package=$package-$VERSION&token=$token&$query" | tr -d ' ')
if [ "$ft_s3" = "1" ];
then
say "${e}->${x} Pinging Codecov"
say "$url/upload/v4?$queryNoToken"
# shellcheck disable=SC2086,2090
res=$(curl $curl_s -X POST $cacert \
--retry 5 --retry-delay 2 --connect-timeout 2 \
-H 'X-Reduced-Redundancy: false' \
-H 'X-Content-Type: application/x-gzip' \
-H 'Content-Length: 0' \
--write-out "\n%{response_code}\n" \
$curlargs \
"$url/upload/v4?$query" || true)
# a good reply is "https://codecov.io" + "\n" + "https://storage.googleapis.com/codecov/..."
s3target=$(echo "$res" | sed -n 2p)
status=$(tail -n1 <<< "$res")
if [ "$status" = "200" ] && [ "$s3target" != "" ];
then
say "${e}->${x} Uploading to"
say "${s3target}"
# shellcheck disable=SC2086
s3=$(curl -fiX PUT \
--data-binary @"$upload_file.gz" \
-H 'Content-Type: application/x-gzip' \
-H 'Content-Encoding: gzip' \
$curlawsargs \
"$s3target" || true)
if [ "$s3" != "" ];
then
say " ${g}->${x} Reports have been successfully queued for processing at ${b}$(echo "$res" | sed -n 1p)${x}"
exit 0
else
say " ${r}X>${x} Failed to upload"
fi
elif [ "$status" = "400" ];
then
# 400 Error
say "${r}${res}${x}"
exit ${exit_with}
else
say "${r}${res}${x}"
fi
fi
say "${e}==>${x} Uploading to Codecov"
# shellcheck disable=SC2086,2090
res=$(curl -X POST $cacert \
--data-binary @"$upload_file.gz" \
--retry 5 --retry-delay 2 --connect-timeout 2 \
-H 'Content-Type: text/plain' \
-H 'Content-Encoding: gzip' \
-H 'X-Content-Encoding: gzip' \
-H 'Accept: text/plain' \
$curlargs \
"$url/upload/v2?$query&attempt=$i" || echo 'HTTP 500')
# HTTP 200
# http://....
status=$(echo "$res" | head -1 | cut -d' ' -f2)
if [ "$status" = "" ] || [ "$status" = "200" ];
then
say " Reports have been successfully queued for processing at ${b}$(echo "$res" | head -2 | tail -1)${x}"
exit 0
else
say " ${g}${res}${x}"
exit ${exit_with}
fi
say " ${r}X> Failed to upload coverage reports${x}"
fi
exit ${exit_with}
================================================
FILE: .github/workflows/release.yml
================================================
name: release-workflow
on:
push:
branches:
- 'master'
jobs:
build:
name: Bump version and publish package(s)
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [16]
steps:
- uses: actions/checkout@v2
with:
# pulls all commits (needed for lerna / semantic release to correctly version)
fetch-depth: 0
- name: Get tags and filter trigger tags
run: |
git fetch --depth=1 origin "+refs/tags/*:refs/tags/*"
git fetch --prune --unshallow
git tag -d `git tag | grep -E '^trigger-'`
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache npm
uses: actions/cache@v1
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- name: Get npm cache directory path
id: npm-cache-dir-path
run: echo "::set-output name=dir::$(npm config get cache)"
- name: Cache npm
uses: actions/cache@v1
id: npm-cache # use this to check for `cache-hit` (`steps.npm-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.npm-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- name: Install dependencies
run: npm ci
- name: Build packages
run: npm run build
- name: Run unit tests
run: npm run test
- name: Configure npm and git
run: |
echo "@superset-ui:registry=https://registry.npmjs.org/" > .npmrc
echo "registry=https://registry.npmjs.org/" >> .npmrc
echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" >> $HOME/.npmrc 2> /dev/null
npm whoami
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git remote set-url origin "https://${GITHUB_TOKEN}@github.com/apache-superset/superset-ui.git" > /dev/null 2>&1
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Bump version and publish package(s)
run: |
git tag -d `git tag | grep -E '^trigger-'`
npm run ci:release-from-tag
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
================================================
FILE: .gitignore
================================================
.DS_Store
*.DS_Store
# Logs
logs/
*.log
# Cache
.bundle/
.happo/
.idea/
.next/
.cache
.eslintcache
.idea
*.iml
.npm
.npmrc
.vscode
.yarnclean
# Directories
build/
coverage/
dist/
esm/
lib/
public/
node_modules/
tmp/
_gh-pages/
# Custom
*.map
*.min.js
test-changelog.md
*.tsbuildinfo
# Ignore package-lock in packages
plugins/*/package-lock.json
packages/*/package-lock.json
# For country map geojson conversion script
.ipynb_checkpoints/
scripts/*.zip
**/storybook-static
rat-results.txt
================================================
FILE: .nvmrc
================================================
v14.15.5
================================================
FILE: .prettierignore
================================================
_gh-pages/
coverage/
node_modules/
public/
esm/
lib/
tmp/
dist/
lerna.json
npm-shrinkwrap.json
package-lock.json
tsconfig.json
tsconfig.options.json
tsconfig.eslint.json
CHANGELOG.md
*.geojson
*-topo.json
================================================
FILE: .rat-excludes
================================================
# Note: these patterns are applied to single files or directories, not full paths
.gitignore
docs/README.md
.gitattributes
.gitkeep
.coverage
.coveragerc
.codecov.yml
.eslintrc
.eslintignore
.flake8
.nvmrc
.prettierrc
.rat-excludes
.*log
.*pyc
.*lock
.*geojson
DISCLAIMER
licenses/*
node_modules/*
rat-results.txt
babel-node
dist
superset/static/*
build
superset.egg-info
apache_superset.egg-info
.idea
.*sql
.*zip
.*lock
# json and csv in general cannot have comments
.*json
.*csv
# Generated doc files
env/*
docs/README.md
docs/.htaccess*
_build/*
_static/*
.buildinfo
searchindex.js
# auto generated
requirements/*
# vendorized
vendor/*
# github configuration
.github/*
.*mdx
coverage/*
.*.md
.*.txt
# skip license check in superset-ui
tmp/*
lib/*
esm/*
tsconfig.tsbuildinfo
.*ipynb
.*yml
.*iml
.esprintrc
.prettierignore
README.erb
package.erb
================================================
FILE: CHANGELOG.md
================================================
# Change Log
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [0.18.0](https://github.com/apache-superset/superset-ui/compare/v0.17.87...v0.18.0) (2021-08-30)
### Bug Fixes
* Make the scrollbar appear inside the table ([#1310](https://github.com/apache-superset/superset-ui/issues/1310)) ([1aad2d1](https://github.com/apache-superset/superset-ui/commit/1aad2d11af95f5046f2b67d86b30c9581de4994b))
### Features
* add certified icon to columoption ([#1330](https://github.com/apache-superset/superset-ui/issues/1330)) ([a415c41](https://github.com/apache-superset/superset-ui/commit/a415c413954bc9c093ab5dfde62d458cf3224073))
## [0.17.63](https://github.com/apache-superset/superset-ui/compare/v0.17.62...v0.17.63) (2021-07-02)
**Note:** Version bump only for package @superset-ui/monorepo
## [0.17.62](https://github.com/apache-superset/superset-ui/compare/v0.17.61...v0.17.62) (2021-07-02)
**Note:** Version bump only for package @superset-ui/monorepo
## [0.17.61](https://github.com/apache-superset/superset-ui/compare/v0.17.60...v0.17.61) (2021-07-02)
### Bug Fixes
* **legacy-preset-chart-big-number:** example images got mixed up ([#1196](https://github.com/apache-superset/superset-ui/issues/1196)) ([60215b5](https://github.com/apache-superset/superset-ui/commit/60215b5a4c5ae416fc27418c276276ed38ab7f19))
* **plugin-chart-echarts:** enable animation to clear old nodes ([#1200](https://github.com/apache-superset/superset-ui/issues/1200)) ([1ee7f4e](https://github.com/apache-superset/superset-ui/commit/1ee7f4e36e1245917e61999f190a84425e82ea38))
* **plugin-chart-echarts:** sanitize series from html tags ([#1126](https://github.com/apache-superset/superset-ui/issues/1126)) ([fcd6fde](https://github.com/apache-superset/superset-ui/commit/fcd6fde44bb45df3aab5ac5bb990504e7dbde324))
## [0.13.26](https://github.com/apache-superset/superset-ui/compare/v0.13.25...v0.13.26) (2020-06-03)
### Features
* **demo:** add helpers for resizable chart demo ([#557](https://github.com/apache-superset/superset-ui/issues/557)) ([af7421d](https://github.com/apache-superset/superset-ui/commit/af7421d5b7a478ed8a9f0a952f4a111bdc3fec66))
* **query:** add functions to wrap api calls with typings ([#555](https://github.com/apache-superset/superset-ui/issues/555)) ([9137580](https://github.com/apache-superset/superset-ui/commit/9137580d7e73c73d47bdd6d7ff905365e87d9a61))
* **superset-ui-style:** export ThemeProvider and useTheme ([#553](https://github.com/apache-superset/superset-ui/issues/553)) ([f6a8949](https://github.com/apache-superset/superset-ui/commit/f6a8949e38eabe8c34e21419fb2f8d4c44bb7ad2))
## [0.13.25](https://github.com/apache-superset/superset-ui/compare/v0.13.24...v0.13.25) (2020-05-30)
### Features
* **chart:** adjust chartclient to point to new endpoints ([#551](https://github.com/apache-superset/superset-ui/issues/551)) ([bbc42c2](https://github.com/apache-superset/superset-ui/commit/bbc42c2ff074a107f6ed563cd5ab6935a3fb92a0))
* **connection:** allow developer to get supersetclient instance ([#552](https://github.com/apache-superset/superset-ui/issues/552)) ([c075070](https://github.com/apache-superset/superset-ui/commit/c075070e3cf9f535c81a4964e7ed97b0daf86179))
## [0.13.24](https://github.com/apache-superset/superset-ui/compare/v0.13.23...v0.13.24) (2020-05-29)
### Features
* **color:** support better color interpolation for sequential schemes ([#547](https://github.com/apache-superset/superset-ui/issues/547)) ([f7d4648](https://github.com/apache-superset/superset-ui/commit/f7d4648fae7eb11032953987dca6736cc7547380))
* Word cloud typography update ([#518](https://github.com/apache-superset/superset-ui/issues/518)) ([873973b](https://github.com/apache-superset/superset-ui/commit/873973b8a3b0b1b6aa8c8bfa4677d4a614c83500))
## [0.13.23](https://github.com/apache-superset/superset-ui/compare/v0.13.22...v0.13.23) (2020-05-26)
### Bug Fixes
* nvd3 annotation tooltip ([#540](https://github.com/apache-superset/superset-ui/issues/540)) ([6ea134d](https://github.com/apache-superset/superset-ui/commit/6ea134d9e63d9cf55b2797b8732cc99853b6b77a))
## [0.13.22](https://github.com/apache-superset/superset-ui/compare/v0.13.21...v0.13.22) (2020-05-26)
### Features
* **time-format:** improve support for formatting with granularity in mind ([#509](https://github.com/apache-superset/superset-ui/issues/509)) ([2d8afa8](https://github.com/apache-superset/superset-ui/commit/2d8afa87b4b34ab1990ecbeaab4060688e86554b))
## [0.13.21](https://github.com/apache-superset/superset-ui/compare/v0.13.20...v0.13.21) (2020-05-21)
### Bug Fixes
* **legacy-plugin-chart-table:** parse numeric pageLength ([#522](https://github.com/apache-superset/superset-ui/issues/522)) ([4831f7f](https://github.com/apache-superset/superset-ui/commit/4831f7fbe4954b5acfb05176f8fd807c4c5e8339))
### Features
* **legacy-plugin-chart-event-flow:** migrate package ([#514](https://github.com/apache-superset/superset-ui/issues/514)) ([3589e31](https://github.com/apache-superset/superset-ui/commit/3589e31dec2279b9b032f5cb654cd069e1d13611))
## [0.13.20](https://github.com/apache-superset/superset-ui/compare/v0.13.19...v0.13.20) (2020-05-21)
## [0.13.19](https://github.com/apache-superset/superset-ui/compare/v0.13.18...v0.13.19) (2020-05-21)
### Bug Fixes
* missing bracket, little linty things ([#517](https://github.com/apache-superset/superset-ui/issues/517)) ([b8c91ba](https://github.com/apache-superset/superset-ui/commit/b8c91ba93a29943b6f599b7eb6cb8cb49637d3c8))
## [0.13.18](https://github.com/apache-superset/superset-ui/compare/v0.13.17...v0.13.18) (2020-05-21)
### Features
* **legacy-plugin-chart-parallel-coordinates:** add control panels ([#510](https://github.com/apache-superset/superset-ui/issues/510)) ([b9bc48d](https://github.com/apache-superset/superset-ui/commit/b9bc48d16e9b5fe06c2d9638deeb11ffeade94eb))
* **legacy-preset-big-number:** use emotion styling ([#455](https://github.com/apache-superset/superset-ui/issues/455)) ([46eb663](https://github.com/apache-superset/superset-ui/commit/46eb663665c7cd7d45cfe495556a1e54dfeb54dd))
## [0.13.17](https://github.com/apache-superset/superset-ui/compare/v0.13.16...v0.13.17) (2020-05-20)
### Features
* add control grouping functionality ([#485](https://github.com/apache-superset/superset-ui/issues/485)) ([4ceacfb](https://github.com/apache-superset/superset-ui/commit/4ceacfb1da28ec58695bfa7417b0157518e89cad))
## [0.13.16](https://github.com/apache-superset/superset-ui/compare/v0.13.15...v0.13.16) (2020-05-19)
### Features
* **legacy-plugin-chart-event-flow:** control panel ([#501](https://github.com/apache-superset/superset-ui/issues/501)) ([34541df](https://github.com/apache-superset/superset-ui/commit/34541df50e335eccfc5b34240587d6ae16f09977))
* **legacy-plugin-chart-force-directed:** control panel ([#502](https://github.com/apache-superset/superset-ui/issues/502)) ([bf573a0](https://github.com/apache-superset/superset-ui/commit/bf573a0240a8c05697d98d47921b5ed71ba2d2cd))
* **legacy-plugin-chart-heatmap:** control panel ([#503](https://github.com/apache-superset/superset-ui/issues/503)) ([0111fa7](https://github.com/apache-superset/superset-ui/commit/0111fa7ed4f98a1e48b0858533ed23df1b670ecc))
* **legacy-plugin-chart-histogram:** control panel ([#504](https://github.com/apache-superset/superset-ui/issues/504)) ([e5106ee](https://github.com/apache-superset/superset-ui/commit/e5106ee54fa12942f09f71558af7e80e7da5b26e))
* **legacy-plugin-chart-horizon:** control panel ([#505](https://github.com/apache-superset/superset-ui/issues/505)) ([e63b079](https://github.com/apache-superset/superset-ui/commit/e63b079a43b4cc07f35321d10d530574c942c033))
* **legacy-plugin-chart-iframe:** control panel ([#506](https://github.com/apache-superset/superset-ui/issues/506)) ([51d0894](https://github.com/apache-superset/superset-ui/commit/51d0894581542977230fceeb41e2017114b8724e))
* **legacy-plugin-chart-map-box:** control panel ([#507](https://github.com/apache-superset/superset-ui/issues/507)) ([9f79870](https://github.com/apache-superset/superset-ui/commit/9f798709892525d8c85106d33d4d08eef05fd0fd))
## [0.13.15](https://github.com/apache-superset/superset-ui/compare/v0.13.14...v0.13.15) (2020-05-18)
### Bug Fixes
* **time-format:** remove week number ([#493](https://github.com/apache-superset/superset-ui/issues/493)) ([0d13ff0](https://github.com/apache-superset/superset-ui/commit/0d13ff0f7ad13d565933a52f910278177d9318f3))
### Features
* **query:** remove redundant metric label truncation ([#492](https://github.com/apache-superset/superset-ui/issues/492)) ([5b42bc1](https://github.com/apache-superset/superset-ui/commit/5b42bc17f78d0c32ea69f9351f3f25e054911222))
## [0.13.14](https://github.com/apache-superset/superset-ui/compare/v0.13.13...v0.13.14) (2020-05-14)
### Features
* **time-format:** add full-date to weekly time formatter ([#486](https://github.com/apache-superset/superset-ui/issues/486)) ([b2d0426](https://github.com/apache-superset/superset-ui/commit/b2d04267b60760f76373fc2d5d094e6102b676fe))
## [0.13.13](https://github.com/apache-superset/superset-ui/compare/v0.13.12...v0.13.13) (2020-05-13)
### Bug Fixes
* **legacy-plugin-chart-nvd3:** disable bad linting rule ([#488](https://github.com/apache-superset/superset-ui/issues/488)) ([9b6d611](https://github.com/apache-superset/superset-ui/commit/9b6d61194326c8d2d2996aad7b20648f95f8a804))
### Features
* **generator-superset:** add scaffolder for chart plugin ([#456](https://github.com/apache-superset/superset-ui/issues/456)) ([f339466](https://github.com/apache-superset/superset-ui/commit/f3394666fdfe5472d353cfb83540868b7185c9df))
* **legacy-plugin-chart-chord:** control panel ([#481](https://github.com/apache-superset/superset-ui/issues/481)) ([d82d948](https://github.com/apache-superset/superset-ui/commit/d82d948145c2fa642d62bd65ab9b9a844b5a6aff))
* **plugin-chart-word-cloud:** allow minimum size ([#487](https://github.com/apache-superset/superset-ui/issues/487)) ([356229b](https://github.com/apache-superset/superset-ui/commit/356229be1bb620b2e98e13e72a8a5071655489b4))
## [0.13.12](https://github.com/apache-superset/superset-ui/compare/v0.13.11...v0.13.12) (2020-05-13)
### Features
* **control-utils:** add shared controls + dependencies, convert to typescript ([#459](https://github.com/apache-superset/superset-ui/issues/459)) ([befe0c7](https://github.com/apache-superset/superset-ui/commit/befe0c767378d14d0e18bb690deee913274840a6))
* **legacy-plugin-chart-markup:** add controls to markup chart ([#479](https://github.com/apache-superset/superset-ui/issues/479)) ([7801121](https://github.com/apache-superset/superset-ui/commit/780112118afd6e52b988139bf608acbf1e90cc9f))
## [0.13.11](https://github.com/apache-superset/superset-ui/compare/v0.13.10...v0.13.11) (2020-05-12)
### Features
* **legacy-plugin-chart-nvd3:** add control panels ([#469](https://github.com/apache-superset/superset-ui/issues/469)) ([ad267db](https://github.com/apache-superset/superset-ui/commit/ad267dbd19637cf3988bf5732b2018d748ab7b3e))
* **legacy-plugin-chart-partition:** add control panel ([#470](https://github.com/apache-superset/superset-ui/issues/470)) ([b569c34](https://github.com/apache-superset/superset-ui/commit/b569c34db5b8d810154dcaa695eed8ef163ff08a))
* **plugin-chart-boxplot:** add control panel ([#464](https://github.com/apache-superset/superset-ui/issues/464)) ([1c8b257](https://github.com/apache-superset/superset-ui/commit/1c8b257a6c081575070abf54cc52538d03b21f9f))
* **style:** adding typographic variables to theme ([#463](https://github.com/apache-superset/superset-ui/issues/463)) ([f06cb4a](https://github.com/apache-superset/superset-ui/commit/f06cb4a98f4e79bc52be91741cf522ae2cdc328d))
## [0.13.10](https://github.com/apache-superset/superset-ui/compare/v0.13.9...v0.13.10) (2020-05-08)
### Features
* **plugin-chart-treemap:** add control panel ([#461](https://github.com/apache-superset/superset-ui/issues/461)) ([8964341](https://github.com/apache-superset/superset-ui/commit/89643415da095a08dc3385c117a727bbb430c35d))
* **plugin-chart-world-map:** add control panel ([#462](https://github.com/apache-superset/superset-ui/issues/462)) ([e914a2b](https://github.com/apache-superset/superset-ui/commit/e914a2bd71be7f87197f5505ff052606eb7b97cb))
## [0.13.9](https://github.com/apache-superset/superset-ui/compare/v0.13.8...v0.13.9) (2020-05-08)
### Bug Fixes
* hundreds lint warning ([#447](https://github.com/apache-superset/superset-ui/issues/447)) ([ce0e23c](https://github.com/apache-superset/superset-ui/commit/ce0e23c65390441df7acd2f5d70f4e1797eebdca))
### Features
* **control-utils:** add infotooltipwithtrigger ([#442](https://github.com/apache-superset/superset-ui/issues/442)) ([488e945](https://github.com/apache-superset/superset-ui/commit/488e9459794b3e81d29ebe295d5c643014c7f954))
* **plugin-chart-word-cloud:** add control panel ([#454](https://github.com/apache-superset/superset-ui/issues/454)) ([18375db](https://github.com/apache-superset/superset-ui/commit/18375db48968899e6e48a69c0014c1fd51f1e924))
## [0.13.8](https://github.com/apache-superset/superset-ui/compare/v0.13.7...v0.13.8) (2020-05-07)
### Bug Fixes
* Remove .ts suffix from NVD3 imports ([#453](https://github.com/apache-superset/superset-ui/issues/453)) ([b80372d](https://github.com/apache-superset/superset-ui/commit/b80372da4c4aebe3161e5e04f245004840eca907))
## [0.13.7](https://github.com/apache-superset/superset-ui/compare/v0.13.6...v0.13.7) (2020-05-06)
### Features
* **plugin-chart-sunburst:** migrate control panel from incubator-superset ([#443](https://github.com/apache-superset/superset-ui/issues/443)) ([a8a9e9c](https://github.com/apache-superset/superset-ui/commit/a8a9e9c12e074140c371abaf12eb9d6307c314a9))
## [0.13.6](https://github.com/apache-superset/superset-ui/compare/v0.13.5...v0.13.6) (2020-05-06)
### Bug Fixes
* **legacy-plugin-world-map:** set useLegacyApi to true by default ([#444](https://github.com/apache-superset/superset-ui/issues/444)) ([3b9c478](https://github.com/apache-superset/superset-ui/commit/3b9c478e2190e90979f9b9982ca7a0dfa0c5a2ba))
### Features
* **query:** Add force to QueryContext ([#445](https://github.com/apache-superset/superset-ui/issues/445)) ([a243911](https://github.com/apache-superset/superset-ui/commit/a24391159dfcc4a6ce3d48ce42f98669b8b189b3))
## [0.13.5](https://github.com/apache-superset/superset-ui/compare/v0.13.4...v0.13.5) (2020-04-30)
### Bug Fixes
* lint errors ([#420](https://github.com/apache-superset/superset-ui/issues/420)) ([cb54e5a](https://github.com/apache-superset/superset-ui/commit/cb54e5af5c2a2f75f5d6484da9a1c2bf3b4a81f0))
* **plugin-chart-word-cloud:** make wordcloud take current formdata ([#428](https://github.com/apache-superset/superset-ui/issues/428)) ([80b4c3f](https://github.com/apache-superset/superset-ui/commit/80b4c3faddf611e5a0d7c9d8a8c3706a3f0779fd))
### Features
* **superset-ui:** include control utils in the umbrella package ([#421](https://github.com/apache-superset/superset-ui/issues/421)) ([c2e0bdd](https://github.com/apache-superset/superset-ui/commit/c2e0bddde251a4738c34bbc642e31b814a25576a))
## [0.13.4](https://github.com/apache-superset/superset-ui/compare/v0.13.3...v0.13.4) (2020-04-30)
### Features
* **legacy-plugin-chart-big-number:** add control panel config for the BigNumber charts ([#419](https://github.com/apache-superset/superset-ui/issues/419)) ([590c4f4](https://github.com/apache-superset/superset-ui/commit/590c4f4efe3fea028f5709e3ac5a234fd95d6e92))
## [0.13.3](https://github.com/apache-superset/superset-ui/compare/v0.13.2...v0.13.3) (2020-04-30)
## [0.13.2](https://github.com/apache-superset/superset-ui/compare/v0.13.1...v0.13.2) (2020-04-29)
### Bug Fixes
* peer dependencies ([a3029b9](https://github.com/apache-superset/superset-ui/commit/a3029b9ddfcae1678058a73e38ab4b73220b4fb5))
## [0.13.1](https://github.com/apache-superset/superset-ui/compare/v0.13.0...v0.13.1) (2020-04-29)
### Bug Fixes
* bump peer dependencies ([f873d3c](https://github.com/apache-superset/superset-ui/commit/f873d3ccdda12fc5e79503ddf18d07177d8368a1))
# [0.13.0](https://github.com/apache-superset/superset-ui/compare/v0.12.23...v0.13.0) (2020-04-29)
### Bug Fixes
* **superset-ui-style:** export superset theme props ([#391](https://github.com/apache-superset/superset-ui/issues/391)) ([8ebe0d1](https://github.com/apache-superset/superset-ui/commit/8ebe0d1709a85e28d89d52db7d97c7cb712d20e2))
* **superset-ui-query:** add unit tests for [#387](https://github.com/apache-superset/superset-ui/issues/387) ([#390](https://github.com/apache-superset/superset-ui/issues/390)) ([7b5e5d2](https://github.com/apache-superset/superset-ui/commit/7b5e5d2f830ff8be479b0b568b05eaf8d70db552))
* **superset-ui-query:** make all filter operators uppercase ([#378](https://github.com/apache-superset/superset-ui/issues/378)) ([1f9e493](https://github.com/apache-superset/superset-ui/commit/1f9e49307666a1c5c75b720001fe7e8f28fc77e0))
### Features
* **control-utils:** add packages control-utils ([#417](https://github.com/apache-superset/superset-ui/issues/417)) ([2f83074](https://github.com/apache-superset/superset-ui/commit/2f8307485b6c7884e0fd2e4178e6217255749aec))
* **preset-chart-nvd3:** migration from plugins repo ([#399](https://github.com/apache-superset/superset-ui/issues/399)) ([dbd84f2](https://github.com/apache-superset/superset-ui/commit/dbd84f272b814c7b97d06a79cea0b6c2e9e2f5d4))
### BREAKING CHANGES
* **plugin-word-cloud:** change how wordcloud is exported ([#418](https://github.com/apache-superset/superset-ui/issues/418)) ([c5d3893](https://github.com/apache-superset/superset-ui/commit/c5d389392681869a17be5b1922ef9f42b91eb37a))
#### Old behavior
exports default `WordCloudChartPlugin` from index.
```ts
import WordCloudChartPlugin from '@superset-ui/plugin-chart-word-cloud';
```
users need to deep import `/esm/legacy` to get the legacy version.
```ts
import LegacyWordCloudChartPlugin from '@superset-ui/plugin-chart-word-cloud/esm/legacy';
```
#### New behavior
exports both `WordCloudChartPlugin` and `LegacyWordCloudChartPlugin` from `index`.
```ts
import { WordCloudChartPlugin, LegacyWordCloudChartPlugin } from '@superset-ui/plugin-chart-word-cloud';
```
* **preset-chart-xy:** migrate from plugins repo ([#377](https://github.com/apache-superset/superset-ui/issues/377)) ([fb5370e](https://github.com/apache-superset/superset-ui/commit/fb5370e64d4bfeb1ccd0a6f753b187a2ea95b445))
Signatures of the custom renderers for legend has changed.
## [0.12.23](https://github.com/apache-superset/superset-ui/compare/v0.12.22...v0.12.23) (2020-04-22)
### Bug Fixes
* unset row_limit when it's not a number ([#387](https://github.com/apache-superset/superset-ui/issues/387)) ([98b6117](https://github.com/apache-superset/superset-ui/commit/98b611792723d02d04f6b840a6c74413343a35be))
## [0.12.22](https://github.com/apache-superset/superset-ui/compare/v0.12.21...v0.12.22) (2020-04-21)
### Features
* add retry to callApi ([#384](https://github.com/apache-superset/superset-ui/issues/384)) ([f4fdeb0](https://github.com/apache-superset/superset-ui/commit/f4fdeb0eb0e8abb183a0777268676faed9710013))
* **table:** enable table filter and better typing ([#344](https://github.com/apache-superset/superset-ui/issues/344)) ([fdf6514](https://github.com/apache-superset/superset-ui/commit/fdf651408e616a99799771f267dfc5eb05fc2a01))
## [0.12.21](https://github.com/apache-superset/superset-ui/compare/v0.12.20...v0.12.21) (2020-04-18)
### Features
* **legacy-plugin-chart-country-map:** migrate and replace india map ([#376](https://github.com/apache-superset/superset-ui/issues/376)) ([21a35f3](https://github.com/apache-superset/superset-ui/commit/21a35f307cd1d7310b1cd7e22dfd7262947b2bb4))
* migrate chart plugins ([#375](https://github.com/apache-superset/superset-ui/issues/375)) ([7c8cbd8](https://github.com/apache-superset/superset-ui/commit/7c8cbd849d778b0f6dd1fab8549fc4332fc55523))
## [0.12.20](https://github.com/apache-superset/superset-ui/compare/v0.12.19...v0.12.20) (2020-04-17)
### Bug Fixes
* compatible with window ([#426](https://github.com/apache-superset/superset-ui/issues/426)) ([f95e0df](https://github.com/apache-superset/superset-ui/commit/f95e0df95163b13baf6fcfd34a03481a00208d77))
* **legacy-table:** adjust sort icon position ([#399](https://github.com/apache-superset/superset-ui/issues/399)) ([6e26242](https://github.com/apache-superset/superset-ui/commit/6e262429c2749059376422014fbeecc5ec47602b))
* **legacy-table:** avoid React DOM ([#392](https://github.com/apache-superset/superset-ui/issues/392)) ([a1a7896](https://github.com/apache-superset/superset-ui/commit/a1a78964c26a4f1b6cf4d9b51800730e636382c9))
* **legacy-table:** container height on tall headers ([#398](https://github.com/apache-superset/superset-ui/issues/398)) ([dece6b4](https://github.com/apache-superset/superset-ui/commit/dece6b4f930b384ab5c83a4c53ff47e17d6d8ecc))
* **legacy-table-chart:** when data is empty ([#397](https://github.com/apache-superset/superset-ui/issues/397)) ([8829bdf](https://github.com/apache-superset/superset-ui/commit/8829bdf9d97018d292242bf10d0757cdb74b8a0e))
* add container css for interval type annotation ([#372](https://github.com/apache-superset/superset-ui/issues/372)) ([a2cd547](https://github.com/apache-superset/superset-ui/commit/a2cd54781240156e7f2dd47940719a0a537c7605))
* add typings for @storybook/react ([#203](https://github.com/apache-superset/superset-ui/issues/203)) ([a357487](https://github.com/apache-superset/superset-ui/commit/a3574879dfbaaa1d2bd5ab3b03f2004f25c381c6))
* apply margins in nvd3 ([#283](https://github.com/apache-superset/superset-ui/issues/283)) ([1239052](https://github.com/apache-superset/superset-ui/commit/12390522d9af7e7a48e11b83025174cf7e86e335))
* both the CSS and className were expecting true/false strings ([#286](https://github.com/apache-superset/superset-ui/issues/286)) ([ceb3c60](https://github.com/apache-superset/superset-ui/commit/ceb3c60b45fc2d8b377a93bdfbdee1cf2f90a2b2))
* change world map color scheme ([#215](https://github.com/apache-superset/superset-ui/issues/215)) ([0c5b4c3](https://github.com/apache-superset/superset-ui/commit/0c5b4c39d77b9fce0b4be39a563ba63ad01d745b))
* disable lint error ([#150](https://github.com/apache-superset/superset-ui/issues/150)) ([c490a7d](https://github.com/apache-superset/superset-ui/commit/c490a7d79abd0815bd2fd6fd4414f9ec4d75caa2))
* fixing tooltip for expanded area chart ([#134](https://github.com/apache-superset/superset-ui/issues/134)) ([7ca5e6c](https://github.com/apache-superset/superset-ui/commit/7ca5e6c08546f2784e79e21c7947ddf08572b01e))
* GH issue 8669 NVD3 tooltip overflow ([#278](https://github.com/apache-superset/superset-ui/issues/278)) ([e5a8dd1](https://github.com/apache-superset/superset-ui/commit/e5a8dd172cd6c05a006326cec8d78dfa970dd682))
* JS exception: Cannot read property "dispatch" of undefined ([#287](https://github.com/apache-superset/superset-ui/issues/287)) ([52ab79c](https://github.com/apache-superset/superset-ui/commit/52ab79c24e7e7bb7fe9b314d3440abed30a5025e))
* Line not hidden after legend selection ([#204](https://github.com/apache-superset/superset-ui/issues/204)) ([ac814f9](https://github.com/apache-superset/superset-ui/commit/ac814f99afdc0258e23cd588dd4f2a52e0facb10))
* lint ([4d30c83](https://github.com/apache-superset/superset-ui/commit/4d30c830b8b6cff22fb4da292a3c1d7120733b50))
* lint ([3df2999](https://github.com/apache-superset/superset-ui/commit/3df29993623fe1797aeb8b7943ee7be89f4561dc))
* Making viz components respect D3 Format from metric ([#280](https://github.com/apache-superset/superset-ui/issues/280)) ([d38dcb9](https://github.com/apache-superset/superset-ui/commit/d38dcb91ea98d3ae2bdd34a427370708852f9d67))
* minor wordcloud update ([e269636](https://github.com/apache-superset/superset-ui/commit/e2696367d8bcd5a6b7a6c92460bf7df9c13286bc))
* nvd3 charts break on stateChange dispatch ([#159](https://github.com/apache-superset/superset-ui/issues/159)) ([525779d](https://github.com/apache-superset/superset-ui/commit/525779d31bf8c94c6b64936d60a518350e1ebd75))
* nvd3 tooltip bolding/non-linebreak on ONLY header row ([#291](https://github.com/apache-superset/superset-ui/issues/291)) ([e49f082](https://github.com/apache-superset/superset-ui/commit/e49f0820e33094d6ce913132742344e0432c5205))
* only remove tooltips relating to a single vis ([#167](https://github.com/apache-superset/superset-ui/issues/167)) ([1a58394](https://github.com/apache-superset/superset-ui/commit/1a583943d3704ead6a099dd429711e51732821a6))
* pass all props to transformProps in LineMulti chart ([#247](https://github.com/apache-superset/superset-ui/issues/247)) ([54aec5b](https://github.com/apache-superset/superset-ui/commit/54aec5b397591d319dcf6c52892c2ea0403d526a))
* remove redundant target from sankey tooltip ([#193](https://github.com/apache-superset/superset-ui/issues/193)) ([c4b6ed2](https://github.com/apache-superset/superset-ui/commit/c4b6ed20747a0a4e6b63dd49a0d9bcf353ee9c4e))
* Replace unsafe lifecycle methods ([#285](https://github.com/apache-superset/superset-ui/issues/285)) ([06051ef](https://github.com/apache-superset/superset-ui/commit/06051efbfbb7b113b871d1e03742a01dda5d97b7))
* Sunburst chart respects and prefers Metric's D3 Format ([#282](https://github.com/apache-superset/superset-ui/issues/282)) ([ee4deb2](https://github.com/apache-superset/superset-ui/commit/ee4deb2e7dbc59488bb08ed0b50eafba33cb5a6e))
* **adjusted upstream break change:** adjusted upstream break change ([bc198a6](https://github.com/apache-superset/superset-ui/commit/bc198a6342e31171746bf92af335415e7736831b))
* **bump lunar version of datatable:** bump lunar version of datatable ([3bd5c4a](https://github.com/apache-superset/superset-ui/commit/3bd5c4ac07f986d6c21ba00bf7f8c6867193b840))
* **datatable:** adding the consideration of padding ([#198](https://github.com/apache-superset/superset-ui/issues/198)) ([8b1305f](https://github.com/apache-superset/superset-ui/commit/8b1305f4fbe8ac1e34d20bb0fc46b312defd634d))
* **fix issues in superset:** fix issues in superset ([efb6ad9](https://github.com/apache-superset/superset-ui/commit/efb6ad95335e3d059d82468936bb5833258a430e))
* **fix types:** fix types ([1163b50](https://github.com/apache-superset/superset-ui/commit/1163b504878d5911bd06faaaf97b44653d02ef33))
* **force to publish new version:** force to publish new version ([55c7510](https://github.com/apache-superset/superset-ui/commit/55c7510f804608ae94424c7b2f6c0c401011f99a))
* **legacy-plugin-chart-horizon:** horizon chart should scroll when overflowing ([#180](https://github.com/apache-superset/superset-ui/issues/180)) ([38506b9](https://github.com/apache-superset/superset-ui/commit/38506b9166fb687bc4cbd256f93e107cfbd1ce4a))
* **memorize filter in state:** memorize filter in state ([880d18c](https://github.com/apache-superset/superset-ui/commit/880d18c4f1396fe2941f6db0555848c36b5d8bc0))
* **table:** fix rendering boolean ([#256](https://github.com/apache-superset/superset-ui/issues/256)) ([faa11ac](https://github.com/apache-superset/superset-ui/commit/faa11ac96a58a80e91ca20e98f7e078b10099119))
* **table:** fix sorting, column width calculation, and text wrapping ([#253](https://github.com/apache-superset/superset-ui/issues/253)) ([12dd847](https://github.com/apache-superset/superset-ui/commit/12dd847851acd97fe531f0b97784e437773a4596))
* **table:** fixed performance issue ([#241](https://github.com/apache-superset/superset-ui/issues/241)) ([c68f9d7](https://github.com/apache-superset/superset-ui/commit/c68f9d7fa8990d2010b3a824de912e43ace1bf58))
* **table:** TableVis dynamic height enabled ([#229](https://github.com/apache-superset/superset-ui/issues/229)) ([bd4efa3](https://github.com/apache-superset/superset-ui/commit/bd4efa3d963268b4e57fb63874449a39c6819c33)), closes [#233](https://github.com/apache-superset/superset-ui/issues/233)
* **tablevis:** Set proper width for each column ([#189](https://github.com/apache-superset/superset-ui/issues/189)) ([1a28e7f](https://github.com/apache-superset/superset-ui/commit/1a28e7f1d6e1169e82d53ba2de59bdb9718f012d))
* 🐛 broken unit test due to missing babel-polyfill ([b6c62df](https://github.com/apache-superset/superset-ui/commit/b6c62dff2f7f1182c96389772cb77483ffdd6786))
* bar label for many bars and long labels ([#21](https://github.com/apache-superset/superset-ui/issues/21)) ([97a35dd](https://github.com/apache-superset/superset-ui/commit/97a35dd5d8889097e4e9e04857d88d4f8dd49689))
* big number with trendline fix ([#34](https://github.com/apache-superset/superset-ui/issues/34)) ([912d076](https://github.com/apache-superset/superset-ui/commit/912d0765922cd9e16a2879bcd89f2a0c44174e6a))
* broken build due to file rename in vega-lite ([#37](https://github.com/apache-superset/superset-ui/issues/37)) ([8722dad](https://github.com/apache-superset/superset-ui/commit/8722dad9ca34f6ff4c2e47710d89867c894b847e))
* broken build due to vega type ([#96](https://github.com/apache-superset/superset-ui/issues/96)) ([1bcaa7f](https://github.com/apache-superset/superset-ui/commit/1bcaa7faaded6bbfe60c43afcb6131f29088b506))
* convert scale config to data-ui's config correctly ([#115](https://github.com/apache-superset/superset-ui/issues/115)) ([8e8b724](https://github.com/apache-superset/superset-ui/commit/8e8b724e9cde80d9867b5b7b7c187aa5702c2f54))
* disable lazy import for line chart and box plot ([#82](https://github.com/apache-superset/superset-ui/issues/82)) ([a254f68](https://github.com/apache-superset/superset-ui/commit/a254f68654e211d33510505db6f14108764b827c))
* dual line chart color consistency for secondary y axis ([#18](https://github.com/apache-superset/superset-ui/issues/18)) ([41701b9](https://github.com/apache-superset/superset-ui/commit/41701b997ce9a17b0474e596cccb04ae552eacc2))
* exception thrown for charts without a x-axis ([#36](https://github.com/apache-superset/superset-ui/issues/36)) ([3e45f2e](https://github.com/apache-superset/superset-ui/commit/3e45f2e3048a0683b98e947e685e92a4bd4c320b))
* fine tune time pivot chart tooltip ([#33](https://github.com/apache-superset/superset-ui/issues/33)) ([088c5bb](https://github.com/apache-superset/superset-ui/commit/088c5bb19c706417159efdf185b0e5f7eff441a1))
* gradient not working when y axis title has space ([#98](https://github.com/apache-superset/superset-ui/issues/98)) ([b0a342a](https://github.com/apache-superset/superset-ui/commit/b0a342afca75d159615c3a72e7be070f5ce40cb5))
* gridlines ([a788b48](https://github.com/apache-superset/superset-ui/commit/a788b48ff601022c320576f429ec08bb2f1d0445))
* heatmap errors with null data ([d773983](https://github.com/apache-superset/superset-ui/commit/d7739832079237c510dada44d9438f27e263719b))
* ignore disabled series in stacked bar values ([#116](https://github.com/apache-superset/superset-ui/issues/116)) ([6d56d92](https://github.com/apache-superset/superset-ui/commit/6d56d92825e484fb6f5d564868638f9d60a3179d))
* invalid margin breaking chart ([#102](https://github.com/apache-superset/superset-ui/issues/102)) ([6aa8d00](https://github.com/apache-superset/superset-ui/commit/6aa8d0058216b95b52db5c1b9db1a327c6cf2a5a))
* lazily create metadata ([#74](https://github.com/apache-superset/superset-ui/issues/74)) ([9b8c83b](https://github.com/apache-superset/superset-ui/commit/9b8c83b23af912615e0a1752a068c283a64b8895))
* legend types ([2309c44](https://github.com/apache-superset/superset-ui/commit/2309c44a46bea260dd4d563629a0bbb4d9870384))
* line chart tooltip should use full datetime format ([#24](https://github.com/apache-superset/superset-ui/issues/24)) ([dfb6599](https://github.com/apache-superset/superset-ui/commit/dfb65994138e60f7ce562799c35bcc1b6af73a2e))
* line chart tooltip when there is only one lien ([#103](https://github.com/apache-superset/superset-ui/issues/103)) ([c1ac4ab](https://github.com/apache-superset/superset-ui/commit/c1ac4ab5430ce5e16c9b65c9f4a6dff45efdc323))
* lint ([3cb3b8e](https://github.com/apache-superset/superset-ui/commit/3cb3b8ea51322b6824e7f74173010b1aac6b0c1b))
* lint ([#79](https://github.com/apache-superset/superset-ui/issues/79)) ([67e30a6](https://github.com/apache-superset/superset-ui/commit/67e30a65595a8a949cca7f7b524d203b709ad993))
* list css as side effects ([#57](https://github.com/apache-superset/superset-ui/issues/57)) ([b743960](https://github.com/apache-superset/superset-ui/commit/b743960ce1f054bb43f805970d61a55a65adcd71))
* make pivot table handle null string ([#23](https://github.com/apache-superset/superset-ui/issues/23)) ([5746975](https://github.com/apache-superset/superset-ui/commit/5746975fd85c50a296b018d32e1ce35a80bfe5b3))
* move react to table peerdependency ([#179](https://github.com/apache-superset/superset-ui/issues/179)) ([92028c2](https://github.com/apache-superset/superset-ui/commit/92028c2ce6fe381724d7b6e6d942149cc93e612b))
* move series in front of xy gridlines ([#119](https://github.com/apache-superset/superset-ui/issues/119)) ([32850ef](https://github.com/apache-superset/superset-ui/commit/32850efb828cd9a5865f92c7a4a08325120f6396))
* **preset-chart-xy:** Pick LegendRenderer ([#118](https://github.com/apache-superset/superset-ui/issues/118)) ([d10eba0](https://github.com/apache-superset/superset-ui/commit/d10eba0631445f127532c3b1de0379d075a110df))
* **tablevis:** update datatable change ([9846de5](https://github.com/apache-superset/superset-ui/commit/9846de551744987964d801649f8c82973a856936))
* line chart does not handle temporal field correctly ([#68](https://github.com/apache-superset/superset-ui/issues/68)) ([93e040f](https://github.com/apache-superset/superset-ui/commit/93e040f1955f17f2c79f2554848ff94b4e5ae152))
* make line chart query operate in time series mode ([#71](https://github.com/apache-superset/superset-ui/issues/71)) ([b732022](https://github.com/apache-superset/superset-ui/commit/b732022ce10102c64497c0d718ea88a63959d750))
* move padding ([b5f00a5](https://github.com/apache-superset/superset-ui/commit/b5f00a58b030f5b89b64cb8e153427fcb6e265cc))
* nvd3 line chart y axis bounds ([#17](https://github.com/apache-superset/superset-ui/issues/17)) ([d8655c7](https://github.com/apache-superset/superset-ui/commit/d8655c7d38f0424012fc3747bb6c1dfbda2fa540))
* remove sticky tooltip when query returns no data in explore view ([#42](https://github.com/apache-superset/superset-ui/issues/42)) ([4e5b8d3](https://github.com/apache-superset/superset-ui/commit/4e5b8d3c4ad8a30dbbaeed2dcb56b1518de6012d))
* rename file from js to ts ([#75](https://github.com/apache-superset/superset-ui/issues/75)) ([b9f5059](https://github.com/apache-superset/superset-ui/commit/b9f5059ed2ca4da901a58e90068ac6abe220f38f))
* resolve issues post `0.10.0` ([bdd647a](https://github.com/apache-superset/superset-ui/commit/bdd647ad78c0a4e7a56830da214be333a10c407c))
* responsive y-axis on stacked charts ([#141](https://github.com/apache-superset/superset-ui/issues/141)) ([c85b149](https://github.com/apache-superset/superset-ui/commit/c85b14984d62fa79228fb742bbf06e2028da4a0d))
* scale type category missing ordinal ([9d0b2da](https://github.com/apache-superset/superset-ui/commit/9d0b2da69dcf6b4d482043cdb3617e6961190f7f))
* show only necessary tick labels on log scale ([#19](https://github.com/apache-superset/superset-ui/issues/19)) ([f642031](https://github.com/apache-superset/superset-ui/commit/f642031ea18b0933d2609b1834db2a5da2da8424))
* single y axis bounds ([#148](https://github.com/apache-superset/superset-ui/issues/148)) ([c58270b](https://github.com/apache-superset/superset-ui/commit/c58270bed03d1ff4f453d1e95d83b8317f7e51c4))
* use correct number format ([#47](https://github.com/apache-superset/superset-ui/issues/47)) ([2ea399d](https://github.com/apache-superset/superset-ui/commit/2ea399d616177c1a935027f6c26562a85674f65d))
* word cloud import bug ([#65](https://github.com/apache-superset/superset-ui/issues/65)) ([eeb722e](https://github.com/apache-superset/superset-ui/commit/eeb722e0e33bd365de84b87ac7fc7c4b798156ef))
* y axis bounds when input are nan ([#22](https://github.com/apache-superset/superset-ui/issues/22)) ([545fd81](https://github.com/apache-superset/superset-ui/commit/545fd813caa5817109466590b060a81a27237f71))
* y-axis bounds for stacked viz types ([#45](https://github.com/apache-superset/superset-ui/issues/45)) ([eaa2425](https://github.com/apache-superset/superset-ui/commit/eaa24256ea5a287e3021b628e5be352a54ab1da0))
* **legacy-preset-chart-nvd3:** redraw bar values after legend change ([#7](https://github.com/apache-superset/superset-ui/issues/7)) ([620ad2f](https://github.com/apache-superset/superset-ui/commit/620ad2f2bfe5e4f4848810bedd3061d76f68f600))
* **legacy-preset-chart-nvd3:** redraw markers after legend interaction ([#6](https://github.com/apache-superset/superset-ui/issues/6)) ([c5df555](https://github.com/apache-superset/superset-ui/commit/c5df555d801f03a30b22dafdb7d30d4e4ec971cd))
* **legacy-preset-chart-nvd3:** stacked bar charts labels ([#40](https://github.com/apache-superset/superset-ui/issues/40)) ([744f7c8](https://github.com/apache-superset/superset-ui/commit/744f7c8f7234ffaebb31134750b69369a21e5a62))
* **legacy-preset-chart-nvd3:** tooltip's disappearance and stickiness ([#1](https://github.com/apache-superset/superset-ui/issues/1)) ([d1a2a59](https://github.com/apache-superset/superset-ui/commit/d1a2a597a55f94a87c82fef62d048f25e4eff125))
### Features
* migrate xy-chart to use encodable ([#438](https://github.com/apache-superset/superset-ui/issues/438)) ([500e0c2](https://github.com/apache-superset/superset-ui/commit/500e0c2e7f9f4543922b1cd8f56435d28c0dc161)), closes [#420](https://github.com/apache-superset/superset-ui/issues/420) [#421](https://github.com/apache-superset/superset-ui/issues/421) [#427](https://github.com/apache-superset/superset-ui/issues/427) [#430](https://github.com/apache-superset/superset-ui/issues/430) [#432](https://github.com/apache-superset/superset-ui/issues/432) [#433](https://github.com/apache-superset/superset-ui/issues/433) [#436](https://github.com/apache-superset/superset-ui/issues/436)
* **big-number:** allow fallback to last available value and fix time range for trend lines ([#403](https://github.com/apache-superset/superset-ui/issues/403)) ([c839ee7](https://github.com/apache-superset/superset-ui/commit/c839ee7617f5ece0f3cc91dfa7f6a9f8a8b816cd))
* **big-number:** format datetime according to granularity ([#402](https://github.com/apache-superset/superset-ui/issues/402)) ([b17a363](https://github.com/apache-superset/superset-ui/commit/b17a363a6e8d093381f496801eb9eee486cdcab8))
* 🎸 line chart makes first appearance ([df727b6](https://github.com/apache-superset/superset-ui/commit/df727b6d1a4e35d3e08f13884737d88a3922945f))
* add box plot ([#78](https://github.com/apache-superset/superset-ui/issues/78)) ([5f21ffd](https://github.com/apache-superset/superset-ui/commit/5f21ffd11177ad44a0a6e0bc35f6986b6babee37))
* add country map of bulgaria in superset-ui-legacy-plugin-chart-country-map ([#2](https://github.com/apache-superset/superset-ui/issues/2)) ([ba113c2](https://github.com/apache-superset/superset-ui/commit/ba113c2056958ec0c0a84dafff74952377a45c53))
* add encodeable utilities for chart ([#15](https://github.com/apache-superset/superset-ui/issues/15)) ([3f68efb](https://github.com/apache-superset/superset-ui/commit/3f68efb593553f9315b6c5f40500a2b80212971a))
* add india to country_map visualization ([#182](https://github.com/apache-superset/superset-ui/issues/182)) ([e16a967](https://github.com/apache-superset/superset-ui/commit/e16a96724b3e3679667b09a7aa0c608b0d7d047d))
* Add Iran to countries ([#306](https://github.com/apache-superset/superset-ui/issues/306)) ([5cb5c6d](https://github.com/apache-superset/superset-ui/commit/5cb5c6d96c872e44ad632b0d9cd2f69ef8ea3f5a))
* add Korea(South) to Country Maps ([#230](https://github.com/apache-superset/superset-ui/issues/230)) ([7ca4b8d](https://github.com/apache-superset/superset-ui/commit/7ca4b8dec0ce044a79f06f63f7dcd7cd12180c02))
* add Liechtenstein to country map chart ([#263](https://github.com/apache-superset/superset-ui/issues/263)) ([fd1c7af](https://github.com/apache-superset/superset-ui/commit/fd1c7afe8aabd5e86026763810797ebebc205887))
* add properties for font sizing ([#10](https://github.com/apache-superset/superset-ui/issues/10)) ([47b5eff](https://github.com/apache-superset/superset-ui/commit/47b5eff678de2f437fdc4edb3ce67626e2565087))
* add sankey chart with loops ([#77](https://github.com/apache-superset/superset-ui/issues/77)) ([246c336](https://github.com/apache-superset/superset-ui/commit/246c33659521e5e349c8e0a0aabdb46e5592d306))
* add scatter plot ([#90](https://github.com/apache-superset/superset-ui/issues/90)) ([1ffeb77](https://github.com/apache-superset/superset-ui/commit/1ffeb7713dbe2f42f55f7ef690593e8434ee98bf))
* add tooltip and layout components for charts ([#13](https://github.com/apache-superset/superset-ui/issues/13)) ([27227eb](https://github.com/apache-superset/superset-ui/commit/27227ebddceee461a3b22e432bf6d589df8a49e4))
* add typescript declaration for external packages ([#12](https://github.com/apache-superset/superset-ui/issues/12)) ([79ae24d](https://github.com/apache-superset/superset-ui/commit/79ae24db979d395095743bd712fbcb864c7e2dd6))
* adding Canada into the list of country map choices ([#48](https://github.com/apache-superset/superset-ui/issues/48)) ([9b91465](https://github.com/apache-superset/superset-ui/commit/9b914654879d277932562d775a6956e64d3566e3))
* customize no data message in nvd3 charts ([#330](https://github.com/apache-superset/superset-ui/issues/330)) ([4e60731](https://github.com/apache-superset/superset-ui/commit/4e607314951483472a698f7f57c5a0636352d6ca))
* simply the data processing logic ([604fd44](https://github.com/apache-superset/superset-ui/commit/604fd442ad77d6e8a0fe2f5684552565f065441f))
* support no data within BigNumber viz ([#327](https://github.com/apache-superset/superset-ui/issues/327)) ([6cc5619](https://github.com/apache-superset/superset-ui/commit/6cc56195f834c652a0fc4edeb934b23e84206641))
* **added search bar:** added search bar ([f4afc22](https://github.com/apache-superset/superset-ui/commit/f4afc226640c2f8d45823c3ea322cde1328ef3b9))
* **code refactoring:** code refactoring ([e46c829](https://github.com/apache-superset/superset-ui/commit/e46c8291ac9066f8f41450e3b1b8e590ca19159d))
* **datatable:** render html correctly ([#199](https://github.com/apache-superset/superset-ui/issues/199)) ([589024b](https://github.com/apache-superset/superset-ui/commit/589024bea68f512871502c31faa54970688bc5ca))
* **legacy-plugin-chart-country-map:** add Switzerland to country map chart ([#260](https://github.com/apache-superset/superset-ui/issues/260)) ([046c102](https://github.com/apache-superset/superset-ui/commit/046c102f95e268a7427e03dda32f9f09ba0eb3c6))
* **plugin-chart-word-cloud:** convert word cloud to use encodable ([#258](https://github.com/apache-superset/superset-ui/issues/258)) ([75141fe](https://github.com/apache-superset/superset-ui/commit/75141fe30046bb12621921b5d44c90f257323a89))
* add basic functionality for icicle chart to display static data ([#165](https://github.com/apache-superset/superset-ui/issues/165)) ([50e9df5](https://github.com/apache-superset/superset-ui/commit/50e9df5dd1dd10a51e6bc75eb80433a747f8c0a6))
* add getDomain to ChannelEncoder ([2321aaf](https://github.com/apache-superset/superset-ui/commit/2321aaf370856ae8d6343d9215232bab910f1dd3))
* add types to published list ([0624be5](https://github.com/apache-superset/superset-ui/commit/0624be53f82b9579b9a75e115898e6753194ee99))
* allow boolean as axis config ([ab0cc0b](https://github.com/apache-superset/superset-ui/commit/ab0cc0b91b9ec26c6ccf7b40e6ccd148bac1e5c6))
* allow legend overrides at multiple levels ([#81](https://github.com/apache-superset/superset-ui/issues/81)) ([034eda1](https://github.com/apache-superset/superset-ui/commit/034eda1fac618f22c1c8450e5b8ab53642b75098))
* allow overriding ChartLegend, its style and LegendGroup style ([#112](https://github.com/apache-superset/superset-ui/issues/112)) ([105cf0f](https://github.com/apache-superset/superset-ui/commit/105cf0f6b70e8c28408c2004c01dafa8c373af5b))
* bring lazy import back ([#84](https://github.com/apache-superset/superset-ui/issues/84)) ([d14e5ba](https://github.com/apache-superset/superset-ui/commit/d14e5bad8364aaf3ecaf7975079f98c0e51c2b79))
* bump data-ui/xy-chart version ([2111e3a](https://github.com/apache-superset/superset-ui/commit/2111e3a1264d63d8c6eafc7d564fd947bc6854ec))
* bump dependencies ([814966f](https://github.com/apache-superset/superset-ui/commit/814966fff149c16aa147d77951cff854f3856348))
* channels can take array of definitions ([2a04891](https://github.com/apache-superset/superset-ui/commit/2a048910aaf09c3218517b42dd13dba6219e596e))
* create reusable selector factory for Encoder ([a0097fc](https://github.com/apache-superset/superset-ui/commit/a0097fc6d4c0f2627ce24829f13b1b5f48fcd695))
* file skeleton necessary for icicle chart visualization ([#162](https://github.com/apache-superset/superset-ui/issues/162)) ([83190f0](https://github.com/apache-superset/superset-ui/commit/83190f05afd0156810e6b77b6d5dd8be6b39872d))
* implement labelFlush behavior for continuous axes ([#117](https://github.com/apache-superset/superset-ui/issues/117)) ([a747ea4](https://github.com/apache-superset/superset-ui/commit/a747ea4c222f9a4b1dab5958b29524112bd34ba4))
* improve line chart margin/axis and add buildquery ([#66](https://github.com/apache-superset/superset-ui/issues/66)) ([5887ade](https://github.com/apache-superset/superset-ui/commit/5887adec71ff1edd2e1cf72ee140ac9eb5662b0b))
* improve table performance ([#246](https://github.com/apache-superset/superset-ui/issues/246)) ([082ff23](https://github.com/apache-superset/superset-ui/commit/082ff2345ba676c3e592d9d6b2d5dd98c32c71ec))
* improve the tooltip for the time pivot chart ([#30](https://github.com/apache-superset/superset-ui/issues/30)) ([ff06cb5](https://github.com/apache-superset/superset-ui/commit/ff06cb5704772b78242e53aa2f23e30cce346037))
* increment the version number ([#44](https://github.com/apache-superset/superset-ui/issues/44)) ([db64322](https://github.com/apache-superset/superset-ui/commit/db6432272a46e0d20d0fb5b7c781db25a3a5b51d))
* integrate line chart with build query and update typings ([#73](https://github.com/apache-superset/superset-ui/issues/73)) ([9cbbe6e](https://github.com/apache-superset/superset-ui/commit/9cbbe6ed6bf0d6fb48711bef822652fe34eaca46))
* line chart with revised encodeable utilities ([#26](https://github.com/apache-superset/superset-ui/issues/26)) ([8380c93](https://github.com/apache-superset/superset-ui/commit/8380c934db72fb9e17c5379d50b63f28c740f061))
* remove children from XYChartLayout parameter ([3a889d2](https://github.com/apache-superset/superset-ui/commit/3a889d25a7ff4c352a3125e633912c2d77a64324))
* simplify Encoder creation ([e858bcc](https://github.com/apache-superset/superset-ui/commit/e858bcc76584b06c17bda9116b4c9a8cde6bab5b))
* support custom tooltip for scatterplot and box plot ([8733c01](https://github.com/apache-superset/superset-ui/commit/8733c01481ce31a52a44f799a06683cbb61960c1))
* support line strokeWidth ([#105](https://github.com/apache-superset/superset-ui/issues/105)) ([cbd7368](https://github.com/apache-superset/superset-ui/commit/cbd736869c03029314c6f000b9e6cb19d5d8a7fc))
* support tooltip and legend overrides ([#101](https://github.com/apache-superset/superset-ui/issues/101)) ([c63edcd](https://github.com/apache-superset/superset-ui/commit/c63edcd65b8fb2a5d76a15f492515008407069d3))
* update dependencies to make plugins compatible with 0.11 ([#38](https://github.com/apache-superset/superset-ui/issues/38)) ([93379f4](https://github.com/apache-superset/superset-ui/commit/93379f47f3a4b2b95cf92d0e783f7284b265ab3b))
* update line chart thumbnail and scale extraction ([#61](https://github.com/apache-superset/superset-ui/issues/61)) ([11ef47e](https://github.com/apache-superset/superset-ui/commit/11ef47e609382c6d23a93674acd0ea0ac2712c62))
* update type for line chart series ([#175](https://github.com/apache-superset/superset-ui/issues/175)) ([826dad9](https://github.com/apache-superset/superset-ui/commit/826dad99e5b5b0af6de2509e935f6c2b35d52414))
* upgrade [@superset-ui](https://github.com/superset-ui) to v0.12 ([#183](https://github.com/apache-superset/superset-ui/issues/183)) ([c0133f7](https://github.com/apache-superset/superset-ui/commit/c0133f7f240fb10c77bdf24a9475175b0dae0ea3))
* **legacy-preset-chart-nvd3:** show negative values on bars ([#8](https://github.com/apache-superset/superset-ui/issues/8)) ([39cfe71](https://github.com/apache-superset/superset-ui/commit/39cfe718be658a045c445325071b079587cc1555))
* **remove unused package:** remove corejs and other unused package ([2cdf2f6](https://github.com/apache-superset/superset-ui/commit/2cdf2f663f1403381da41eab4eb8a75f2b9274ef))
* **tablevis:** this pr is to add a new tablevis plguin to the system ([66a9d26](https://github.com/apache-superset/superset-ui/commit/66a9d269e28b5289363da9902f11c5ea01c47e2a))
* update data format returned from query api and add getGroupBys ([#72](https://github.com/apache-superset/superset-ui/issues/72)) ([084ea37](https://github.com/apache-superset/superset-ui/commit/084ea377669709752aa5af5f89fd5950b2a131ee))
* update tooltip and use selector ([#31](https://github.com/apache-superset/superset-ui/issues/31)) ([1cf7a22](https://github.com/apache-superset/superset-ui/commit/1cf7a22442540e00a5365c79aa3bf358b285c060))
### Performance Improvements
* faster legacy table chart ([#385](https://github.com/apache-superset/superset-ui/issues/385)) ([42fa821](https://github.com/apache-superset/superset-ui/commit/42fa821232c2c4ab350ff6c27b76bac706e56749)), closes [/github.com/DataTables/DataTables/blob/83657a29e33ce93ee940ce25684940eb3acb2913/media/js/jquery.dataTables.js#L3113-L3117](https://github.com//github.com/DataTables/DataTables/blob/83657a29e33ce93ee940ce25684940eb3acb2913/media/js/jquery.dataTables.js/issues/L3113-L3117)
## [0.12.19](https://github.com/apache-superset/superset-ui/compare/v0.12.18...v0.12.19) (2020-04-17)
### Bug Fixes
* lint ([ec73623](https://github.com/apache-superset/superset-ui/commit/ec73623181d24241abe5e484d26a61ae17f99689))
### Features
* **legacy-plugin-chart-paired-t-test:** migrate from another repo ([7cd0363](https://github.com/apache-superset/superset-ui/commit/7cd0363c70f294f9127f672eb4e464320d6e8243))
* **legacy-plugin-chart-parallel-coordinates:** migrate from another repo ([52e7119](https://github.com/apache-superset/superset-ui/commit/52e711950a01e96a36530cb77b5388b205ee251e))
* **legacy-plugin-chart-partition:** migrate from another repo ([1ab9fea](https://github.com/apache-superset/superset-ui/commit/1ab9feac7f9d52435ce61690abd30540442e477e))
* **legacy-plugin-chart-pivot-table:** migrate from another repo ([d631b17](https://github.com/apache-superset/superset-ui/commit/d631b17597483f981f5de67d2c482e8fae94dc55))
* **style:** add style to umbrella package ([#366](https://github.com/apache-superset/superset-ui/issues/366)) ([4ab96f3](https://github.com/apache-superset/superset-ui/commit/4ab96f34b3dd5768a6f40d777147b9b8e6f13222))
* migrate heatmap, horizon, iframe and markup ([#367](https://github.com/apache-superset/superset-ui/issues/367)) ([152e457](https://github.com/apache-superset/superset-ui/commit/152e4577ab7c8aedc76a3b1e83bf7f2867c6de79))
## [0.12.18](https://github.com/apache-superset/superset-ui/compare/v0.12.17...v0.12.18) (2020-04-15)
### Features
* migrate legacy-plugin-chart-chord ([#365](https://github.com/apache-superset/superset-ui/issues/365)) ([ea31f9f](https://github.com/apache-superset/superset-ui/commit/ea31f9f46b260e347907c3b6cbf27ceed9ed219d))
## [0.12.17](https://github.com/apache-superset/superset-ui/compare/v0.12.16...v0.12.17) (2020-04-15)
### Bug Fixes
* publish settings ([341c122](https://github.com/apache-superset/superset-ui/commit/341c122cb4f2b59c31b590a9146cf9976597888d))
## [0.12.16](https://github.com/apache-superset/superset-ui/compare/v0.12.15...v0.12.16) (2020-04-15)
### Features
* style package for theming and styled components ([#362](https://github.com/apache-superset/superset-ui/issues/362)) ([316c913](https://github.com/apache-superset/superset-ui/commit/316c913afc8d571bf2d30004b3254c977bf59d2b))
## [0.12.15](https://github.com/apache-superset/superset-ui/compare/v0.12.14...v0.12.15) (2020-04-13)
### Features
* make CategoricalScale compatible with D3 ScaleOrdinal ([#357](https://github.com/apache-superset/superset-ui/issues/357)) ([b802974](https://github.com/apache-superset/superset-ui/commit/b8029741d87b97f93d8bf43c649983f14693635d))
* make time formatter handle number and fix formatters type warnings ([#358](https://github.com/apache-superset/superset-ui/issues/358)) ([aaf17ac](https://github.com/apache-superset/superset-ui/commit/aaf17ac0a5da7895796ca4f3dde75e7c259b1d9b))
## [0.12.14](https://github.com/apache-superset/superset-ui/compare/v0.12.13...v0.12.14) (2020-04-13)
### Features
* add calendar package and storybook ([#356](https://github.com/apache-superset/superset-ui/issues/356)) ([daf47bd](https://github.com/apache-superset/superset-ui/commit/daf47bd03f78adde3d5eb003cda0d7071c3473da))
* allow toggling of table viz's bar chart backgrounds ([#352](https://github.com/apache-superset/superset-ui/issues/352)) ([5d5ade9](https://github.com/apache-superset/superset-ui/commit/5d5ade93d4f2fd3d5b8ae52823d26d51aef6fead))
## [0.12.13](https://github.com/apache-superset/superset-ui/compare/v0.12.12...v0.12.13) (2020-04-07)
### Bug Fixes
* **legacy-plugin-chart-table:** time column formating ([#340](https://github.com/apache-superset/superset-ui/issues/340)) ([6c7f710](https://github.com/apache-superset/superset-ui/commit/6c7f7106cc0e84eacd16f7f2e86ffc619ffe075a))
* new line at end ([e8d59e5](https://github.com/apache-superset/superset-ui/commit/e8d59e532c0e7f0ecccebaed26ee6b9d4e309f28))
### Features
* add validator to umbrella package ([#327](https://github.com/apache-superset/superset-ui/issues/327)) ([b1a02b9](https://github.com/apache-superset/superset-ui/commit/b1a02b9ef64a70b7fb3d5dc9a599ea337866aba4))
### Reverts
* Revert "build: try to merge superset-ui-plugins" ([6be7b2f](https://github.com/apache-superset/superset-ui/commit/6be7b2f007fc241fbf641553d5852db778588fda))
* Revert "build: clean up tsbuild.info, too" ([39d983a](https://github.com/apache-superset/superset-ui/commit/39d983a9a5ac1819f23cd1a547a8d0fbe54d29a8))
## [0.12.12](https://github.com/apache-superset/superset-ui/compare/v0.12.11...v0.12.12) (2020-04-01)
### Features
* add validator package ([#322](https://github.com/apache-superset/superset-ui/issues/322)) ([ea78a4e](https://github.com/apache-superset/superset-ui/commit/ea78a4e41a9e1e4b7f3fb86c9d61020c89652804))
## [0.12.11](https://github.com/apache-superset/superset-ui/compare/v0.12.10...v0.12.11) (2020-03-06)
### Bug Fixes
* small rendering for no results message ([#309](https://github.com/apache-superset/superset-ui/issues/309)) ([e7ff68c](https://github.com/apache-superset/superset-ui/commit/e7ff68c48d2d3e1a7df30967a74c7695d3837894))
## [0.12.10](https://github.com/apache-superset/superset-ui/compare/v0.12.9...v0.12.10) (2020-03-04)
### Features
* add more support for undefined format to number and time formatters ([#308](https://github.com/apache-superset/superset-ui/issues/308)) ([44ad062](https://github.com/apache-superset/superset-ui/commit/44ad062dd02d080362dac28782c0327cc9fa3445))
## [0.12.9](https://github.com/apache-superset/superset-ui/compare/v0.12.8...v0.12.9) (2020-03-04)
### Features
* make formatTime and formatNumber handle undefined format ([#307](https://github.com/apache-superset/superset-ui/issues/307)) ([768cfd5](https://github.com/apache-superset/superset-ui/commit/768cfd5f627a82b5dfcc0546001a54aa0ff0323c))
## [0.12.8](https://github.com/apache-superset/superset-ui/compare/v0.12.7...v0.12.8) (2020-03-04)
### Features
* add NoResultsComponent to charts ([#305](https://github.com/apache-superset/superset-ui/issues/305)) ([42060a0](https://github.com/apache-superset/superset-ui/commit/42060a0e7addd808153f13a27947310f2a7a477d))
* **number-format:** bump pretty-ms to 5.1.0 ([#262](https://github.com/apache-superset/superset-ui/issues/262)) ([0d3746e](https://github.com/apache-superset/superset-ui/commit/0d3746ea254d8d957cc3a3ba21dfd4cbc405c55a))
## [0.12.7](https://github.com/apache-superset/superset-ui/compare/v0.12.6...v0.12.7) (2019-11-20)
### Bug Fixes
* **dimension:** set 0 width/height in createHiddenSvgNode ([#261](https://github.com/apache-superset/superset-ui/issues/261)) ([7170f48](https://github.com/apache-superset/superset-ui/commit/7170f4826a79c5cf90ffc45247821872785d2f66))
## [0.12.6](https://github.com/apache-superset/superset-ui/compare/v0.12.5...v0.12.6) (2019-11-20)
### Bug Fixes
* typing issues surfaced by typescript 3.7 ([#260](https://github.com/apache-superset/superset-ui/issues/260)) ([a72c3dd](https://github.com/apache-superset/superset-ui/commit/a72c3dd491d63e16434453d21b2307cc0598130c))
## [0.12.5](https://github.com/apache-superset/superset-ui/compare/v0.12.4...v0.12.5) (2019-11-19)
### Bug Fixes
* d3 scale types ([#246](https://github.com/apache-superset/superset-ui/issues/246)) ([1bb49a8](https://github.com/apache-superset/superset-ui/commit/1bb49a8f1d2d8b4ea10676091a40cf12686b8cb6))
### Features
* add @superset-ui/superset-ui package as one-stop install ([#255](https://github.com/apache-superset/superset-ui/issues/255)) ([f0899d8](https://github.com/apache-superset/superset-ui/commit/f0899d85999dee620563597e13b480b85059cc53))
## [0.12.4](https://github.com/apache-superset/superset-ui/compare/v0.12.3...v0.12.4) (2019-11-12)
### Bug Fixes
* build error ([#235](https://github.com/apache-superset/superset-ui/issues/235)) ([f8e5dda](https://github.com/apache-superset/superset-ui/commit/f8e5ddad1431e2ca243c3ef5a66d30a2bfb3366c))
### Features
* add promiseTimeout ([#223](https://github.com/apache-superset/superset-ui/issues/223)) ([d02bb82](https://github.com/apache-superset/superset-ui/commit/d02bb82d3e220f5e7b23545fffa64a5292cc7987))
* **time-format:** bump d3-time-format ([#244](https://github.com/apache-superset/superset-ui/issues/244)) ([c31a085](https://github.com/apache-superset/superset-ui/commit/c31a085b1c9dab6ca9a389b97f35fffc682f7c34))
## [0.12.3](https://github.com/apache-superset/superset-ui/compare/v0.12.2...v0.12.3) (2019-09-04)
### Bug Fixes
* fix React.Fragment complaining about width/height ([#219](https://github.com/apache-superset/superset-ui/issues/219)) ([3e8ca39](https://github.com/apache-superset/superset-ui/commit/3e8ca39))
### Features
* add functions for parsing scales ([#207](https://github.com/apache-superset/superset-ui/issues/207)) ([6f56ed9](https://github.com/apache-superset/superset-ui/commit/6f56ed9))
* add Wrapper support and bounding box for dynamic width/height ([#215](https://github.com/apache-superset/superset-ui/issues/215)) ([c83ba1f](https://github.com/apache-superset/superset-ui/commit/c83ba1f))
## [0.12.2](https://github.com/apache-superset/superset-ui/compare/v0.12.1...v0.12.2) (2019-08-26)
### Bug Fixes
* remove is_prequery and prequeries ([#208](https://github.com/apache-superset/superset-ui/issues/208)) ([ddaf104](https://github.com/apache-superset/superset-ui/commit/ddaf104))
## [0.12.1](https://github.com/apache-superset/superset-ui/compare/v0.12.0...v0.12.1) (2019-08-26)
### Bug Fixes
* peerDependencies version ([#210](https://github.com/apache-superset/superset-ui/issues/210)) ([4d79dff](https://github.com/apache-superset/superset-ui/commit/4d79dff))
### Features
* add duration formatter ([#209](https://github.com/apache-superset/superset-ui/issues/209)) ([dcf89a2](https://github.com/apache-superset/superset-ui/commit/dcf89a2))
# [0.12.0](https://github.com/apache-superset/superset-ui/compare/v0.11.15...v0.12.0) (2019-08-23)
### Features
* add control panel support to chart plugin ([#203](https://github.com/apache-superset/superset-ui/issues/203)) ([920d389](https://github.com/apache-superset/superset-ui/commit/920d389))
* add functions for parsing formatters from encoding ([#205](https://github.com/apache-superset/superset-ui/issues/205)) ([8906aa0](https://github.com/apache-superset/superset-ui/commit/8906aa0))
* Add types and type guards for encodable ([#201](https://github.com/apache-superset/superset-ui/issues/201)) ([6cff25f](https://github.com/apache-superset/superset-ui/commit/6cff25f))
### BREAKING CHANGES
* **chart:** deprecate old SuperChart API that accepts chartProps ([#202](https://github.com/apache-superset/superset-ui/issues/202)) ([af877c6](https://github.com/apache-superset/superset-ui/commit/af877c6))
* No longer accept `chartProps` as a single prop in `<SuperChart>`. Developers must specify each field in chartProps individually.
* **chart:** split superset-ui/query from superset-ui/chart ([#178](https://github.com/apache-superset/superset-ui/issues/178)) ([630d3e5](https://github.com/apache-superset/superset-ui/commit/630d3e5))
* some api and types are removed from `@superset-ui/chart` and moved to `/query`
* **chart:** remove and rename fields in ChartProps ([#174](https://github.com/apache-superset/superset-ui/issues/174)) ([b53b839](https://github.com/apache-superset/superset-ui/commit/b53b839))
## [0.11.15](https://github.com/apache-superset/superset-ui/compare/v0.11.14...v0.11.15) (2019-08-06)
### Features
* optimize functions for getting text dimension ([#199](https://github.com/apache-superset/superset-ui/issues/199)) ([ad0fa42](https://github.com/apache-superset/superset-ui/commit/ad0fa42))
## [0.11.14](https://github.com/apache-superset/superset-ui/compare/v0.11.13...v0.11.14) (2019-08-05)
### Bug Fixes
* eslint issues ([#198](https://github.com/apache-superset/superset-ui/issues/198)) ([12aeb4a](https://github.com/apache-superset/superset-ui/commit/12aeb4a))
* **connection:** disable caching when on an insecure connection ([#194](https://github.com/apache-superset/superset-ui/issues/194)) ([ca256cd](https://github.com/apache-superset/superset-ui/commit/ca256cd)), closes [#193](https://github.com/apache-superset/superset-ui/issues/193)
* clean up unneeded Promise.resolves() ([#185](https://github.com/apache-superset/superset-ui/issues/185)) ([06382a5](https://github.com/apache-superset/superset-ui/commit/06382a5))
* move eslint disable comment in reactify test ([#184](https://github.com/apache-superset/superset-ui/issues/184)) ([795d2ed](https://github.com/apache-superset/superset-ui/commit/795d2ed))
### Features
* allow reactify callbacks to access props ([#200](https://github.com/apache-superset/superset-ui/issues/200)) ([9d6f5c0](https://github.com/apache-superset/superset-ui/commit/9d6f5c0))
* support locale in number and time format ([#182](https://github.com/apache-superset/superset-ui/issues/182)) ([e1f8773](https://github.com/apache-superset/superset-ui/commit/e1f8773))
## [0.11.13](https://github.com/apache-superset/superset-ui/compare/v0.11.12...v0.11.13) (2019-06-19)
### Bug Fixes
* wrong type for filters field ([#183](https://github.com/apache-superset/superset-ui/issues/183)) ([18ef7d9](https://github.com/apache-superset/superset-ui/commit/18ef7d9))
## [0.11.12](https://github.com/apache-superset/superset-ui/compare/v0.11.11...v0.11.12) (2019-06-18)
### Features
* store reference to container and update bindings ([#180](https://github.com/apache-superset/superset-ui/issues/180)) ([00e9a40](https://github.com/apache-superset/superset-ui/commit/00e9a40))
## [0.11.11](https://github.com/apache-superset/superset-ui/compare/v0.11.10...v0.11.11) (2019-06-18)
### Features
* add error boundary and responsiveness to SuperChart ([#175](https://github.com/apache-superset/superset-ui/issues/175)) ([c17b13d](https://github.com/apache-superset/superset-ui/commit/c17b13d))
## [0.11.10](https://github.com/apache-superset/superset-ui/compare/v0.11.9...v0.11.10) (2019-06-13)
### Features
* add parseLength function to @superset-ui/dimension ([#171](https://github.com/apache-superset/superset-ui/issues/171)) ([c0ef45f](https://github.com/apache-superset/superset-ui/commit/c0ef45f))
* allow chart plugin to be unregistered ([#168](https://github.com/apache-superset/superset-ui/issues/168)) ([32f8dd3](https://github.com/apache-superset/superset-ui/commit/32f8dd3))
## [0.11.9](https://github.com/apache-superset/superset-ui/compare/v0.11.8...v0.11.9) (2019-05-25)
### Bug Fixes
* remove padding in WithLegend ([2f0a400](https://github.com/apache-superset/superset-ui/commit/2f0a400))
## [0.11.8](https://github.com/apache-superset/superset-ui/compare/v0.11.7...v0.11.8) (2019-05-23)
### Features
* update ChartFormData and QueryObject to support filters. ([#164](https://github.com/apache-superset/superset-ui/issues/164)) ([025d5bc](https://github.com/apache-superset/superset-ui/commit/025d5bc))
## [0.11.7](https://github.com/apache-superset/superset-ui/compare/v0.11.6...v0.11.7) (2019-05-17)
### Features
* improve margin merging ([#159](https://github.com/apache-superset/superset-ui/issues/159)) ([7832747](https://github.com/apache-superset/superset-ui/commit/7832747))
## [0.11.6](https://github.com/apache-superset/superset-ui/compare/v0.11.5...v0.11.6) (2019-05-16)
### Bug Fixes
* lint ([#144](https://github.com/apache-superset/superset-ui/issues/144)) ([bf24316](https://github.com/apache-superset/superset-ui/commit/bf24316))
### Features
* add hooks ([#158](https://github.com/apache-superset/superset-ui/issues/158)) ([7b3ab5f](https://github.com/apache-superset/superset-ui/commit/7b3ab5f))
## [0.11.12](https://github.com/apache-superset/superset-ui/compare/v0.11.11...v0.11.12) (2019-06-18)
### ✨ Features
* store reference to container and update bindings ([#180](https://github.com/apache-superset/superset-ui/issues/180)) ([00e9a40](https://github.com/apache-superset/superset-ui/commit/00e9a40))
## [0.11.11](https://github.com/apache-superset/superset-ui/compare/v0.11.10...v0.11.11) (2019-06-18)
### ✨ Features
* add error boundary and responsiveness to SuperChart ([#175](https://github.com/apache-superset/superset-ui/issues/175)) ([c17b13d](https://github.com/apache-superset/superset-ui/commit/c17b13d))
## [0.11.10](https://github.com/apache-superset/superset-ui/compare/v0.11.9...v0.11.10) (2019-06-13)
### ✨ Features
* add parseLength function to @superset-ui/dimension ([#171](https://github.com/apache-superset/superset-ui/issues/171)) ([c0ef45f](https://github.com/apache-superset/superset-ui/commit/c0ef45f))
* allow chart plugin to be unregistered ([#168](https://github.com/apache-superset/superset-ui/issues/168)) ([32f8dd3](https://github.com/apache-superset/superset-ui/commit/32f8dd3))
## [0.11.9](https://github.com/apache-superset/superset-ui/compare/v0.11.8...v0.11.9) (2019-05-25)
### 🐞 Bug Fixes
* remove padding in WithLegend ([2f0a400](https://github.com/apache-superset/superset-ui/commit/2f0a400))
## [0.11.8](https://github.com/apache-superset/superset-ui/compare/v0.11.7...v0.11.8) (2019-05-23)
### ✨ Features
* update ChartFormData and QueryObject to support filters. ([#164](https://github.com/apache-superset/superset-ui/issues/164)) ([025d5bc](https://github.com/apache-superset/superset-ui/commit/025d5bc))
## [0.11.7](https://github.com/apache-superset/superset-ui/compare/v0.11.6...v0.11.7) (2019-05-17)
### ✨ Features
* improve margin merging ([#159](https://github.com/apache-superset/superset-ui/issues/159)) ([7832747](https://github.com/apache-superset/superset-ui/commit/7832747))
## [0.11.6](https://github.com/apache-superset/superset-ui/compare/v0.11.5...v0.11.6) (2019-05-16)
### 🐞 Bug Fixes
* lint ([#144](https://github.com/apache-superset/superset-ui/issues/144)) ([bf24316](https://github.com/apache-superset/superset-ui/commit/bf24316))
### ✨ Features
* add hooks ([#158](https://github.com/apache-superset/superset-ui/issues/158)) ([7b3ab5f](https://github.com/apache-superset/superset-ui/commit/7b3ab5f))
## [0.11.5](https://github.com/apache-superset/superset-ui/compare/v0.11.4...v0.11.5) (2019-04-27)
### 🐞 Bug Fixes
* broken build due to failing unit tests ([#141](https://github.com/apache-superset/superset-ui/issues/141)) ([58d56d5](https://github.com/apache-superset/superset-ui/commit/58d56d5))
### ✨ Features
* add chart companion components ([#139](https://github.com/apache-superset/superset-ui/issues/139)) ([a82faec](https://github.com/apache-superset/superset-ui/commit/a82faec))
## [0.11.4](https://github.com/apache-superset/superset-ui/compare/v0.11.3...v0.11.4) (2019-04-26)
### 🐞 Bug Fixes
* make translation module type check correctly ([#140](https://github.com/apache-superset/superset-ui/issues/140)) ([c05fe3a](https://github.com/apache-superset/superset-ui/commit/c05fe3a))
## [0.11.3](https://github.com/apache-superset/superset-ui/compare/v0.11.2...v0.11.3) (2019-04-16)
### 🐞 Bug Fixes
* bump peer dependencies ([#136](https://github.com/apache-superset/superset-ui/issues/136)) ([ca3000d](https://github.com/apache-superset/superset-ui/commit/ca3000d))
## [0.11.2](https://github.com/apache-superset/superset-ui/compare/v0.11.1...v0.11.2) (2019-04-08)
### 🐞 Bug Fixes
* smartDateVerbose at seconds ([#132](https://github.com/apache-superset/superset-ui/issues/132)) ([d29bfd0](https://github.com/apache-superset/superset-ui/commit/d29bfd0))
## [0.11.1](https://github.com/apache-superset/superset-ui/compare/v0.11.0...v0.11.1) (2019-04-08)
### ✨ Features
* callback hooks for Reactified components ([#131](https://github.com/apache-superset/superset-ui/issues/131)) ([7603520](https://github.com/apache-superset/superset-ui/commit/7603520))
# [0.11.0](https://github.com/apache-superset/superset-ui/compare/v0.10.10...v0.11.0) (2019-04-02)
### 💔 BREAKING CHANGE
* Revert "Handle BigNumber conversions in JSON properly (without loss of precision) (#71)" (#126)
This reverts commit e3866129b2b3cbd6e099fe4ab66319c4fe6ae485. It should not cause critical issue or require additional migration from `0.10.x`. However, since this is a change in the expected output, we bump the version to be safe.
## [0.10.10](https://github.com/apache-superset/superset-ui/compare/v0.10.9...v0.10.10) (2019-04-02)
### ✨ Features
* add support for conditional get requests ([#119](https://github.com/apache-superset/superset-ui/issues/119)) ([2ca55ed](https://github.com/apache-superset/superset-ui/commit/2ca55ed))
## [0.10.9](https://github.com/apache-superset/superset-ui/compare/v0.10.8...v0.10.9) (2019-03-29)
### ✨ Features
* add labels to color scheme ([#125](https://github.com/apache-superset/superset-ui/issues/125)) ([98a14a2](https://github.com/apache-superset/superset-ui/commit/98a14a2))
## [0.10.8](https://github.com/apache-superset/superset-ui/compare/v0.10.7...v0.10.8) (2019-03-26)
### 🐞 Bug Fixes
* Fixed type definition for chart plugin ([#123](https://github.com/apache-superset/superset-ui/issues/123)) ([6230a3b](https://github.com/apache-superset/superset-ui/commit/6230a3b))
### ✨ Features
* getter function to return color mapping ([#124](https://github.com/apache-superset/superset-ui/issues/124)) ([46e78ad](https://github.com/apache-superset/superset-ui/commit/46e78ad))
## [0.10.7](https://github.com/apache-superset/superset-ui/compare/v0.10.6...v0.10.7) (2019-03-22)
### 🐞 Bug Fixes
* import types from package, not monorepo ([#122](https://github.com/apache-superset/superset-ui/pull/122))
## [0.10.6](https://github.com/apache-superset/superset-ui/compare/v0.10.5...v0.10.6) (2019-03-22)
### 🛠️ Internal
* remove faux `@superset-ui/core` TS declaration ([#121](https://github.com/apache-superset/superset-ui/pull/121))
## 0.10.5 (2019-03-21)
### ✨ Features
* 🎸 Improved QueryObject to handle more fields (#116) ([57a64b1](https://github.com/apache-superset/superset-ui/commit/57a64b1)), closes [#116](https://github.com/apache-superset/superset-ui/issues/116)
* Add `<ChartDataProvider />` (#120) ([ade9dbe](https://github.com/apache-superset/superset-ui/commit/ade9dbe)), closes [#120](https://github.com/apache-superset/superset-ui/issues/120)
### 📜 Documentation
* Add TS support + CORS demo (#118) ([34581f3](https://github.com/apache-superset/superset-ui/commit/34581f3)), closes [#118](https://github.com/apache-superset/superset-ui/issues/118)
## 0.10.4 (2019-03-11)
### ✨ Features
* add dimension type (#117) ([e4a22ade305fd6ea962648b86ff88431d77ea41e](https://github.com/apache-superset/superset-ui/commit/e4a22ade305fd6ea962648b86ff88431d77ea41e)), closes [#117](https://github.com/apache-superset/superset-ui/issues/117)
* re-export types from @superset-ui/dimension (#115) ([8c3f8b0f5f2edb558cb8e9f708a17d3d3b4b92aa](https://github.com/apache-superset/superset-ui/commit/8c3f8b0f5f2edb558cb8e9f708a17d3d3b4b92aa)), closes [#115](https://github.com/apache-superset/superset-ui/issues/115)
## v0.10.3 (2019-03-07)
### ✨ Features
* feat(superset-ui-dimension): add `mergeMargin()` function (#114) ([c5589384c12f5ff2480e3614cf44b33d85b1299e](https://github.com/apache-superset/superset-ui/commit/c5589384c12f5ff2480e3614cf44b33d85b1299e)), closes [#114](https://github.com/apache-superset/superset-ui/issues/114)
## v0.10.2
### ✨ Features
* feat(superset-ui-chart): add `.clone()` function to `ChartMetadata` (#112) ([1c1ef3b](https://github.com/apache-superset/superset-ui/commit/1c1ef3b)), closes [#112](https://github.com/apache-superset/superset-ui/issues/112)
* feat(superset-ui-connection): Allow `PUT` and `PATCH` in call API ([efcfd1a](https://github.com/apache-superset/superset-ui/commit/efcfd1a))
## v0.10.1
### 💔 BREAKING CHANGE
* `@superset-ui/core` becomes peer dependency
### 🛠️ Internal
* refactor: make `@superset-ui/core` peer dependency (#111) ([e9c7b91](https://github.com/apache-superset/superset-ui/commit/e9c7b91)), closes [#111](https://github.com/apache-superset/superset-ui/issues/111)
* chore: add `commitlint` and `commitizen` config ([cae32ce](https://github.com/apache-superset/superset-ui/commit/cae32ce))
* docs: update changelog ([4d70053](https://github.com/apache-superset/superset-ui/commit/4d70053))
## v0.10.0
### 💔 BREAKING CHANGES
* Rename `FormData ` to `ChartFormData` to avoid naming collision with native JS (#100)
* Rename constants in `NumberFormats` changing `_CHANGE` to `_SIGNED`.
* Default number format is now `SMART_NUMBER` instead of `D3` `.3~s`.
### ✨ Features
* Add SMART_NUMBER formatter and make it default (#109)
* Enable warnings when values are overwritten in registries (#107)
### 🛠️ Internal
* Migrate `plugin-chart-word-cloud` to `@superset-ui-plugins` repo.
## v0.9.6
### 🛠️ Internal
* Update `@superset-ui/chart` dependency.
## v0.9.5
### 🛠️ Internal
* Remove unnecessary export types and remove warning when using `esm` output in target application.
## v0.9.4
### 🐞 Bug fixes
* Make `id` an optional prop for `SuperChart`.
## v0.9.3
### ✨ Features
* Add new package `@superset-ui/dimension`
* Add new package `@superset-ui/plugin-chart-word-cloud`
### 🛠️ Internal
* Minor update and additional unit tests for generator
## v0.9.2
### ✨ Features
* Add more subgenerators to create package and demo in `superset-ui-legacy`
* Support put and delete HTTP methods in `SupersetClient`
## v0.9.1
### 🐞 Bug fixes
* Fix TypeScript declaration for package `jed` with `@superset-ui/translation` distribution.
## v0.9.0
### ✨ Features
* Add `useLegacyApi` field to `ChartMetadata`. This flag will help us determine whether to use the new `/api/v1/query` endpoint or the legacy one.
* Add two generics to `Registry<V, W>`
* `V` is type of value in the registry
* `W` is type of value returned from `loader` function when using `.registerLoader(key, loader)`.
* `W` can be either `V`, `Promise<V>` or `V | Promise<V>`
* Set `W=V` when does not support asynchronous loader. Making return type of `.get()` become `V` instead of `Promise<V>`
* By default, `W` is set to `V | Promise<V>` to support both synchronous and asynchronous loaders.
* Include and link TypeScript declaration for package `jed` with `@superset-ui/translation` distribution.
### 🛠️ Internal
* Convert `@superset-ui/number-format` to TypeScript
* Convert `@superset-ui/time-format` to TypeScript
* Convert `@superset-ui/translation` to TypeScript
### 💔 BREAKING CHANGES
* Make number formatter always returns `string`. This is different from previous behavior.
|Value|formatted value (before)|formatted value (after)|
|------------|------------|-----------|
| `null` | `null` | `'null'` |
| `undefined` | `undefined` | `'undefined'` |
| `NaN` | `NaN` | `'NaN'` |
* Make time formatter always returns `string`. This is different from previous behavior.
|Value|formatted value (before)|formatted value (after)|
|------------|------------|-----------|
| `null` | `null` | `'null'` |
| `undefined` | `undefined` | `'undefined'` |
| `NaN` | `NaN` | `'NaN'` |
## v0.8.0
### ✨ Features
* Add SuperChart and convert to TypeScript
* Allow metrics arrays in form data
* Moved query module from `incubator-superset` into `superset-ui`
* Add `reactify` function from `incubator-superset`
### 🐞 Bug fixes
* Handle `BigNumber` conversions to/from JSON without loss of precision
### 🛠️ Internal
* Use DefinitelyTyped's `fetch-mock` type def
* Improved type def for `json-bigint`
* Migrated `@superset-ui/chart` to TypeScript
* Migrated `@superset-ui/color` to TypeScript
* Migrated `@superset-ui/core` to TypeScript
* Made `connection` and `color` packages peer dependencies
## v0.7.2
### ✨ Features
* Make `@superset-ui/time-format` and `@superset-ui/number-format` ignore leading and trailing spaces when looking for formatters.
## v0.7.1
### ✨ Features
* Add new APIs to `@superset-ui/time-format`
- `createD3TimeFormatter`
- `createMultiFormatter`
* Add new APIs to `@superset-ui/number-format`
- `createD3NumberFormatter`
- `createSiAtMostNDigitFormatter`
## v0.7.0
### ✨ Features
* Add `@superset-ui/time-format` package
* Add `@superset-ui/number-format` package
* Use the recently added `ExtensibleFunction` to make an instance of `CategoricalColorScale` be a function
* Add `overwritePolicy` for `Registry` so developer can customize whether overwriting is `ALLOW`, `WARN` or `PROHIBIT`.
### 🐞 Bug fixes
* Transform input value before setting color.
### 🛠️ Internal
* Rewrite `@superset-ui/connection` in TypeScript
### 💔 BREAKING CHANGES
* Remove `categoricalColorScale.toFunction()`. Now `categoricalColorScale` itself is already a function.
* The color scales no longer convert input to lowercase before finding color.
* Rename `ColorScheme` field `name` to `id`.
* Change `Registry` constructor API to take object instead of single string name.
-----
## v0.6.0
### ✨ Features
* Add `@superset-ui/generator-superset`
* Add `RegistryWithDefaultKey` and `ExtensibleFunction` to `@superset-ui/core`
### 💔 BREAKING CHANGES
* `getDefaultSchemeName()` and `setDefaultSchemeName()` are renamed to `getDefaultKey()` and `setDefaultKey()`
-----
## v0.5.0
### ✨ Features
* Add `@superset-ui/chart`
### 🐞 Bug fixes
* Use simple js to create range
-----
## v0.4.0
### ✨ Features
* Add `@superset-ui/color` for color management
-----
## v0.3.0
### ✨ Features
* Add new `@superset-ui/core` with data structures and utilities.
### 💔 BREAKING CHANGES
* Rename former `@superset-ui/core` to `@superset-ui/connection`.
================================================
FILE: CONTRIBUTING.md
================================================
## Contributing guidelines
### Setup local development
1. clone this repo
2. have `npm` install package dependencies and manage the symlinking between packages for you
```sh
git clone ...superset-ui && cd superset-ui
npm ci
npm build
```
To build only selected packages or plugins,
```bash
npm build "*chart-table"
```
### File organization
[lerna](https://github.com/lerna/lerna/) and [npm](https://www.npmjs.com/) are used to manage
versions and dependencies between packages in this monorepo.
```
superset-ui/
lerna.json
package.json
...
packages/
package1/
package.json
...
src/
test/ # unit tests
types/ # typescript type declarations
...
lib/ # commonjs output
esm/ # es module output
...
...
```
### Builds, linting, and testing
Each package defines its own build config, linting, and testing. You can have lerna run commands
across all packages using the syntax `npm run test` (or `npm run test:watch` for watch mode) from
the root `@superset-ui` directory.
- [Using Storybook](docs/storybook.md) - You can test your components independently from Superset
app.
- [Debugging Superset plugins in Superset app](docs/debugging.md) - Sometimes something went wrong
and you have to do it.
### Committing
This repository follows
[conventional commits](https://www.conventionalcommits.org/en/v1.0.0-beta.3/) guideline for commit
messages and has a `commitlint` hook which will require you to have the valid commit message before
committing. You can use `npm run commit` to help you create a commit message.
### Publishing
**Prerequisite:** You'll need to be a committer on the `apache-superset` organization to be able to
publish new versions of `superset-ui`.
1. Checkout the `master` branch from the main repo at `apache-superset/superset-ui` - NOT A FORK!
2. run `npm run ci:create-patch-version` to bump the patch version (the most common case) or
`npm run ci:create-minor-version` to bump the minor version. Once the process finishes and the
commit has been pushed to GitHub, CI will complete publishing the release to npm (takes some time
to complete).
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
# @superset-ui
[](https://codecov.io/gh/apache-superset/superset-ui/branch/master)
[](https://travis-ci.com/apache-superset/superset-ui)
[](https://david-dm.org/apache-superset/superset-ui?type=dev)
**🔴This repo has been archived, and is no longer receiving issues/pull requests. Please open all new issues/PRs on the [Apache Superset GitHub repo](http://github.com/apache/superset).🔴**
Collection of packages that power the
[Apache Superset](https://github.com/apache/incubator-superset) UI, and can be used to craft custom
data applications that leverage a Superset backend :chart_with_upwards_trend:
## Demo
Most recent release: https://apache-superset.github.io/superset-ui/
Current master: https://superset-ui.now.sh/
## Packages
### Core packages
| Package | Version |
| ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [@superset-ui/core](https://github.com/apache-superset/superset-ui/tree/master/packages/superset-ui-core) | [](https://www.npmjs.com/package/@superset-ui/core) |
| [@superset-ui/chart-controls](https://github.com/apache-superset/superset-ui/tree/master/packages/superset-ui-chart-controls) | [](https://www.npmjs.com/package/@superset-ui/chart-controls) |
| [@superset-ui/generator-superset](https://github.com/apache-superset/superset-ui/tree/master/packages/generator-superset) | [](https://www.npmjs.com/package/@superset-ui/generator-superset) |
### Chart plugin packages
`@superset-ui/legacy-*` packages are extracted from the classic
[Apache Superset](https://github.com/apache/incubator-superset) and converted into plugins. These
packages are extracted with minimal changes (almost as-is). They also depend on legacy API
(`viz.py`) to function.
| Package | Version |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [@superset-ui/legacy-preset-chart-big-number](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-preset-chart-big-number) | [](https://www.npmjs.com/package/@superset-ui/legacy-preset-chart-big-number) |
| [@superset-ui/legacy-preset-chart-nvd3](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-preset-chart-nvd3) | [](https://www.npmjs.com/package/@superset-ui/legacy-preset-chart-nvd3) |
| [@superset-ui/legacy-plugin-chart-calendar](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-calendar) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-calendar) |
| [@superset-ui/legacy-plugin-chart-chord](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-chord) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-chord) |
| [@superset-ui/legacy-plugin-chart-country-map](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-country-map) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-country-map) |
| [@superset-ui/legacy-plugin-chart-event-flow](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-event-flow) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-event-flow) |
| [@superset-ui/legacy-plugin-chart-force-directed](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-force-directed) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-force-directed) |
| [@superset-ui/legacy-plugin-chart-heatmap](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-heatmap) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-heatmap) |
| [@superset-ui/legacy-plugin-chart-histogram](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-histogram) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-histogram) |
| [@superset-ui/legacy-plugin-chart-horizon](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-horizon) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-horizon) |
| [@superset-ui/legacy-plugin-chart-iframe](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-iframe) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-iframe) |
| [@superset-ui/legacy-plugin-chart-markup](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-markup) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-markup) |
| [@superset-ui/legacy-plugin-chart-map-box](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-map-box) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-map-box) |
| [@superset-ui/legacy-plugin-chart-paired-t-test](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-paired-t-test) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-paired-t-test) |
| [@superset-ui/legacy-plugin-chart-parallel-coordinates](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-parallel-coordinates) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-parallel-coordinates) |
| [@superset-ui/legacy-plugin-chart-partition](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-partition) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-partition) |
| [@superset-ui/legacy-plugin-chart-pivot-table](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-pivot-table) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-pivot-table) |
| [@superset-ui/legacy-plugin-chart-rose](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-rose) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-rose) |
| [@superset-ui/legacy-plugin-chart-sankey](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-sankey) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-sankey) |
| [@superset-ui/legacy-plugin-chart-sankey-loop](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-sankey-loop) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-sankey-loop) |
| [@superset-ui/legacy-plugin-chart-sunburst](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-sunburst) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-sunburst) |
| [@superset-ui/legacy-plugin-chart-treemap](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-treemap) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-treemap) |
| [@superset-ui/legacy-plugin-chart-world-map](https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-world-map) | [](https://www.npmjs.com/package/@superset-ui/legacy-plugin-chart-world-map) |
`@superset-ui/plugin-*` packages are newer and higher quality in general. A key difference that they
do not depend on `viz.py` (which contain visualization-specific python code) and interface with
`/api/v1/query/`, a new generic endpoint instead meant to serve all visualizations, instead. Also
should be written in Typescript.
| Package | Version | Note |
| ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
| [@superset-ui/plugin-chart-word-cloud](https://github.com/apache-superset/superset-ui/tree/master/plugins/plugin-chart-word-cloud) | [](https://www.npmjs.com/package/@superset-ui/plugin-chart-word-cloud) | |
| [@superset-ui/plugin-chart-table](https://github.com/apache-superset/superset-ui/tree/master/plugins/plugin-chart-table) | [](https://www.npmjs.com/package/@superset-ui/plugin-chart-table) | |
| [@superset-ui/preset-chart-xy](https://github.com/apache-superset/superset-ui/tree/master/plugins/preset-chart-xy) | [](https://www.npmjs.com/package/@superset-ui/preset-chart-xy) | |
| [@superset-ui/plugin-chart-echarts](https://github.com/apache-superset/superset-ui/tree/master/plugins/plugin-chart-echarts) | [](https://www.npmjs.com/package/@superset-ui/plugin-chart-echarts) | |
| [@superset-ui/plugin-filter-antd](https://github.com/apache-superset/superset-ui/tree/master/plugins/plugin-filter-antd) | [](https://www.npmjs.com/package/@superset-ui/plugin-filter-antd) | |
## Contribution and development guide
Please read the [contributing guidelines](CONTRIBUTING.md) which include development environment
setup and other things you should know about coding in this repo.
### License
Apache-2.0
================================================
FILE: babel.config.js
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
const { getConfig } = require('@airbnb/config-babel');
const config = getConfig({
library: true,
react: true,
next: true,
esm: process.env.BABEL_OUTPUT === 'esm',
node: process.env.NODE_ENV === 'test',
typescript: true,
env: {
targets: false,
},
});
// Override to allow transpile es modules inside vega-lite
config.ignore = config.ignore.filter(item => item !== 'node_modules/');
config.ignore.push('node_modules/(?!(vega-lite|lodash-es))');
config.plugins = [
['babel-plugin-transform-dev', { evaluate: false }],
['babel-plugin-typescript-to-proptypes', { loose: true }],
['@babel/plugin-proposal-class-properties', { loose: true }],
];
config.presets.push([
'@emotion/babel-preset-css-prop',
{
autoLabel: 'dev-only',
labelFormat: '[local]',
},
]);
module.exports = config;
================================================
FILE: codecov.yml
================================================
coverage:
status:
patch: off
project:
default:
target: 0%
threshold: 10%
core-packages-ts:
target: 100%
paths:
- 'packages'
- '!packages/**/*.jsx'
- '!packages/**/*.tsx'
core-packages-tsx:
target: 50%
paths:
- 'packages/**/*.jsx'
- 'packages/**/*.tsx'
plugins:
target: 0
paths:
- plugins
================================================
FILE: commitlint.config.js
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
module.exports = {
extends: [
'@commitlint/config-conventional',
'@commitlint/config-lerna-scopes',
],
};
================================================
FILE: docs/debugging.md
================================================
# Debug Superset plugins in Superset app
## Activate plugins for local development
1. First, make sure you have run `npm ci` and `npm run build` in `superset-ui` or your own plugin
repo.
2. Go to [superset-frontend](https://github.com/apache/superset/tree/master/superset-frontend), use
`npm link` to create a symlink of the plugin source code in `node_modules`:
```sh
cd superset/superset-frontend
# npm link ~/path/to/your/plugin
npm link ../../superset-ui/plugins/plugin-chart-word-cloud
```
3. Start developing with webpack dev server:
```sh
npm run dev-server
```
The dev server will automatically build from the source code under `path/to/your-plugin/src` and
watch the changes.
## Deactivate plugins
To deactivate a plugin, simply run `npm ci` in `superset/superset-frontend` again.
================================================
FILE: docs/storybook.md
================================================
## Using Storybook
You can demo your changes by running the storybook demo locally with the following commands:
```sh
npm ci
npm run build
npm run storybook
```
The Storybook will
[automatically build from the source code](https://github.com/apache-superset/superset-ui/blob/master/packages/superset-ui-demo/.storybook/main.js#L49-L58)
when package names start with `@superset-ui/`.
================================================
FILE: jest.config.js
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
module.exports = {
bail: false,
collectCoverageFrom: [
'**/src/**/*.{ts,tsx,js,jsx}',
'**/test/**/*.{ts,tsx,js,jsx}',
],
coverageDirectory: './coverage',
coveragePathIgnorePatterns: [
'coverage/',
'node_modules/',
'public/',
'esm/',
'lib/',
'tmp/',
'dist/',
],
coverageReporters: ['lcov', 'json-summary', 'html'],
coverageThreshold: {
global: {
branches: 0,
functions: 0,
lines: 0,
statements: 0,
},
},
globals: {
__DEV__: true,
caches: true,
},
moduleFileExtensions: ['mock.js', 'ts', 'tsx', 'js', 'jsx', 'json', 'node'],
moduleNameMapper: {
'\\.(css|less|geojson)$': '<rootDir>/test/__mocks__/mockExportObject.js',
'\\.(gif|ttf|eot|png|jpg)$': '<rootDir>/test/__mocks__/mockExportString.js',
'\\.svg$': '<rootDir>/test/__mocks__/svgrMock.tsx',
'@superset-ui/(((?!(legacy-preset-chart-deckgl|core/src)).)*)$':
'<rootDir>/node_modules/@superset-ui/$1/src',
'@superset-ui/core/src/(.*)$':
'<rootDir>/node_modules/@superset-ui/core/src/$1',
},
roots: ['<rootDir>/packages', '<rootDir>/plugins'],
setupFiles: ['<rootDir>/test/setup.ts'],
testEnvironment: 'jsdom',
testURL: 'http://localhost',
timers: 'real',
verbose: false,
transformIgnorePatterns: ['node_modules/(?!(vega-lite|lodash-es))'],
testPathIgnorePatterns: ['packages/generator-superset/generators'],
projects: [
'<rootDir>',
{
displayName: 'node',
rootDir: '<rootDir>/packages/generator-superset',
testMatch: ['<rootDir>/test/**/?(*.)+(spec|test).{js,jsx,ts,tsx}'],
testEnvironment: 'node',
},
],
snapshotSerializers: ['@emotion/jest/enzyme-serializer'],
};
================================================
FILE: lerna.json
================================================
{
"lerna": "3.2.1",
"npmClient": "npm",
"packages": [
"packages/*",
"plugins/*"
],
"useWorkspaces": true,
"version": "0.18.25",
"ignoreChanges": [
"**/*.md",
"**/*.spec.tsx?",
"**/*.spec.jsx?",
"**/__mocks__/**"
],
"command": {
"publish": {
"message": "chore: publish %s",
"graphType": "all"
},
"version": {
"message": "chore: publish %s",
"exact": true
}
}
}
================================================
FILE: package.json
================================================
{
"name": "@superset-ui/monorepo",
"version": "0.0.0",
"description": "Superset UI",
"private": true,
"scripts": {
"build": "node ./scripts/build.js",
"build:assets": "node ./scripts/copyAssets.js",
"babel": "npm run build --no-type",
"demo": "cd packages/superset-ui-demo && npm run demo:build",
"demo:clean": "cd packages/superset-ui-demo && npm run demo:clean",
"demo:build": "cd packages/superset-ui-demo && npm run demo:build",
"storybook": "cd packages/superset-ui-demo && npm run storybook",
"build-storybook": "cd packages/superset-ui-demo && npm run build-storybook",
"chromatic": "cd packages/superset-ui-demo && npm run chromatic",
"sb": "npm run storybook",
"clean": "npm run build --clean --no-babel --no-type",
"commit": "superset-commit",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 10",
"jest": "NODE_ENV=test jest --coverage --verbose",
"lint": "eslint --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx .",
"lint:fix": "eslint --fix --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx .",
"format": "npm run prettier",
"prettier": "prettier --write './{plugins,packages}/**/*{.js,.jsx,.ts,.tsx,.css,.less,.scss,.sass}'",
"test": "npm run jest",
"test:watch": "npm run lint:fix && npm run jest --watch",
"type": "npm run build --no-babel",
"prepare-release": "git checkout master && git pull --rebase origin master && npm run install && npm run test",
"prerelease": "npm run build",
"release": "npm run prepare-release && lerna publish && npm run postrelease",
"postrelease": "lerna run deploy-demo",
"list-changed-packages": "lerna changed",
"manual-release": "lerna publish --force-publish && npm run postrelease",
"clean-npm-lock": "rm -rf ./{packages,plugins}/*/package-lock.json",
"prune": "rm -rf ./{packages,plugins}/*/{lib,esm,tsconfig.tsbuildinfo}",
"ci:create-patch-version": "npm run clean-npm-lock && ./scripts/lernaVersion.sh patch",
"ci:create-minor-version": "npm run clean-npm-lock && ./scripts/lernaVersion.sh minor",
"ci:create-conventional-version": "npm run clean-npm-lock && ./scrip
gitextract__11r4nww/ ├── .eslintignore ├── .eslintrc.js ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── feature_request.md │ │ └── question.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── config.yml │ ├── dependabot.yml │ ├── issue_label_bot.yaml │ ├── semantic.yml │ └── workflows/ │ ├── chromatic.yml │ ├── ci.yml │ ├── codecov.sh │ └── release.yml ├── .gitignore ├── .nvmrc ├── .prettierignore ├── .rat-excludes ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── babel.config.js ├── codecov.yml ├── commitlint.config.js ├── docs/ │ ├── debugging.md │ └── storybook.md ├── jest.config.js ├── lerna.json ├── package.json ├── packages/ │ ├── generator-superset/ │ │ ├── .gitattributes │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── generators/ │ │ │ ├── app/ │ │ │ │ └── index.js │ │ │ ├── package/ │ │ │ │ ├── index.js │ │ │ │ └── templates/ │ │ │ │ ├── README.md │ │ │ │ ├── _package.json │ │ │ │ ├── src/ │ │ │ │ │ └── index.txt │ │ │ │ └── test/ │ │ │ │ └── index.txt │ │ │ └── plugin-chart/ │ │ │ ├── index.js │ │ │ └── templates/ │ │ │ ├── README.erb │ │ │ ├── package.erb │ │ │ ├── src/ │ │ │ │ ├── MyChart.erb │ │ │ │ ├── index.erb │ │ │ │ ├── plugin/ │ │ │ │ │ ├── buildQuery.erb │ │ │ │ │ ├── controlPanel.erb │ │ │ │ │ ├── index.erb │ │ │ │ │ └── transformProps.erb │ │ │ │ └── types.erb │ │ │ ├── test/ │ │ │ │ ├── index.erb │ │ │ │ └── plugin/ │ │ │ │ ├── buildQuery.test.erb │ │ │ │ └── transformProps.test.erb │ │ │ ├── tsconfig.json │ │ │ └── types/ │ │ │ └── external.d.ts │ │ ├── package.json │ │ └── test/ │ │ ├── app.test.js │ │ ├── package.test.js │ │ ├── plugin-chart.test.js │ │ └── tsconfig.json │ ├── superset-ui-chart-controls/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── CertifiedIconWithTooltip.tsx │ │ │ │ ├── ColumnOption.tsx │ │ │ │ ├── ColumnTypeLabel.tsx │ │ │ │ ├── ControlForm/ │ │ │ │ │ ├── ControlFormItem.tsx │ │ │ │ │ ├── controls.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ControlHeader.tsx │ │ │ │ ├── InfoTooltipWithTrigger.tsx │ │ │ │ ├── MetricOption.tsx │ │ │ │ ├── Select.tsx │ │ │ │ └── Tooltip.tsx │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ ├── operators/ │ │ │ │ ├── boxplotOperator.ts │ │ │ │ ├── contributionOperator.ts │ │ │ │ ├── index.ts │ │ │ │ ├── pivotOperator.ts │ │ │ │ ├── prophetOperator.ts │ │ │ │ ├── resampleOperator.ts │ │ │ │ ├── rollingWindowOperator.ts │ │ │ │ ├── sortOperator.ts │ │ │ │ ├── timeCompareOperator.ts │ │ │ │ ├── timeComparePivotOperator.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils/ │ │ │ │ ├── constants.ts │ │ │ │ ├── getMetricOffsetsMap.ts │ │ │ │ ├── index.ts │ │ │ │ └── isValidTimeCompare.ts │ │ │ ├── sections/ │ │ │ │ ├── advancedAnalytics.tsx │ │ │ │ ├── annotationsAndLayers.tsx │ │ │ │ ├── chartTitle.tsx │ │ │ │ ├── forecastInterval.tsx │ │ │ │ ├── index.ts │ │ │ │ └── sections.tsx │ │ │ ├── shared-controls/ │ │ │ │ ├── components/ │ │ │ │ │ ├── ColumnConfigControl/ │ │ │ │ │ │ ├── ColumnConfigControl.tsx │ │ │ │ │ │ ├── ColumnConfigItem.tsx │ │ │ │ │ │ ├── ColumnConfigPopover.tsx │ │ │ │ │ │ ├── constants.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── RadioButtonControl.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── types.ts │ │ │ │ ├── dndControls.tsx │ │ │ │ ├── emitFilterControl.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── legacySortBy.tsx │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── D3Formatting.ts │ │ │ ├── columnChoices.ts │ │ │ ├── expandControlConfig.tsx │ │ │ ├── getColorFormatters.ts │ │ │ ├── index.ts │ │ │ ├── mainMetric.ts │ │ │ └── selectOptions.ts │ │ ├── test/ │ │ │ ├── components/ │ │ │ │ ├── ColumnOption.test.tsx │ │ │ │ ├── ColumnTypeLabel.test.tsx │ │ │ │ ├── InfoTooltipWithTrigger.test.tsx │ │ │ │ └── MetricOption.test.tsx │ │ │ ├── index.test.ts │ │ │ ├── shared-controls/ │ │ │ │ └── emitFilterControl.test.tsx │ │ │ ├── tsconfig.json │ │ │ ├── types.test.ts │ │ │ └── utils/ │ │ │ ├── columnChoices.test.tsx │ │ │ ├── expandControlConfig.test.tsx │ │ │ ├── getColorFormatters.test.ts │ │ │ ├── mainMetric.test.ts │ │ │ ├── operators/ │ │ │ │ ├── boxplotOperator.test.ts │ │ │ │ ├── contributionOperator.test.ts │ │ │ │ ├── pivotOperator.test.ts │ │ │ │ ├── prophetOperator.test.ts │ │ │ │ ├── resampleOperator.test.ts │ │ │ │ ├── rollingWindowOperator.test.ts │ │ │ │ ├── sortOperator.test.ts │ │ │ │ └── timeCompareOperator.test.ts │ │ │ └── selectOptions.test.ts │ │ └── tsconfig.json │ ├── superset-ui-core/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── chart/ │ │ │ │ ├── clients/ │ │ │ │ │ └── ChartClient.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── ChartDataProvider.tsx │ │ │ │ │ ├── FallbackComponent.tsx │ │ │ │ │ ├── NoResultsComponent.tsx │ │ │ │ │ ├── SuperChart.tsx │ │ │ │ │ ├── SuperChartCore.tsx │ │ │ │ │ ├── createLoadableRenderer.ts │ │ │ │ │ └── reactify.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── models/ │ │ │ │ │ ├── ChartControlPanel.ts │ │ │ │ │ ├── ChartMetadata.ts │ │ │ │ │ ├── ChartPlugin.ts │ │ │ │ │ └── ChartProps.ts │ │ │ │ ├── registries/ │ │ │ │ │ ├── ChartBuildQueryRegistrySingleton.ts │ │ │ │ │ ├── ChartComponentRegistrySingleton.ts │ │ │ │ │ ├── ChartControlPanelRegistrySingleton.ts │ │ │ │ │ ├── ChartMetadataRegistrySingleton.ts │ │ │ │ │ └── ChartTransformPropsRegistrySingleton.ts │ │ │ │ └── types/ │ │ │ │ ├── Annotation.ts │ │ │ │ ├── Base.ts │ │ │ │ ├── QueryResponse.ts │ │ │ │ └── TransformFunction.ts │ │ │ ├── chart-composition/ │ │ │ │ ├── ChartFrame.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── legend/ │ │ │ │ │ └── WithLegend.tsx │ │ │ │ └── tooltip/ │ │ │ │ ├── TooltipFrame.tsx │ │ │ │ └── TooltipTable.tsx │ │ │ ├── color/ │ │ │ │ ├── CategoricalColorNamespace.ts │ │ │ │ ├── CategoricalColorScale.ts │ │ │ │ ├── CategoricalScheme.ts │ │ │ │ ├── CategoricalSchemeRegistrySingleton.ts │ │ │ │ ├── ColorScheme.ts │ │ │ │ ├── ColorSchemeRegistry.ts │ │ │ │ ├── SequentialScheme.ts │ │ │ │ ├── SequentialSchemeRegistrySingleton.ts │ │ │ │ ├── colorSchemes/ │ │ │ │ │ ├── categorical/ │ │ │ │ │ │ ├── airbnb.ts │ │ │ │ │ │ ├── d3.ts │ │ │ │ │ │ ├── echarts.ts │ │ │ │ │ │ ├── google.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── lyft.ts │ │ │ │ │ │ ├── preset.ts │ │ │ │ │ │ └── superset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── sequential/ │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── d3.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── stringifyAndTrim.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── components/ │ │ │ │ ├── SafeMarkdown.tsx │ │ │ │ ├── constants.ts │ │ │ │ └── index.ts │ │ │ ├── connection/ │ │ │ │ ├── README.md │ │ │ │ ├── SupersetClient.ts │ │ │ │ ├── SupersetClientClass.ts │ │ │ │ ├── callApi/ │ │ │ │ │ ├── callApi.ts │ │ │ │ │ ├── callApiAndParseWithTimeout.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── parseResponse.ts │ │ │ │ │ └── rejectAfterTimeout.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── dimension/ │ │ │ │ ├── computeMaxFontSize.ts │ │ │ │ ├── getMultipleTextDimensions.ts │ │ │ │ ├── getTextDimension.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mergeMargin.ts │ │ │ │ ├── parseLength.ts │ │ │ │ ├── svg/ │ │ │ │ │ ├── LazyFactory.ts │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── createHiddenSvgNode.ts │ │ │ │ │ ├── createTextNode.ts │ │ │ │ │ ├── factories.ts │ │ │ │ │ ├── getBBoxCeil.ts │ │ │ │ │ └── updateTextNode.ts │ │ │ │ └── types.ts │ │ │ ├── dynamic-plugins/ │ │ │ │ ├── index.ts │ │ │ │ └── shared-modules.ts │ │ │ ├── index.ts │ │ │ ├── math-expression/ │ │ │ │ └── index.ts │ │ │ ├── models/ │ │ │ │ ├── ExtensibleFunction.ts │ │ │ │ ├── Plugin.ts │ │ │ │ ├── Preset.ts │ │ │ │ ├── Registry.ts │ │ │ │ ├── RegistryWithDefaultKey.ts │ │ │ │ └── index.ts │ │ │ ├── number-format/ │ │ │ │ ├── NumberFormats.ts │ │ │ │ ├── NumberFormatter.ts │ │ │ │ ├── NumberFormatterRegistry.ts │ │ │ │ ├── NumberFormatterRegistrySingleton.ts │ │ │ │ ├── README.md │ │ │ │ ├── factories/ │ │ │ │ │ ├── createD3NumberFormatter.ts │ │ │ │ │ ├── createDurationFormatter.ts │ │ │ │ │ ├── createSiAtMostNDigitFormatter.ts │ │ │ │ │ └── createSmartNumberFormatter.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── query/ │ │ │ │ ├── DatasourceKey.ts │ │ │ │ ├── README.md │ │ │ │ ├── api/ │ │ │ │ │ ├── legacy/ │ │ │ │ │ │ ├── fetchExploreJson.ts │ │ │ │ │ │ ├── getDatasourceMetadata.ts │ │ │ │ │ │ ├── getFormData.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── v1/ │ │ │ │ │ ├── handleError.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── makeApi.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── buildQueryContext.ts │ │ │ │ ├── buildQueryObject.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── convertFilter.ts │ │ │ │ ├── extractExtras.ts │ │ │ │ ├── extractQueryFields.ts │ │ │ │ ├── extractTimegrain.ts │ │ │ │ ├── getColumnLabel.ts │ │ │ │ ├── getMetricLabel.ts │ │ │ │ ├── index.ts │ │ │ │ ├── normalizeOrderBy.ts │ │ │ │ ├── processExtraFormData.ts │ │ │ │ ├── processFilters.ts │ │ │ │ └── types/ │ │ │ │ ├── AdvancedAnalytics.ts │ │ │ │ ├── AnnotationLayer.ts │ │ │ │ ├── Column.ts │ │ │ │ ├── Datasource.ts │ │ │ │ ├── Filter.ts │ │ │ │ ├── Metric.ts │ │ │ │ ├── Operator.ts │ │ │ │ ├── PostProcessing.ts │ │ │ │ ├── Query.ts │ │ │ │ ├── QueryFormData.ts │ │ │ │ ├── QueryResponse.ts │ │ │ │ ├── Time.ts │ │ │ │ └── index.ts │ │ │ ├── style/ │ │ │ │ └── index.tsx │ │ │ ├── time-format/ │ │ │ │ ├── README.md │ │ │ │ ├── TimeFormats.ts │ │ │ │ ├── TimeFormatsForGranularity.ts │ │ │ │ ├── TimeFormatter.ts │ │ │ │ ├── TimeFormatterRegistry.ts │ │ │ │ ├── TimeFormatterRegistrySingleton.ts │ │ │ │ ├── TimeRangeFormatter.ts │ │ │ │ ├── factories/ │ │ │ │ │ ├── createD3TimeFormatter.ts │ │ │ │ │ └── createMultiFormatter.ts │ │ │ │ ├── formatters/ │ │ │ │ │ ├── smartDate.ts │ │ │ │ │ ├── smartDateDetailed.ts │ │ │ │ │ └── smartDateVerbose.ts │ │ │ │ ├── index.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils/ │ │ │ │ ├── createTime.ts │ │ │ │ ├── createTimeRangeFromGranularity.ts │ │ │ │ ├── d3Time.ts │ │ │ │ └── stringifyTimeInput.ts │ │ │ ├── translation/ │ │ │ │ ├── README.md │ │ │ │ ├── Translator.ts │ │ │ │ ├── TranslatorSingleton.ts │ │ │ │ ├── index.ts │ │ │ │ └── types/ │ │ │ │ ├── index.ts │ │ │ │ └── jed.ts │ │ │ ├── types/ │ │ │ │ └── index.ts │ │ │ ├── utils/ │ │ │ │ ├── convertKeysToCamelCase.ts │ │ │ │ ├── ensureIsArray.ts │ │ │ │ ├── ensureIsInt.ts │ │ │ │ ├── featureFlags.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isDefined.ts │ │ │ │ ├── isRequired.ts │ │ │ │ ├── logging.ts │ │ │ │ ├── makeSingleton.ts │ │ │ │ ├── promiseTimeout.ts │ │ │ │ ├── random.ts │ │ │ │ └── removeDuplicates.ts │ │ │ └── validator/ │ │ │ ├── index.ts │ │ │ ├── legacyValidateInteger.ts │ │ │ ├── legacyValidateNumber.ts │ │ │ ├── validateInteger.ts │ │ │ ├── validateNonEmpty.ts │ │ │ └── validateNumber.ts │ │ ├── test/ │ │ │ ├── __mocks__/ │ │ │ │ └── resize-observer-polyfill.ts │ │ │ ├── chart/ │ │ │ │ ├── clients/ │ │ │ │ │ └── ChartClient.test.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── ChartDataProvider.test.tsx │ │ │ │ │ ├── FallbackComponent.test.tsx │ │ │ │ │ ├── MockChartPlugins.tsx │ │ │ │ │ ├── NoResultsComponent.test.tsx │ │ │ │ │ ├── SuperChart.test.tsx │ │ │ │ │ ├── SuperChartCore.test.tsx │ │ │ │ │ ├── createLoadableRenderer.test.tsx │ │ │ │ │ └── reactify.test.tsx │ │ │ │ ├── fixtures/ │ │ │ │ │ ├── constants.ts │ │ │ │ │ └── formData.ts │ │ │ │ ├── index.test.ts │ │ │ │ └── models/ │ │ │ │ ├── ChartMetadata.test.ts │ │ │ │ ├── ChartPlugin.test.tsx │ │ │ │ └── ChartProps.test.ts │ │ │ ├── chart-composition/ │ │ │ │ ├── ChartFrame.test.tsx │ │ │ │ ├── legend/ │ │ │ │ │ └── WithLegend.test.tsx │ │ │ │ └── tooltip/ │ │ │ │ ├── TooltipFrame.test.tsx │ │ │ │ └── TooltipTable.test.tsx │ │ │ ├── color/ │ │ │ │ ├── CategoricalColorNameSpace.test.ts │ │ │ │ ├── CategoricalColorScale.test.ts │ │ │ │ ├── CategoricalSchemeRegistrySingleton.test.ts │ │ │ │ ├── ColorScheme.test.ts │ │ │ │ ├── ColorSchemeRegistry.test.ts │ │ │ │ ├── SequentialScheme.test.ts │ │ │ │ ├── SequentialSchemeRegistrySingleton.test.ts │ │ │ │ ├── colorSchemes.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ └── utils.test.ts │ │ │ ├── connection/ │ │ │ │ ├── SupersetClient.test.ts │ │ │ │ ├── SupersetClientClass.test.ts │ │ │ │ ├── callApi/ │ │ │ │ │ ├── callApi.test.ts │ │ │ │ │ ├── callApiAndParseWithTimeout.test.ts │ │ │ │ │ ├── parseResponse.test.ts │ │ │ │ │ └── rejectAfterTimeout.test.ts │ │ │ │ └── fixtures/ │ │ │ │ └── constants.ts │ │ │ ├── dimension/ │ │ │ │ ├── computeMaxFontSize.test.ts │ │ │ │ ├── getBBoxDummyFill.ts │ │ │ │ ├── getMultipleTextDimensions.test.ts │ │ │ │ ├── getTextDimension.test.ts │ │ │ │ ├── mergeMargin.test.ts │ │ │ │ ├── parseLength.test.ts │ │ │ │ └── svg/ │ │ │ │ ├── LazyFactory.test.ts │ │ │ │ ├── getBBoxCeil.test.ts │ │ │ │ └── updateTextNode.test.ts │ │ │ ├── dynamic-plugins/ │ │ │ │ └── shared-modules.test.ts │ │ │ ├── fixtures.ts │ │ │ ├── index.test.ts │ │ │ ├── math-expression/ │ │ │ │ └── index.test.ts │ │ │ ├── models/ │ │ │ │ ├── ExtensibleFunction.test.ts │ │ │ │ ├── Plugin.test.ts │ │ │ │ ├── Preset.test.ts │ │ │ │ ├── Registry.test.ts │ │ │ │ └── RegistryWithDefaultKey.test.ts │ │ │ ├── number-format/ │ │ │ │ ├── NumberFormatter.test.ts │ │ │ │ ├── NumberFormatterRegistry.test.ts │ │ │ │ ├── NumberFormatterRegistrySingleton.test.ts │ │ │ │ ├── factories/ │ │ │ │ │ ├── createD3NumberFormatter.test.ts │ │ │ │ │ ├── createDurationFormatter.test.ts │ │ │ │ │ ├── createSiAtMostNDigitFormatter.test.ts │ │ │ │ │ └── createSmartNumberFormatter.test.ts │ │ │ │ └── index.test.ts │ │ │ ├── query/ │ │ │ │ ├── DatasourceKey.test.ts │ │ │ │ ├── api/ │ │ │ │ │ ├── legacy/ │ │ │ │ │ │ ├── fetchExploreJson.test.ts │ │ │ │ │ │ ├── getDatasourceMetadata.test.ts │ │ │ │ │ │ └── getFormData.test.ts │ │ │ │ │ ├── setupClientForTest.ts │ │ │ │ │ └── v1/ │ │ │ │ │ ├── getChartData.test.ts │ │ │ │ │ ├── handleError.test.ts │ │ │ │ │ └── makeApi.test.ts │ │ │ │ ├── buildQueryContext.test.ts │ │ │ │ ├── buildQueryObject.test.ts │ │ │ │ ├── convertFilter.test.ts │ │ │ │ ├── extractExtras.test.ts │ │ │ │ ├── extractQueryFields.test.ts │ │ │ │ ├── extractTimegrain.test.ts │ │ │ │ ├── getColumnLabel.test.ts │ │ │ │ ├── getMetricLabel.test.ts │ │ │ │ ├── normalizeOrderBy.test.ts │ │ │ │ ├── processExtraFormData.test.ts │ │ │ │ ├── processFilters.test.ts │ │ │ │ └── types/ │ │ │ │ ├── AnnotationLayer.test.ts │ │ │ │ ├── Filter.test.ts │ │ │ │ └── PostProcessing.test.ts │ │ │ ├── style/ │ │ │ │ └── index.test.tsx │ │ │ ├── time-format/ │ │ │ │ ├── TimeFormatter.test.ts │ │ │ │ ├── TimeFormatterRegistry.test.ts │ │ │ │ ├── TimeFormatterRegistrySingleton.test.ts │ │ │ │ ├── factories/ │ │ │ │ │ ├── createD3TimeFormatter.test.ts │ │ │ │ │ └── createMultiFormatter.test.ts │ │ │ │ ├── formatters/ │ │ │ │ │ ├── smartDate.test.ts │ │ │ │ │ ├── smartDateDetailed.test.ts │ │ │ │ │ └── smartDateVerbose.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ └── utils/ │ │ │ │ ├── createTime.test.ts │ │ │ │ ├── createTimeRangeFromGranularity.test.ts │ │ │ │ └── d3Time.test.ts │ │ │ ├── translation/ │ │ │ │ ├── Translator.test.ts │ │ │ │ ├── TranslatorSingleton.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ └── languagePacks/ │ │ │ │ ├── en.ts │ │ │ │ └── zh.ts │ │ │ ├── tsconfig.json │ │ │ ├── utils/ │ │ │ │ ├── convertKeysToCamelCase.test.ts │ │ │ │ ├── ensureIsArray.test.ts │ │ │ │ ├── ensureIsInt.test.ts │ │ │ │ ├── featureFlag.test.ts │ │ │ │ ├── isDefined.test.ts │ │ │ │ ├── isRequired.test.ts │ │ │ │ ├── logging.test.ts │ │ │ │ ├── makeSingleton.test.ts │ │ │ │ ├── promiseTimeout.test.ts │ │ │ │ ├── random.test.ts │ │ │ │ └── removeDuplicates.test.ts │ │ │ └── validator/ │ │ │ ├── legacyValidateInteger.test.ts │ │ │ ├── legacyValidateNumber.test.ts │ │ │ ├── setup.ts │ │ │ ├── validateInteger.test.ts │ │ │ ├── validateNonEmpty.test.ts │ │ │ └── validateNumber.test.ts │ │ ├── tsconfig.json │ │ └── types/ │ │ ├── external.d.ts │ │ └── resize-observer-polyfill.d.ts │ └── superset-ui-demo/ │ ├── .storybook/ │ │ ├── main.js │ │ ├── preview.js │ │ ├── storybook.css │ │ └── themeDecorator.js │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── storybook/ │ │ ├── shared/ │ │ │ ├── components/ │ │ │ │ ├── ErrorMessage.tsx │ │ │ │ ├── Expandable.tsx │ │ │ │ ├── ResizableChartDemo.tsx │ │ │ │ ├── ResizablePanel.tsx │ │ │ │ ├── VerifyCORS.tsx │ │ │ │ └── createQueryStory.tsx │ │ │ └── dummyDatasource.ts │ │ └── stories/ │ │ ├── plugins/ │ │ │ ├── legacy-plugin-chart-calendar/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-chord/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-country-map/ │ │ │ │ └── CountryMapStories.tsx │ │ │ ├── legacy-plugin-chart-event-flow/ │ │ │ │ └── Stories.jsx │ │ │ ├── legacy-plugin-chart-force-directed/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-heatmap/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-histogram/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-horizon/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-map-box/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-paired-t-test/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-parallel-coordinates/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-partition/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-pivot-table/ │ │ │ │ └── Stories.tsx │ │ │ ├── legacy-plugin-chart-rose/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-sankey/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-sankey-loop/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-sunburst/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-time-table/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-treemap/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-plugin-chart-world-map/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-preset-chart-big-number/ │ │ │ │ ├── BigNumber/ │ │ │ │ │ ├── BigNumberStories.tsx │ │ │ │ │ └── data.ts │ │ │ │ └── BigNumberTotal/ │ │ │ │ ├── BigNumberTotalStories.tsx │ │ │ │ └── data.ts │ │ │ ├── legacy-preset-chart-nvd3/ │ │ │ │ ├── Area/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ ├── controlsShown.tsx │ │ │ │ │ ├── expanded.tsx │ │ │ │ │ ├── stacked.tsx │ │ │ │ │ └── stackedWithBounds.tsx │ │ │ │ ├── Bar/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ ├── barWithPositiveAndNegativeValues.tsx │ │ │ │ │ ├── barWithValues.tsx │ │ │ │ │ ├── basic.tsx │ │ │ │ │ └── stackedBarWithValues.tsx │ │ │ │ ├── BoxPlot/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ └── basic.tsx │ │ │ │ ├── Bubble/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ └── basic.tsx │ │ │ │ ├── Bullet/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ └── basic.tsx │ │ │ │ ├── Compare/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ ├── basic.tsx │ │ │ │ │ └── timeFormat.tsx │ │ │ │ ├── DistBar/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ ├── basic.tsx │ │ │ │ │ └── manyBars.tsx │ │ │ │ ├── DualLine/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ ├── basic.tsx │ │ │ │ │ └── verifyConsistentColors.tsx │ │ │ │ ├── Line/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ ├── data.ts │ │ │ │ │ └── stories/ │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── logScale.tsx │ │ │ │ │ ├── markers.tsx │ │ │ │ │ └── yAxisBounds.tsx │ │ │ │ └── Pie/ │ │ │ │ ├── Stories.tsx │ │ │ │ ├── data.ts │ │ │ │ └── stories/ │ │ │ │ ├── basic.tsx │ │ │ │ └── noData.tsx │ │ │ ├── plugin-chart-echarts/ │ │ │ │ ├── BoxPlot/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ └── data.ts │ │ │ │ ├── Funnel/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ └── constants.ts │ │ │ │ ├── Gauge/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ └── data.ts │ │ │ │ ├── Graph/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ └── data.ts │ │ │ │ ├── MixedTimeseries/ │ │ │ │ │ └── Stories.tsx │ │ │ │ ├── Pie/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ └── data.ts │ │ │ │ ├── Radar/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ └── data.ts │ │ │ │ ├── Timeseries/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ └── data.ts │ │ │ │ ├── Tree/ │ │ │ │ │ ├── Stories.tsx │ │ │ │ │ └── data.ts │ │ │ │ └── Treemap/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ ├── plugin-chart-table/ │ │ │ │ ├── TableStories.tsx │ │ │ │ ├── birthNames.json │ │ │ │ └── testData.ts │ │ │ ├── plugin-chart-word-cloud/ │ │ │ │ ├── Stories.tsx │ │ │ │ └── data.ts │ │ │ └── preset-chart-xy/ │ │ │ ├── BoxPlot/ │ │ │ │ ├── Stories.tsx │ │ │ │ ├── constants.ts │ │ │ │ ├── data.ts │ │ │ │ └── stories/ │ │ │ │ ├── Basic.tsx │ │ │ │ └── Legacy.tsx │ │ │ ├── Line/ │ │ │ │ ├── Stories.tsx │ │ │ │ ├── constants.ts │ │ │ │ ├── data/ │ │ │ │ │ ├── data.js │ │ │ │ │ ├── data2.js │ │ │ │ │ └── legacyData.js │ │ │ │ └── stories/ │ │ │ │ ├── basic.tsx │ │ │ │ ├── flush.tsx │ │ │ │ ├── legacy.tsx │ │ │ │ ├── missing.tsx │ │ │ │ ├── query.tsx │ │ │ │ └── timeShift.tsx │ │ │ └── ScatterPlot/ │ │ │ ├── Stories.tsx │ │ │ ├── constants.ts │ │ │ ├── data/ │ │ │ │ ├── data.ts │ │ │ │ └── legacyData.ts │ │ │ └── stories/ │ │ │ ├── basic.tsx │ │ │ ├── bubble.tsx │ │ │ └── legacy.tsx │ │ ├── superset-ui-chart/ │ │ │ ├── ChartDataProviderStories.tsx │ │ │ └── SuperChartStories.tsx │ │ ├── superset-ui-color/ │ │ │ ├── ColorPallettesStories.jsx │ │ │ ├── RenderPalettes.jsx │ │ │ └── color-styles.css │ │ ├── superset-ui-connection/ │ │ │ └── ConnectionStories.tsx │ │ ├── superset-ui-number-format/ │ │ │ └── BigNumberStories.jsx │ │ ├── superset-ui-style/ │ │ │ └── ThemeStories.jsx │ │ └── superset-ui-time-format/ │ │ └── TimeFormatStories.jsx │ └── tsconfig.json ├── plugins/ │ ├── legacy-plugin-chart-calendar/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Calendar.js │ │ │ ├── ReactCalendar.jsx │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ ├── transformProps.js │ │ │ └── vendor/ │ │ │ ├── cal-heatmap.css │ │ │ ├── cal-heatmap.js │ │ │ └── d3tip.css │ │ └── tsconfig.json │ ├── legacy-plugin-chart-chord/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Chord.js │ │ │ ├── ReactChord.jsx │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-country-map/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── Country Map GeoJSON Generator.ipynb │ │ ├── src/ │ │ │ ├── CountryMap.css │ │ │ ├── CountryMap.js │ │ │ ├── ReactCountryMap.js │ │ │ ├── controlPanel.ts │ │ │ ├── countries/ │ │ │ │ ├── australia.geojson │ │ │ │ ├── austria.geojson │ │ │ │ ├── belgium.geojson │ │ │ │ ├── brazil.geojson │ │ │ │ ├── bulgaria.geojson │ │ │ │ ├── canada.geojson │ │ │ │ ├── china.geojson │ │ │ │ ├── denmark.geojson │ │ │ │ ├── egypt.geojson │ │ │ │ ├── estonia.geojson │ │ │ │ ├── finland.geojson │ │ │ │ ├── france.geojson │ │ │ │ ├── germany.geojson │ │ │ │ ├── iceland.geojson │ │ │ │ ├── india.geojson │ │ │ │ ├── indonesia.geojson │ │ │ │ ├── iran.geojson │ │ │ │ ├── italy.geojson │ │ │ │ ├── italy_regions.geojson │ │ │ │ ├── japan.geojson │ │ │ │ ├── korea.geojson │ │ │ │ ├── liechtenstein.geojson │ │ │ │ ├── malaysia.geojson │ │ │ │ ├── morocco.geojson │ │ │ │ ├── myanmar.geojson │ │ │ │ ├── netherlands.geojson │ │ │ │ ├── norway.geojson │ │ │ │ ├── peru.geojson │ │ │ │ ├── poland.geojson │ │ │ │ ├── portugal.geojson │ │ │ │ ├── russia.geojson │ │ │ │ ├── saudi_arabia.geojson │ │ │ │ ├── singapore.geojson │ │ │ │ ├── slovenia.geojson │ │ │ │ ├── spain.geojson │ │ │ │ ├── sweden.geojson │ │ │ │ ├── switzerland.geojson │ │ │ │ ├── syria.geojson │ │ │ │ ├── thailand.geojson │ │ │ │ ├── timorleste.geojson │ │ │ │ ├── uk.geojson │ │ │ │ ├── ukraine.geojson │ │ │ │ ├── uruguay.geojson │ │ │ │ ├── usa.geojson │ │ │ │ ├── vietnam.geojson │ │ │ │ └── zambia.geojson │ │ │ ├── countries.ts │ │ │ ├── geojson.d.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-event-flow/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── EventFlow.tsx │ │ │ ├── controlPanel.tsx │ │ │ ├── index.ts │ │ │ ├── transformProps.ts │ │ │ └── types/ │ │ │ └── external.d.ts │ │ └── tsconfig.json │ ├── legacy-plugin-chart-force-directed/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ForceDirected.js │ │ │ ├── ReactForceDirected.jsx │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-heatmap/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Heatmap.css │ │ │ ├── Heatmap.js │ │ │ ├── ReactHeatmap.js │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ ├── transformProps.js │ │ │ └── vendor/ │ │ │ └── d3tip.css │ │ └── tsconfig.json │ ├── legacy-plugin-chart-histogram/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Histogram.jsx │ │ │ ├── WithLegend.jsx │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-horizon/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── HorizonChart.css │ │ │ ├── HorizonChart.jsx │ │ │ ├── HorizonRow.jsx │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-map-box/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── MapBox.css │ │ │ ├── MapBox.jsx │ │ │ ├── ScatterPlotGlowOverlay.jsx │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ ├── transformProps.js │ │ │ └── utils/ │ │ │ ├── geo.js │ │ │ ├── luminanceFromRGB.js │ │ │ └── roundDecimal.js │ │ ├── test/ │ │ │ ├── tsconfig.json │ │ │ └── utils/ │ │ │ └── roundDecimal.test.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-paired-t-test/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── PairedTTest.css │ │ │ ├── PairedTTest.jsx │ │ │ ├── TTestTable.jsx │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-parallel-coordinates/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ParallelCoordinates.js │ │ │ ├── ReactParallelCoordinates.jsx │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ ├── transformProps.js │ │ │ └── vendor/ │ │ │ └── parcoords/ │ │ │ ├── d3.parcoords.css │ │ │ ├── d3.parcoords.js │ │ │ └── divgrid.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-partition/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── OptionDescription.tsx │ │ │ ├── Partition.css │ │ │ ├── Partition.js │ │ │ ├── ReactPartition.js │ │ │ ├── controlPanel.tsx │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ ├── test/ │ │ │ ├── OptionDescription.test.jsx │ │ │ └── tsconfig.json │ │ └── tsconfig.json │ ├── legacy-plugin-chart-pivot-table/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── PivotTable.js │ │ │ ├── ReactPivotTable.js │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ ├── transformProps.js │ │ │ └── utils/ │ │ │ ├── fixTableHeight.js │ │ │ └── formatCells.ts │ │ ├── test/ │ │ │ └── PivotTable.test.ts │ │ └── tsconfig.json │ ├── legacy-plugin-chart-rose/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ReactRose.js │ │ │ ├── Rose.css │ │ │ ├── Rose.js │ │ │ ├── controlPanel.tsx │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-sankey/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ReactSankey.jsx │ │ │ ├── Sankey.js │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ ├── tests/ │ │ │ │ └── utils.test.js │ │ │ ├── transformProps.js │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── legacy-plugin-chart-sankey-loop/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ReactSankeyLoop.js │ │ │ ├── SankeyLoop.css │ │ │ ├── SankeyLoop.js │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-sunburst/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ReactSunburst.js │ │ │ ├── Sunburst.css │ │ │ ├── Sunburst.js │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ ├── transformProps.js │ │ │ └── utils/ │ │ │ └── wrapSvgText.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-time-table/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── FormattedNumber.tsx │ │ │ ├── SparklineCell.tsx │ │ │ ├── TimeTable.tsx │ │ │ ├── TimeTableChartPlugin.ts │ │ │ ├── controlPanel.ts │ │ │ ├── index.ts │ │ │ └── transformProps.ts │ │ ├── tsconfig.json │ │ └── types/ │ │ └── external.d.ts │ ├── legacy-plugin-chart-treemap/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ReactTreemap.js │ │ │ ├── Treemap.css │ │ │ ├── Treemap.js │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-plugin-chart-world-map/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── ReactWorldMap.jsx │ │ │ ├── WorldMap.js │ │ │ ├── controlPanel.ts │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── tsconfig.json │ ├── legacy-preset-chart-big-number/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── BigNumber/ │ │ │ │ ├── BigNumber.tsx │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ └── transformProps.ts │ │ │ ├── BigNumberTotal/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── preset.ts │ │ │ ├── sharedControls.ts │ │ │ └── types/ │ │ │ └── external.d.ts │ │ ├── test/ │ │ │ ├── transformProps.test.ts │ │ │ └── tsconfig.json │ │ └── tsconfig.json │ ├── legacy-preset-chart-nvd3/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Area/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── Bar/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── BoxPlot/ │ │ │ │ └── index.js │ │ │ ├── Bubble/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── Bullet/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── Compare/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── DistBar/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── DualLine/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── Line/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── LineMulti/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── NVD3Controls.tsx │ │ │ ├── NVD3Vis.js │ │ │ ├── Pie/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── PropTypes.js │ │ │ ├── ReactNVD3.jsx │ │ │ ├── TimePivot/ │ │ │ │ ├── controlPanel.ts │ │ │ │ └── index.js │ │ │ ├── index.js │ │ │ ├── preset.js │ │ │ ├── transformProps.js │ │ │ ├── utils/ │ │ │ │ ├── isTruthy.js │ │ │ │ └── tokenize.ts │ │ │ ├── utils.js │ │ │ └── vendor/ │ │ │ └── superset/ │ │ │ ├── AnnotationTypes.js │ │ │ └── exploreUtils.js │ │ ├── test/ │ │ │ ├── tsconfig.json │ │ │ ├── utils/ │ │ │ │ ├── isTruthy.test.js │ │ │ │ └── tokenize.test.js │ │ │ └── utils.test.js │ │ └── tsconfig.json │ ├── plugin-chart-echarts/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── BoxPlot/ │ │ │ │ ├── EchartsBoxPlot.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── controlPanel.ts │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── Funnel/ │ │ │ │ ├── EchartsFunnel.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── Gauge/ │ │ │ │ ├── EchartsGauge.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── Graph/ │ │ │ │ ├── EchartsGraph.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── MixedTimeseries/ │ │ │ │ ├── EchartsMixedTimeseries.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── Pie/ │ │ │ │ ├── EchartsPie.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── Radar/ │ │ │ │ ├── EchartsRadar.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── Timeseries/ │ │ │ │ ├── Area/ │ │ │ │ │ ├── controlPanel.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── EchartsTimeseries.tsx │ │ │ │ ├── Regular/ │ │ │ │ │ ├── Bar/ │ │ │ │ │ │ ├── controlPanel.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Line/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Scatter/ │ │ │ │ │ │ ├── controlPanel.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── SmoothLine/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── controlPanel.tsx │ │ │ │ ├── Step/ │ │ │ │ │ ├── controlPanel.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ ├── transformers.ts │ │ │ │ └── types.ts │ │ │ ├── Tree/ │ │ │ │ ├── EchartsTree.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── Treemap/ │ │ │ │ ├── EchartsTreemap.tsx │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── controlPanel.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── components/ │ │ │ │ └── Echart.tsx │ │ │ ├── constants.ts │ │ │ ├── controls.tsx │ │ │ ├── defaults.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── annotation.ts │ │ │ ├── controls.ts │ │ │ ├── prophet.ts │ │ │ └── series.ts │ │ ├── test/ │ │ │ ├── BoxPlot/ │ │ │ │ ├── buildQuery.test.ts │ │ │ │ └── transformProps.test.ts │ │ │ ├── Funnel/ │ │ │ │ ├── buildQuery.test.ts │ │ │ │ └── transformProps.test.ts │ │ │ ├── Gauge/ │ │ │ │ ├── buildQuery.test.ts │ │ │ │ └── transformProps.test.ts │ │ │ ├── Graph/ │ │ │ │ ├── buildQuery.test.ts │ │ │ │ └── transformProps.test.ts │ │ │ ├── Pie/ │ │ │ │ ├── buildQuery.test.ts │ │ │ │ └── transformProps.test.ts │ │ │ ├── Timeseries/ │ │ │ │ ├── buildQuery.test.ts │ │ │ │ └── transformProps.test.ts │ │ │ ├── Tree/ │ │ │ │ ├── buildQuery.test.ts │ │ │ │ └── transformProps.test.ts │ │ │ ├── Treemap/ │ │ │ │ ├── buildQuery.test.ts │ │ │ │ └── transformProps.test.ts │ │ │ ├── index.test.ts │ │ │ ├── tsconfig.json │ │ │ └── utils/ │ │ │ ├── annotation.test.ts │ │ │ ├── controls.test.ts │ │ │ ├── prophet.test.ts │ │ │ └── series.test.ts │ │ ├── tsconfig.json │ │ └── types/ │ │ └── external.d.ts │ ├── plugin-chart-pivot-table/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── PivotTableChart.tsx │ │ │ ├── index.ts │ │ │ ├── plugin/ │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── controlPanel.ts │ │ │ │ ├── index.ts │ │ │ │ └── transformProps.ts │ │ │ └── types.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── plugin/ │ │ │ ├── buildQuery.test.ts │ │ │ └── transformProps.test.ts │ │ ├── tsconfig.json │ │ └── types/ │ │ └── external.d.ts │ ├── plugin-chart-table/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── DataTable/ │ │ │ │ ├── DataTable.tsx │ │ │ │ ├── README.md │ │ │ │ ├── components/ │ │ │ │ │ ├── GlobalFilter.tsx │ │ │ │ │ ├── Pagination.tsx │ │ │ │ │ └── SelectPageSize.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ └── useSticky.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── types/ │ │ │ │ │ └── react-table.d.ts │ │ │ │ └── utils/ │ │ │ │ ├── externalAPIs.ts │ │ │ │ ├── getScrollBarSize.ts │ │ │ │ ├── needScrollBar.ts │ │ │ │ ├── useAsyncState.ts │ │ │ │ └── useMountedMemo.ts │ │ │ ├── Styles.tsx │ │ │ ├── TableChart.tsx │ │ │ ├── buildQuery.ts │ │ │ ├── consts.ts │ │ │ ├── controlPanel.tsx │ │ │ ├── i18n.ts │ │ │ ├── index.ts │ │ │ ├── transformProps.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── DateWithFormatter.ts │ │ │ ├── extent.ts │ │ │ ├── formatValue.ts │ │ │ ├── isEqualArray.ts │ │ │ └── isEqualColumns.ts │ │ ├── test/ │ │ │ ├── TableChart.test.tsx │ │ │ ├── buildQuery.test.ts │ │ │ ├── enzyme.tsx │ │ │ ├── testData.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── types/ │ │ └── external.d.ts │ ├── plugin-chart-word-cloud/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── chart/ │ │ │ │ ├── Encoder.ts │ │ │ │ └── WordCloud.tsx │ │ │ ├── configureEncodable.ts │ │ │ ├── index.ts │ │ │ ├── legacyPlugin/ │ │ │ │ ├── index.ts │ │ │ │ ├── transformProps.ts │ │ │ │ └── types.ts │ │ │ ├── plugin/ │ │ │ │ ├── buildQuery.ts │ │ │ │ ├── controlPanel.ts │ │ │ │ ├── index.ts │ │ │ │ └── transformProps.ts │ │ │ └── types.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ ├── legacyPlugin/ │ │ │ │ └── transformProps.test.ts │ │ │ ├── plugin/ │ │ │ │ └── buildQuery.test.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── types/ │ │ └── external.d.ts │ └── preset-chart-xy/ │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── BoxPlot/ │ │ │ ├── controlPanel.ts │ │ │ ├── createMetadata.ts │ │ │ ├── index.ts │ │ │ ├── legacy/ │ │ │ │ ├── index.ts │ │ │ │ └── transformProps.ts │ │ │ └── transformProps.ts │ │ ├── Line/ │ │ │ ├── ChartFormData.ts │ │ │ ├── buildQuery.ts │ │ │ ├── createMetadata.ts │ │ │ ├── index.ts │ │ │ ├── legacy/ │ │ │ │ ├── index.ts │ │ │ │ └── transformProps.ts │ │ │ └── transformProps.ts │ │ ├── ScatterPlot/ │ │ │ ├── createMetadata.ts │ │ │ ├── index.ts │ │ │ ├── legacy/ │ │ │ │ ├── index.ts │ │ │ │ └── transformProps.ts │ │ │ └── transformProps.ts │ │ ├── components/ │ │ │ ├── BoxPlot/ │ │ │ │ ├── BoxPlot.tsx │ │ │ │ ├── DefaultTooltipRenderer.tsx │ │ │ │ ├── Encoder.ts │ │ │ │ └── types.ts │ │ │ ├── Line/ │ │ │ │ ├── DefaultLegendItemMarkRenderer.tsx │ │ │ │ ├── DefaultTooltipRenderer.tsx │ │ │ │ ├── Encoder.ts │ │ │ │ └── Line.tsx │ │ │ ├── ScatterPlot/ │ │ │ │ ├── DefaultTooltipRenderer.tsx │ │ │ │ ├── Encoder.ts │ │ │ │ └── ScatterPlot.tsx │ │ │ └── legend/ │ │ │ ├── DefaultLegend.tsx │ │ │ ├── DefaultLegendGroup.tsx │ │ │ ├── DefaultLegendItem.tsx │ │ │ ├── createRenderLegend.tsx │ │ │ └── types.ts │ │ ├── configureEncodable.ts │ │ ├── index.ts │ │ └── utils/ │ │ ├── XYChartLayout.tsx │ │ ├── computeAxisLayout.ts │ │ ├── convertScaleToDataUIScaleShape.ts │ │ ├── createMarginSelector.tsx │ │ ├── createTickComponent.tsx │ │ ├── createTickLabelProps.ts │ │ └── createXYChartLayoutWithTheme.ts │ ├── test/ │ │ ├── index.test.ts │ │ └── tsconfig.json │ ├── tsconfig.json │ └── types/ │ ├── @data-ui/ │ │ ├── theme/ │ │ │ └── index.d.ts │ │ └── xy-chart/ │ │ └── index.d.ts │ └── external.d.ts ├── prettier.config.js ├── scripts/ │ ├── build.js │ ├── check_license.sh │ ├── commitlint.js │ ├── copyAssets.js │ ├── lernaVersion.sh │ └── tsc.sh ├── temporary-plugins/ │ ├── README.md │ ├── hold-potentially-deprecate/ │ │ ├── superset-ui-legacy-plugin-chart-word-cloud/ │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── src/ │ │ │ ├── ReactWordCloud.js │ │ │ ├── WordCloud.js │ │ │ ├── index.js │ │ │ └── transformProps.js │ │ └── superset-ui-plugin-chart-table/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Table.tsx │ │ │ ├── TableFormData.ts │ │ │ ├── buildQuery.ts │ │ │ ├── components/ │ │ │ │ └── HTMLRenderer.tsx │ │ │ ├── createMetadata.ts │ │ │ ├── getRenderer.tsx │ │ │ ├── index.ts │ │ │ ├── legacy/ │ │ │ │ ├── index.ts │ │ │ │ └── transformProps.ts │ │ │ ├── processColumns.ts │ │ │ ├── processData.ts │ │ │ ├── processMetrics.ts │ │ │ ├── transformProps.ts │ │ │ └── types.ts │ │ ├── test/ │ │ │ ├── buildQuery.test.ts │ │ │ ├── processData.test.ts │ │ │ └── processMetrics.test.ts │ │ └── types/ │ │ └── external.d.ts │ ├── plugin-chart-choropleth-map/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── chart/ │ │ │ │ ├── ChoroplethMap.tsx │ │ │ │ ├── Encoder.ts │ │ │ │ ├── MapMetadata.ts │ │ │ │ ├── MapTooltip.tsx │ │ │ │ ├── Projection.ts │ │ │ │ ├── components.ts │ │ │ │ └── loadMap.ts │ │ │ ├── configureEncodable.ts │ │ │ ├── index.ts │ │ │ ├── maps/ │ │ │ │ ├── belgium-topo.json │ │ │ │ ├── brazil-topo.json │ │ │ │ ├── bulgaria-topo.json │ │ │ │ ├── canada-topo.json │ │ │ │ ├── china-topo.json │ │ │ │ ├── france-topo.json │ │ │ │ ├── germany-topo.json │ │ │ │ ├── index.ts │ │ │ │ ├── india-topo.json │ │ │ │ ├── iran-topo.json │ │ │ │ ├── italy-topo.json │ │ │ │ ├── japan-topo.json │ │ │ │ ├── korea-topo.json │ │ │ │ ├── liechtenstein-topo.json │ │ │ │ ├── morocco-topo.json │ │ │ │ ├── myanmar-topo.json │ │ │ │ ├── netherlands-topo.json │ │ │ │ ├── portugal-topo.json │ │ │ │ ├── russia-topo.json │ │ │ │ ├── singapore-topo.json │ │ │ │ ├── spain-topo.json │ │ │ │ ├── switzerland-topo.json │ │ │ │ ├── thailand-topo.json │ │ │ │ ├── timorleste-topo.json │ │ │ │ ├── uk-topo.json │ │ │ │ ├── ukraine-topo.json │ │ │ │ ├── usa-topo.json │ │ │ │ ├── world-topo.json │ │ │ │ └── zambia-topo.json │ │ │ ├── plugin/ │ │ │ │ ├── index.ts │ │ │ │ └── transformProps.ts │ │ │ └── types.ts │ │ ├── stories/ │ │ │ ├── ChoroplethMap.stories.tsx │ │ │ ├── generateFakeMapData.ts │ │ │ └── useFakeMapData.ts │ │ ├── test/ │ │ │ ├── index.test.ts │ │ │ └── tsconfig.json │ │ ├── tsconfig.json │ │ └── types/ │ │ └── external.d.ts │ ├── setupJest.js │ └── superset-ui-plugins-demo/ │ ├── .storybook/ │ │ ├── addons.js │ │ ├── config.js │ │ └── storybook.css │ ├── README.md │ ├── package.json │ └── storybook/ │ └── stories/ │ └── legacy-plugin-chart-word-cloud/ │ ├── Stories.tsx │ ├── data.js │ └── index.js ├── test/ │ ├── __mocks__/ │ │ ├── mockExportObject.js │ │ ├── mockExportString.js │ │ └── svgrMock.tsx │ ├── setup.ts │ └── shims/ │ ├── Cache.ts │ └── CacheStorage.ts ├── tsconfig.eslint.json └── tsconfig.json
SYMBOL INDEX (1823 symbols across 514 files)
FILE: packages/generator-superset/generators/app/index.js
method prompting (line 27) | async prompting() {
method configuring (line 54) | configuring() {
FILE: packages/generator-superset/generators/package/index.js
method prompting (line 26) | async prompting() {
method writing (line 57) | writing() {
FILE: packages/generator-superset/generators/plugin-chart/index.js
method prompting (line 26) | async prompting() {
method writing (line 85) | writing() {
FILE: packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx
type CertifiedIconWithTooltipProps (line 24) | interface CertifiedIconWithTooltipProps {
function CertifiedIconWithTooltip (line 34) | function CertifiedIconWithTooltip({
FILE: packages/superset-ui-chart-controls/src/components/ColumnOption.tsx
type ColumnOptionProps (line 27) | type ColumnOptionProps = {
function ColumnOption (line 40) | function ColumnOption({
FILE: packages/superset-ui-chart-controls/src/components/ColumnTypeLabel.tsx
type StringIcon (line 23) | type StringIcon = '?' | 'ƒ' | 'AGG' | 'ABC' | '#' | 'T/F' | 'time';
type ColumnLabelExtendedType (line 25) | type ColumnLabelExtendedType = 'expression' | 'aggregate' | '';
type ColumnTypeLabelProps (line 27) | type ColumnTypeLabelProps = {
function ColumnTypeLabel (line 31) | function ColumnTypeLabel({ type }: ColumnTypeLabelProps) {
FILE: packages/superset-ui-chart-controls/src/components/ControlForm/ControlFormItem.tsx
type ControlFormItemProps (line 27) | type ControlFormItemProps = ControlFormItemSpec & {
type ControlFormItemNode (line 32) | type ControlFormItemNode =
function isEmptyValue (line 38) | function isEmptyValue(value?: JsonValue) {
function ControlFormItem (line 42) | function ControlFormItem({
FILE: packages/superset-ui-chart-controls/src/components/ControlForm/controls.tsx
type ControlType (line 40) | type ControlType = keyof typeof ControlFormItemComponents;
type ControlFormValueValidator (line 42) | type ControlFormValueValidator<V> = (value: V) => string | false;
type ControlFormItemSpec (line 44) | type ControlFormItemSpec<T extends ControlType = ControlType> = {
FILE: packages/superset-ui-chart-controls/src/components/ControlForm/index.tsx
type ControlFormRowProps (line 31) | type ControlFormRowProps = {
function ControlFormRow (line 35) | function ControlFormRow({ children }: ControlFormRowProps) {
type ControlFormRowNode (line 51) | type ControlFormRowNode = FunctionComponentElement<ControlFormRowProps>;
type ControlFormProps (line 53) | type ControlFormProps = {
function ControlForm (line 65) | function ControlForm({
FILE: packages/superset-ui-chart-controls/src/components/ControlHeader.tsx
type ValidationError (line 24) | type ValidationError = string;
type ControlHeaderProps (line 26) | type ControlHeaderProps = {
function ControlHeader (line 42) | function ControlHeader({
FILE: packages/superset-ui-chart-controls/src/components/InfoTooltipWithTrigger.tsx
type InfoTooltipWithTriggerProps (line 25) | interface InfoTooltipWithTriggerProps {
function InfoTooltipWithTrigger (line 35) | function InfoTooltipWithTrigger({
FILE: packages/superset-ui-chart-controls/src/components/MetricOption.tsx
type MetricOptionProps (line 35) | interface MetricOptionProps {
function MetricOption (line 45) | function MetricOption({
FILE: packages/superset-ui-chart-controls/src/components/Select.tsx
type SelectOption (line 24) | type SelectOption<VT = string> = [VT, ReactNode];
type SelectProps (line 26) | type SelectProps<VT> = Omit<AntdSelectProps<VT>, 'options'> & {
function Select (line 35) | function Select<VT extends string | number>({
FILE: packages/superset-ui-chart-controls/src/constants.ts
constant TIME_FILTER_LABELS (line 23) | const TIME_FILTER_LABELS = {
constant COLUMN_NAME_ALIASES (line 31) | const COLUMN_NAME_ALIASES: Record<string, string> = {
constant TIME_COLUMN_OPTION (line 35) | const TIME_COLUMN_OPTION: ColumnMeta = {
FILE: packages/superset-ui-chart-controls/src/operators/boxplotOperator.ts
type BoxPlotQueryObjectWhiskerType (line 27) | type BoxPlotQueryObjectWhiskerType =
constant PERCENTILE_REGEX (line 29) | const PERCENTILE_REGEX = /(\d+)\/(\d+) percentiles/;
FILE: packages/superset-ui-chart-controls/src/operators/types.ts
type PostProcessingFactory (line 21) | interface PostProcessingFactory<T> {
FILE: packages/superset-ui-chart-controls/src/operators/utils/constants.ts
constant TIME_COMPARISON_SEPARATOR (line 20) | const TIME_COMPARISON_SEPARATOR = '__';
constant TIME_COLUMN (line 21) | const TIME_COLUMN = '__timestamp';
FILE: packages/superset-ui-chart-controls/src/sections/chartTitle.tsx
constant TITLE_MARGIN_OPTIONS (line 24) | const TITLE_MARGIN_OPTIONS: number[] = [15, 30, 50, 75, 100, 125, 150, 2...
constant TITLE_POSITION_OPTIONS (line 25) | const TITLE_POSITION_OPTIONS: string[] = ['Left', 'Top'];
FILE: packages/superset-ui-chart-controls/src/sections/forecastInterval.tsx
constant FORECAST_DEFAULT_DATA (line 26) | const FORECAST_DEFAULT_DATA = {
FILE: packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/ColumnConfigControl.tsx
type ColumnConfigControlProps (line 38) | type ColumnConfigControlProps<T extends ColumnConfig> =
constant MAX_NUM_COLS (line 49) | const MAX_NUM_COLS = 10;
function ColumnConfigControl (line 54) | function ColumnConfigControl<T extends ColumnConfig>({
FILE: packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/ColumnConfigItem.tsx
type ColumnConfigItemProps (line 27) | type ColumnConfigItemProps = ColumnConfigPopoverProps;
FILE: packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/ColumnConfigPopover.tsx
type ColumnConfigPopoverProps (line 36) | type ColumnConfigPopoverProps = {
function ColumnConfigPopover (line 42) | function ColumnConfigPopover({
FILE: packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/constants.tsx
type SharedColumnConfigProp (line 33) | type SharedColumnConfigProp =
constant SHARED_COLUMN_CONFIG_PROPS (line 148) | const SHARED_COLUMN_CONFIG_PROPS = {
type SharedColumnConfig (line 168) | type SharedColumnConfig = {
constant DEFAULT_CONFIG_FORM_LAYOUT (line 172) | const DEFAULT_CONFIG_FORM_LAYOUT: ColumnConfigFormLayout = {
FILE: packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/types.ts
type ColumnConfig (line 33) | type ColumnConfig = {
type ColumnConfigInfo (line 41) | interface ColumnConfigInfo {
type ColumnConfigFormItem (line 47) | type ColumnConfigFormItem =
type ColumnConfigFormLayout (line 52) | type ColumnConfigFormLayout = Record<
FILE: packages/superset-ui-chart-controls/src/shared-controls/components/RadioButtonControl.tsx
type RadioButtonOption (line 24) | type RadioButtonOption = [
type RadioButtonControlProps (line 29) | interface RadioButtonControlProps {
function RadioButtonControl (line 38) | function RadioButtonControl({
FILE: packages/superset-ui-chart-controls/src/shared-controls/components/types.ts
type ControlComponentProps (line 27) | interface ControlComponentProps<
FILE: packages/superset-ui-chart-controls/src/shared-controls/dndControls.tsx
method mapStateToProps (line 37) | mapStateToProps(state, { includeTime }) {
FILE: packages/superset-ui-chart-controls/src/shared-controls/index.tsx
constant PRIMARY_COLOR (line 87) | const PRIMARY_COLOR = { r: 0, g: 122, b: 135, a: 1 };
constant ROW_LIMIT_OPTIONS (line 89) | const ROW_LIMIT_OPTIONS = [10, 50, 100, 250, 500, 1000, 5000, 10000, 500...
constant SERIES_LIMITS (line 90) | const SERIES_LIMITS = [5, 10, 25, 50, 100, 500];
type Control (line 92) | type Control = {
method mapStateToProps (line 120) | mapStateToProps(state, { includeTime }) {
FILE: packages/superset-ui-chart-controls/src/types.ts
type AnyDict (line 37) | type AnyDict = Record<string, any>;
type Action (line 38) | interface Action {
type AnyAction (line 41) | interface AnyAction extends Action, AnyDict {}
type SharedControls (line 43) | type SharedControls = typeof sharedControls;
type SharedControlAlias (line 44) | type SharedControlAlias = keyof typeof sharedControls;
type SharedControlComponents (line 45) | type SharedControlComponents = typeof sharedControlComponents;
type ColumnMeta (line 50) | type ColumnMeta = Omit<Column, 'id'> & {
type DatasourceMeta (line 54) | interface DatasourceMeta {
type ControlPanelState (line 70) | interface ControlPanelState {
type ActionDispatcher (line 80) | interface ActionDispatcher<
type ControlPanelActionDispatchers (line 90) | interface ControlPanelActionDispatchers {
type ExtraControlProps (line 97) | type ExtraControlProps = {
type ControlState (line 102) | type ControlState<
type ControlStateMapping (line 107) | interface ControlStateMapping {
type ControlPanelsContainerProps (line 112) | interface ControlPanelsContainerProps extends AnyDict {
type InternalControlType (line 124) | type InternalControlType =
type ControlType (line 153) | type ControlType = InternalControlType | React.ComponentType<any>;
type TabOverride (line 155) | type TabOverride = 'data' | 'customize' | boolean;
type BaseControlConfig (line 185) | interface BaseControlConfig<
type ControlValueValidator (line 210) | interface ControlValueValidator<
type SelectOption (line 221) | type SelectOption = AnyDict | string | [ReactText, ReactNode];
type SelectControlType (line 223) | type SelectControlType =
type FilterOption (line 232) | interface FilterOption<T extends SelectOption> {
type SelectControlConfig (line 239) | interface SelectControlConfig<
type SharedControlConfig (line 256) | type SharedControlConfig<
type CustomControlConfig (line 266) | type CustomControlConfig<P = {}> = BaseControlConfig<
type ControlConfig (line 276) | type ControlConfig<
type SharedSectionAlias (line 288) | type SharedSectionAlias =
type OverrideSharedControlItem (line 296) | interface OverrideSharedControlItem<
type CustomControlItem (line 303) | type CustomControlItem = {
type ExpandedControlItem (line 311) | type ExpandedControlItem = CustomControlItem | ReactElement | null;
type ControlSetItem (line 313) | type ControlSetItem =
type ControlSetRow (line 318) | type ControlSetRow = ControlSetItem[];
type ControlPanelSectionConfig (line 323) | interface ControlPanelSectionConfig {
type ControlPanelConfig (line 331) | interface ControlPanelConfig {
type ControlOverrides (line 338) | type ControlOverrides = {
type SectionOverrides (line 342) | type SectionOverrides = {
type COMPARATOR (line 348) | enum COMPARATOR {
constant MULTIPLE_VALUE_COMPARATORS (line 362) | const MULTIPLE_VALUE_COMPARATORS = [
type ConditionalFormattingConfig (line 369) | type ConditionalFormattingConfig = {
type ColorFormatters (line 378) | type ColorFormatters = {
function isColumnMeta (line 385) | function isColumnMeta(
function isSavedExpression (line 391) | function isSavedExpression(
function isAdhocColumn (line 399) | function isAdhocColumn(
FILE: packages/superset-ui-chart-controls/src/utils/D3Formatting.ts
constant D3_FORMAT_DOCS (line 22) | const D3_FORMAT_DOCS = t(
constant D3_FORMAT_OPTIONS (line 27) | const D3_FORMAT_OPTIONS: [string, string][] = [
constant D3_TIME_FORMAT_DOCS (line 44) | const D3_TIME_FORMAT_DOCS = t(
constant D3_TIME_FORMAT_OPTIONS (line 48) | const D3_TIME_FORMAT_OPTIONS: [string, string][] = [
constant DEFAULT_NUMBER_FORMAT (line 58) | const DEFAULT_NUMBER_FORMAT = D3_FORMAT_OPTIONS[0][0];
constant DEFAULT_TIME_FORMAT (line 59) | const DEFAULT_TIME_FORMAT = D3_TIME_FORMAT_OPTIONS[0][0];
FILE: packages/superset-ui-chart-controls/src/utils/columnChoices.ts
function columnChoices (line 24) | function columnChoices(
FILE: packages/superset-ui-chart-controls/src/utils/expandControlConfig.tsx
function expandControlType (line 29) | function expandControlType(controlType: ControlType) {
function expandControlConfig (line 51) | function expandControlConfig(
FILE: packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts
constant MIN_OPACITY_BOUNDED (line 33) | const MIN_OPACITY_BOUNDED = 0.05;
constant MIN_OPACITY_UNBOUNDED (line 34) | const MIN_OPACITY_UNBOUNDED = 0;
constant MAX_OPACITY (line 35) | const MAX_OPACITY = 1;
FILE: packages/superset-ui-chart-controls/src/utils/mainMetric.ts
function mainMetric (line 21) | function mainMetric(savedMetrics?: Metric[] | null) {
FILE: packages/superset-ui-chart-controls/src/utils/selectOptions.ts
type Formattable (line 22) | type Formattable = string | number;
type Formatted (line 24) | type Formatted = [Formattable, string];
function formatSelectOptions (line 27) | function formatSelectOptions<T extends Formattable>(
function formatSelectOptionsForRange (line 38) | function formatSelectOptionsForRange(start: number, end: number) {
FILE: packages/superset-ui-chart-controls/test/components/ColumnTypeLabel.test.tsx
function getWrapper (line 32) | function getWrapper(overrides: Partial<ColumnTypeLabelProps>) {
FILE: packages/superset-ui-chart-controls/test/types.test.ts
constant ADHOC_COLUMN (line 27) | const ADHOC_COLUMN: AdhocColumn = {
constant COLUMN_META (line 32) | const COLUMN_META: ColumnMeta = {
constant SAVED_EXPRESSION (line 35) | const SAVED_EXPRESSION: ColumnMeta = {
FILE: packages/superset-ui-core/src/chart-composition/ChartFrame.tsx
function checkNumber (line 23) | function checkNumber(input: unknown): input is number {
type Props (line 27) | type Props = {
class ChartFrame (line 41) | class ChartFrame extends PureComponent<Props, {}> {
method renderContent (line 43) | renderContent() {}
method render (line 46) | render() {
FILE: packages/superset-ui-core/src/chart-composition/legend/WithLegend.tsx
type Props (line 30) | type Props = {
constant LEGEND_STYLE_BASE (line 41) | const LEGEND_STYLE_BASE: CSSProperties = {
constant CHART_STYLE_BASE (line 48) | const CHART_STYLE_BASE: CSSProperties = {
class WithLegend (line 55) | class WithLegend extends PureComponent<Props, {}> {
method getContainerDirection (line 58) | getContainerDirection(): CSSProperties['flexDirection'] {
method getLegendJustifyContent (line 74) | getLegendJustifyContent() {
method render (line 87) | render() {
FILE: packages/superset-ui-core/src/chart-composition/tooltip/TooltipFrame.tsx
type Props (line 26) | type Props = {
constant CONTAINER_STYLE (line 31) | const CONTAINER_STYLE = { padding: 8 };
class TooltipFrame (line 33) | class TooltipFrame extends PureComponent<Props, {}> {
method render (line 36) | render() {
FILE: packages/superset-ui-core/src/chart-composition/tooltip/TooltipTable.tsx
type TooltipRowData (line 22) | interface TooltipRowData {
type Props (line 35) | type Props = {
constant VALUE_CELL_STYLE (line 40) | const VALUE_CELL_STYLE: CSSProperties = { paddingLeft: 8, textAlign: 'ri...
class TooltipTable (line 42) | class TooltipTable extends PureComponent<Props, {}> {
method render (line 45) | render() {
FILE: packages/superset-ui-core/src/chart/clients/ChartClient.ts
type AtLeastOne (line 36) | type AtLeastOne<All, Each = { [K in keyof All]: Pick<All, K> }> = Partia...
type SliceIdAndOrFormData (line 39) | type SliceIdAndOrFormData = AtLeastOne<{
type AnnotationData (line 44) | interface AnnotationData {
type ChartData (line 48) | interface ChartData {
class ChartClient (line 55) | class ChartClient {
method constructor (line 58) | constructor(
method loadFormData (line 67) | loadFormData(
method loadQueryData (line 98) | async loadQueryData(
method loadDatasource (line 136) | loadDatasource(
method loadAnnotation (line 149) | loadAnnotation(
method loadAnnotations (line 161) | loadAnnotations(
method loadChartData (line 180) | loadChartData(input: SliceIdAndOrFormData): Promise<ChartData> {
FILE: packages/superset-ui-core/src/chart/components/ChartDataProvider.tsx
type Payload (line 31) | interface Payload {
type ProvidedProps (line 37) | interface ProvidedProps {
type ChartDataProviderProps (line 43) | type ChartDataProviderProps =
type ChartDataProviderState (line 64) | type ChartDataProviderState = {
class ChartDataProvider (line 70) | class ChartDataProvider extends React.PureComponent<
method constructor (line 76) | constructor(props: ChartDataProviderProps) {
method componentDidMount (line 82) | componentDidMount() {
method componentDidUpdate (line 86) | componentDidUpdate(prevProps: ChartDataProviderProps) {
method extractSliceIdAndFormData (line 93) | private extractSliceIdAndFormData() {
method render (line 152) | render() {
FILE: packages/superset-ui-core/src/chart/components/FallbackComponent.tsx
type Props (line 23) | type Props = FallbackPropsWithDimension;
constant CONTAINER_STYLE (line 25) | const CONTAINER_STYLE = {
function FallbackComponent (line 32) | function FallbackComponent({
FILE: packages/superset-ui-core/src/chart/components/NoResultsComponent.tsx
constant MESSAGE_STYLES (line 23) | const MESSAGE_STYLES: CSSProperties = { maxWidth: 800 };
constant TITLE_STYLES (line 24) | const TITLE_STYLES: CSSProperties = {
constant BODY_STYLES (line 29) | const BODY_STYLES: CSSProperties = { fontSize: 14 };
constant MIN_WIDTH_FOR_BODY (line 30) | const MIN_WIDTH_FOR_BODY = 250;
type Props (line 46) | type Props = {
FILE: packages/superset-ui-core/src/chart/components/SuperChart.tsx
type FallbackPropsWithDimension (line 40) | type FallbackPropsWithDimension = FallbackProps & Partial<Dimension>;
type WrapperProps (line 42) | type WrapperProps = Dimension & {
type Props (line 46) | type Props = Omit<SuperChartCoreProps, 'chartProps'> &
type PropsWithDefault (line 82) | type PropsWithDefault = Props & Readonly<typeof defaultProps>;
class SuperChart (line 84) | class SuperChart extends React.PureComponent<Props, {}> {
method renderChart (line 135) | renderChart(width: number, height: number) {
method render (line 216) | render() {
FILE: packages/superset-ui-core/src/chart/components/SuperChartCore.tsx
function IDENTITY (line 35) | function IDENTITY<T>(x: T) {
method onRenderSuccess (line 47) | onRenderSuccess() {}
method onRenderFailure (line 48) | onRenderFailure() {}
type LoadingProps (line 51) | interface LoadingProps {
type LoadedModules (line 55) | interface LoadedModules {
type RenderProps (line 60) | interface RenderProps {
constant BLANK_CHART_PROPS (line 66) | const BLANK_CHART_PROPS = new ChartProps();
type Props (line 68) | type Props = {
class SuperChartCore (line 80) | class SuperChartCore extends React.PureComponent<Props, {}> {
method render (line 184) | render() {
FILE: packages/superset-ui-core/src/chart/components/createLoadableRenderer.ts
type LoadableRendererProps (line 22) | type LoadableRendererProps = {
method onRenderFailure (line 28) | onRenderFailure() {}
method onRenderSuccess (line 29) | onRenderSuccess() {}
type LoadableRenderer (line 32) | interface LoadableRenderer<Props>
function createLoadableRenderer (line 36) | function createLoadableRenderer<Props, Exports>(
FILE: packages/superset-ui-core/src/chart/components/reactify.tsx
type ReactifyProps (line 34) | type ReactifyProps = {
type LifeCycleCallbacks (line 40) | type LifeCycleCallbacks = {
type RenderFuncType (line 44) | interface RenderFuncType<Props> {
function reactify (line 51) | function reactify<Props extends object>(
FILE: packages/superset-ui-core/src/chart/models/ChartControlPanel.ts
type ChartControlPanel (line 21) | type ChartControlPanel = { [key: string]: any };
FILE: packages/superset-ui-core/src/chart/models/ChartMetadata.ts
type LookupTable (line 22) | interface LookupTable {
type ExampleImage (line 26) | interface ExampleImage {
type ChartMetadataConfig (line 31) | interface ChartMetadataConfig {
class ChartMetadata (line 49) | class ChartMetadata {
method constructor (line 82) | constructor(config: ChartMetadataConfig) {
method canBeAnnotationType (line 127) | canBeAnnotationType(type: string): boolean {
method clone (line 131) | clone() {
FILE: packages/superset-ui-core/src/chart/models/ChartPlugin.ts
function IDENTITY (line 32) | function IDENTITY<T>(x: T) {
constant EMPTY (line 36) | const EMPTY = {};
type PromiseOrValue (line 38) | type PromiseOrValue<T> = Promise<T> | T;
type PromiseOrValueLoader (line 39) | type PromiseOrValueLoader<T> = () => PromiseOrValue<T>;
type ChartType (line 40) | type ChartType = ComponentType<any>;
type ValueOrModuleWithValue (line 41) | type ValueOrModuleWithValue<T> = T | { default: T };
type ChartPluginConfig (line 43) | interface ChartPluginConfig<
function sanitizeLoader (line 72) | function sanitizeLoader<T>(
class ChartPlugin (line 86) | class ChartPlugin<
method constructor (line 100) | constructor(config: ChartPluginConfig<FormData, Props>) {
method register (line 131) | register() {
method unregister (line 146) | unregister() {
method configure (line 156) | configure(config: { [key: string]: unknown }, replace?: boolean) {
FILE: packages/superset-ui-core/src/chart/models/ChartProps.ts
type AnnotationData (line 36) | type AnnotationData = PlainObject;
type SnakeCaseDatasource (line 37) | type SnakeCaseDatasource = PlainObject;
type CamelCaseFormData (line 38) | type CamelCaseFormData = PlainObject;
type SnakeCaseFormData (line 39) | type SnakeCaseFormData = PlainObject;
type RawFormData (line 40) | type RawFormData = CamelCaseFormData | SnakeCaseFormData;
type ChartPropsSelector (line 42) | type ChartPropsSelector = (c: ChartPropsConfig) => ChartProps;
type Hooks (line 45) | type Hooks = {
type ChartPropsConfig (line 64) | interface ChartPropsConfig {
constant DEFAULT_WIDTH (line 95) | const DEFAULT_WIDTH = 800;
constant DEFAULT_HEIGHT (line 96) | const DEFAULT_HEIGHT = 600;
class ChartProps (line 98) | class ChartProps<FormData extends RawFormData = RawFormData> {
method constructor (line 131) | constructor(config: ChartPropsConfig & { formData?: FormData } = {}) {
FILE: packages/superset-ui-core/src/chart/registries/ChartBuildQueryRegistrySingleton.ts
type BuildQuery (line 30) | type BuildQuery<T = any> = (
class ChartBuildQueryRegistry (line 44) | class ChartBuildQueryRegistry extends Registry<BuildQuery> {
method constructor (line 45) | constructor() {
FILE: packages/superset-ui-core/src/chart/registries/ChartComponentRegistrySingleton.ts
class ChartComponentRegistry (line 23) | class ChartComponentRegistry extends Registry<ChartType> {
method constructor (line 24) | constructor() {
FILE: packages/superset-ui-core/src/chart/registries/ChartControlPanelRegistrySingleton.ts
class ChartControlPanelRegistry (line 23) | class ChartControlPanelRegistry extends Registry<
method constructor (line 27) | constructor() {
FILE: packages/superset-ui-core/src/chart/registries/ChartMetadataRegistrySingleton.ts
class ChartMetadataRegistry (line 23) | class ChartMetadataRegistry extends Registry<ChartMetadata, ChartMetadat...
method constructor (line 24) | constructor() {
FILE: packages/superset-ui-core/src/chart/registries/ChartTransformPropsRegistrySingleton.ts
class ChartTransformPropsRegistry (line 23) | class ChartTransformPropsRegistry extends Registry<TransformProps<any>> {
method constructor (line 24) | constructor() {
FILE: packages/superset-ui-core/src/chart/types/Annotation.ts
type AnnotationLayerMetadata (line 20) | type AnnotationLayerMetadata = {
FILE: packages/superset-ui-core/src/chart/types/Base.ts
type HandlerFunction (line 23) | type HandlerFunction = (...args: unknown[]) => void;
type Behavior (line 25) | enum Behavior {
type AppSection (line 30) | enum AppSection {
type FilterState (line 38) | type FilterState = { value?: any; [key: string]: any };
type DataMask (line 40) | type DataMask = {
type SetDataMaskHook (line 46) | type SetDataMaskHook = {
type PlainObject (line 50) | interface PlainObject {
FILE: packages/superset-ui-core/src/chart/types/QueryResponse.ts
type TimeseriesDataRecord (line 30) | interface TimeseriesDataRecord extends DataRecord {
type DataRecordFilters (line 35) | interface DataRecordFilters {
type LegacyQueryData (line 44) | type LegacyQueryData = PlainObject;
type QueryData (line 50) | type QueryData = LegacyQueryData | ChartDataResponseResult;
FILE: packages/superset-ui-core/src/chart/types/TransformFunction.ts
type PlainProps (line 29) | type PlainProps = PlainObject;
type TransformFunction (line 31) | type TransformFunction<Input = PlainProps, Output = PlainProps> = (
type PreTransformProps (line 35) | type PreTransformProps = TransformFunction<ChartProps, ChartProps>;
type TransformProps (line 36) | type TransformProps<Props extends ChartProps = ChartProps> =
type PostTransformProps (line 38) | type PostTransformProps = TransformFunction;
type BuildQueryFunction (line 40) | type BuildQueryFunction<T extends QueryFormData> = (
FILE: packages/superset-ui-core/src/color/CategoricalColorNamespace.ts
class CategoricalColorNamespace (line 25) | class CategoricalColorNamespace {
method constructor (line 34) | constructor(name: string) {
method getScale (line 40) | getScale(schemeId?: string) {
method setColor (line 58) | setColor(value: string, forcedColor: string) {
method resetColors (line 64) | resetColors() {
constant DEFAULT_NAMESPACE (line 73) | const DEFAULT_NAMESPACE = 'GLOBAL';
function getNamespace (line 75) | function getNamespace(name: string = DEFAULT_NAMESPACE) {
function getColor (line 86) | function getColor(
function getScale (line 98) | function getScale(scheme?: string, namespace?: string) {
FILE: packages/superset-ui-core/src/color/CategoricalColorScale.ts
type CategoricalColorScale (line 29) | interface CategoricalColorScale {
method constructor (line 48) | constructor(colors: string[], parentForcedColors?: ColorsLookup) {
method getColor (line 58) | getColor(value?: string) {
method setColor (line 79) | setColor(value: string, forcedColor: string) {
method getColorMap (line 88) | getColorMap() {
method copy (line 104) | copy() {
method domain (line 126) | domain(newDomain?: { toString(): string }[]): unknown {
method range (line 151) | range(newRange?: string[]): unknown {
method unknown (line 174) | unknown(value?: string | { name: 'implicit' }): unknown {
class CategoricalColorScale (line 33) | class CategoricalColorScale extends ExtensibleFunction {
method constructor (line 48) | constructor(colors: string[], parentForcedColors?: ColorsLookup) {
method getColor (line 58) | getColor(value?: string) {
method setColor (line 79) | setColor(value: string, forcedColor: string) {
method getColorMap (line 88) | getColorMap() {
method copy (line 104) | copy() {
method domain (line 126) | domain(newDomain?: { toString(): string }[]): unknown {
method range (line 151) | range(newRange?: string[]): unknown {
method unknown (line 174) | unknown(value?: string | { name: 'implicit' }): unknown {
FILE: packages/superset-ui-core/src/color/CategoricalScheme.ts
class CategoricalScheme (line 22) | class CategoricalScheme extends ColorScheme {}
FILE: packages/superset-ui-core/src/color/CategoricalSchemeRegistrySingleton.ts
class CategoricalSchemeRegistry (line 25) | class CategoricalSchemeRegistry extends ColorSchemeRegistry<CategoricalS...
method constructor (line 26) | constructor() {
FILE: packages/superset-ui-core/src/color/ColorScheme.ts
type ColorSchemeConfig (line 20) | interface ColorSchemeConfig {
class ColorScheme (line 28) | class ColorScheme {
method constructor (line 39) | constructor({
FILE: packages/superset-ui-core/src/color/ColorSchemeRegistry.ts
class ColorSchemeRegistry (line 22) | class ColorSchemeRegistry<T> extends RegistryWithDefaultKey<T> {
method constructor (line 23) | constructor() {
method get (line 31) | get(key?: string) {
FILE: packages/superset-ui-core/src/color/SequentialScheme.ts
type SequentialSchemeConfig (line 29) | interface SequentialSchemeConfig extends ColorSchemeConfig {
class SequentialScheme (line 33) | class SequentialScheme extends ColorScheme {
method constructor (line 36) | constructor(config: SequentialSchemeConfig) {
method createLinearScale (line 53) | createLinearScale(domain: number[] = [0, 1], modifyRange = false) {
method getColors (line 73) | getColors(
FILE: packages/superset-ui-core/src/color/SequentialSchemeRegistrySingleton.ts
class SequentialSchemeRegistry (line 25) | class SequentialSchemeRegistry extends ColorSchemeRegistry<SequentialSch...
method constructor (line 26) | constructor() {
FILE: packages/superset-ui-core/src/color/index.ts
constant BRAND_COLOR (line 32) | const BRAND_COLOR = '#00A699';
FILE: packages/superset-ui-core/src/color/stringifyAndTrim.ts
function stringifyAndTrim (line 24) | function stringifyAndTrim(value?: number | string) {
FILE: packages/superset-ui-core/src/color/types.ts
type ColorsLookup (line 20) | interface ColorsLookup {
FILE: packages/superset-ui-core/src/color/utils.ts
function getContrastingColor (line 21) | function getContrastingColor(color: string, thresholds = 186) {
FILE: packages/superset-ui-core/src/components/SafeMarkdown.tsx
type SafeMarkdownProps (line 27) | interface SafeMarkdownProps {
function isSafeMarkup (line 31) | function isSafeMarkup(node: MarkdownAbstractSyntaxTree) {
function SafeMarkdown (line 37) | function SafeMarkdown({ source }: SafeMarkdownProps) {
FILE: packages/superset-ui-core/src/components/constants.ts
constant FAST_DEBOUNCE (line 23) | const FAST_DEBOUNCE = 250;
constant SLOW_DEBOUNCE (line 28) | const SLOW_DEBOUNCE = 500;
FILE: packages/superset-ui-core/src/connection/SupersetClient.ts
function getInstance (line 25) | function getInstance(): SupersetClientClass {
FILE: packages/superset-ui-core/src/connection/SupersetClientClass.ts
class SupersetClientClass (line 36) | class SupersetClientClass {
method constructor (line 57) | constructor({
method init (line 94) | async init(force = false): CsrfPromise {
method reAuthenticate (line 101) | async reAuthenticate() {
method isAuthenticated (line 105) | isAuthenticated(): boolean {
method get (line 110) | async get<T extends ParseMethod = 'json'>(
method delete (line 116) | async delete<T extends ParseMethod = 'json'>(
method put (line 122) | async put<T extends ParseMethod = 'json'>(
method post (line 128) | async post<T extends ParseMethod = 'json'>(
method request (line 134) | async request<T extends ParseMethod = 'json'>({
method ensureAuth (line 157) | async ensureAuth(): CsrfPromise {
method getCSRFToken (line 169) | async getCSRFToken() {
method getUrl (line 199) | getUrl({
FILE: packages/superset-ui-core/src/connection/callApi/callApi.ts
function tryParsePayload (line 30) | function tryParsePayload(payload: Payload) {
function getFullUrl (line 43) | function getFullUrl(partialUrl: string, params: CallApi['searchParams']) {
function callApi (line 62) | async function callApi({
FILE: packages/superset-ui-core/src/connection/callApi/callApiAndParseWithTimeout.ts
function callApiAndParseWithTimeout (line 25) | async function callApiAndParseWithTimeout<
FILE: packages/superset-ui-core/src/connection/callApi/parseResponse.ts
function parseResponse (line 22) | async function parseResponse<T extends ParseMethod = 'json'>(
FILE: packages/superset-ui-core/src/connection/callApi/rejectAfterTimeout.ts
function rejectAfterTimeout (line 21) | function rejectAfterTimeout<T>(timeout: number) {
FILE: packages/superset-ui-core/src/connection/constants.ts
constant DEFAULT_BASE_URL (line 22) | const DEFAULT_BASE_URL = 'http://localhost';
constant HTTP_STATUS_OK (line 25) | const HTTP_STATUS_OK = 200;
constant HTTP_STATUS_NOT_MODIFIED (line 26) | const HTTP_STATUS_NOT_MODIFIED = 304;
constant CACHE_AVAILABLE (line 29) | const CACHE_AVAILABLE = 'caches' in window;
constant CACHE_KEY (line 30) | const CACHE_KEY = '@SUPERSET-UI/CONNECTION';
constant DEFAULT_FETCH_RETRY_OPTIONS (line 32) | const DEFAULT_FETCH_RETRY_OPTIONS: FetchRetryOptions = {
FILE: packages/superset-ui-core/src/connection/types.ts
type Body (line 21) | type Body = RequestInit['body'];
type Cache (line 22) | type Cache = RequestInit['cache'];
type Credentials (line 23) | type Credentials = RequestInit['credentials'];
type Endpoint (line 24) | type Endpoint = string;
type FetchRetryOptions (line 25) | type FetchRetryOptions = {
type Headers (line 34) | type Headers = { [k: string]: string };
type Host (line 35) | type Host = string;
type JsonPrimitive (line 37) | type JsonPrimitive = string | number | boolean | null;
type StrictJsonValue (line 45) | type StrictJsonValue =
type StrictJsonArray (line 49) | type StrictJsonArray = StrictJsonValue[];
type StrictJsonObject (line 56) | type StrictJsonObject = { [member: string]: StrictJsonValue };
type JsonValue (line 58) | type JsonValue = JsonPrimitive | JsonObject | JsonArray;
type JsonArray (line 59) | type JsonArray = JsonValue[];
type JsonObject (line 61) | type JsonObject = { [member: string]: any };
type Payload (line 67) | type Payload = JsonObject | string | null;
type Method (line 69) | type Method = RequestInit['method'];
type Mode (line 70) | type Mode = RequestInit['mode'];
type Redirect (line 71) | type Redirect = RequestInit['redirect'];
type ClientTimeout (line 72) | type ClientTimeout = number | undefined;
type ParseMethod (line 73) | type ParseMethod = 'json' | 'text' | 'raw' | null | undefined;
type Signal (line 74) | type Signal = RequestInit['signal'];
type Stringify (line 75) | type Stringify = boolean;
type Url (line 76) | type Url = string;
type RequestBase (line 78) | interface RequestBase {
type CallApi (line 94) | interface CallApi extends RequestBase {
type RequestWithEndpoint (line 100) | interface RequestWithEndpoint extends RequestBase {
type RequestWithUrl (line 105) | interface RequestWithUrl extends RequestBase {
type RequestConfig (line 111) | type RequestConfig = RequestWithEndpoint | RequestWithUrl;
type JsonResponse (line 113) | interface JsonResponse {
type TextResponse (line 118) | interface TextResponse {
type CsrfToken (line 123) | type CsrfToken = string;
type CsrfPromise (line 124) | type CsrfPromise = Promise<string | undefined>;
type Protocol (line 125) | type Protocol = 'http:' | 'https:';
type ClientConfig (line 127) | interface ClientConfig {
type SupersetClientInterface (line 139) | interface SupersetClientInterface
type SupersetClientResponse (line 156) | type SupersetClientResponse = Response | JsonResponse | TextResponse;
FILE: packages/superset-ui-core/src/dimension/computeMaxFontSize.ts
function decreaseSizeUntil (line 23) | function decreaseSizeUntil(
function computeMaxFontSize (line 38) | function computeMaxFontSize(
FILE: packages/superset-ui-core/src/dimension/getMultipleTextDimensions.ts
function getMultipleTextDimensions (line 30) | function getMultipleTextDimensions(
FILE: packages/superset-ui-core/src/dimension/getTextDimension.ts
type GetTextDimensionInput (line 25) | interface GetTextDimensionInput {
function getTextDimension (line 32) | function getTextDimension(
FILE: packages/superset-ui-core/src/dimension/mergeMargin.ts
function mergeOneSide (line 22) | function mergeOneSide(
function mergeMargin (line 33) | function mergeMargin(
FILE: packages/superset-ui-core/src/dimension/parseLength.ts
constant HUNDRED_PERCENT (line 20) | const HUNDRED_PERCENT = { isDynamic: true, multiplier: 1 } as const;
function parseLength (line 22) | function parseLength(
FILE: packages/superset-ui-core/src/dimension/svg/LazyFactory.ts
class LazyFactory (line 20) | class LazyFactory<T extends HTMLElement | SVGElement> {
method constructor (line 31) | constructor(factoryFn: () => T) {
method createInContainer (line 35) | createInContainer(container: HTMLElement | SVGElement = document.body) {
method removeFromContainer (line 50) | removeFromContainer(container: HTMLElement | SVGElement = document.bod...
FILE: packages/superset-ui-core/src/dimension/svg/constants.ts
constant SVG_NS (line 21) | const SVG_NS = 'http://www.w3.org/2000/svg';
FILE: packages/superset-ui-core/src/dimension/svg/createHiddenSvgNode.ts
function createHiddenSvgNode (line 22) | function createHiddenSvgNode() {
FILE: packages/superset-ui-core/src/dimension/svg/createTextNode.ts
function createTextNode (line 22) | function createTextNode() {
FILE: packages/superset-ui-core/src/dimension/svg/getBBoxCeil.ts
constant DEFAULT_DIMENSION (line 22) | const DEFAULT_DIMENSION = { height: 20, width: 100 };
function getBBoxCeil (line 24) | function getBBoxCeil(
FILE: packages/superset-ui-core/src/dimension/svg/updateTextNode.ts
constant STYLE_FIELDS (line 22) | const STYLE_FIELDS: (keyof TextStyle)[] = [
function updateTextNode (line 31) | function updateTextNode(
FILE: packages/superset-ui-core/src/dimension/types.ts
type TextStyle (line 20) | interface TextStyle {
type Margin (line 29) | interface Margin {
type Dimension (line 36) | interface Dimension {
FILE: packages/superset-ui-core/src/dynamic-plugins/shared-modules.ts
type Module (line 21) | type Module = any;
type ModuleReferencer (line 28) | interface ModuleReferencer {
function defineSharedModule (line 52) | async function defineSharedModule(
function defineSharedModules (line 81) | async function defineSharedModules(moduleMap: {
function reset (line 92) | function reset() {
FILE: packages/superset-ui-core/src/math-expression/index.ts
constant REPLACE_OPERATORS (line 22) | const REPLACE_OPERATORS: [RegExp, string][] = [
constant TOKENS (line 30) | const TOKENS = [
function evalExpression (line 99) | function evalExpression(expression: string, value: number): number {
function isValidExpression (line 114) | function isValidExpression(expression: string): boolean {
FILE: packages/superset-ui-core/src/models/ExtensibleFunction.ts
class ExtensibleFunction (line 24) | class ExtensibleFunction extends Function {
method constructor (line 25) | constructor(fn: Function) {
FILE: packages/superset-ui-core/src/models/Plugin.ts
type PlainObject (line 20) | interface PlainObject {
class Plugin (line 25) | class Plugin {
method constructor (line 28) | constructor() {
method resetConfig (line 32) | resetConfig() {
method configure (line 40) | configure(config: PlainObject, replace = false) {
method register (line 46) | register() {
method unregister (line 50) | unregister() {
FILE: packages/superset-ui-core/src/models/Preset.ts
class Preset (line 22) | class Preset {
method constructor (line 31) | constructor(
method register (line 46) | register() {
FILE: packages/superset-ui-core/src/models/Registry.ts
type OverwritePolicy (line 19) | enum OverwritePolicy {
type ItemWithValue (line 25) | interface ItemWithValue<T> {
type ItemWithLoader (line 29) | interface ItemWithLoader<T> {
type InclusiveLoaderResult (line 36) | type InclusiveLoaderResult<V> = V | Promise<V>;
type RegistryValue (line 38) | type RegistryValue<V, W extends InclusiveLoaderResult<V>> =
type RegistryEntry (line 43) | type RegistryEntry<V, W extends InclusiveLoaderResult<V>> = {
type Listener (line 52) | type Listener = (keys: string[]) => void;
type RegistryConfig (line 54) | interface RegistryConfig {
class Registry (line 69) | class Registry<
method constructor (line 87) | constructor(config: RegistryConfig = {}) {
method clear (line 96) | clear() {
method has (line 106) | has(key: string) {
method registerValue (line 112) | registerValue(key: string, value: V) {
method registerLoader (line 138) | registerLoader(key: string, loader: () => W) {
method get (line 164) | get(key: string): V | W | undefined {
method getAsPromise (line 177) | getAsPromise(key: string): Promise<V> {
method getMap (line 196) | getMap() {
method getMapAsPromise (line 207) | getMapAsPromise() {
method keys (line 222) | keys(): string[] {
method values (line 226) | values(): RegistryValue<V, W>[] {
method valuesAsPromise (line 230) | valuesAsPromise(): Promise<V[]> {
method entries (line 234) | entries(): RegistryEntry<V, W>[] {
method entriesAsPromise (line 241) | entriesAsPromise(): Promise<{ key: string; value: V }[]> {
method remove (line 252) | remove(key: string) {
method addListener (line 263) | addListener(listener: Listener) {
method removeListener (line 267) | removeListener(listener: Listener) {
method notifyListeners (line 271) | private notifyListeners(keys: string[]) {
FILE: packages/superset-ui-core/src/models/RegistryWithDefaultKey.ts
type RegistryWithDefaultKeyConfig (line 22) | interface RegistryWithDefaultKeyConfig extends RegistryConfig {
class RegistryWithDefaultKey (line 27) | class RegistryWithDefaultKey<
method constructor (line 37) | constructor(config: RegistryWithDefaultKeyConfig = {}) {
method clear (line 46) | clear() {
method get (line 53) | get(key?: string) {
method registerValue (line 59) | registerValue(key: string, value: V) {
method registerLoader (line 69) | registerLoader(key: string, loader: () => W) {
method getDefaultKey (line 79) | getDefaultKey() {
method setDefaultKey (line 83) | setDefaultKey(key: string) {
method clearDefaultKey (line 89) | clearDefaultKey() {
FILE: packages/superset-ui-core/src/number-format/NumberFormats.ts
constant DOLLAR (line 20) | const DOLLAR = '$,.2f';
constant DOLLAR_SIGNED (line 21) | const DOLLAR_SIGNED = '+$,.2f';
constant DOLLAR_ROUND (line 22) | const DOLLAR_ROUND = '$,d';
constant DOLLAR_ROUND_SIGNED (line 23) | const DOLLAR_ROUND_SIGNED = '+$,d';
constant FLOAT_1_POINT (line 25) | const FLOAT_1_POINT = ',.1f';
constant FLOAT_2_POINT (line 26) | const FLOAT_2_POINT = ',.2f';
constant FLOAT_3_POINT (line 27) | const FLOAT_3_POINT = ',.3f';
constant FLOAT (line 28) | const FLOAT = FLOAT_2_POINT;
constant FLOAT_SIGNED_1_POINT (line 30) | const FLOAT_SIGNED_1_POINT = '+,.1f';
constant FLOAT_SIGNED_2_POINT (line 31) | const FLOAT_SIGNED_2_POINT = '+,.2f';
constant FLOAT_SIGNED_3_POINT (line 32) | const FLOAT_SIGNED_3_POINT = '+,.3f';
constant FLOAT_SIGNED (line 33) | const FLOAT_SIGNED = FLOAT_SIGNED_2_POINT;
constant INTEGER (line 35) | const INTEGER = ',d';
constant INTEGER_SIGNED (line 36) | const INTEGER_SIGNED = '+,d';
constant PERCENT_1_POINT (line 38) | const PERCENT_1_POINT = ',.1%';
constant PERCENT_2_POINT (line 39) | const PERCENT_2_POINT = ',.2%';
constant PERCENT_3_POINT (line 40) | const PERCENT_3_POINT = ',.3%';
constant PERCENT (line 41) | const PERCENT = PERCENT_2_POINT;
constant PERCENT_SIGNED_1_POINT (line 43) | const PERCENT_SIGNED_1_POINT = '+,.1%';
constant PERCENT_SIGNED_2_POINT (line 44) | const PERCENT_SIGNED_2_POINT = '+,.2%';
constant PERCENT_SIGNED_3_POINT (line 45) | const PERCENT_SIGNED_3_POINT = '+,.3%';
constant PERCENT_SIGNED (line 46) | const PERCENT_SIGNED = PERCENT_SIGNED_2_POINT;
constant SI_1_DIGIT (line 48) | const SI_1_DIGIT = '.1s';
constant SI_2_DIGIT (line 49) | const SI_2_DIGIT = '.2s';
constant SI_3_DIGIT (line 50) | const SI_3_DIGIT = '.3s';
constant SMART_NUMBER (line 53) | const SMART_NUMBER = 'SMART_NUMBER';
constant SMART_NUMBER_SIGNED (line 54) | const SMART_NUMBER_SIGNED = 'SMART_NUMBER_SIGNED';
FILE: packages/superset-ui-core/src/number-format/NumberFormatter.ts
constant PREVIEW_VALUE (line 23) | const PREVIEW_VALUE = 12345.432;
type NumberFormatterConfig (line 25) | interface NumberFormatterConfig {
type NumberFormatter (line 35) | interface NumberFormatter {
method constructor (line 50) | constructor(config: NumberFormatterConfig) {
method format (line 67) | format(value: number | null | undefined) {
method preview (line 81) | preview(value = PREVIEW_VALUE) {
class NumberFormatter (line 39) | class NumberFormatter extends ExtensibleFunction {
method constructor (line 50) | constructor(config: NumberFormatterConfig) {
method format (line 67) | format(value: number | null | undefined) {
method preview (line 81) | preview(value = PREVIEW_VALUE) {
FILE: packages/superset-ui-core/src/number-format/NumberFormatterRegistry.ts
class NumberFormatterRegistry (line 25) | class NumberFormatterRegistry extends RegistryWithDefaultKey<
method constructor (line 29) | constructor() {
method get (line 46) | get(formatterId?: string) {
method format (line 68) | format(
FILE: packages/superset-ui-core/src/number-format/NumberFormatterRegistrySingleton.ts
function getNumberFormatter (line 26) | function getNumberFormatter(format?: string) {
function formatNumber (line 30) | function formatNumber(
FILE: packages/superset-ui-core/src/number-format/factories/createD3NumberFormatter.ts
function createD3NumberFormatter (line 28) | function createD3NumberFormatter(config: {
FILE: packages/superset-ui-core/src/number-format/factories/createDurationFormatter.ts
function createDurationFormatter (line 23) | function createDurationFormatter(
FILE: packages/superset-ui-core/src/number-format/factories/createSiAtMostNDigitFormatter.ts
function createSiAtMostNDigitFormatter (line 23) | function createSiAtMostNDigitFormatter(
FILE: packages/superset-ui-core/src/number-format/factories/createSmartNumberFormatter.ts
function formatValue (line 28) | function formatValue(value: number) {
function createSmartNumberFormatter (line 50) | function createSmartNumberFormatter(
FILE: packages/superset-ui-core/src/number-format/types.ts
type NumberFormatFunction (line 20) | type NumberFormatFunction = (value: number) => string;
FILE: packages/superset-ui-core/src/query/DatasourceKey.ts
class DatasourceKey (line 22) | class DatasourceKey {
method constructor (line 27) | constructor(key: string) {
method toString (line 34) | public toString() {
method toObject (line 38) | public toObject() {
FILE: packages/superset-ui-core/src/query/api/legacy/fetchExploreJson.ts
type Params (line 25) | interface Params extends BaseParams {
function fetchExploreJson (line 31) | async function fetchExploreJson({
FILE: packages/superset-ui-core/src/query/api/legacy/getDatasourceMetadata.ts
type Params (line 24) | interface Params extends BaseParams {
function getDatasourceMetadata (line 28) | function getDatasourceMetadata({
FILE: packages/superset-ui-core/src/query/api/legacy/getFormData.ts
type Params (line 24) | interface Params extends BaseParams {
function getFormData (line 29) | function getFormData({
FILE: packages/superset-ui-core/src/query/api/legacy/types.ts
type LegacyChartDataResponse (line 21) | interface LegacyChartDataResponse
FILE: packages/superset-ui-core/src/query/api/types.ts
type BaseParams (line 25) | interface BaseParams {
FILE: packages/superset-ui-core/src/query/api/v1/handleError.ts
type ErrorInput (line 25) | type ErrorInput = string | Error | Response | SupersetApiErrorPayload;
function handleError (line 31) | async function handleError(error: ErrorInput): Promise<never> {
FILE: packages/superset-ui-core/src/query/api/v1/makeApi.ts
type SupersetApiFactoryOptions (line 39) | interface SupersetApiFactoryOptions extends Omit<RequestBase, 'url'> {
function isPayloadless (line 57) | function isPayloadless(method?: Method) {
function makeApi (line 67) | function makeApi<
FILE: packages/superset-ui-core/src/query/api/v1/types.ts
type ParsedResponseType (line 28) | type ParsedResponseType<T> = T extends 'text'
type SupersetApiRequestOptions (line 38) | interface SupersetApiRequestOptions {
type SupersetApiErrorType (line 48) | enum SupersetApiErrorType {
type SupersetApiErrorPayload (line 75) | interface SupersetApiErrorPayload {
type SupersetApiMultiErrorsPayload (line 88) | interface SupersetApiMultiErrorsPayload {
class SupersetApiError (line 92) | class SupersetApiError extends Error {
method constructor (line 103) | constructor({
FILE: packages/superset-ui-core/src/query/buildQueryContext.ts
type BuildFinalQueryObjects (line 41) | type BuildFinalQueryObjects = (
function buildQueryContext (line 45) | function buildQueryContext(
FILE: packages/superset-ui-core/src/query/buildQueryObject.ts
function buildQueryObject (line 40) | function buildQueryObject<T extends QueryFormData>(
FILE: packages/superset-ui-core/src/query/constants.ts
constant DTTM_ALIAS (line 27) | const DTTM_ALIAS = '__timestamp';
constant EXTRA_FORM_DATA_OVERRIDE_EXTRA_KEYS (line 29) | const EXTRA_FORM_DATA_OVERRIDE_EXTRA_KEYS: (keyof ExtraFormDataOverrideE...
constant EXTRA_FORM_DATA_APPEND_KEYS (line 38) | const EXTRA_FORM_DATA_APPEND_KEYS: (keyof ExtraFormDataAppend)[] = [
constant EXTRA_FORM_DATA_OVERRIDE_REGULAR_MAPPINGS (line 47) | const EXTRA_FORM_DATA_OVERRIDE_REGULAR_MAPPINGS: Record<
constant EXTRA_FORM_DATA_OVERRIDE_REGULAR_KEYS (line 58) | const EXTRA_FORM_DATA_OVERRIDE_REGULAR_KEYS = Object.keys(
constant EXTRA_FORM_DATA_OVERRIDE_KEYS (line 62) | const EXTRA_FORM_DATA_OVERRIDE_KEYS: (keyof ExtraFormDataOverride)[] = [
FILE: packages/superset-ui-core/src/query/convertFilter.ts
function convertFilter (line 27) | function convertFilter(
FILE: packages/superset-ui-core/src/query/extractExtras.ts
type ExtraFilterQueryField (line 30) | type ExtraFilterQueryField = {
type ExtractedExtra (line 38) | type ExtractedExtra = ExtraFilterQueryField & {
function extractExtras (line 44) | function extractExtras(formData: QueryFormData): ExtractedExtra {
FILE: packages/superset-ui-core/src/query/extractQueryFields.ts
function extractQueryFields (line 42) | function extractQueryFields(
FILE: packages/superset-ui-core/src/query/extractTimegrain.ts
function extractTimegrain (line 24) | function extractTimegrain(
FILE: packages/superset-ui-core/src/query/getColumnLabel.ts
function getColumnLabel (line 22) | function getColumnLabel(column: QueryFormColumn): string {
FILE: packages/superset-ui-core/src/query/getMetricLabel.ts
function getMetricLabel (line 22) | function getMetricLabel(metric: QueryFormMetric): string {
FILE: packages/superset-ui-core/src/query/normalizeOrderBy.ts
function normalizeOrderBy (line 24) | function normalizeOrderBy(
FILE: packages/superset-ui-core/src/query/processExtraFormData.ts
function overrideExtraFormData (line 25) | function overrideExtraFormData(
FILE: packages/superset-ui-core/src/query/processFilters.ts
function processFilters (line 27) | function processFilters(
FILE: packages/superset-ui-core/src/query/types/AdvancedAnalytics.ts
type RollingType (line 20) | enum RollingType {
type RollingWindow (line 26) | interface RollingWindow {
type ComparisionType (line 32) | enum ComparisionType {
type TimeCompare (line 38) | interface TimeCompare {
FILE: packages/superset-ui-core/src/query/types/AnnotationLayer.ts
type AnnotationType (line 24) | enum AnnotationType {
type AnnotationSourceType (line 31) | enum AnnotationSourceType {
type AnnotationOpacity (line 38) | enum AnnotationOpacity {
type AnnotationStyle (line 45) | enum AnnotationStyle {
type BaseAnnotationLayer (line 52) | type BaseAnnotationLayer = {
type AnnotationOverrides (line 62) | type AnnotationOverrides = {
type LineSourceAnnotationLayer (line 69) | type LineSourceAnnotationLayer = {
type NativeSourceAnnotationLayer (line 78) | type NativeSourceAnnotationLayer = {
type TableSourceAnnotationLayer (line 84) | type TableSourceAnnotationLayer = {
type EventAnnotationLayer (line 95) | type EventAnnotationLayer = BaseAnnotationLayer &
type IntervalAnnotationLayer (line 100) | type IntervalAnnotationLayer = BaseAnnotationLayer &
type TableAnnotationLayer (line 105) | type TableAnnotationLayer = BaseAnnotationLayer &
type FormulaAnnotationLayer (line 110) | type FormulaAnnotationLayer = BaseAnnotationLayer & {
type TimeseriesAnnotationLayer (line 117) | type TimeseriesAnnotationLayer = BaseAnnotationLayer &
type AnnotationLayer (line 124) | type AnnotationLayer =
function isFormulaAnnotationLayer (line 130) | function isFormulaAnnotationLayer(
function isEventAnnotationLayer (line 136) | function isEventAnnotationLayer(
function isIntervalAnnotationLayer (line 142) | function isIntervalAnnotationLayer(
function isTimeseriesAnnotationLayer (line 148) | function isTimeseriesAnnotationLayer(
function isTableAnnotationLayer (line 154) | function isTableAnnotationLayer(
type RecordAnnotationResult (line 160) | type RecordAnnotationResult = {
type TimeseriesAnnotationResult (line 165) | type TimeseriesAnnotationResult = [
type AnnotationResult (line 169) | type AnnotationResult =
function isTimeseriesAnnotationResult (line 173) | function isTimeseriesAnnotationResult(
function isRecordAnnotationResult (line 179) | function isRecordAnnotationResult(
type AnnotationData (line 185) | type AnnotationData = { [key: string]: AnnotationResult };
type Annotation (line 187) | type Annotation = {
FILE: packages/superset-ui-core/src/query/types/Column.ts
type AdhocColumn (line 23) | interface AdhocColumn {
type PhysicalColumn (line 34) | type PhysicalColumn = string;
type Column (line 39) | interface Column {
function isPhysicalColumn (line 56) | function isPhysicalColumn(
FILE: packages/superset-ui-core/src/query/types/Datasource.ts
type DatasourceType (line 22) | enum DatasourceType {
type Datasource (line 30) | interface Datasource {
FILE: packages/superset-ui-core/src/query/types/Filter.ts
type BaseSimpleAdhocFilter (line 30) | interface BaseSimpleAdhocFilter {
type UnaryAdhocFilter (line 38) | type UnaryAdhocFilter = BaseSimpleAdhocFilter & {
type BinaryAdhocFilter (line 42) | type BinaryAdhocFilter = BaseSimpleAdhocFilter & {
type SetAdhocFilter (line 47) | type SetAdhocFilter = BaseSimpleAdhocFilter & {
type SimpleAdhocFilter (line 52) | type SimpleAdhocFilter =
type FreeFormAdhocFilter (line 57) | interface FreeFormAdhocFilter {
type AdhocFilter (line 63) | type AdhocFilter = SimpleAdhocFilter | FreeFormAdhocFilter;
function isSimpleAdhocFilter (line 69) | function isSimpleAdhocFilter(
function isUnaryAdhocFilter (line 75) | function isUnaryAdhocFilter(
function isBinaryAdhocFilter (line 81) | function isBinaryAdhocFilter(
function isSetAdhocFilter (line 87) | function isSetAdhocFilter(
FILE: packages/superset-ui-core/src/query/types/Metric.ts
type Aggregate (line 23) | type Aggregate =
type AdhocMetricBase (line 31) | interface AdhocMetricBase {
type AdhocMetricSimple (line 37) | interface AdhocMetricSimple extends AdhocMetricBase {
type AdhocMetricSQL (line 46) | interface AdhocMetricSQL extends AdhocMetricBase {
type AdhocMetric (line 51) | type AdhocMetric = AdhocMetricSimple | AdhocMetricSQL;
type SavedMetric (line 56) | type SavedMetric = string;
type Metric (line 61) | interface Metric {
function isAdhocMetricSimple (line 77) | function isAdhocMetricSimple(
FILE: packages/superset-ui-core/src/query/types/Operator.ts
constant UNARY_OPERATORS (line 21) | const UNARY_OPERATORS = ['IS NOT NULL', 'IS NULL'] as const;
constant BINARY_OPERATORS (line 24) | const BINARY_OPERATORS = [
constant SET_OPERATORS (line 37) | const SET_OPERATORS = ['IN', 'NOT IN'] as const;
type UnaryOperator (line 44) | type UnaryOperator = typeof UNARY_OPERATORS[number];
type BinaryOperator (line 47) | type BinaryOperator = typeof BINARY_OPERATORS[number];
type SetOperator (line 50) | type SetOperator = typeof SET_OPERATORS[number];
function isUnaryOperator (line 58) | function isUnaryOperator(operator: string): operator is UnaryOperator {
function isBinaryOperator (line 64) | function isBinaryOperator(operator: string): operator is BinaryOperator {
function isSetOperator (line 70) | function isSetOperator(operator: string): operator is SetOperator {
FILE: packages/superset-ui-core/src/query/types/PostProcessing.ts
type NumpyFunction (line 23) | type NumpyFunction =
type PandasAxis (line 48) | enum PandasAxis {
type Aggregates (line 53) | interface Aggregates {
type PostProcessingAggregation (line 67) | interface PostProcessingAggregation {
type PostProcessingBoxplot (line 75) | interface PostProcessingBoxplot {
type PostProcessingContribution (line 85) | interface PostProcessingContribution {
type PostProcessingPivot (line 94) | interface PostProcessingPivot {
type PostProcessingProphet (line 105) | interface PostProcessingProphet {
type PostProcessingDiff (line 117) | interface PostProcessingDiff {
type PostProcessingRolling (line 126) | interface PostProcessingRolling {
type PostProcessingCum (line 137) | interface PostProcessingCum {
type PostProcessingCompare (line 146) | interface PostProcessingCompare {
type PostProcessingSort (line 156) | interface PostProcessingSort {
type PostProcessingResample (line 163) | interface PostProcessingResample {
type PostProcessingRule (line 177) | type PostProcessingRule =
function isPostProcessingAggregation (line 190) | function isPostProcessingAggregation(
function isPostProcessingBoxplot (line 196) | function isPostProcessingBoxplot(
function isPostProcessingContribution (line 202) | function isPostProcessingContribution(
function isPostProcessingPivot (line 208) | function isPostProcessingPivot(
function isPostProcessingProphet (line 214) | function isPostProcessingProphet(
function isPostProcessingDiff (line 220) | function isPostProcessingDiff(
function isPostProcessingRolling (line 226) | function isPostProcessingRolling(
function isPostProcessingCum (line 232) | function isPostProcessingCum(
function isPostProcessingCompare (line 238) | function isPostProcessingCompare(
function isPostProcessingSort (line 244) | function isPostProcessingSort(
function isPostProcessingResample (line 250) | function isPostProcessingResample(
FILE: packages/superset-ui-core/src/query/types/Query.ts
type QueryObjectFilterClause (line 30) | type QueryObjectFilterClause = {
type QueryObjectExtras (line 48) | type QueryObjectExtras = Partial<{
type ResidualQueryObjectData (line 62) | type ResidualQueryObjectData = {
type QueryObject (line 74) | interface QueryObject
type QueryContext (line 149) | interface QueryContext {
FILE: packages/superset-ui-core/src/query/types/QueryFormData.ts
type QueryFormMetric (line 41) | type QueryFormMetric = SavedMetric | AdhocMetric;
type QueryFormColumn (line 47) | type QueryFormColumn = PhysicalColumn | AdhocColumn;
type QueryFormOrderBy (line 53) | type QueryFormOrderBy = [QueryFormColumn | QueryFormMetric, boolean];
type FormDataResidual (line 55) | interface FormDataResidual {
type QueryMode (line 59) | enum QueryMode {
type QueryFields (line 67) | interface QueryFields {
type QueryField (line 76) | type QueryField = keyof QueryFields;
type QueryFieldAliases (line 85) | type QueryFieldAliases = {
type QueryFormExtraFilter (line 93) | type QueryFormExtraFilter = {
type ExtraFormDataAppend (line 107) | type ExtraFormDataAppend = {
type ExtraFormDataOverrideExtras (line 121) | type ExtraFormDataOverrideExtras = Pick<
type ExtraFormDataOverrideRegular (line 131) | type ExtraFormDataOverrideRegular = Partial<
type ExtraFormDataOverride (line 139) | type ExtraFormDataOverride = ExtraFormDataOverrideRegular &
type ExtraFormData (line 142) | type ExtraFormData = ExtraFormDataAppend & ExtraFormDataOverride;
type BaseFormData (line 147) | interface BaseFormData extends TimeRange, FormDataResidual {
type SqlaFormData (line 196) | interface SqlaFormData extends BaseFormData {
type DruidFormData (line 208) | interface DruidFormData extends BaseFormData {
type QueryFormData (line 214) | type QueryFormData = DruidFormData | SqlaFormData;
function isDruidFormData (line 220) | function isDruidFormData(
function isSavedMetric (line 226) | function isSavedMetric(metric: QueryFormMetric): metric is SavedMetric {
FILE: packages/superset-ui-core/src/query/types/QueryResponse.ts
type GenericDataType (line 26) | enum GenericDataType {
type DataRecordValue (line 36) | type DataRecordValue = number | string | boolean | Date | null;
type DataRecord (line 38) | interface DataRecord {
type ChartDataResponseResult (line 46) | interface ChartDataResponseResult {
type TimeseriesChartDataResponseResult (line 81) | interface TimeseriesChartDataResponseResult
type ChartDataResponse (line 89) | interface ChartDataResponse {
FILE: packages/superset-ui-core/src/query/types/Time.ts
type TimeRange (line 22) | type TimeRange = {
type TimeColumnConfigKey (line 29) | type TimeColumnConfigKey =
type AppliedTimeExtras (line 36) | type AppliedTimeExtras = Partial<
type TimeRangeEndpoint (line 40) | type TimeRangeEndpoint = 'unknown' | 'inclusive' | 'exclusive';
type TimeRangeEndpoints (line 41) | type TimeRangeEndpoints = [TimeRangeEndpoint, TimeRangeEndpoint];
FILE: packages/superset-ui-core/src/style/index.tsx
type Theme (line 34) | interface Theme extends SupersetTheme {}
function useTheme (line 37) | function useTheme() {
type SupersetTheme (line 164) | type SupersetTheme = typeof defaultTheme;
type SupersetThemeProps (line 166) | interface SupersetThemeProps {
FILE: packages/superset-ui-core/src/time-format/TimeFormats.ts
constant LOCAL_PREFIX (line 20) | const LOCAL_PREFIX = 'local!';
constant DATABASE_DATETIME (line 22) | const DATABASE_DATETIME = '%Y-%m-%d %H:%M:%S';
constant DATABASE_DATETIME_REVERSE (line 23) | const DATABASE_DATETIME_REVERSE = '%d-%m-%Y %H:%M:%S';
constant US_DATE (line 24) | const US_DATE = '%m/%d/%Y';
constant INTERNATIONAL_DATE (line 25) | const INTERNATIONAL_DATE = '%d/%m/%Y';
constant DATABASE_DATE (line 26) | const DATABASE_DATE = '%Y-%m-%d';
constant TIME (line 27) | const TIME = '%H:%M:%S';
FILE: packages/superset-ui-core/src/time-format/TimeFormatsForGranularity.ts
constant MINUTE (line 24) | const MINUTE = '%Y-%m-%d %H:%M';
FILE: packages/superset-ui-core/src/time-format/TimeFormatter.ts
constant PREVIEW_TIME (line 24) | const PREVIEW_TIME = new Date(Date.UTC(2017, 1, 14, 11, 22, 33));
type TimeFormatter (line 28) | interface TimeFormatter {
method constructor (line 43) | constructor(config: {
method format (line 67) | format(value: Date | number | null | undefined) {
method preview (line 71) | preview(value: Date = PREVIEW_TIME) {
class TimeFormatter (line 32) | class TimeFormatter extends ExtensibleFunction {
method constructor (line 43) | constructor(config: {
method format (line 67) | format(value: Date | number | null | undefined) {
method preview (line 71) | preview(value: Date = PREVIEW_TIME) {
FILE: packages/superset-ui-core/src/time-format/TimeFormatterRegistry.ts
class TimeFormatterRegistry (line 24) | class TimeFormatterRegistry extends RegistryWithDefaultKey<
method constructor (line 28) | constructor() {
method get (line 36) | get(format?: string) {
method format (line 56) | format(format: string | undefined, value: Date | null | undefined): st...
FILE: packages/superset-ui-core/src/time-format/TimeFormatterRegistrySingleton.ts
function getTimeRangeFormatter (line 32) | function getTimeRangeFormatter(formatId?: string) {
function formatTimeRange (line 44) | function formatTimeRange(
function getTimeFormatter (line 51) | function getTimeFormatter(
function getTimeFormatterForGranularity (line 81) | function getTimeFormatterForGranularity(granularity?: TimeGranularity) {
function formatTime (line 85) | function formatTime(
FILE: packages/superset-ui-core/src/time-format/TimeRangeFormatter.ts
type TimeRangeFormatter (line 24) | interface TimeRangeFormatter {
method constructor (line 39) | constructor(config: {
method format (line 63) | format(values: (Date | number | null | undefined)[]) {
class TimeRangeFormatter (line 28) | class TimeRangeFormatter extends ExtensibleFunction {
method constructor (line 39) | constructor(config: {
method format (line 63) | format(values: (Date | number | null | undefined)[]) {
FILE: packages/superset-ui-core/src/time-format/factories/createD3TimeFormatter.ts
function createD3TimeFormatter (line 29) | function createD3TimeFormatter(config: {
FILE: packages/superset-ui-core/src/time-format/factories/createMultiFormatter.ts
type FormatsByStep (line 24) | type FormatsByStep = Partial<{
function createMultiFormatter (line 35) | function createMultiFormatter({
FILE: packages/superset-ui-core/src/time-format/types.ts
type TimeFormatFunction (line 20) | type TimeFormatFunction = (value: Date) => string;
type TimeRangeFormatFunction (line 22) | type TimeRangeFormatFunction = (
type ValueOf (line 49) | type ValueOf<T> = T[keyof T];
type TimeGranularity (line 51) | type TimeGranularity = ValueOf<typeof TimeGranularity>;
FILE: packages/superset-ui-core/src/time-format/utils/createTime.ts
function createTime (line 20) | function createTime(
FILE: packages/superset-ui-core/src/time-format/utils/createTimeRangeFromGranularity.ts
constant MS_IN_SECOND (line 23) | const MS_IN_SECOND = 1000;
constant MS_IN_MINUTE (line 24) | const MS_IN_MINUTE = 60 * MS_IN_SECOND;
constant MS_IN_HOUR (line 25) | const MS_IN_HOUR = 60 * MS_IN_MINUTE;
function deductOneMs (line 27) | function deductOneMs(time: Date) {
function computeEndTimeFromGranularity (line 31) | function computeEndTimeFromGranularity(
function createTimeRangeFromGranularity (line 83) | function createTimeRangeFromGranularity(
FILE: packages/superset-ui-core/src/time-format/utils/d3Time.ts
function createUtils (line 52) | function createUtils(useLocalTime = false) {
FILE: packages/superset-ui-core/src/time-format/utils/stringifyTimeInput.ts
function stringifyTimeInput (line 20) | function stringifyTimeInput(
FILE: packages/superset-ui-core/src/translation/Translator.ts
constant DEFAULT_LANGUAGE_PACK (line 30) | const DEFAULT_LANGUAGE_PACK: LanguagePack = {
class Translator (line 43) | class Translator {
method constructor (line 48) | constructor(config: TranslatorConfig = {}) {
method addTranslation (line 57) | addTranslation(key: string, texts: ReadonlyArray<string>) {
method addTranslations (line 68) | addTranslations(translations: Translations) {
method addLocaleData (line 78) | addLocaleData(data: LocaleData) {
method translate (line 88) | translate(input: string, ...args: unknown[]): string {
method translateWithNumber (line 92) | translateWithNumber(key: string, ...args: unknown[]): string {
FILE: packages/superset-ui-core/src/translation/TranslatorSingleton.ts
function configure (line 28) | function configure(config?: TranslatorConfig) {
function getInstance (line 35) | function getInstance() {
function addTranslation (line 47) | function addTranslation(key: string, translations: string[]) {
function addTranslations (line 51) | function addTranslations(translations: Translations) {
function addLocaleData (line 55) | function addLocaleData(data: LocaleData) {
function t (line 59) | function t(input: string, ...args: unknown[]) {
function tn (line 63) | function tn(key: string, ...args: unknown[]) {
FILE: packages/superset-ui-core/src/translation/types/index.ts
type Locale (line 27) | type Locale =
type LanguagePack (line 43) | type LanguagePack = JedOptions & {
type Jed (line 57) | interface Jed extends BaseJed {
type TranslatorConfig (line 64) | interface TranslatorConfig {
type LocaleData (line 71) | type LocaleData = Partial<Record<Locale, Translations>>;
FILE: packages/superset-ui-core/src/translation/types/jed.ts
type Translations (line 23) | type Translations = {
type DomainConfig (line 27) | interface DomainConfig {
type DomainData (line 34) | type DomainData = { '': DomainConfig } & {
type JedOptions (line 38) | interface JedOptions {
type Jed (line 46) | interface Jed {
FILE: packages/superset-ui-core/src/types/index.ts
type Maybe (line 21) | type Maybe<T> = T | null;
FILE: packages/superset-ui-core/src/utils/convertKeysToCamelCase.ts
function convertKeysToCamelCase (line 24) | function convertKeysToCamelCase<T>(object: T) {
FILE: packages/superset-ui-core/src/utils/ensureIsArray.ts
function ensureIsArray (line 24) | function ensureIsArray<T>(value?: T[] | T | null): T[] {
FILE: packages/superset-ui-core/src/utils/ensureIsInt.ts
function ensureIsInt (line 20) | function ensureIsInt<T>(
FILE: packages/superset-ui-core/src/utils/featureFlags.ts
type FeatureFlag (line 21) | enum FeatureFlag {
type ScheduleQueriesProps (line 55) | type ScheduleQueriesProps = {
type FeatureFlagMap (line 66) | type FeatureFlagMap = {
type Window (line 74) | interface Window {
function isFeatureEnabled (line 79) | function isFeatureEnabled(feature: FeatureFlag) {
FILE: packages/superset-ui-core/src/utils/isDefined.ts
function isDefined (line 20) | function isDefined(x: unknown) {
FILE: packages/superset-ui-core/src/utils/isRequired.ts
function isRequired (line 20) | function isRequired(field: string): never {
FILE: packages/superset-ui-core/src/utils/makeSingleton.ts
type ClassInterface (line 20) | interface ClassInterface<T, Args extends unknown[]> {
function makeSingleton (line 24) | function makeSingleton<T, Args extends unknown[]>(
FILE: packages/superset-ui-core/src/utils/promiseTimeout.ts
function promiseTimeout (line 21) | function promiseTimeout<T>(
FILE: packages/superset-ui-core/src/utils/random.ts
function seed (line 23) | function seed(seed: string) {
function seedRandom (line 28) | function seedRandom() {
FILE: packages/superset-ui-core/src/utils/removeDuplicates.ts
function removeDuplicates (line 22) | function removeDuplicates<T>(
FILE: packages/superset-ui-core/src/validator/legacyValidateInteger.ts
function legacyValidateInteger (line 26) | function legacyValidateInteger(v: unknown) {
FILE: packages/superset-ui-core/src/validator/legacyValidateNumber.ts
function numeric (line 26) | function numeric(v: unknown) {
FILE: packages/superset-ui-core/src/validator/validateInteger.ts
function validateInteger (line 22) | function validateInteger(v: unknown) {
FILE: packages/superset-ui-core/src/validator/validateNonEmpty.ts
function validateNonEmpty (line 22) | function validateNonEmpty(v: unknown) {
FILE: packages/superset-ui-core/src/validator/validateNumber.ts
function validateInteger (line 22) | function validateInteger(v: unknown) {
FILE: packages/superset-ui-core/test/__mocks__/resize-observer-polyfill.ts
type ResizeObserverEntry (line 20) | interface ResizeObserverEntry {
type ObserveCallback (line 26) | type ObserveCallback = (entries: ResizeObserverEntry[]) => void;
function ResizeObserver (line 30) | function ResizeObserver(callback: ObserveCallback) {
constant DEFAULT_OUTPUT (line 43) | const DEFAULT_OUTPUT: ResizeObserverEntry[] = [
function triggerResizeObserver (line 47) | function triggerResizeObserver(entries = DEFAULT_OUTPUT) {
FILE: packages/superset-ui-core/test/chart/components/ChartDataProvider.test.tsx
type MockLoadFormData (line 33) | type MockLoadFormData =
function createPromise (line 39) | function createPromise<T>(input: T) {
function createArrayPromise (line 43) | function createArrayPromise<T>(input: T) {
function setup (line 78) | function setup(overrideProps?: Partial<Props>) {
FILE: packages/superset-ui-core/test/chart/components/MockChartPlugins.tsx
constant DIMENSION_STYLE (line 25) | const DIMENSION_STYLE = {
class DiligentChartPlugin (line 76) | class DiligentChartPlugin extends ChartPlugin<QueryFormData> {
method constructor (line 77) | constructor() {
function identity (line 89) | function identity<T>(x: T) {
class LazyChartPlugin (line 93) | class LazyChartPlugin extends ChartPlugin<QueryFormData> {
method constructor (line 94) | constructor() {
class SlowChartPlugin (line 108) | class SlowChartPlugin extends ChartPlugin<QueryFormData> {
method constructor (line 109) | constructor() {
class BuggyChartPlugin (line 126) | class BuggyChartPlugin extends ChartPlugin<QueryFormData> {
method constructor (line 127) | constructor() {
FILE: packages/superset-ui-core/test/chart/components/SuperChart.test.tsx
constant DEFAULT_QUERY_DATA (line 39) | const DEFAULT_QUERY_DATA = { data: ['foo', 'bar'] };
constant DEFAULT_QUERIES_DATA (line 40) | const DEFAULT_QUERIES_DATA = [
function expectDimension (line 45) | function expectDimension(
function onError (line 86) | function onError(e: Event) {
function MyWrapper (line 366) | function MyWrapper({ width, height, children }: WrapperProps) {
FILE: packages/superset-ui-core/test/chart/components/createLoadableRenderer.test.tsx
function TestComponent (line 28) | function TestComponent() {
FILE: packages/superset-ui-core/test/chart/components/reactify.test.tsx
class TestComponent (line 55) | class TestComponent extends React.PureComponent<{}, { content: string }> {
method constructor (line 56) | constructor(props = {}) {
method componentDidMount (line 61) | componentDidMount() {
method render (line 67) | render() {
class AnotherTestComponent (line 74) | class AnotherTestComponent extends React.PureComponent<{}, {}> {
method render (line 75) | render() {
FILE: packages/superset-ui-core/test/chart/fixtures/constants.ts
constant LOGIN_GLOB (line 20) | const LOGIN_GLOB = 'glob:*api/v1/security/csrf_token/*';
FILE: packages/superset-ui-core/test/chart/models/ChartProps.test.ts
constant RAW_FORM_DATA (line 22) | const RAW_FORM_DATA = {
constant RAW_DATASOURCE (line 26) | const RAW_DATASOURCE = {
constant QUERY_DATA (line 30) | const QUERY_DATA = { data: {} };
constant QUERIES_DATA (line 31) | const QUERIES_DATA = [QUERY_DATA];
constant BEHAVIORS (line 32) | const BEHAVIORS = [Behavior.NATIVE_FILTER, Behavior.INTERACTIVE_CHART];
FILE: packages/superset-ui-core/test/connection/fixtures/constants.ts
constant LOGIN_GLOB (line 19) | const LOGIN_GLOB = 'glob:*api/v1/security/csrf_token/*';
FILE: packages/superset-ui-core/test/dimension/getBBoxDummyFill.ts
constant SAMPLE_TEXT (line 28) | const SAMPLE_TEXT = Object.keys(textToWidth);
function addDummyFill (line 30) | function addDummyFill() {
function removeDummyFill (line 80) | function removeDummyFill() {
FILE: packages/superset-ui-core/test/fixtures.ts
constant NUM_METRIC (line 21) | const NUM_METRIC: AdhocMetric = {
FILE: packages/superset-ui-core/test/models/ExtensibleFunction.test.ts
type Func1 (line 23) | interface Func1 {
method constructor (line 28) | constructor(x: unknown) {
class Func1 (line 27) | class Func1 extends ExtensibleFunction {
method constructor (line 28) | constructor(x: unknown) {
type Func2 (line 33) | interface Func2 {
method constructor (line 40) | constructor(x: unknown) {
method hi (line 46) | hi() {
class Func2 (line 37) | class Func2 extends ExtensibleFunction {
method constructor (line 40) | constructor(x: unknown) {
method hi (line 46) | hi() {
class Func3 (line 51) | class Func3 extends ExtensibleFunction {
method constructor (line 54) | constructor(x: unknown) {
FILE: packages/superset-ui-core/test/models/Preset.test.ts
class Plugin1 (line 37) | class Plugin1 extends Plugin {
method register (line 38) | register() {
class Plugin2 (line 44) | class Plugin2 extends Plugin {
method register (line 45) | register() {
class Plugin3 (line 51) | class Plugin3 extends Plugin {
method register (line 52) | register() {
class Plugin4 (line 58) | class Plugin4 extends Plugin {
method register (line 59) | register() {
FILE: packages/superset-ui-core/test/query/api/setupClientForTest.ts
constant LOGIN_GLOB (line 22) | const LOGIN_GLOB = 'glob:*api/v1/security/csrf_token/*';
function setupClientForTest (line 24) | function setupClientForTest() {
FILE: packages/superset-ui-core/test/query/api/v1/handleError.test.ts
function testHandleError (line 29) | async function testHandleError(
FILE: packages/superset-ui-core/test/query/types/PostProcessing.test.ts
constant AGGREGATES_OPTION (line 47) | const AGGREGATES_OPTION: Aggregates = {
constant AGGREGATE_RULE (line 55) | const AGGREGATE_RULE: PostProcessingAggregation = {
constant BOXPLOT_RULE (line 63) | const BOXPLOT_RULE: PostProcessingBoxplot = {
constant COMPARE_RULE (line 72) | const COMPARE_RULE: PostProcessingCompare = {
constant CONTRIBUTION_RULE (line 82) | const CONTRIBUTION_RULE: PostProcessingContribution = {
constant CUM_RULE (line 90) | const CUM_RULE: PostProcessingCum = {
constant DIFF_RULE (line 99) | const DIFF_RULE: PostProcessingDiff = {
constant PIVOT_RULE (line 108) | const PIVOT_RULE: PostProcessingPivot = {
constant PROPHET_RULE (line 119) | const PROPHET_RULE: PostProcessingProphet = {
constant RESAMPLE_RULE (line 131) | const RESAMPLE_RULE: PostProcessingResample = {
constant ROLLING_RULE (line 141) | const ROLLING_RULE: PostProcessingRolling = {
constant SORT_RULE (line 152) | const SORT_RULE: PostProcessingSort = {
FILE: packages/superset-ui-core/test/style/index.test.tsx
function ThemeUser (line 50) | function ThemeUser() {
function ThemeUser (line 64) | function ThemeUser() {
FILE: packages/superset-ui-core/test/time-format/utils/createTimeRangeFromGranularity.test.ts
function testUTC (line 33) | function testUTC(
function testLocal (line 50) | function testLocal(
FILE: packages/superset-ui-core/test/utils/makeSingleton.test.ts
class Dog (line 23) | class Dog {
method constructor (line 28) | constructor(name?: string) {
method sit (line 32) | sit() {
FILE: packages/superset-ui-demo/.storybook/main.js
constant PLUGIN_PACKAGES_PATH_REGEXP (line 14) | const PLUGIN_PACKAGES_PATH_REGEXP = new RegExp(
FILE: packages/superset-ui-demo/storybook/shared/components/ErrorMessage.tsx
type Props (line 22) | type Props = {
function ErrorMessage (line 26) | function ErrorMessage({ error }: Props) {
FILE: packages/superset-ui-demo/storybook/shared/components/Expandable.tsx
type Props (line 22) | type Props = {
type State (line 27) | type State = {
class Expandable (line 31) | class Expandable extends React.Component<Props, State> {
method constructor (line 32) | constructor(props: Props) {
method handleToggle (line 38) | handleToggle() {
method render (line 42) | render() {
FILE: packages/superset-ui-demo/storybook/shared/components/ResizableChartDemo.tsx
function ResizableChartDemo (line 35) | function ResizableChartDemo({
FILE: packages/superset-ui-demo/storybook/shared/components/ResizablePanel.tsx
type Size (line 29) | type Size = ResizeCallbackData['size'];
function ResizablePanel (line 31) | function ResizablePanel({
FILE: packages/superset-ui-demo/storybook/shared/components/VerifyCORS.tsx
type Props (line 29) | type Props = {
type State (line 37) | type State = {
class VerifyCORS (line 55) | class VerifyCORS extends React.Component<Props, State> {
method constructor (line 56) | constructor(props: Props) {
method componentDidUpdate (line 62) | componentDidUpdate(prevProps: Props) {
method handleVerify (line 76) | handleVerify() {
method render (line 101) | render() {
FILE: packages/superset-ui-demo/storybook/shared/components/createQueryStory.tsx
function createQueryStory (line 30) | function createQueryStory({
FILE: packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-country-map/CountryMapStories.tsx
function generateData (line 39) | function generateData(geojson: JsonObject) {
FILE: packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-big-number/BigNumber/BigNumberStories.tsx
constant TIME_COLUMN (line 26) | const TIME_COLUMN = '__timestamp';
function withNulls (line 49) | function withNulls(origData: object[], nullPosition = 3) {
FILE: packages/superset-ui-demo/storybook/stories/plugins/legacy-preset-chart-nvd3/DistBar/stories/manyBars.tsx
constant LONG_LABEL (line 31) | const LONG_LABEL =
FILE: packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-table/TableStories.tsx
function expandArray (line 37) | function expandArray<T>(input: T[], targetSize: number) {
function loadData (line 60) | function loadData(
FILE: packages/superset-ui-demo/storybook/stories/plugins/preset-chart-xy/BoxPlot/constants.ts
constant BOX_PLOT_PLUGIN_TYPE (line 20) | const BOX_PLOT_PLUGIN_TYPE = 'v2-box-plot';
constant BOX_PLOT_PLUGIN_LEGACY_TYPE (line 21) | const BOX_PLOT_PLUGIN_LEGACY_TYPE = 'v2-box-plot/legacy';
FILE: packages/superset-ui-demo/storybook/stories/plugins/preset-chart-xy/Line/constants.ts
constant LINE_PLUGIN_TYPE (line 20) | const LINE_PLUGIN_TYPE = 'v2-line';
constant LINE_PLUGIN_LEGACY_TYPE (line 21) | const LINE_PLUGIN_LEGACY_TYPE = 'v2-line/legacy';
FILE: packages/superset-ui-demo/storybook/stories/plugins/preset-chart-xy/Line/stories/flush.tsx
constant MIN_TIME (line 27) | const MIN_TIME = new Date(Date.UTC(1980, 0, 1)).getTime();
constant MAX_TIME (line 28) | const MAX_TIME = new Date(Date.UTC(2000, 1, 1)).getTime();
FILE: packages/superset-ui-demo/storybook/stories/plugins/preset-chart-xy/ScatterPlot/constants.ts
constant SCATTER_PLOT_PLUGIN_TYPE (line 20) | const SCATTER_PLOT_PLUGIN_TYPE = 'v2-scatter-plot';
constant SCATTER_PLOT_PLUGIN_LEGACY_TYPE (line 21) | const SCATTER_PLOT_PLUGIN_LEGACY_TYPE = 'v2-scatter-plot/legacy';
FILE: packages/superset-ui-demo/storybook/stories/superset-ui-chart/ChartDataProviderStories.tsx
constant BIG_NUMBER (line 43) | const BIG_NUMBER = bigNumberFormData.viz_type;
constant SANKEY (line 44) | const SANKEY = sankeyFormData.viz_type;
constant SUNBURST (line 45) | const SUNBURST = sunburstFormData.viz_type;
constant WORD_CLOUD_LEGACY (line 46) | const WORD_CLOUD_LEGACY = wordCloudFormData.viz_type;
constant WORD_CLOUD (line 47) | const WORD_CLOUD = 'new_word_cloud';
constant VIS_TYPES (line 57) | const VIS_TYPES = [BIG_NUMBER, SANKEY, SUNBURST, WORD_CLOUD, WORD_CLOUD_...
constant FORM_DATA_LOOKUP (line 58) | const FORM_DATA_LOOKUP = {
FILE: packages/superset-ui-demo/storybook/stories/superset-ui-chart/SuperChartStories.tsx
constant DEFAULT_QUERY_DATA (line 33) | const DEFAULT_QUERY_DATA = { data: ['foo', 'bar'] };
FILE: packages/superset-ui-demo/storybook/stories/superset-ui-color/RenderPalettes.jsx
function RenderPalettes (line 24) | function RenderPalettes({ title, palettes }) {
FILE: packages/superset-ui-demo/storybook/stories/superset-ui-connection/ConnectionStories.tsx
constant REQUEST_METHODS (line 29) | const REQUEST_METHODS = ['GET', 'POST'];
constant ENDPOINTS (line 30) | const ENDPOINTS = {
FILE: packages/superset-ui-demo/storybook/stories/superset-ui-number-format/BigNumberStories.jsx
class NumberFormatValidator (line 27) | class NumberFormatValidator extends React.PureComponent {
method constructor (line 28) | constructor(props) {
method handleFormatChange (line 58) | handleFormatChange(event) {
method render (line 64) | render() {
FILE: packages/superset-ui-demo/storybook/stories/superset-ui-time-format/TimeFormatStories.jsx
class TimeFormatValidator (line 27) | class TimeFormatValidator extends React.PureComponent {
method constructor (line 28) | constructor(props) {
method handleFormatChange (line 47) | handleFormatChange(event) {
method render (line 53) | render() {
FILE: plugins/legacy-plugin-chart-calendar/src/Calendar.js
function convertUTC (line 30) | function convertUTC(dttm) {
function Calendar (line 73) | function Calendar(element, props) {
FILE: plugins/legacy-plugin-chart-calendar/src/index.js
class CalendarChartPlugin (line 43) | class CalendarChartPlugin extends ChartPlugin {
method constructor (line 44) | constructor() {
FILE: plugins/legacy-plugin-chart-calendar/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-calendar/src/vendor/cal-heatmap.js
function _initCalendar (line 770) | function _initCalendar() {
function w (line 848) | function w(d, outer) {
function h (line 865) | function h(d, outer) {
function getDomainPosition (line 960) | function getDomainPosition(domainIndex, graphDim, axis, domainDim) {
function domainRotate (line 1153) | function domainRotate(selection) {
function validateSelector (line 1397) | function validateSelector(selector, canBeFalse, name) {
function getOptimalSubDomain (line 1415) | function getOptimalSubDomain(domain) {
function validateDomainType (line 1436) | function validateDomainType() {
function autoAlignLabel (line 1475) | function autoAlignLabel() {
function autoAddLegendMargin (line 1522) | function autoAddLegendMargin() {
function expandMarginSetting (line 1544) | function expandMarginSetting(value) {
function expandItemName (line 1574) | function expandItemName(value) {
function parseColLimit (line 1592) | function parseColLimit(value) {
function parseRowLimit (line 1596) | function parseRowLimit(value) {
function addStyle (line 1663) | function addStyle(element) {
function formatSubDomainText (line 1756) | function formatSubDomainText(element) {
function buildSubDomain (line 2079) | function buildSubDomain(d) {
function normalizedMillis (line 2355) | function normalizedMillis(date, subdomain) {
function legendCellLayout (line 3771) | function legendCellLayout(selection) {
function getLegendXPosition (line 3834) | function getLegendXPosition() {
function getLegendYPosition (line 3852) | function getLegendYPosition() {
function mergeRecursive (line 3989) | function mergeRecursive(obj1, obj2) {
function arrayEquals (line 4017) | function arrayEquals(arrayA, arrayB) {
FILE: plugins/legacy-plugin-chart-chord/src/Chord.js
function Chord (line 38) | function Chord(element, props) {
FILE: plugins/legacy-plugin-chart-chord/src/index.js
class ChordChartPlugin (line 46) | class ChordChartPlugin extends ChartPlugin {
method constructor (line 47) | constructor() {
FILE: plugins/legacy-plugin-chart-chord/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-country-map/src/CountryMap.js
function CountryMap (line 47) | function CountryMap(element, props) {
FILE: plugins/legacy-plugin-chart-country-map/src/index.js
class CountryMapChartPlugin (line 43) | class CountryMapChartPlugin extends ChartPlugin {
method constructor (line 44) | constructor() {
FILE: plugins/legacy-plugin-chart-country-map/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-event-flow/src/EventFlow.tsx
type EventFlowProps (line 23) | interface EventFlowProps {
function EventFlow (line 30) | function EventFlow({
FILE: plugins/legacy-plugin-chart-event-flow/src/index.ts
class EventFlowChartPlugin (line 35) | class EventFlowChartPlugin extends ChartPlugin {
method constructor (line 36) | constructor() {
FILE: plugins/legacy-plugin-chart-event-flow/src/transformProps.ts
type EventFlowFormData (line 22) | interface EventFlowFormData {
type EventFlowChartProps (line 28) | interface EventFlowChartProps extends ChartProps {
function transformProps (line 35) | function transformProps(chartProps: ChartProps) {
FILE: plugins/legacy-plugin-chart-force-directed/src/ForceDirected.js
function ForceDirected (line 38) | function ForceDirected(element, props) {
FILE: plugins/legacy-plugin-chart-force-directed/src/index.js
class ForceDirectedChartPlugin (line 32) | class ForceDirectedChartPlugin extends ChartPlugin {
method constructor (line 33) | constructor() {
FILE: plugins/legacy-plugin-chart-force-directed/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-heatmap/src/Heatmap.js
function cmp (line 66) | function cmp(a, b) {
constant DEFAULT_PROPERTIES (line 70) | const DEFAULT_PROPERTIES = {
function Heatmap (line 81) | function Heatmap(element, props) {
FILE: plugins/legacy-plugin-chart-heatmap/src/index.js
class HeatmapChartPlugin (line 51) | class HeatmapChartPlugin extends ChartPlugin {
method constructor (line 52) | constructor() {
FILE: plugins/legacy-plugin-chart-heatmap/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-histogram/src/Histogram.jsx
class CustomHistogram (line 59) | class CustomHistogram extends React.PureComponent {
method render (line 60) | render() {
FILE: plugins/legacy-plugin-chart-histogram/src/WithLegend.jsx
constant LEGEND_STYLE_BASE (line 41) | const LEGEND_STYLE_BASE = {
constant CHART_STYLE_BASE (line 50) | const CHART_STYLE_BASE = {
class WithLegend (line 57) | class WithLegend extends React.Component {
method getContainerDirection (line 58) | getContainerDirection() {
method getLegendJustifyContent (line 73) | getLegendJustifyContent() {
method render (line 91) | render() {
FILE: plugins/legacy-plugin-chart-histogram/src/index.js
class HistogramChartPlugin (line 43) | class HistogramChartPlugin extends ChartPlugin {
method constructor (line 44) | constructor() {
FILE: plugins/legacy-plugin-chart-histogram/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-horizon/src/HorizonChart.jsx
class HorizonChart (line 61) | class HorizonChart extends React.PureComponent {
method render (line 62) | render() {
FILE: plugins/legacy-plugin-chart-horizon/src/HorizonRow.jsx
constant DEFAULT_COLORS (line 27) | const DEFAULT_COLORS = [
class HorizonRow (line 69) | class HorizonRow extends React.PureComponent {
method componentDidMount (line 70) | componentDidMount() {
method componentDidUpdate (line 74) | componentDidUpdate() {
method componentWillUnmount (line 78) | componentWillUnmount() {
method drawChart (line 82) | drawChart() {
method render (line 190) | render() {
FILE: plugins/legacy-plugin-chart-horizon/src/index.js
class HorizonChartPlugin (line 38) | class HorizonChartPlugin extends ChartPlugin {
method constructor (line 39) | constructor() {
FILE: plugins/legacy-plugin-chart-horizon/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-map-box/src/MapBox.jsx
constant DEFAULT_MAX_ZOOM (line 29) | const DEFAULT_MAX_ZOOM = 16;
constant DEFAULT_POINT_RADIUS (line 30) | const DEFAULT_POINT_RADIUS = 60;
class MapBox (line 58) | class MapBox extends React.Component {
method constructor (line 59) | constructor(props) {
method handleViewportChange (line 82) | handleViewportChange(viewport) {
method render (line 88) | render() {
FILE: plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.jsx
class ScatterPlotGlowOverlay (line 76) | class ScatterPlotGlowOverlay extends React.PureComponent {
method constructor (line 77) | constructor(props) {
method drawText (line 82) | drawText(ctx, pixel, options = {}) {
method redraw (line 119) | redraw({ width, height, ctx, isDragging, project }) {
method render (line 272) | render() {
FILE: plugins/legacy-plugin-chart-map-box/src/index.js
class MapBoxChartPlugin (line 46) | class MapBoxChartPlugin extends ChartPlugin {
method constructor (line 47) | constructor() {
FILE: plugins/legacy-plugin-chart-map-box/src/transformProps.js
function transformProps (line 24) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-map-box/src/utils/geo.js
constant EARTH_CIRCUMFERENCE_KM (line 22) | const EARTH_CIRCUMFERENCE_KM = 40075.16;
constant MILES_PER_KM (line 23) | const MILES_PER_KM = 1.60934;
function kmToPixels (line 25) | function kmToPixels(kilometers, latitude, zoomLevel) {
FILE: plugins/legacy-plugin-chart-map-box/src/utils/luminanceFromRGB.js
constant LUMINANCE_RED_WEIGHT (line 20) | const LUMINANCE_RED_WEIGHT = 0.2126;
constant LUMINANCE_GREEN_WEIGHT (line 21) | const LUMINANCE_GREEN_WEIGHT = 0.7152;
constant LUMINANCE_BLUE_WEIGHT (line 22) | const LUMINANCE_BLUE_WEIGHT = 0.0722;
function luminanceFromRGB (line 24) | function luminanceFromRGB(r, g, b) {
FILE: plugins/legacy-plugin-chart-map-box/src/utils/roundDecimal.js
function roundDecimal (line 20) | function roundDecimal(number, precision) {
FILE: plugins/legacy-plugin-chart-paired-t-test/src/PairedTTest.jsx
class PairedTTest (line 42) | class PairedTTest extends React.PureComponent {
method render (line 43) | render() {
FILE: plugins/legacy-plugin-chart-paired-t-test/src/TTestTable.jsx
class TTestTable (line 52) | class TTestTable extends React.Component {
method constructor (line 53) | constructor(props) {
method componentDidMount (line 62) | componentDidMount() {
method getLiftStatus (line 67) | getLiftStatus(row) {
method getPValueStatus (line 81) | getPValueStatus(row) {
method getSignificance (line 94) | getSignificance(row) {
method computeLift (line 106) | computeLift(values, control) {
method computePValue (line 119) | computePValue(values, control) {
method computeTTest (line 150) | computeTTest(control) {
method render (line 171) | render() {
FILE: plugins/legacy-plugin-chart-paired-t-test/src/index.js
class PairedTTestChartPlugin (line 35) | class PairedTTestChartPlugin extends ChartPlugin {
method constructor (line 36) | constructor() {
FILE: plugins/legacy-plugin-chart-paired-t-test/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-parallel-coordinates/src/ParallelCoordinates.js
function ParallelCoordinates (line 41) | function ParallelCoordinates(element, props) {
FILE: plugins/legacy-plugin-chart-parallel-coordinates/src/index.js
class ParallelCoordinatesChartPlugin (line 36) | class ParallelCoordinatesChartPlugin extends ChartPlugin {
method constructor (line 37) | constructor() {
FILE: plugins/legacy-plugin-chart-parallel-coordinates/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-parallel-coordinates/src/vendor/parcoords/d3.parcoords.js
function getset (line 156) | function getset(obj, state, events) {
function extend (line 171) | function extend(target, source) {
function without (line 178) | function without(arr, item) {
function getRange (line 184) | function getRange() {
function isBrushed (line 395) | function isBrushed() {
function compute_cluster_centroids (line 453) | function compute_cluster_centroids(d) {
function compute_centroids (line 485) | function compute_centroids(row) {
function compute_control_points (line 518) | function compute_control_points(centroids) {
function single_curve (line 578) | function single_curve(d, ctx) {
function color_path (line 601) | function color_path(d, ctx) {
function paths (line 615) | function paths(data, ctx) {
function getNullPosition (line 632) | function getNullPosition() {
function single_path (line 645) | function single_path(d, ctx) {
function path_brushed (line 661) | function path_brushed(d, i) {
function path_foreground (line 670) | function path_foreground(d, i) {
function path_highlight (line 675) | function path_highlight(d, i) {
function flipAxisAndUpdatePCP (line 706) | function flipAxisAndUpdatePCP(dimension) {
function rotateLabels (line 719) | function rotateLabels() {
function dimensionLabels (line 734) | function dimensionLabels(d) {
function brushUpdated (line 1032) | function brushUpdated(newSelection) {
function brushPredicate (line 1038) | function brushPredicate(predicate) {
function is_brushed (line 1096) | function is_brushed(p) {
function selected (line 1101) | function selected() {
function brushExtents (line 1167) | function brushExtents(extents) {
function brushFor (line 1209) | function brushFor(axis) {
function brushReset (line 1229) | function brushReset(dimension) {
function install (line 1240) | function install() {
function drawStrum (line 1278) | function drawStrum(strum, activePoint) {
function dimensionsForPoint (line 1347) | function dimensionsForPoint(p) {
function onDragStart (line 1375) | function onDragStart() {
function onDrag (line 1407) | function onDrag() {
function containmentTest (line 1425) | function containmentTest(strum, width) {
function selected (line 1448) | function selected() {
function removeStrum (line 1488) | function removeStrum() {
function onDragEnd (line 1498) | function onDragEnd() {
function brushReset (line 1521) | function brushReset(strums) {
function install (line 1535) | function install() {
function is_brushed (line 1644) | function is_brushed(p) {
function selected (line 1649) | function selected() {
function brushExtents (line 1706) | function brushExtents() {
function brushFor (line 1718) | function brushFor(axis) {
function brushReset (line 1750) | function brushReset(dimension) {
function install (line 1761) | function install() {
function drawStrum (line 1799) | function drawStrum(arc, activePoint) {
function dimensionsForPoint (line 1904) | function dimensionsForPoint(p) {
function onDragStart (line 1932) | function onDragStart() {
function onDrag (line 1968) | function onDrag() {
function hypothenuse (line 1988) | function hypothenuse(a, b) {
function containmentTest (line 2025) | function containmentTest(arc) {
function selected (line 2045) | function selected() {
function removeStrum (line 2088) | function removeStrum() {
function onDragEnd (line 2099) | function onDragEnd() {
function brushReset (line 2129) | function brushReset(arcs) {
function install (line 2143) | function install() {
function position (line 2381) | function position(d) {
function doFrame (line 2422) | function doFrame() {
FILE: plugins/legacy-plugin-chart-partition/src/OptionDescription.tsx
function OptionDescription (line 34) | function OptionDescription({ option }: { option: ColumnMeta }) {
FILE: plugins/legacy-plugin-chart-partition/src/Partition.js
function init (line 33) | function init(root) {
function getAncestors (line 93) | function getAncestors(d) {
function Icicle (line 106) | function Icicle(element, props) {
FILE: plugins/legacy-plugin-chart-partition/src/index.js
class PartitionChartPlugin (line 33) | class PartitionChartPlugin extends ChartPlugin {
method constructor (line 34) | constructor() {
FILE: plugins/legacy-plugin-chart-partition/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-pivot-table/src/PivotTable.js
function PivotTable (line 58) | function PivotTable(element, props) {
FILE: plugins/legacy-plugin-chart-pivot-table/src/index.js
class PivotTableChartPlugin (line 36) | class PivotTableChartPlugin extends ChartPlugin {
method constructor (line 37) | constructor() {
FILE: plugins/legacy-plugin-chart-pivot-table/src/transformProps.js
function transformProps (line 21) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-pivot-table/src/utils/fixTableHeight.js
function fixTableHeight (line 23) | function fixTableHeight($tableDom, height) {
FILE: plugins/legacy-plugin-chart-pivot-table/src/utils/formatCells.ts
function formatCellValue (line 21) | function formatCellValue(
function formatDateCellValue (line 54) | function formatDateCellValue(
FILE: plugins/legacy-plugin-chart-rose/src/Rose.js
function copyArc (line 52) | function copyArc(d) {
function sortValues (line 61) | function sortValues(a, b) {
function Rose (line 69) | function Rose(element, props) {
FILE: plugins/legacy-plugin-chart-rose/src/index.js
class RoseChartPlugin (line 43) | class RoseChartPlugin extends ChartPlugin {
method constructor (line 44) | constructor() {
FILE: plugins/legacy-plugin-chart-rose/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-sankey-loop/src/SankeyLoop.js
function computeGraph (line 68) | function computeGraph(links) {
function SankeyLoop (line 86) | function SankeyLoop(element, props) {
FILE: plugins/legacy-plugin-chart-sankey-loop/src/index.js
class SankeyChartPlugin (line 32) | class SankeyChartPlugin extends ChartPlugin {
method constructor (line 33) | constructor() {
FILE: plugins/legacy-plugin-chart-sankey-loop/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-sankey/src/Sankey.js
function Sankey (line 46) | function Sankey(element, props) {
FILE: plugins/legacy-plugin-chart-sankey/src/index.js
class SankeyChartPlugin (line 49) | class SankeyChartPlugin extends ChartPlugin {
method constructor (line 50) | constructor() {
FILE: plugins/legacy-plugin-chart-sankey/src/transformProps.js
function transformProps (line 21) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-sankey/src/utils.ts
type Rect (line 19) | type Rect = {
function getLabelFontSize (line 26) | function getLabelFontSize(width: number): number {
FILE: plugins/legacy-plugin-chart-sunburst/src/Sunburst.js
function metricLabel (line 48) | function metricLabel(metric) {
function getAncestors (line 56) | function getAncestors(node) {
function buildHierarchy (line 67) | function buildHierarchy(rows) {
function getResponsiveContainerClass (line 138) | function getResponsiveContainerClass(width) {
function getYOffset (line 150) | function getYOffset(width) {
function Sunburst (line 163) | function Sunburst(element, props) {
FILE: plugins/legacy-plugin-chart-sunburst/src/index.js
class SunburstChartPlugin (line 38) | class SunburstChartPlugin extends ChartPlugin {
method constructor (line 39) | constructor() {
FILE: plugins/legacy-plugin-chart-sunburst/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-sunburst/src/utils/wrapSvgText.js
function wrapSvgText (line 29) | function wrapSvgText(text, width, adjustedY) {
FILE: plugins/legacy-plugin-chart-time-table/src/FormattedNumber.tsx
type Props (line 22) | interface Props {
function FormattedNumber (line 27) | function FormattedNumber({ num = 0, format = '' }: Props) {
FILE: plugins/legacy-plugin-chart-time-table/src/SparklineCell.tsx
type Props (line 31) | interface Props {
type TooltipProps (line 43) | interface TooltipProps {
type Yscale (line 51) | interface Yscale {
constant MARGIN (line 56) | const MARGIN = {
function getSparklineTextWidth (line 69) | function getSparklineTextWidth(text: string) {
function isValidBoundValue (line 82) | function isValidBoundValue(value?: number | string) {
class SparklineCell (line 91) | class SparklineCell extends React.Component<Props, {}> {
method renderHorizontalReferenceLine (line 92) | renderHorizontalReferenceLine(value?: number, label?: string) {
method render (line 105) | render() {
FILE: plugins/legacy-plugin-chart-time-table/src/TimeTable.tsx
constant ACCESSIBLE_COLOR_BOUNDS (line 33) | const ACCESSIBLE_COLOR_BOUNDS = ['#ca0020', '#0571b0'];
type ColorFromBoundProps (line 34) | interface ColorFromBoundProps {
function colorFromBounds (line 39) | function colorFromBounds(
type ColumnConfigProps (line 68) | interface ColumnConfigProps {
type RowData (line 85) | interface RowData {
type ChartProps (line 91) | interface ChartProps {
type Entry (line 101) | interface Entry {
class TimeTable (line 105) | class TimeTable extends React.PureComponent<ChartProps, {}> {
method renderLeftCell (line 106) | renderLeftCell(row: RowData) {
method renderSparklineCell (line 134) | renderSparklineCell(
method renderValueCell (line 187) | renderValueCell(
method renderRow (line 255) | renderRow(row: RowData, entries: Entry[], reversedEntries: Entry[]) {
method render (line 273) | render() {
FILE: plugins/legacy-plugin-chart-time-table/src/TimeTableChartPlugin.ts
class TimeTableChartPlugin (line 30) | class TimeTableChartPlugin extends ChartPlugin {
method constructor (line 31) | constructor() {
FILE: plugins/legacy-plugin-chart-time-table/src/index.ts
class TimeTableChartPlugin (line 42) | class TimeTableChartPlugin extends ChartPlugin {
method constructor (line 43) | constructor() {
FILE: plugins/legacy-plugin-chart-time-table/src/transformProps.ts
type FormData (line 21) | interface FormData {
type QueryData (line 28) | interface QueryData {
type TableChartProps (line 35) | type TableChartProps = ChartProps & {
type ColumnData (line 40) | interface ColumnData {
function transformProps (line 43) | function transformProps(chartProps: TableChartProps) {
FILE: plugins/legacy-plugin-chart-treemap/src/Treemap.js
function hovered (line 71) | function hovered(hover) {
function Treemap (line 82) | function Treemap(element, props) {
FILE: plugins/legacy-plugin-chart-treemap/src/index.js
class TreemapChartPlugin (line 52) | class TreemapChartPlugin extends ChartPlugin {
method constructor (line 53) | constructor() {
FILE: plugins/legacy-plugin-chart-treemap/src/transformProps.js
function transformProps (line 19) | function transformProps(chartProps) {
FILE: plugins/legacy-plugin-chart-world-map/src/WorldMap.js
function WorldMap (line 49) | function WorldMap(element, props) {
FILE: plugins/legacy-plugin-chart-world-map/src/index.js
class WorldMapChartPlugin (line 50) | class WorldMapChartPlugin extends ChartPlugin {
method constructor (line 51) | constructor() {
FILE: plugins/legacy-plugin-chart-world-map/src/transformProps.js
function transformProps (line 21) | function transformProps(chartProps) {
FILE: plugins/legacy-preset-chart-big-number/src/BigNumber/BigNumber.tsx
constant CHART_MARGIN (line 40) | const CHART_MARGIN = {
constant PROPORTION (line 47) | const PROPORTION = {
type TimeSeriesDatum (line 56) | type TimeSeriesDatum = {
function renderTooltipFactory (line 61) | function renderTooltipFactory(
type BigNumberVisProps (line 82) | type BigNumberVisProps = {
class BigNumberVis (line 105) | class BigNumberVis extends React.PureComponent<BigNumberVisProps, {}> {
method getClassName (line 123) | getClassName() {
method createTemporaryContainer (line 132) | createTemporaryContainer() {
method renderFallbackWarning (line 140) | renderFallbackWarning() {
method renderKicker (line 157) | renderKicker(maxHeight: number) {
method renderHeader (line 187) | renderHeader(maxHeight: number) {
method renderSubheader (line 215) | renderSubheader(maxHeight: number) {
method renderTrendline (line 256) | renderTrendline(maxHeight: number) {
method render (line 333) | render() {
FILE: plugins/legacy-preset-chart-big-number/src/BigNumber/controlPanel.tsx
method visibility (line 128) | visibility(props) {
FILE: plugins/legacy-preset-chart-big-number/src/BigNumber/index.ts
class BigNumberChartPlugin (line 49) | class BigNumberChartPlugin extends ChartPlugin<
method constructor (line 53) | constructor() {
FILE: plugins/legacy-preset-chart-big-number/src/BigNumber/transformProps.ts
constant TIME_COLUMN (line 32) | const TIME_COLUMN = '__timestamp';
type BigNumberDatum (line 38) | interface BigNumberDatum {
type BigNumberFormData (line 42) | type BigNumberFormData = QueryFormData & {
type BigNumberChartProps (line 57) | type BigNumberChartProps = ChartProps & {
function transformProps (line 64) | function transformProps(chartProps: BigNumberChartProps) {
FILE: plugins/legacy-preset-chart-big-number/src/BigNumberTotal/controlPanel.ts
method visibility (line 78) | visibility(props) {
FILE: plugins/legacy-preset-chart-big-number/src/BigNumberTotal/index.ts
class BigNumberTotalChartPlugin (line 53) | class BigNumberTotalChartPlugin extends ChartPlugin<
method constructor (line 57) | constructor() {
FILE: plugins/legacy-preset-chart-big-number/src/preset.ts
class BigNumberChartPreset (line 23) | class BigNumberChartPreset extends Preset {
method constructor (line 24) | constructor() {
FILE: plugins/legacy-preset-chart-big-number/test/transformProps.test.ts
function generateProps (line 55) | function generateProps(
FILE: plugins/legacy-preset-chart-nvd3/src/Area/index.js
class AreaChartPlugin (line 61) | class AreaChartPlugin extends ChartPlugin {
method constructor (line 62) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/Bar/index.js
class BarChartPlugin (line 50) | class BarChartPlugin extends ChartPlugin {
method constructor (line 51) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/BoxPlot/index.js
class BoxPlotChartPlugin (line 31) | class BoxPlotChartPlugin extends ChartPlugin {
method constructor (line 32) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/Bubble/index.js
class BubbleChartPlugin (line 45) | class BubbleChartPlugin extends ChartPlugin {
method constructor (line 46) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/Bullet/index.js
class BulletChartPlugin (line 36) | class BulletChartPlugin extends ChartPlugin {
method constructor (line 37) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/Compare/index.js
class CompareChartPlugin (line 46) | class CompareChartPlugin extends ChartPlugin {
method constructor (line 47) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/DistBar/index.js
class DistBarChartPlugin (line 55) | class DistBarChartPlugin extends ChartPlugin {
method constructor (line 56) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/DualLine/index.js
class DualLineChartPlugin (line 36) | class DualLineChartPlugin extends ChartPlugin {
method constructor (line 37) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/Line/index.js
class LineChartPlugin (line 50) | class LineChartPlugin extends ChartPlugin {
method constructor (line 51) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/LineMulti/controlPanel.ts
type Result (line 38) | type Result = {
type Data (line 43) | type Data = {
FILE: plugins/legacy-preset-chart-nvd3/src/LineMulti/index.js
class LineChartPlugin (line 44) | class LineChartPlugin extends ChartPlugin {
method constructor (line 45) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/NVD3Vis.js
constant NO_DATA_RENDER_DATA (line 77) | const NO_DATA_RENDER_DATA = [
constant MAX_MARGIN_PAD (line 119) | const MAX_MARGIN_PAD = 30;
constant MIN_HEIGHT_FOR_BRUSH (line 120) | const MIN_HEIGHT_FOR_BRUSH = 480;
constant MAX_NO_CHARACTERS_IN_LABEL (line 121) | const MAX_NO_CHARACTERS_IN_LABEL = 40;
constant BREAKPOINTS (line 123) | const BREAKPOINTS = {
constant TIMESERIES_VIZ_TYPES (line 127) | const TIMESERIES_VIZ_TYPES = [
constant CHART_ID_PREFIX (line 137) | const CHART_ID_PREFIX = 'chart-id-';
function nvd3Vis (line 260) | function nvd3Vis(element, props) {
FILE: plugins/legacy-preset-chart-nvd3/src/Pie/index.js
class PieChartPlugin (line 32) | class PieChartPlugin extends ChartPlugin {
method constructor (line 33) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/ReactNVD3.jsx
function componentWillUnmount (line 25) | function componentWillUnmount() {
FILE: plugins/legacy-preset-chart-nvd3/src/TimePivot/index.js
class TimePivotChartPlugin (line 34) | class TimePivotChartPlugin extends ChartPlugin {
method constructor (line 35) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/preset.js
class NVD3ChartPreset (line 33) | class NVD3ChartPreset extends Preset {
method constructor (line 34) | constructor() {
FILE: plugins/legacy-preset-chart-nvd3/src/transformProps.js
function transformProps (line 40) | function transformProps(chartProps) {
FILE: plugins/legacy-preset-chart-nvd3/src/utils.js
constant TIME_SHIFT_PATTERN (line 25) | const TIME_SHIFT_PATTERN = /\d+ \w+ offset/;
constant ANIMATION_TIME (line 27) | const ANIMATION_TIME = 1000;
function cleanColorInput (line 29) | function cleanColorInput(value) {
function getTimeOrNumberFormatter (line 44) | function getTimeOrNumberFormatter(format) {
function drawBarValues (line 50) | function drawBarValues(svg, data, stacked, axisFormat) {
function getFormattedKey (line 102) | function getFormattedKey(seriesKey, shouldDompurify) {
function generateRichLineTooltipContent (line 112) | function generateRichLineTooltipContent(
function generateCompareTooltipContent (line 145) | function generateCompareTooltipContent(d, valueFormatter) {
function generateAreaChartTooltipContent (line 174) | function generateAreaChartTooltipContent(
function generateMultiLineTooltipContent (line 215) | function generateMultiLineTooltipContent(d, xFormatter, yFormatters) {
function generateTimePivotTooltip (line 239) | function generateTimePivotTooltip(d, xFormatter, yFormatter) {
function getLabel (line 269) | function getLabel(stringOrObjectWithLabel) {
function createHTMLRow (line 273) | function createHTMLRow(col1, col2) {
function generateBubbleTooltipContent (line 277) | function generateBubbleTooltipContent({
function hideTooltips (line 301) | function hideTooltips(shouldRemove) {
function generateTooltipClassName (line 317) | function generateTooltipClassName(uuid) {
function removeTooltip (line 321) | function removeTooltip(uuid) {
function wrapTooltip (line 329) | function wrapTooltip(chart) {
function tipFactory (line 344) | function tipFactory(layer) {
function getMaxLabelSize (line 367) | function getMaxLabelSize(svg, axisClass) {
function formatLabel (line 380) | function formatLabel(input, verboseMap = {}) {
constant MIN_BAR_WIDTH (line 392) | const MIN_BAR_WIDTH = 18;
function computeBarChartWidth (line 394) | function computeBarChartWidth(data, stacked, maxWidth) {
function tryNumify (line 404) | function tryNumify(s) {
function stringifyTimeRange (line 411) | function stringifyTimeRange(extent) {
function setAxisShowMaxMin (line 419) | function setAxisShowMaxMin(axis, showminmax) {
function computeYDomain (line 425) | function computeYDomain(data) {
function computeStackedYDomain (line 439) | function computeStackedYDomain(data) {
FILE: plugins/legacy-preset-chart-nvd3/src/utils/isTruthy.js
function isTruthy (line 19) | function isTruthy(obj) {
FILE: plugins/legacy-preset-chart-nvd3/src/utils/tokenize.ts
function tokenizeToNumericArray (line 21) | function tokenizeToNumericArray(value?: string): number[] | null {
function tokenizeToStringArray (line 29) | function tokenizeToStringArray(value?: string): string[] | null {
FILE: plugins/legacy-preset-chart-nvd3/src/vendor/superset/AnnotationTypes.js
function extractTypes (line 19) | function extractTypes(metadata) {
constant ANNOTATION_TYPES_METADATA (line 28) | const ANNOTATION_TYPES_METADATA = {
constant ANNOTATION_TYPES (line 49) | const ANNOTATION_TYPES = extractTypes(ANNOTATION_TYPES_METADATA);
constant DEFAULT_ANNOTATION_TYPE (line 51) | const DEFAULT_ANNOTATION_TYPE = ANNOTATION_TYPES.FORMULA;
constant ANNOTATION_SOURCE_TYPES_METADATA (line 53) | const ANNOTATION_SOURCE_TYPES_METADATA = {
constant ANNOTATION_SOURCE_TYPES (line 60) | const ANNOTATION_SOURCE_TYPES = extractTypes(
function requiresQuery (line 64) | function requiresQuery(annotationSourceType) {
constant NATIVE_COLUMN_NAMES (line 68) | const NATIVE_COLUMN_NAMES = {
function applyNativeColumns (line 75) | function applyNativeColumns(annotation) {
FILE: plugins/legacy-preset-chart-nvd3/src/vendor/superset/exploreUtils.js
constant MAX_URL_LENGTH (line 23) | const MAX_URL_LENGTH = 8000;
function getURIDirectory (line 25) | function getURIDirectory(formData, endpointType = 'base') {
function getExploreLongUrl (line 35) | function getExploreLongUrl(
FILE: plugins/legacy-preset-chart-nvd3/test/utils.test.js
constant DATA (line 27) | const DATA = [
constant DATA_WITH_DISABLED_SERIES (line 69) | const DATA_WITH_DISABLED_SERIES = [
FILE: plugins/plugin-chart-echarts/src/BoxPlot/EchartsBoxPlot.tsx
function EchartsBoxPlot (line 24) | function EchartsBoxPlot({
FILE: plugins/plugin-chart-echarts/src/BoxPlot/buildQuery.ts
function buildQuery (line 23) | function buildQuery(formData: BoxPlotQueryFormData) {
FILE: plugins/plugin-chart-echarts/src/BoxPlot/index.ts
class EchartsBoxPlotChartPlugin (line 27) | class EchartsBoxPlotChartPlugin extends ChartPlugin<
method constructor (line 41) | constructor() {
FILE: plugins/plugin-chart-echarts/src/BoxPlot/transformProps.ts
function transformProps (line 43) | function transformProps(
FILE: plugins/plugin-chart-echarts/src/BoxPlot/types.ts
type BoxPlotQueryFormData (line 30) | type BoxPlotQueryFormData = QueryFormData & {
type BoxPlotFormDataWhiskerOptions (line 37) | type BoxPlotFormDataWhiskerOptions =
type BoxPlotFormXTickLayout (line 43) | type BoxPlotFormXTickLayout =
constant DEFAULT_FORM_DATA (line 51) | const DEFAULT_FORM_DATA: BoxPlotQueryFormData = {
type EchartsBoxPlotChartProps (line 56) | interface EchartsBoxPlotChartProps extends ChartProps {
type BoxPlotChartTransformedProps (line 61) | interface BoxPlotChartTransformedProps {
FILE: plugins/plugin-chart-echarts/src/Funnel/EchartsFunnel.tsx
function EchartsFunnel (line 24) | function EchartsFunnel({
FILE: plugins/plugin-chart-echarts/src/Funnel/buildQuery.ts
function buildQuery (line 21) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/Funnel/controlPanel.tsx
method onInit (line 137) | onInit(state: ControlStateMapping) {
FILE: plugins/plugin-chart-echarts/src/Funnel/index.ts
class EchartsFunnelChartPlugin (line 26) | class EchartsFunnelChartPlugin extends ChartPlugin<
method constructor (line 40) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Funnel/transformProps.ts
function formatFunnelLabel (line 50) | function formatFunnelLabel({
function transformProps (line 83) | function transformProps(
FILE: plugins/plugin-chart-echarts/src/Funnel/types.ts
type EchartsFunnelFormData (line 35) | type EchartsFunnelFormData = QueryFormData &
type EchartsFunnelLabelTypeType (line 50) | enum EchartsFunnelLabelTypeType {
type EchartsFunnelChartProps (line 59) | interface EchartsFunnelChartProps extends ChartProps {
constant DEFAULT_FORM_DATA (line 65) | const DEFAULT_FORM_DATA: EchartsFunnelFormData = {
type FunnelChartTransformedProps (line 80) | interface FunnelChartTransformedProps {
FILE: plugins/plugin-chart-echarts/src/Gauge/EchartsGauge.tsx
function EchartsGauge (line 24) | function EchartsGauge({
FILE: plugins/plugin-chart-echarts/src/Gauge/buildQuery.ts
function buildQuery (line 21) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/Gauge/constants.ts
constant DEFAULT_GAUGE_SERIES_OPTION (line 21) | const DEFAULT_GAUGE_SERIES_OPTION: GaugeSeriesOption = {
constant INTERVAL_GAUGE_SERIES_OPTION (line 46) | const INTERVAL_GAUGE_SERIES_OPTION: GaugeSeriesOption = {
constant OFFSETS (line 67) | const OFFSETS = {
constant FONT_SIZE_MULTIPLIERS (line 72) | const FONT_SIZE_MULTIPLIERS = {
FILE: plugins/plugin-chart-echarts/src/Gauge/index.ts
class EchartsGaugeChartPlugin (line 26) | class EchartsGaugeChartPlugin extends ChartPlugin<
method constructor (line 30) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Gauge/transformProps.ts
function transformProps (line 83) | function transformProps(
FILE: plugins/plugin-chart-echarts/src/Gauge/types.ts
type AxisTickLineStyle (line 27) | type AxisTickLineStyle = {
type EchartsGaugeFormData (line 32) | type EchartsGaugeFormData = QueryFormData & {
constant DEFAULT_FORM_DATA (line 57) | const DEFAULT_FORM_DATA: Partial<EchartsGaugeFormData> = {
type EchartsGaugeChartProps (line 81) | interface EchartsGaugeChartProps extends ChartProps {
type GaugeChartTransformedProps (line 86) | type GaugeChartTransformedProps =
FILE: plugins/plugin-chart-echarts/src/Graph/EchartsGraph.tsx
function EchartsGraph (line 23) | function EchartsGraph({
FILE: plugins/plugin-chart-echarts/src/Graph/buildQuery.ts
function buildQuery (line 21) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/Graph/constants.ts
constant DEFAULT_GRAPH_SERIES_OPTION (line 21) | const DEFAULT_GRAPH_SERIES_OPTION: GraphSeriesOption = {
FILE: plugins/plugin-chart-echarts/src/Graph/controlPanel.tsx
method visibility (line 147) | visibility({ form_data: { layout } }) {
method visibility (line 248) | visibility({ form_data: { layout } }) {
method visibility (line 269) | visibility({ form_data: { layout } }) {
method visibility (line 290) | visibility({ form_data: { layout } }) {
method visibility (line 311) | visibility({ form_data: { layout } }) {
FILE: plugins/plugin-chart-echarts/src/Graph/index.ts
class EchartsGraphChartPlugin (line 25) | class EchartsGraphChartPlugin extends ChartPlugin {
method constructor (line 26) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Graph/transformProps.ts
type EdgeWithStyles (line 39) | type EdgeWithStyles = GraphEdgeItemOption & {
function verifyEdgeSymbol (line 45) | function verifyEdgeSymbol(symbol: string): EdgeSymbol {
function parseEdgeSymbol (line 52) | function parseEdgeSymbol(symbols?: string | null): [EdgeSymbol, EdgeSymb...
function getEmphasizedEdgeWidth (line 60) | function getEmphasizedEdgeWidth(width: number) {
function normalizeStyles (line 67) | function normalizeStyles(
function getKeyByValue (line 127) | function getKeyByValue(
function edgeFormatter (line 134) | function edgeFormatter(
function getCategoryName (line 147) | function getCategoryName(columnName: string, name?: DataRecordValue) {
function transformProps (line 160) | function transformProps(chartProps: ChartProps): EchartsProps {
FILE: plugins/plugin-chart-echarts/src/Graph/types.ts
type EdgeSymbol (line 28) | type EdgeSymbol = 'none' | 'circle' | 'arrow';
type EchartsGraphFormData (line 30) | type EchartsGraphFormData = EchartsLegendFormData & {
type EChartGraphNode (line 51) | type EChartGraphNode = Omit<GraphNodeItemOption, 'value'> & {
constant DEFAULT_FORM_DATA (line 56) | const DEFAULT_FORM_DATA: EchartsGraphFormData = {
type tooltipFormatParams (line 76) | type tooltipFormatParams = {
FILE: plugins/plugin-chart-echarts/src/MixedTimeseries/EchartsMixedTimeseries.tsx
function EchartsMixedTimeseries (line 25) | function EchartsMixedTimeseries({
FILE: plugins/plugin-chart-echarts/src/MixedTimeseries/buildQuery.ts
function buildQuery (line 27) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
function createQuerySection (line 54) | function createQuerySection(
function createCustomizeSection (line 124) | function createCustomizeSection(
FILE: plugins/plugin-chart-echarts/src/MixedTimeseries/index.ts
class EchartsTimeseriesChartPlugin (line 35) | class EchartsTimeseriesChartPlugin extends ChartPlugin<
method constructor (line 49) | constructor() {
FILE: plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
function transformProps (line 65) | function transformProps(
FILE: plugins/plugin-chart-echarts/src/MixedTimeseries/types.ts
type EchartsMixedTimeseriesFormData (line 42) | type EchartsMixedTimeseriesFormData = QueryFormData & {
constant DEFAULT_FORM_DATA (line 92) | const DEFAULT_FORM_DATA: EchartsMixedTimeseriesFormData = {
type EchartsMixedTimeseriesProps (line 135) | interface EchartsMixedTimeseriesProps extends ChartProps {
type EchartsMixedTimeseriesChartTransformedProps (line 140) | type EchartsMixedTimeseriesChartTransformedProps = {
FILE: plugins/plugin-chart-echarts/src/Pie/EchartsPie.tsx
function EchartsPie (line 24) | function EchartsPie({
FILE: plugins/plugin-chart-echarts/src/Pie/buildQuery.ts
function buildQuery (line 21) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/Pie/index.ts
class EchartsPieChartPlugin (line 30) | class EchartsPieChartPlugin extends ChartPlugin<
method constructor (line 44) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Pie/transformProps.ts
function formatPieLabel (line 51) | function formatPieLabel({
function transformProps (line 85) | function transformProps(
FILE: plugins/plugin-chart-echarts/src/Pie/types.ts
type EchartsPieFormData (line 35) | type EchartsPieFormData = QueryFormData &
type EchartsPieLabelType (line 55) | enum EchartsPieLabelType {
type EchartsPieChartProps (line 64) | interface EchartsPieChartProps extends ChartProps {
constant DEFAULT_FORM_DATA (line 70) | const DEFAULT_FORM_DATA: EchartsPieFormData = {
type PieChartTransformedProps (line 88) | interface PieChartTransformedProps {
FILE: plugins/plugin-chart-echarts/src/Radar/EchartsRadar.tsx
function EchartsRadar (line 24) | function EchartsRadar({
FILE: plugins/plugin-chart-echarts/src/Radar/buildQuery.ts
function buildQuery (line 25) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/Radar/controlPanel.tsx
method mapStateToProps (line 173) | mapStateToProps(explore, control, chart) {
FILE: plugins/plugin-chart-echarts/src/Radar/index.ts
class EchartsRadarChartPlugin (line 27) | class EchartsRadarChartPlugin extends ChartPlugin<
method constructor (line 41) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Radar/transformProps.ts
function formatLabel (line 49) | function formatLabel({
function transformProps (line 71) | function transformProps(
FILE: plugins/plugin-chart-echarts/src/Radar/types.ts
type RadarColumnConfig (line 37) | type RadarColumnConfig = Record<string, { radarMetricMaxValue?: number }>;
type EchartsRadarFormData (line 39) | type EchartsRadarFormData = QueryFormData &
type EchartsRadarLabelType (line 57) | enum EchartsRadarLabelType {
type EchartsRadarChartProps (line 62) | interface EchartsRadarChartProps extends ChartProps {
constant DEFAULT_FORM_DATA (line 68) | const DEFAULT_FORM_DATA: EchartsRadarFormData = {
type RadarChartTransformedProps (line 82) | interface RadarChartTransformedProps {
FILE: plugins/plugin-chart-echarts/src/Timeseries/Area/index.ts
class EchartsAreaChartPlugin (line 42) | class EchartsAreaChartPlugin extends ChartPlugin<
method constructor (line 56) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx
constant TIMER_DURATION (line 28) | const TIMER_DURATION = 300;
function EchartsTimeseries (line 30) | function EchartsTimeseries({
FILE: plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/index.ts
class EchartsTimeseriesBarChartPlugin (line 48) | class EchartsTimeseriesBarChartPlugin extends ChartPlugin<
method constructor (line 52) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/index.ts
class EchartsTimeseriesLineChartPlugin (line 47) | class EchartsTimeseriesLineChartPlugin extends ChartPlugin<
method constructor (line 51) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/index.ts
class EchartsTimeseriesScatterChartPlugin (line 46) | class EchartsTimeseriesScatterChartPlugin extends ChartPlugin<
method constructor (line 50) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/index.ts
class EchartsTimeseriesSmoothLineChartPlugin (line 46) | class EchartsTimeseriesSmoothLineChartPlugin extends ChartPlugin<
method constructor (line 50) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Timeseries/Step/index.ts
class EchartsTimeseriesStepChartPlugin (line 37) | class EchartsTimeseriesStepChartPlugin extends ChartPlugin<
method constructor (line 41) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Timeseries/buildQuery.ts
function buildQuery (line 37) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/Timeseries/index.ts
class EchartsTimeseriesChartPlugin (line 36) | class EchartsTimeseriesChartPlugin extends ChartPlugin<
method constructor (line 50) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts
function transformProps (line 67) | function transformProps(
FILE: plugins/plugin-chart-echarts/src/Timeseries/transformers.ts
function transformSeries (line 66) | function transformSeries(
function transformFormulaAnnotation (line 226) | function transformFormulaAnnotation(
function transformIntervalAnnotation (line 250) | function transformIntervalAnnotation(
function transformEventAnnotation (line 323) | function transformEventAnnotation(
function transformTimeseriesAnnotation (line 394) | function transformTimeseriesAnnotation(
function getPadding (line 423) | function getPadding(
function getTooltipTimeFormatter (line 462) | function getTooltipTimeFormatter(
function getXAxisFormatter (line 474) | function getXAxisFormatter(
FILE: plugins/plugin-chart-echarts/src/Timeseries/types.ts
type EchartsTimeseriesContributionType (line 36) | enum EchartsTimeseriesContributionType {
type EchartsTimeseriesSeriesType (line 41) | enum EchartsTimeseriesSeriesType {
type EchartsTimeseriesFormData (line 51) | type EchartsTimeseriesFormData = QueryFormData & {
constant DEFAULT_FORM_DATA (line 88) | const DEFAULT_FORM_DATA: EchartsTimeseriesFormData = {
type EchartsTimeseriesChartProps (line 123) | interface EchartsTimeseriesChartProps extends ChartProps {
type TimeseriesChartTransformedProps (line 128) | type TimeseriesChartTransformedProps =
FILE: plugins/plugin-chart-echarts/src/Tree/EchartsTree.tsx
function EchartsGraph (line 23) | function EchartsGraph({
FILE: plugins/plugin-chart-echarts/src/Tree/buildQuery.ts
function buildQuery (line 21) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/Tree/constants.ts
constant DEFAULT_TREE_SERIES_OPTION (line 21) | const DEFAULT_TREE_SERIES_OPTION: TreeSeriesOption = {
FILE: plugins/plugin-chart-echarts/src/Tree/controlPanel.tsx
method visibility (line 143) | visibility({ form_data: { layout } }) {
method visibility (line 198) | visibility({ form_data: { layout } }) {
FILE: plugins/plugin-chart-echarts/src/Tree/index.ts
class EchartsTreeChartPlugin (line 26) | class EchartsTreeChartPlugin extends ChartPlugin {
method constructor (line 27) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Tree/transformProps.ts
function formatTooltip (line 34) | function formatTooltip({
function transformProps (line 52) | function transformProps(chartProps: ChartProps): EchartsProps {
FILE: plugins/plugin-chart-echarts/src/Tree/types.ts
type EchartsTreeFormData (line 21) | type EchartsTreeFormData = {
constant DEFAULT_FORM_DATA (line 38) | const DEFAULT_FORM_DATA: EchartsTreeFormData = {
type TreeDataRecord (line 53) | type TreeDataRecord = Record<string, string | number> & {
FILE: plugins/plugin-chart-echarts/src/Treemap/EchartsTreemap.tsx
function EchartsTreemap (line 25) | function EchartsTreemap({
FILE: plugins/plugin-chart-echarts/src/Treemap/buildQuery.ts
function buildQuery (line 21) | function buildQuery(formData: QueryFormData) {
FILE: plugins/plugin-chart-echarts/src/Treemap/constants.ts
constant COLOR_SATURATION (line 22) | const COLOR_SATURATION = [0.7, 0.4];
constant LABEL_FONTSIZE (line 23) | const LABEL_FONTSIZE = 11;
constant BORDER_WIDTH (line 24) | const BORDER_WIDTH = 2;
constant GAP_WIDTH (line 25) | const GAP_WIDTH = 2;
constant BORDER_COLOR (line 26) | const BORDER_COLOR = '#fff';
FILE: plugins/plugin-chart-echarts/src/Treemap/index.ts
class EchartsTreemapChartPlugin (line 29) | class EchartsTreemapChartPlugin extends ChartPlugin<
method constructor (line 43) | constructor() {
FILE: plugins/plugin-chart-echarts/src/Treemap/transformProps.ts
function formatLabel (line 53) | function formatLabel({
function formatTooltip (line 77) | function formatTooltip({
function transformProps (line 109) | function transformProps(
FILE: plugins/plugin-chart-echarts/src/Treemap/types.ts
type EchartsTreemapFormData (line 32) | type EchartsTreemapFormData = QueryFormData & {
type EchartsTreemapLabelType (line 46) | enum EchartsTreemapLabelType {
type EchartsTreemapChartProps (line 52) | interface EchartsTreemapChartProps extends ChartProps {
constant DEFAULT_FORM_DATA (line 57) | const DEFAULT_FORM_DATA: Partial<EchartsTreemapFormData> = {
type TreePathInfo (line 68) | interface TreePathInfo {
type TreemapSeriesCallbackDataParams (line 73) | interface TreemapSeriesCallbackDataParams extends CallbackDataParams {
type TreemapTransformedProps (line 77) | interface TreemapTransformedProps {
FILE: plugins/plugin-chart-echarts/src/components/Echart.tsx
function Echart (line 35) | function Echart(
FILE: plugins/plugin-chart-echarts/src/constants.ts
constant NULL_STRING (line 23) | const NULL_STRING = '<NULL>';
constant TIMESERIES_CONSTANTS (line 25) | const TIMESERIES_CONSTANTS = {
constant LABEL_POSITION (line 41) | const LABEL_POSITION: [LabelPositionEnum, string][] = [
type OpacityEnum (line 57) | enum OpacityEnum {
FILE: plugins/plugin-chart-echarts/src/types.ts
type EchartsStylesProps (line 28) | type EchartsStylesProps = {
type EchartsProps (line 33) | interface EchartsProps {
type EchartsHandler (line 43) | interface EchartsHandler {
type ForecastSeriesEnum (line 47) | enum ForecastSeriesEnum {
type ForecastSeriesContext (line 54) | type ForecastSeriesContext = {
type LegendOrientation (line 59) | enum LegendOrientation {
type LegendType (line 66) | enum LegendType {
type ProphetValue (line 71) | type ProphetValue = {
type EchartsLegendFormData (line 79) | type EchartsLegendFormData = {
constant DEFAULT_LEGEND_FORM_DATA (line 86) | const DEFAULT_LEGEND_FORM_DATA: EchartsLegendFormData = {
type EventHandlers (line 93) | type EventHandlers = Record<string, { (props: any): void }>;
type LabelPositionEnum (line 95) | enum LabelPositionEnum {
type EChartTransformedProps (line 111) | interface EChartTransformedProps<F> {
type EchartsTitleFormData (line 124) | interface EchartsTitleFormData {
constant DEFAULT_TITLE_FORM_DATA (line 132) | const DEFAULT_TITLE_FORM_DATA: EchartsTitleFormData = {
FILE: plugins/plugin-chart-echarts/src/utils/annotation.ts
function evalFormula (line 34) | function evalFormula(
function parseAnnotationOpacity (line 46) | function parseAnnotationOpacity(opacity?: AnnotationOpacity): number {
constant NATIVE_COLUMN_NAMES (line 59) | const NATIVE_COLUMN_NAMES = {
function extractRecordAnnotations (line 66) | function extractRecordAnnotations(
function formatAnnotationLabel (line 95) | function formatAnnotationLabel(
function extractAnnotationLabels (line 113) | function extractAnnotationLabels(
FILE: plugins/plugin-chart-echarts/src/utils/controls.ts
function parseYAxisBound (line 23) | function parseYAxisBound(
function parseNumbersList (line 32) | function parseNumbersList(value: string, delim = ';') {
FILE: plugins/plugin-chart-echarts/src/utils/prophet.ts
function rebaseTimeseriesDatum (line 112) | function rebaseTimeseriesDatum(
FILE: plugins/plugin-chart-echarts/src/utils/series.ts
function isDefined (line 35) | function isDefined<T>(value: T | undefined | null): boolean {
function extractTimeseriesSeries (line 39) | function extractTimeseriesSeries(
function formatSeriesName (line 73) | function formatSeriesName(
function extractGroupbyLabel (line 111) | function extractGroupbyLabel({
function getLegendProps (line 135) | function getLegendProps(
function getChartPadding (line 170) | function getChartPadding(
function dedupSeries (line 204) | function dedupSeries(series: SeriesOption[]): SeriesOption[] {
function sanitizeHtml (line 220) | function sanitizeHtml(text: string): string {
FILE: plugins/plugin-chart-pivot-table/src/PivotTableChart.tsx
constant METRIC_KEY (line 64) | const METRIC_KEY = 'metric';
function PivotTableChart (line 116) | function PivotTableChart(props: PivotTableProps) {
FILE: plugins/plugin-chart-pivot-table/src/plugin/buildQuery.ts
function buildQuery (line 28) | function buildQuery(formData: PivotTableQueryFormData) {
FILE: plugins/plugin-chart-pivot-table/src/plugin/controlPanel.ts
method mapStateToProps (line 303) | mapStateToProps(explore) {
FILE: plugins/plugin-chart-pivot-table/src/plugin/index.ts
class PivotTableChartPlugin (line 33) | class PivotTableChartPlugin extends ChartPlugin<
method constructor (line 47) | constructor() {
FILE: plugins/plugin-chart-pivot-table/src/plugin/transformProps.ts
function isNumeric (line 35) | function isNumeric(key: string, data: DataRecord[] = []) {
function transformProps (line 44) | function transformProps(chartProps: ChartProps<QueryFormData>) {
FILE: plugins/plugin-chart-pivot-table/src/types.ts
type PivotTableStylesProps (line 32) | interface PivotTableStylesProps {
type FilterType (line 38) | type FilterType = Record<string, DataRecordValue>;
type SelectedFiltersType (line 39) | type SelectedFiltersType = Record<string, DataRecordValue[]>;
type DateFormatter (line 41) | type DateFormatter =
type MetricsLayoutEnum (line 45) | enum MetricsLayoutEnum {
type PivotTableCustomizeProps (line 50) | interface PivotTableCustomizeProps {
type PivotTableQueryFormData (line 77) | type PivotTableQueryFormData = QueryFormData &
type PivotTableProps (line 81) | type PivotTableProps = PivotTableStylesProps &
FILE: plugins/plugin-chart-table/src/DataTable/DataTable.tsx
type DataTableProps (line 48) | interface DataTableProps<D extends object> extends TableOptions<D> {
type RenderHTMLCellProps (line 67) | interface RenderHTMLCellProps extends HTMLProps<HTMLTableCellElement> {
function DataTable (line 72) | function DataTable<D extends object>({
FILE: plugins/plugin-chart-table/src/DataTable/components/GlobalFilter.tsx
type SearchInputProps (line 23) | interface SearchInputProps {
type GlobalFilterProps (line 29) | interface GlobalFilterProps<D extends object> {
function DefaultSearchInput (line 38) | function DefaultSearchInput({ count, value, onChange }: SearchInputProps) {
FILE: plugins/plugin-chart-table/src/DataTable/components/Pagination.tsx
type PaginationProps (line 21) | interface PaginationProps {
constant MINIMAL_PAGE_ITEM_COUNT (line 31) | const MINIMAL_PAGE_ITEM_COUNT = 7;
function generatePageItems (line 38) | function generatePageItems(
FILE: plugins/plugin-chart-table/src/DataTable/components/SelectPageSize.tsx
type SizeOption (line 22) | type SizeOption = [number, string];
type SelectPageSizeRendererProps (line 24) | interface SelectPageSizeRendererProps {
function DefaultSelectRenderer (line 30) | function DefaultSelectRenderer({
type SelectPageSizeProps (line 62) | interface SelectPageSizeProps extends SelectPageSizeRendererProps {
function getOptionValue (line 68) | function getOptionValue(x: SizeOption) {
FILE: plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx
type ReactElementWithChildren (line 35) | type ReactElementWithChildren<
type Th (line 40) | type Th = ReactElementWithChildren<'th'>;
type Td (line 41) | type Td = ReactElementWithChildren<'td'>;
type TrWithTh (line 42) | type TrWithTh = ReactElementWithChildren<'tr', Th[]>;
type TrWithTd (line 43) | type TrWithTd = ReactElementWithChildren<'tr', Td[]>;
type Thead (line 44) | type Thead = ReactElementWithChildren<'thead', TrWithTh>;
type Tbody (line 45) | type Tbody = ReactElementWithChildren<'tbody', TrWithTd>;
type Tfoot (line 46) | type Tfoot = ReactElementWithChildren<'tfoot', TrWithTd>;
type Col (line 47) | type Col = ReactElementWithChildren<'col', null>;
type ColGroup (line 48) | type ColGroup = ReactElementWithChildren<'colgroup', Col>;
type Table (line 50) | type Table = ReactElementWithChildren<
type TableRenderer (line 54) | type TableRenderer = () => Table;
type GetTableSize (line 55) | type GetTableSize = () => Partial<StickyState> | undefined;
type SetStickyState (line 56) | type SetStickyState = (size?: Partial<StickyState>) => void;
type ReducerActions (line 58) | enum ReducerActions {
type ReducerAction (line 63) | type ReducerAction<
type ColumnWidths (line 68) | type ColumnWidths = number[];
type StickyState (line 70) | interface StickyState {
type UseStickyTableOptions (line 83) | interface UseStickyTableOptions {
type UseStickyInstanceProps (line 87) | interface UseStickyInstanceProps {
type UseStickyState (line 94) | type UseStickyState = {
function StickyWrap (line 113) | function StickyWrap({
function useInstance (line 344) | function useInstance<D extends object>(instance: TableInstance<D>) {
function useSticky (line 403) | function useSticky<D extends object>(hooks: Hooks<D>) {
FILE: plugins/plugin-chart-table/src/DataTable/types/react-table.d.ts
type TableOptions (line 51) | interface TableOptions<D extends object>
type TableInstance (line 59) | interface TableInstance<D extends object>
type TableState (line 69) | interface TableState<D extends object>
type TableSortByToggleProps (line 79) | interface TableSortByToggleProps {
type ColumnInterface (line 85) | interface ColumnInterface<D extends object>
type ColumnInstance (line 94) | interface ColumnInstance<D extends object>
type Hooks (line 102) | interface Hooks<D extends object>
FILE: plugins/plugin-chart-table/src/DataTable/utils/getScrollBarSize.ts
function getScrollBarSize (line 23) | function getScrollBarSize(forceRefresh = false) {
FILE: plugins/plugin-chart-table/src/DataTable/utils/needScrollBar.ts
function needScrollBar (line 22) | function needScrollBar({
FILE: plugins/plugin-chart-table/src/DataTable/utils/useAsyncState.ts
function useAsyncState (line 28) | function useAsyncState<T, F extends (newValue: T) => unknown>(
FILE: plugins/plugin-chart-table/src/DataTable/utils/useMountedMemo.ts
function useMountedMemo (line 25) | function useMountedMemo<T>(
FILE: plugins/plugin-chart-table/src/TableChart.tsx
type ValueRange (line 53) | type ValueRange = [number, number];
function getSortTypeByDataType (line 58) | function getSortTypeByDataType(dataType: GenericDataType): DefaultSortTy...
function cellBar (line 71) | function cellBar({
function SortIcon (line 109) | function SortIcon<D extends object>({ column }: { column: ColumnInstance...
function SearchInput (line 118) | function SearchInput({ count, value, onChange }: SearchInputProps) {
function SelectPageSize (line 132) | function SelectPageSize({
function TableChart (line 164) | function TableChart<D extends DataRecord = DataRecord>(
FILE: plugins/plugin-chart-table/src/buildQuery.ts
function getQueryMode (line 38) | function getQueryMode(formData: TableChartFormData) {
FILE: plugins/plugin-chart-table/src/consts.ts
constant PAGE_SIZE_OPTIONS (line 25) | const PAGE_SIZE_OPTIONS = formatSelectOptions<number>([
FILE: plugins/plugin-chart-table/src/controlPanel.tsx
function getQueryMode (line 54) | function getQueryMode(controls: ControlStateMapping): QueryMode {
function isQueryMode (line 69) | function isQueryMode(mode: QueryMode) {
method mapStateToProps (line 127) | mapStateToProps({ datasource, controls }, controlState) {
method mapStateToProps (line 456) | mapStateToProps(explore, control, chart) {
method mapStateToProps (line 477) | mapStateToProps(explore, control, chart) {
FILE: plugins/plugin-chart-table/src/index.ts
class TableChartPlugin (line 56) | class TableChartPlugin extends ChartPlugin<
method constructor (line 60) | constructor() {
FILE: plugins/plugin-chart-table/src/transformProps.ts
function isNumeric (line 47) | function isNumeric(key: string, data: DataRecord[] = []) {
FILE: plugins/plugin-chart-table/src/types.ts
type CustomFormatter (line 36) | type CustomFormatter = (value: DataRecordValue) => string;
type DataColumnMeta (line 38) | interface DataColumnMeta {
type TableChartData (line 51) | interface TableChartData {
type TableChartFormData (line 56) | type TableChartFormData = QueryFormData & {
type TableChartProps (line 76) | interface TableChartProps extends ChartProps {
type TableChartTransformedProps (line 85) | interface TableChartTransformedProps<D extends DataRecord = DataRecord> {
FILE: plugins/plugin-chart-table/src/utils/DateWithFormatter.ts
constant REGEXP_TIMESTAMP_NO_TIMEZONE (line 21) | const REGEXP_TIMESTAMP_NO_TIMEZONE = /T(\d{2}:){2}\d{2}$/;
class DateWithFormatter (line 27) | class DateWithFormatter extends Date {
method constructor (line 32) | constructor(
FILE: plugins/plugin-chart-table/src/utils/extent.ts
function extent (line 19) | function extent<T = number | string | Date | undefined | null>(
FILE: plugins/plugin-chart-table/src/utils/formatValue.ts
function isProbablyHTML (line 49) | function isProbablyHTML(text: string) {
function formatValue (line 56) | function formatValue(
function formatColumnValue (line 78) | function formatColumnValue(
FILE: plugins/plugin-chart-table/src/utils/isEqualArray.ts
function isEqualArray (line 19) | function isEqualArray<T extends unknown[] | undefined | null>(
FILE: plugins/plugin-chart-table/src/utils/isEqualColumns.ts
function isEqualColumns (line 22) | function isEqualColumns(
FILE: plugins/plugin-chart-table/test/enzyme.tsx
type optionsType (line 32) | type optionsType = {
function ProviderWrapper (line 38) | function ProviderWrapper(props: any) {
function mount (line 47) | function mount(component: ReactElement, options: optionsType = {}) {
function shallow (line 58) | function shallow(component: ReactElement, options: optionsType = {}) {
FILE: plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx
constant ROTATION (line 30) | const ROTATION = {
type RotationType (line 37) | type RotationType = keyof typeof ROTATION;
type WordCloudEncoding (line 39) | type WordCloudEncoding = DeriveEncoding<WordCloudEncodingConfig>;
type WordCloudEncodingConfig (line 41) | type WordCloudEncodingConfig = {
type WordCloudVisualProps (line 52) | interface WordCloudVisualProps {
type WordCloudProps (line 57) | interface WordCloudProps extends WordCloudVisualProps {
type WordCloudState (line 63) | interface WordCloudState {
type FullWordCloudProps (line 73) | type FullWordCloudProps = WordCloudProps &
constant SCALE_FACTOR_STEP (line 77) | const SCALE_FACTOR_STEP = 0.5;
constant MAX_SCALE_FACTOR (line 78) | const MAX_SCALE_FACTOR = 3;
constant TOP_RESULTS_PERCENTAGE (line 81) | const TOP_RESULTS_PERCENTAGE = 0.1;
class WordCloud (line 83) | class WordCloud extends React.PureComponent<
method constructor (line 112) | constructor(props: FullWordCloudProps) {
method componentDidMount (line 121) | componentDidMount() {
method componentDidUpdate (line 126) | componentDidUpdate(prevProps: WordCloudProps) {
method componentWillUnmount (line 140) | componentWillUnmount() {
method setWords (line 144) | setWords(words: Word[]) {
method update (line 150) | update() {
method generateCloud (line 177) | generateCloud(
method render (line 211) | render() {
FILE: plugins/plugin-chart-word-cloud/src/configureEncodable.ts
function configureEncodable (line 78) | function configureEncodable() {
FILE: plugins/plugin-chart-word-cloud/src/legacyPlugin/index.ts
class LegacyWordCloudChartPlugin (line 34) | class LegacyWordCloudChartPlugin extends ChartPlugin<LegacyWordCloudForm...
method constructor (line 35) | constructor() {
FILE: plugins/plugin-chart-word-cloud/src/legacyPlugin/transformProps.ts
function getMetricLabel (line 24) | function getMetricLabel(
function transformProps (line 37) | function transformProps(chartProps: ChartProps): WordCloudProps {
FILE: plugins/plugin-chart-word-cloud/src/legacyPlugin/types.ts
type LegacyWordCloudFormData (line 23) | type LegacyWordCloudFormData = QueryFormData & {
FILE: plugins/plugin-chart-word-cloud/src/plugin/buildQuery.ts
function buildQuery (line 23) | function buildQuery(formData: WordCloudFormData) {
FILE: plugins/plugin-chart-word-cloud/src/plugin/index.ts
class WordCloudChartPlugin (line 51) | class WordCloudChartPlugin extends ChartPlugin<WordCloudFormData> {
method constructor (line 52) | constructor() {
FILE: plugins/plugin-chart-word-cloud/src/plugin/transformProps.ts
function transformProps (line 24) | function transformProps(chartProps: ChartProps): WordCloudProps {
FILE: plugins/plugin-chart-word-cloud/src/types.ts
type WordCloudFormData (line 25) | type WordCloudFormData = QueryFormData &
FILE: plugins/preset-chart-xy/src/BoxPlot/createMetadata.ts
function createMetadata (line 23) | function createMetadata(useLegacyApi = false) {
FILE: plugins/preset-chart-xy/src/BoxPlot/index.ts
class BoxPlotChartPlugin (line 27) | class BoxPlotChartPlugin extends ChartPlugin {
method constructor (line 28) | constructor() {
FILE: plugins/preset-chart-xy/src/BoxPlot/legacy/index.ts
class BoxPlotChartPlugin (line 24) | class BoxPlotChartPlugin extends ChartPlugin<
method constructor (line 28) | constructor() {
FILE: plugins/preset-chart-xy/src/BoxPlot/legacy/transformProps.ts
type LegacyBoxPlotFormData (line 30) | type LegacyBoxPlotFormData = {
type LegacyBoxPlotChartProps (line 36) | type LegacyBoxPlotChartProps = ChartProps & {
function transformProps (line 43) | function transformProps(chartProps: LegacyBoxPlotChartProps) {
FILE: plugins/preset-chart-xy/src/BoxPlot/transformProps.ts
function transformProps (line 26) | function transformProps(chartProps: ChartProps) {
FILE: plugins/preset-chart-xy/src/Line/ChartFormData.ts
type CombinedFormData (line 23) | type CombinedFormData = QueryFormData & FormDataProps;
FILE: plugins/preset-chart-xy/src/Line/buildQuery.ts
function buildQuery (line 24) | function buildQuery(formData: ChartFormData) {
FILE: plugins/preset-chart-xy/src/Line/createMetadata.ts
function createMetadata (line 23) | function createMetadata(useLegacyApi = false) {
FILE: plugins/preset-chart-xy/src/Line/index.ts
class LineChartPlugin (line 26) | class LineChartPlugin extends ChartPlugin<ChartFormData> {
method constructor (line 27) | constructor() {
FILE: plugins/preset-chart-xy/src/Line/legacy/index.ts
class LineChartPlugin (line 24) | class LineChartPlugin extends ChartPlugin {
method constructor (line 25) | constructor() {
FILE: plugins/preset-chart-xy/src/Line/legacy/transformProps.ts
type DataRow (line 23) | interface DataRow {
function transformProps (line 31) | function transformProps(chartProps: ChartProps) {
FILE: plugins/preset-chart-xy/src/Line/transformProps.ts
function transformProps (line 24) | function transformProps(chartProps: ChartProps) {
FILE: plugins/preset-chart-xy/src/ScatterPlot/createMetadata.ts
function createMetadata (line 23) | function createMetadata(useLegacyApi = false) {
FILE: plugins/preset-chart-xy/src/ScatterPlot/index.ts
class LineChartPlugin (line 24) | class LineChartPlugin extends ChartPlugin {
method constructor (line 25) | constructor() {
FILE: plugins/preset-chart-xy/src/ScatterPlot/legacy/index.ts
class LineChartPlugin (line 24) | class LineChartPlugin extends ChartPlugin {
method constructor (line 25) | constructor() {
FILE: plugins/preset-chart-xy/src/ScatterPlot/legacy/transformProps.ts
type Value (line 23) | interface Value {
type Key (line 27) | type Key = keyof Value;
type DataRow (line 29) | interface DataRow {
function transformProps (line 34) | function transformProps(chartProps: ChartProps) {
FILE: plugins/preset-chart-xy/src/ScatterPlot/transformProps.ts
function transformProps (line 24) | function transformProps(chartProps: ChartProps) {
FILE: plugins/preset-chart-xy/src/components/BoxPlot/BoxPlot.tsx
type TooltipProps (line 41) | interface TooltipProps {
type HookProps (line 55) | type HookProps = {
type Props (line 59) | type Props = {
class BoxPlot (line 70) | class BoxPlot extends React.PureComponent<Props> {
method render (line 149) | render() {
FILE: plugins/preset-chart-xy/src/components/BoxPlot/DefaultTooltipRenderer.tsx
function DefaultTooltipRenderer (line 25) | function DefaultTooltipRenderer({
FILE: plugins/preset-chart-xy/src/components/BoxPlot/Encoder.ts
type BoxPlotEncodingConfig (line 22) | type BoxPlotEncodingConfig = {
type BoxPlotEncoding (line 42) | type BoxPlotEncoding = DeriveEncoding<BoxPlotEncodingConfig>;
type BoxPlotEncoder (line 44) | type BoxPlotEncoder = Encoder<BoxPlotEncodingConfig>;
FILE: plugins/preset-chart-xy/src/components/BoxPlot/types.ts
type RawBoxPlotDataRow (line 20) | interface RawBoxPlotDataRow {
type BoxPlotDataRow (line 34) | interface BoxPlotDataRow {
FILE: plugins/preset-chart-xy/src/components/Line/DefaultLegendItemMarkRenderer.tsx
constant MARK_WIDTH (line 24) | const MARK_WIDTH = 12;
constant MARK_HEIGHT (line 25) | const MARK_HEIGHT = 8;
constant MARK_STYLE (line 27) | const MARK_STYLE: CSSProperties = { display: 'inline-block' };
function DefaultLegendItemMarkRenderer (line 29) | function DefaultLegendItemMarkRenderer({
FILE: plugins/preset-chart-xy/src/components/Line/DefaultTooltipRenderer.tsx
constant MARK_STYLE (line 25) | const MARK_STYLE = { marginRight: 4 };
function DefaultTooltipRenderer (line 27) | function DefaultTooltipRenderer({
FILE: plugins/preset-chart-xy/src/components/Line/Encoder.ts
type LineEncodingConfig (line 27) | type LineEncodingConfig = {
type LineEncoding (line 55) | type LineEncoding = DeriveEncoding<LineEncodingConfig>;
type LineEncoder (line 57) | type LineEncoder = Encoder<LineEncodingConfig>;
type LineChannelOutputs (line 59) | type LineChannelOutputs = DeriveChannelOutputs<LineEncodingConfig>;
FILE: plugins/preset-chart-xy/src/components/Line/Line.tsx
type TooltipProps (line 51) | interface TooltipProps {
type FormDataProps (line 71) | type FormDataProps = {
type HookProps (line 77) | type HookProps = {
type Props (line 81) | type Props = {
type Series (line 90) | interface Series {
type SeriesValue (line 99) | interface SeriesValue {
constant CIRCLE_STYLE (line 106) | const CIRCLE_STYLE = { strokeWidth: 1.5 };
class LineChart (line 108) | class LineChart extends PureComponent<Props> {
method renderSeries (line 161) | renderSeries(allSeries: Series[]) {
method render (line 303) | render() {
FILE: plugins/preset-chart-xy/src/components/ScatterPlot/DefaultTooltipRenderer.tsx
function DefaultTooltipRenderer (line 25) | function DefaultTooltipRenderer({
FILE: plugins/preset-chart-xy/src/components/ScatterPlot/Encoder.ts
type ScatterPlotEncodingConfig (line 27) | type ScatterPlotEncodingConfig = {
type ScatterPlotEncoding (line 59) | type ScatterPlotEncoding = DeriveEncoding<ScatterPlotEncodingConfig>;
type ScatterPlotEncoder (line 61) | type ScatterPlotEncoder = Encoder<ScatterPlotEncodingConfig>;
type ScatterPlotChannelOutputs (line 63) | type ScatterPlotChannelOutputs =
FILE: plugins/preset-chart-xy/src/components/ScatterPlot/ScatterPlot.tsx
type TooltipProps (line 41) | interface TooltipProps {
type HookProps (line 54) | type HookProps = {
type Props (line 58) | type Props = {
class ScatterPlot (line 69) | class ScatterPlot extends PureComponent<Props> {
method render (line 131) | render() {
FILE: plugins/preset-chart-xy/src/components/legend/DefaultLegend.tsx
constant LEGEND_CONTAINER_STYLE (line 25) | const LEGEND_CONTAINER_STYLE: CSSProperties = {
type Props (line 35) | type Props<Config extends EncodingConfig> = LegendRendererProps<Config>;
class DefaultLegend (line 37) | class DefaultLegend<
method render (line 40) | render() {
FILE: plugins/preset-chart-xy/src/components/legend/DefaultLegendGroup.tsx
constant LEGEND_GROUP_STYLE (line 25) | const LEGEND_GROUP_STYLE: CSSProperties = {
function DefaultLegendGroupRenderer (line 37) | function DefaultLegendGroupRenderer<
FILE: plugins/preset-chart-xy/src/components/legend/DefaultLegendItem.tsx
constant MARK_SIZE (line 25) | const MARK_SIZE = 8;
constant MARK_STYLE (line 27) | const MARK_STYLE: CSSProperties = { display: 'inline-block' };
function DefaultLegendItem (line 29) | function DefaultLegendItem<Config extends EncodingConfig>({
FILE: plugins/preset-chart-xy/src/components/legend/createRenderLegend.tsx
function createRenderLegend (line 25) | function createRenderLegend<Config extends EncodingConfig>(
FILE: plugins/preset-chart-xy/src/components/legend/types.ts
type LegendItemMarkRendererProps (line 27) | type LegendItemMarkRendererProps<Config extends EncodingConfig> = {
type LegendItemMarkRendererType (line 32) | type LegendItemMarkRendererType<Config extends EncodingConfig> =
type LegendItemLabelRendererProps (line 35) | type LegendItemLabelRendererProps<Config extends EncodingConfig> =
type LegendItemLabelRendererType (line 38) | type LegendItemLabelRendererType<Config extends EncodingConfig> =
type LegendItemRendererProps (line 41) | type LegendItemRendererProps<Config extends EncodingConfig> = {
type LegendItemRendererType (line 48) | type LegendItemRendererType<Config extends EncodingConfig> =
type LegendGroupRendererProps (line 51) | type LegendGroupRendererProps<Config extends EncodingConfig> = {
type LegendGroupRendererType (line 59) | type LegendGroupRendererType<Config extends EncodingConfig> =
type LegendRendererProps (line 62) | type LegendRendererProps<Config extends EncodingConfig> = {
type LegendRendererType (line 71) | type LegendRendererType<Config extends EncodingConfig> =
type LegendHooks (line 74) | type LegendHooks<Config extends EncodingConfig> = {
FILE: plugins/preset-chart-xy/src/configureEncodable.ts
function configureEncodable (line 78) | function configureEncodable() {
FILE: plugins/preset-chart-xy/src/utils/XYChartLayout.tsx
constant DEFAULT_LABEL_ANGLE (line 33) | const DEFAULT_LABEL_ANGLE = 40;
constant OVERFLOW_MARGIN (line 36) | const OVERFLOW_MARGIN = 8;
type XYChartLayoutConfig (line 38) | interface XYChartLayoutConfig<
class XYChartLayout (line 57) | class XYChartLayout<
method constructor (line 79) | constructor(config: XYChartLayoutConfig<XOutput, YOutput>) {
method renderChartWithFrame (line 158) | renderChartWithFrame(renderChart: (input: Dimension) => ReactNode) {
method renderXAxis (line 170) | renderXAxis(props?: PlainObject) {
method renderYAxis (line 186) | renderYAxis(props?: PlainObject) {
FILE: plugins/preset-chart-xy/src/utils/computeAxisLayout.ts
type AxisLayout (line 26) | interface AxisLayout {
function computeAxisLayout (line 39) | function computeAxisLayout<
FILE: plugins/preset-chart-xy/src/utils/convertScaleToDataUIScaleShape.ts
type DataUIScaleType (line 22) | type DataUIScaleType = 'time' | 'timeUtc' | 'linear' | 'band';
type DataUIScale (line 24) | interface DataUIScale {
function isCompatibleDomainOrRange (line 35) | function isCompatibleDomainOrRange(
function convertScaleToDataUIScale (line 49) | function convertScaleToDataUIScale<Output extends Value>(
FILE: plugins/preset-chart-xy/src/utils/createMarginSelector.tsx
constant DEFAULT_MARGIN (line 23) | const DEFAULT_MARGIN = { bottom: 16, left: 16, right: 16, top: 16 };
function createMarginSelector (line 25) | function createMarginSelector(
FILE: plugins/preset-chart-xy/src/utils/createTickComponent.tsx
function createTickComponent (line 24) | function createTickComponent({
FILE: plugins/preset-chart-xy/src/utils/createXYChartLayoutWithTheme.ts
function createXYChartLayoutWithTheme (line 24) | function createXYChartLayoutWithTheme<
FILE: plugins/preset-chart-xy/types/@data-ui/theme/index.d.ts
type SvgLabelTextStyle (line 21) | type SvgLabelTextStyle = {
type ChartTheme (line 55) | interface ChartTheme {
FILE: plugins/preset-chart-xy/types/@data-ui/xy-chart/index.d.ts
type Props (line 23) | type Props = {
type XYChartProps (line 27) | interface XYChartProps {
class AreaSeries (line 49) | class AreaSeries extends React.PureComponent<Props, {}> {}
class BoxPlotSeries (line 50) | class BoxPlotSeries extends React.PureComponent<Props, {}> {}
class CrossHair (line 51) | class CrossHair extends React.PureComponent<Props, {}> {}
class LinearGradient (line 52) | class LinearGradient extends React.PureComponent<Props, {}> {}
class LineSeries (line 53) | class LineSeries extends React.PureComponent<Props, {}> {}
class PointSeries (line 54) | class PointSeries extends React.PureComponent<Props, {}> {}
class WithTooltip (line 55) | class WithTooltip extends React.PureComponent<Props, {}> {}
class XYChart (line 56) | class XYChart extends React.PureComponent<XYChartProps, {}> {}
class XAxis (line 57) | class XAxis extends React.PureComponent<Props, {}> {}
class YAxis (line 58) | class YAxis extends React.PureComponent<Props, {}> {}
FILE: scripts/build.js
constant BABEL_CONFIG (line 63) | const BABEL_CONFIG = '--config-file=../../babel.config.js';
constant META_PACKAGES (line 66) | const META_PACKAGES = new Set(['demo', 'generator-superset']);
function run (line 68) | function run(cmd, options) {
function getPackages (line 78) | function getPackages(packagePattern, tsOnly = false) {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-legacy-plugin-chart-word-cloud/src/WordCloud.js
constant ROTATION (line 26) | const ROTATION = {
function WordCloud (line 46) | function WordCloud(element, props) {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-legacy-plugin-chart-word-cloud/src/index.js
class WordCloudChartPlugin (line 31) | class WordCloudChartPlugin extends ChartPlugin {
method constructor (line 32) | constructor() {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-legacy-plugin-chart-word-cloud/src/transformProps.js
function transformData (line 19) | function transformData(data, formData) {
function transformProps (line 30) | function transformProps(chartProps) {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/Table.tsx
type Props (line 37) | type Props = {
constant SEARCH_BAR_HEIGHT (line 64) | const SEARCH_BAR_HEIGHT = 40;
constant CHAR_WIDTH (line 66) | const CHAR_WIDTH = 10;
constant CELL_PADDING (line 68) | const CELL_PADDING = 32;
constant MAX_COLUMN_WIDTH (line 70) | const MAX_COLUMN_WIDTH = 300;
type TableProps (line 74) | type TableProps = Props & Readonly<typeof defaultProps>;
type InternalTableProps (line 76) | type InternalTableProps = TableProps & WithStylesProps;
type TableState (line 78) | type TableState = {
function getCellHash (line 87) | function getCellHash(cell: Cell) {
function getText (line 91) | function getText(
type columnWidthMetaDataType (line 105) | type columnWidthMetaDataType = {
class TableVis (line 112) | class TableVis extends React.PureComponent<InternalTableProps, TableStat...
method constructor (line 152) | constructor(props: InternalTableProps) {
method render (line 238) | render() {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/TableFormData.ts
type TableFormData (line 23) | type TableFormData = QueryFormData & {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/buildQuery.ts
function buildQuery (line 23) | function buildQuery(formData: TableFormData) {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/components/HTMLRenderer.tsx
function HTMLRenderer (line 25) | function HTMLRenderer({ value }: { value: string }) {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/createMetadata.ts
function createMetadata (line 23) | function createMetadata(useLegacyApi = false) {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/getRenderer.tsx
constant NEGATIVE_COLOR (line 28) | const NEGATIVE_COLOR = '#FFA8A8';
constant POSITIVE_COLOR (line 29) | const POSITIVE_COLOR = '#ced4da';
constant SELECTION_COLOR (line 30) | const SELECTION_COLOR = '#EBEBEB';
constant HEIGHT (line 34) | const HEIGHT = HEIGHT_TO_PX.micro;
type ColumnType (line 36) | type ColumnType = {
type Cell (line 45) | type Cell = {
constant NUMBER_STYLE (line 50) | const NUMBER_STYLE: CSSProperties = {
function getRenderer (line 56) | function getRenderer({
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/index.ts
class TableChartPlugin (line 31) | class TableChartPlugin extends ChartPlugin<TableFormData> {
method constructor (line 32) | constructor() {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/legacy/index.ts
class TableChartPlugin (line 30) | class TableChartPlugin extends ChartPlugin {
method constructor (line 31) | constructor() {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/legacy/transformProps.ts
function transformProps (line 31) | function transformProps(chartProps: ChartProps) {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/processColumns.ts
type inputType (line 31) | type inputType = {
function processColumns (line 39) | function processColumns(
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/processData.ts
type inputType (line 24) | type inputType = {
function processData (line 31) | function processData(
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/processMetrics.ts
type inputType (line 24) | type inputType = {
function processMetrics (line 30) | function processMetrics(
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/transformProps.ts
type PlainObject (line 34) | type PlainObject = {
function transformData (line 38) | function transformData(data: PlainObject[], formData: PlainObject) {
function transformProps (line 100) | function transformProps(chartProps: ChartProps) {
FILE: temporary-plugins/hold-potentially-deprecate/superset-ui-plugin-chart-table/src/types.ts
type PlainObject (line 20) | type PlainObject = {
FILE: temporary-plugins/plugin-chart-choropleth-map/src/chart/ChoroplethMap.tsx
constant INITIAL_TRANSFORM (line 46) | const INITIAL_TRANSFORM = {
type ChoroplethMapVisualProps (line 58) | type ChoroplethMapVisualProps = {
type ChoroplethMapProps (line 63) | type ChoroplethMapProps = ChoroplethMapVisualProps &
class ChoroplethMap (line 78) | class ChoroplethMap extends React.PureComponent<
method constructor (line 95) | constructor(props: ChoroplethMapProps & typeof defaultProps) {
method componentDidMount (line 105) | componentDidMount() {
method componentDidUpdate (line 110) | componentDidUpdate(prevProps: ChoroplethMapProps) {
method processData (line 141) | processData() {
method loadMap (line 166) | loadMap() {
method renderMap (line 174) | renderMap() {
method render (line 217) | render() {
FILE: temporary-plugins/plugin-chart-choropleth-map/src/chart/Encoder.ts
type ChoroplethMapEncodingConfig (line 27) | type ChoroplethMapEncodingConfig = {
type ChoroplethMapEncoding (line 36) | type ChoroplethMapEncoding = DeriveEncoding<ChoroplethMapEncodingConfig>;
type ChoroplethMapEncoder (line 38) | type ChoroplethMapEncoder = Encoder<ChoroplethMapEncodingConfig>;
type ChoroplethMapChannelOutputs (line 40) | type ChoroplethMapChannelOutputs =
FILE: temporary-plugins/plugin-chart-choropleth-map/src/chart/MapMetadata.ts
class MapMetadata (line 26) | class MapMetadata {
method constructor (line 31) | constructor(metadata: RawMapMetadata) {
method loadMap (line 38) | loadMap(): Promise<FeatureCollection> {
method createProjection (line 48) | createProjection() {
FILE: temporary-plugins/plugin-chart-choropleth-map/src/chart/MapTooltip.tsx
type MapDataPoint (line 27) | type MapDataPoint = Omit<ChoroplethMapChannelOutputs, 'tooltip'> & {
type MapTooltipProps (line 31) | type MapTooltipProps = {
function MapTooltip (line 38) | function MapTooltip({
FILE: temporary-plugins/plugin-chart-choropleth-map/src/chart/Projection.ts
type Projection (line 34) | type Projection = keyof typeof Projection;
FILE: temporary-plugins/plugin-chart-choropleth-map/src/chart/components.ts
constant PADDING (line 23) | const PADDING = supersetTheme.gridUnit * 4;
FILE: temporary-plugins/plugin-chart-choropleth-map/src/chart/loadMap.ts
function loadMap (line 23) | function loadMap(key: string) {
FILE: temporary-plugins/plugin-chart-choropleth-map/src/configureEncodable.ts
function configureEncodable (line 78) | function configureEncodable() {
FILE: temporary-plugins/plugin-chart-choropleth-map/src/plugin/index.ts
class ChoroplethMapChartPlugin (line 29) | class ChoroplethMapChartPlugin extends ChartPlugin {
method constructor (line 30) | constructor() {
FILE: temporary-plugins/plugin-chart-choropleth-map/src/plugin/transformProps.ts
function transformProps (line 21) | function transformProps(chartProps: ChartProps) {
FILE: temporary-plugins/plugin-chart-choropleth-map/src/types.ts
type BaseMapMetadata (line 25) | interface BaseMapMetadata {
type TopojsonMapMetadata (line 33) | interface TopojsonMapMetadata extends BaseMapMetadata {
type GeojsonMapMetadata (line 38) | interface GeojsonMapMetadata extends BaseMapMetadata {
type RawMapMetadata (line 43) | type RawMapMetadata = TopojsonMapMetadata | GeojsonMapMetadata;
FILE: temporary-plugins/plugin-chart-choropleth-map/stories/generateFakeMapData.ts
constant FRUITS (line 22) | const FRUITS = ['apple', 'banana', 'grape'];
type FakeMapData (line 24) | type FakeMapData = {
function generateFakeMapData (line 36) | async function generateFakeMapData(map: string) {
FILE: temporary-plugins/plugin-chart-choropleth-map/stories/useFakeMapData.ts
function useFakeMapData (line 23) | function useFakeMapData(map: string) {
FILE: temporary-plugins/superset-ui-plugins-demo/.storybook/config.js
function loadStorybook (line 21) | function loadStorybook() {
FILE: test/shims/Cache.ts
class Cache (line 21) | class Cache {
method constructor (line 24) | constructor(key: string) {
method match (line 29) | match(url: string): Promise<Response | undefined> {
method delete (line 33) | delete(url: string): Promise<boolean> {
method put (line 38) | put(url: string, response: Response): Promise<void> {
FILE: test/shims/CacheStorage.ts
class CacheStorage (line 21) | class CacheStorage {
method open (line 22) | open(key: string): Promise<Cache> {
method delete (line 28) | delete(key: string): Promise<boolean> {
Copy disabled (too large)
Download .json
Condensed preview — 1265 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (30,205K chars).
[
{
"path": ".eslintignore",
"chars": 90,
"preview": "coverage/\nnode_modules/\npublic/\nesm/\nlib/\ntmp/\ndist/\ntemporary-plugins/\nstorybook-static/\n"
},
{
"path": ".eslintrc.js",
"chars": 9788,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": ".github/CODEOWNERS",
"chars": 446,
"preview": "# See https://help.github.com/articles/about-codeowners/\n# for more info about CODEOWNERS file\n\n# It uses the same patte"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 655,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\n---\n\n### Describe the bug\n\nA clear and concise descriptio"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 566,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\n---\n\n### Is your feature request related to a problem?"
},
{
"path": ".github/ISSUE_TEMPLATE/question.md",
"chars": 92,
"preview": "---\nname: Question\nabout: Ask for help with something.\n---\n\nYour question.\n\n- How do I xxx?\n"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 75,
"preview": "💔 Breaking Changes\n\n🏆 Enhancements\n\n📜 Documentation\n\n🐛 Bug Fix\n\n🏠 Internal\n"
},
{
"path": ".github/config.yml",
"chars": 519,
"preview": "# Configuration for request-info - https://github.com/behaviorbot/request-info\n\n# *Required* Comment to reply with\nreque"
},
{
"path": ".github/dependabot.yml",
"chars": 1224,
"preview": "version: 2\nupdates:\n - package-ecosystem: npm\n directory: '/'\n schedule:\n interval: daily\n open-pull-requ"
},
{
"path": ".github/issue_label_bot.yaml",
"chars": 85,
"preview": "label-alias:\n bug: '#bug'\n feature_request: '#enhancement'\n question: '#question'\n"
},
{
"path": ".github/semantic.yml",
"chars": 71,
"preview": "# Always validate the PR title, and ignore the commits\ntitleOnly: true\n"
},
{
"path": ".github/workflows/chromatic.yml",
"chars": 1568,
"preview": "name: Upload Chomatic Build\n\non:\n workflow_run:\n workflows: ['build-and-test-workflow']\n types:\n - completed"
},
{
"path": ".github/workflows/ci.yml",
"chars": 1998,
"preview": "name: build-and-test-workflow\n\non:\n push:\n branches:\n - '*'\n tags-ignore:\n - 'trigger-patch-test.*'\n p"
},
{
"path": ".github/workflows/codecov.sh",
"chars": 57229,
"preview": "#!/usr/bin/env bash\n#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreeme"
},
{
"path": ".github/workflows/release.yml",
"chars": 2741,
"preview": "name: release-workflow\n\non:\n push:\n branches:\n - 'master'\n\njobs:\n build:\n name: Bump version and publish pa"
},
{
"path": ".gitignore",
"chars": 496,
"preview": ".DS_Store\n*.DS_Store\n\n# Logs\nlogs/\n*.log\n\n# Cache\n.bundle/\n.happo/\n.idea/\n.next/\n.cache\n.eslintcache\n.idea\n*.iml\n.npm\n.n"
},
{
"path": ".nvmrc",
"chars": 9,
"preview": "v14.15.5\n"
},
{
"path": ".prettierignore",
"chars": 205,
"preview": "_gh-pages/\ncoverage/\nnode_modules/\npublic/\nesm/\nlib/\ntmp/\ndist/\nlerna.json\nnpm-shrinkwrap.json\npackage-lock.json\ntsconfi"
},
{
"path": ".rat-excludes",
"chars": 849,
"preview": "# Note: these patterns are applied to single files or directories, not full paths\n.gitignore\ndocs/README.md\n.gitattribut"
},
{
"path": "CHANGELOG.md",
"chars": 80035,
"preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
},
{
"path": "CONTRIBUTING.md",
"chars": 2163,
"preview": "## Contributing guidelines\n\n### Setup local development\n\n1. clone this repo\n2. have `npm` install package dependencies a"
},
{
"path": "LICENSE",
"chars": 10850,
"preview": " Apache License\n Version 2.0, January 2004\n http"
},
{
"path": "README.md",
"chars": 14973,
"preview": "# @superset-ui\n\n[ under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "codecov.yml",
"chars": 446,
"preview": "coverage:\n status:\n patch: off\n project:\n default:\n target: 0%\n threshold: 10%\n core-pack"
},
{
"path": "commitlint.config.js",
"chars": 927,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "docs/debugging.md",
"chars": 834,
"preview": "# Debug Superset plugins in Superset app\n\n## Activate plugins for local development\n\n1. First, make sure you have run `n"
},
{
"path": "docs/storybook.md",
"chars": 386,
"preview": "## Using Storybook\n\nYou can demo your changes by running the storybook demo locally with the following commands:\n\n```sh\n"
},
{
"path": "jest.config.js",
"chars": 2520,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "lerna.json",
"chars": 444,
"preview": "{\n \"lerna\": \"3.2.1\",\n \"npmClient\": \"npm\",\n \"packages\": [\n \"packages/*\",\n \"plugins/*\"\n ],\n \"useWorkspaces\": tr"
},
{
"path": "package.json",
"chars": 6278,
"preview": "{\n \"name\": \"@superset-ui/monorepo\",\n \"version\": \"0.0.0\",\n \"description\": \"Superset UI\",\n \"private\": true,\n \"scripts"
},
{
"path": "packages/generator-superset/.gitattributes",
"chars": 12,
"preview": "* text=auto\n"
},
{
"path": "packages/generator-superset/CHANGELOG.md",
"chars": 1104,
"preview": "<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE "
},
{
"path": "packages/generator-superset/README.md",
"chars": 1715,
"preview": "<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE "
},
{
"path": "packages/generator-superset/generators/app/index.js",
"chars": 1910,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/generator-superset/generators/package/index.js",
"chars": 2255,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/generator-superset/generators/package/templates/README.md",
"chars": 1464,
"preview": "<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE "
},
{
"path": "packages/generator-superset/generators/package/templates/_package.json",
"chars": 605,
"preview": "{\n \"name\": \"@superset-ui/<%= name %>\",\n \"version\": \"0.0.0\",\n \"description\": \"Superset UI <%= name %>\",\n \"sideEffects"
},
{
"path": "packages/generator-superset/generators/package/templates/src/index.txt",
"chars": 31,
"preview": "const x = 1;\nexport default x;\n"
},
{
"path": "packages/generator-superset/generators/package/templates/test/index.txt",
"chars": 96,
"preview": "describe('My Test', () => {\n it('tests something', () => {\n expect(1).toEqual(1);\n });\n});\n"
},
{
"path": "packages/generator-superset/generators/plugin-chart/index.js",
"chars": 3823,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/README.erb",
"chars": 1353,
"preview": "## @superset-ui/plugin-chart-<%= packageName %>\n\n<%if (addBadges) { %>[ under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/src/index.erb",
"chars": 1309,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/src/plugin/buildQuery.erb",
"chars": 2128,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/src/plugin/controlPanel.erb",
"chars": 6818,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/src/plugin/index.erb",
"chars": 1975,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/src/plugin/transformProps.erb",
"chars": 3117,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/src/types.erb",
"chars": 1501,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/test/index.erb",
"chars": 1383,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/test/plugin/buildQuery.test.erb",
"chars": 1248,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/test/plugin/transformProps.test.erb",
"chars": 1802,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/tsconfig.json",
"chars": 411,
"preview": "{\n \"compilerOptions\": {\n \"declarationDir\": \"lib\",\n \"outDir\": \"lib\",\n \"rootDir\": \"src\"\n },\n \"exclude\": [\n "
},
{
"path": "packages/generator-superset/generators/plugin-chart/templates/types/external.d.ts",
"chars": 880,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/generator-superset/package.json",
"chars": 899,
"preview": "{\n \"name\": \"@superset-ui/generator-superset\",\n \"version\": \"0.18.25\",\n \"description\": \"Scaffolder for Superset\",\n \"bu"
},
{
"path": "packages/generator-superset/test/app.test.js",
"chars": 1852,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/generator-superset/test/package.test.js",
"chars": 2406,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/generator-superset/test/plugin-chart.test.js",
"chars": 2245,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/generator-superset/test/tsconfig.json",
"chars": 300,
"preview": "{\n \"compilerOptions\": {\n \"composite\": false,\n \"emitDeclarationOnly\": false,\n \"noEmit\": true,\n \"rootDir\": \"."
},
{
"path": "packages/superset-ui-chart-controls/CHANGELOG.md",
"chars": 1261,
"preview": "<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE "
},
{
"path": "packages/superset-ui-chart-controls/README.md",
"chars": 1468,
"preview": "<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE "
},
{
"path": "packages/superset-ui-chart-controls/package.json",
"chars": 949,
"preview": "{\n \"name\": \"@superset-ui/chart-controls\",\n \"version\": \"0.18.25\",\n \"description\": \"Superset UI control-utils\",\n \"side"
},
{
"path": "packages/superset-ui-chart-controls/src/components/CertifiedIconWithTooltip.tsx",
"chars": 2440,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/ColumnOption.tsx",
"chars": 3184,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/ColumnTypeLabel.tsx",
"chars": 1929,
"preview": "/* eslint-disable no-nested-ternary */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more cont"
},
{
"path": "packages/superset-ui-chart-controls/src/components/ControlForm/ControlFormItem.tsx",
"chars": 3749,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/ControlForm/controls.tsx",
"chars": 2912,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/ControlForm/index.tsx",
"chars": 3846,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/ControlHeader.tsx",
"chars": 4138,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/InfoTooltipWithTrigger.tsx",
"chars": 2160,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/MetricOption.tsx",
"chars": 3497,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/Select.tsx",
"chars": 3149,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/components/Tooltip.tsx",
"chars": 1807,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-chart-controls/src/constants.ts",
"chars": 1679,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/index.ts",
"chars": 1636,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/operators/boxplotOperator.ts",
"chars": 2237,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/operators/contributionOperator.ts",
"chars": 1246,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/operators/index.ts",
"chars": 1384,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/pivotOperator.ts",
"chars": 2038,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/operators/prophetOperator.ts",
"chars": 1538,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/operators/resampleOperator.ts",
"chars": 1596,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/rollingWindowOperator.ts",
"chars": 2850,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/sortOperator.ts",
"chars": 1384,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/timeCompareOperator.ts",
"chars": 1691,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/timeComparePivotOperator.ts",
"chars": 2357,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/types.ts",
"chars": 980,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/operators/utils/constants.ts",
"chars": 931,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/utils/getMetricOffsetsMap.ts",
"chars": 1791,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/utils/index.ts",
"chars": 1032,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/operators/utils/isValidTimeCompare.ts",
"chars": 1342,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/sections/advancedAnalytics.tsx",
"chars": 5944,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/sections/annotationsAndLayers.tsx",
"chars": 1339,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/sections/chartTitle.tsx",
"chars": 3278,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/sections/forecastInterval.tsx",
"chars": 3982,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/sections/index.ts",
"chars": 981,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/sections/sections.tsx",
"chars": 3578,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/ColumnConfigControl.tsx",
"chars": 5491,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/ColumnConfigItem.tsx",
"chars": 2499,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/ColumnConfigPopover.tsx",
"chars": 2383,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/constants.tsx",
"chars": 5816,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/index.tsx",
"chars": 986,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/ColumnConfigControl/types.ts",
"chars": 1728,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/RadioButtonControl.tsx",
"chars": 2453,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/index.tsx",
"chars": 1165,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/components/types.ts",
"chars": 1371,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/dndControls.tsx",
"chars": 6092,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/emitFilterControl.tsx",
"chars": 1312,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/index.tsx",
"chars": 16584,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/shared-controls/legacySortBy.tsx",
"chars": 1259,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/types.ts",
"chars": 12729,
"preview": "/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor "
},
{
"path": "packages/superset-ui-chart-controls/src/utils/D3Formatting.ts",
"chars": 2387,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/utils/columnChoices.ts",
"chars": 1277,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/utils/expandControlConfig.tsx",
"chars": 2755,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts",
"chars": 6909,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/utils/index.ts",
"chars": 1065,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/utils/mainMetric.ts",
"chars": 1277,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/src/utils/selectOptions.ts",
"chars": 1560,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/components/ColumnOption.test.tsx",
"chars": 3749,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/components/ColumnTypeLabel.test.tsx",
"chars": 2672,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/components/InfoTooltipWithTrigger.test.tsx",
"chars": 2180,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/components/MetricOption.test.tsx",
"chars": 3333,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/index.test.ts",
"chars": 1029,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/shared-controls/emitFilterControl.test.tsx",
"chars": 1049,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/tsconfig.json",
"chars": 300,
"preview": "{\n \"compilerOptions\": {\n \"composite\": false,\n \"emitDeclarationOnly\": false,\n \"noEmit\": true,\n \"rootDir\": \"."
},
{
"path": "packages/superset-ui-chart-controls/test/types.test.ts",
"chars": 2201,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/columnChoices.test.tsx",
"chars": 1846,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/expandControlConfig.test.tsx",
"chars": 2605,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts",
"chars": 10963,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/mainMetric.test.ts",
"chars": 1581,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/operators/boxplotOperator.test.ts",
"chars": 2826,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/operators/contributionOperator.test.ts",
"chars": 1740,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/operators/pivotOperator.test.ts",
"chars": 3718,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/operators/prophetOperator.test.ts",
"chars": 2083,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/operators/resampleOperator.test.ts",
"chars": 2638,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/operators/rollingWindowOperator.test.ts",
"chars": 4775,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/operators/sortOperator.test.ts",
"chars": 3092,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/operators/timeCompareOperator.test.ts",
"chars": 4818,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/test/utils/selectOptions.test.ts",
"chars": 1845,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-chart-controls/tsconfig.json",
"chars": 328,
"preview": "{\n \"compilerOptions\": {\n \"declarationDir\": \"lib\",\n \"outDir\": \"lib\",\n \"rootDir\": \"src\"\n },\n \"exclude\": [\n "
},
{
"path": "packages/superset-ui-core/CHANGELOG.md",
"chars": 1090,
"preview": "<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE "
},
{
"path": "packages/superset-ui-core/README.md",
"chars": 1399,
"preview": "<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE "
},
{
"path": "packages/superset-ui-core/package.json",
"chars": 1923,
"preview": "{\n \"name\": \"@superset-ui/core\",\n \"version\": \"0.18.25\",\n \"description\": \"Superset UI core\",\n \"sideEffects\": false,\n "
},
{
"path": "packages/superset-ui-core/src/chart/clients/ChartClient.ts",
"chars": 6133,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/components/ChartDataProvider.tsx",
"chars": 5377,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/components/FallbackComponent.tsx",
"chars": 1652,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/components/NoResultsComponent.tsx",
"chars": 2542,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/components/SuperChart.tsx",
"chars": 7583,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/components/SuperChartCore.tsx",
"chars": 6379,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/components/createLoadableRenderer.ts",
"chars": 2192,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/components/reactify.tsx",
"chars": 3401,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/index.ts",
"chars": 2326,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/models/ChartControlPanel.ts",
"chars": 928,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/models/ChartMetadata.ts",
"chars": 3249,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/models/ChartPlugin.ts",
"chars": 5614,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/models/ChartProps.ts",
"chars": 5932,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/registries/ChartBuildQueryRegistrySingleton.ts",
"chars": 1511,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/registries/ChartComponentRegistrySingleton.ts",
"chars": 1177,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/registries/ChartControlPanelRegistrySingleton.ts",
"chars": 1177,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/registries/ChartMetadataRegistrySingleton.ts",
"chars": 1195,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/registries/ChartTransformPropsRegistrySingleton.ts",
"chars": 1229,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/types/Annotation.ts",
"chars": 891,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/types/Base.ts",
"chars": 1653,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/types/QueryResponse.ts",
"chars": 1664,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart/types/TransformFunction.ts",
"chars": 1660,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart-composition/ChartFrame.tsx",
"chars": 2094,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart-composition/index.ts",
"chars": 1056,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart-composition/legend/WithLegend.tsx",
"chars": 3953,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart-composition/tooltip/TooltipFrame.tsx",
"chars": 1344,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/chart-composition/tooltip/TooltipTable.tsx",
"chars": 2031,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/CategoricalColorNamespace.ts",
"chars": 2771,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/CategoricalColorScale.ts",
"chars": 5348,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/CategoricalScheme.ts",
"chars": 913,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/CategoricalSchemeRegistrySingleton.ts",
"chars": 1292,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/ColorScheme.ts",
"chars": 1343,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/ColorSchemeRegistry.ts",
"chars": 1181,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/SequentialScheme.ts",
"chars": 3235,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/SequentialSchemeRegistrySingleton.ts",
"chars": 1286,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/categorical/airbnb.ts",
"chars": 1446,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/categorical/d3.ts",
"chars": 2474,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/categorical/echarts.ts",
"chars": 1468,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/categorical/google.ts",
"chars": 1644,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/categorical/index.ts",
"chars": 1202,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/categorical/lyft.ts",
"chars": 1196,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/categorical/preset.ts",
"chars": 1407,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/categorical/superset.ts",
"chars": 1411,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/index.ts",
"chars": 870,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/sequential/common.ts",
"chars": 4617,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/sequential/d3.ts",
"chars": 8782,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/colorSchemes/sequential/index.ts",
"chars": 913,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/index.ts",
"chars": 1490,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/stringifyAndTrim.ts",
"chars": 968,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/types.ts",
"chars": 868,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/color/utils.ts",
"chars": 1766,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/components/SafeMarkdown.tsx",
"chars": 1790,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/components/constants.ts",
"chars": 1022,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
},
{
"path": "packages/superset-ui-core/src/components/index.ts",
"chars": 896,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/connection/README.md",
"chars": 3583,
"preview": "<!--\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE "
},
{
"path": "packages/superset-ui-core/src/connection/SupersetClient.ts",
"chars": 1860,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOT"
},
{
"path": "packages/superset-ui-core/src/connection/SupersetClientClass.ts",
"chars": 6205,
"preview": "/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NO"
}
]
// ... and 1065 more files (download for full content)
About this extraction
This page contains the full source code of the apache-superset/superset-ui GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1265 files (28.2 MB), approximately 7.5M tokens, and a symbol index with 1823 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.