This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch revamped-example-loading
in repository https://gitbox.apache.org/repos/asf/superset.git
discard dc1657b2b7 feat(dashboard): Gate 'Export as Example' by user permission
discard 11c2408daf test(cypress): Re-skip tests that need more extensive fixes
discard 40567d33ef fix(cypress): Update bubble viz type and skip flaky test
discard ad79ebe6e7 test(cypress): Re-enable 11 tests using dynamic lookups
discard d009531b49 test(cypress): Skip remaining viz tests with hardcoded
datasource IDs
discard 7b6dba29fc test(cypress): Skip world_map test with hardcoded IDs
discard 2f8d46f52c fix(tests): Restore example modules and skip hardcoded-ID
tests
discard 57e6ac0ef9 fix(examples): Fix mypy/ruff errors and restore test file
discard 7808ee762a refactor(examples): Reset examples with fresh exports and
fix loader
discard 6d55e29fb1 test(cypress): Skip more failing visualization tests
discard 6a3a513fdc fix(cli): Defer imports in export_example to avoid app init
errors
discard 9c175cc668 fix(cypress): Skip _skip. prefixed tests in CI runner
discard 54be5d1e19 test(cypress): Skip failing tests incompatible with new
example loading
discard ce884c38ae test(cypress): Re-enable chart_list filter test
discard 740ea5fded fix(cypress): Use dynamic ID lookups instead of hardcoded
IDs
discard 9aab139fa2 test(cypress): Skip tabs.test.ts that depends on specific
charts
discard 36c8681174 fix(cypress): Add describe.skip to properly skip renamed
test files
discard efcfe5d429 fix(cypress): Skip chart_list filter test that depends on
specific datasets
discard 3413546436 fix(cypress): Skip tests that depend on charts not in YAML
configs
discard ec543e1dc4 fix(cypress): Update tests to be more flexible with example
data
discard 1e9ee97cf6 fix(examples): Restore birth_names and world_bank modules
for fixtures
discard aa79be2f7b fix(examples): Fix path handling in utils.py and revert
fixtures
discard 28a2faf59b fix(tests): Correct type ignores and expand CORE_EXAMPLES
discard cd9c3869bf fix(typing): Restore type: ignore comments in
core_api_injection.py
discard 94c7e1ca8e fix(tests): Resolve example loading conflicts with
integration tests
discard e0f8f50d8f chore(examples): Remove OSM Long/Lat chart from Misc Charts
discard 6c483a9133 fix(examples): Add missing required params to OSM Long/Lat
chart
discard 36e96e23ae Revert "fix(examples): Remove OSM Long/Lat chart requiring
Mapbox API key"
discard e7a460205b fix(examples): Remove OSM Long/Lat chart requiring Mapbox
API key
discard 555732beeb refactor(examples): Move Unicode Cloud chart to Misc Charts
dashboard
discard c91289831c docs(examples): Update README with complex example patterns
discard 1ac6f66457 fix(examples): Reduce OSM chart row_limit to 100000
discard 4315b18600 fix(examples): Fix OSM Long/Lat chart temporal column
reference
discard 02e4afea2b fix(docker): Remove DuckDB from docker-compose examples URI
discard 4cea212224 fix(examples): Remove DuckDB dependency from example loading
discard 23f3805c95 style(examples): Fix ruff-format slice spacing in helpers.py
discard f776305b17 refactor(examples): Reduce complexity of
_load_example_contents
discard 99be9ae8e1 fix(examples): Restore missing covid_vaccines Treemap chart
discard b8da2d2f52 refactor(examples): Consolidate datasets into dashboard
folders and restore Misc Charts
discard 184e9e435a refactor(examples): Support datasets/ and data/ folders for
complex dashboards
discard e13671f027 fix(examples): Restore missing SQL virtual datasets for
Slack Dashboard
discard 9b7e96fce8 fix(examples): Separate Featured Charts and remove orphan
chart files
discard f91c9bfdee fix(examples): Consolidate deck.gl Demo dashboard and
rename to deck_gl
discard b3916145fd fix(examples): Restore deleted charts and rename channels
to slack_dashboard
discard c0ad5189aa refactor(examples): Reduce complexity of load_contents
function
discard 60f47efd58 fix(examples): Add missing chart configs for COVID vaccines
dashboard
discard ce3cfd6fb6 docs: Fix remaining stale path references
discard a8bdf3d914 docs(examples): Update documentation for Parquet-based
examples
discard a2b896df01 chore(examples): Remove DuckDB references from helpers
discard 15d7cde806 chore(examples): Remove duplicate directories and simplify
config
discard e6937f247f fix(dashboard): Add missing dashboard_slices import
discard 776b387d87 refactor(examples): Restructure examples by name for better
devex
discard 2feac19eba refactor(examples): Migrate from DuckDB to Parquet format
discard c3248f95e6 refactor(examples): Replace energy.py custom loader with
config-based loading
discard 817fb02352 fix(examples): Restore energy.py loader with DuckDB support
discard 922ae53bc5 style: Apply ruff 0.9.7 formatting and fixes
discard a19a493dde style: Fix pytest decorator parentheses (PT001/PT023)
discard 5706c3e0b6 style: Apply ruff formatting to all Python files
discard c4299dbeb3 fix(examples): Preserve remote URLs in
normalize_example_data_url
discard 70ce029c5a style: Remove empty parentheses from pytest decorators
discard 539ea82979 fix(examples): Map energy.duckdb to energy_usage table name
discard 00a95a59a5 chore: Add noqa comments for PT004 fixture naming warnings
discard 2c5d823b27 fix(examples): Add None check for SqlaTable obj before
creating slices
discard c13539ed17 fix: Use explicit None check for sample_rows parameter
discard 99101d0c3f chore: Add Claude Code hook to run pre-commit before commits
discard 596df7fd68 perf(tests): Optimize fixture loading to prevent CI timeouts
discard a20396fcd0 fix: Update test fixtures to use DuckDB-based example data
discard 8544ca57fa fix: Skip test fixtures when old example modules are missing
discard 7733ce8d93 fix: Remove unused dashboard_slices import from dashboard
importer
discard 20e3845014 test: Skip birth_names tests conflicting with DuckDB
example format
discard 2a986e00ba fix: Address CodeAnt AI security and performance suggestions
discard c949476fbe fix: Add Apache license headers to new README and metadata
files
discard e452782731 fix: Add Apache license headers to YAML config files and
fix lambda binding
discard 96f8eae19c fix(examples): Fix example data loading issues and chart
configurations
discard 762fcb6791 chore: exclude DuckDB example files from large file check
discard e0c7654ce8 feat(examples): add DuckDB data files
discard 9de1667490 feat(examples): migrate example datasets to DuckDB and
simplify loading
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 e8db730b2b feat(examples): migrate example datasets to DuckDB and
simplify loading
add fdb9924490 feat(examples): add DuckDB data files
add b2c0aa8a06 chore: exclude DuckDB example files from large file check
add 7509416f21 fix(examples): Fix example data loading issues and chart
configurations
add f8e4f9e9d4 fix: Add Apache license headers to YAML config files and
fix lambda binding
add dc62e716a6 fix: Add Apache license headers to new README and metadata
files
add 4fe7ea8e06 fix: Address CodeAnt AI security and performance suggestions
add 218ce9d511 test: Skip birth_names tests conflicting with DuckDB
example format
add 64ad4daa86 fix: Remove unused dashboard_slices import from dashboard
importer
add ebf594d4a8 fix: Skip test fixtures when old example modules are missing
add ef8ca751f2 fix: Update test fixtures to use DuckDB-based example data
add ca3f5eac62 perf(tests): Optimize fixture loading to prevent CI timeouts
add 0746db466b chore: Add Claude Code hook to run pre-commit before commits
add 2611a20717 fix: Use explicit None check for sample_rows parameter
add 5c730e0d31 fix(examples): Add None check for SqlaTable obj before
creating slices
add 8689a95783 chore: Add noqa comments for PT004 fixture naming warnings
add 938a5a6a3d fix(examples): Map energy.duckdb to energy_usage table name
add ee3975ad9a style: Remove empty parentheses from pytest decorators
add 26161e4626 fix(examples): Preserve remote URLs in
normalize_example_data_url
add db8ac7f97d style: Apply ruff formatting to all Python files
add e3240733a2 style: Fix pytest decorator parentheses (PT001/PT023)
add 78306f07a5 style: Apply ruff 0.9.7 formatting and fixes
add 116680fb37 fix(examples): Restore energy.py loader with DuckDB support
add 1a72fa81ab refactor(examples): Replace energy.py custom loader with
config-based loading
add adb76b99f2 refactor(examples): Migrate from DuckDB to Parquet format
add 91f88bbcc0 refactor(examples): Restructure examples by name for better
devex
add 17c2b47925 fix(dashboard): Add missing dashboard_slices import
add 1754d9a59d chore(examples): Remove duplicate directories and simplify
config
add ccb7f82686 chore(examples): Remove DuckDB references from helpers
add 2a19ce1252 docs(examples): Update documentation for Parquet-based
examples
add b25d26d075 docs: Fix remaining stale path references
add dd5995bc35 fix(examples): Add missing chart configs for COVID vaccines
dashboard
add 47b999d0eb refactor(examples): Reduce complexity of load_contents
function
add 2fe9029bbd fix(examples): Restore deleted charts and rename channels
to slack_dashboard
add bd4bcdf394 fix(examples): Consolidate deck.gl Demo dashboard and
rename to deck_gl
add 718653ad8f fix(examples): Separate Featured Charts and remove orphan
chart files
add 608172fe90 fix(examples): Restore missing SQL virtual datasets for
Slack Dashboard
add 376f740f38 refactor(examples): Support datasets/ and data/ folders for
complex dashboards
add 9e947b9554 refactor(examples): Consolidate datasets into dashboard
folders and restore Misc Charts
add 60af726d0c fix(examples): Restore missing covid_vaccines Treemap chart
add 123f128eb2 refactor(examples): Reduce complexity of
_load_example_contents
add 24437da6d9 style(examples): Fix ruff-format slice spacing in helpers.py
add 6622b2f45b fix(examples): Remove DuckDB dependency from example loading
add d86bea10fd fix(docker): Remove DuckDB from docker-compose examples URI
add 73984b2cf3 fix(examples): Fix OSM Long/Lat chart temporal column
reference
add 10f0afd4a6 fix(examples): Reduce OSM chart row_limit to 100000
add 3c298c9d78 docs(examples): Update README with complex example patterns
add 315ccb41c6 refactor(examples): Move Unicode Cloud chart to Misc Charts
dashboard
add 32e98c1c34 fix(examples): Remove OSM Long/Lat chart requiring Mapbox
API key
add b23bb10b03 Revert "fix(examples): Remove OSM Long/Lat chart requiring
Mapbox API key"
add 6045891e65 fix(examples): Add missing required params to OSM Long/Lat
chart
add 060c07459b chore(examples): Remove OSM Long/Lat chart from Misc Charts
add 16c833c403 fix(tests): Resolve example loading conflicts with
integration tests
add 9db0dfc992 fix(typing): Restore type: ignore comments in
core_api_injection.py
add 8604c59e95 fix(tests): Correct type ignores and expand CORE_EXAMPLES
add 0ce4755a7b fix(examples): Fix path handling in utils.py and revert
fixtures
add 39defb5c77 fix(examples): Restore birth_names and world_bank modules
for fixtures
add 8dcc113d29 fix(cypress): Update tests to be more flexible with example
data
add dfa1d93966 fix(cypress): Skip tests that depend on charts not in YAML
configs
add b2505a563e fix(cypress): Skip chart_list filter test that depends on
specific datasets
add 76e54647c0 fix(cypress): Add describe.skip to properly skip renamed
test files
add 2a9efa331e test(cypress): Skip tabs.test.ts that depends on specific
charts
add 09b507eb29 fix(cypress): Use dynamic ID lookups instead of hardcoded
IDs
add 77e41b8e78 test(cypress): Re-enable chart_list filter test
add 441451ea0e test(cypress): Skip failing tests incompatible with new
example loading
add f2038078b7 fix(cypress): Skip _skip. prefixed tests in CI runner
add 75cfc26176 fix(cli): Defer imports in export_example to avoid app init
errors
add ae7c12a6ce test(cypress): Skip more failing visualization tests
add e7ecf0f5fa refactor(examples): Reset examples with fresh exports and
fix loader
add 85b16bf817 fix(examples): Fix mypy/ruff errors and restore test file
add 25232440df fix(tests): Restore example modules and skip hardcoded-ID
tests
add b44690bf67 test(cypress): Skip world_map test with hardcoded IDs
add 29a9c8e650 test(cypress): Skip remaining viz tests with hardcoded
datasource IDs
add 25ff128dd2 test(cypress): Re-enable 11 tests using dynamic lookups
add 34400c002b fix(cypress): Update bubble viz type and skip flaky test
add 1c3b333f16 test(cypress): Re-skip tests that need more extensive fixes
add 883bbcc47c feat(dashboard): Gate 'Export as Example' by user permission
add c05811eb03 style: Fix ruff-format in export_example_test.py
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 (dc1657b2b7)
\
N -- N -- N refs/heads/revamped-example-loading (c05811eb03)
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 +-
Dockerfile | 2 +-
Makefile | 8 +-
RESOURCES/INTHEWILD.yaml | 22 +-
.../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/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 +
.../creating-your-first-dashboard.mdx | 11 +
docs/docs/using-superset/exploring-data.mdx | 9 +
docs/docusaurus.config.ts | 12 +
docs/netlify.toml | 56 ++
docs/package.json | 10 +-
docs/src/styles/custom.css | 39 +
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/yarn.lock | 348 ++++----
pyproject.toml | 22 +-
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 +-
.../netlify.toml | 22 +-
superset-frontend/oxlint.json | 2 +-
superset-frontend/package-lock.json | 611 ++++++-------
superset-frontend/package.json | 14 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-core/package.json | 10 +-
.../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 | 2 +-
.../src/shared-controls/dndControls.tsx | 3 +-
.../src/shared-controls/matrixifyControls.tsx | 3 +-
.../src/shared-controls/mixins.tsx | 2 +-
.../src/shared-controls/sharedControls.tsx | 2 +-
.../src/utils/D3Formatting.ts | 2 +-
.../test/utils/getColorFormatters.test.ts | 2 +-
.../src/chart/components/FallbackComponent.tsx | 2 +-
.../src/chart/components/NoResultsComponent.tsx | 3 +-
.../src/chart/components/SuperChartCore.tsx | 2 +-
.../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 | 2 +-
.../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 +-
.../src/components/TimezoneSelector/index.tsx | 2 +-
.../src/components/TruncatedList/index.tsx | 3 +-
.../src/components/UnsavedChangesModal/index.tsx | 2 +-
.../superset-ui-core/src/components/constants.ts | 2 +-
.../packages/superset-ui-core/src/index.ts | 1 -
.../src/query/extractQueryFields.ts | 2 +-
.../src/query/getClientErrorObject.ts | 2 +-
.../src/query/types/QueryResponse.ts | 6 +-
.../superset-ui-core/src/utils/featureFlags.ts | 2 +-
.../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 +-
.../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 | 2 +-
.../storybook/shared/components/VerifyCORS.tsx | 2 +-
.../playwright/tests/experimental/README.md | 7 +
.../legacy-plugin-chart-calendar/src/Calendar.js | 3 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-calendar/src/index.js | 3 +-
.../src/vendor/cal-heatmap.js | 3 +-
.../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/Multi/controlPanel.ts | 3 +-
.../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 | 158 +++-
.../plugin-chart-ag-grid-table/src/consts.ts | 15 +
.../src/controlPanel.tsx | 2 +-
.../plugin-chart-ag-grid-table/src/index.ts | 3 +-
.../src/renderers/NumericCellRenderer.tsx | 14 +-
.../src/renderers/TextCellRenderer.tsx | 3 +-
.../src/stateConversion.ts | 185 +++-
.../src/transformProps.ts | 2 +-
.../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 +-
.../src/BigNumber/BigNumberTotal/controlPanel.ts | 3 +-
.../src/BigNumber/BigNumberTotal/index.ts | 3 +-
.../src/BigNumber/BigNumberViz.tsx | 2 +-
.../BigNumberWithTrendline/controlPanel.tsx | 3 +-
.../src/BigNumber/BigNumberWithTrendline/index.ts | 3 +-
.../BigNumberWithTrendline/transformProps.ts | 2 +-
.../src/BigNumber/sharedControls.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/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/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 | 2 +-
.../src/Histogram/controlPanel.tsx | 3 +-
.../plugin-chart-echarts/src/Histogram/index.ts | 3 +-
.../src/MixedTimeseries/controlPanel.tsx | 3 +-
.../src/MixedTimeseries/index.ts | 3 +-
.../plugin-chart-echarts/src/Pie/controlPanel.tsx | 3 +-
.../plugins/plugin-chart-echarts/src/Pie/index.ts | 3 +-
.../plugin-chart-echarts/src/Pie/transformProps.ts | 2 +-
.../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 | 2 +-
.../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 | 2 +-
.../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/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 -
.../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 +-
.../src/PivotTableChart.tsx | 2 +-
.../src/plugin/controlPanel.tsx | 2 +-
.../plugin-chart-pivot-table/src/plugin/index.ts | 2 +-
.../src/react-pivottable/TableRenderers.jsx | 3 +-
.../src/react-pivottable/utilities.js | 2 +-
.../src/DataTable/components/SelectPageSize.tsx | 2 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 11 +-
.../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 | 2 +-
.../plugins/plugin-chart-table/test/testData.ts | 1 +
.../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 | 260 +++---
.../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 +-
.../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 | 2 +-
.../components/CollectionTable/index.tsx | 2 +-
.../DatasourceEditor/DatasourceEditor.jsx | 2 +-
.../components/DatasetUsageTab/index.tsx | 2 +-
.../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/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 | 3 +-
.../src/dashboard/actions/dashboardInfo.ts | 3 +-
.../src/dashboard/actions/dashboardLayout.js | 2 +-
.../src/dashboard/actions/dashboardState.js | 16 +-
.../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 +-
.../src/dashboard/components/Dashboard.jsx | 2 +-
.../DashboardBuilder/DashboardBuilder.tsx | 3 +-
.../src/dashboard/components/DashboardGrid.jsx | 4 +-
.../dashboard/components/EmbeddedModal/index.tsx | 2 +-
.../components/FiltersBadge/DetailsPanel/index.tsx | 2 +-
.../dashboard/components/FiltersBadge/index.tsx | 2 +-
.../dashboard/components/GroupByBadge/index.tsx | 2 +-
.../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 | 6 +-
.../ViewResultsModalTrigger.tsx | 2 +-
.../components/SliceHeaderControls/index.tsx | 25 +-
.../components/SliceHeaderControls/types.ts | 1 +
.../components/URLShortLinkButton/index.tsx | 9 +-
.../components/filterscope/FilterScopeSelector.jsx | 3 +-
.../dashboard/components/filterscope/treeIcons.tsx | 2 +-
.../components/gridComponents/Chart/Chart.jsx | 34 +-
.../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 | 25 +-
.../components/gridComponents/Tab/Tab.test.tsx | 103 +++
.../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 | 9 +-
.../components/menu/MarkdownModeDropdown.tsx | 2 +-
.../components/menu/ShareMenuItems/index.tsx | 9 +-
.../ChartCustomization/ChartCustomizationForm.tsx | 2 +-
.../ChartCustomization/ChartCustomizationModal.tsx | 2 +-
.../ChartCustomizationTitleContainer.tsx | 2 +-
.../ChartCustomizationTitlePane.tsx | 2 +-
.../ChartCustomization/GroupByFilterCard.tsx | 3 +-
.../nativeFilters/ChartCustomization/utils.ts | 2 +-
.../nativeFilters/ConfigModal/ModalFooter.tsx | 2 +-
.../FilterBar/ActionButtons/index.tsx | 2 +-
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 3 +-
.../ScopingModal/ChartsScopingListPanel.tsx | 2 +-
.../CrossFilters/ScopingModal/ScopingModal.tsx | 3 +-
.../CrossFilters/ScopingModal/ScopingTreePanel.tsx | 3 +-
.../FilterBar/CrossFilters/VerticalCollapse.tsx | 2 +-
.../FilterBar/FilterBarSettings/index.tsx | 2 +-
.../FilterBar/FilterControls/FilterControls.tsx | 2 +-
.../FilterBar/FilterControls/FilterValue.tsx | 2 +-
.../FiltersOutOfScopeCollapsible/index.tsx | 3 +-
.../nativeFilters/FilterBar/Header/index.tsx | 2 +-
.../nativeFilters/FilterBar/Horizontal.tsx | 3 +-
.../nativeFilters/FilterBar/Vertical.tsx | 2 +-
.../nativeFilters/FilterBar/keyValue.tsx | 3 +-
.../nativeFilters/FilterCard/DependenciesRow.tsx | 3 +-
.../nativeFilters/FilterCard/ScopeRow.tsx | 3 +-
.../nativeFilters/FilterCard/TypeRow.tsx | 3 +-
.../nativeFilters/FilterCard/useFilterScope.ts | 3 +-
.../FiltersConfigModal/DividerConfigForm.tsx | 3 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 19 +-
.../FiltersConfigModal/FilterTitlePane.tsx | 3 +-
.../FiltersConfigForm/ColumnSelect.tsx | 2 +-
.../FiltersConfigForm/DatasetSelect.tsx | 2 +-
.../FiltersConfigForm/DefaultValue.tsx | 2 +-
.../FiltersConfigForm/DependencyList.tsx | 2 +-
.../FiltersConfigForm/FilterScope/state.ts | 2 +-
.../FiltersConfigForm/FilterScope/utils.ts | 4 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 6 +-
.../FiltersConfigForm/RemovedFilter.tsx | 2 +-
.../FiltersConfigForm/getControlItemsMap.tsx | 3 +-
.../FiltersConfigModal/FiltersConfigForm/state.ts | 3 +-
.../FiltersConfigModal/FiltersConfigModal.tsx | 3 +-
.../Footer/CancelConfirmationAlert.tsx | 2 +-
.../FiltersConfigModal/Footer/Footer.tsx | 2 +-
.../nativeFilters/FiltersConfigModal/utils.ts | 2 +-
.../dashboard/components/nativeFilters/utils.ts | 2 +-
.../src/dashboard/containers/DashboardPage.tsx | 19 +-
.../src/dashboard/hooks/useDownloadScreenshot.ts | 9 +-
.../src/dashboard/reducers/sliceEntities.ts | 2 +-
.../src/dashboard/util/backgroundStyleOptions.ts | 2 +-
.../src/dashboard/util/getFilterFieldNodesTree.ts | 2 +-
.../src/dashboard/util/getFilterScopeNodesTree.js | 2 +-
.../src/dashboard/util/getSliceHeaderTooltip.tsx | 2 +-
.../src/dashboard/util/headerStyleOptions.ts | 2 +-
.../src/dashboard/util/newComponentFactory.js | 2 +-
.../dashboard/util/updateComponentParentsList.ts | 2 +-
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 | 2 +-
.../explore/components/ControlPanelsContainer.tsx | 2 +-
.../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 +-
.../components/ExploreChartHeader/index.jsx | 5 +-
.../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.tsx | 9 +-
.../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 | 2 +-
.../controls/ColumnConfigControl/constants.tsx | 3 +-
.../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 +-
.../controls/CurrencyControl/CurrencyControl.tsx | 8 +-
.../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.tsx | 3 +-
.../{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 +
.../components/controls/OptionControls/index.tsx | 6 +-
.../controls/SelectAsyncControl/index.tsx | 3 +-
...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 +-
.../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.tsx | 2 +-
.../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 | 2 +-
.../AddDataset/DatasetPanel/MessageContent.tsx | 2 +-
.../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 +-
.../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.tsx | 4 +-
.../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 +-
superset-frontend/src/pages/ChartList/index.tsx | 2 +-
.../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 +-
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 +-
.../src/visualizations/TimeTable/TimeTable.tsx | 2 +-
.../TimeTable/config/controlPanel/controlPanel.ts | 3 +-
.../src/visualizations/TimeTable/index.ts | 3 +-
.../ExampleComponent/ExampleComponent.tsx | 3 +-
superset-websocket/package-lock.json | 700 +++++----------
superset-websocket/package.json | 8 +-
superset/charts/schemas.py | 7 +
superset/commands/database/validate_sql.py | 44 +
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_context_processor.py | 1 +
superset/common/utils/query_cache_manager.py | 11 +
superset/dashboards/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/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/chart/schemas.py | 76 +-
superset/mcp_service/chart/tool/__init__.py | 2 -
superset/mcp_service/chart/tool/generate_chart.py | 6 +-
.../chart/tool/get_chart_available_filters.py | 50 --
superset/mcp_service/chart/tool/get_chart_data.py | 95 +-
superset/mcp_service/chart/tool/list_charts.py | 42 +-
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 | 68 +-
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 | 43 +-
.../mcp_service/docs/tool-search-optimization.md | 2 +-
superset/mcp_service/mcp_core.py | 120 ++-
superset/mcp_service/server.py | 4 +-
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/models/helpers.py | 20 +-
superset/reports/schemas.py | 2 +-
superset/sql/parse.py | 2 +-
superset/sqllab/query_render.py | 23 +-
superset/utils/core.py | 1 +
superset/utils/date_parser.py | 10 +-
superset/utils/excel.py | 2 +-
superset/views/datasource/utils.py | 6 +
tests/integration_tests/databases/api_tests.py | 109 +++
tests/integration_tests/reports/alert_tests.py | 8 +-
.../commands/dashboard/export_example_test.py | 19 +-
.../commands/databases/validate_sql_test.py | 279 ++++++
tests/unit_tests/commands/report/alert_test.py | 496 +++++++++++
.../commands/report/test_create_recipients.py | 179 ++++
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/jinja_context_test.py | 54 ++
.../mcp_service/chart/tool/test_generate_chart.py | 21 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 99 +++
.../mcp_service/chart/tool/test_list_charts.py | 48 +-
.../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 +++-
.../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/date_parser_tests.py | 47 +
.../unit_tests/views/datasource}/__init__.py | 0
tests/unit_tests/views/datasource/utils_test.py | 217 +++++
922 files changed, 17841 insertions(+), 5423 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
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%)
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
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
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%)
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/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%)
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%)
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
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/mcp_service/chart/tool/test_get_chart_data.py
create mode 100644 tests/unit_tests/mcp_service/system/tool/test_get_schema.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