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 56069323ea fix(docker): Load examples from Parquet files instead of
pre-built DuckDB
discard c05811eb03 style: Fix ruff-format in export_example_test.py
discard 883bbcc47c feat(dashboard): Gate 'Export as Example' by user permission
discard 1c3b333f16 test(cypress): Re-skip tests that need more extensive fixes
discard 34400c002b fix(cypress): Update bubble viz type and skip flaky test
discard 25ff128dd2 test(cypress): Re-enable 11 tests using dynamic lookups
discard 29a9c8e650 test(cypress): Skip remaining viz tests with hardcoded
datasource IDs
discard b44690bf67 test(cypress): Skip world_map test with hardcoded IDs
discard 25232440df fix(tests): Restore example modules and skip hardcoded-ID
tests
discard 85b16bf817 fix(examples): Fix mypy/ruff errors and restore test file
discard e7ecf0f5fa refactor(examples): Reset examples with fresh exports and
fix loader
discard ae7c12a6ce test(cypress): Skip more failing visualization tests
discard 75cfc26176 fix(cli): Defer imports in export_example to avoid app init
errors
discard f2038078b7 fix(cypress): Skip _skip. prefixed tests in CI runner
discard 441451ea0e test(cypress): Skip failing tests incompatible with new
example loading
discard 77e41b8e78 test(cypress): Re-enable chart_list filter test
discard 09b507eb29 fix(cypress): Use dynamic ID lookups instead of hardcoded
IDs
discard 2a9efa331e test(cypress): Skip tabs.test.ts that depends on specific
charts
discard 76e54647c0 fix(cypress): Add describe.skip to properly skip renamed
test files
discard b2505a563e fix(cypress): Skip chart_list filter test that depends on
specific datasets
discard dfa1d93966 fix(cypress): Skip tests that depend on charts not in YAML
configs
discard 8dcc113d29 fix(cypress): Update tests to be more flexible with example
data
discard 39defb5c77 fix(examples): Restore birth_names and world_bank modules
for fixtures
discard 0ce4755a7b fix(examples): Fix path handling in utils.py and revert
fixtures
discard 8604c59e95 fix(tests): Correct type ignores and expand CORE_EXAMPLES
discard 9db0dfc992 fix(typing): Restore type: ignore comments in
core_api_injection.py
discard 16c833c403 fix(tests): Resolve example loading conflicts with
integration tests
discard 060c07459b chore(examples): Remove OSM Long/Lat chart from Misc Charts
discard 6045891e65 fix(examples): Add missing required params to OSM Long/Lat
chart
discard b23bb10b03 Revert "fix(examples): Remove OSM Long/Lat chart requiring
Mapbox API key"
discard 32e98c1c34 fix(examples): Remove OSM Long/Lat chart requiring Mapbox
API key
discard 315ccb41c6 refactor(examples): Move Unicode Cloud chart to Misc Charts
dashboard
discard 3c298c9d78 docs(examples): Update README with complex example patterns
discard 10f0afd4a6 fix(examples): Reduce OSM chart row_limit to 100000
discard 73984b2cf3 fix(examples): Fix OSM Long/Lat chart temporal column
reference
discard d86bea10fd fix(docker): Remove DuckDB from docker-compose examples URI
discard 6622b2f45b fix(examples): Remove DuckDB dependency from example loading
discard 24437da6d9 style(examples): Fix ruff-format slice spacing in helpers.py
discard 123f128eb2 refactor(examples): Reduce complexity of
_load_example_contents
discard 60af726d0c fix(examples): Restore missing covid_vaccines Treemap chart
discard 9e947b9554 refactor(examples): Consolidate datasets into dashboard
folders and restore Misc Charts
discard 376f740f38 refactor(examples): Support datasets/ and data/ folders for
complex dashboards
discard 608172fe90 fix(examples): Restore missing SQL virtual datasets for
Slack Dashboard
discard 718653ad8f fix(examples): Separate Featured Charts and remove orphan
chart files
discard bd4bcdf394 fix(examples): Consolidate deck.gl Demo dashboard and
rename to deck_gl
discard 2fe9029bbd fix(examples): Restore deleted charts and rename channels
to slack_dashboard
discard 47b999d0eb refactor(examples): Reduce complexity of load_contents
function
discard dd5995bc35 fix(examples): Add missing chart configs for COVID vaccines
dashboard
discard b25d26d075 docs: Fix remaining stale path references
discard 2a19ce1252 docs(examples): Update documentation for Parquet-based
examples
discard ccb7f82686 chore(examples): Remove DuckDB references from helpers
discard 1754d9a59d chore(examples): Remove duplicate directories and simplify
config
discard 17c2b47925 fix(dashboard): Add missing dashboard_slices import
discard 91f88bbcc0 refactor(examples): Restructure examples by name for better
devex
discard adb76b99f2 refactor(examples): Migrate from DuckDB to Parquet format
discard 1a72fa81ab refactor(examples): Replace energy.py custom loader with
config-based loading
discard 116680fb37 fix(examples): Restore energy.py loader with DuckDB support
discard 78306f07a5 style: Apply ruff 0.9.7 formatting and fixes
discard e3240733a2 style: Fix pytest decorator parentheses (PT001/PT023)
discard db8ac7f97d style: Apply ruff formatting to all Python files
discard 26161e4626 fix(examples): Preserve remote URLs in
normalize_example_data_url
discard ee3975ad9a style: Remove empty parentheses from pytest decorators
discard 938a5a6a3d fix(examples): Map energy.duckdb to energy_usage table name
discard 8689a95783 chore: Add noqa comments for PT004 fixture naming warnings
discard 5c730e0d31 fix(examples): Add None check for SqlaTable obj before
creating slices
discard 2611a20717 fix: Use explicit None check for sample_rows parameter
discard 0746db466b chore: Add Claude Code hook to run pre-commit before commits
discard ca3f5eac62 perf(tests): Optimize fixture loading to prevent CI timeouts
discard ef8ca751f2 fix: Update test fixtures to use DuckDB-based example data
discard ebf594d4a8 fix: Skip test fixtures when old example modules are missing
discard 64ad4daa86 fix: Remove unused dashboard_slices import from dashboard
importer
discard 218ce9d511 test: Skip birth_names tests conflicting with DuckDB
example format
discard 4fe7ea8e06 fix: Address CodeAnt AI security and performance suggestions
discard dc62e716a6 fix: Add Apache license headers to new README and metadata
files
discard f8e4f9e9d4 fix: Add Apache license headers to YAML config files and
fix lambda binding
discard 7509416f21 fix(examples): Fix example data loading issues and chart
configurations
discard b2c0aa8a06 chore: exclude DuckDB example files from large file check
discard fdb9924490 feat(examples): add DuckDB data files
discard e8db730b2b feat(examples): migrate example datasets to DuckDB and
simplify loading
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 fecff9aed2 feat(examples): migrate example datasets to DuckDB and
simplify loading
add 018bb5867b feat(examples): add DuckDB data files
add 24e0809fd5 chore: exclude DuckDB example files from large file check
add eb6d455437 fix(examples): Fix example data loading issues and chart
configurations
add d276f36fcc fix: Add Apache license headers to YAML config files and
fix lambda binding
add 7a8972767b fix: Add Apache license headers to new README and metadata
files
add 05b69af8d2 fix: Address CodeAnt AI security and performance suggestions
add b2dc328537 test: Skip birth_names tests conflicting with DuckDB
example format
add 693a9779ed fix: Remove unused dashboard_slices import from dashboard
importer
add d023f98997 fix: Skip test fixtures when old example modules are missing
add deb7c3cd5e fix: Update test fixtures to use DuckDB-based example data
add 915c9703ff perf(tests): Optimize fixture loading to prevent CI timeouts
add d8270404de chore: Add Claude Code hook to run pre-commit before commits
add 26965bfc90 fix: Use explicit None check for sample_rows parameter
add 8ff3883c61 fix(examples): Add None check for SqlaTable obj before
creating slices
add 7d18f2b504 chore: Add noqa comments for PT004 fixture naming warnings
add 51727814f0 fix(examples): Map energy.duckdb to energy_usage table name
add ea715553e3 style: Remove empty parentheses from pytest decorators
add 84e9836d01 fix(examples): Preserve remote URLs in
normalize_example_data_url
add 079207fa20 style: Apply ruff formatting to all Python files
add 58f350d22e style: Fix pytest decorator parentheses (PT001/PT023)
add b3ecf3d65b style: Apply ruff 0.9.7 formatting and fixes
add 9268271e52 fix(examples): Restore energy.py loader with DuckDB support
add 0c6cdf4a5e refactor(examples): Replace energy.py custom loader with
config-based loading
add d577f6e65b refactor(examples): Migrate from DuckDB to Parquet format
add bf57fc8686 refactor(examples): Restructure examples by name for better
devex
add cd705b6b8c fix(dashboard): Add missing dashboard_slices import
add e3d74202e2 chore(examples): Remove duplicate directories and simplify
config
add 2d0881ac1f chore(examples): Remove DuckDB references from helpers
add ba4e86f3f5 docs(examples): Update documentation for Parquet-based
examples
add 3adbd88579 docs: Fix remaining stale path references
add 71fee7b6d0 fix(examples): Add missing chart configs for COVID vaccines
dashboard
add 288cdc13dc refactor(examples): Reduce complexity of load_contents
function
add d03d2694ae fix(examples): Restore deleted charts and rename channels
to slack_dashboard
add 1155608c63 fix(examples): Consolidate deck.gl Demo dashboard and
rename to deck_gl
add 72dbd7e60e fix(examples): Separate Featured Charts and remove orphan
chart files
add d6b04a558a fix(examples): Restore missing SQL virtual datasets for
Slack Dashboard
add 7177c9f81c refactor(examples): Support datasets/ and data/ folders for
complex dashboards
add 5faacc98b3 refactor(examples): Consolidate datasets into dashboard
folders and restore Misc Charts
add 168f25eb68 fix(examples): Restore missing covid_vaccines Treemap chart
add 5b174c4ab5 refactor(examples): Reduce complexity of
_load_example_contents
add 57b5dabf72 style(examples): Fix ruff-format slice spacing in helpers.py
add 4ac6955e09 fix(examples): Remove DuckDB dependency from example loading
add 6822c39782 fix(docker): Remove DuckDB from docker-compose examples URI
add 91160665d1 fix(examples): Fix OSM Long/Lat chart temporal column
reference
add 60bde71fce fix(examples): Reduce OSM chart row_limit to 100000
add 1bdd59e749 docs(examples): Update README with complex example patterns
add 881bdfc4a6 refactor(examples): Move Unicode Cloud chart to Misc Charts
dashboard
add 6b8c435ad4 fix(examples): Remove OSM Long/Lat chart requiring Mapbox
API key
add b721bb7826 Revert "fix(examples): Remove OSM Long/Lat chart requiring
Mapbox API key"
add e693791720 fix(examples): Add missing required params to OSM Long/Lat
chart
add 1ecb89475b chore(examples): Remove OSM Long/Lat chart from Misc Charts
add 1c91acf2bb fix(tests): Resolve example loading conflicts with
integration tests
add 4cf748d861 fix(typing): Restore type: ignore comments in
core_api_injection.py
add 062ea60e69 fix(tests): Correct type ignores and expand CORE_EXAMPLES
add 563345ba36 fix(examples): Fix path handling in utils.py and revert
fixtures
add d5e0b12e1c fix(examples): Restore birth_names and world_bank modules
for fixtures
add 6c6d36a243 fix(cypress): Update tests to be more flexible with example
data
add b5d9c59dde fix(cypress): Skip tests that depend on charts not in YAML
configs
add 85ae17f562 fix(cypress): Skip chart_list filter test that depends on
specific datasets
add 819183cf6f fix(cypress): Add describe.skip to properly skip renamed
test files
add 94646ead6b test(cypress): Skip tabs.test.ts that depends on specific
charts
add be60a7242e fix(cypress): Use dynamic ID lookups instead of hardcoded
IDs
add 410d70a69b test(cypress): Re-enable chart_list filter test
add adaa7511e3 test(cypress): Skip failing tests incompatible with new
example loading
add a118bf684b fix(cypress): Skip _skip. prefixed tests in CI runner
add 5f3d11c547 fix(cli): Defer imports in export_example to avoid app init
errors
add db7e9b3d38 test(cypress): Skip more failing visualization tests
add 722a7deb70 refactor(examples): Reset examples with fresh exports and
fix loader
add a975a0178f fix(examples): Fix mypy/ruff errors and restore test file
add 73fa3df6f9 fix(tests): Restore example modules and skip hardcoded-ID
tests
add 11eea4162d test(cypress): Skip world_map test with hardcoded IDs
add 4f26704a20 test(cypress): Skip remaining viz tests with hardcoded
datasource IDs
add 06e58eba7b test(cypress): Re-enable 11 tests using dynamic lookups
add 63c86af76c fix(cypress): Update bubble viz type and skip flaky test
add 5601a7a09d test(cypress): Re-skip tests that need more extensive fixes
add 22d4771043 feat(dashboard): Gate 'Export as Example' by user permission
add 793f01df72 style: Fix ruff-format in export_example_test.py
add 32b23b72ec fix(docker): Load examples from Parquet files instead of
pre-built DuckDB
add ca790a4384 test(cypress): Re-enable 8 tests that have all required
dependencies
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 (56069323ea)
\
N -- N -- N refs/heads/revamped-example-loading (ca790a4384)
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:
RESOURCES/INTHEWILD.yaml | 5 +
docs/docs/using-superset/exploring-data.mdx | 8 +-
docs/package.json | 4 +-
docs/src/pages/inTheWild.tsx | 2 +-
docs/src/styles/custom.css | 9 +
docs/static/img/logos/userguiding.svg | Bin 0 -> 5610 bytes
docs/yarn.lock | 318 ++---
.../{_skip.filter.test.ts => filter.test.ts} | 0
...lterBar.test.ts => horizontalFilterBar.test.ts} | 1 +
.../dashboard/{_skip.load.test.ts => load.test.ts} | 0
...e.test.ts => nativeFilters.noInitState.test.ts} | 0
...nativeFilters.test.ts => nativeFilters.test.ts} | 3 +
.../cypress-base/cypress/e2e/dashboard/utils.ts | 10 +-
.../explore/{_skip.link.test.ts => link.test.ts} | 0
.../{_skip.box_plot.test.js => box_plot.test.js} | 0
.../{_skip.bubble.test.js => bubble.test.js} | 0
superset-frontend/package-lock.json | 484 +++++--
superset-frontend/package.json | 14 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-core/package.json | 2 +-
.../packages/superset-ui-core/package.json | 4 +-
.../superset-ui-core/src/chart/types/Base.ts | 1 +
.../src/components/EmptyState/index.tsx | 87 +-
.../src/components/EmptyState/types.ts | 3 +
.../src/currency-format/CurrencyFormatter.ts | 11 +-
.../superset-ui-core/src/query/constants.ts | 1 +
.../packages/superset-ui-core/src/query/index.ts | 1 +
.../superset-ui-core/src/query/types/Dashboard.ts | 81 +-
.../superset-ui-core/src/query/types/Query.ts | 2 +
.../src/query/types/QueryFormData.ts | 5 +-
.../test/currency-format/CurrencyFormatter.test.ts | 6 +-
.../src/DeckGLContainer.tsx | 6 +-
.../legacy-preset-chart-deckgl/src/Multi/Multi.tsx | 127 +-
.../src/Multi/controlPanel.ts | 29 +-
.../src/styles/index.tsx | 4 +-
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../plugins/plugin-chart-pivot-table/package.json | 2 +-
.../src/react-pivottable/Styles.js | 2 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 4 +-
...ckglLayerVisibilityCustomizationPlugin.test.tsx | 484 +++++++
.../DeckglLayerVisibilityCustomizationPlugin.tsx | 204 +++
.../DeckglLayerVisibility/buildQuery.test.ts} | 48 +-
.../components/DeckglLayerVisibility/buildQuery.ts | 17 +-
.../DeckglLayerVisibility/controlPanel.ts} | 9 +-
.../components/DeckglLayerVisibility}/index.ts | 15 +-
.../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 | 35 +-
.../DynamicGroupBy}/images/thumbnail.png | Bin
.../components/DynamicGroupBy}/index.ts | 13 +-
.../components/DynamicGroupBy}/transformProps.ts | 0
.../components/DynamicGroupBy}/types.ts | 74 +-
.../TimeColumn/TimeColumnFilterPlugin.tsx | 0
.../components/TimeColumn/buildQuery.ts | 0
.../components/TimeColumn/controlPanel.ts | 0
.../components/TimeColumn}/images/thumbnail.png | Bin
.../components/TimeColumn/index.ts | 6 +-
.../components/TimeColumn/transformProps.ts | 0
.../components/TimeColumn/types.ts | 0
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 63 +-
.../components/TimeGrain/buildQuery.ts | 0
.../components/TimeGrain}/controlPanel.ts | 4 +-
.../components/TimeGrain}/images/thumbnail.png | Bin
.../components/TimeGrain/index.ts | 6 +-
.../components/TimeGrain/transformProps.ts | 0
.../components/TimeGrain/types.ts | 0
.../components/common.ts | 0
.../chartCustomizations/components}/index.ts | 5 +-
.../components/types.ts | 7 +-
superset-frontend/src/constants.ts | 7 +
.../dashboard/actions/chartCustomizationActions.ts | 378 +++--
superset-frontend/src/dashboard/actions/hydrate.js | 9 +-
.../src/dashboard/actions/nativeFilters.ts | 23 +-
.../index.tsx | 206 +--
.../DashboardBuilder/DashboardContainer.test.tsx | 211 +--
.../DashboardBuilder/DashboardContainer.tsx | 152 +-
.../dashboard/components/DashboardBuilder/state.ts | 27 +-
.../src/dashboard/components/SliceHeader/index.tsx | 4 +-
.../components/SyncDashboardState/index.tsx | 5 +-
.../components/gridComponents/Chart/Chart.jsx | 6 +-
.../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/SharedStyles.tsx | 1 -
.../FilterBar/ActionButtons/index.tsx | 15 +-
.../index.tsx | 31 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 45 +-
.../FilterBar/FilterBarSettings/index.tsx | 29 +-
.../useFilterConfigModal.tsx | 33 +-
.../FilterBar/FilterControls/FilterControl.tsx | 280 +---
.../{FilterControl.tsx => FilterControlShared.tsx} | 244 +---
.../FilterControls/FilterControls.test.tsx | 186 +++
.../FilterBar/FilterControls/FilterControls.tsx | 206 ++-
.../FilterBar/FilterControls/FilterValue.tsx | 72 +-
.../FilterControls}/GroupByFilterCard.tsx | 403 +++---
.../FilterBar/FilterControls/types.ts | 19 +-
.../nativeFilters/FilterBar/Horizontal.tsx | 15 +-
.../FilterBar/HorizontalFilterBar.test.tsx | 2 +
.../nativeFilters/FilterBar/Vertical.tsx | 23 +-
.../components/nativeFilters/FilterBar/index.tsx | 226 ++-
.../components/nativeFilters/FilterBar/state.ts | 67 +-
.../components/nativeFilters/FilterBar/types.ts | 7 +
.../FilterBar/useFilterControlFactory.tsx | 5 +-
.../components/nativeFilters/FilterBar/utils.ts | 10 +-
.../nativeFilters/FilterCard/FilterCard.test.tsx | 8 +-
.../nativeFilters/FilterCard/FilterCardContent.tsx | 4 +-
.../nativeFilters/FilterCard/NameRow.tsx | 25 +-
.../nativeFilters/FilterCard/TypeRow.tsx | 8 +-
.../components/nativeFilters/FilterCard/types.ts | 5 +-
.../FilterCard/useFilterDependencies.ts | 5 +-
.../nativeFilters/FilterCard/useFilterScope.ts | 4 +-
.../ConfigModalContent/ConfigModalContent.tsx | 164 +++
.../CustomizationContentRenderer.tsx | 133 ++
.../ConfigModalContent/FilterContentRenderer.tsx | 136 ++
.../ConfigModalContent}/index.ts | 9 +-
.../ConfigModalSidebar/ConfigModalSidebar.tsx | 192 +++
.../ConfigModalSidebar/ItemSection.tsx | 77 ++
.../ConfigModalSidebar}/index.ts | 7 +-
.../FiltersConfigModal/DividerConfigForm.tsx | 64 +-
.../FiltersConfigModal/DraggableFilter.test.tsx | 230 +++
.../FiltersConfigModal/DraggableFilter.tsx | 74 +-
.../FiltersConfigForm/DatasetSelect.tsx | 4 +-
.../FiltersConfigForm/DefaultValue.tsx | 20 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 371 +++--
.../FiltersConfigForm/constants.ts | 11 +
.../FiltersConfigForm/getControlItemsMap.tsx | 14 +-
.../FiltersConfigModal/FiltersConfigForm/state.ts | 16 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 149 +-
.../FiltersConfigModal/FiltersConfigModal.tsx | 956 ++++++-------
...erTitleContainer.tsx => ItemTitleContainer.tsx} | 101 +-
.../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 | 160 ++-
.../dashboard/components/nativeFilters/state.ts | 191 ++-
.../dashboard/components/nativeFilters/utils.ts | 31 +-
.../src/dashboard/reducers/dashboardInfo.js | 101 +-
.../dashboard/reducers/groupByCustomizations.ts | 198 ---
.../src/dashboard/reducers/nativeFilters.test.ts | 77 ++
.../src/dashboard/reducers/nativeFilters.ts | 51 +-
superset-frontend/src/dashboard/types.ts | 20 +-
.../dashboard/util/activeAllDashboardFilters.ts | 5 +-
.../src/dashboard/util/calculateScopes.ts | 75 +
.../util/charts/getFormDataWithExtraFilters.ts | 119 +-
.../util/getFormDataWithExtraFilters.test.ts | 114 ++
.../src/dashboard/util/getRelatedCharts.ts | 13 +-
.../util/useFilterFocusHighlightStyles.test.tsx | 4 +
.../util/useFilterFocusHighlightStyles.ts | 10 +-
superset-frontend/src/dataMask/actions.ts | 3 +
superset-frontend/src/dataMask/reducer.ts | 160 ++-
.../components/ControlPanelsContainer.test.tsx | 101 ++
.../explore/components/ControlPanelsContainer.tsx | 15 +
.../controls/MatrixifyDimensionControl.test.tsx | 119 ++
.../controls/MatrixifyDimensionControl.tsx | 36 +-
.../controls/NumberControl/NumberControl.test.tsx | 50 +-
.../components/controls/NumberControl/index.tsx | 14 +-
.../controls/SelectAsyncControl/index.tsx | 18 +-
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 25 +-
.../AddDataset/DatasetPanel/MessageContent.tsx | 3 +-
superset-frontend/src/views/store.ts | 2 -
.../src/visualizations/presets/MainPreset.js | 20 +-
superset-websocket/package-lock.json | 258 ++--
superset-websocket/package.json | 4 +-
superset/commands/dashboard/exceptions.py | 4 +
superset/commands/dashboard/update.py | 18 +
superset/commands/logs/prune.py | 6 +-
superset/daos/dashboard.py | 64 +
superset/dashboards/api.py | 91 ++
superset/dashboards/schemas.py | 6 +
superset/models/helpers.py | 10 +
tests/integration_tests/dashboards/api_tests.py | 325 +++++
tests/unit_tests/common/test_time_shifts.py | 33 +
.../dashboards/test_chart_customizations_dao.py | 339 +++++
194 files changed, 9725 insertions(+), 6362 deletions(-)
create mode 100644 docs/static/img/logos/userguiding.svg
rename
superset-frontend/cypress-base/cypress/e2e/chart_list/{_skip.filter.test.ts =>
filter.test.ts} (100%)
rename
superset-frontend/cypress-base/cypress/e2e/dashboard/{_skip.horizontalFilterBar.test.ts
=> horizontalFilterBar.test.ts} (99%)
rename
superset-frontend/cypress-base/cypress/e2e/dashboard/{_skip.load.test.ts =>
load.test.ts} (100%)
rename
superset-frontend/cypress-base/cypress/e2e/dashboard/{_skip.nativeFilters.noInitState.test.ts
=> nativeFilters.noInitState.test.ts} (100%)
rename
superset-frontend/cypress-base/cypress/e2e/dashboard/{_skip.nativeFilters.test.ts
=> nativeFilters.test.ts} (99%)
rename superset-frontend/cypress-base/cypress/e2e/explore/{_skip.link.test.ts
=> link.test.ts} (100%)
rename
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/{_skip.box_plot.test.js
=> box_plot.test.js} (100%)
rename
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/{_skip.bubble.test.js
=> bubble.test.js} (100%)
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 (74%)
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 (72%)
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/TimeColumn =>
chartCustomizations/components/DynamicGroupBy}/index.ts (77%)
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 (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeColumn/buildQuery.ts (100%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/TimeColumn/controlPanel.ts (100%)
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 (86%)
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 (91%)
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 (86%)
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-core/src/utils =>
src/chartCustomizations/components}/index.ts (71%)
copy superset-frontend/src/{filters =>
chartCustomizations}/components/types.ts (99%)
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 (63%)
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 (60%)
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} (67%)
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
create mode 100644 tests/unit_tests/dashboards/test_chart_customizations_dao.py