This is an automated email from the ASF dual-hosted git repository.
jli pushed a change to branch feat-async-select-tests
in repository https://gitbox.apache.org/repos/asf/superset.git
discard ed3ae5b890 fix(tests): add timeout to default value validation test
for CI stability
discard 65aae164dc test(filters): remove long-skipped time range pre-filter
test
discard e22807b2e7 test(filters): add unit tests for mostUsedDataset and
doesColumnMatchFilterType
discard d019031c2a test(filters): improve test isolation and follow testing
guidelines
discard 28ebfca48c refactor(filters): extract shouldShowTimeRangePicker and
fix test typing
discard c6b67b63f2 test(filters): add hasTemporalColumns unit tests and
improve default value validation
discard cbd115bd71 test(dashboard): fix and document FiltersConfigModal async
select limitations
add dcc556a9a7 chore(CHANGELOG): add link to 6.0.0 CHANGELOG (#36832)
add 5909e90081 feat(security): add built-in Public role for anonymous
dashboard access (#36548)
add 12a266fd2f fix(trino): update query progress using cursor stats
(#36872)
add cedc35e39f fix(SQLLab): remove error icon displayed when writing Jinja
SQL even when the script is correct (#36422)
add f9fde87e85 feat(native filters): add filter type icons in config modal
(#36905)
add 1949d1bb96 feat(dev): add make ports and make open commands (#36906)
add aaa174f820 docs: add Netlify configuration for PR deploy previews
(#36908)
add 9aff89c1b4 chore(frontend): migrate SqlLab and explore JS/JSX files to
TypeScript (#36760)
add 9968393e4c feat(ci): add container security scan for image built for
commits merged to mainline (#36604)
add d7d94ba640 fix(ag-grid): Ag Grid Date Filter timezone correction
(#36270)
add 861e5cd013 fix(security): enforce datasource access control in
get_samples() (#36550)
add 5edaed2e5b fix(alerts): wrong alert trigger with custom query (#35871)
add 7a5441bc7a refactor: Remove unimplemented APIs from
@apache-superset/core (#36952)
add 0c1edd4568 chore: Bump @apache-superset/core (0.0.1-rc9) (#36953)
add dfdf8e75d8 fix: handle undefined template variables safely in query
rendering. (#35009)
add f9be2b816a feat(docs): add resources admonition with external links
(#36761)
add 64ee48f147 fix(mcp): use chart.query_context for get_chart_data like
the API does (#36937)
add 6f67b05375 chore: Update INTHEWILD.yaml for PlaidCloud (#36741)
add 03caa7b337 docs(INTHEWILD): add Cirrus Assessment (#36871)
add 84279acd2f feat(mcp): add unified get_schema tool for schema discovery
(#36458)
add a6d85dccf8 fix: streaming export losing g context (#36950)
add 16e046b5d9 docs(INTHEWILD): add HOLLYLAND猛玛 (#36968)
add 70b2e520b2 chore(frontend): Update $schema path in oxlint.json (#36859)
add 337eb3baf5 fix(dashboard): prevent PublishedLabel overlap in
non-English languages (#36877)
add 047360641a feat(mcp): change save_chart default to False for
preview-first workflow (#36935)
add 4249b8ee6a chore(deps-dev): bump
eslint-plugin-react-you-might-not-need-an-effect from 0.5.1 to 0.8.3 in
/superset-frontend (#36972)
add 3ac76e116d chore: Update INTHEWILD.yaml (#36733)
add e9b91f6ec9 chore(deps): bump ioredis from 5.8.2 to 5.9.0 in
/superset-websocket (#36920)
add 77ebc5ac10 chore(deps-dev): bump @typescript-eslint/parser from 8.51.0
to 8.52.0 in /docs (#36918)
add dd7f0c4224 chore(deps-dev): bump typescript-eslint from 8.50.1 to
8.52.0 in /superset-websocket (#36916)
add af185ad8c9 chore(deps-dev): bump jsdom from 27.0.0 to 27.4.0 in
/superset-frontend (#36922)
add 4fc8157d6f chore(deps-dev): bump source-map from 0.7.4 to 0.7.6 in
/superset-frontend (#36653)
add 85cf46dc1c fix(mcp): remove unused ctx parameter from health_check
tool (#36992)
add 734d64081f chore(deps): bump caniuse-lite from 1.0.30001762 to
1.0.30001763 in /docs (#36970)
add ffbf81e952 chore(deps): bump ws from 8.18.3 to 8.19.0 in
/superset-websocket (#36919)
add 07aa7622f7 chore(deps): bump react-resizable from 3.0.5 to 3.1.3 in
/superset-frontend (#36911)
add 57f8f50292 chore(deps-dev): bump @typescript-eslint/eslint-plugin from
8.50.1 to 8.51.0 in /docs (#36898)
add 413dfc98ff chore(deps): bump @storybook/addon-docs from 8.6.14 to
8.6.15 in /docs (#36824)
add f48322c17d chore: bump flask-cors to 6.0.2 (#36640)
add ea90d1f141 refactor(db-engine-specs): use standard OAuth 2.0 params in
base class (#37010)
add f895250cf9 fix(mypy): add overrides for superset-core local dev
consistency (#36907)
add 14c0cad0ba chore: remove deprecated function (#37021)
add 1e8d648f47 feat: Chart query last run timestamp (#36934)
add 53dddf4db2 feat(embedded-sdk): Add resolvePermalinkUrl callback for
custom permalink URLs (#36924)
add ecefba5bf7 fix(mcp): resolve startup failures from circular DAO
imports (#37023)
add 1cface15e6 docs: Update INTHEWILD.yaml (#36888)
add 0294c30c9e fix(Tabs): prevent infinite rerenders with nested tabs
(#37018)
add e9b6791ffb refactor: move translations and logging to new core (#36929)
add 4f5789abfe fix(reports): Use authenticated user as recipient for
chart/dashboard reports (#36981)
add d914b35cc0 fix(translations): post merge fix for new translations
addded (#37041)
add 459b4cb23d perf(date_parser): bound regex quantifiers for
deterministic parsing performance (#36983)
add 4f444ae1d2 feat(ag-grid): Server Side Filtering for Column Level
Filters (#35683)
add 62c7b48b5c fix(extensions-cli): fix dev mode error (#37024)
add 169d27c9e9 fix(extensions): gracefully handle dist directory
rebuilding (#37025)
add 911d72c957 fix(models): prevent SQLAlchemy and_() deprecation warning
(#37020)
add d8f7ae83ee fix(sqlglot): use Athena dialect for awsathena parsing
(#36747)
add dcdcf88969 chore(chart): rollback legend top alignment to the right
(#36994)
add f4772a9383 chore(deps-dev): bump webpack-bundle-analyzer from 5.1.0 to
5.1.1 in /superset-frontend (#37006)
add 2a38ce001e fix(deckgl): remove visibility condition in deckgl stroke
color (#37029)
add 005b2af985 chore(deps-dev): bump @types/lodash from 4.17.21 to 4.17.23
in /superset-websocket (#37045)
add 4fe2085596 chore(deps): bump caniuse-lite from 1.0.30001763 to
1.0.30001764 in /docs (#37049)
add fac5d2bcb6 feat(db): add dynamic schema support for athena (#36003)
add 22cfc4536b fix(export): URL prefix handling for subdirectory
deployments (#36771)
add 72c69e2ca6 chore(deps): bump fs-extra from 11.3.0 to 11.3.3 in
/superset-frontend (#37001)
add d56bc5826f chore(deps-dev): bump @applitools/eyes-storybook from
3.60.0 to 3.63.4 in /superset-frontend (#37003)
add adb575be2f chore(deps-dev): bump typescript-eslint from 8.50.1 to
8.52.0 in /docs (#36913)
add fa3d4a75ca chore(deps): bump actions/download-artifact from 6 to 7
(#36699)
add 7503ee4e09 feat(sqllab): primary/secondary action extensions (#36644)
add 462fffc23c fix(docs): Update references from LLMS.md to AGENTS.md
(#37060)
add 481bfa0f68 feat(starrocks): add catalog support for StarRocks database
connections (#37026)
add 5f58241795 fix(explore): dispatch NumberControl value on blur to allow
field clearing (#37007)
add ad3812edd7 fix(table): keep d3-format semantics when applying currency
formatting (#37039)
add 936e37bd02 chore(deps-dev): bump @babel/node from 7.28.0 to 7.28.6 in
/superset-frontend (#37089)
add e17bfae6bd chore(deps-dev): bump webpack from 5.103.0 to 5.104.1 in
/superset-frontend (#37083)
add fc67569cd4 fix(datasets): ui bug fixes (#37058)
add 23a47e2f5a chore(deps-dev): bump webpack-dev-server from 5.2.2 to
5.2.3 in /superset-frontend (#37088)
add 3a3cbc2900 chore(deps-dev): bump @types/node from 25.0.3 to 25.0.7 in
/superset-websocket (#37081)
add 6c75365427 chore(deps-dev): bump typescript-eslint from 8.52.0 to
8.53.0 in /docs (#37076)
add 5d5012aa9f chore(deps-dev): bump @types/lodash from 4.17.21 to 4.17.23
in /superset-frontend (#37077)
add 560da50df8 chore(deps): bump @babel/runtime from 7.28.4 to 7.28.6 in
/superset-frontend (#37080)
add 393259bb9e chore(deps-dev): bump typescript-eslint from 8.52.0 to
8.53.0 in /superset-websocket (#37082)
add 0b4fcce03b chore(deps-dev): bump cross-env from 10.0.0 to 10.1.0 in
/superset-frontend (#36657)
add 1166df3579 docs(inthewild): Dark mode issues on InTheWild page (#37034)
add 0c490dc1ab docs(exploring-data): add overview to tutorial (#37028)
add fd3eea0557 chore(deps): bump lodash-es from 4.17.21 to 4.17.22 in
/superset-frontend (#37048)
add 0404c99e39 fix(dashboard): revert cell hover and active colors to
grayscale (#36991)
add e053418c97 fix(Matrixify): Do not clear values when saving (#37090)
add bdcc98743d chore(deps-dev): bump cheerio from 1.1.0 to 1.1.2 in
/superset-frontend (#37002)
add 91dba9dcbf chore(deps-dev): bump @babel/types from 7.28.4 to 7.28.5 in
/superset-frontend (#36652)
add 86bc493423 chore(deps-dev): bump @babel/types from 7.28.4 to 7.28.6 in
/superset-frontend (#37087)
add 4f3403b134 chore(deps): bump antd from 6.1.2 to 6.2.0 in /docs (#37079)
add 35ac4c74fd feat(dashboard): chart customizations modal and plugins
(#36062)
add a272253243 fix(table chart): time comparison totals returning null
(#37111)
add 137ebdee39 fix(prune_logs): improve performance by using id column
only for ordering log records when max_rows_per_run is provided (#37138)
add 4c01b5c324 docs: Add UserGuiding INTHEWILD.yaml (#37030)
add debdfbc835 chore(deps-dev): bump
@babel/plugin-transform-modules-commonjs from 7.27.1 to 7.28.6 in
/superset-frontend (#37117)
add 64424f1625 chore(deps-dev): bump @types/node from 25.0.7 to 25.0.8 in
/superset-websocket (#37116)
add 6ca0f7a925 chore(deps-dev): bump @babel/cli from 7.28.3 to 7.28.6 in
/superset-frontend (#37124)
add 2324b4c9e5 chore(deps-dev): bump @babel/preset-typescript from 7.26.0
to 7.28.5 in /superset-frontend (#36661)
add 6eb4db6930 fix(controls): Only initialize categorical control on
numeric x axis (#37115)
add 23b91d22ef fix(charts): properly parse error responses in
StatefulChart (#37130)
add 81fdc2bd0e feat(dates): adding handling for first of (#37098)
add c867d9379f chore(deps-dev): bump ts-loader from 9.5.2 to 9.5.4 in
/superset-frontend (#36999)
add 96a3f2a187 chore(deps-dev): bump @babel/preset-react from 7.27.1 to
7.28.5 in /superset-frontend (#37047)
add 68e917c3f6 chore(deps-dev): bump eslint-plugin-testing-library from
7.14.0 to 7.15.4 in /superset-frontend (#37052)
add db61e4f62a chore(deps-dev): bump
eslint-plugin-react-you-might-not-need-an-effect from 0.8.3 to 0.8.5 in
/superset-frontend (#37054)
add 7f6cdc5616 chore(deps-dev): bump prettier from 3.7.4 to 3.8.0 in
/superset-websocket (#37149)
add 4c267b7ee2 chore(deps-dev): bump prettier from 3.7.4 to 3.8.0 in /docs
(#37152)
add f69cd43bd0 chore(deps-dev): bump eslint-plugin-prettier from 5.5.4 to
5.5.5 in /docs (#37153)
add c6ad0dbd3a chore(deps-dev): bump prettier from 3.7.4 to 3.8.0 in
/superset-frontend (#37156)
add 89380638b0 chore(deps): bump immer from 11.0.1 to 11.1.3 in
/superset-frontend (#37159)
add 82d74d15ec chore(deps): bump react-intersection-observer from 9.16.0
to 10.0.0 in /superset-frontend (#37162)
add 129b8e10a2 chore(deps-dev): bump @babel/core from 7.28.3 to 7.28.6 in
/superset-frontend (#37154)
add e071e0c5a4 chore(deps-dev): bump eslint-plugin-prettier from 5.5.4 to
5.5.5 in /superset-frontend (#37160)
add b142f1956f chore(deps): bump chrono-node from 2.7.8 to 2.9.0 in
/superset-frontend (#36632)
add 95c14b1fc1 chore(Matrixify): disable matrixify for incompatible viz
types (#37163)
add 9555798d37 fix(data-zoom): Data-zoom not rendered properly in
Matrixify (#37134)
add ab8df1ab34 fix: Move head_custom_extra above csrf token input (#37173)
add 54f19856de fix: HTML detection in tables (#37171)
add c30edaf075 feat: add tab select with save chart to dashboard (#36332)
add 4532ccf638 fix(mcp): push Flask app context in mcp_auth_hook for tool
execution (#37190)
add d0783da3e5 fix(mcp): Handle big_number charts and make semantic
warnings non-blocking (#37142)
add 2bcb66c2fc refactor(mcp): simplify single metric chart type check
(#37215)
add 4b1d92e575 feat: add droppable area to tab empty state (#37210)
add 896947c787 fix(mcp): restore select_columns filtering in list tools
(#37213)
add f4474b2e3e feat: Dynamic currency (#36416)
add b941be01cf chore(deps-dev): bump @types/node from 25.0.8 to 25.0.9 in
/superset-websocket (#37193)
add 33ff127370 chore(deps-dev): bump baseline-browser-mapping from 2.9.9
to 2.9.14 in /superset-frontend (#37198)
add f00f7d1c18 chore(deps): bump ioredis from 5.9.0 to 5.9.2 in
/superset-websocket (#37194)
add a77c2d550c fix(mixed-timeseries): prevent duplicate legend entries
(#37217)
add f984dca5cc fix(sunburst): make Show Total text theme-aware (#37177)
add 6453980d8d chore(deps): bump react-error-boundary from 6.0.0 to 6.1.0
in /superset-frontend (#37206)
add cee5ce13e0 chore(deps-dev): bump @types/node from 25.0.3 to 25.0.9 in
/superset-frontend (#37196)
add a06e6eb680 chore(deps): bump googleapis from 169.0.0 to 170.1.0 in
/superset-frontend (#37195)
add 4d462c76bd chore(deps-dev): bump @types/urijs from 1.19.25 to 1.19.26
in /superset-frontend (#36636)
add 476e454384 chore(deps): update @deck.gl/extensions requirement from
~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl
(#36618)
add 39238ef8a9 feat(ag-grid-table): Enable Time Shift feature for AG Grid
Table (#37072)
add 2e29e33dd8 fix(calendar-heatmap): correct month display across
timezones (#37064)
add 2900258e05 fix(Dashboard): Auto-apply filters with default values when
extraForm… (#36927)
add c0cbbe393a feat(Matrixify): add matrixify tag to list view and explore
(#37247)
add 409cdad264 fix(mcp): prevent MCP service from corrupting shared
appbuilder singleton (#37252)
add 4393db57d9 fix(native-filters): enable Apply button when selecting
Boolean FALSE value (#37017)
add f4597be341 fix(timeseries): x-axis last month was hidden (#37181)
add 1f19ef92cb refactor(TimezoneSelector): Enhance timezone selection
logic and improve performance (#36486)
add 2d20079a88 fix(mcp): Remove screenshot URL functionality from MCP
chart tools (#37228)
add 6e1718910f fix(sqllab): show virtual dataset banner only when
isDataset param is true (#37184)
add fe16c828cf feat(mcp): Add support for AG Grid Interactive Table
(ag-grid-table) viz_type (#37191)
add 2187fb4ab4 fix(transpile_query): Fix export_as_csv error:
"transpile_to_dialect": ['Unknown field.'] (#37249)
add 50d0508a92 feat(mcp): Add Redis EventStore support for multi-pod
deployments (#37216)
add e1fa374517 feat(mcp): add time_grain parameter to XY chart generation
(#37182)
add 3fba967856 fix(delete-filter): deleted native filters are still shown
until [sc-96553] (#37012)
add 13e3e1af41 test(dashboard): fix and document FiltersConfigModal async
select limitations
add ad49d76cd3 test(filters): add hasTemporalColumns unit tests and
improve default value validation
add 4d3c531389 refactor(filters): extract shouldShowTimeRangePicker and
fix test typing
add b14b4866aa test(filters): improve test isolation and follow testing
guidelines
add a53ef62896 test(filters): add unit tests for mostUsedDataset and
doesColumnMatchFilterType
add 86842739dc test(filters): remove long-skipped time range pre-filter
test
add 05302a6d3a fix(tests): add timeout to default value validation test
for CI stability
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (ed3ae5b890)
\
N -- N -- N refs/heads/feat-async-select-tests (05302a6d3a)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/workflows/docker.yml | 17 +
.github/workflows/superset-frontend.yml | 2 +-
CHANGELOG.md | 1 +
Dockerfile | 2 +-
Makefile | 8 +-
RESOURCES/INTHEWILD.yaml | 27 +-
RESOURCES/STANDARD_ROLES.md | 379 ++---
.../contributing/development-setup.md | 2 +
docs/developer_portal/extensions/architecture.md | 2 -
docs/developer_portal/extensions/development.md | 4 -
docs/docs/api.mdx | 5 +
docs/docs/configuration/alerts-reports.mdx | 5 +
docs/docs/configuration/async-queries-celery.mdx | 4 +
docs/docs/configuration/cache.mdx | 5 +
docs/docs/configuration/configuring-superset.mdx | 4 +
docs/docs/configuration/databases.mdx | 128 +-
docs/docs/configuration/networking-settings.mdx | 16 +-
docs/docs/configuration/sql-templating.mdx | 4 +
docs/docs/configuration/theming.mdx | 8 +
docs/docs/contributing/contributing.mdx | 4 +
docs/docs/contributing/development.mdx | 13 +-
docs/docs/installation/kubernetes.mdx | 5 +
docs/docs/quickstart.mdx | 6 +
docs/docs/security/securing_superset.mdx | 5 +
docs/docs/security/security.mdx | 100 +-
.../creating-your-first-dashboard.mdx | 23 +-
docs/docs/using-superset/exploring-data.mdx | 17 +-
docs/docusaurus.config.ts | 12 +
docs/netlify.toml | 56 +
docs/package.json | 16 +-
docs/src/pages/inTheWild.tsx | 2 +-
docs/src/styles/custom.css | 48 +
docs/src/theme/Admonition/Types.js | 63 +
docs/static/img/logos/cirrus.svg | Bin 0 -> 1809 bytes
.../logos/hollyland\347\214\233\347\216\233.svg" | Bin 0 -> 77086 bytes
docs/static/img/logos/plaidcloud.svg | Bin 0 -> 81228 bytes
docs/static/img/logos/userguiding.svg | Bin 0 -> 5610 bytes
docs/yarn.lock | 560 +++----
pyproject.toml | 23 +-
requirements/base.txt | 2 +-
requirements/development.txt | 2 +-
scripts/docker-compose-up.sh | 77 +-
superset-embedded-sdk/README.md | 61 +-
superset-embedded-sdk/src/index.ts | 38 +-
.../src/superset_extensions_cli/cli.py | 5 -
superset-extensions-cli/tests/test_cli_dev.py | 24 +-
.../e2e/dashboard/horizontalFilterBar.test.ts | 1 +
.../cypress/e2e/dashboard/nativeFilters.test.ts | 3 +
.../cypress-base/cypress/e2e/dashboard/utils.ts | 10 +-
.../netlify.toml | 22 +-
superset-frontend/oxlint.json | 2 +-
superset-frontend/package-lock.json | 1691 ++++++++++++--------
superset-frontend/package.json | 58 +-
.../packages/generator-superset/package.json | 4 +-
.../packages/superset-core/package.json | 20 +-
.../packages/superset-core/src/api/environment.ts | 153 --
.../packages/superset-core/src/api/index.ts | 2 -
.../packages/superset-core/src/api/sqlLab.ts | 109 --
.../packages/superset-core/src/index.ts | 1 +
.../superset-core/src/spec/utils/logging.test.ts | 69 +
.../packages/superset-core/src/ui/index.ts | 1 +
.../src/ui}/translation/README.md | 0
.../src/ui}/translation/Translator.ts | 2 +-
.../src/ui}/translation/TranslatorSingleton.ts | 0
.../src/ui}/translation/index.ts | 1 +
.../src/ui}/translation/types/index.ts | 0
.../src/ui}/translation/types/jed.ts | 0
.../src/utils}/index.ts | 2 +-
.../src/utils/logging.ts | 2 +-
.../types/external.d.ts | 0
.../src/components/CertifiedIconWithTooltip.tsx | 2 +-
.../components/ColumnTypeLabel/ColumnTypeLabel.tsx | 2 +-
.../src/components/ControlHeader.tsx | 2 +-
.../src/components/SQLPopover.tsx | 2 +-
.../src/components/labelUtils.tsx | 2 +-
.../superset-ui-chart-controls/src/constants.ts | 3 +-
.../src/sections/advancedAnalytics.tsx | 3 +-
.../src/sections/annotationsAndLayers.tsx | 2 +-
.../src/sections/chartTitle.tsx | 2 +-
.../src/sections/echartsTimeSeriesQuery.tsx | 2 +-
.../src/sections/forecastInterval.tsx | 7 +-
.../src/sections/matrixify.tsx | 2 +-
.../src/sections/sections.tsx | 2 +-
.../src/sections/timeComparison.tsx | 3 +-
.../components/RadioButtonControl.tsx | 3 +-
.../src/shared-controls/customControls.tsx | 23 +-
.../src/shared-controls/dndControls.tsx | 3 +-
.../src/shared-controls/matrixifyControls.tsx | 3 +-
.../src/shared-controls/mixins.tsx | 2 +-
.../src/shared-controls/sharedControls.tsx | 5 +-
.../superset-ui-chart-controls/src/types.ts | 1 +
.../src/utils/D3Formatting.ts | 2 +-
.../test/shared-controls/customControls.test.tsx | 57 +
.../test/utils/getColorFormatters.test.ts | 2 +-
.../packages/superset-ui-core/package.json | 8 +-
.../src/chart/components/FallbackComponent.tsx | 7 +-
.../src/chart/components/NoResultsComponent.tsx | 3 +-
.../src/chart/components/StatefulChart.test.tsx | 340 ++++
.../src/chart/components/StatefulChart.tsx | 37 +-
.../src/chart/components/SuperChartCore.tsx | 2 +-
.../superset-ui-core/src/chart/types/Base.ts | 1 +
.../src/components/AsyncAceEditor/index.tsx | 2 -
.../src/components/CachedLabel/TooltipContent.tsx | 2 +-
.../src/components/CachedLabel/index.tsx | 2 +-
.../CertifiedBadge/CertifiedBadge.stories.tsx | 2 +-
.../src/components/CertifiedBadge/index.tsx | 2 +-
.../src/components/ConfirmModal/index.tsx | 2 +-
.../src/components/CronPicker/index.tsx | 2 +-
.../src/components/DeleteModal/index.tsx | 2 +-
.../DropdownContainer/DropdownContainer.tsx | 3 +-
.../src/components/DynamicEditableTitle/index.tsx | 2 +-
.../src/components/EditableTitle/index.tsx | 2 +-
.../src/components/EmptyState/index.tsx | 89 +-
.../src/components/EmptyState/types.ts | 3 +
.../src/components/FaveStar/index.tsx | 2 +-
.../src/components/Form/LabeledErrorBoundInput.tsx | 2 +-
.../src/components/Icons/AntdEnhanced.tsx | 2 +
.../src/components/InfoTooltip/index.tsx | 2 +-
.../components/Label/reusable/DatasetTypeLabel.tsx | 2 +-
.../components/Label/reusable/PublishedLabel.tsx | 2 +-
.../src/components/LastUpdated/index.tsx | 2 +-
.../src/components/ListViewCard/ImageLoader.tsx | 2 +-
.../src/components/ListViewCard/index.tsx | 4 +-
.../src/components/MetadataBar/ContentConfig.tsx | 3 +-
.../src/components/Modal/FormModal.tsx | 2 +-
.../src/components/Modal/Modal.tsx | 2 +-
.../src/components/PageHeaderWithActions/index.tsx | 2 +-
.../src/components/Select/AsyncSelect.tsx | 2 +-
.../src/components/Select/Select.tsx | 3 +-
.../src/components/Select/constants.ts | 2 +-
.../src/components/Select/utils.tsx | 3 +-
.../Table/cell-renderers/NumericCell/index.tsx | 2 +-
.../src/components/Table/index.tsx | 3 +-
.../ThemedAgGridReact/ThemedAgGridReact.test.tsx | 10 +-
.../TimezoneSelector/TimezoneOptionsCache.test.tsx | 256 +++
.../TimezoneSelector/TimezoneOptionsCache.ts | 159 ++
.../TimezoneSelector.DaylightSavingTime.test.tsx | 12 +-
.../TimezoneSelector/TimezoneSelector.test.tsx | 36 +-
.../src/components/TimezoneSelector/index.tsx | 239 +--
.../src/components/TimezoneSelector/types.ts} | 14 +-
.../src/components/TruncatedList/index.tsx | 3 +-
.../src/components/UnsavedChangesModal/index.tsx | 2 +-
.../superset-ui-core/src/components/constants.ts | 2 +-
.../CurrencyFormats.ts} | 4 +-
.../src/currency-format/CurrencyFormatter.ts | 95 +-
.../superset-ui-core/src/currency-format/index.ts | 10 +-
.../Drawer => currency-format}/types.ts | 11 +-
.../superset-ui-core/src/currency-format/utils.ts | 129 +-
.../packages/superset-ui-core/src/index.ts | 1 -
.../superset-ui-core/src/query/constants.ts | 1 +
.../src/query/extractQueryFields.ts | 2 +-
.../src/query/getClientErrorObject.ts | 2 +-
.../packages/superset-ui-core/src/query/index.ts | 1 +
.../superset-ui-core/src/query/types/Dashboard.ts | 81 +-
.../superset-ui-core/src/query/types/Datasource.ts | 1 +
.../superset-ui-core/src/query/types/Query.ts | 2 +
.../src/query/types/QueryFormData.ts | 5 +-
.../src/query/types/QueryResponse.ts | 12 +-
.../superset-ui-core/src/utils/featureFlags.ts | 2 +-
.../superset-ui-core/src/utils/html.test.tsx | 18 +
.../packages/superset-ui-core/src/utils/html.tsx | 129 +-
.../packages/superset-ui-core/src/utils/index.ts | 1 -
.../packages/superset-ui-core/src/utils/tooltip.ts | 2 +-
.../src/validator/legacyValidateInteger.ts | 2 +-
.../src/validator/legacyValidateNumber.ts | 2 +-
.../src/validator/validateInteger.ts | 2 +-
.../src/validator/validateMapboxStylesUrl.ts | 2 +-
.../src/validator/validateMaxValue.ts | 2 +-
.../src/validator/validateNonEmpty.ts | 2 +-
.../src/validator/validateNumber.ts | 2 +-
.../src/validator/validateServerPagination.ts | 2 +-
.../validator/validateTimeComparisonRangeValues.ts | 2 +-
.../test/chart/clients/ChartClient.test.ts | 2 +-
.../chart/components/FallbackComponent.test.tsx | 9 +-
.../test/currency-format/CurrencyFormatter.test.ts | 37 +-
.../currency-format/analyzeCurrencyInData.test.ts} | 23 +-
.../currency-format/hasMixedCurrencies.test.ts} | 18 +-
.../currency-format/normalizeCurrency.test.ts} | 23 +-
.../test/query/extractQueryFields.test.ts | 3 +-
.../test/translation/Translator.test.ts | 201 ---
.../test/translation/TranslatorSingleton.test.ts | 86 -
.../test/translation/index.test.ts | 35 -
.../test/translation/languagePacks/en.ts | 37 -
.../test/translation/languagePacks/zh.ts | 37 -
.../test/utils/featureFlag.test.ts | 19 +-
.../superset-ui-core/test/utils/logging.test.ts | 78 -
.../superset-ui-core/test/validator/setup.ts | 2 +-
.../packages/superset-ui-demo/package.json | 10 +-
.../storybook/shared/components/VerifyCORS.tsx | 2 +-
.../playwright/tests/experimental/README.md | 7 +
.../legacy-plugin-chart-calendar/src/Calendar.js | 6 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-calendar/src/index.js | 3 +-
.../legacy-plugin-chart-calendar/src/utils.ts | 10 +-
.../src/vendor/cal-heatmap.js | 3 +-
.../test/getFormattedUTCTime.ts | 28 -
.../test/utils.test.ts | 96 ++
.../legacy-plugin-chart-chord/src/controlPanel.ts | 3 +-
.../plugins/legacy-plugin-chart-chord/src/index.js | 3 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-country-map/src/index.js | 3 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-horizon/src/index.js | 3 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-map-box/src/index.js | 3 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-paired-t-test/src/index.js | 3 +-
.../src/controlPanel.ts | 2 +-
.../src/index.js | 3 +-
.../src/controlPanel.tsx | 3 +-
.../legacy-plugin-chart-partition/src/index.js | 3 +-
.../legacy-plugin-chart-rose/src/controlPanel.tsx | 2 +-
.../plugins/legacy-plugin-chart-rose/src/index.js | 3 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-world-map/src/index.js | 3 +-
.../src/transformProps.js | 13 +-
.../legacy-preset-chart-deckgl/package.json | 4 +-
.../src/DeckGLContainer.tsx | 6 +-
.../legacy-preset-chart-deckgl/src/Multi/Multi.tsx | 127 +-
.../src/Multi/controlPanel.ts | 32 +-
.../legacy-preset-chart-deckgl/src/Multi/index.ts | 3 +-
.../src/layers/Arc/controlPanel.ts | 3 +-
.../src/layers/Arc/index.ts | 3 +-
.../src/layers/Contour/Contour.tsx | 2 +-
.../src/layers/Contour/controlPanel.ts | 3 +-
.../src/layers/Contour/index.ts | 3 +-
.../src/layers/Geojson/controlPanel.ts | 2 +-
.../src/layers/Geojson/index.ts | 3 +-
.../src/layers/Grid/controlPanel.ts | 3 +-
.../src/layers/Grid/index.ts | 3 +-
.../src/layers/Heatmap/Heatmap.tsx | 2 +-
.../src/layers/Heatmap/controlPanel.ts | 2 +-
.../src/layers/Heatmap/index.ts | 3 +-
.../src/layers/Hex/controlPanel.ts | 2 +-
.../src/layers/Hex/index.ts | 3 +-
.../src/layers/Path/controlPanel.ts | 2 +-
.../src/layers/Path/index.ts | 3 +-
.../src/layers/Polygon/Polygon.tsx | 2 +-
.../src/layers/Polygon/controlPanel.ts | 4 +-
.../src/layers/Polygon/index.ts | 3 +-
.../src/layers/Scatter/Scatter.tsx | 3 +-
.../src/layers/Scatter/controlPanel.ts | 3 +-
.../src/layers/Scatter/index.ts | 3 +-
.../src/layers/Screengrid/Screengrid.tsx | 2 +-
.../src/layers/Screengrid/controlPanel.ts | 3 +-
.../src/layers/Screengrid/index.ts | 3 +-
.../src/utilities/HandlebarsRenderer.tsx | 3 +-
.../src/utilities/Shared_DeckGL.tsx | 4 +-
.../src/utilities/TooltipTemplateControl.tsx | 2 +-
.../src/utilities/sharedDndControls.tsx | 2 +-
.../src/utilities/tooltipUtils.tsx | 3 +-
.../src/Bubble/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Bubble/index.js | 3 +-
.../src/Bullet/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Bullet/index.js | 3 +-
.../src/Compare/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Compare/index.js | 3 +-
.../legacy-preset-chart-nvd3/src/NVD3Controls.tsx | 2 +-
.../legacy-preset-chart-nvd3/src/NVD3Vis.js | 2 +-
.../src/TimePivot/controlPanel.ts | 2 +-
.../src/TimePivot/index.js | 3 +-
.../src/vendor/superset/AnnotationTypes.js | 2 +-
.../src/AgGridTable/components/CustomHeader.tsx | 82 +-
.../src/AgGridTable/components/Pagination.tsx | 2 +-
.../components/TimeComparisonVisibility.tsx | 2 +-
.../src/AgGridTable/index.tsx | 94 +-
.../src/AgGridTableChart.tsx | 93 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 164 +-
.../plugin-chart-ag-grid-table/src/consts.ts | 15 +
.../src/controlPanel.tsx | 8 +-
.../plugin-chart-ag-grid-table/src/index.ts | 3 +-
.../src/renderers/NumericCellRenderer.tsx | 14 +-
.../src/renderers/TextCellRenderer.tsx | 3 +-
.../src/stateConversion.ts | 185 ++-
.../src/styles/index.tsx | 4 +-
.../src/transformProps.ts | 20 +-
.../plugin-chart-ag-grid-table/src/types.ts | 23 +-
.../src/utils/agGridFilterConverter.ts | 726 +++++++++
.../src/utils/dateFilterComparator.ts | 58 +-
.../src/utils/filterStateManager.ts | 164 ++
.../src/utils/getInitialFilterModel.ts} | 37 +-
.../src/utils/useColDefs.ts | 89 +-
.../test/buildQuery.test.ts | 591 +++++++
.../test/utils/agGridFilterConverter.test.ts | 863 ++++++++++
.../test/utils/dateFilterComparator.test.ts | 124 ++
.../test/utils/filterStateManager.test.ts | 658 ++++++++
.../test/utils/getInitialFilterModel.test.ts | 412 +++++
.../src/plugin/controlPanel.ts | 3 +-
.../plugin-chart-cartodiagram/src/plugin/index.ts | 3 +-
.../src/util/controlPanelUtil.tsx | 2 +-
.../BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx | 2 +-
.../BigNumberPeriodOverPeriod/controlPanel.ts | 2 +-
.../BigNumber/BigNumberPeriodOverPeriod/index.ts | 3 +-
.../BigNumberPeriodOverPeriod/transformProps.ts | 13 +-
.../src/BigNumber/BigNumberTotal/controlPanel.ts | 3 +-
.../src/BigNumber/BigNumberTotal/index.ts | 3 +-
.../src/BigNumber/BigNumberTotal/transformProps.ts | 16 +-
.../src/BigNumber/BigNumberViz.tsx | 2 +-
.../BigNumberWithTrendline/controlPanel.tsx | 3 +-
.../src/BigNumber/BigNumberWithTrendline/index.ts | 3 +-
.../BigNumberWithTrendline/transformProps.ts | 13 +-
.../src/BigNumber/sharedControls.ts | 2 +-
.../plugin-chart-echarts/src/BigNumber/types.ts | 2 +-
.../src/BoxPlot/controlPanel.ts | 2 +-
.../plugin-chart-echarts/src/BoxPlot/index.ts | 3 +-
.../src/Bubble/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Bubble/index.ts | 3 +-
.../src/Funnel/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Funnel/index.ts | 3 +-
.../src/Funnel/transformProps.ts | 11 +-
.../src/Gantt/EchartsGantt.tsx | 2 +-
.../src/Gantt/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Gantt/index.ts | 3 +-
.../src/Gantt/transformProps.ts | 2 +-
.../src/Gauge/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Gauge/index.ts | 3 +-
.../src/Gauge/transformProps.ts | 6 +
.../src/Graph/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Graph/index.ts | 3 +-
.../src/Heatmap/controlPanel.tsx | 3 +-
.../plugin-chart-echarts/src/Heatmap/index.ts | 3 +-
.../src/Heatmap/transformProps.ts | 19 +-
.../src/Histogram/controlPanel.tsx | 3 +-
.../plugin-chart-echarts/src/Histogram/index.ts | 3 +-
.../src/MixedTimeseries/controlPanel.tsx | 3 +-
.../src/MixedTimeseries/index.ts | 3 +-
.../src/MixedTimeseries/transformProps.ts | 54 +-
.../plugin-chart-echarts/src/Pie/controlPanel.tsx | 3 +-
.../plugins/plugin-chart-echarts/src/Pie/index.ts | 3 +-
.../plugin-chart-echarts/src/Pie/transformProps.ts | 15 +-
.../src/Radar/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Radar/index.ts | 3 +-
.../src/Sankey/controlPanel.tsx | 3 +-
.../plugin-chart-echarts/src/Sankey/index.ts | 3 +-
.../src/Sunburst/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Sunburst/index.ts | 3 +-
.../src/Sunburst/transformProps.ts | 14 +-
.../src/Timeseries/Area/controlPanel.tsx | 2 +-
.../src/Timeseries/Area/index.ts | 3 +-
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 3 +-
.../src/Timeseries/Regular/Bar/index.ts | 3 +-
.../src/Timeseries/Regular/Line/controlPanel.tsx | 2 +-
.../src/Timeseries/Regular/Line/index.ts | 3 +-
.../Timeseries/Regular/Scatter/controlPanel.tsx | 2 +-
.../src/Timeseries/Regular/Scatter/index.ts | 3 +-
.../Timeseries/Regular/SmoothLine/controlPanel.tsx | 2 +-
.../src/Timeseries/Regular/SmoothLine/index.ts | 3 +-
.../src/Timeseries/Step/controlPanel.tsx | 2 +-
.../src/Timeseries/Step/index.ts | 3 +-
.../src/Timeseries/constants.ts | 2 +-
.../plugin-chart-echarts/src/Timeseries/index.ts | 3 +-
.../src/Timeseries/transformProps.ts | 35 +-
.../plugin-chart-echarts/src/Tree/controlPanel.tsx | 2 +-
.../plugins/plugin-chart-echarts/src/Tree/index.ts | 2 +-
.../src/Treemap/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Treemap/index.ts | 3 +-
.../src/Treemap/transformProps.ts | 12 +-
.../src/Waterfall/constants.ts | 2 +-
.../src/Waterfall/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Waterfall/index.ts | 3 +-
.../plugins/plugin-chart-echarts/src/constants.ts | 3 +-
.../plugins/plugin-chart-echarts/src/controls.tsx | 3 +-
.../plugin-chart-echarts/src/utils/series.ts | 3 -
.../test/BigNumber/transformProps.test.ts | 56 +
.../test/Timeseries/transformProps.test.ts | 132 ++
.../test/Timeseries/transformers.test.ts | 49 +-
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../src/components/Handlebars/HandlebarsViewer.tsx | 2 +-
.../src/plugin/controlPanel.tsx | 2 +-
.../src/plugin/controls/columns.tsx | 3 +-
.../src/plugin/controls/handlebarTemplate.tsx | 3 +-
.../src/plugin/controls/includeTime.ts | 2 +-
.../src/plugin/controls/metrics.tsx | 2 +-
.../src/plugin/controls/orderBy.tsx | 2 +-
.../src/plugin/controls/queryMode.tsx | 3 +-
.../src/plugin/controls/shared.ts | 8 +-
.../src/plugin/controls/style.tsx | 2 +-
.../plugin-chart-handlebars/src/plugin/index.ts | 3 +-
.../plugins/plugin-chart-pivot-table/package.json | 2 +-
.../src/PivotTableChart.tsx | 126 +-
.../src/plugin/controlPanel.tsx | 2 +-
.../plugin-chart-pivot-table/src/plugin/index.ts | 2 +-
.../src/plugin/transformProps.ts | 18 +-
.../src/react-pivottable/Styles.js | 2 +-
.../src/react-pivottable/TableRenderers.jsx | 11 +-
.../src/react-pivottable/utilities.js | 58 +-
.../plugins/plugin-chart-pivot-table/src/types.ts | 2 +
.../test/plugin/transformProps.test.ts | 189 +++
.../src/DataTable/components/SelectPageSize.tsx | 2 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 4 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 13 +-
.../plugins/plugin-chart-table/src/consts.ts | 2 +-
.../plugin-chart-table/src/controlPanel.tsx | 2 +-
.../plugins/plugin-chart-table/src/index.ts | 3 +-
.../plugin-chart-table/src/transformProps.ts | 37 +-
.../plugins/plugin-chart-table/src/types.ts | 1 +
.../plugin-chart-table/src/utils/formatValue.ts | 11 +-
.../plugin-chart-table/src/utils/isEqualColumns.ts | 3 +
.../plugins/plugin-chart-table/test/testData.ts | 1 +
.../test/utils/formatValue.test.ts | 155 ++
.../src/plugin/controlPanel.tsx | 3 +-
.../plugin/controls/ColorSchemeControl/index.tsx | 2 +-
.../src/plugin/controls/RotationControl.tsx | 2 +-
.../plugin-chart-word-cloud/src/plugin/index.ts | 3 +-
superset-frontend/spec/helpers/shim.tsx | 2 +-
.../src/SqlLab/actions/{sqlLab.js => sqlLab.ts} | 796 ++++++---
.../SqlLab/components/AceEditorWrapper/index.tsx | 26 +-
.../components/AceEditorWrapper/useAnnotations.ts | 3 +-
.../AceEditorWrapper/useKeywords.test.ts | 6 +-
.../components/AceEditorWrapper/useKeywords.ts | 9 +-
.../src/SqlLab/components/App/index.tsx | 2 +-
.../src/SqlLab/components/AppLayout/index.tsx | 22 +-
.../src/SqlLab/components/ColumnElement/index.tsx | 2 +-
.../EditorAutoSync/EditorAutoSync.test.tsx | 6 +-
.../src/SqlLab/components/EditorAutoSync/index.tsx | 2 +-
.../EstimateQueryCostButton.test.tsx | 28 +-
.../components/EstimateQueryCostButton/index.tsx | 11 +-
.../components/ExploreCtasResultsButton/index.tsx | 3 +-
.../components/ExploreResultsButton/index.tsx | 2 +-
.../src/SqlLab/components/HighlightedSql/index.tsx | 2 +-
.../components/KeyboardShortcutButton/index.tsx | 2 +-
.../SqlLab/components/QueryAutoRefresh/index.tsx | 2 +-
.../src/SqlLab/components/QueryHistory/index.tsx | 3 +-
.../QueryLimitSelect/QueryLimitSelect.test.tsx | 3 +-
.../SqlLab/components/QueryLimitSelect/index.tsx | 30 +-
.../src/SqlLab/components/QueryTable/index.tsx | 3 +-
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 141 ++
.../src/SqlLab/components/ResultSet/index.tsx | 6 +-
.../RunQueryActionButton.test.tsx | 1 -
.../components/RunQueryActionButton/index.tsx | 40 +-
.../SaveDatasetActionButton.test.tsx | 39 +-
.../components/SaveDatasetActionButton/index.tsx | 49 +-
.../SqlLab/components/SaveDatasetModal/index.tsx | 8 +-
.../SqlLab/components/SaveQuery/SaveQuery.test.tsx | 23 +-
.../src/SqlLab/components/SaveQuery/index.tsx | 24 +-
.../components/ScheduleQueryButton/index.tsx | 2 +-
.../SqlLab/components/ShareSqlLabQuery/index.tsx | 13 +-
.../src/SqlLab/components/SouthPane/Results.tsx | 3 +-
.../src/SqlLab/components/SouthPane/index.tsx | 29 +-
.../SqlLab/components/SqlEditor/SqlEditor.test.tsx | 6 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 262 ++-
.../SqlLab/components/SqlEditorLeftBar/index.tsx | 91 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 3 +-
.../SqlEditorTopBar/SqlEditorTopBar.test.tsx | 130 ++
.../SqlLab/components/SqlEditorTopBar/index.tsx | 62 +
.../SqlEditorTopBar/useDatabaseSelector.test.ts | 320 ++++
.../SqlEditorTopBar/useDatabaseSelector.ts | 126 ++
.../components/StatusBar/StatusBar.test.tsx} | 28 +-
.../src/SqlLab/components/StatusBar/index.tsx | 57 +
.../SqlLab/components/TabbedSqlEditors/index.tsx | 43 +-
.../src/SqlLab/components/TableElement/index.tsx | 4 +-
.../src/SqlLab/components/TablePreview/index.tsx | 3 +-
.../components/TemplateParamsEditor/index.tsx | 2 +-
superset-frontend/src/SqlLab/constants.ts | 5 +-
superset-frontend/src/SqlLab/contributions.ts | 4 +-
.../middlewares/persistSqlLabStateEnhancer.js | 136 --
.../middlewares/persistSqlLabStateEnhancer.ts | 185 +++
.../src/SqlLab/reducers/getInitialState.ts | 2 +-
.../src/SqlLab/reducers/{sqlLab.js => sqlLab.ts} | 336 ++--
.../src/SqlLab/utils/newQueryTabName.ts | 2 +-
...ckglLayerVisibilityCustomizationPlugin.test.tsx | 484 ++++++
.../DeckglLayerVisibilityCustomizationPlugin.tsx | 204 +++
.../DeckglLayerVisibility/buildQuery.test.ts} | 47 +-
.../components/DeckglLayerVisibility/buildQuery.ts | 17 +-
.../DeckglLayerVisibility/controlPanel.ts} | 9 +-
.../components/DeckglLayerVisibility}/index.ts | 18 +-
.../DeckglLayerVisibility/transformProps.test.ts | 100 ++
.../DeckglLayerVisibility}/transformProps.ts | 12 +-
.../components/DeckglLayerVisibility}/types.ts | 39 +-
.../useDeckLayerMetadata.test.ts | 195 +++
.../DeckglLayerVisibility/useDeckLayerMetadata.ts | 87 +
.../DynamicGroupBy/DynamicGroupByPlugin.tsx | 140 ++
.../components/DynamicGroupBy}/buildQuery.ts | 13 +-
.../components/DynamicGroupBy}/controlPanel.ts | 37 +-
.../DynamicGroupBy}/images/thumbnail.png | Bin
.../components/DynamicGroupBy}/index.ts | 16 +-
.../components/DynamicGroupBy}/transformProps.ts | 0
.../components/DynamicGroupBy}/types.ts | 74 +-
.../TimeColumn/TimeColumnFilterPlugin.tsx | 3 +-
.../components/TimeColumn/buildQuery.ts | 0
.../components/TimeColumn/controlPanel.ts | 2 +-
.../components/TimeColumn}/images/thumbnail.png | Bin
.../components/TimeColumn/index.ts | 9 +-
.../components/TimeColumn/transformProps.ts | 0
.../components/TimeColumn/types.ts | 0
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 63 +-
.../components/TimeGrain/buildQuery.ts | 0
.../components/TimeGrain}/controlPanel.ts | 6 +-
.../components/TimeGrain}/images/thumbnail.png | Bin
.../components/TimeGrain/index.ts | 9 +-
.../components/TimeGrain/transformProps.ts | 0
.../components/TimeGrain/types.ts | 0
.../components/common.ts | 0
.../chartCustomizations/components}/index.ts | 12 +-
.../components/types.ts | 7 +-
.../src/components/AlteredSliceTag/index.tsx | 2 +-
.../src/components/AuditInfo/index.tsx | 2 +-
superset-frontend/src/components/Chart/Chart.tsx | 3 +-
.../Chart/ChartContextMenu/ChartContextMenu.tsx | 2 +-
.../src/components/Chart/ChartRenderer.jsx | 16 +-
.../src/components/Chart/DrillBy/DrillByModal.tsx | 2 +-
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 2 +-
.../Chart/DrillBy/useDisplayModeToggle.tsx | 2 +-
.../Chart/DrillBy/useResultsTableView.tsx | 3 +-
.../Chart/DrillDetail/DrillDetailModal.tsx | 2 +-
.../Chart/DrillDetail/DrillDetailPane.tsx | 2 +-
.../Chart/DrillDetail/DrillDetailTableControls.tsx | 2 +-
.../src/components/Chart/chartAction.js | 2 +-
.../src/components/Chart/chartReducer.ts | 2 +-
.../Chart/useDrillDetailMenuItems/index.tsx | 2 +-
.../src/components/CopyToClipboard/index.tsx | 2 +-
.../src/components/DatabaseSelector/index.tsx | 3 +-
.../Datasource/ChangeDatasourceModal/index.tsx | 3 +-
.../Datasource/DatasourceModal/index.tsx | 3 +-
.../components/CollectionTable/index.tsx | 2 +-
.../DatasourceEditor/DatasourceEditor.jsx | 185 ++-
.../components/DatasetUsageTab/index.tsx | 2 +-
.../tests/DatasourceEditor.test.tsx | 44 +-
.../tests/DatasourceEditorCurrency.test.tsx | 67 +
.../src/components/Datasource/utils/index.js | 3 +-
.../src/components/Datasource/utils/utils.test.tsx | 2 +-
.../src/components/DynamicPlugins/index.tsx | 2 +-
.../src/components/ErrorBoundary/index.tsx | 2 +-
.../ErrorMessage/DatabaseErrorMessage.tsx | 3 +-
.../ErrorMessage/DatasetNotFoundErrorMessage.tsx | 2 +-
.../src/components/ErrorMessage/ErrorAlert.tsx | 2 +-
.../ErrorMessage/ErrorMessageWithStackTrace.tsx | 3 +-
.../ErrorMessage/FrontendNetworkErrorMessage.tsx | 2 +-
.../ErrorMessage/InvalidSQLErrorMessage.tsx | 2 +-
.../ErrorMessage/MarshmallowErrorMessage.tsx | 2 +-
.../ErrorMessage/OAuth2RedirectMessage.tsx | 3 +-
.../ErrorMessage/ParameterErrorMessage.tsx | 3 +-
.../ErrorMessage/TimeoutErrorMessage.tsx | 3 +-
.../src/components/FilterableTable/utils.tsx | 3 +-
.../src/components/GridTable/Header.tsx | 2 +-
.../src/components/GridTable/HeaderMenu.tsx | 2 +-
.../src/components/ImportModal/ErrorAlert.tsx | 2 +-
.../components/ImportModal/ImportErrorAlert.tsx | 2 +-
.../src/components/ImportModal/index.tsx | 2 +-
.../components/LastQueriedLabel/index.tsx} | 63 +-
.../src/components/ListView/CardSortSelect.tsx | 2 +-
.../src/components/ListView/CrossLinksTooltip.tsx | 2 +-
.../src/components/ListView/Filters/DateRange.tsx | 2 +-
.../components/ListView/Filters/NumericalRange.tsx | 2 +-
.../src/components/ListView/Filters/Search.tsx | 2 +-
.../src/components/ListView/Filters/Select.tsx | 2 +-
.../src/components/ListView/ListView.tsx | 2 +-
.../MenuListExtension/MenuListExtension.test.tsx | 374 +++++
.../src/components/MenuListExtension/index.tsx | 157 ++
.../src/components/Modal/StandardModal.tsx | 2 +-
.../src/components/Modal/useModalValidation.tsx | 2 +-
.../src/components/RowCountLabel/index.tsx | 3 +-
.../components/SQLEditorWithValidation/index.tsx | 3 +-
.../StreamingExportModal/StreamingExportModal.tsx | 2 +-
.../useStreamingExport.test.ts | 959 +++++++++++
.../StreamingExportModal/useStreamingExport.ts | 57 +-
.../src/components/TableSelector/index.tsx | 7 +-
superset-frontend/src/components/Tag/utils.tsx | 2 +-
.../ViewListExtension/ViewListExtension.test.tsx | 198 +++
.../ViewListExtension/index.tsx} | 32 +-
superset-frontend/src/constants.ts | 7 +
superset-frontend/src/core/authentication/index.ts | 6 +-
superset-frontend/src/core/commands/index.ts | 12 +-
superset-frontend/src/core/environment/index.ts | 57 -
superset-frontend/src/core/extensions/index.ts | 11 +-
superset-frontend/src/core/index.ts | 1 -
superset-frontend/src/core/sqlLab/index.ts | 129 +-
.../dashboard/actions/chartCustomizationActions.ts | 379 +++--
.../src/dashboard/actions/dashboardInfo.ts | 3 +-
.../src/dashboard/actions/dashboardLayout.js | 2 +-
.../src/dashboard/actions/dashboardState.js | 16 +-
superset-frontend/src/dashboard/actions/hydrate.js | 9 +-
.../src/dashboard/actions/nativeFilters.ts | 30 +-
.../src/dashboard/actions/sliceEntities.ts | 2 +-
.../components/AddSliceCard/AddSliceCard.tsx | 3 +-
.../src/dashboard/components/AnchorLink/index.tsx | 2 +-
.../components/BuilderComponentPane/index.tsx | 2 +-
.../components/ColorSchemeControlWrapper.tsx | 3 +-
.../src/dashboard/components/ColorSchemeSelect.tsx | 2 +-
.../index.tsx | 208 +--
.../src/dashboard/components/Dashboard.jsx | 2 +-
.../DashboardBuilder/DashboardBuilder.tsx | 3 +-
.../DashboardBuilder/DashboardContainer.test.tsx | 211 ++-
.../DashboardBuilder/DashboardContainer.tsx | 152 +-
.../dashboard/components/DashboardBuilder/state.ts | 27 +-
.../src/dashboard/components/DashboardGrid.jsx | 4 +-
.../dashboard/components/EmbeddedModal/index.tsx | 2 +-
.../components/FiltersBadge/DetailsPanel/index.tsx | 2 +-
.../dashboard/components/FiltersBadge/index.tsx | 55 +-
.../src/dashboard/components/Header/index.jsx | 3 +-
.../components/Header/useDashboardMetadataBar.tsx | 2 +-
.../Header/useHeaderActionsDropdownMenu.tsx | 2 +-
.../src/dashboard/components/MissingChart.tsx | 2 +-
.../OverwriteConfirm/OverwriteConfirmModal.tsx | 2 +-
.../PropertiesModal/PropertiesModal.test.tsx | 16 +-
.../dashboard/components/PropertiesModal/index.tsx | 17 +-
.../PropertiesModal/sections/AccessSection.tsx | 3 +-
.../PropertiesModal/sections/AdvancedSection.tsx | 2 +-
.../PropertiesModal/sections/BasicInfoSection.tsx | 2 +-
.../sections/CertificationSection.tsx | 2 +-
.../PropertiesModal/sections/RefreshSection.tsx | 2 +-
.../sections/StylingSection.test.tsx | 45 +
.../PropertiesModal/sections/StylingSection.tsx | 51 +-
.../dashboard/components/PublishedStatus/index.tsx | 2 +-
.../RefreshFrequency/RefreshFrequencySelect.tsx | 2 +-
.../dashboard/components/RefreshIntervalModal.tsx | 2 +-
.../src/dashboard/components/SaveModal.tsx | 2 +-
.../src/dashboard/components/SliceAdder.tsx | 2 +-
.../src/dashboard/components/SliceHeader/index.tsx | 10 +-
.../ViewResultsModalTrigger.tsx | 2 +-
.../components/SliceHeaderControls/index.tsx | 25 +-
.../components/SliceHeaderControls/types.ts | 1 +
.../components/SyncDashboardState/index.tsx | 5 +-
.../components/URLShortLinkButton/index.tsx | 9 +-
.../components/filterscope/FilterScopeSelector.jsx | 3 +-
.../dashboard/components/filterscope/treeIcons.tsx | 2 +-
.../components/gridComponents/Chart/Chart.jsx | 40 +-
.../components/gridComponents/Column/Column.jsx | 3 +-
.../DynamicComponent/DynamicComponent.tsx | 3 +-
.../gridComponents/Markdown/Markdown.jsx | 3 +-
.../components/gridComponents/Row/Row.tsx | 8 +-
.../components/gridComponents/Tab/Tab.jsx | 111 +-
.../components/gridComponents/Tab/Tab.test.tsx | 172 +-
.../components/gridComponents/Tabs/Tabs.jsx | 4 +-
.../components/gridComponents/new/NewColumn.tsx | 2 +-
.../components/gridComponents/new/NewDivider.tsx | 2 +-
.../components/gridComponents/new/NewHeader.tsx | 2 +-
.../components/gridComponents/new/NewMarkdown.tsx | 2 +-
.../components/gridComponents/new/NewRow.tsx | 2 +-
.../components/gridComponents/new/NewTabs.tsx | 2 +-
.../components/menu/BackgroundStyleDropdown.tsx | 2 +-
.../components/menu/DownloadMenuItems/index.tsx | 4 +-
.../components/menu/MarkdownModeDropdown.tsx | 2 +-
.../components/menu/ShareMenuItems/index.tsx | 9 +-
.../ChartCustomization/ChartCustomizationForm.tsx | 1457 -----------------
.../ChartCustomization/ChartCustomizationModal.tsx | 700 --------
.../ChartCustomizationTitleContainer.tsx | 184 ---
.../ChartCustomizationTitlePane.tsx | 124 --
.../ChartCustomization/groupBySelectors.ts | 262 ---
.../nativeFilters/ChartCustomization/selectors.ts | 47 -
.../useChartCustomizationModal.tsx | 52 -
.../nativeFilters/ChartCustomization/utils.ts | 63 -
.../nativeFilters/ConfigModal/ModalFooter.tsx | 2 +-
.../nativeFilters/ConfigModal/SharedStyles.tsx | 1 -
.../FilterBar/ActionButtons/index.tsx | 17 +-
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 3 +-
.../ScopingModal/ChartsScopingListPanel.tsx | 2 +-
.../CrossFilters/ScopingModal/ScopingModal.tsx | 3 +-
.../CrossFilters/ScopingModal/ScopingTreePanel.tsx | 3 +-
.../FilterBar/CrossFilters/VerticalCollapse.tsx | 2 +-
.../index.tsx | 32 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 160 +-
.../FilterBar/FilterBarSettings/index.tsx | 31 +-
.../useFilterConfigModal.tsx | 33 +-
.../FilterBar/FilterControls/FilterControl.tsx | 280 +---
.../{FilterControl.tsx => FilterControlShared.tsx} | 244 +--
.../FilterControls/FilterControls.test.tsx | 186 +++
.../FilterBar/FilterControls/FilterControls.tsx | 208 ++-
.../FilterBar/FilterControls/FilterValue.tsx | 74 +-
.../FilterControls}/GroupByFilterCard.tsx | 404 +++--
.../FilterBar/FilterControls/types.ts | 19 +-
.../FiltersOutOfScopeCollapsible/index.tsx | 3 +-
.../nativeFilters/FilterBar/Header/index.tsx | 2 +-
.../nativeFilters/FilterBar/Horizontal.tsx | 18 +-
.../FilterBar/HorizontalFilterBar.test.tsx | 2 +
.../nativeFilters/FilterBar/Vertical.tsx | 25 +-
.../components/nativeFilters/FilterBar/index.tsx | 275 ++--
.../nativeFilters/FilterBar/keyValue.tsx | 3 +-
.../components/nativeFilters/FilterBar/state.ts | 67 +-
.../components/nativeFilters/FilterBar/types.ts | 7 +
.../FilterBar/useFilterControlFactory.tsx | 5 +-
.../components/nativeFilters/FilterBar/utils.ts | 10 +-
.../nativeFilters/FilterCard/DependenciesRow.tsx | 3 +-
.../nativeFilters/FilterCard/FilterCard.test.tsx | 8 +-
.../nativeFilters/FilterCard/FilterCardContent.tsx | 4 +-
.../nativeFilters/FilterCard/NameRow.tsx | 25 +-
.../nativeFilters/FilterCard/ScopeRow.tsx | 3 +-
.../nativeFilters/FilterCard/TypeRow.tsx | 9 +-
.../components/nativeFilters/FilterCard/types.ts | 5 +-
.../FilterCard/useFilterDependencies.ts | 5 +-
.../nativeFilters/FilterCard/useFilterScope.ts | 5 +-
.../ConfigModalContent/ConfigModalContent.tsx | 164 ++
.../CustomizationContentRenderer.tsx | 133 ++
.../ConfigModalContent/FilterContentRenderer.tsx | 136 ++
.../ConfigModalContent}/index.ts | 8 +-
.../ConfigModalSidebar/ConfigModalSidebar.tsx | 192 +++
.../ConfigModalSidebar/ItemSection.tsx | 77 +
.../ConfigModalSidebar}/index.ts | 6 +-
.../FiltersConfigModal/DividerConfigForm.tsx | 65 +-
.../FiltersConfigModal/DraggableFilter.test.tsx | 230 +++
.../FiltersConfigModal/DraggableFilter.tsx | 74 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 19 +-
.../FiltersConfigModal/FilterTitlePane.tsx | 3 +-
.../FiltersConfigForm/ColumnSelect.tsx | 2 +-
.../FiltersConfigForm/DatasetSelect.tsx | 6 +-
.../FiltersConfigForm/DefaultValue.tsx | 22 +-
.../FiltersConfigForm/DependencyList.tsx | 2 +-
.../FiltersConfigForm/FilterScope/state.ts | 2 +-
.../FiltersConfigForm/FilterScope/utils.ts | 4 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 377 +++--
.../FiltersConfigForm/RemovedFilter.tsx | 2 +-
.../FiltersConfigForm/constants.ts | 11 +
.../FiltersConfigForm/getControlItemsMap.tsx | 15 +-
.../FiltersConfigModal/FiltersConfigForm/state.ts | 17 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 149 +-
.../FiltersConfigModal/FiltersConfigModal.tsx | 957 +++++------
.../Footer/CancelConfirmationAlert.tsx | 2 +-
.../FiltersConfigModal/Footer/Footer.tsx | 2 +-
...erTitleContainer.tsx => ItemTitleContainer.tsx} | 86 +-
.../FiltersConfigModal/ItemTitlePane.tsx | 93 ++
.../FiltersConfigModal/NativeFiltersModal.test.tsx | 9 +-
.../FiltersConfigModal/NewItemDropdown.tsx | 93 ++
.../FiltersConfigModal/hooks/index.ts} | 28 +-
.../hooks/useCustomizationOperations.ts | 127 ++
.../hooks/useFilterOperations.ts | 248 +++
.../hooks/useItemStateManager.ts | 154 ++
.../FiltersConfigModal/hooks/useModalSaveLogic.ts | 430 +++++
.../nativeFilters/FiltersConfigModal/state.ts | 16 +-
.../transformers/customizationTransformer.ts | 163 ++
.../transformers/filterTransformer.ts | 172 ++
.../FiltersConfigModal/transformers}/index.ts | 3 +-
.../nativeFilters/FiltersConfigModal/types.ts | 80 +-
.../nativeFilters/FiltersConfigModal/utils.test.ts | 139 ++
.../nativeFilters/FiltersConfigModal/utils.ts | 162 +-
.../dashboard/components/nativeFilters/state.ts | 191 ++-
.../dashboard/components/nativeFilters/utils.ts | 33 +-
superset-frontend/src/dashboard/constants.ts | 3 +
.../src/dashboard/containers/DashboardPage.tsx | 19 +-
.../src/dashboard/hooks/useDownloadScreenshot.ts | 9 +-
.../src/dashboard/reducers/dashboardInfo.js | 101 +-
.../dashboard/reducers/groupByCustomizations.ts | 198 ---
.../src/dashboard/reducers/nativeFilters.test.ts | 257 ++-
.../src/dashboard/reducers/nativeFilters.ts | 66 +-
.../src/dashboard/reducers/sliceEntities.ts | 2 +-
superset-frontend/src/dashboard/types.ts | 20 +-
.../dashboard/util/activeAllDashboardFilters.ts | 5 +-
.../src/dashboard/util/backgroundStyleOptions.ts | 2 +-
.../src/dashboard/util/calculateScopes.ts | 75 +
.../util/charts/getFormDataWithExtraFilters.ts | 119 +-
.../src/dashboard/util/getFilterFieldNodesTree.ts | 2 +-
.../src/dashboard/util/getFilterScopeNodesTree.js | 2 +-
.../util/getFormDataWithExtraFilters.test.ts | 114 ++
.../src/dashboard/util/getRelatedCharts.ts | 13 +-
.../src/dashboard/util/getSliceHeaderTooltip.tsx | 2 +-
.../src/dashboard/util/headerStyleOptions.ts | 2 +-
.../src/dashboard/util/newComponentFactory.js | 2 +-
.../dashboard/util/updateComponentParentsList.ts | 2 +-
.../util/useFilterFocusHighlightStyles.test.tsx | 4 +
.../util/useFilterFocusHighlightStyles.ts | 10 +-
superset-frontend/src/dataMask/actions.ts | 3 +
superset-frontend/src/dataMask/reducer.ts | 160 +-
superset-frontend/src/embedded/api.tsx | 4 +-
superset-frontend/src/embedded/index.tsx | 4 +-
superset-frontend/src/embedded/utils.ts | 3 +-
.../src/explore/actions/exploreActions.ts | 3 +-
.../src/explore/actions/saveModalActions.ts | 2 +-
.../src/explore/components/ControlHeader.tsx | 2 +-
.../components/ControlPanelsContainer.test.tsx | 212 ++-
.../explore/components/ControlPanelsContainer.tsx | 31 +-
.../explore/components/DataTableControl/index.tsx | 8 +-
.../components/DataTablesPane/DataTablesPane.tsx | 3 +-
.../components/ResultsPaneOnDashboard.tsx | 2 +-
.../DataTablesPane/components/SamplesPane.tsx | 3 +-
.../components/SingleQueryResultPane.tsx | 2 +-
.../DataTablesPane/components/useResultsPane.tsx | 2 +-
.../DatasourcePanel/DatasourcePanelItem.tsx | 3 +-
.../explore/components/DatasourcePanel/index.tsx | 3 +-
.../DatasourcePanel/transformDatasourceFolders.ts | 3 +-
.../src/explore/components/EmbedCodeContent.jsx | 11 +-
.../ExploreChartHeader/ExploreChartHeader.test.tsx | 28 +
.../components/ExploreChartHeader/index.jsx | 9 +-
.../ExploreChartHeader/useExploreMetadataBar.tsx | 3 +-
.../explore/components/ExploreChartPanel/index.tsx | 17 +-
.../components/ExploreViewContainer/index.jsx | 5 +-
.../components/ExportToCSVDropdown/index.tsx | 2 +-
.../explore/components/PropertiesModal/index.tsx | 2 +-
.../explore/components/RunQueryButton/index.tsx | 2 +-
.../src/explore/components/SaveModal.test.jsx | 383 +++++
.../src/explore/components/SaveModal.tsx | 296 +++-
.../AnnotationLayer.test.tsx | 39 +-
.../{AnnotationLayer.jsx => AnnotationLayer.tsx} | 419 +++--
.../{AnnotationTypes.js => AnnotationTypes.ts} | 42 +-
.../controls/AnnotationLayerControl/index.tsx | 2 +-
...undsControl.test.jsx => BoundsControl.test.tsx} | 0
.../explore/components/controls/BoundsControl.tsx | 2 +-
.../{CheckboxControl.jsx => CheckboxControl.tsx} | 52 +-
.../CollectionControl/{index.jsx => index.tsx} | 92 +-
.../ColorBreakpointPopoverControl.tsx | 3 +-
.../controls/ColorBreakpointsControl/index.tsx | 2 +-
.../controls/ColorSchemeControl/index.tsx | 2 +-
.../ColumnConfigControl/ColumnConfigControl.tsx | 4 +-
.../controls/ColumnConfigControl/constants.tsx | 5 +-
.../components/controls/ComparisonRangeLabel.tsx | 2 +-
.../ConditionalFormattingControl.tsx | 2 +-
.../FormattingPopoverContent.tsx | 2 +-
.../controls/ContourControl/ContourOption.tsx | 2 +-
.../ContourControl/ContourPopoverControl.tsx | 3 +-
.../components/controls/ContourControl/index.tsx | 2 +-
.../CurrencyControl.test.tsx} | 27 +-
.../controls/CurrencyControl/CurrencyControl.tsx | 88 +-
.../DatasourceControl/DatasourceControl.test.tsx | 110 +-
.../DatasourceControl/{index.jsx => index.tsx} | 153 +-
.../controls/DateFilterControl/DateFilterLabel.tsx | 2 +-
.../DateFilterControl/components/AdvancedFrame.tsx | 3 +-
.../DateFilterControl/components/CalendarFrame.tsx | 2 +-
.../DateFilterControl/components/CommonFrame.tsx | 2 +-
.../components/CurrentCalendarFrame.tsx | 2 +-
.../DateFilterControl/components/CustomFrame.tsx | 3 +-
.../components/DateFunctionTooltip.tsx | 2 +-
.../DateFilterControl/components/DateLabel.tsx | 2 +-
.../controls/DateFilterControl/utils/constants.ts | 2 +-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 2 +-
.../ColumnSelectPopoverTrigger.tsx | 2 +-
.../DndAdhocFilterOption.tsx | 2 +-
.../DndColumnMetricSelect.tsx | 19 +-
.../DndColumnSelectControl/DndColumnSelect.tsx | 10 +-
...erTitle.jsx => DndColumnSelectPopoverTitle.tsx} | 13 +-
.../DndFilterSelect.test.tsx | 14 +-
.../DndColumnSelectControl/DndFilterSelect.tsx | 3 +-
.../DndColumnSelectControl/DndMetricSelect.tsx | 27 +-
.../DndColumnSelectControl/DndSelectLabel.tsx | 2 +-
.../controls/DndColumnSelectControl/Option.tsx | 2 +-
.../DndColumnSelectControl/utils/optionSelector.ts | 2 +-
.../{AdhocFilter.test.js => AdhocFilter.test.ts} | 0
.../AdhocFilter/{index.js => index.ts} | 110 +-
.../AdhocFilterControl/AdhocFilterControl.test.tsx | 49 +-
.../AdhocFilterControl/{index.jsx => index.tsx} | 164 +-
...er.test.jsx => AdhocFilterEditPopover.test.tsx} | 24 +-
.../{index.jsx => index.tsx} | 162 +-
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 133 +-
.../index.tsx | 90 +-
.../useAdvancedDataTypes.ts | 3 +-
.../AdhocFilterEditPopoverSqlTabContent/index.tsx | 2 +-
.../FilterControl/AdhocFilterOption/index.tsx | 25 +-
.../AdhocFilterPopoverTrigger/index.tsx | 2 +-
.../utils/useDatePickerInAdhocFilter.tsx | 9 +-
.../FilterControl/utils/useGetTimeRangeLabel.tsx | 31 +-
.../FixedOrMetricControl/{index.jsx => index.tsx} | 90 +-
.../controls/LayerConfigsControl/FlatLayerTree.tsx | 2 +-
.../LayerConfigsControl/LayerConfigsControl.tsx | 2 +-
.../LayerConfigsPopoverContent.tsx | 3 +-
.../controls/MapViewControl/ExtentTag.tsx | 2 +-
.../controls/MapViewControl/MapViewControl.tsx | 2 +-
.../MapViewControl/MapViewPopoverContent.tsx | 2 +-
.../controls/MatrixifyDimensionControl.test.tsx | 119 ++
.../controls/MatrixifyDimensionControl.tsx | 39 +-
.../{AdhocMetric.test.js => AdhocMetric.test.ts} | 4 +-
.../{AdhocMetric.js => AdhocMetric.ts} | 102 +-
.../{index.jsx => index.tsx} | 165 +-
.../MetricControl/AdhocMetricEditPopoverTitle.tsx | 2 +-
...cOption.test.jsx => AdhocMetricOption.test.tsx} | 27 +-
...AdhocMetricOption.jsx => AdhocMetricOption.tsx} | 46 +-
.../MetricControl/AdhocMetricPopoverTrigger.tsx | 23 +-
...on.test.jsx => FilterDefinitionOption.test.tsx} | 6 +-
...nitionOption.jsx => FilterDefinitionOption.tsx} | 21 +-
...lue.test.jsx => MetricDefinitionValue.test.tsx} | 26 +-
...finitionValue.jsx => MetricDefinitionValue.tsx} | 31 +-
...icsControl.test.jsx => MetricsControl.test.tsx} | 17 +-
.../{MetricsControl.jsx => MetricsControl.tsx} | 96 +-
.../{adhocMetricType.js => adhocMetricType.ts} | 0
.../components/controls/MetricControl/types.ts | 2 +
.../controls/NumberControl/NumberControl.test.tsx | 50 +-
.../components/controls/NumberControl/index.tsx | 14 +-
.../components/controls/OptionControls/index.tsx | 6 +-
.../controls/SelectAsyncControl/index.tsx | 21 +-
...lectControl.test.jsx => SelectControl.test.tsx} | 34 +-
.../{SelectControl.jsx => SelectControl.tsx} | 155 +-
.../{SpatialControl.jsx => SpatialControl.tsx} | 125 +-
...eaControl.test.jsx => TextAreaControl.test.tsx} | 0
.../{TextAreaControl.jsx => TextAreaControl.tsx} | 106 +-
.../components/controls/TextControl/index.tsx | 4 +
.../{index.jsx => index.tsx} | 111 +-
.../src/explore/components/controls/ViewQuery.tsx | 3 +-
.../explore/components/controls/ViewQueryModal.tsx | 2 +-
.../components/controls/ViewQueryModalFooter.tsx | 3 +-
...rtControl.test.jsx => ViewportControl.test.tsx} | 0
.../{ViewportControl.jsx => ViewportControl.tsx} | 84 +-
.../components/controls/VizTypeControl/VizTile.tsx | 2 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 2 +-
.../components/controls/VizTypeControl/index.tsx | 3 +-
.../components/controls/XAxisSortControl.tsx | 16 +-
.../ZoomConfigControl/ZoomConfigControl.tsx | 2 +-
.../ZoomConfigControl/ZoomConfigsChart.tsx | 2 +-
.../components/controls/withAsyncVerification.tsx | 3 +-
.../DashboardsSubMenu.tsx | 2 +-
.../useExploreAdditionalActionsMenu/index.jsx | 30 +-
superset-frontend/src/explore/constants.ts | 2 +-
.../src/explore/controlPanels/Separator.ts | 3 +-
.../src/explore/controlPanels/sections.tsx | 2 +-
.../src/explore/controlUtils/controlUtils.test.tsx | 2 +-
.../src/explore/controlUtils/getColumnKeywords.tsx | 2 +-
.../explore/controlUtils/standardizedFormData.ts | 24 +-
.../src/explore/{controls.jsx => controls.tsx} | 81 +-
.../src/explore/exploreUtils/exportChart.test.ts | 173 ++
superset-frontend/src/explore/fixtures.tsx | 3 +-
.../src/explore/{store.test.jsx => store.test.tsx} | 5 +-
.../src/explore/{store.js => store.ts} | 62 +-
superset-frontend/src/explore/types.ts | 19 +
.../src/extensions/ExtensionPlaceholder.tsx | 2 +-
.../src/extensions/ExtensionsList.tsx | 2 +-
.../src/extensions/ExtensionsManager.ts | 3 +-
.../src/extensions/ExtensionsStartup.test.tsx | 4 +-
.../src/extensions/ExtensionsStartup.tsx | 17 +-
.../src/features/alerts/AlertReportModal.test.tsx | 3 +-
.../src/features/alerts/AlertReportModal.tsx | 52 +-
.../alerts/components/AlertReportCronScheduler.tsx | 2 +-
.../features/alerts/components/AlertStatusIcon.tsx | 2 +-
.../alerts/components/NotificationMethod.tsx | 2 +-
.../src/features/allEntities/AllEntitiesTable.tsx | 2 +-
.../annotationLayers/AnnotationLayerModal.tsx | 2 +-
.../src/features/annotations/AnnotationModal.tsx | 2 +-
.../src/features/charts/ChartCard.tsx | 3 +-
.../src/features/cssTemplates/CssTemplateModal.tsx | 2 +-
.../src/features/dashboards/DashboardCard.tsx | 2 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 2 +-
.../DatabaseConnectionForm/EncryptedField.tsx | 2 +-
.../DatabaseConnectionForm/TableCatalog.tsx | 2 +-
.../DatabaseConnectionForm/ValidatedInputField.tsx | 2 +-
.../databases/DatabaseModal/ExtraOptions.test.tsx | 2 +-
.../databases/DatabaseModal/ExtraOptions.tsx | 2 +-
.../databases/DatabaseModal/ModalHeader.tsx | 2 +-
.../databases/DatabaseModal/SSHTunnelForm.tsx | 2 +-
.../databases/DatabaseModal/SSHTunnelSwitch.tsx | 3 +-
.../databases/DatabaseModal/SqlAlchemyForm.tsx | 2 +-
.../src/features/databases/DatabaseModal/index.tsx | 3 +-
.../databases/UploadDataModel/ColumnsPreview.tsx | 2 +-
.../features/databases/UploadDataModel/index.tsx | 3 +-
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 27 +-
.../AddDataset/DatasetPanel/MessageContent.tsx | 5 +-
.../datasets/AddDataset/DatasetPanel/index.tsx | 4 +-
.../datasets/AddDataset/EditDataset/index.tsx | 2 +-
.../features/datasets/AddDataset/Footer/index.tsx | 2 +-
.../features/datasets/AddDataset/Header/index.tsx | 2 +-
.../datasets/AddDataset/LeftPanel/index.tsx | 2 +-
.../features/datasets/DatasetSelectLabel/index.tsx | 2 +-
.../features/datasets/DuplicateDatasetModal.tsx | 2 +-
.../src/features/datasets/constants.ts | 2 +-
.../src/features/datasets/hooks/useDatasetLists.ts | 4 +-
.../datasets/hooks/useGetDatasetRelatedCounts.ts | 4 +-
.../datasets/metadataBar/useDatasetMetadataBar.tsx | 2 +-
superset-frontend/src/features/datasets/types.ts | 1 +
.../src/features/groups/GroupListModal.tsx | 2 +-
superset-frontend/src/features/groups/utils.ts | 3 +-
.../src/features/home/ActivityTable.tsx | 2 +-
superset-frontend/src/features/home/ChartTable.tsx | 2 +-
.../src/features/home/DashboardTable.tsx | 3 +-
superset-frontend/src/features/home/EmptyState.tsx | 2 +-
.../src/features/home/LanguagePicker.tsx | 2 +-
superset-frontend/src/features/home/RightMenu.tsx | 3 +-
.../src/features/home/SavedQueries.tsx | 3 +-
superset-frontend/src/features/home/SubMenu.tsx | 2 +-
.../src/features/home/commonMenuData.ts | 2 +-
.../src/features/queries/QueryPreviewModal.tsx | 2 +-
.../features/queries/SavedQueryPreviewModal.tsx | 2 +-
.../src/features/queries/SyntaxHighlighterCopy.tsx | 2 +-
.../ReportModal/HeaderReportDropdown/index.tsx | 2 +-
.../src/features/reports/ReportModal/actions.js | 3 +-
.../src/features/reports/ReportModal/index.tsx | 3 +-
.../src/features/rls/RowLevelSecurityModal.tsx | 3 +-
superset-frontend/src/features/rls/constants.ts | 2 +-
.../src/features/roles/RoleFormItems.tsx | 2 +-
.../src/features/roles/RoleListAddModal.tsx | 2 +-
.../src/features/roles/RoleListDuplicateModal.tsx | 2 +-
.../src/features/roles/RoleListEditModal.tsx | 2 +-
.../src/features/tags/BulkTagModal.tsx | 3 +-
superset-frontend/src/features/tags/TagCard.tsx | 3 +-
superset-frontend/src/features/tags/TagModal.tsx | 3 +-
.../src/features/themes/ThemeModal.tsx | 2 +-
.../src/features/userInfo/UserInfoModal.tsx | 3 +-
.../src/features/users/UserListModal.tsx | 2 +-
superset-frontend/src/features/users/utils.ts | 3 +-
.../filters/components/Range/RangeFilterPlugin.tsx | 2 +-
.../src/filters/components/Range/controlPanel.ts | 2 +-
.../src/filters/components/Range/index.ts | 3 +-
.../components/Select/SelectFilterPlugin.test.tsx | 457 +++++-
.../components/Select/SelectFilterPlugin.tsx | 6 +-
.../src/filters/components/Select/controlPanel.ts | 3 +-
.../src/filters/components/Select/index.ts | 3 +-
.../src/filters/components/Time/controlPanel.ts | 2 +-
.../src/filters/components/Time/index.ts | 3 +-
.../TimeColumn/TimeColumnFilterPlugin.tsx | 3 +-
.../filters/components/TimeColumn/controlPanel.ts | 2 +-
.../src/filters/components/TimeColumn/index.ts | 3 +-
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 4 +-
.../filters/components/TimeGrain/controlPanel.ts | 2 +-
.../src/filters/components/TimeGrain/index.ts | 3 +-
.../src/hooks/apiResources/datasets.ts | 2 +-
superset-frontend/src/hooks/useThemeMenuItems.tsx | 2 +-
.../src/hooks/useUnsavedChangesPrompt/index.ts | 3 +-
superset-frontend/src/middleware/asyncEvent.ts | 2 +-
superset-frontend/src/pages/ActionLog/index.tsx | 2 +-
.../src/pages/AlertReportList/index.tsx | 2 +-
superset-frontend/src/pages/AllEntities/index.tsx | 2 +-
.../src/pages/AnnotationLayerList/index.tsx | 3 +-
.../src/pages/AnnotationList/index.tsx | 3 +-
superset-frontend/src/pages/Chart/index.tsx | 2 +-
.../src/pages/ChartCreation/index.tsx | 3 +-
.../src/pages/ChartList/ChartList.test.tsx | 35 +-
.../src/pages/ChartList/ChartList.testHelpers.tsx | 13 +
superset-frontend/src/pages/ChartList/index.tsx | 23 +-
.../src/pages/CssTemplateList/index.tsx | 3 +-
.../src/pages/DashboardList/index.tsx | 2 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 3 +-
superset-frontend/src/pages/DatasetList/index.tsx | 3 +-
.../src/pages/ExecutionLogList/index.tsx | 2 +-
superset-frontend/src/pages/GroupsList/index.tsx | 2 +-
superset-frontend/src/pages/Home/index.tsx | 2 +-
superset-frontend/src/pages/Login/index.tsx | 3 +-
.../src/pages/QueryHistoryList/index.tsx | 3 +-
superset-frontend/src/pages/Register/index.tsx | 3 +-
superset-frontend/src/pages/RolesList/index.tsx | 3 +-
.../src/pages/RowLevelSecurityList/index.tsx | 3 +-
.../src/pages/SavedQueryList/index.tsx | 2 +-
.../src/pages/SqlLab/LocationContext.tsx | 3 +-
superset-frontend/src/pages/Tags/index.tsx | 3 +-
superset-frontend/src/pages/ThemeList/index.tsx | 3 +-
superset-frontend/src/pages/UserInfo/index.tsx | 3 +-
.../src/pages/UserRegistrations/index.tsx | 3 +-
superset-frontend/src/pages/UsersList/index.tsx | 2 +-
superset-frontend/src/preamble.ts | 10 +-
superset-frontend/src/setup/setupClient.ts | 3 +-
superset-frontend/src/types/bootstrapTypes.ts | 4 +-
superset-frontend/src/utils/downloadAsImage.tsx | 2 +-
superset-frontend/src/utils/downloadAsPdf.ts | 3 +-
superset-frontend/src/utils/export.test.ts | 57 +-
superset-frontend/src/utils/export.ts | 8 +-
superset-frontend/src/utils/fetchOptions.ts | 3 +-
.../utils/getChartRequiredFieldsMissingMessage.ts | 2 +-
superset-frontend/src/utils/urlUtils.ts | 67 +-
superset-frontend/src/views/CRUD/hooks.ts | 2 +-
superset-frontend/src/views/CRUD/utils.tsx | 3 +-
superset-frontend/src/views/store.ts | 2 -
.../src/visualizations/TimeTable/TimeTable.tsx | 2 +-
.../TimeTable/config/controlPanel/controlPanel.ts | 3 +-
.../src/visualizations/TimeTable/index.ts | 3 +-
.../ExampleComponent/ExampleComponent.tsx | 3 +-
.../src/visualizations/presets/MainPreset.js | 20 +-
superset-websocket/package-lock.json | 728 +++------
superset-websocket/package.json | 12 +-
superset/charts/schemas.py | 23 +
superset/cli/examples.py | 3 +
superset/commands/dashboard/exceptions.py | 4 +
superset/commands/dashboard/update.py | 18 +
superset/commands/database/validate_sql.py | 44 +
superset/commands/logs/prune.py | 6 +-
superset/commands/report/alert.py | 66 +-
superset/commands/report/create.py | 35 +
superset/commands/report/exceptions.py | 15 +
superset/commands/report/execute.py | 18 +-
superset/commands/streaming_export/base.py | 55 +-
superset/common/query_actions.py | 65 +
superset/common/query_context_factory.py | 34 +
superset/common/query_context_processor.py | 1 +
superset/common/utils/query_cache_manager.py | 11 +
superset/connectors/sqla/models.py | 6 +-
superset/daos/dashboard.py | 64 +
superset/dashboards/api.py | 91 ++
superset/dashboards/schemas.py | 9 +
superset/datasets/api.py | 2 +
superset/datasets/schemas.py | 2 +
superset/db_engine_specs/athena.py | 40 +
superset/db_engine_specs/base.py | 6 +-
superset/db_engine_specs/gsheets.py | 33 +
superset/db_engine_specs/starrocks.py | 155 +-
superset/db_engine_specs/trino.py | 61 +-
superset/examples/data_loading.py | 2 +
superset/examples/international_sales.py | 238 +++
superset/extensions/local_extensions_watcher.py | 33 +-
superset/jinja_context.py | 19 +-
superset/mcp_service/CLAUDE.md | 6 +-
superset/mcp_service/__main__.py | 2 +-
superset/mcp_service/app.py | 24 +-
superset/mcp_service/auth.py | 115 +-
superset/mcp_service/chart/chart_utils.py | 20 +-
superset/mcp_service/chart/schemas.py | 104 +-
superset/mcp_service/chart/tool/__init__.py | 2 -
superset/mcp_service/chart/tool/generate_chart.py | 31 +-
.../chart/tool/get_chart_available_filters.py | 50 -
superset/mcp_service/chart/tool/get_chart_data.py | 112 +-
.../mcp_service/chart/tool/get_chart_preview.py | 60 +-
superset/mcp_service/chart/tool/list_charts.py | 19 +-
superset/mcp_service/chart/tool/update_chart.py | 7 +-
.../mcp_service/chart/tool/update_chart_preview.py | 30 +-
.../chart/validation/runtime/__init__.py | 22 +-
superset/mcp_service/common/schema_discovery.py | 422 +++++
superset/mcp_service/dashboard/schemas.py | 56 +-
superset/mcp_service/dashboard/tool/__init__.py | 2 -
.../tool/get_dashboard_available_filters.py | 49 -
.../mcp_service/dashboard/tool/list_dashboards.py | 45 +-
superset/mcp_service/dataset/schemas.py | 61 +-
superset/mcp_service/dataset/tool/__init__.py | 2 -
.../dataset/tool/get_dataset_available_filters.py | 49 -
superset/mcp_service/dataset/tool/list_datasets.py | 20 +-
.../mcp_service/docs/tool-search-optimization.md | 2 +-
superset/mcp_service/flask_singleton.py | 82 +-
superset/mcp_service/mcp_config.py | 12 +-
superset/mcp_service/mcp_core.py | 120 +-
superset/mcp_service/server.py | 97 +-
superset/mcp_service/storage.py | 71 +-
superset/mcp_service/system/resources/__init__.py | 5 +-
.../system/resources/schema_discovery.py | 196 +++
superset/mcp_service/system/tool/__init__.py | 2 +
superset/mcp_service/system/tool/get_schema.py | 167 ++
superset/mcp_service/system/tool/health_check.py | 3 +-
superset/mcp_service/utils/url_utils.py | 28 -
...00_9787190b3d89_add_currency_column_support.py} | 23 +-
superset/models/helpers.py | 30 +-
superset/reports/schemas.py | 2 +-
superset/security/manager.py | 97 +-
superset/sql/parse.py | 2 +-
superset/sqllab/query_render.py | 23 +-
superset/superset_typing.py | 2 +
superset/templates/superset/spa.html | 7 +-
superset/utils/core.py | 1 +
superset/utils/currency.py | 160 ++
superset/utils/date_parser.py | 119 +-
superset/utils/excel.py | 2 +-
superset/views/core.py | 21 +-
superset/views/datasource/utils.py | 6 +
superset/views/utils.py | 2 +-
superset/viz.py | 1 +
tests/integration_tests/dashboards/api_tests.py | 325 ++++
tests/integration_tests/databases/api_tests.py | 109 ++
tests/integration_tests/datasets/commands_tests.py | 3 +
tests/integration_tests/fixtures/__init__.py | 1 +
tests/integration_tests/fixtures/importexport.py | 1 +
tests/integration_tests/fixtures/public_role.py | 18 +
tests/integration_tests/reports/alert_tests.py | 8 +-
tests/integration_tests/security_tests.py | 99 ++
.../commands/databases/validate_sql_test.py | 279 ++++
tests/unit_tests/commands/report/alert_test.py | 496 ++++++
.../commands/report/test_create_recipients.py | 179 +++
.../common/test_query_actions_currency.py | 290 ++++
.../common/test_query_context_factory.py | 106 ++
tests/unit_tests/common/test_time_shifts.py | 33 +
tests/unit_tests/connectors/sqla/models_test.py | 64 +
.../dashboards/test_chart_customizations_dao.py | 339 ++++
tests/unit_tests/datasets/commands/export_test.py | 1 +
tests/unit_tests/datasets/schema_tests.py | 29 +
tests/unit_tests/db_engine_specs/test_athena.py | 70 +
tests/unit_tests/db_engine_specs/test_base.py | 49 +
tests/unit_tests/db_engine_specs/test_gsheets.py | 5 +
tests/unit_tests/db_engine_specs/test_starrocks.py | 116 +-
tests/unit_tests/db_engine_specs/test_trino.py | 309 +++-
tests/unit_tests/jinja_context_test.py | 54 +
.../mcp_service/chart/test_chart_schemas.py | 53 +
.../mcp_service/chart/test_chart_utils.py | 128 ++
.../mcp_service/chart/tool/test_generate_chart.py | 21 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 227 +++
.../mcp_service/chart/tool/test_list_charts.py | 48 +-
.../mcp_service/chart/validation}/__init__.py | 0
.../chart/validation/test_runtime_validator.py | 221 +++
.../dashboard/tool/test_dashboard_tools.py | 135 +-
.../mcp_service/dataset/tool/test_dataset_tools.py | 133 +-
.../mcp_service/system/tool/test_get_schema.py | 368 +++++
.../mcp_service/system/tool/test_mcp_core.py | 152 +-
tests/unit_tests/mcp_service/test_mcp_server.py | 126 ++
tests/unit_tests/mcp_service/test_mcp_storage.py | 194 ++-
.../mcp_service/test_mcp_tool_registration.py | 42 +-
tests/unit_tests/sql/parse_tests.py | 14 +
tests/unit_tests/sql_lab_test.py | 2 +-
tests/unit_tests/utils/currency_test.py | 332 ++++
tests/unit_tests/utils/date_parser_tests.py | 111 ++
.../unit_tests/views/datasource}/__init__.py | 0
tests/unit_tests/views/datasource/utils_test.py | 217 +++
1165 files changed, 36129 insertions(+), 12877 deletions(-)
create mode 100644 docs/netlify.toml
create mode 100644 docs/src/theme/Admonition/Types.js
create mode 100644 docs/static/img/logos/cirrus.svg
create mode 100644
"docs/static/img/logos/hollyland\347\214\233\347\216\233.svg"
create mode 100644 docs/static/img/logos/plaidcloud.svg
create mode 100644 docs/static/img/logos/userguiding.svg
copy superset/charts/data/query_context_cache_loader.py =>
superset-frontend/netlify.toml (61%)
delete mode 100644
superset-frontend/packages/superset-core/src/api/environment.ts
create mode 100644
superset-frontend/packages/superset-core/src/spec/utils/logging.test.ts
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/README.md (100%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/Translator.ts (98%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/TranslatorSingleton.ts (100%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/index.ts (94%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/types/index.ts (100%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/types/jed.ts (100%)
copy superset-frontend/packages/{superset-ui-core/src/dynamic-plugins =>
superset-core/src/utils}/index.ts (94%)
rename superset-frontend/packages/{superset-ui-core =>
superset-core}/src/utils/logging.ts (95%)
rename superset-frontend/packages/{superset-ui-core =>
superset-core}/types/external.d.ts (100%)
create mode 100644
superset-frontend/packages/superset-ui-chart-controls/test/shared-controls/customControls.test.tsx
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/TimezoneSelector/TimezoneOptionsCache.test.tsx
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/TimezoneSelector/TimezoneOptionsCache.ts
copy superset-frontend/{plugins/legacy-preset-chart-deckgl/src/TooltipRow.tsx
=> packages/superset-ui-core/src/components/TimezoneSelector/types.ts} (80%)
copy
superset-frontend/packages/superset-ui-core/src/{components/Divider/types.ts =>
currency-format/CurrencyFormats.ts} (90%)
copy superset-frontend/packages/superset-ui-core/src/{components/Drawer =>
currency-format}/types.ts (83%)
copy superset-frontend/{src/explore/exploreUtils/getLegacyEndpointType.test.ts
=>
packages/superset-ui-core/test/currency-format/analyzeCurrencyInData.test.ts}
(57%)
copy
superset-frontend/packages/{superset-ui-chart-controls/test/operators/utils/timeOffset.test.ts
=> superset-ui-core/test/currency-format/hasMixedCurrencies.test.ts} (60%)
copy
superset-frontend/packages/superset-ui-core/{src/components/Input/Input.test.tsx
=> test/currency-format/normalizeCurrency.test.ts} (61%)
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/Translator.test.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/TranslatorSingleton.test.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/index.test.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/languagePacks/en.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/languagePacks/zh.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/utils/logging.test.ts
delete mode 100644
superset-frontend/plugins/legacy-plugin-chart-calendar/test/getFormattedUTCTime.ts
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-calendar/test/utils.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/agGridFilterConverter.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/filterStateManager.ts
copy superset-frontend/{src/dashboard/types/chartState.ts =>
plugins/plugin-chart-ag-grid-table/src/utils/getInitialFilterModel.ts} (53%)
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/agGridFilterConverter.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/dateFilterComparator.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/filterStateManager.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/getInitialFilterModel.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-table/test/utils/formatValue.test.ts
rename superset-frontend/src/SqlLab/actions/{sqlLab.js => sqlLab.ts} (60%)
create mode 100644
superset-frontend/src/SqlLab/components/SqlEditorTopBar/SqlEditorTopBar.test.tsx
create mode 100644
superset-frontend/src/SqlLab/components/SqlEditorTopBar/index.tsx
create mode 100644
superset-frontend/src/SqlLab/components/SqlEditorTopBar/useDatabaseSelector.test.ts
create mode 100644
superset-frontend/src/SqlLab/components/SqlEditorTopBar/useDatabaseSelector.ts
copy
superset-frontend/src/{explore/components/controls/MetricControl/AggregateOption.test.tsx
=> SqlLab/components/StatusBar/StatusBar.test.tsx} (57%)
create mode 100644 superset-frontend/src/SqlLab/components/StatusBar/index.tsx
delete mode 100644
superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.js
create mode 100644
superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts
rename superset-frontend/src/SqlLab/reducers/{sqlLab.js => sqlLab.ts} (67%)
create mode 100644
superset-frontend/src/chartCustomizations/components/DeckglLayerVisibility/DeckglLayerVisibilityCustomizationPlugin.test.tsx
create mode 100644
superset-frontend/src/chartCustomizations/components/DeckglLayerVisibility/DeckglLayerVisibilityCustomizationPlugin.tsx
copy superset-frontend/src/{filters/components/TimeGrain/index.ts =>
chartCustomizations/components/DeckglLayerVisibility/buildQuery.test.ts} (52%)
copy docs/src/types/apache-superset-core/index.d.ts =>
superset-frontend/src/chartCustomizations/components/DeckglLayerVisibility/buildQuery.ts
(65%)
copy
superset-frontend/{plugins/plugin-chart-echarts/src/utils/convertInteger.ts =>
src/chartCustomizations/components/DeckglLayerVisibility/controlPanel.ts} (84%)
copy superset-frontend/src/{filters/components/Select =>
chartCustomizations/components/DeckglLayerVisibility}/index.ts (67%)
create mode 100644
superset-frontend/src/chartCustomizations/components/DeckglLayerVisibility/transformProps.test.ts
copy superset-frontend/{plugins/legacy-preset-chart-deckgl/src/layers/Hex =>
src/chartCustomizations/components/DeckglLayerVisibility}/transformProps.ts
(82%)
copy superset-frontend/{packages/superset-ui-core/src/dimension =>
src/chartCustomizations/components/DeckglLayerVisibility}/types.ts (58%)
create mode 100644
superset-frontend/src/chartCustomizations/components/DeckglLayerVisibility/useDeckLayerMetadata.test.ts
create mode 100644
superset-frontend/src/chartCustomizations/components/DeckglLayerVisibility/useDeckLayerMetadata.ts
create mode 100644
superset-frontend/src/chartCustomizations/components/DynamicGroupBy/DynamicGroupByPlugin.tsx
copy superset-frontend/{plugins/plugin-chart-echarts/src/Tree =>
src/chartCustomizations/components/DynamicGroupBy}/buildQuery.ts (86%)
copy superset-frontend/src/{filters/components/Range =>
chartCustomizations/components/DynamicGroupBy}/controlPanel.ts (70%)
copy
superset-frontend/{packages/generator-superset/generators/plugin-chart/templates/src
=> src/chartCustomizations/components/DynamicGroupBy}/images/thumbnail.png
(100%)
copy superset-frontend/src/{filters/components/Range =>
chartCustomizations/components/DynamicGroupBy}/index.ts (70%)
copy superset-frontend/src/{filters/components/TimeGrain =>
chartCustomizations/components/DynamicGroupBy}/transformProps.ts (100%)
rename
superset-frontend/src/{dashboard/components/nativeFilters/ChartCustomization =>
chartCustomizations/components/DynamicGroupBy}/types.ts (51%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeColumn/TimeColumnFilterPlugin.tsx (97%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeColumn/buildQuery.ts (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeColumn/controlPanel.ts (97%)
copy
superset-frontend/{packages/generator-superset/generators/plugin-chart/templates/src
=> src/chartCustomizations/components/TimeColumn}/images/thumbnail.png (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeColumn/index.ts (79%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeColumn/transformProps.ts (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeColumn/types.ts (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeGrain/TimeGrainFilterPlugin.tsx (70%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeGrain/buildQuery.ts (100%)
copy superset-frontend/src/{filters/components/TimeColumn =>
chartCustomizations/components/TimeGrain}/controlPanel.ts (88%)
copy
superset-frontend/{packages/generator-superset/generators/plugin-chart/templates/src
=> src/chartCustomizations/components/TimeGrain}/images/thumbnail.png (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeGrain/index.ts (79%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeGrain/transformProps.ts (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeGrain/types.ts (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/common.ts (100%)
copy superset-frontend/{packages/superset-ui-chart-controls/src/sections =>
src/chartCustomizations/components}/index.ts (71%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/types.ts (99%)
copy
superset-frontend/{packages/superset-ui-core/src/components/IconTooltip/IconTooltip.stories.tsx
=> src/components/LastQueriedLabel/index.tsx} (54%)
create mode 100644
superset-frontend/src/components/MenuListExtension/MenuListExtension.test.tsx
create mode 100644 superset-frontend/src/components/MenuListExtension/index.tsx
create mode 100644
superset-frontend/src/components/ViewListExtension/ViewListExtension.test.tsx
copy superset-frontend/src/{core/extensions/index.ts =>
components/ViewListExtension/index.tsx} (55%)
delete mode 100644 superset-frontend/src/core/environment/index.ts
rename superset-frontend/src/dashboard/components/{GroupByBadge =>
CustomizationsBadge}/index.tsx (55%)
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationForm.tsx
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationModal.tsx
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitleContainer.tsx
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/ChartCustomizationTitlePane.tsx
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/groupBySelectors.ts
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/selectors.ts
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/useChartCustomizationModal.tsx
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/ChartCustomization/utils.ts
copy
superset-frontend/src/dashboard/components/nativeFilters/FilterBar/{FiltersOutOfScopeCollapsible
=> CustomizationsOutOfScopeCollapsible}/index.tsx (61%)
copy
superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/{FilterControl.tsx
=> FilterControlShared.tsx} (54%)
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.test.tsx
rename
superset-frontend/src/dashboard/components/nativeFilters/{ChartCustomization =>
FilterBar/FilterControls}/GroupByFilterCard.tsx (59%)
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/ConfigModalContent/ConfigModalContent.tsx
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/ConfigModalContent/CustomizationContentRenderer.tsx
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/ConfigModalContent/FilterContentRenderer.tsx
copy superset-frontend/{packages/superset-core/src =>
src/dashboard/components/nativeFilters/FiltersConfigModal/ConfigModalContent}/index.ts
(63%)
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/ConfigModalSidebar/ConfigModalSidebar.tsx
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/ConfigModalSidebar/ItemSection.tsx
copy superset-frontend/{packages/superset-core/src =>
src/dashboard/components/nativeFilters/FiltersConfigModal/ConfigModalSidebar}/index.ts
(76%)
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/DraggableFilter.test.tsx
copy
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/{FilterTitleContainer.tsx
=> ItemTitleContainer.tsx} (69%)
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/ItemTitlePane.tsx
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/NewItemDropdown.tsx
copy
superset-frontend/{packages/superset-ui-chart-controls/src/utils/colorControls.ts
=> src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/index.ts}
(60%)
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useCustomizationOperations.ts
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useFilterOperations.ts
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useItemStateManager.ts
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.ts
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/customizationTransformer.ts
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/filterTransformer.ts
copy superset-frontend/{packages/superset-core/src/ui/components =>
src/dashboard/components/nativeFilters/FiltersConfigModal/transformers}/index.ts
(85%)
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/utils.test.ts
delete mode 100644
superset-frontend/src/dashboard/reducers/groupByCustomizations.ts
create mode 100644 superset-frontend/src/dashboard/util/calculateScopes.ts
rename
superset-frontend/src/explore/components/controls/AnnotationLayerControl/{AnnotationLayer.jsx
=> AnnotationLayer.tsx} (74%)
rename
superset-frontend/src/explore/components/controls/AnnotationLayerControl/{AnnotationTypes.js
=> AnnotationTypes.ts} (67%)
rename
superset-frontend/src/explore/components/controls/{BoundsControl.test.jsx =>
BoundsControl.test.tsx} (100%)
rename superset-frontend/src/explore/components/controls/{CheckboxControl.jsx
=> CheckboxControl.tsx} (68%)
rename
superset-frontend/src/explore/components/controls/CollectionControl/{index.jsx
=> index.tsx} (66%)
copy
superset-frontend/src/explore/components/controls/{DateFilterControl/tests/CurrentCalendarFrame.test.tsx
=> CurrencyControl/CurrencyControl.test.tsx} (62%)
rename
superset-frontend/src/explore/components/controls/DatasourceControl/{index.jsx
=> index.tsx} (80%)
rename
superset-frontend/src/explore/components/controls/DndColumnSelectControl/{DndColumnSelectPopoverTitle.jsx
=> DndColumnSelectPopoverTitle.tsx} (89%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilter/{AdhocFilter.test.js
=> AdhocFilter.test.ts} (100%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilter/{index.js
=> index.ts} (56%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/{index.jsx
=> index.tsx} (70%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/{AdhocFilterEditPopover.test.jsx
=> AdhocFilterEditPopover.test.tsx} (89%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/{index.jsx
=> index.tsx} (73%)
rename
superset-frontend/src/explore/components/controls/FixedOrMetricControl/{index.jsx
=> index.tsx} (69%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{AdhocMetric.test.js
=> AdhocMetric.test.ts} (98%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{AdhocMetric.js
=> AdhocMetric.ts} (62%)
rename
superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/{index.jsx
=> index.tsx} (79%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{AdhocMetricOption.test.jsx
=> AdhocMetricOption.test.tsx} (90%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{AdhocMetricOption.jsx
=> AdhocMetricOption.tsx} (63%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{FilterDefinitionOption.test.jsx
=> FilterDefinitionOption.test.tsx} (94%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{FilterDefinitionOption.jsx
=> FilterDefinitionOption.tsx} (81%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{MetricDefinitionValue.test.jsx
=> MetricDefinitionValue.test.tsx} (83%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{MetricDefinitionValue.jsx
=> MetricDefinitionValue.tsx} (67%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{MetricsControl.test.jsx
=> MetricsControl.test.tsx} (92%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{MetricsControl.jsx
=> MetricsControl.tsx} (75%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{adhocMetricType.js
=> adhocMetricType.ts} (100%)
rename
superset-frontend/src/explore/components/controls/{SelectControl.test.jsx =>
SelectControl.test.tsx} (94%)
rename superset-frontend/src/explore/components/controls/{SelectControl.jsx =>
SelectControl.tsx} (64%)
rename superset-frontend/src/explore/components/controls/{SpatialControl.jsx
=> SpatialControl.tsx} (71%)
rename
superset-frontend/src/explore/components/controls/{TextAreaControl.test.jsx =>
TextAreaControl.test.tsx} (100%)
rename superset-frontend/src/explore/components/controls/{TextAreaControl.jsx
=> TextAreaControl.tsx} (68%)
rename
superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/{index.jsx
=> index.tsx} (81%)
rename
superset-frontend/src/explore/components/controls/{ViewportControl.test.jsx =>
ViewportControl.test.tsx} (100%)
rename superset-frontend/src/explore/components/controls/{ViewportControl.jsx
=> ViewportControl.tsx} (61%)
rename superset-frontend/src/explore/{controls.jsx => controls.tsx} (87%)
create mode 100644
superset-frontend/src/explore/exploreUtils/exportChart.test.ts
rename superset-frontend/src/explore/{store.test.jsx => store.test.tsx} (95%)
rename superset-frontend/src/explore/{store.js => store.ts} (61%)
create mode 100644 superset/examples/international_sales.py
delete mode 100644
superset/mcp_service/chart/tool/get_chart_available_filters.py
create mode 100644 superset/mcp_service/common/schema_discovery.py
delete mode 100644
superset/mcp_service/dashboard/tool/get_dashboard_available_filters.py
delete mode 100644
superset/mcp_service/dataset/tool/get_dataset_available_filters.py
create mode 100644 superset/mcp_service/system/resources/schema_discovery.py
create mode 100644 superset/mcp_service/system/tool/get_schema.py
copy
superset/migrations/versions/{2025-03-03_20-52_94e7a3499973_add_folders_column_to_dataset.py
=> 2025-11-18_14-00_9787190b3d89_add_currency_column_support.py} (66%)
create mode 100644 superset/utils/currency.py
create mode 100644 tests/unit_tests/commands/databases/validate_sql_test.py
create mode 100644 tests/unit_tests/commands/report/alert_test.py
create mode 100644 tests/unit_tests/commands/report/test_create_recipients.py
create mode 100644 tests/unit_tests/common/test_query_actions_currency.py
create mode 100644 tests/unit_tests/dashboards/test_chart_customizations_dao.py
create mode 100644
tests/unit_tests/mcp_service/chart/tool/test_get_chart_data.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/mcp_service/chart/validation}/__init__.py (100%)
create mode 100644
tests/unit_tests/mcp_service/chart/validation/test_runtime_validator.py
create mode 100644 tests/unit_tests/mcp_service/system/tool/test_get_schema.py
create mode 100644 tests/unit_tests/mcp_service/test_mcp_server.py
create mode 100644 tests/unit_tests/utils/currency_test.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/views/datasource}/__init__.py (100%)
create mode 100644 tests/unit_tests/views/datasource/utils_test.py