@carto/ps-react-ui 5.1.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{actions-BjPfCLG9.js → actions-KsX1xdDM.js} +28 -28
- package/dist/actions-KsX1xdDM.js.map +1 -0
- package/dist/category-CsdDqDzo.js +833 -0
- package/dist/category-CsdDqDzo.js.map +1 -0
- package/dist/chat.js +548 -526
- package/dist/chat.js.map +1 -1
- package/dist/{components-FED-ArwH.js → components-CTUpdQuj.js} +1526 -1782
- package/dist/components-CTUpdQuj.js.map +1 -0
- package/dist/components.js +4 -5
- package/dist/{download-DdaK3qgC.js → download-Vlzn2jzb.js} +12 -12
- package/dist/download-Vlzn2jzb.js.map +1 -0
- package/dist/{echart-CRihbmRv.js → echart-DjcbtKgi.js} +7 -7
- package/dist/echart-DjcbtKgi.js.map +1 -0
- package/dist/formula-CdHWtepq.js +282 -0
- package/dist/formula-CdHWtepq.js.map +1 -0
- package/dist/legend.js +261 -256
- package/dist/legend.js.map +1 -1
- package/dist/{markdown-2dfL6Cmb.js → markdown-CY-67NRE.js} +8 -8
- package/dist/markdown-CY-67NRE.js.map +1 -0
- package/dist/{markdown-content-BWUqwx9F.js → markdown-content-kYNLOX0T.js} +2 -2
- package/dist/markdown-content-kYNLOX0T.js.map +1 -0
- package/dist/{chart-config-B_fdIcD3.js → option-builders-DQivvvbb.js} +10 -56
- package/dist/option-builders-DQivvvbb.js.map +1 -0
- package/dist/{range-BCMAl5xf.js → range-DHQSsl2_.js} +8 -8
- package/dist/range-DHQSsl2_.js.map +1 -0
- package/dist/smart-tooltip-Dc_rHhyI.js +51 -0
- package/dist/smart-tooltip-Dc_rHhyI.js.map +1 -0
- package/dist/{spread-Ccpg9fi0.js → spread-DuM5oTI1.js} +10 -10
- package/dist/spread-DuM5oTI1.js.map +1 -0
- package/dist/{stores-tiFePP0A.js → stores-B8CHbgw-.js} +11 -11
- package/dist/stores-B8CHbgw-.js.map +1 -0
- package/dist/stores-mad-9yFn.js.map +1 -1
- package/dist/styles-BCEBm7xh.js +146 -0
- package/dist/styles-BCEBm7xh.js.map +1 -0
- package/dist/{table-Bx9Uj3U0.js → table-BE4uO9pp.js} +14 -14
- package/dist/table-BE4uO9pp.js.map +1 -0
- package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +1 -1
- package/dist/types/chat/types.d.ts +5 -2
- package/dist/types/components/index.d.ts +1 -3
- package/dist/types/components/lasso-tool/geometry-toolbar.d.ts +1 -1
- package/dist/types/components/lasso-tool/toolbar/context.d.ts +1 -1
- package/dist/types/components/types.d.ts +15 -0
- package/dist/types/legend/components/legend-actions/legend-actions.d.ts +2 -2
- package/dist/types/legend/components/legend-swatch/legend-swatch.d.ts +2 -1
- package/dist/types/legend/index.d.ts +1 -1
- package/dist/types/legend/provider/legend-provider.d.ts +2 -2
- package/dist/types/migration/v4/classes.d.ts +16 -0
- package/dist/types/migration/v4/icons.d.ts +31 -0
- package/dist/types/migration/v4/index.d.ts +17 -0
- package/dist/types/migration/v4/rules.d.ts +42 -0
- package/dist/types/migration/v4/transform.d.ts +4 -0
- package/dist/types/migration/v4/transforms/helpers.d.ts +97 -0
- package/dist/types/migration/v4/transforms/meridian-5.d.ts +22 -0
- package/dist/types/migration/v4/transforms/ps-react-ui.d.ts +20 -0
- package/dist/types/migration/v4/transforms/v5-v6.d.ts +27 -0
- package/dist/types/migration/v4/transforms/v6-v7.d.ts +54 -0
- package/dist/types/migration/v4/transforms/v7-v9-dom.d.ts +63 -0
- package/dist/types/migration/v4/transforms/v7-v9-props.d.ts +64 -0
- package/dist/types/migration/v4/widgets-v1.d.ts +12 -0
- package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +51 -24
- package/dist/types/widgets/actions/brush-toggle/style.d.ts +7 -16
- package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +2 -1
- package/dist/types/widgets/actions/change-column/change-column.d.ts +26 -17
- package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +10 -5
- package/dist/types/widgets/actions/change-column/types.d.ts +9 -18
- package/dist/types/widgets/actions/download/download.d.ts +18 -13
- package/dist/types/widgets/actions/download/exports.d.ts +33 -17
- package/dist/types/{widgets-v2 → widgets}/actions/download/png-item.d.ts +1 -1
- package/dist/types/widgets/actions/download/types.d.ts +30 -16
- package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +73 -10
- package/dist/types/widgets/actions/fullscreen/types.d.ts +13 -20
- package/dist/types/widgets/actions/index.d.ts +10 -20
- package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +54 -16
- package/dist/types/widgets/actions/relative-data/relative-data.d.ts +36 -21
- package/dist/types/{widgets-v2 → widgets}/actions/relative-data/transforms.d.ts +2 -2
- package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +21 -16
- package/dist/types/widgets/actions/searcher/searcher.d.ts +9 -19
- package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +10 -17
- package/dist/types/widgets/actions/zoom-toggle/style.d.ts +7 -8
- package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +31 -22
- package/dist/types/widgets/bar/index.d.ts +3 -2
- package/dist/types/widgets/bar/skeleton.d.ts +5 -0
- package/dist/types/widgets/bar/types.d.ts +46 -9
- package/dist/types/widgets/category/category-ui.d.ts +86 -3
- package/dist/types/{widgets-v2 → widgets}/category/components/category-bar-stacked.d.ts +2 -1
- package/dist/types/widgets/category/components/category-bar.d.ts +18 -4
- package/dist/types/widgets/category/components/category-legend.d.ts +30 -4
- package/dist/types/widgets/category/components/category-row-multi.d.ts +27 -10
- package/dist/types/widgets/category/components/category-row-other.d.ts +19 -2
- package/dist/types/widgets/category/components/category-row-single.d.ts +23 -9
- package/dist/types/{widgets-v2 → widgets}/category/components/category-row-stacked.d.ts +2 -1
- package/dist/types/widgets/category/index.d.ts +10 -14
- package/dist/types/widgets/category/skeleton.d.ts +11 -1
- package/dist/types/widgets/category/style.d.ts +155 -83
- package/dist/types/widgets/category/types.d.ts +49 -29
- package/dist/types/widgets/echart/echart-ui.d.ts +44 -9
- package/dist/types/widgets/echart/echart.d.ts +80 -5
- package/dist/types/widgets/echart/index.d.ts +4 -5
- package/dist/types/widgets/echart/shared-resize-observer.d.ts +2 -9
- package/dist/types/widgets/formula/formula-ui.d.ts +18 -3
- package/dist/types/widgets/formula/index.d.ts +11 -11
- package/dist/types/{widgets-v2 → widgets}/formula/series.d.ts +2 -1
- package/dist/types/widgets/formula/skeleton.d.ts +4 -1
- package/dist/types/widgets/formula/style.d.ts +20 -12
- package/dist/types/widgets/formula/types.d.ts +41 -39
- package/dist/types/{widgets-v2 → widgets}/formula/value.d.ts +2 -1
- package/dist/types/widgets/histogram/index.d.ts +5 -4
- package/dist/types/widgets/histogram/skeleton.d.ts +9 -1
- package/dist/types/widgets/histogram/types.d.ts +60 -12
- package/dist/types/{widgets-v2 → widgets}/index.d.ts +2 -2
- package/dist/types/widgets/markdown/index.d.ts +5 -4
- package/dist/types/widgets/markdown/markdown-ui.d.ts +10 -7
- package/dist/types/widgets/markdown/markdown.d.ts +4 -3
- package/dist/types/widgets/markdown/skeleton.d.ts +4 -1
- package/dist/types/widgets/markdown/style.d.ts +61 -2
- package/dist/types/widgets/markdown/types.d.ts +2 -16
- package/dist/types/widgets/note/style.d.ts +14 -16
- package/dist/types/widgets/pie/index.d.ts +4 -3
- package/dist/types/widgets/pie/skeleton.d.ts +13 -1
- package/dist/types/widgets/pie/types.d.ts +57 -9
- package/dist/types/widgets/range/index.d.ts +4 -6
- package/dist/types/widgets/range/range-ui.d.ts +25 -3
- package/dist/types/widgets/range/skeleton.d.ts +9 -1
- package/dist/types/widgets/range/style.d.ts +40 -2
- package/dist/types/widgets/range/types.d.ts +26 -22
- package/dist/types/widgets/scatterplot/index.d.ts +5 -3
- package/dist/types/widgets/scatterplot/skeleton.d.ts +12 -1
- package/dist/types/widgets/scatterplot/types.d.ts +54 -9
- package/dist/types/widgets/selection-summary/selection-summary.d.ts +26 -10
- package/dist/types/widgets/selection-summary/style.d.ts +32 -3
- package/dist/types/widgets/spread/index.d.ts +7 -9
- package/dist/types/widgets/spread/skeleton.d.ts +9 -1
- package/dist/types/widgets/spread/spread-ui.d.ts +16 -3
- package/dist/types/widgets/spread/types.d.ts +20 -35
- package/dist/types/widgets/stores/index.d.ts +8 -3
- package/dist/types/widgets/stores/types.d.ts +45 -172
- package/dist/types/widgets/subheader/style.d.ts +5 -14
- package/dist/types/widgets/subheader/subheader.d.ts +9 -11
- package/dist/types/widgets/table/helpers.d.ts +28 -34
- package/dist/types/widgets/table/index.d.ts +8 -17
- package/dist/types/widgets/table/skeleton.d.ts +17 -5
- package/dist/types/widgets/table/style.d.ts +21 -14
- package/dist/types/widgets/table/table-ui.d.ts +41 -29
- package/dist/types/widgets/table/types.d.ts +34 -182
- package/dist/types/widgets/timeseries/index.d.ts +4 -2
- package/dist/types/widgets/timeseries/skeleton.d.ts +7 -0
- package/dist/types/widgets/timeseries/types.d.ts +60 -9
- package/dist/types/{widgets-v2 → widgets}/types.d.ts +7 -6
- package/dist/types/widgets/utils/index.d.ts +3 -7
- package/dist/types/widgets/wrapper/index.d.ts +4 -6
- package/dist/{utils-Dr6gf3vD.js → utils-BStJWhZN.js} +5 -5
- package/dist/utils-BStJWhZN.js.map +1 -0
- package/dist/widgets/actions.js +4 -2
- package/dist/widgets/bar.js +202 -132
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/category.js +2 -450
- package/dist/widgets/echart.js +2 -3
- package/dist/widgets/formula.js +2 -3
- package/dist/widgets/histogram.js +263 -160
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/markdown.js +3 -148
- package/dist/widgets/pie.js +317 -197
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/range.js +2 -233
- package/dist/widgets/scatterplot.js +300 -196
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/spread.js +2 -158
- package/dist/widgets/stores.js +2 -3
- package/dist/widgets/table.js +2 -599
- package/dist/widgets/timeseries.js +250 -136
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/utils.js +2 -18
- package/dist/{widgets-v2.js → widgets.js} +63 -57
- package/dist/widgets.js.map +1 -0
- package/dist/{zoom-toggle-IsF8BnAp.js → zoom-toggle-D_VuA01l.js} +5 -5
- package/dist/zoom-toggle-D_VuA01l.js.map +1 -0
- package/package.json +45 -131
- package/src/chat/bubbles/chat-agent-message-markdown.tsx +1 -1
- package/src/chat/bubbles/chat-error-message.tsx +9 -3
- package/src/chat/bubbles/chat-suggestion-button.tsx +8 -3
- package/src/chat/containers/chat-footer.tsx +6 -2
- package/src/chat/containers/chat-starter.tsx +6 -4
- package/src/chat/feedback/chat-tool-full-view-dialog.tsx +3 -1
- package/src/chat/feedback/chat-tool-group.test.tsx +1 -1
- package/src/chat/feedback/chat-tool-group.tsx +40 -9
- package/src/chat/feedback/chat-tool-trace.tsx +55 -19
- package/src/chat/types.ts +5 -2
- package/src/components/basemaps/header.tsx +6 -1
- package/src/components/index.ts +2 -3
- package/src/components/lasso-tool/geometry-toolbar.tsx +1 -1
- package/src/components/lasso-tool/lasso-tool-inline.tsx +12 -4
- package/src/components/lasso-tool/lasso-tool.tsx +26 -15
- package/src/components/lasso-tool/layer-filters.tsx +36 -11
- package/src/components/lasso-tool/options-sections.test.tsx +13 -2
- package/src/components/lasso-tool/options-sections.tsx +17 -7
- package/src/components/lasso-tool/toolbar/connected.tsx +1 -1
- package/src/components/lasso-tool/toolbar/context.tsx +1 -1
- package/src/components/measurement-tools/measurement-tools.tsx +28 -13
- package/src/components/no-data-alert/no-data-alert.tsx +12 -2
- package/src/components/responsive-drawer/responsive-drawer.tsx +0 -1
- package/src/components/types.ts +17 -0
- package/src/components/zoom-controls/zoom-controls.tsx +3 -1
- package/src/legend/components/legend-actions/legend-actions.tsx +2 -2
- package/src/legend/components/legend-category/legend-category-ui.tsx +7 -3
- package/src/legend/components/legend-config-select/legend-config-select.tsx +6 -2
- package/src/legend/components/legend-group/legend-group.tsx +6 -2
- package/src/legend/components/legend-group/styles.ts +1 -1
- package/src/legend/components/legend-icon/legend-icon-ui.tsx +7 -3
- package/src/legend/components/legend-opacity/legend-opacity.tsx +9 -3
- package/src/legend/components/legend-proportion/legend-proportion-ui.tsx +19 -3
- package/src/legend/components/legend-ramp/legend-ramp-ui.tsx +31 -7
- package/src/legend/components/legend-row/legend-row.tsx +2 -2
- package/src/legend/components/legend-row/styles.ts +1 -1
- package/src/legend/components/legend-sortable/legend-sortable.tsx +7 -3
- package/src/legend/components/legend-swatch/legend-swatch.tsx +2 -1
- package/src/legend/components/legend-visible-layers/legend-visible-layers.tsx +18 -9
- package/src/legend/index.ts +1 -1
- package/src/legend/provider/legend-provider.tsx +2 -2
- package/src/legend/stores/legend-store-registry.ts +1 -1
- package/src/migration/v4/classes.ts +56 -0
- package/src/migration/v4/icons.ts +56 -0
- package/src/migration/v4/index.ts +17 -0
- package/src/migration/v4/migration.test.ts +772 -0
- package/src/migration/v4/rules.ts +444 -0
- package/src/migration/v4/transform.ts +92 -0
- package/src/migration/v4/transforms/helpers.ts +369 -0
- package/src/migration/v4/transforms/meridian-5.ts +163 -0
- package/src/migration/v4/transforms/ps-react-ui.ts +99 -0
- package/src/migration/v4/transforms/v5-v6.ts +161 -0
- package/src/migration/v4/transforms/v6-v7.ts +342 -0
- package/src/migration/v4/transforms/v7-v9-dom.ts +403 -0
- package/src/migration/v4/transforms/v7-v9-props.ts +529 -0
- package/src/migration/v4/widgets-v1.ts +199 -0
- package/src/{widgets-v2 → widgets}/PERFORMANCE.md +5 -5
- package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +144 -172
- package/src/widgets/actions/brush-toggle/brush-toggle.tsx +129 -108
- package/src/widgets/actions/brush-toggle/style.ts +5 -40
- package/src/widgets/actions/change-column/change-column-icon.tsx +14 -10
- package/src/widgets/actions/change-column/change-column.test.tsx +57 -288
- package/src/widgets/actions/change-column/change-column.tsx +116 -145
- package/src/widgets/actions/change-column/sortable-column-item.tsx +29 -17
- package/src/widgets/actions/change-column/types.ts +9 -18
- package/src/widgets/actions/download/download.test.tsx +290 -289
- package/src/widgets/actions/download/download.tsx +101 -89
- package/src/widgets/actions/download/exports.test.tsx +157 -247
- package/src/{widgets-v2 → widgets}/actions/download/exports.ts +1 -1
- package/src/{widgets-v2 → widgets}/actions/download/png-item.tsx +2 -2
- package/src/widgets/actions/download/types.ts +26 -15
- package/src/widgets/actions/fullscreen/fullscreen.test.tsx +164 -221
- package/src/widgets/actions/fullscreen/fullscreen.tsx +277 -72
- package/src/widgets/actions/fullscreen/types.ts +14 -31
- package/src/widgets/actions/index.ts +90 -68
- package/src/widgets/actions/lock-selection/lock-selection.test.tsx +259 -156
- package/src/widgets/actions/lock-selection/lock-selection.tsx +162 -102
- package/src/widgets/actions/relative-data/relative-data.test.tsx +65 -536
- package/src/widgets/actions/relative-data/relative-data.tsx +82 -163
- package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.ts +2 -2
- package/src/widgets/actions/searcher/searcher-toggle.tsx +75 -56
- package/src/widgets/actions/searcher/searcher.tsx +85 -168
- package/src/widgets/actions/stack-toggle/stack-toggle.test.tsx +49 -402
- package/src/widgets/actions/stack-toggle/stack-toggle.tsx +39 -114
- package/src/widgets/actions/zoom-toggle/style.ts +5 -8
- package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +88 -303
- package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +87 -199
- package/src/widgets/bar/index.ts +6 -5
- package/src/{widgets-v2 → widgets}/bar/options.ts +1 -1
- package/src/widgets/bar/skeleton.tsx +61 -52
- package/src/widgets/bar/types.ts +46 -11
- package/src/widgets/category/category-ui.test.tsx +846 -317
- package/src/widgets/category/category-ui.tsx +444 -127
- package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.tsx +2 -1
- package/src/widgets/category/components/category-bar.tsx +31 -12
- package/src/{widgets-v2 → widgets}/category/components/category-legend.test.tsx +7 -3
- package/src/widgets/category/components/category-legend.tsx +68 -18
- package/src/widgets/category/components/category-row-multi.tsx +66 -36
- package/src/widgets/category/components/category-row-other.tsx +63 -5
- package/src/widgets/category/components/category-row-single.tsx +48 -25
- package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.tsx +2 -1
- package/src/widgets/category/index.ts +25 -22
- package/src/widgets/category/skeleton.tsx +60 -10
- package/src/widgets/category/style.ts +267 -72
- package/src/widgets/category/types.ts +52 -32
- package/src/widgets/echart/echart-ui.test.tsx +250 -446
- package/src/widgets/echart/echart-ui.tsx +210 -52
- package/src/widgets/echart/echart.test.tsx +203 -518
- package/src/widgets/echart/echart.tsx +195 -52
- package/src/widgets/echart/index.ts +21 -15
- package/src/widgets/echart/shared-resize-observer.ts +30 -19
- package/src/widgets/formula/formula-ui.test.tsx +68 -376
- package/src/widgets/formula/formula-ui.tsx +58 -22
- package/src/widgets/formula/index.ts +14 -21
- package/src/{widgets-v2 → widgets}/formula/note.tsx +8 -2
- package/src/{widgets-v2 → widgets}/formula/series.tsx +8 -25
- package/src/widgets/formula/skeleton.tsx +21 -4
- package/src/widgets/formula/style.ts +20 -12
- package/src/widgets/formula/types.ts +44 -45
- package/src/{widgets-v2 → widgets}/formula/value.tsx +2 -1
- package/src/widgets/histogram/index.ts +10 -10
- package/src/{widgets-v2 → widgets}/histogram/options.ts +1 -1
- package/src/widgets/histogram/skeleton.tsx +63 -45
- package/src/widgets/histogram/types.ts +59 -18
- package/src/{widgets-v2 → widgets}/index.ts +3 -3
- package/src/widgets/markdown/index.ts +5 -13
- package/src/widgets/markdown/markdown-ui.test.tsx +53 -319
- package/src/widgets/markdown/markdown-ui.tsx +43 -47
- package/src/widgets/markdown/markdown.tsx +12 -15
- package/src/widgets/markdown/skeleton.tsx +26 -6
- package/src/widgets/markdown/style.ts +48 -23
- package/src/widgets/markdown/types.ts +2 -26
- package/src/widgets/note/style.ts +14 -17
- package/src/{widgets-v2 → widgets}/note/widget-note.tsx +15 -2
- package/src/widgets/pie/index.ts +7 -5
- package/src/{widgets-v2 → widgets}/pie/options.ts +1 -1
- package/src/widgets/pie/skeleton.tsx +84 -60
- package/src/widgets/pie/types.ts +57 -11
- package/src/widgets/range/index.ts +4 -16
- package/src/widgets/range/range-ui.test.tsx +115 -182
- package/src/widgets/range/range-ui.tsx +274 -8
- package/src/widgets/range/skeleton.tsx +41 -8
- package/src/widgets/range/style.ts +16 -12
- package/src/widgets/range/types.ts +26 -28
- package/src/widgets/scatterplot/index.ts +11 -5
- package/src/{widgets-v2 → widgets}/scatterplot/options.ts +1 -1
- package/src/widgets/scatterplot/skeleton.tsx +76 -51
- package/src/widgets/scatterplot/types.ts +54 -12
- package/src/widgets/selection-summary/selection-summary.tsx +64 -39
- package/src/widgets/selection-summary/style.ts +30 -2
- package/src/widgets/spread/index.ts +11 -23
- package/src/widgets/spread/skeleton.tsx +32 -4
- package/src/widgets/spread/spread-ui.test.tsx +98 -358
- package/src/widgets/spread/spread-ui.tsx +44 -24
- package/src/widgets/spread/types.ts +21 -41
- package/src/{widgets-v2 → widgets}/state/widget-state.tsx +13 -3
- package/src/widgets/stores/index.ts +46 -10
- package/src/{widgets-v2 → widgets}/stores/transforms.ts +1 -1
- package/src/widgets/stores/types.ts +42 -181
- package/src/{widgets-v2 → widgets}/stores/use-transform.ts +1 -1
- package/src/{widgets-v2 → widgets}/stores/widget-store-registry.ts +2 -2
- package/src/widgets/subheader/style.ts +5 -13
- package/src/widgets/subheader/subheader.test.tsx +22 -37
- package/src/widgets/subheader/subheader.tsx +11 -30
- package/src/widgets/table/helpers.test.ts +197 -208
- package/src/widgets/table/helpers.ts +108 -84
- package/src/widgets/table/index.ts +23 -54
- package/src/widgets/table/skeleton.tsx +38 -21
- package/src/widgets/table/style.ts +23 -14
- package/src/widgets/table/table-ui.tsx +348 -44
- package/src/widgets/table/types.ts +37 -205
- package/src/{widgets-v2 → widgets}/test-utils.ts +1 -1
- package/src/widgets/timeseries/index.ts +8 -5
- package/src/{widgets-v2 → widgets}/timeseries/options.ts +1 -1
- package/src/widgets/timeseries/skeleton.tsx +67 -46
- package/src/widgets/timeseries/types.ts +60 -12
- package/src/{widgets-v2 → widgets}/types.ts +8 -6
- package/src/widgets/utils/index.ts +3 -26
- package/src/widgets/wrapper/index.ts +14 -16
- package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.tsx +6 -2
- package/dist/actions-BjPfCLG9.js.map +0 -1
- package/dist/actions-CGJD6q0t.js +0 -1318
- package/dist/actions-CGJD6q0t.js.map +0 -1
- package/dist/category-DGUDabsi.js +0 -829
- package/dist/category-DGUDabsi.js.map +0 -1
- package/dist/chart-config-B_fdIcD3.js.map +0 -1
- package/dist/cjs-CBrZjPCj.js +0 -75
- package/dist/cjs-CBrZjPCj.js.map +0 -1
- package/dist/components-FED-ArwH.js.map +0 -1
- package/dist/copy-button-TTlZONkX.js +0 -34
- package/dist/copy-button-TTlZONkX.js.map +0 -1
- package/dist/csv-modifiers-D6HGC24b.js +0 -26
- package/dist/csv-modifiers-D6HGC24b.js.map +0 -1
- package/dist/download-DdaK3qgC.js.map +0 -1
- package/dist/echart-BkaV3V5G.js +0 -133
- package/dist/echart-BkaV3V5G.js.map +0 -1
- package/dist/echart-CRihbmRv.js.map +0 -1
- package/dist/formatter-wVO81tYk.js +0 -6
- package/dist/formatter-wVO81tYk.js.map +0 -1
- package/dist/formula-YfZmmuYX.js +0 -190
- package/dist/formula-YfZmmuYX.js.map +0 -1
- package/dist/formula-noJzQwKo.js +0 -285
- package/dist/formula-noJzQwKo.js.map +0 -1
- package/dist/hooks-zf5gKZYq.js +0 -22
- package/dist/hooks-zf5gKZYq.js.map +0 -1
- package/dist/markdown-2dfL6Cmb.js.map +0 -1
- package/dist/markdown-content-BWUqwx9F.js.map +0 -1
- package/dist/range-BCMAl5xf.js.map +0 -1
- package/dist/row-CvVGBuy_.js +0 -35
- package/dist/row-CvVGBuy_.js.map +0 -1
- package/dist/shared-resize-observer-BEiP2rQt.js +0 -157
- package/dist/shared-resize-observer-BEiP2rQt.js.map +0 -1
- package/dist/smart-tooltip-CwGHCqab.js +0 -34
- package/dist/smart-tooltip-CwGHCqab.js.map +0 -1
- package/dist/spread-Ccpg9fi0.js.map +0 -1
- package/dist/stores-tiFePP0A.js.map +0 -1
- package/dist/styles-Y-qGBELO.js +0 -13
- package/dist/styles-Y-qGBELO.js.map +0 -1
- package/dist/table-Bx9Uj3U0.js.map +0 -1
- package/dist/tooltip-DJUGNZxY.js +0 -23
- package/dist/tooltip-DJUGNZxY.js.map +0 -1
- package/dist/types/components/list-data/list-data-skeleton.d.ts +0 -5
- package/dist/types/components/list-data/list-data.d.ts +0 -19
- package/dist/types/components/list-data/styles.d.ts +0 -34
- package/dist/types/components/list-data/types.d.ts +0 -23
- package/dist/types/hooks/index.d.ts +0 -1
- package/dist/types/hooks/use-skeleton.d.ts +0 -1
- package/dist/types/hooks/use-widget-ref.d.ts +0 -21
- package/dist/types/widgets/actions/brush-toggle/brush-overlay.d.ts +0 -24
- package/dist/types/widgets/actions/brush-toggle/hit-test.d.ts +0 -19
- package/dist/types/widgets/actions/brush-toggle/types.d.ts +0 -73
- package/dist/types/widgets/actions/fullscreen/styles.d.ts +0 -16
- package/dist/types/widgets/actions/lock-selection/types.d.ts +0 -38
- package/dist/types/widgets/actions/relative-data/types.d.ts +0 -29
- package/dist/types/widgets/actions/relative-data/utils.d.ts +0 -9
- package/dist/types/widgets/actions/searcher/types.d.ts +0 -64
- package/dist/types/widgets/actions/shared/styles.d.ts +0 -11
- package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +0 -1
- package/dist/types/widgets/actions/stack-toggle/types.d.ts +0 -25
- package/dist/types/widgets/actions/zoom-toggle/types.d.ts +0 -41
- package/dist/types/widgets/bar/config.d.ts +0 -9
- package/dist/types/widgets/bar/style.d.ts +0 -37
- package/dist/types/widgets/category/config.d.ts +0 -20
- package/dist/types/widgets/echart/const.d.ts +0 -1
- package/dist/types/widgets/echart/options.d.ts +0 -9
- package/dist/types/widgets/echart/types.d.ts +0 -38
- package/dist/types/widgets/echart/utils.d.ts +0 -128
- package/dist/types/widgets/error/error.d.ts +0 -12
- package/dist/types/widgets/error/index.d.ts +0 -2
- package/dist/types/widgets/error/types.d.ts +0 -20
- package/dist/types/widgets/formula/components/item.d.ts +0 -5
- package/dist/types/widgets/formula/components/prefix.d.ts +0 -5
- package/dist/types/widgets/formula/components/row.d.ts +0 -5
- package/dist/types/widgets/formula/components/series.d.ts +0 -5
- package/dist/types/widgets/formula/components/suffix.d.ts +0 -5
- package/dist/types/widgets/formula/components/value.d.ts +0 -5
- package/dist/types/widgets/formula/config.d.ts +0 -15
- package/dist/types/widgets/formula/serializer.d.ts +0 -16
- package/dist/types/widgets/histogram/config.d.ts +0 -21
- package/dist/types/widgets/histogram/style.d.ts +0 -15
- package/dist/types/widgets/loader/index.d.ts +0 -3
- package/dist/types/widgets/loader/loader.d.ts +0 -24
- package/dist/types/widgets/loader/types.d.ts +0 -9
- package/dist/types/widgets/loader/utils.d.ts +0 -35
- package/dist/types/widgets/markdown/config.d.ts +0 -14
- package/dist/types/widgets/no-data/index.d.ts +0 -2
- package/dist/types/widgets/no-data/no-data.d.ts +0 -36
- package/dist/types/widgets/no-data/style.d.ts +0 -6
- package/dist/types/widgets/no-data/types.d.ts +0 -71
- package/dist/types/widgets/note/index.d.ts +0 -2
- package/dist/types/widgets/note/note.d.ts +0 -12
- package/dist/types/widgets/note/types.d.ts +0 -8
- package/dist/types/widgets/pie/config.d.ts +0 -9
- package/dist/types/widgets/pie/style.d.ts +0 -15
- package/dist/types/widgets/range/components/range-item.d.ts +0 -5
- package/dist/types/widgets/range/config.d.ts +0 -7
- package/dist/types/widgets/range/serializer.d.ts +0 -16
- package/dist/types/widgets/scatterplot/config.d.ts +0 -9
- package/dist/types/widgets/scatterplot/style.d.ts +0 -24
- package/dist/types/widgets/selection-summary/index.d.ts +0 -2
- package/dist/types/widgets/selection-summary/types.d.ts +0 -13
- package/dist/types/widgets/skeleton-loader/index.d.ts +0 -2
- package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +0 -12
- package/dist/types/widgets/skeleton-loader/types.d.ts +0 -7
- package/dist/types/widgets/spread/components/max-value.d.ts +0 -5
- package/dist/types/widgets/spread/components/min-value.d.ts +0 -5
- package/dist/types/widgets/spread/components/separator.d.ts +0 -5
- package/dist/types/widgets/spread/config.d.ts +0 -16
- package/dist/types/widgets/spread/style.d.ts +0 -21
- package/dist/types/widgets/stores/use-widget-selector.d.ts +0 -35
- package/dist/types/widgets/stores/widget-store.d.ts +0 -60
- package/dist/types/widgets/subheader/index.d.ts +0 -2
- package/dist/types/widgets/subheader/types.d.ts +0 -10
- package/dist/types/widgets/table/components/cell-header.d.ts +0 -5
- package/dist/types/widgets/table/components/cell.d.ts +0 -18
- package/dist/types/widgets/table/components/pagination-actions.d.ts +0 -5
- package/dist/types/widgets/table/components/pagination.d.ts +0 -5
- package/dist/types/widgets/table/components/row.d.ts +0 -5
- package/dist/types/widgets/table/config.d.ts +0 -21
- package/dist/types/widgets/table/hooks/use-pagination.d.ts +0 -41
- package/dist/types/widgets/table/hooks/use-selection.d.ts +0 -39
- package/dist/types/widgets/table/hooks/use-sort.d.ts +0 -30
- package/dist/types/widgets/table/serializer.d.ts +0 -16
- package/dist/types/widgets/timeseries/config.d.ts +0 -9
- package/dist/types/widgets/timeseries/style.d.ts +0 -38
- package/dist/types/widgets/toolbar-actions/index.d.ts +0 -2
- package/dist/types/widgets/toolbar-actions/styles.d.ts +0 -37
- package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +0 -17
- package/dist/types/widgets/toolbar-actions/types.d.ts +0 -52
- package/dist/types/widgets/utils/chart-config/config-factory.d.ts +0 -38
- package/dist/types/widgets/utils/chart-config/csv-modifiers.d.ts +0 -19
- package/dist/types/widgets/utils/chart-config/download-config.d.ts +0 -3
- package/dist/types/widgets/utils/chart-config/index.d.ts +0 -9
- package/dist/types/widgets/utils/formatter.d.ts +0 -2
- package/dist/types/widgets/utils/skeleton/index.d.ts +0 -4
- package/dist/types/widgets/utils/skeleton/styles.d.ts +0 -19
- package/dist/types/widgets/wrapper/components/actions.d.ts +0 -5
- package/dist/types/widgets/wrapper/components/options.d.ts +0 -5
- package/dist/types/widgets/wrapper/components/title.d.ts +0 -9
- package/dist/types/widgets/wrapper/styles.d.ts +0 -89
- package/dist/types/widgets/wrapper/types.d.ts +0 -37
- package/dist/types/widgets/wrapper/wrapper-ui.d.ts +0 -16
- package/dist/types/widgets/wrapper/wrapper.d.ts +0 -16
- package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +0 -56
- package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +0 -2
- package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +0 -29
- package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +0 -14
- package/dist/types/widgets-v2/actions/change-column/types.d.ts +0 -10
- package/dist/types/widgets-v2/actions/download/download.d.ts +0 -18
- package/dist/types/widgets-v2/actions/download/exports.d.ts +0 -37
- package/dist/types/widgets-v2/actions/download/types.d.ts +0 -35
- package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +0 -78
- package/dist/types/widgets-v2/actions/fullscreen/types.d.ts +0 -14
- package/dist/types/widgets-v2/actions/index.d.ts +0 -10
- package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +0 -57
- package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +0 -39
- package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +0 -23
- package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +0 -11
- package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +0 -10
- package/dist/types/widgets-v2/actions/stack-toggle/style.d.ts +0 -12
- package/dist/types/widgets-v2/actions/zoom-toggle/style.d.ts +0 -12
- package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +0 -35
- package/dist/types/widgets-v2/bar/index.d.ts +0 -4
- package/dist/types/widgets-v2/bar/skeleton.d.ts +0 -6
- package/dist/types/widgets-v2/bar/types.d.ts +0 -46
- package/dist/types/widgets-v2/category/category-ui.d.ts +0 -88
- package/dist/types/widgets-v2/category/components/category-bar.d.ts +0 -23
- package/dist/types/widgets-v2/category/components/category-legend.d.ts +0 -34
- package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +0 -31
- package/dist/types/widgets-v2/category/components/category-row-other.d.ts +0 -26
- package/dist/types/widgets-v2/category/components/category-row-single.d.ts +0 -28
- package/dist/types/widgets-v2/category/index.d.ts +0 -10
- package/dist/types/widgets-v2/category/skeleton.d.ts +0 -11
- package/dist/types/widgets-v2/category/style.d.ts +0 -193
- package/dist/types/widgets-v2/category/types.d.ts +0 -55
- package/dist/types/widgets-v2/echart/echart-ui.d.ts +0 -44
- package/dist/types/widgets-v2/echart/echart.d.ts +0 -83
- package/dist/types/widgets-v2/echart/index.d.ts +0 -4
- package/dist/types/widgets-v2/echart/shared-resize-observer.d.ts +0 -5
- package/dist/types/widgets-v2/formula/formula-ui.d.ts +0 -20
- package/dist/types/widgets-v2/formula/index.d.ts +0 -11
- package/dist/types/widgets-v2/formula/skeleton.d.ts +0 -4
- package/dist/types/widgets-v2/formula/style.d.ts +0 -29
- package/dist/types/widgets-v2/formula/types.d.ts +0 -43
- package/dist/types/widgets-v2/histogram/index.d.ts +0 -5
- package/dist/types/widgets-v2/histogram/skeleton.d.ts +0 -9
- package/dist/types/widgets-v2/histogram/types.d.ts +0 -60
- package/dist/types/widgets-v2/markdown/index.d.ts +0 -6
- package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +0 -12
- package/dist/types/widgets-v2/markdown/markdown.d.ts +0 -6
- package/dist/types/widgets-v2/markdown/skeleton.d.ts +0 -4
- package/dist/types/widgets-v2/markdown/style.d.ts +0 -61
- package/dist/types/widgets-v2/markdown/types.d.ts +0 -4
- package/dist/types/widgets-v2/note/style.d.ts +0 -26
- package/dist/types/widgets-v2/pie/index.d.ts +0 -4
- package/dist/types/widgets-v2/pie/skeleton.d.ts +0 -13
- package/dist/types/widgets-v2/pie/types.d.ts +0 -57
- package/dist/types/widgets-v2/range/index.d.ts +0 -4
- package/dist/types/widgets-v2/range/range-ui.d.ts +0 -27
- package/dist/types/widgets-v2/range/skeleton.d.ts +0 -9
- package/dist/types/widgets-v2/range/style.d.ts +0 -40
- package/dist/types/widgets-v2/range/types.d.ts +0 -37
- package/dist/types/widgets-v2/scatterplot/index.d.ts +0 -5
- package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +0 -12
- package/dist/types/widgets-v2/scatterplot/types.d.ts +0 -54
- package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +0 -29
- package/dist/types/widgets-v2/selection-summary/style.d.ts +0 -38
- package/dist/types/widgets-v2/spread/index.d.ts +0 -7
- package/dist/types/widgets-v2/spread/skeleton.d.ts +0 -9
- package/dist/types/widgets-v2/spread/spread-ui.d.ts +0 -18
- package/dist/types/widgets-v2/spread/types.d.ts +0 -25
- package/dist/types/widgets-v2/stores/index.d.ts +0 -8
- package/dist/types/widgets-v2/stores/types.d.ts +0 -55
- package/dist/types/widgets-v2/subheader/style.d.ts +0 -10
- package/dist/types/widgets-v2/subheader/subheader.d.ts +0 -11
- package/dist/types/widgets-v2/table/helpers.d.ts +0 -32
- package/dist/types/widgets-v2/table/index.d.ts +0 -8
- package/dist/types/widgets-v2/table/skeleton.d.ts +0 -22
- package/dist/types/widgets-v2/table/style.d.ts +0 -40
- package/dist/types/widgets-v2/table/table-ui.d.ts +0 -44
- package/dist/types/widgets-v2/table/types.d.ts +0 -48
- package/dist/types/widgets-v2/timeseries/index.d.ts +0 -5
- package/dist/types/widgets-v2/timeseries/skeleton.d.ts +0 -8
- package/dist/types/widgets-v2/timeseries/types.d.ts +0 -60
- package/dist/types/widgets-v2/utils/index.d.ts +0 -3
- package/dist/types/widgets-v2/wrapper/index.d.ts +0 -4
- package/dist/use-widget-selector-VSPhfhNm.js +0 -12
- package/dist/use-widget-selector-VSPhfhNm.js.map +0 -1
- package/dist/utils-Dr6gf3vD.js.map +0 -1
- package/dist/widget-store-BFPKYm4R.js +0 -187
- package/dist/widget-store-BFPKYm4R.js.map +0 -1
- package/dist/widgets/category.js.map +0 -1
- package/dist/widgets/error.js +0 -30
- package/dist/widgets/error.js.map +0 -1
- package/dist/widgets/loader.js +0 -66
- package/dist/widgets/loader.js.map +0 -1
- package/dist/widgets/markdown.js.map +0 -1
- package/dist/widgets/no-data.js +0 -55
- package/dist/widgets/no-data.js.map +0 -1
- package/dist/widgets/note.js +0 -127
- package/dist/widgets/note.js.map +0 -1
- package/dist/widgets/range.js.map +0 -1
- package/dist/widgets/selection-summary.js +0 -41
- package/dist/widgets/selection-summary.js.map +0 -1
- package/dist/widgets/skeleton-loader.js +0 -24
- package/dist/widgets/skeleton-loader.js.map +0 -1
- package/dist/widgets/spread.js.map +0 -1
- package/dist/widgets/subheader.js +0 -51
- package/dist/widgets/subheader.js.map +0 -1
- package/dist/widgets/table.js.map +0 -1
- package/dist/widgets/toolbar-actions.js +0 -145
- package/dist/widgets/toolbar-actions.js.map +0 -1
- package/dist/widgets/utils.js.map +0 -1
- package/dist/widgets/wrapper.js +0 -273
- package/dist/widgets/wrapper.js.map +0 -1
- package/dist/widgets-v2/actions.js +0 -4
- package/dist/widgets-v2/bar.js +0 -260
- package/dist/widgets-v2/bar.js.map +0 -1
- package/dist/widgets-v2/category.js +0 -2
- package/dist/widgets-v2/echart.js +0 -2
- package/dist/widgets-v2/formula.js +0 -2
- package/dist/widgets-v2/histogram.js +0 -297
- package/dist/widgets-v2/histogram.js.map +0 -1
- package/dist/widgets-v2/markdown.js +0 -3
- package/dist/widgets-v2/pie.js +0 -373
- package/dist/widgets-v2/pie.js.map +0 -1
- package/dist/widgets-v2/range.js +0 -2
- package/dist/widgets-v2/scatterplot.js +0 -330
- package/dist/widgets-v2/scatterplot.js.map +0 -1
- package/dist/widgets-v2/spread.js +0 -2
- package/dist/widgets-v2/stores.js +0 -2
- package/dist/widgets-v2/table.js +0 -2
- package/dist/widgets-v2/timeseries.js +0 -294
- package/dist/widgets-v2/timeseries.js.map +0 -1
- package/dist/widgets-v2/utils.js +0 -2
- package/dist/widgets-v2.js.map +0 -1
- package/dist/zoom-toggle-IsF8BnAp.js.map +0 -1
- package/src/components/list-data/list-data-skeleton.test.tsx +0 -10
- package/src/components/list-data/list-data-skeleton.tsx +0 -40
- package/src/components/list-data/list-data.test.tsx +0 -167
- package/src/components/list-data/list-data.tsx +0 -124
- package/src/components/list-data/styles.ts +0 -37
- package/src/components/list-data/types.ts +0 -25
- package/src/hooks/index.ts +0 -1
- package/src/hooks/use-skeleton.test.tsx +0 -32
- package/src/hooks/use-skeleton.ts +0 -19
- package/src/hooks/use-widget-ref.ts +0 -34
- package/src/widgets/README.md +0 -277
- package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +0 -465
- package/src/widgets/actions/brush-toggle/brush-overlay.tsx +0 -408
- package/src/widgets/actions/brush-toggle/hit-test.test.ts +0 -65
- package/src/widgets/actions/brush-toggle/hit-test.ts +0 -45
- package/src/widgets/actions/brush-toggle/types.ts +0 -78
- package/src/widgets/actions/change-column/change-column-dnd.test.tsx +0 -193
- package/src/widgets/actions/change-column/sortable-column-item.test.tsx +0 -124
- package/src/widgets/actions/download/exports.tsx +0 -118
- package/src/widgets/actions/fullscreen/styles.ts +0 -17
- package/src/widgets/actions/lock-selection/types.ts +0 -43
- package/src/widgets/actions/relative-data/types.ts +0 -33
- package/src/widgets/actions/relative-data/utils.test.ts +0 -223
- package/src/widgets/actions/relative-data/utils.ts +0 -58
- package/src/widgets/actions/searcher/searcher-toggle.test.tsx +0 -354
- package/src/widgets/actions/searcher/types.ts +0 -72
- package/src/widgets/actions/shared/styles.ts +0 -12
- package/src/widgets/actions/stack-toggle/grouped-bar-chart-icon.tsx +0 -14
- package/src/widgets/actions/stack-toggle/types.ts +0 -29
- package/src/widgets/actions/zoom-toggle/types.ts +0 -44
- package/src/widgets/bar/config.ts +0 -140
- package/src/widgets/bar/style.ts +0 -33
- package/src/widgets/category/components/category-rows.test.tsx +0 -213
- package/src/widgets/category/config.ts +0 -86
- package/src/widgets/echart/const.ts +0 -1
- package/src/widgets/echart/options.ts +0 -57
- package/src/widgets/echart/types.ts +0 -45
- package/src/widgets/echart/utils.test.ts +0 -277
- package/src/widgets/echart/utils.ts +0 -244
- package/src/widgets/error/error.test.tsx +0 -331
- package/src/widgets/error/error.tsx +0 -51
- package/src/widgets/error/index.ts +0 -2
- package/src/widgets/error/types.ts +0 -24
- package/src/widgets/formula/components/item.test.tsx +0 -249
- package/src/widgets/formula/components/item.tsx +0 -21
- package/src/widgets/formula/components/prefix.test.tsx +0 -341
- package/src/widgets/formula/components/prefix.tsx +0 -19
- package/src/widgets/formula/components/row.test.tsx +0 -364
- package/src/widgets/formula/components/row.tsx +0 -24
- package/src/widgets/formula/components/series.tsx +0 -35
- package/src/widgets/formula/components/suffix.test.tsx +0 -383
- package/src/widgets/formula/components/suffix.tsx +0 -29
- package/src/widgets/formula/components/value.test.tsx +0 -329
- package/src/widgets/formula/components/value.tsx +0 -24
- package/src/widgets/formula/config.test.ts +0 -37
- package/src/widgets/formula/config.ts +0 -38
- package/src/widgets/formula/serializer.test.tsx +0 -144
- package/src/widgets/formula/serializer.ts +0 -28
- package/src/widgets/histogram/config.ts +0 -230
- package/src/widgets/histogram/style.ts +0 -8
- package/src/widgets/loader/index.ts +0 -4
- package/src/widgets/loader/loader.tsx +0 -92
- package/src/widgets/loader/types.ts +0 -13
- package/src/widgets/loader/utils.test.ts +0 -112
- package/src/widgets/loader/utils.ts +0 -57
- package/src/widgets/markdown/config.ts +0 -28
- package/src/widgets/no-data/index.ts +0 -2
- package/src/widgets/no-data/no-data.test.tsx +0 -497
- package/src/widgets/no-data/no-data.tsx +0 -112
- package/src/widgets/no-data/style.ts +0 -18
- package/src/widgets/no-data/types.ts +0 -76
- package/src/widgets/note/index.ts +0 -2
- package/src/widgets/note/note.test.tsx +0 -391
- package/src/widgets/note/note.tsx +0 -124
- package/src/widgets/note/types.ts +0 -9
- package/src/widgets/pie/config.ts +0 -245
- package/src/widgets/pie/style.ts +0 -8
- package/src/widgets/range/components/range-item.test.tsx +0 -243
- package/src/widgets/range/components/range-item.tsx +0 -214
- package/src/widgets/range/config.ts +0 -10
- package/src/widgets/range/serializer.test.ts +0 -70
- package/src/widgets/range/serializer.ts +0 -27
- package/src/widgets/scatterplot/config.ts +0 -136
- package/src/widgets/scatterplot/style.ts +0 -21
- package/src/widgets/selection-summary/index.ts +0 -6
- package/src/widgets/selection-summary/types.ts +0 -14
- package/src/widgets/skeleton-loader/index.ts +0 -2
- package/src/widgets/skeleton-loader/skeleton-loader.test.tsx +0 -139
- package/src/widgets/skeleton-loader/skeleton-loader.tsx +0 -35
- package/src/widgets/skeleton-loader/types.ts +0 -8
- package/src/widgets/spread/components/max-value.tsx +0 -29
- package/src/widgets/spread/components/min-value.tsx +0 -29
- package/src/widgets/spread/components/separator.tsx +0 -9
- package/src/widgets/spread/config.ts +0 -39
- package/src/widgets/spread/style.ts +0 -22
- package/src/widgets/stores/use-widget-selector.ts +0 -47
- package/src/widgets/stores/widget-store-branches.test.ts +0 -275
- package/src/widgets/stores/widget-store-performance.test.ts +0 -750
- package/src/widgets/stores/widget-store.test.ts +0 -942
- package/src/widgets/stores/widget-store.ts +0 -484
- package/src/widgets/subheader/index.ts +0 -3
- package/src/widgets/subheader/types.ts +0 -11
- package/src/widgets/table/components/cell-header.tsx +0 -58
- package/src/widgets/table/components/cell.tsx +0 -82
- package/src/widgets/table/components/pagination-actions.tsx +0 -67
- package/src/widgets/table/components/pagination.tsx +0 -41
- package/src/widgets/table/components/row.tsx +0 -65
- package/src/widgets/table/config.test.ts +0 -65
- package/src/widgets/table/config.ts +0 -75
- package/src/widgets/table/hooks/use-pagination.test.ts +0 -294
- package/src/widgets/table/hooks/use-pagination.ts +0 -148
- package/src/widgets/table/hooks/use-selection.test.ts +0 -504
- package/src/widgets/table/hooks/use-selection.ts +0 -194
- package/src/widgets/table/hooks/use-sort.test.ts +0 -296
- package/src/widgets/table/hooks/use-sort.ts +0 -131
- package/src/widgets/table/serializer.ts +0 -54
- package/src/widgets/timeseries/config.ts +0 -136
- package/src/widgets/timeseries/style.ts +0 -36
- package/src/widgets/toolbar-actions/index.ts +0 -6
- package/src/widgets/toolbar-actions/styles.ts +0 -38
- package/src/widgets/toolbar-actions/toolbar-actions.test.tsx +0 -691
- package/src/widgets/toolbar-actions/toolbar-actions.tsx +0 -145
- package/src/widgets/toolbar-actions/types.ts +0 -60
- package/src/widgets/utils/chart-config/config-factory.ts +0 -67
- package/src/widgets/utils/chart-config/csv-modifiers.ts +0 -56
- package/src/widgets/utils/chart-config/download-config.ts +0 -22
- package/src/widgets/utils/chart-config/index.ts +0 -29
- package/src/widgets/utils/formatter.ts +0 -2
- package/src/widgets/utils/skeleton/index.ts +0 -5
- package/src/widgets/utils/skeleton/styles.ts +0 -20
- package/src/widgets/wrapper/components/actions.test.tsx +0 -105
- package/src/widgets/wrapper/components/actions.tsx +0 -35
- package/src/widgets/wrapper/components/options.test.tsx +0 -331
- package/src/widgets/wrapper/components/options.tsx +0 -81
- package/src/widgets/wrapper/components/title.test.tsx +0 -126
- package/src/widgets/wrapper/components/title.tsx +0 -35
- package/src/widgets/wrapper/styles.ts +0 -98
- package/src/widgets/wrapper/types.ts +0 -55
- package/src/widgets/wrapper/wrapper-ui.test.tsx +0 -232
- package/src/widgets/wrapper/wrapper-ui.tsx +0 -72
- package/src/widgets/wrapper/wrapper.test.tsx +0 -365
- package/src/widgets/wrapper/wrapper.tsx +0 -60
- package/src/widgets-v2/actions/brush-toggle/brush-toggle.test.tsx +0 -180
- package/src/widgets-v2/actions/brush-toggle/brush-toggle.tsx +0 -154
- package/src/widgets-v2/actions/change-column/change-column-icon.tsx +0 -14
- package/src/widgets-v2/actions/change-column/change-column.test.tsx +0 -59
- package/src/widgets-v2/actions/change-column/change-column.tsx +0 -189
- package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +0 -63
- package/src/widgets-v2/actions/change-column/types.ts +0 -11
- package/src/widgets-v2/actions/download/download.test.tsx +0 -327
- package/src/widgets-v2/actions/download/download.tsx +0 -144
- package/src/widgets-v2/actions/download/exports.test.tsx +0 -198
- package/src/widgets-v2/actions/download/types.ts +0 -32
- package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +0 -212
- package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +0 -301
- package/src/widgets-v2/actions/fullscreen/types.ts +0 -15
- package/src/widgets-v2/actions/index.ts +0 -95
- package/src/widgets-v2/actions/lock-selection/lock-selection.test.tsx +0 -301
- package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +0 -188
- package/src/widgets-v2/actions/relative-data/relative-data.test.tsx +0 -71
- package/src/widgets-v2/actions/relative-data/relative-data.tsx +0 -107
- package/src/widgets-v2/actions/searcher/searcher-toggle.tsx +0 -91
- package/src/widgets-v2/actions/searcher/searcher.tsx +0 -111
- package/src/widgets-v2/actions/stack-toggle/stack-toggle.test.tsx +0 -61
- package/src/widgets-v2/actions/stack-toggle/stack-toggle.tsx +0 -54
- package/src/widgets-v2/actions/stack-toggle/style.ts +0 -11
- package/src/widgets-v2/actions/zoom-toggle/style.ts +0 -11
- package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.test.tsx +0 -107
- package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.tsx +0 -106
- package/src/widgets-v2/bar/index.ts +0 -10
- package/src/widgets-v2/bar/skeleton.tsx +0 -69
- package/src/widgets-v2/bar/types.ts +0 -51
- package/src/widgets-v2/category/category-ui.test.tsx +0 -909
- package/src/widgets-v2/category/category-ui.tsx +0 -479
- package/src/widgets-v2/category/components/category-bar.tsx +0 -49
- package/src/widgets-v2/category/components/category-legend.tsx +0 -82
- package/src/widgets-v2/category/components/category-row-multi.tsx +0 -86
- package/src/widgets-v2/category/components/category-row-other.tsx +0 -84
- package/src/widgets-v2/category/components/category-row-single.tsx +0 -76
- package/src/widgets-v2/category/index.ts +0 -32
- package/src/widgets-v2/category/skeleton.tsx +0 -74
- package/src/widgets-v2/category/style.ts +0 -329
- package/src/widgets-v2/category/types.ts +0 -61
- package/src/widgets-v2/echart/echart-ui.test.tsx +0 -330
- package/src/widgets-v2/echart/echart-ui.tsx +0 -236
- package/src/widgets-v2/echart/echart.test.tsx +0 -229
- package/src/widgets-v2/echart/echart.tsx +0 -209
- package/src/widgets-v2/echart/index.ts +0 -22
- package/src/widgets-v2/echart/shared-resize-observer.ts +0 -56
- package/src/widgets-v2/formula/formula-ui.test.tsx +0 -91
- package/src/widgets-v2/formula/formula-ui.tsx +0 -66
- package/src/widgets-v2/formula/index.ts +0 -17
- package/src/widgets-v2/formula/skeleton.tsx +0 -27
- package/src/widgets-v2/formula/style.ts +0 -31
- package/src/widgets-v2/formula/types.ts +0 -48
- package/src/widgets-v2/histogram/index.ts +0 -13
- package/src/widgets-v2/histogram/skeleton.tsx +0 -70
- package/src/widgets-v2/histogram/types.ts +0 -64
- package/src/widgets-v2/markdown/index.ts +0 -6
- package/src/widgets-v2/markdown/markdown-ui.test.tsx +0 -75
- package/src/widgets-v2/markdown/markdown-ui.tsx +0 -55
- package/src/widgets-v2/markdown/markdown.tsx +0 -17
- package/src/widgets-v2/markdown/skeleton.tsx +0 -32
- package/src/widgets-v2/markdown/style.ts +0 -53
- package/src/widgets-v2/markdown/types.ts +0 -4
- package/src/widgets-v2/note/style.ts +0 -26
- package/src/widgets-v2/pie/index.ts +0 -10
- package/src/widgets-v2/pie/skeleton.tsx +0 -94
- package/src/widgets-v2/pie/types.ts +0 -62
- package/src/widgets-v2/range/index.ts +0 -4
- package/src/widgets-v2/range/range-ui.test.tsx +0 -136
- package/src/widgets-v2/range/range-ui.tsx +0 -278
- package/src/widgets-v2/range/skeleton.tsx +0 -47
- package/src/widgets-v2/range/style.ts +0 -41
- package/src/widgets-v2/range/types.ts +0 -37
- package/src/widgets-v2/scatterplot/index.ts +0 -14
- package/src/widgets-v2/scatterplot/skeleton.tsx +0 -84
- package/src/widgets-v2/scatterplot/types.ts +0 -59
- package/src/widgets-v2/selection-summary/selection-summary.tsx +0 -82
- package/src/widgets-v2/selection-summary/style.ts +0 -38
- package/src/widgets-v2/spread/index.ts +0 -11
- package/src/widgets-v2/spread/skeleton.tsx +0 -38
- package/src/widgets-v2/spread/spread-ui.test.tsx +0 -108
- package/src/widgets-v2/spread/spread-ui.tsx +0 -52
- package/src/widgets-v2/spread/types.ts +0 -27
- package/src/widgets-v2/stores/index.ts +0 -49
- package/src/widgets-v2/stores/types.ts +0 -64
- package/src/widgets-v2/subheader/style.ts +0 -12
- package/src/widgets-v2/subheader/subheader.test.tsx +0 -30
- package/src/widgets-v2/subheader/subheader.tsx +0 -16
- package/src/widgets-v2/table/helpers.test.ts +0 -233
- package/src/widgets-v2/table/helpers.ts +0 -131
- package/src/widgets-v2/table/index.ts +0 -24
- package/src/widgets-v2/table/skeleton.tsx +0 -65
- package/src/widgets-v2/table/style.ts +0 -43
- package/src/widgets-v2/table/table-ui.tsx +0 -364
- package/src/widgets-v2/table/types.ts +0 -55
- package/src/widgets-v2/timeseries/index.ts +0 -11
- package/src/widgets-v2/timeseries/skeleton.tsx +0 -76
- package/src/widgets-v2/timeseries/types.ts +0 -65
- package/src/widgets-v2/utils/index.ts +0 -3
- package/src/widgets-v2/wrapper/index.ts +0 -14
- /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/brush-toggle/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/change-column/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/change-column/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/change-column/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/download/constants.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/download/csv-item.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/download/icons.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/download/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/download/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/download/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/fullscreen/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/lock-selection/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/relative-data/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/searcher/filter.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/searcher/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/searcher/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/searcher/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/show-all/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/show-all/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/show-all/show-all.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/show-all/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/stack-toggle/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/index.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/bar/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/bar/options.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/category/category.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/category/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/echart/edge-label-clamp.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/echart/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/echart/use-chart-selection.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/formula/delta.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/formula/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/formula/formula.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/formula/note.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/formula/prefix.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/formula/suffix.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/histogram/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/histogram/options.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/histogram/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/markdown/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/markdown/markdown-content.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/note/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/note/widget-note.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/pie/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/pie/options.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/provider/widget-provider.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/range/range.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/scatterplot/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/scatterplot/options.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/scatterplot/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/selection-summary/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/spread/band.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/spread/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/spread/separator.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/spread/spread.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/state/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/state/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/state/widget-state.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/stores/pipeline-middleware.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/stores/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/stores/use-echart-instance.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/stores/use-transform-enabled.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/stores/use-transform.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/stores/widget-context.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/stores/widget-store-registry.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/table/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/table/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/table/table.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/table/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/timeseries/download.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/timeseries/options.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/timeseries/transforms.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/toolbox/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/toolbox/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/toolbox/toolbox.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/utils/data-zoom-layout.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/utils/merge-options.d.ts +0 -0
- /package/dist/types/widgets/utils/{chart-config/option-builders.d.ts → option-builders.d.ts} +0 -0
- /package/dist/types/{widgets-v2 → widgets}/utils/resolve-theme-color.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/wrapper/labels.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/wrapper/style.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-actions.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-content.d.ts +0 -0
- /package/dist/types/{widgets-v2 → widgets}/wrapper/widget-wrapper.d.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/brush-toggle/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/brush-toggle/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/brush-toggle/transforms.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/change-column/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/change-column/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/change-column/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/download/constants.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/download/csv-item.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/actions/download/csv-item.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/actions/download/icons.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/actions/download/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/download/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/download/png-item.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/actions/download/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/fullscreen/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/fullscreen/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/fullscreen/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/lock-selection/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/lock-selection/labels.ts +0 -0
- /package/src/{widgets-v2/actions/brush-toggle → widgets/actions/lock-selection}/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/lock-selection/transforms.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/relative-data/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/relative-data/labels.ts +0 -0
- /package/src/{widgets-v2/actions/lock-selection → widgets/actions/relative-data}/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/relative-data/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/searcher/filter.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/searcher/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/searcher/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/searcher/searcher.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/actions/searcher/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/show-all/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/show-all/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/actions/show-all/show-all.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/actions/show-all/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/stack-toggle/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/stack-toggle/labels.ts +0 -0
- /package/src/{widgets-v2/actions/relative-data → widgets/actions/stack-toggle}/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/stack-toggle/transforms.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/index.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/actions/zoom-toggle/transforms.ts +0 -0
- /package/src/{widgets-v2 → widgets}/bar/download.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/bar/download.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/bar/options.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/bar/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/category.relative-data.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/category.stack-toggle.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/category.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/category.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/components/category-bar-stacked.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/components/category-bar.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/components/category-row-other.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/components/category-row-stacked.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/category/download.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/category/download.ts +0 -0
- /package/src/{widgets-v2 → widgets}/category/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/echart/edge-label-clamp.ts +0 -0
- /package/src/{widgets-v2 → widgets}/echart/shared-resize-observer.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/echart/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/echart/use-chart-selection.ts +0 -0
- /package/src/{widgets-v2 → widgets}/formula/delta.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/formula/download.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/formula/download.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/formula/formula.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/formula/formula.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/formula/prefix.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/formula/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/formula/subcomponents.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/formula/suffix.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/histogram/download.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/histogram/download.ts +0 -0
- /package/src/{widgets-v2 → widgets}/histogram/options.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/histogram/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/histogram/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/histogram/transforms.ts +0 -0
- /package/src/{widgets-v2 → widgets}/markdown/download.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/markdown/download.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/markdown/markdown-content.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/markdown/markdown-content.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/markdown/markdown.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/markdown/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/note/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/note/widget-note.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/pie/download.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/pie/download.ts +0 -0
- /package/src/{widgets-v2 → widgets}/pie/options.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/pie/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/provider/widget-provider.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/provider/widget-provider.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/range/range.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/range/range.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/range/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/scatterplot/download.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/scatterplot/download.ts +0 -0
- /package/src/{widgets-v2 → widgets}/scatterplot/options.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/scatterplot/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/scatterplot/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/scatterplot/transforms.ts +0 -0
- /package/src/{widgets-v2 → widgets}/selection-summary/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/selection-summary/selection-summary.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/spread/band.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/spread/band.ts +0 -0
- /package/src/{widgets-v2 → widgets}/spread/download.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/spread/download.ts +0 -0
- /package/src/{widgets-v2 → widgets}/spread/separator.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/spread/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/spread/spread.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/spread/spread.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/state/labels.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/state/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/state/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/state/widget-state.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/stores/pipeline-middleware.ts +0 -0
- /package/src/{widgets-v2 → widgets}/stores/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/stores/use-echart-instance.ts +0 -0
- /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/stores/use-transform-enabled.ts +0 -0
- /package/src/{widgets-v2 → widgets}/stores/use-transform.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/stores/widget-context.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/stores/widget-context.ts +0 -0
- /package/src/{widgets-v2 → widgets}/stores/widget-store-registry.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/table/download.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/table/download.ts +0 -0
- /package/src/{widgets-v2 → widgets}/table/labels.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/table/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/table/table-ui.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/table/table.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/table/table.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/table/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/table/transforms.ts +0 -0
- /package/src/{widgets-v2 → widgets}/timeseries/download.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/timeseries/download.ts +0 -0
- /package/src/{widgets-v2 → widgets}/timeseries/options.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/timeseries/skeleton.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/timeseries/transforms.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/timeseries/transforms.ts +0 -0
- /package/src/{widgets-v2 → widgets}/toolbox/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/toolbox/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/toolbox/toolbox.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/toolbox/toolbox.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/utils/data-zoom-layout.ts +0 -0
- /package/src/{widgets-v2 → widgets}/utils/merge-options.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/utils/merge-options.ts +0 -0
- /package/src/widgets/utils/{chart-config/option-builders.test.ts → option-builders.test.ts} +0 -0
- /package/src/widgets/utils/{chart-config/option-builders.ts → option-builders.ts} +0 -0
- /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.test.ts +0 -0
- /package/src/{widgets-v2 → widgets}/utils/resolve-theme-color.ts +0 -0
- /package/src/{widgets-v2 → widgets}/wrapper/labels.ts +0 -0
- /package/src/{widgets-v2 → widgets}/wrapper/style.ts +0 -0
- /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/wrapper/widget-actions.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/wrapper/widget-content.test.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/wrapper/widget-content.tsx +0 -0
- /package/src/{widgets-v2 → widgets}/wrapper/widget-wrapper.test.tsx +0 -0
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { TableProps as MuiTableProps } from '@mui/material';
|
|
2
|
-
import { TableLabels } from './labels.js';
|
|
3
|
-
import { TableColumn, TableRow, TableSortState } from './types.js';
|
|
4
|
-
export interface TableUIProps<T extends TableRow = TableRow> {
|
|
5
|
-
columns: readonly TableColumn[];
|
|
6
|
-
/** Already-paginated, already-sorted rows for the current view. */
|
|
7
|
-
rows: readonly T[];
|
|
8
|
-
/** Total row count (across all pages). Required for pagination footer. */
|
|
9
|
-
total: number;
|
|
10
|
-
page: number;
|
|
11
|
-
pageSize: number;
|
|
12
|
-
pageSizeOptions?: readonly number[];
|
|
13
|
-
sort?: TableSortState;
|
|
14
|
-
/**
|
|
15
|
-
* Column name to use as the row identity. Drives selection lookup,
|
|
16
|
-
* React keys, and aria labels. Defaults to `'id'` — point it at
|
|
17
|
-
* another column when your rows don't carry an `id` field.
|
|
18
|
-
*/
|
|
19
|
-
keyColumn?: string;
|
|
20
|
-
/** Selected row ids. Destination-owned. */
|
|
21
|
-
selection?: readonly (string | number)[];
|
|
22
|
-
selectable?: boolean;
|
|
23
|
-
onSortChange?: (next: TableSortState) => void;
|
|
24
|
-
onPageChange?: (page: number) => void;
|
|
25
|
-
onPageSizeChange?: (pageSize: number) => void;
|
|
26
|
-
onSelectionChange?: (next: readonly (string | number)[]) => void;
|
|
27
|
-
onRowClick?: (row: T) => void;
|
|
28
|
-
onRowHover?: (row: T | null) => void;
|
|
29
|
-
labels?: Partial<TableLabels>;
|
|
30
|
-
/** Row rendered when `rows` is empty for the current page. */
|
|
31
|
-
emptyContent?: React.ReactNode;
|
|
32
|
-
/**
|
|
33
|
-
* Forwarded to MUI's `<Table size>` — `'small'` for compact rows,
|
|
34
|
-
* `'medium'` for the default density. Leave `undefined` (the default)
|
|
35
|
-
* to let MUI's own default kick in.
|
|
36
|
-
*/
|
|
37
|
-
size?: MuiTableProps['size'];
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Pure renderer for a paginated, sortable, optionally-selectable table.
|
|
41
|
-
* Has no widget-store coupling — `<Table>` (the bridge) reads from the store
|
|
42
|
-
* and feeds this UI with already-projected data.
|
|
43
|
-
*/
|
|
44
|
-
export declare function TableUI<T extends TableRow = TableRow>({ columns, rows, total, page, pageSize, pageSizeOptions, sort, keyColumn, selection, selectable, onSortChange, onPageChange, onPageSizeChange, onSelectionChange, onRowClick, onRowHover, labels, emptyContent, size, }: TableUIProps<T>): import('react').JSX.Element;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { WidgetState } from '../stores/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Single row of tabular data.
|
|
5
|
-
*
|
|
6
|
-
* The default row-identity column is `id`. Consumers that don't have a
|
|
7
|
-
* literal `id` field can point `<Table>` / `<TableUI>` at a different
|
|
8
|
-
* column via the `keyColumn` prop; the library reads `row[keyColumn]`
|
|
9
|
-
* for selection lookup, React keys, and aria labels.
|
|
10
|
-
*/
|
|
11
|
-
export interface TableRow extends Record<string, unknown> {
|
|
12
|
-
/**
|
|
13
|
-
* Default row identity. Required when no `keyColumn` is configured.
|
|
14
|
-
* Omit when wiring `keyColumn` to a different column.
|
|
15
|
-
*/
|
|
16
|
-
id?: string | number;
|
|
17
|
-
}
|
|
18
|
-
export type TableWidgetData = readonly TableRow[];
|
|
19
|
-
export type TableSortDirection = 'asc' | 'desc';
|
|
20
|
-
export interface TableSortState {
|
|
21
|
-
columnId: string | null;
|
|
22
|
-
direction: TableSortDirection;
|
|
23
|
-
}
|
|
24
|
-
export interface TableColumn {
|
|
25
|
-
/** Unique column identifier; matches the field name on each row. */
|
|
26
|
-
id: string;
|
|
27
|
-
/** Header label. */
|
|
28
|
-
label: ReactNode;
|
|
29
|
-
align?: 'left' | 'center' | 'right';
|
|
30
|
-
width?: number | string;
|
|
31
|
-
sortable?: boolean;
|
|
32
|
-
/** Custom cell renderer. Falls back to a string-cast of the raw value. */
|
|
33
|
-
formatter?: (value: unknown, row: TableRow) => ReactNode;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* State extension carrying Table-specific UI state on the per-widget store.
|
|
37
|
-
* Per R12: widget-specific UI state lives in widget-specific extensions of
|
|
38
|
-
* `WidgetState`, not on the base type.
|
|
39
|
-
*/
|
|
40
|
-
export interface TableWidgetState extends WidgetState {
|
|
41
|
-
/** Optional reordered column list driven by ChangeColumn. Falls back to props. */
|
|
42
|
-
columnOrder?: readonly string[];
|
|
43
|
-
sort?: TableSortState;
|
|
44
|
-
page: number;
|
|
45
|
-
pageSize: number;
|
|
46
|
-
}
|
|
47
|
-
export declare const DEFAULT_TABLE_PAGE_SIZE = 10;
|
|
48
|
-
export declare const DEFAULT_TABLE_PAGE_SIZE_OPTIONS: readonly [10, 25, 50, 100];
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { timeseriesOptions, createTimeseriesOptionFactory } from './options.js';
|
|
2
|
-
export { TimeseriesSkeleton } from './skeleton.js';
|
|
3
|
-
export { createTimeseriesDownloadConfig } from './download.js';
|
|
4
|
-
export { filterTimeseriesByLockedItems } from './transforms.js';
|
|
5
|
-
export type { TimeseriesDatum, TimeseriesWidgetData, TimeseriesOptionsInput, TimeseriesOptionFactoryInput, TimeseriesEChartsOption, } from './types.js';
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Loading state for the Timeseries widget. Mirrors a line chart's
|
|
3
|
-
* silhouette — three thin horizontal segments at staggered offsets to
|
|
4
|
-
* suggest a moving line, plus a 2-dot legend stub. Sibling-consistent
|
|
5
|
-
* with Bar / Histogram / Scatter skeletons (column-flex container with
|
|
6
|
-
* legend strip below).
|
|
7
|
-
*/
|
|
8
|
-
export declare function TimeseriesSkeleton(): import('react').JSX.Element;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Theme } from '@mui/material';
|
|
2
|
-
import { EChartsOption } from 'echarts';
|
|
3
|
-
import { WidgetSeries } from '../types.js';
|
|
4
|
-
/**
|
|
5
|
-
* A single point on a time series. `name` is the time coordinate — accepts a
|
|
6
|
-
* Date object, a number (ms-since-epoch), or an ISO-8601 string. ECharts'
|
|
7
|
-
* time axis parses any of these.
|
|
8
|
-
*/
|
|
9
|
-
export interface TimeseriesDatum {
|
|
10
|
-
name: Date | number | string;
|
|
11
|
-
value: number;
|
|
12
|
-
}
|
|
13
|
-
/** Timeseries widget data — one array of points per series. */
|
|
14
|
-
export type TimeseriesWidgetData = readonly (readonly TimeseriesDatum[])[];
|
|
15
|
-
/** Inputs to the structural-only {@link timeseriesOptions} builder. */
|
|
16
|
-
export interface TimeseriesOptionsInput {
|
|
17
|
-
theme: Theme;
|
|
18
|
-
formatter?: (value: number) => string;
|
|
19
|
-
/** Optional formatter for the time-axis tick labels. Receives a JS Date. */
|
|
20
|
-
labelFormatter?: (value: Date) => string;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Combined inputs for the timeseries option factory creator. Carries
|
|
24
|
-
* everything the widget needs across BOTH phases — the structural-build
|
|
25
|
-
* (`theme`, `formatter`, `labelFormatter`, `optionsOverride`) AND the
|
|
26
|
-
* data merge (`series`, `smooth`, `area`, `selection`).
|
|
27
|
-
*/
|
|
28
|
-
export interface TimeseriesOptionFactoryInput {
|
|
29
|
-
theme: Theme;
|
|
30
|
-
formatter?: (value: number) => string;
|
|
31
|
-
/**
|
|
32
|
-
* Time-axis label formatter (also used in the tooltip name). Receives
|
|
33
|
-
* a JS Date — applied both at structural-build time (x-axis ticks) and
|
|
34
|
-
* at fusion time (tooltip name) so the date-aware labeling survives
|
|
35
|
-
* RelativeData's reactive formatter swaps.
|
|
36
|
-
*/
|
|
37
|
-
labelFormatter?: (value: Date) => string;
|
|
38
|
-
/**
|
|
39
|
-
* Per-series metadata — drives the legend, `series[i].name`, and
|
|
40
|
-
* (when `color` is set) per-series line + marker colour overrides.
|
|
41
|
-
*/
|
|
42
|
-
series?: readonly WidgetSeries[];
|
|
43
|
-
/** Smooth lines (default `true`). */
|
|
44
|
-
smooth?: boolean;
|
|
45
|
-
/** Filled area below each line (default `false`). */
|
|
46
|
-
area?: boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Selected point keys (matched against `TimeseriesDatum.name`; `Date`
|
|
49
|
-
* names are normalized to ms-since-epoch). Points not in this list render
|
|
50
|
-
* dimmed (`itemStyle.opacity: 0.15`). `null`/empty means no selection.
|
|
51
|
-
*/
|
|
52
|
-
selection?: readonly (string | number)[] | null;
|
|
53
|
-
/**
|
|
54
|
-
* Consumer-supplied partial option merged into the structural option at
|
|
55
|
-
* structural-build time. Lets stories override pieces of the theme-aware
|
|
56
|
-
* base without forking the structural builder.
|
|
57
|
-
*/
|
|
58
|
-
optionsOverride?: Partial<EChartsOption>;
|
|
59
|
-
}
|
|
60
|
-
export type TimeseriesEChartsOption = EChartsOption;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { Wrapper, type WrapperProps } from './widget-wrapper.js';
|
|
2
|
-
export { Actions, Options, type ActionsProps, type OptionsProps, } from './widget-actions.js';
|
|
3
|
-
export { Content, Footer, type ContentProps, type FooterProps, } from './widget-content.js';
|
|
4
|
-
export { DEFAULT_WRAPPER_LABELS, type WrapperLabels } from './labels.js';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./widget-store-BFPKYm4R.js";
|
|
2
|
-
import { c as t } from "react/compiler-runtime";
|
|
3
|
-
import { useShallow as n } from "zustand/shallow";
|
|
4
|
-
//#region src/widgets/stores/use-widget-selector.ts
|
|
5
|
-
function r(r, i) {
|
|
6
|
-
let a = t(3), o;
|
|
7
|
-
return a[0] !== i || a[1] !== r ? (o = (e) => i(e.widgets[r]), a[0] = i, a[1] = r, a[2] = o) : o = a[2], e(n(o));
|
|
8
|
-
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { r as t };
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=use-widget-selector-VSPhfhNm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-widget-selector-VSPhfhNm.js","names":["(state: { widgets: Record<string, WidgetState> }) =>\n selector(state.widgets[widgetId])"],"sources":["../src/widgets/stores/use-widget-selector.ts"],"sourcesContent":["import { useWidgetStore } from './widget-store'\nimport type { WidgetState } from './types'\nimport { useShallow } from 'zustand/shallow'\n\n/**\n * Scoped selector hook for reading a single widget's state from the store.\n *\n * Consolidates multiple `useWidgetStore(useShallow(...))` calls into a single\n * subscription per component. The selector receives only this widget's state\n * (or undefined if not yet registered), and uses shallow comparison to avoid\n * re-renders when unrelated properties change.\n *\n * @param widgetId - The widget ID to subscribe to.\n * @param selector - A function that extracts the needed properties from the widget state.\n * Must be a stable reference (inline arrow is fine due to useCallback wrapping).\n *\n * @example\n * ```tsx\n * // Before: 4 separate subscriptions\n * const title = useWidgetStore(useShallow((s) => s.getWidget(id)?.title))\n * const collapsed = useWidgetStore(useShallow((s) => s.getWidget(id)?.collapsed))\n * const disabled = useWidgetStore(useShallow((s) => s.getWidget(id)?.disabled))\n * const isFetching = useWidgetStore(useShallow((s) => s.getWidget(id)?.isFetching))\n *\n * // After: 1 subscription\n * const { title, collapsed, disabled, isFetching } = useWidgetSelector(id, (w) => ({\n * title: w?.title, collapsed: w?.collapsed, disabled: w?.disabled, isFetching: w?.isFetching,\n * }))\n *\n * // With extra dependencies (e.g., index prop):\n * const value = useWidgetSelector(\n * id,\n * (w) => (w as MyState | undefined)?.data?.[index]?.value,\n * [index],\n * )\n * ```\n */\nexport function useWidgetSelector<T>(\n widgetId: string,\n selector: (widget: WidgetState | undefined) => T,\n): T {\n return useWidgetStore(\n useShallow((state: { widgets: Record<string, WidgetState> }) =>\n selector(state.widgets[widgetId]),\n ),\n )\n}\n"],"mappings":";;;;AAqCA,SAAgB,EACd,GACA,GACG;eAEUA;CADb,OAEI,EAAA,OAAA,KAAA,EAAA,OAAuB,KADd,KAAC,MACV,EAAS,EAAM,QAAQ,EAAS,GAAhC,EAAA,KAAA,GAAuB,EAAA,KAAA,yBAFpB,EACL,EAAWA,CAEX,CACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-Dr6gf3vD.js","names":[],"sources":["../src/widgets-v2/utils/merge-options.ts","../src/widgets-v2/utils/data-zoom-layout.ts","../src/widgets-v2/utils/resolve-theme-color.ts"],"sourcesContent":["/**\n * Shallow-merges two ECharts option objects:\n * - Top-level keys from both are combined.\n * - Arrays are merged by index (element-wise shallow merge, primitive override).\n * - Plain objects are shallow-merged.\n * - Primitives are overridden by the override value.\n *\n * Designed for the two-stage memoization pattern: first build a base option\n * object from data + theme + formatters, then call `mergeOptions(base, override)`\n * inside a second `useMemo` keyed on `[base, override]`.\n */\nexport function mergeOptions<T extends Record<string, unknown>>(\n base: T,\n override?: Partial<T>,\n): T {\n if (!override) return base\n const out: Record<string, unknown> = { ...base }\n for (const key of Object.keys(override) as (keyof T)[]) {\n const a = base[key]\n const b = override[key]\n if (b === undefined) continue\n out[key as string] = mergeValue(a, b)\n }\n return out as T\n}\n\nfunction mergeValue(a: unknown, b: unknown): unknown {\n if (Array.isArray(a) && Array.isArray(b)) {\n const len = Math.max(a.length, b.length)\n const result = new Array<unknown>(len)\n for (let i = 0; i < len; i++) {\n const av: unknown = a[i]\n const bv: unknown = b[i]\n if (bv === undefined) result[i] = av\n else if (av === undefined) result[i] = bv\n else result[i] = mergeValue(av, bv)\n }\n return result\n }\n if (isPlainObject(a) && isPlainObject(b)) {\n return { ...a, ...b }\n }\n return b\n}\n\nfunction isPlainObject(v: unknown): v is Record<string, unknown> {\n if (v === null || typeof v !== 'object') return false\n const proto = Object.getPrototypeOf(v) as unknown\n return proto === Object.prototype || proto === null\n}\n","import { ZOOM_LAYOUT } from '../actions/zoom-toggle'\n\n/**\n * If the option includes a `dataZoom` array (from ZoomToggle's transform),\n * lift any slider entries above the legend row so they don't overlap.\n * Returns `null` when there is no `dataZoom` — caller skips the layout\n * adjustment entirely.\n *\n * Shared between bar, histogram, and timeseries — every widget with a\n * horizontal x-axis dataZoom slider needs the same offset when a legend\n * is rendered below the plot.\n */\nexport function positionDataZoomForLegend(\n dataZoom: unknown,\n hasLegend: boolean,\n): unknown[] | null {\n if (!Array.isArray(dataZoom) || dataZoom.length === 0) return null\n return dataZoom.map((entry: unknown) => {\n if (entry == null || typeof entry !== 'object') return entry\n const dz = entry as { type?: string; bottom?: number }\n if (dz.type === 'slider' && hasLegend) {\n return { ...dz, bottom: ZOOM_LAYOUT.sliderBottomWithLegend }\n }\n return dz\n })\n}\n","import type { Theme } from '@mui/material'\n\n/**\n * Resolve a colour string against the MUI theme palette.\n *\n * - `'primary.main'`, `'secondary.dark'`, `'success.contrastText'`, … →\n * walks `theme.palette` along the dot-separated path and returns the\n * resolved string when traversal succeeds.\n * - `'#ff0000'`, `'rgb(255, 0, 0)'`, `'red'` → returned as-is (assumed\n * raw CSS; ECharts consumes them directly).\n * - `undefined` → `undefined` (callers fall back to ECharts' palette).\n *\n * Used by the echart option factories (Bar, Pie, Histogram, Scatterplot,\n * Timeseries) so per-series colours specified as theme paths in the\n * unified `WidgetSeries` shape paint correctly. Category, Formula, and\n * Spread render colours through MUI's `sx` resolver, which already\n * handles theme paths — they don't need this helper.\n */\nexport function resolveThemeColor(\n theme: Theme,\n raw: string | undefined,\n): string | undefined {\n if (raw == null) return undefined\n if (!raw.includes('.')) return raw\n const parts = raw.split('.')\n let cursor: unknown = theme.palette\n for (const part of parts) {\n if (cursor == null || typeof cursor !== 'object') {\n return raw\n }\n cursor = (cursor as Record<string, unknown>)[part]\n }\n return typeof cursor === 'string' ? cursor : raw\n}\n"],"mappings":";;AAWA,SAAgB,EACd,GACA,GACG;CACH,IAAI,CAAC,GAAU,OAAO;CACtB,IAAM,IAA+B,EAAE,GAAG,EAAK;CAC/C,KAAK,IAAM,KAAO,OAAO,KAAK,CAAQ,GAAkB;EACtD,IAAM,IAAI,EAAK,IACT,IAAI,EAAS;EACf,MAAM,KAAA,MACV,EAAI,KAAiB,EAAW,GAAG,CAAC;CACtC;CACA,OAAO;AACT;AAEA,SAAS,EAAW,GAAY,GAAqB;CACnD,IAAI,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,GAAG;EACxC,IAAM,IAAM,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,GACjC,IAAa,MAAe,CAAG;EACrC,KAAK,IAAI,IAAI,GAAG,IAAI,GAAK,KAAK;GAC5B,IAAM,IAAc,EAAE,IAChB,IAAc,EAAE;GACtB,AAAI,MAAO,KAAA,IAAW,EAAO,KAAK,IACzB,MAAO,KAAA,IAAW,EAAO,KAAK,IAClC,EAAO,KAAK,EAAW,GAAI,CAAE;EACpC;EACA,OAAO;CACT;CAIA,OAHI,EAAc,CAAC,KAAK,EAAc,CAAC,IAC9B;EAAE,GAAG;EAAG,GAAG;CAAE,IAEf;AACT;AAEA,SAAS,EAAc,GAA0C;CAC/D,IAAkB,OAAO,KAAM,aAA3B,GAAqC,OAAO;CAChD,IAAM,IAAQ,OAAO,eAAe,CAAC;CACrC,OAAO,MAAU,OAAO,aAAa,MAAU;AACjD;;;ACrCA,SAAgB,EACd,GACA,GACkB;CAElB,OADI,CAAC,MAAM,QAAQ,CAAQ,KAAK,EAAS,WAAW,IAAU,OACvD,EAAS,KAAK,MAAmB;EACtC,IAAqB,OAAO,KAAU,aAAlC,GAA4C,OAAO;EACvD,IAAM,IAAK;EAIX,OAHI,EAAG,SAAS,YAAY,IACnB;GAAE,GAAG;GAAI,QAAQ,EAAY;EAAuB,IAEtD;CACT,CAAC;AACH;;;ACPA,SAAgB,EACd,GACA,GACoB;CACpB,IAAI,KAAO,MAAM;CACjB,IAAI,CAAC,EAAI,SAAS,GAAG,GAAG,OAAO;CAC/B,IAAM,IAAQ,EAAI,MAAM,GAAG,GACvB,IAAkB,EAAM;CAC5B,KAAK,IAAM,KAAQ,GAAO;EACxB,IAAsB,OAAO,KAAW,aAApC,GACF,OAAO;EAET,IAAU,EAAmC;CAC/C;CACA,OAAO,OAAO,KAAW,WAAW,IAAS;AAC/C"}
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { create as e } from "zustand";
|
|
2
|
-
//#region src/widgets/stores/widget-store.ts
|
|
3
|
-
var t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = e()((e, r) => ({
|
|
4
|
-
widgets: {},
|
|
5
|
-
setWidget: (t, n) => {
|
|
6
|
-
e((e) => {
|
|
7
|
-
let r = e.widgets[t] ?? {};
|
|
8
|
-
return { widgets: {
|
|
9
|
-
...e.widgets,
|
|
10
|
-
[t]: {
|
|
11
|
-
...r,
|
|
12
|
-
...n,
|
|
13
|
-
id: t
|
|
14
|
-
}
|
|
15
|
-
} };
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
removeWidget: (t) => e((e) => {
|
|
19
|
-
let n = { ...e.widgets };
|
|
20
|
-
return delete n[t], { widgets: n };
|
|
21
|
-
}),
|
|
22
|
-
clearWidgets: () => e({ widgets: {} }),
|
|
23
|
-
getWidget: (e) => r().widgets[e],
|
|
24
|
-
registerTool: (t, n) => {
|
|
25
|
-
let i = r().widgets[t]?.registeredTools?.find((e) => e.id === n.id);
|
|
26
|
-
if (i?.order === n.order && i.enabled === n.enabled && i.type === n.type && i.disables === n.disables) {
|
|
27
|
-
i.fn = n.fn;
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
e((e) => {
|
|
31
|
-
let r = e.widgets[t] ?? {}, i = (r.registeredTools ?? []).filter((e) => e.id !== n.id);
|
|
32
|
-
return { widgets: {
|
|
33
|
-
...e.widgets,
|
|
34
|
-
[t]: {
|
|
35
|
-
...r,
|
|
36
|
-
id: t,
|
|
37
|
-
registeredTools: [...i, n]
|
|
38
|
-
}
|
|
39
|
-
} };
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
unregisterTool: (t, n) => e((e) => {
|
|
43
|
-
let r = e.widgets[t];
|
|
44
|
-
if (!r) return e;
|
|
45
|
-
let i = (r.registeredTools ?? []).filter((e) => e.id !== n);
|
|
46
|
-
return { widgets: {
|
|
47
|
-
...e.widgets,
|
|
48
|
-
[t]: {
|
|
49
|
-
...r,
|
|
50
|
-
registeredTools: i
|
|
51
|
-
}
|
|
52
|
-
} };
|
|
53
|
-
}),
|
|
54
|
-
triggerToolPipeline: (t) => e((e) => {
|
|
55
|
-
let n = e.widgets[t];
|
|
56
|
-
return n ? { widgets: {
|
|
57
|
-
...e.widgets,
|
|
58
|
-
[t]: {
|
|
59
|
-
...n,
|
|
60
|
-
registeredTools: [...n.registeredTools ?? []]
|
|
61
|
-
}
|
|
62
|
-
} } : e;
|
|
63
|
-
}),
|
|
64
|
-
setToolEnabled: (t, n, i) => {
|
|
65
|
-
let a = r().widgets[t];
|
|
66
|
-
a && a.registeredTools?.find((e) => e.id === n)?.enabled === i || e((e) => {
|
|
67
|
-
let r = e.widgets[t];
|
|
68
|
-
if (!r) return e;
|
|
69
|
-
let a = (r.registeredTools ?? []).map((e) => e.id === n ? {
|
|
70
|
-
...e,
|
|
71
|
-
enabled: i
|
|
72
|
-
} : e);
|
|
73
|
-
return { widgets: {
|
|
74
|
-
...e.widgets,
|
|
75
|
-
[t]: {
|
|
76
|
-
...r,
|
|
77
|
-
registeredTools: a
|
|
78
|
-
}
|
|
79
|
-
} };
|
|
80
|
-
});
|
|
81
|
-
},
|
|
82
|
-
executeToolPipeline: async (n, i) => {
|
|
83
|
-
let a = r().widgets[n];
|
|
84
|
-
if (!a) return;
|
|
85
|
-
let o = (t.get(n) ?? 0) + 1;
|
|
86
|
-
t.set(n, o);
|
|
87
|
-
let s = a, c = /* @__PURE__ */ new Set();
|
|
88
|
-
for (let e of s.registeredTools ?? []) e.enabled && e.disables && e.disables.forEach((e) => c.add(e));
|
|
89
|
-
let l = [...s.registeredTools ?? []].filter((e) => (e.type ?? "data") === "data" && e.enabled && !c.has(e.id)).sort((e, t) => e.order - t.order), u = i;
|
|
90
|
-
for (let e of l) {
|
|
91
|
-
if (t.get(n) !== o) return;
|
|
92
|
-
try {
|
|
93
|
-
u = await e.fn(u);
|
|
94
|
-
} catch (t) {
|
|
95
|
-
console.error(`Tool ${e.id} failed for widget ${n}:`, t);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
let d = r().widgets[n];
|
|
99
|
-
if (d && Object.is(d.data, u) && Object.is(d.sourceData, i)) {
|
|
100
|
-
t.get(n) === o && t.delete(n);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
e((e) => {
|
|
104
|
-
let t = e.widgets[n];
|
|
105
|
-
return t ? { widgets: {
|
|
106
|
-
...e.widgets,
|
|
107
|
-
[n]: {
|
|
108
|
-
...t,
|
|
109
|
-
sourceData: i,
|
|
110
|
-
data: u
|
|
111
|
-
}
|
|
112
|
-
} } : e;
|
|
113
|
-
}), t.get(n) === o && t.delete(n);
|
|
114
|
-
},
|
|
115
|
-
executeConfigPipeline: async (t, i) => {
|
|
116
|
-
let a = r().widgets[t];
|
|
117
|
-
if (!a) return;
|
|
118
|
-
let o = (n.get(t) ?? 0) + 1;
|
|
119
|
-
n.set(t, o);
|
|
120
|
-
let s = /* @__PURE__ */ new Set();
|
|
121
|
-
for (let e of a.registeredTools ?? []) e.enabled && e.disables && e.disables.forEach((e) => s.add(e));
|
|
122
|
-
let c = [...a.registeredTools ?? []].filter((e) => e.type === "config" && e.enabled && !s.has(e.id)).sort((e, t) => e.order - t.order), l = i;
|
|
123
|
-
for (let e of c) {
|
|
124
|
-
if (n.get(t) !== o) return;
|
|
125
|
-
try {
|
|
126
|
-
l = await e.fn(l);
|
|
127
|
-
} catch (n) {
|
|
128
|
-
console.error(`Config tool ${e.id} failed for widget ${t}:`, n);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
let u = i, d = l, f = r().widgets[t], p = f?._lastConfig, m = {};
|
|
132
|
-
for (let e of Object.keys(d)) {
|
|
133
|
-
let t = !Object.is(d[e], u[e]), n = !p || !(e in p), r = !n && Object.is(f[e], p[e]);
|
|
134
|
-
(t || n || r) && (m[e] = d[e]);
|
|
135
|
-
}
|
|
136
|
-
if (!Object.keys(m).some((e) => !Object.is(f?.[e], m[e])) && Object.is(l, p)) {
|
|
137
|
-
n.get(t) === o && n.delete(t);
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
e((e) => {
|
|
141
|
-
let n = e.widgets[t];
|
|
142
|
-
return n ? { widgets: {
|
|
143
|
-
...e.widgets,
|
|
144
|
-
[t]: {
|
|
145
|
-
...n,
|
|
146
|
-
...m,
|
|
147
|
-
_lastConfig: l
|
|
148
|
-
}
|
|
149
|
-
} } : e;
|
|
150
|
-
}), n.get(t) === o && n.delete(t);
|
|
151
|
-
}
|
|
152
|
-
})), i = {
|
|
153
|
-
get setWidget() {
|
|
154
|
-
return r.getState().setWidget;
|
|
155
|
-
},
|
|
156
|
-
get removeWidget() {
|
|
157
|
-
return r.getState().removeWidget;
|
|
158
|
-
},
|
|
159
|
-
get clearWidgets() {
|
|
160
|
-
return r.getState().clearWidgets;
|
|
161
|
-
},
|
|
162
|
-
get getWidget() {
|
|
163
|
-
return r.getState().getWidget;
|
|
164
|
-
},
|
|
165
|
-
get registerTool() {
|
|
166
|
-
return r.getState().registerTool;
|
|
167
|
-
},
|
|
168
|
-
get unregisterTool() {
|
|
169
|
-
return r.getState().unregisterTool;
|
|
170
|
-
},
|
|
171
|
-
get setToolEnabled() {
|
|
172
|
-
return r.getState().setToolEnabled;
|
|
173
|
-
},
|
|
174
|
-
get triggerToolPipeline() {
|
|
175
|
-
return r.getState().triggerToolPipeline;
|
|
176
|
-
},
|
|
177
|
-
get executeToolPipeline() {
|
|
178
|
-
return r.getState().executeToolPipeline;
|
|
179
|
-
},
|
|
180
|
-
get executeConfigPipeline() {
|
|
181
|
-
return r.getState().executeConfigPipeline;
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
//#endregion
|
|
185
|
-
export { i as n, r as t };
|
|
186
|
-
|
|
187
|
-
//# sourceMappingURL=widget-store-BFPKYm4R.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"widget-store-BFPKYm4R.js","names":[],"sources":["../src/widgets/stores/widget-store.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type {\n WidgetState,\n WidgetStore,\n ToolRegistration,\n WidgetStoreActions,\n} from './types'\n\n// Track active pipeline executions for cancellation\nconst activePipelines = new Map<string, number>()\nconst activeConfigPipelines = new Map<string, number>()\n\n/**\n * Zustand store for managing widget state across the application.\n *\n * Provides centralized state management for all widget UI components, including\n * data/config transformation pipelines via registered tools.\n *\n * **Performance optimizations:**\n * - `registerTool` skips the store update when structural properties (order, enabled,\n * type, disables) haven't changed — only `fn` is updated via direct mutation,\n * avoiding a new `registeredTools` array reference and WidgetLoader pipeline cascades.\n * - `setToolEnabled` skips the store update when the enabled state is already the\n * requested value.\n * - `executeToolPipeline` / `executeConfigPipeline` skip the final `set()` when\n * the transformed data/config is referentially identical to what's already in the store.\n * - Both pipelines support cancellation — newer executions for the same widget\n * automatically cancel in-progress ones.\n *\n * @example Reading widget state (prefer useWidgetSelector for performance)\n * ```tsx\n * import { useWidgetSelector } from '@carto/ps-react-ui/widgets'\n *\n * function MyWidget({ id }: { id: string }) {\n * const { title, data } = useWidgetSelector(id, (w) => ({\n * title: w?.title,\n * data: w?.data,\n * }))\n * return <div>{title}: {JSON.stringify(data)}</div>\n * }\n * ```\n *\n * @example Writing widget state\n * ```tsx\n * import { widgetStoreActions } from '@carto/ps-react-ui/widgets'\n *\n * const { setWidget } = widgetStoreActions\n * setWidget('my-widget', { type: 'formula', isLoading: false, data: { value: 1000 } })\n * ```\n */\nexport const useWidgetStore = create<WidgetStore>()((set, get) => ({\n // State\n widgets: {},\n\n // Actions\n\n /** Merges partial state into the widget entry. Creates the widget if it doesn't exist. */\n setWidget: (id, widget) => {\n set((state) => {\n const prev = state.widgets[id] ?? ({} as WidgetStore['widgets'][string])\n return {\n widgets: {\n ...state.widgets,\n [id]: {\n ...prev,\n ...widget,\n id,\n },\n },\n }\n })\n },\n\n removeWidget: (id) =>\n set((state) => {\n const widgets = { ...state.widgets }\n\n delete widgets[id]\n\n return { widgets }\n }),\n\n clearWidgets: () =>\n set({\n widgets: {},\n }),\n\n getWidget: <T extends WidgetState>(id: string) => {\n return get().widgets[id] as T | undefined\n },\n\n /**\n * Registers a transformation tool for a widget's data or config pipeline.\n *\n * **No-op optimization:** When a tool with the same `id` already exists and its\n * structural properties (`order`, `enabled`, `type`, `disables`) are unchanged,\n * only `fn` is updated via direct mutation — no store update is triggered. This\n * allows action components to include all reactive dependencies in their\n * `useEffect` arrays without causing WidgetLoader pipeline cascades.\n */\n registerTool: (widgetId: string, tool: ToolRegistration) => {\n const current = get().widgets[widgetId]\n const existingTool = current?.registeredTools?.find(\n (t: ToolRegistration) => t.id === tool.id,\n )\n\n // No-op: structural properties unchanged — update fn via direct mutation.\n // Safe because fn is only consumed imperatively during pipeline execution.\n if (\n existingTool?.order === tool.order &&\n existingTool.enabled === tool.enabled &&\n existingTool.type === tool.type &&\n existingTool.disables === tool.disables\n ) {\n existingTool.fn = tool.fn\n return\n }\n\n set((state) => {\n const widget = state.widgets[widgetId] ?? ({} as WidgetState)\n const registeredTools = widget.registeredTools ?? []\n\n // Remove existing tool with same id if present\n const filteredTools = registeredTools.filter(\n (t: ToolRegistration) => t.id !== tool.id,\n )\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...widget,\n id: widgetId,\n registeredTools: [...filteredTools, tool],\n },\n },\n }\n })\n },\n\n unregisterTool: (widgetId: string, toolId: string) =>\n set((state) => {\n const current = state.widgets[widgetId]\n if (!current) return state\n\n const registeredTools = current.registeredTools ?? []\n const filteredTools = registeredTools.filter(\n (t: ToolRegistration) => t.id !== toolId,\n )\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...current,\n registeredTools: filteredTools,\n },\n },\n }\n }),\n\n /**\n * Triggers pipeline re-execution by creating a new `registeredTools` reference.\n * This is a lightweight operation that only bumps the array reference without\n * modifying any tool.\n */\n triggerToolPipeline: (widgetId: string) =>\n set((state) => {\n const widget = state.widgets[widgetId]\n if (!widget) return state\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...widget,\n registeredTools: [...(widget.registeredTools ?? [])],\n },\n },\n }\n }),\n\n /**\n * Updates a tool's enabled state.\n *\n * **No-op optimization:** Skips the store update if the tool already has the\n * requested enabled value.\n */\n setToolEnabled: (widgetId: string, toolId: string, enabled: boolean) => {\n const current = get().widgets[widgetId]\n if (current) {\n const tool = current.registeredTools?.find(\n (t: ToolRegistration) => t.id === toolId,\n )\n if (tool?.enabled === enabled) return\n }\n\n set((state) => {\n const widget = state.widgets[widgetId]\n if (!widget) return state\n\n const registeredTools = widget.registeredTools ?? []\n const updatedTools = registeredTools.map((tool: ToolRegistration) =>\n tool.id === toolId ? { ...tool, enabled } : tool,\n )\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...widget,\n registeredTools: updatedTools,\n },\n },\n }\n })\n },\n\n /**\n * Executes the data transformation pipeline for a widget.\n *\n * Filters to enabled data-type tools (respecting `disables`), sorts by `order`,\n * and chains their `fn` calls. Supports async tools.\n *\n * **Cancellation:** Newer executions for the same widget automatically cancel\n * in-progress ones via a version counter.\n *\n * **No-op optimization:** Skips the final `set()` if the transformed data is\n * referentially identical (`Object.is`) to what's already in the store.\n */\n executeToolPipeline: async (widgetId: string, sourceData: unknown) => {\n const widget = get().widgets[widgetId]\n if (!widget) return\n\n // Cancel any in-progress pipeline for this widget\n const currentExecution = (activePipelines.get(widgetId) ?? 0) + 1\n activePipelines.set(widgetId, currentExecution)\n\n const widgetWithTools = widget\n\n // Build set of tool IDs that should be disabled\n const disabledToolIds = new Set<string>()\n for (const tool of widgetWithTools.registeredTools ?? []) {\n if (tool.enabled && tool.disables) {\n tool.disables.forEach((id) => disabledToolIds.add(id))\n }\n }\n\n // Sort tools by order and filter enabled data-only tools, excluding disabled tools\n const sortedTools = [...(widgetWithTools.registeredTools ?? [])]\n .filter(\n (tool) =>\n (tool.type ?? 'data') === 'data' &&\n tool.enabled &&\n !disabledToolIds.has(tool.id),\n )\n .sort((a, b) => a.order - b.order)\n\n // Execute pipeline - handle both sync and async tools\n let transformedData = sourceData\n for (const tool of sortedTools) {\n // Check if this execution was cancelled\n if (activePipelines.get(widgetId) !== currentExecution) {\n return\n }\n\n try {\n // Call tool function (may return Promise or direct value)\n transformedData = await tool.fn(transformedData)\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Tool ${tool.id} failed for widget ${widgetId}:`, error)\n // Continue with current data to prevent one tool from breaking all\n }\n }\n\n // Skip store update if neither data nor sourceData changed\n const widgetAfter = get().widgets[widgetId]\n if (\n widgetAfter &&\n Object.is(widgetAfter.data, transformedData) &&\n Object.is(widgetAfter.sourceData, sourceData)\n ) {\n if (activePipelines.get(widgetId) === currentExecution) {\n activePipelines.delete(widgetId)\n }\n return\n }\n\n // Single store update with final transformed data\n set((state) => {\n const currentWidget = state.widgets[widgetId]\n if (!currentWidget) return state\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...currentWidget,\n sourceData,\n data: transformedData,\n },\n },\n }\n })\n\n // Clean up tracking\n if (activePipelines.get(widgetId) === currentExecution) {\n activePipelines.delete(widgetId)\n }\n },\n\n /**\n * Executes the config transformation pipeline for a widget.\n *\n * Filters to enabled config-type tools (respecting `disables`), sorts by `order`,\n * and chains their `fn` calls. The transformed config is spread into the widget state.\n *\n * **Cancellation:** Newer executions for the same widget automatically cancel\n * in-progress ones via a version counter.\n *\n * **No-op optimization:** Skips the final `set()` when the config object is unchanged\n * and all its properties already match what's in the store.\n */\n executeConfigPipeline: async (widgetId: string, baseConfig: object) => {\n const widget = get().widgets[widgetId]\n if (!widget) return\n\n // Cancel any in-progress config pipeline for this widget\n const currentExecution = (activeConfigPipelines.get(widgetId) ?? 0) + 1\n activeConfigPipelines.set(widgetId, currentExecution)\n\n // Build set of tool IDs that should be disabled (cross-type disabling works)\n const disabledToolIds = new Set<string>()\n for (const tool of widget.registeredTools ?? []) {\n if (tool.enabled && tool.disables) {\n tool.disables.forEach((id) => disabledToolIds.add(id))\n }\n }\n\n // Filter to config tools only, sort by order\n const sortedTools = [...(widget.registeredTools ?? [])]\n .filter(\n (tool) =>\n tool.type === 'config' &&\n tool.enabled &&\n !disabledToolIds.has(tool.id),\n )\n .sort((a, b) => a.order - b.order)\n\n // Chain config tools\n let transformedConfig: unknown = baseConfig\n for (const tool of sortedTools) {\n if (activeConfigPipelines.get(widgetId) !== currentExecution) {\n return\n }\n\n try {\n transformedConfig = await tool.fn(transformedConfig)\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `Config tool ${tool.id} failed for widget ${widgetId}:`,\n error,\n )\n }\n }\n\n // Build a patch that only includes properties the pipeline should set.\n // A property is applied when:\n // 1. A config tool explicitly changed it (transformedConfig[k] !== baseConfig[k])\n // 2. First pipeline run for this widget (no _lastConfig yet)\n // 3. The widget value still matches what the pipeline last set — meaning the\n // user hasn't modified it via setWidget, so it's safe to overwrite.\n // A property is SKIPPED when the widget value differs from _lastConfig,\n // meaning the user (or a hook) changed it since the last pipeline run.\n const base = baseConfig as Record<string, unknown>\n const result = transformedConfig as Record<string, unknown>\n const widgetNow = get().widgets[widgetId] as unknown as Record<\n string,\n unknown\n >\n const lastConfig = widgetNow?._lastConfig as\n Record<string, unknown> | undefined\n\n const patch: Record<string, unknown> = {}\n for (const key of Object.keys(result)) {\n const toolChanged = !Object.is(result[key], base[key])\n const isFirstRun = !lastConfig || !(key in lastConfig)\n const userUnmodified =\n !isFirstRun && Object.is(widgetNow[key], lastConfig[key])\n\n if (toolChanged || isFirstRun || userUnmodified) {\n patch[key] = result[key]\n }\n }\n\n // Skip store update if every patch value already matches the widget\n const hasChanges = Object.keys(patch).some(\n (k) => !Object.is(widgetNow?.[k], patch[k]),\n )\n const configRefChanged = !Object.is(transformedConfig, lastConfig)\n\n if (!hasChanges && !configRefChanged) {\n if (activeConfigPipelines.get(widgetId) === currentExecution) {\n activeConfigPipelines.delete(widgetId)\n }\n return\n }\n\n // Apply the patch and store the pipeline output for next run's comparison\n set((state) => {\n const currentWidget = state.widgets[widgetId]\n if (!currentWidget) return state\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...currentWidget,\n ...patch,\n _lastConfig: transformedConfig,\n },\n },\n }\n })\n\n if (activeConfigPipelines.get(widgetId) === currentExecution) {\n activeConfigPipelines.delete(widgetId)\n }\n },\n}))\n\n/**\n * Stable references to store actions, accessible without creating a subscription.\n *\n * Use this instead of `useWidgetStore((state) => state.setWidget)` to avoid\n * unnecessary subscriber evaluations. Actions are stable functions that never\n * change, so subscribing to them wastes cycles on every store update.\n *\n * @example\n * ```tsx\n * import { widgetStoreActions } from '@carto/ps-react-ui/widgets'\n *\n * const { setWidget, registerTool } = widgetStoreActions\n *\n * useEffect(() => {\n * registerTool(id, { id: 'my-tool', order: 10, enabled: true, fn: (d) => d })\n * return () => widgetStoreActions.unregisterTool(id, 'my-tool')\n * }, [id])\n * ```\n */\nexport const widgetStoreActions: WidgetStoreActions = {\n get setWidget() {\n return useWidgetStore.getState().setWidget\n },\n get removeWidget() {\n return useWidgetStore.getState().removeWidget\n },\n get clearWidgets() {\n return useWidgetStore.getState().clearWidgets\n },\n get getWidget() {\n return useWidgetStore.getState().getWidget\n },\n get registerTool() {\n return useWidgetStore.getState().registerTool\n },\n get unregisterTool() {\n return useWidgetStore.getState().unregisterTool\n },\n get setToolEnabled() {\n return useWidgetStore.getState().setToolEnabled\n },\n get triggerToolPipeline() {\n return useWidgetStore.getState().triggerToolPipeline\n },\n get executeToolPipeline() {\n return useWidgetStore.getState().executeToolPipeline\n },\n get executeConfigPipeline() {\n return useWidgetStore.getState().executeConfigPipeline\n },\n} as WidgetStoreActions\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"category.js","names":["{\n value,\n maxValue,\n color,\n selected = true,\n}: CategoryBarProps","selected = true","selected\n ? { ...styles.barFill, width: `${percentage}%`, backgroundColor: color }\n : { ...styles.barFill, ...styles.barFillMuted, width: `${percentage}%` }","<Box sx={styles.bar}>\n <Box sx={barFillSx} />\n </Box>","{\n name,\n value,\n maxValue,\n color,\n formatter,\n labelFormatter,\n onClick,\n selected = true,\n}: CategoryRowSingleProps","selected = true","onClick\n ? () =>\n onClick({\n name,\n })\n : undefined","labelFormatter ? labelFormatter(name) : name","<Typography sx={styles.rowLabel}>\n {labelFormatter ? labelFormatter(name) : name}\n </Typography>","formatter(value)","<Typography sx={styles.rowValue}>{formatter(value)}</Typography>","<Box sx={styles.rowHeader}>\n <Typography sx={styles.rowLabel}>\n {labelFormatter ? labelFormatter(name) : name}\n </Typography>\n <Typography sx={styles.rowValue}>{formatter(value)}</Typography>\n </Box>","<CategoryBar\n value={value}\n maxValue={maxValue}\n color={color}\n selected={selected}\n />","<Box sx={rowStyle} onClick={handleClick}>\n <Box sx={styles.rowHeader}>\n <Typography sx={styles.rowLabel}>\n {labelFormatter ? labelFormatter(name) : name}\n </Typography>\n <Typography sx={styles.rowValue}>{formatter(value)}</Typography>\n </Box>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={color}\n selected={selected}\n />\n </Box>","{\n name,\n values,\n maxValue,\n colors,\n formatter,\n labelFormatter,\n onClick,\n selected = true,\n}: CategoryRowMultiProps","selected = true","onClick ? () => onClick({ name }) : undefined","labelFormatter ? labelFormatter(name) : name","<Typography sx={styles.rowLabel}>\n {labelFormatter ? labelFormatter(name) : name}\n </Typography>","values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))","colors.length","(value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n )","<Box sx={styles.barContainer}>\n {values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))}\n </Box>","<Box sx={rowStyle} onClick={handleClick}>\n <Typography sx={styles.rowLabel}>\n {labelFormatter ? labelFormatter(name) : name}\n </Typography>\n <Box sx={styles.barContainer}>\n {values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>","{\n hiddenCount,\n otherLabel = 'Other',\n otherCountLabel = '{count} more',\n}: CategoryRowOtherProps","otherLabel = 'Other'","otherCountLabel = '{count} more'","otherCountLabel.replace('{count}', String(hiddenCount))","<Typography sx={styles.otherLabel}>{otherLabel}</Typography>","<Typography sx={styles.otherCount}>({countText})</Typography>","<Box sx={styles.otherRow}>\n <Typography sx={styles.otherLabel}>{otherLabel}</Typography>\n <Typography sx={styles.otherCount}>({countText})</Typography>\n </Box>","{ series, colors }: CategoryLegendProps","series.map((item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n ))","colors.length","(item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n )","<Box sx={styles.legend}>\n {series.map((item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n ))}\n </Box>","{ id }: CategoryUIProps","(w) => {\n const cw = w as CategoryWidgetState | undefined\n return {\n _formatter: cw?.formatter,\n _labelFormatter: cw?.labelFormatter,\n _series: cw?.series,\n data: cw?.data,\n maxItems: cw?.maxItems,\n labels: cw?.labels,\n onRowClick: cw?.onRowClick,\n selected: cw?.selected,\n max: cw?.max,\n }\n }","_series ?? []","series.length > 0\n ? series.map(\n (s, index: number) =>\n s.color ??\n qualitativeColors[index % qualitativeColors.length] ??\n theme.palette.secondary.main,\n )\n : [theme.palette.secondary.main]","bold","secondary","series.length","Box","styles.list","{ maxHeight, overflow: hiddenCount === 0 ? 'auto' : 'hidden' }","isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n labelFormatter={labelFormatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0]!}\n formatter={formatter}\n labelFormatter={labelFormatter}\n onClick={onRowClick}\n />\n ))","ref","{\n ...styles.root,\n }","length","(item) => item.values","hiddenCount === 0 ? 'auto' : 'hidden'","item","hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )","other","otherCount","<Box\n sx={styles.list}\n style={{ maxHeight, overflow: hiddenCount === 0 ? 'auto' : 'hidden' }}\n >\n {isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n labelFormatter={labelFormatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0]!}\n formatter={formatter}\n labelFormatter={labelFormatter}\n onClick={onRowClick}\n />\n ))}\n {hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )}\n </Box>","series.length > 0 && <CategoryLegend series={series} colors={colors} />","<Box\n ref={ref}\n sx={{\n ...styles.root,\n }}\n >\n <Box\n sx={styles.list}\n style={{ maxHeight, overflow: hiddenCount === 0 ? 'auto' : 'hidden' }}\n >\n {isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n labelFormatter={labelFormatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0]!}\n formatter={formatter}\n labelFormatter={labelFormatter}\n onClick={onRowClick}\n />\n ))}\n {hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )}\n </Box>\n {series.length > 0 && <CategoryLegend series={series} colors={colors} />}\n </Box>","<Box sx={styles.list} aria-label='Category skeleton'>\n {Array.from({ length: 5 }).map((_, index) => (\n <Box key={index} sx={styles.row}>\n <Box sx={styles.rowHeader}>\n <Skeleton width={80} height={16} />\n <Skeleton width={40} height={16} />\n </Box>\n <Skeleton\n variant='rectangular'\n height={4}\n sx={{ borderRadius: 2, width: `${widthPatterns[index]}%` }}\n />\n </Box>\n ))}\n </Box>","(_, index) => (\n <Box key={index} sx={styles.row}>\n <Box sx={styles.rowHeader}>\n <Skeleton width={80} height={16} />\n <Skeleton width={40} height={16} />\n </Box>\n <Skeleton\n variant='rectangular'\n height={4}\n sx={{ borderRadius: 2, width: `${widthPatterns[index]}%` }}\n />\n </Box>\n )"],"sources":["../../src/widgets/category/style.ts","../../src/widgets/category/components/category-bar.tsx","../../src/widgets/category/components/category-row-single.tsx","../../src/widgets/category/components/category-row-multi.tsx","../../src/widgets/category/components/category-row-other.tsx","../../src/widgets/category/components/category-legend.tsx","../../src/widgets/category/category-ui.tsx","../../src/widgets/category/skeleton.tsx","../../src/widgets/category/config.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n width: '100%',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1),\n },\n row: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(0.5),\n pointerEvents: 'none',\n },\n rowClickable: {\n pointerEvents: 'auto',\n // display: 'flex',\n // flexDirection: 'column',\n // gap: (theme: Theme) => theme.spacing(0.5),\n // cursor: 'pointer',\n // borderRadius: 1,\n // padding: (theme: Theme) => theme.spacing(0.5),\n // margin: (theme: Theme) => theme.spacing(-0.5),\n // transition: 'background-color 0.15s ease-in-out',\n // '&:hover': {\n // backgroundColor: (theme: Theme) => theme.palette.action.hover,\n // },\n },\n rowHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n rowLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.primary',\n },\n rowValue: {\n typography: 'body2',\n color: 'text.secondary',\n },\n barContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n bar: {\n height: 4,\n borderRadius: 2,\n backgroundColor: (theme: Theme) => theme.palette.action.disabledBackground,\n overflow: 'hidden',\n position: 'relative',\n transition: 'background-color 0.15s ease-in-out',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n\n '& > div': {\n filter: 'brightness(1.2)',\n },\n },\n },\n barFill: {\n height: '100%',\n borderRadius: 2,\n transition: 'width 0.3s ease-in-out, background-color 0.15s ease-in-out',\n },\n barFillMuted: {\n backgroundColor: (theme: Theme) => theme.palette.action.disabled,\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(2),\n flexWrap: 'wrap',\n paddingTop: (theme: Theme) => theme.spacing(2),\n position: 'sticky',\n bottom: 0,\n backgroundColor: 'background.paper',\n borderTop: (theme: Theme) => `1px solid ${theme.palette.divider}`,\n marginTop: (theme: Theme) => theme.spacing(2),\n },\n legendItem: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n legendDot: {\n width: 8,\n height: 8,\n borderRadius: '50%',\n },\n legendLabel: {\n typography: 'caption',\n color: 'text.secondary',\n textTransform: 'uppercase',\n fontWeight: 'medium',\n },\n multiBarRow: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n multiBarValue: {\n typography: 'body2',\n color: 'text.secondary',\n minWidth: 48,\n textAlign: 'right',\n },\n multiBarContainer: {\n flex: 1,\n },\n otherRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n otherLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.secondary',\n fontStyle: 'italic',\n },\n otherCount: {\n typography: 'body2',\n color: 'text.disabled',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryBarProps {\n value: number\n maxValue: number\n color: string\n selected?: boolean\n}\n\n/**\n * Renders a single horizontal bar fill proportional to its value relative to the maximum.\n */\nexport function CategoryBar({\n value,\n maxValue,\n color,\n selected = true,\n}: CategoryBarProps) {\n const percentage = maxValue > 0 ? (value / maxValue) * 100 : 0\n\n const barFillSx = selected\n ? { ...styles.barFill, width: `${percentage}%`, backgroundColor: color }\n : { ...styles.barFill, ...styles.barFillMuted, width: `${percentage}%` }\n\n return (\n <Box sx={styles.bar}>\n <Box sx={barFillSx} />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowSingleProps {\n name: string\n value: number\n maxValue: number\n color: string\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n labelFormatter?: CategoryWidgetConfig['labelFormatter']\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\n/**\n * Renders a single-series category row with a label, formatted value, and proportional bar.\n */\nexport function CategoryRowSingle({\n name,\n value,\n maxValue,\n color,\n formatter,\n labelFormatter,\n onClick,\n selected = true,\n}: CategoryRowSingleProps) {\n const handleClick = onClick\n ? () =>\n onClick({\n name,\n })\n : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Box sx={styles.rowHeader}>\n <Typography sx={styles.rowLabel}>\n {labelFormatter ? labelFormatter(name) : name}\n </Typography>\n <Typography sx={styles.rowValue}>{formatter(value)}</Typography>\n </Box>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={color}\n selected={selected}\n />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowMultiProps {\n name: string\n values: number[]\n maxValue: number\n colors: string[]\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n labelFormatter?: CategoryWidgetConfig['labelFormatter']\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\n/**\n * Renders a multi-series category row with a label and multiple color-coded bars stacked vertically.\n */\nexport function CategoryRowMulti({\n name,\n values,\n maxValue,\n colors,\n formatter,\n labelFormatter,\n onClick,\n selected = true,\n}: CategoryRowMultiProps) {\n const handleClick = onClick ? () => onClick({ name }) : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Typography sx={styles.rowLabel}>\n {labelFormatter ? labelFormatter(name) : name}\n </Typography>\n <Box sx={styles.barContainer}>\n {values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryRowOtherProps {\n hiddenCount: number\n otherLabel?: string\n otherCountLabel?: string\n}\n\n/**\n * Renders an \"Other\" summary row indicating how many additional categories are hidden beyond `maxItems`.\n */\nexport function CategoryRowOther({\n hiddenCount,\n otherLabel = 'Other',\n otherCountLabel = '{count} more',\n}: CategoryRowOtherProps) {\n const countText = otherCountLabel.replace('{count}', String(hiddenCount))\n\n return (\n <Box sx={styles.otherRow}>\n <Typography sx={styles.otherLabel}>{otherLabel}</Typography>\n <Typography sx={styles.otherCount}>({countText})</Typography>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport type { CategorySeriesConfig } from '../types'\n\nexport interface CategoryLegendProps {\n series: CategorySeriesConfig[]\n colors: string[]\n}\n\n/**\n * Renders a color-coded legend for multi-series category widgets.\n */\nexport function CategoryLegend({ series, colors }: CategoryLegendProps) {\n if (series.length === 0) {\n return null\n }\n\n return (\n <Box sx={styles.legend}>\n {series.map((item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n ))}\n </Box>\n )\n}\n","import { Box, useTheme } from '@mui/material'\nimport { useWidgetSelector } from '../stores/use-widget-selector'\nimport { styles } from './style'\nimport type { CategoryUIProps, CategoryWidgetState } from './types'\nimport { CategoryRowSingle } from './components/category-row-single'\nimport { CategoryRowMulti } from './components/category-row-multi'\nimport { CategoryRowOther } from './components/category-row-other'\nimport { CategoryLegend } from './components/category-legend'\nimport { useState } from 'react'\nimport { defaultFormatter, defaultLabelFormatter } from '../utils/formatter'\nimport { useWidgetRef } from '../../hooks'\n\n/**\n * Renders a category widget displaying horizontal bars for categorical data with support for single and multi-series layouts, selection, and overflow grouping.\n */\nexport function CategoryUI({ id }: CategoryUIProps) {\n const { ref } = useWidgetRef<HTMLDivElement>(id)\n const theme = useTheme()\n\n // Single consolidated subscription instead of 9 separate ones.\n const {\n _formatter,\n _labelFormatter,\n _series,\n data,\n maxItems,\n labels,\n onRowClick,\n selected,\n max,\n } = useWidgetSelector(id, (w) => {\n const cw = w as CategoryWidgetState | undefined\n return {\n _formatter: cw?.formatter,\n _labelFormatter: cw?.labelFormatter,\n _series: cw?.series,\n data: cw?.data,\n maxItems: cw?.maxItems,\n labels: cw?.labels,\n onRowClick: cw?.onRowClick,\n selected: cw?.selected,\n max: cw?.max,\n }\n })\n\n const formatter = _formatter ?? defaultFormatter\n const labelFormatter = _labelFormatter ?? defaultLabelFormatter\n const series = _series ?? []\n\n const [maxHeight] = useState<string | number | undefined>(\n maxItems ? 40 * (series.length || 1) * maxItems : undefined,\n )\n\n const qualitativeColors = Object.values(theme.palette.qualitative.bold)\n\n const colors =\n series.length > 0\n ? series.map(\n (s, index: number) =>\n s.color ??\n qualitativeColors[index % qualitativeColors.length] ??\n theme.palette.secondary.main,\n )\n : [theme.palette.secondary.main]\n\n // Group data items by name to support multi-series display\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const groupedData = generateGroupedData({ data })\n\n if (groupedData.length === 0) {\n return null\n }\n\n const maxValue =\n max ?? Math.max(...groupedData.flatMap((item) => item.values))\n\n // Slice data to maxItems and compute hidden count\n const visibleData =\n maxItems !== undefined && maxItems >= 0\n ? groupedData.slice(0, maxItems)\n : groupedData\n\n const hiddenCount = groupedData.length - visibleData.length\n const isMulti = series.length > 1\n\n return (\n <Box\n ref={ref}\n sx={{\n ...styles.root,\n }}\n >\n <Box\n sx={styles.list}\n style={{ maxHeight, overflow: hiddenCount === 0 ? 'auto' : 'hidden' }}\n >\n {isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n labelFormatter={labelFormatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0]!}\n formatter={formatter}\n labelFormatter={labelFormatter}\n onClick={onRowClick}\n />\n ))}\n {hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )}\n </Box>\n {series.length > 0 && <CategoryLegend series={series} colors={colors} />}\n </Box>\n )\n}\n\nfunction generateGroupedData({\n data,\n}: {\n data: { name: string; value: number }[][] | undefined\n}) {\n if (!data || data.length === 0) return []\n\n const seriesCount = Math.max(data.length, 1)\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < data.length; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n return nameOrder.map((name) => ({\n name,\n values: grouped.get(name)!,\n }))\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst widthPatterns = [85, 70, 55, 75, 60]\n\nexport function CategorySkeleton() {\n return (\n <Box sx={styles.list} aria-label='Category skeleton'>\n {Array.from({ length: 5 }).map((_, index) => (\n <Box key={index} sx={styles.row}>\n <Box sx={styles.rowHeader}>\n <Skeleton width={80} height={16} />\n <Skeleton width={40} height={16} />\n </Box>\n <Skeleton\n variant='rectangular'\n height={4}\n sx={{ borderRadius: 2, width: `${widthPatterns[index]}%` }}\n />\n </Box>\n ))}\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type {\n CategoryWidgetConfig,\n CategoryWidgetData,\n CategorySeriesConfig,\n} from './types'\n\ninterface CategoryDownloadConfigProps extends ConfigProps {\n series?: CategorySeriesConfig[]\n}\n\n/**\n * Creates download configuration for category widgets, supporting PNG (screenshot) and CSV (data) exports. CSV output groups values by category across multiple series.\n *\n * @param props - Configuration with `refUI` reference and optional `series` for CSV column headers.\n * @returns Array of download items for use with the Download action.\n */\nexport function categoryDownloadConfig({\n refUI,\n series,\n}: CategoryDownloadConfigProps): DownloadItem<CategoryWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n if (!data?.length || data[0]?.length === 0) {\n return downloadToCSV.modifier([])\n }\n\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const seriesCount = data.length\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n // Build rows\n const rows = nameOrder.map((name) => [name, ...grouped.get(name)!])\n\n const isMulti = seriesCount > 1\n const headers = isMulti\n ? [\n 'Category',\n ...(series?.map((s: CategorySeriesConfig) => s.name) ??\n Array.from(\n { length: seriesCount },\n (_, i) => `Series ${i + 1}`,\n )),\n ]\n : ['Category', 'Value']\n\n return downloadToCSV.modifier([headers, ...rows])\n },\n },\n ]\n}\n\n/**\n * Returns the default configuration for category list widgets, including empty series and a default `maxItems` of 10.\n *\n * @returns Default category widget config.\n */\nexport function categoryConfig(): CategoryWidgetConfig {\n return {\n series: [],\n maxItems: 10,\n max: undefined,\n }\n}\n"],"mappings":"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"}
|
package/dist/widgets/error.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { t as e } from "../use-widget-selector-VSPhfhNm.js";
|
|
2
|
-
import { c as t } from "react/compiler-runtime";
|
|
3
|
-
import { Alert as n, AlertTitle as r } from "@mui/material";
|
|
4
|
-
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
5
|
-
//#region src/widgets/error/error.tsx
|
|
6
|
-
function o(o) {
|
|
7
|
-
let c = t(5), { id: l, children: u, title: d, description: f } = o, { isLoading: p, isFetching: m, error: h } = e(l, s);
|
|
8
|
-
if (p || m) return u;
|
|
9
|
-
if (h) {
|
|
10
|
-
let e = d ?? h.title ?? "Error", t = f ?? h.message ?? "An error occurred while loading the widget. Please try again.", o;
|
|
11
|
-
c[0] === e ? o = c[1] : (o = /* @__PURE__ */ i(r, { children: e }), c[0] = e, c[1] = o);
|
|
12
|
-
let s;
|
|
13
|
-
return c[2] !== t || c[3] !== o ? (s = /* @__PURE__ */ a(n, {
|
|
14
|
-
severity: "error",
|
|
15
|
-
children: [o, t]
|
|
16
|
-
}), c[2] = t, c[3] = o, c[4] = s) : s = c[4], s;
|
|
17
|
-
}
|
|
18
|
-
return u;
|
|
19
|
-
}
|
|
20
|
-
function s(e) {
|
|
21
|
-
return {
|
|
22
|
-
isLoading: e?.isLoading,
|
|
23
|
-
isFetching: e?.isFetching,
|
|
24
|
-
error: e?.error
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
//#endregion
|
|
28
|
-
export { o as WidgetError };
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","names":["{\n id,\n children,\n title: titleProp,\n description,\n}: WidgetErrorProps","(w) => ({\n isLoading: w?.isLoading,\n isFetching: w?.isFetching,\n error: w?.error,\n })","<AlertTitle>{errorTitle}</AlertTitle>","<Alert severity='error'>\n <AlertTitle>{errorTitle}</AlertTitle>\n {errorMessage}\n </Alert>"],"sources":["../../src/widgets/error/error.tsx"],"sourcesContent":["import { Alert, AlertTitle } from '@mui/material'\nimport { useWidgetSelector } from '../stores/use-widget-selector'\nimport type { WidgetErrorProps } from './types'\n\n/**\n * Displays an error alert when a widget encounters an error during data loading. Reads error state from the widget store and hides errors during loading/fetching to prevent flashing.\n *\n * @example\n * ```tsx\n * <WidgetError id=\"my-widget\">\n * <WidgetContent />\n * </WidgetError>\n * ```\n */\nexport function WidgetError({\n id,\n children,\n title: titleProp,\n description,\n}: WidgetErrorProps) {\n // Single consolidated subscription instead of 3 separate ones.\n const { isLoading, isFetching, error } = useWidgetSelector(id, (w) => ({\n isLoading: w?.isLoading,\n isFetching: w?.isFetching,\n error: w?.error,\n }))\n\n // Don't show error during loading/fetching states\n if (isLoading || isFetching) {\n return children\n }\n\n // Show error UI if error exists\n if (error) {\n const errorTitle = titleProp ?? error.title ?? 'Error'\n const errorMessage =\n description ??\n error.message ??\n 'An error occurred while loading the widget. Please try again.'\n\n return (\n <Alert severity='error'>\n <AlertTitle>{errorTitle}</AlertTitle>\n {errorMessage}\n </Alert>\n )\n }\n\n // No error, render children\n return children\n}\n"],"mappings":";;;;;AAcA,SAAgB,EAAA,GAKK;eALO,EAC1B,OACA,aACA,OAAO,GACP,mBAJ0BA,GAOpB,EAAE,cAAW,eAAY,aAAU,EAAkB,GAAIC,CAI7D;CAGF,IAAI,KAAa,GACf,OAAO;CAIT,IAAI,GAAO;EACT,IAAM,IAAa,KAAa,EAAM,SAAS,SACzC,IACJ,KACA,EAAM,WACN,iEAIEC;EAAa,AAAA,EAAA,OAAA,gBAAb,IAAA,kBAAC,GAAD,EAAA,UAAa,EAAuB,CAAA,GAAvB,EAAA,KAAA;EADfC,IAAAA;EADF,OAGK,EAAA,OAAA,KAAA,EAAA,OADDD,KADF,IAAA,kBAAC,GAAD;GAAO,UAAS;GAAhB,UAAA,CACEA,GACC,CACI;MADJ,EAAA,KAAA,GADDA,EAAAA,KAAAA,yBADFC;CAKJ;CAGA,OAAO;AACT;AA7BiE,SAAA,EAAC,GAAA;CAAO,OAAA;EACrE,WAAW,GAAG;EACd,YAAY,GAAG;EACf,OAAO,GAAG;CACZ"}
|