@carto/ps-react-ui 4.19.0 → 4.20.1
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-DKX98LlI.js +1318 -0
- package/dist/actions-DKX98LlI.js.map +1 -0
- package/dist/actions-Dy9JVr7F.js +1004 -0
- package/dist/actions-Dy9JVr7F.js.map +1 -0
- package/dist/category-DHZscHaS.js +826 -0
- package/dist/category-DHZscHaS.js.map +1 -0
- package/dist/chart-config-BGt7wkK7.js +108 -0
- package/dist/chart-config-BGt7wkK7.js.map +1 -0
- package/dist/chat.js +1589 -1711
- package/dist/chat.js.map +1 -1
- package/dist/cjs-CBrZjPCj.js +75 -0
- package/dist/cjs-CBrZjPCj.js.map +1 -0
- package/dist/components-DDt4mOQn.js +2403 -0
- package/dist/components-DDt4mOQn.js.map +1 -0
- package/dist/components.js +5 -1841
- package/dist/copy-button-DaQqWVu0.js +25 -0
- package/dist/copy-button-DaQqWVu0.js.map +1 -0
- package/dist/csv-modifiers-D6HGC24b.js +26 -0
- package/dist/csv-modifiers-D6HGC24b.js.map +1 -0
- package/dist/download-BT6qBamM.js +232 -0
- package/dist/download-BT6qBamM.js.map +1 -0
- package/dist/echart-BkaV3V5G.js +133 -0
- package/dist/echart-BkaV3V5G.js.map +1 -0
- package/dist/echart-DSz2Tu0z.js +250 -0
- package/dist/echart-DSz2Tu0z.js.map +1 -0
- package/dist/formatter-wVO81tYk.js +6 -0
- package/dist/formatter-wVO81tYk.js.map +1 -0
- package/dist/formula-Bk9CBzm2.js +190 -0
- package/dist/formula-Bk9CBzm2.js.map +1 -0
- package/dist/formula-Dsru_p-g.js +285 -0
- package/dist/formula-Dsru_p-g.js.map +1 -0
- package/dist/hooks-zf5gKZYq.js +22 -0
- package/dist/hooks-zf5gKZYq.js.map +1 -0
- package/dist/legend/stores.js +2 -24
- package/dist/legend.js +2274 -2323
- package/dist/legend.js.map +1 -1
- package/dist/markdown-DnSJMPjQ.js +165 -0
- package/dist/markdown-DnSJMPjQ.js.map +1 -0
- package/dist/markdown-content-BzKoX3eu.js +8764 -0
- package/dist/markdown-content-BzKoX3eu.js.map +1 -0
- package/dist/range-BPWVrAsY.js +277 -0
- package/dist/range-BPWVrAsY.js.map +1 -0
- package/dist/rolldown-runtime-B0aSnxlc.js +20 -0
- package/dist/row-CvVGBuy_.js +35 -0
- package/dist/row-CvVGBuy_.js.map +1 -0
- package/dist/shared-resize-observer-BEiP2rQt.js +157 -0
- package/dist/shared-resize-observer-BEiP2rQt.js.map +1 -0
- package/dist/smart-tooltip-CwGHCqab.js +34 -0
- package/dist/smart-tooltip-CwGHCqab.js.map +1 -0
- package/dist/spread-Dy8pshpN.js +149 -0
- package/dist/spread-Dy8pshpN.js.map +1 -0
- package/dist/stores-B81-IU1G.js +374 -0
- package/dist/stores-B81-IU1G.js.map +1 -0
- package/dist/stores-BVFMfgyo.js +248 -0
- package/dist/stores-BVFMfgyo.js.map +1 -0
- package/dist/styles-Y-qGBELO.js +13 -0
- package/dist/styles-Y-qGBELO.js.map +1 -0
- package/dist/table-BfTG6rrs.js +439 -0
- package/dist/table-BfTG6rrs.js.map +1 -0
- package/dist/tooltip-DJUGNZxY.js +23 -0
- package/dist/tooltip-DJUGNZxY.js.map +1 -0
- package/dist/types/chat/bubbles/chat-agent-message-markdown.d.ts +1 -1
- package/dist/types/chat/bubbles/chat-error-message.d.ts +1 -1
- package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +1 -1
- package/dist/types/chat/bubbles/chat-user-message.d.ts +1 -1
- package/dist/types/chat/containers/chat-footer.d.ts +1 -1
- package/dist/types/chat/containers/chat-header.d.ts +1 -1
- package/dist/types/chat/containers/chat-starter.d.ts +1 -1
- package/dist/types/chat/feedback/chat-loader.d.ts +1 -1
- package/dist/types/chat/feedback/chat-rating-action.d.ts +1 -1
- package/dist/types/chat/feedback/chat-thinking.d.ts +1 -1
- package/dist/types/chat/feedback/chat-tool-code-area.d.ts +1 -1
- package/dist/types/chat/feedback/chat-tool-full-view-dialog.d.ts +1 -1
- package/dist/types/chat/feedback/chat-tool-group.d.ts +1 -1
- package/dist/types/chat/feedback/chat-tool-trace.d.ts +2 -2
- package/dist/types/components/basemaps/group-wrapper.d.ts +1 -1
- package/dist/types/components/basemaps/group.d.ts +1 -1
- package/dist/types/components/basemaps/header.d.ts +1 -1
- package/dist/types/components/copy-button/copy-button.d.ts +1 -1
- package/dist/types/components/lasso-tool/chip.d.ts +1 -1
- package/dist/types/components/lasso-tool/icons.d.ts +7 -7
- package/dist/types/components/lasso-tool/lasso-tool.d.ts +4 -4
- package/dist/types/components/lasso-tool/message.d.ts +1 -1
- package/dist/types/components/list-data/list-data-skeleton.d.ts +1 -1
- package/dist/types/components/measurement-tools/icons.d.ts +3 -3
- package/dist/types/components/no-data-alert/no-data-alert.d.ts +1 -1
- package/dist/types/components/responsive-drawer/responsive-drawer.d.ts +1 -1
- package/dist/types/components/smart-tooltip/smart-tooltip.d.ts +1 -1
- package/dist/types/components/tooltip/tooltip.d.ts +1 -1
- package/dist/types/hooks/use-widget-ref.d.ts +2 -1
- package/dist/types/legend/components/legend-actions/legend-actions.d.ts +1 -1
- package/dist/types/legend/components/legend-category/legend-category-ui.d.ts +1 -1
- package/dist/types/legend/components/legend-config-select/legend-config-select.d.ts +1 -1
- package/dist/types/legend/components/legend-group/legend-group.d.ts +1 -1
- package/dist/types/legend/components/legend-group-menu/legend-group-menu-items.d.ts +4 -4
- package/dist/types/legend/components/legend-group-menu/legend-group-menu.d.ts +1 -1
- package/dist/types/legend/components/legend-icon/legend-icon-ui.d.ts +1 -1
- package/dist/types/legend/components/legend-item/legend-item-ui.d.ts +1 -1
- package/dist/types/legend/components/legend-item/legend-item.d.ts +1 -1
- package/dist/types/legend/components/legend-opacity/legend-opacity.d.ts +2 -2
- package/dist/types/legend/components/legend-overflow-menu/legend-overflow-menu.d.ts +1 -1
- package/dist/types/legend/components/legend-panel-menu/legend-panel-menu.d.ts +1 -1
- package/dist/types/legend/components/legend-proportion/legend-proportion-ui.d.ts +1 -1
- package/dist/types/legend/components/legend-ramp/legend-ramp-ui.d.ts +1 -1
- package/dist/types/legend/components/legend-row/legend-row.d.ts +1 -1
- package/dist/types/legend/components/legend-row-menu/legend-row-menu-items.d.ts +2 -2
- package/dist/types/legend/components/legend-row-menu/legend-row-menu.d.ts +1 -1
- package/dist/types/legend/components/legend-row-menu/legend-zoom-to.d.ts +1 -1
- package/dist/types/legend/components/legend-sortable/legend-sortable.d.ts +1 -1
- package/dist/types/legend/components/legend-swatch/legend-swatch.d.ts +1 -1
- package/dist/types/legend/components/legend-visibility-toggle/legend-visibility-toggle.d.ts +1 -1
- package/dist/types/legend/components/legend-visible-layers/legend-visible-layers.d.ts +1 -1
- package/dist/types/legend/index.d.ts +2 -2
- package/dist/types/legend/provider/legend-provider.d.ts +1 -1
- package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +1 -1
- package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -1
- package/dist/types/widgets/actions/change-column/change-column.d.ts +1 -1
- package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +1 -1
- package/dist/types/widgets/actions/download/download.d.ts +1 -1
- package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
- package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +1 -1
- package/dist/types/widgets/actions/relative-data/relative-data.d.ts +1 -1
- package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +1 -1
- package/dist/types/widgets/actions/searcher/searcher.d.ts +1 -1
- package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -1
- package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +1 -1
- package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +1 -1
- package/dist/types/widgets/bar/skeleton.d.ts +1 -1
- package/dist/types/widgets/category/category-ui.d.ts +1 -1
- package/dist/types/widgets/category/components/category-bar.d.ts +1 -1
- package/dist/types/widgets/category/components/category-legend.d.ts +1 -1
- package/dist/types/widgets/category/components/category-row-multi.d.ts +1 -1
- package/dist/types/widgets/category/components/category-row-other.d.ts +1 -1
- package/dist/types/widgets/category/components/category-row-single.d.ts +1 -1
- package/dist/types/widgets/category/skeleton.d.ts +1 -1
- package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
- package/dist/types/widgets/echart/echart.d.ts +1 -1
- package/dist/types/widgets/error/error.d.ts +1 -1
- package/dist/types/widgets/formula/components/item.d.ts +1 -1
- package/dist/types/widgets/formula/components/prefix.d.ts +1 -1
- package/dist/types/widgets/formula/components/row.d.ts +1 -1
- package/dist/types/widgets/formula/components/series.d.ts +1 -1
- package/dist/types/widgets/formula/components/suffix.d.ts +1 -1
- package/dist/types/widgets/formula/components/value.d.ts +1 -1
- package/dist/types/widgets/formula/formula-ui.d.ts +1 -1
- package/dist/types/widgets/formula/skeleton.d.ts +1 -1
- package/dist/types/widgets/histogram/skeleton.d.ts +1 -1
- package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
- package/dist/types/widgets/markdown/markdown.d.ts +1 -1
- package/dist/types/widgets/markdown/skeleton.d.ts +1 -1
- package/dist/types/widgets/no-data/no-data.d.ts +1 -1
- package/dist/types/widgets/note/note.d.ts +1 -1
- package/dist/types/widgets/pie/skeleton.d.ts +1 -1
- package/dist/types/widgets/range/components/range-item.d.ts +1 -1
- package/dist/types/widgets/range/range-ui.d.ts +1 -1
- package/dist/types/widgets/range/skeleton.d.ts +1 -1
- package/dist/types/widgets/scatterplot/skeleton.d.ts +1 -1
- package/dist/types/widgets/selection-summary/selection-summary.d.ts +1 -1
- package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +1 -1
- package/dist/types/widgets/spread/components/max-value.d.ts +1 -1
- package/dist/types/widgets/spread/components/min-value.d.ts +1 -1
- package/dist/types/widgets/spread/components/separator.d.ts +1 -1
- package/dist/types/widgets/spread/skeleton.d.ts +1 -1
- package/dist/types/widgets/spread/spread-ui.d.ts +1 -1
- package/dist/types/widgets/subheader/subheader.d.ts +1 -1
- package/dist/types/widgets/table/components/cell-header.d.ts +1 -1
- package/dist/types/widgets/table/components/cell.d.ts +1 -1
- package/dist/types/widgets/table/components/pagination-actions.d.ts +1 -1
- package/dist/types/widgets/table/components/pagination.d.ts +1 -1
- package/dist/types/widgets/table/components/row.d.ts +1 -1
- package/dist/types/widgets/table/skeleton.d.ts +1 -1
- package/dist/types/widgets/table/table-ui.d.ts +2 -2
- package/dist/types/widgets/timeseries/skeleton.d.ts +1 -1
- package/dist/types/widgets/wrapper/components/actions.d.ts +1 -1
- package/dist/types/widgets/wrapper/components/options.d.ts +1 -1
- package/dist/types/widgets/wrapper/components/title.d.ts +1 -1
- package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
- package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
- package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +1 -1
- package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +1 -1
- package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +1 -1
- package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +1 -1
- package/dist/types/widgets-v2/actions/download/download.d.ts +1 -1
- package/dist/types/widgets-v2/actions/download/icons.d.ts +3 -3
- package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +2 -2
- package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +1 -1
- package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +1 -1
- package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +1 -1
- package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +1 -1
- package/dist/types/widgets-v2/actions/show-all/show-all.d.ts +1 -1
- package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +1 -1
- package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +1 -1
- package/dist/types/widgets-v2/bar/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/category/category-ui.d.ts +1 -1
- package/dist/types/widgets-v2/category/category.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-bar-stacked.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-bar.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-legend.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-row-other.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-row-single.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-row-stacked.d.ts +1 -1
- package/dist/types/widgets-v2/category/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/echart/echart-ui.d.ts +1 -1
- package/dist/types/widgets-v2/echart/echart.d.ts +1 -1
- package/dist/types/widgets-v2/formula/delta.d.ts +1 -1
- package/dist/types/widgets-v2/formula/formula-ui.d.ts +1 -1
- package/dist/types/widgets-v2/formula/formula.d.ts +1 -1
- package/dist/types/widgets-v2/formula/note.d.ts +1 -1
- package/dist/types/widgets-v2/formula/prefix.d.ts +1 -1
- package/dist/types/widgets-v2/formula/series.d.ts +1 -1
- package/dist/types/widgets-v2/formula/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/formula/suffix.d.ts +1 -1
- package/dist/types/widgets-v2/formula/value.d.ts +1 -1
- package/dist/types/widgets-v2/histogram/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/index.d.ts +5 -5
- package/dist/types/widgets-v2/markdown/markdown-content.d.ts +1 -1
- package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +1 -1
- package/dist/types/widgets-v2/markdown/markdown.d.ts +1 -1
- package/dist/types/widgets-v2/markdown/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/note/widget-note.d.ts +2 -2
- package/dist/types/widgets-v2/pie/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/provider/widget-provider.d.ts +1 -1
- package/dist/types/widgets-v2/range/range-ui.d.ts +1 -1
- package/dist/types/widgets-v2/range/range.d.ts +1 -1
- package/dist/types/widgets-v2/range/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +1 -1
- package/dist/types/widgets-v2/spread/band.d.ts +37 -0
- package/dist/types/widgets-v2/spread/band.test.d.ts +1 -0
- package/dist/types/widgets-v2/spread/index.d.ts +1 -0
- package/dist/types/widgets-v2/spread/separator.d.ts +1 -1
- package/dist/types/widgets-v2/spread/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/spread/spread-ui.d.ts +1 -1
- package/dist/types/widgets-v2/spread/spread.d.ts +1 -1
- package/dist/types/widgets-v2/state/widget-state.d.ts +1 -1
- package/dist/types/widgets-v2/subheader/subheader.d.ts +1 -1
- package/dist/types/widgets-v2/table/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/table/table-ui.d.ts +1 -1
- package/dist/types/widgets-v2/table/table.d.ts +1 -1
- package/dist/types/widgets-v2/timeseries/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/toolbox/toolbox.d.ts +1 -1
- package/dist/types/widgets-v2/wrapper/widget-actions.d.ts +2 -2
- package/dist/types/widgets-v2/wrapper/widget-content.d.ts +2 -2
- package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +1 -1
- package/dist/use-widget-selector-VSPhfhNm.js +12 -0
- package/dist/{use-widget-selector-DFl2hW0R.js.map → use-widget-selector-VSPhfhNm.js.map} +1 -1
- package/dist/utils-DtvTjjMq.js +58 -0
- package/dist/utils-DtvTjjMq.js.map +1 -0
- package/dist/widget-store-BFPKYm4R.js +187 -0
- package/dist/widget-store-BFPKYm4R.js.map +1 -0
- package/dist/widgets/actions.js +2 -1317
- package/dist/widgets/bar.js +183 -175
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/category.js +429 -434
- package/dist/widgets/category.js.map +1 -1
- package/dist/widgets/echart.js +3 -120
- package/dist/widgets/error.js +28 -38
- package/dist/widgets/error.js.map +1 -1
- package/dist/widgets/formula.js +3 -123
- package/dist/widgets/histogram.js +183 -202
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/loader.js +63 -61
- package/dist/widgets/loader.js.map +1 -1
- package/dist/widgets/markdown.js +141 -123
- package/dist/widgets/markdown.js.map +1 -1
- package/dist/widgets/no-data.js +52 -58
- package/dist/widgets/no-data.js.map +1 -1
- package/dist/widgets/note.js +125 -122
- package/dist/widgets/note.js.map +1 -1
- package/dist/widgets/pie.js +245 -259
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/range.js +225 -204
- package/dist/widgets/range.js.map +1 -1
- package/dist/widgets/scatterplot.js +220 -215
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/selection-summary.js +39 -38
- package/dist/widgets/selection-summary.js.map +1 -1
- package/dist/widgets/skeleton-loader.js +22 -23
- package/dist/widgets/skeleton-loader.js.map +1 -1
- package/dist/widgets/spread.js +150 -156
- package/dist/widgets/spread.js.map +1 -1
- package/dist/widgets/stores.js +3 -8
- package/dist/widgets/subheader.js +49 -50
- package/dist/widgets/subheader.js.map +1 -1
- package/dist/widgets/table.js +576 -644
- package/dist/widgets/table.js.map +1 -1
- package/dist/widgets/timeseries.js +175 -170
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/toolbar-actions.js +140 -145
- package/dist/widgets/toolbar-actions.js.map +1 -1
- package/dist/widgets/utils.js +17 -33
- package/dist/widgets/utils.js.map +1 -1
- package/dist/widgets/wrapper.js +265 -276
- package/dist/widgets/wrapper.js.map +1 -1
- package/dist/widgets-v2/actions.js +4 -51
- package/dist/widgets-v2/bar.js +253 -307
- package/dist/widgets-v2/bar.js.map +1 -1
- package/dist/widgets-v2/category.js +2 -98
- package/dist/widgets-v2/echart.js +2 -57
- package/dist/widgets-v2/formula.js +2 -68
- package/dist/widgets-v2/histogram.js +285 -350
- package/dist/widgets-v2/histogram.js.map +1 -1
- package/dist/widgets-v2/markdown.js +3 -69
- package/dist/widgets-v2/pie.js +363 -461
- package/dist/widgets-v2/pie.js.map +1 -1
- package/dist/widgets-v2/range.js +2 -52
- package/dist/widgets-v2/scatterplot.js +316 -391
- package/dist/widgets-v2/scatterplot.js.map +1 -1
- package/dist/widgets-v2/spread.js +2 -66
- package/dist/widgets-v2/stores.js +2 -42
- package/dist/widgets-v2/table.js +2 -78
- package/dist/widgets-v2/timeseries.js +285 -340
- package/dist/widgets-v2/timeseries.js.map +1 -1
- package/dist/widgets-v2/utils.js +2 -8
- package/dist/widgets-v2.js +955 -951
- package/dist/widgets-v2.js.map +1 -1
- package/dist/zoom-toggle-CA0ifG23.js +164 -0
- package/dist/zoom-toggle-CA0ifG23.js.map +1 -0
- package/package.json +4 -4
- package/src/hooks/use-widget-ref.ts +1 -0
- package/src/widgets-v2/index.ts +6 -1
- package/src/widgets-v2/spread/band.test.ts +46 -0
- package/src/widgets-v2/spread/band.ts +47 -0
- package/src/widgets-v2/spread/index.ts +1 -0
- package/dist/category-Ct2BzADB.js +0 -753
- package/dist/category-Ct2BzADB.js.map +0 -1
- package/dist/change-column-Fu1DCYQ3.js +0 -1186
- package/dist/change-column-Fu1DCYQ3.js.map +0 -1
- package/dist/cjs-D4KH3azB.js +0 -85
- package/dist/cjs-D4KH3azB.js.map +0 -1
- package/dist/components.js.map +0 -1
- package/dist/copy-button-DGL1tyli.js +0 -26
- package/dist/copy-button-DGL1tyli.js.map +0 -1
- package/dist/csv-item-hH_Gt7ur.js +0 -32
- package/dist/csv-item-hH_Gt7ur.js.map +0 -1
- package/dist/data-zoom-layout-D_FYdnap.js +0 -28
- package/dist/data-zoom-layout-D_FYdnap.js.map +0 -1
- package/dist/download-config-OKlLLSW_.js +0 -58
- package/dist/download-config-OKlLLSW_.js.map +0 -1
- package/dist/echart-B10dhEaM.js +0 -262
- package/dist/echart-B10dhEaM.js.map +0 -1
- package/dist/exports-Cr43OCul.js +0 -51
- package/dist/exports-Cr43OCul.js.map +0 -1
- package/dist/exports-Cx-f6m6U.js +0 -63
- package/dist/exports-Cx-f6m6U.js.map +0 -1
- package/dist/formatter-B9Bxn1k7.js +0 -6
- package/dist/formatter-B9Bxn1k7.js.map +0 -1
- package/dist/formula-DuC0NQLH.js +0 -79
- package/dist/formula-DuC0NQLH.js.map +0 -1
- package/dist/lasso-tool-YLFRgb-S.js +0 -582
- package/dist/lasso-tool-YLFRgb-S.js.map +0 -1
- package/dist/legend/stores.js.map +0 -1
- package/dist/legend-store-registry-p1tSwJXH.js +0 -472
- package/dist/legend-store-registry-p1tSwJXH.js.map +0 -1
- package/dist/markdown-DdqANCiN.js +0 -102
- package/dist/markdown-DdqANCiN.js.map +0 -1
- package/dist/markdown-content-Dk2DSgbf.js +0 -10287
- package/dist/markdown-content-Dk2DSgbf.js.map +0 -1
- package/dist/option-builders-DPeoyQaM.js +0 -130
- package/dist/option-builders-DPeoyQaM.js.map +0 -1
- package/dist/options-CthfUJDz.js +0 -46
- package/dist/options-CthfUJDz.js.map +0 -1
- package/dist/png-item-9dNbB37T.js +0 -57
- package/dist/png-item-9dNbB37T.js.map +0 -1
- package/dist/range-l4fNHLEg.js +0 -213
- package/dist/range-l4fNHLEg.js.map +0 -1
- package/dist/resolve-theme-color-BdojIw0K.js +0 -47
- package/dist/resolve-theme-color-BdojIw0K.js.map +0 -1
- package/dist/row-DZSP99LW.js +0 -34
- package/dist/row-DZSP99LW.js.map +0 -1
- package/dist/series-DLNHDWs0.js +0 -90
- package/dist/series-DLNHDWs0.js.map +0 -1
- package/dist/shared-resize-observer-98b1SK1e.js +0 -17
- package/dist/shared-resize-observer-98b1SK1e.js.map +0 -1
- package/dist/smart-tooltip-DFV6GD8R.js +0 -40
- package/dist/smart-tooltip-DFV6GD8R.js.map +0 -1
- package/dist/spread-4MYPOntd.js +0 -66
- package/dist/spread-4MYPOntd.js.map +0 -1
- package/dist/style-DVnT6HC1.js +0 -131
- package/dist/style-DVnT6HC1.js.map +0 -1
- package/dist/styles-cohnxh9F.js +0 -23
- package/dist/styles-cohnxh9F.js.map +0 -1
- package/dist/table-CTcLOycx.js +0 -383
- package/dist/table-CTcLOycx.js.map +0 -1
- package/dist/tooltip-BDnrRKrp.js +0 -25
- package/dist/tooltip-BDnrRKrp.js.map +0 -1
- package/dist/transforms-Cdx4fkU5.js +0 -106
- package/dist/transforms-Cdx4fkU5.js.map +0 -1
- package/dist/use-transform-DXPN3nY7.js +0 -110
- package/dist/use-transform-DXPN3nY7.js.map +0 -1
- package/dist/use-widget-ref-Ddr_SlJJ.js +0 -22
- package/dist/use-widget-ref-Ddr_SlJJ.js.map +0 -1
- package/dist/use-widget-selector-DFl2hW0R.js +0 -12
- package/dist/utils-BOhInag6.js +0 -170
- package/dist/utils-BOhInag6.js.map +0 -1
- package/dist/widget-context-DTGO0Yta.js +0 -13
- package/dist/widget-context-DTGO0Yta.js.map +0 -1
- package/dist/widget-store-Bw5zRUGg.js +0 -261
- package/dist/widget-store-Bw5zRUGg.js.map +0 -1
- package/dist/widget-store-registry-_W4Z4xp-.js +0 -178
- package/dist/widget-store-registry-_W4Z4xp-.js.map +0 -1
- package/dist/widgets/actions.js.map +0 -1
- package/dist/widgets/echart.js.map +0 -1
- package/dist/widgets/formula.js.map +0 -1
- package/dist/widgets/stores.js.map +0 -1
- package/dist/widgets-v2/actions.js.map +0 -1
- package/dist/widgets-v2/category.js.map +0 -1
- package/dist/widgets-v2/echart.js.map +0 -1
- package/dist/widgets-v2/formula.js.map +0 -1
- package/dist/widgets-v2/markdown.js.map +0 -1
- package/dist/widgets-v2/range.js.map +0 -1
- package/dist/widgets-v2/spread.js.map +0 -1
- package/dist/widgets-v2/stores.js.map +0 -1
- package/dist/widgets-v2/table.js.map +0 -1
- package/dist/widgets-v2/utils.js.map +0 -1
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { C as e, T as t } from "./stores-BVFMfgyo.js";
|
|
2
|
+
import { c as n } from "react/compiler-runtime";
|
|
3
|
+
import { useState as r } from "react";
|
|
4
|
+
import { Box as i, Skeleton as a, Slider as o, TextField as s, Typography as c } from "@mui/material";
|
|
5
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
6
|
+
//#region src/widgets-v2/range/style.ts
|
|
7
|
+
var d = {
|
|
8
|
+
root: {
|
|
9
|
+
display: "flex",
|
|
10
|
+
flexDirection: "column",
|
|
11
|
+
gap: 3,
|
|
12
|
+
py: 1
|
|
13
|
+
},
|
|
14
|
+
item: {
|
|
15
|
+
display: "flex",
|
|
16
|
+
flexDirection: "column",
|
|
17
|
+
gap: 1.5
|
|
18
|
+
},
|
|
19
|
+
sliderContainer: {
|
|
20
|
+
display: "flex",
|
|
21
|
+
flexDirection: "column",
|
|
22
|
+
gap: 1,
|
|
23
|
+
px: 1
|
|
24
|
+
},
|
|
25
|
+
slider: {
|
|
26
|
+
width: "100%",
|
|
27
|
+
"&.Mui-disabled": { color: (e) => e.palette.text.disabled }
|
|
28
|
+
},
|
|
29
|
+
inputsRow: {
|
|
30
|
+
display: "flex",
|
|
31
|
+
gap: 2,
|
|
32
|
+
alignItems: "center"
|
|
33
|
+
},
|
|
34
|
+
input: {
|
|
35
|
+
flex: 1,
|
|
36
|
+
"& .MuiInputBase-input": { textAlign: "center" }
|
|
37
|
+
},
|
|
38
|
+
note: { color: "text.secondary" }
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/widgets-v2/range/range-ui.tsx
|
|
42
|
+
function f(e) {
|
|
43
|
+
let t = n(11), { items: r, onChange: a, onChangeCommitted: o, formatter: s } = e, c = s ?? p, u;
|
|
44
|
+
if (t[0] !== c || t[1] !== r || t[2] !== a || t[3] !== o) {
|
|
45
|
+
let e;
|
|
46
|
+
t[5] !== c || t[6] !== a || t[7] !== o ? (e = (e, t) => /* @__PURE__ */ l(m, {
|
|
47
|
+
index: t,
|
|
48
|
+
item: e,
|
|
49
|
+
fmt: c,
|
|
50
|
+
onChange: a,
|
|
51
|
+
onChangeCommitted: o
|
|
52
|
+
}, `range-${e.min}-${e.max}-${t}`), t[5] = c, t[6] = a, t[7] = o, t[8] = e) : e = t[8], u = r.map(e), t[0] = c, t[1] = r, t[2] = a, t[3] = o, t[4] = u;
|
|
53
|
+
} else u = t[4];
|
|
54
|
+
let f;
|
|
55
|
+
return t[9] === u ? f = t[10] : (f = /* @__PURE__ */ l(i, {
|
|
56
|
+
sx: d.root,
|
|
57
|
+
children: u
|
|
58
|
+
}), t[9] = u, t[10] = f), f;
|
|
59
|
+
}
|
|
60
|
+
function p(e) {
|
|
61
|
+
return String(e);
|
|
62
|
+
}
|
|
63
|
+
function m(e) {
|
|
64
|
+
let t = n(70), { index: a, item: s, fmt: f, onChange: p, onChangeCommitted: m } = e, _;
|
|
65
|
+
t[0] !== s.max || t[1] !== s.min || t[2] !== s.value ? (_ = s.value ?? [s.min, s.max], t[0] = s.max, t[1] = s.min, t[2] = s.value, t[3] = _) : _ = t[3];
|
|
66
|
+
let v = _, [y, b] = r(""), x;
|
|
67
|
+
t[4] !== s.max || t[5] !== s.min ? (x = (e) => {
|
|
68
|
+
let [t, n] = e, r = Math.min(Math.max(t, s.min), s.max), i = Math.min(Math.max(n, s.min), s.max);
|
|
69
|
+
return r <= i ? [r, i] : [i, r];
|
|
70
|
+
}, t[4] = s.max, t[5] = s.min, t[6] = x) : x = t[6];
|
|
71
|
+
let S = x, C;
|
|
72
|
+
t[7] !== a || t[8] !== S || t[9] !== p ? (C = (e) => {
|
|
73
|
+
p?.(a, S(e));
|
|
74
|
+
}, t[7] = a, t[8] = S, t[9] = p, t[10] = C) : C = t[10];
|
|
75
|
+
let w = C, T;
|
|
76
|
+
t[11] !== a || t[12] !== S || t[13] !== m ? (T = (e) => {
|
|
77
|
+
m?.(a, S(e));
|
|
78
|
+
}, t[11] = a, t[12] = S, t[13] = m, t[14] = T) : T = t[14];
|
|
79
|
+
let E = T, D;
|
|
80
|
+
t[15] !== a || t[16] !== S || t[17] !== p || t[18] !== m ? (D = (e) => {
|
|
81
|
+
let t = S(e);
|
|
82
|
+
p?.(a, t), m?.(a, t);
|
|
83
|
+
}, t[15] = a, t[16] = S, t[17] = p, t[18] = m, t[19] = D) : D = t[19];
|
|
84
|
+
let O = D, k;
|
|
85
|
+
t[20] !== w || t[21] !== s.max || t[22] !== s.min ? (k = (e, t) => {
|
|
86
|
+
if (!Array.isArray(t)) return;
|
|
87
|
+
let n = t[0] ?? s.min, r = t[1] ?? s.max;
|
|
88
|
+
w([n, r]);
|
|
89
|
+
}, t[20] = w, t[21] = s.max, t[22] = s.min, t[23] = k) : k = t[23];
|
|
90
|
+
let A = k, j;
|
|
91
|
+
t[24] !== E || t[25] !== s.max || t[26] !== s.min ? (j = (e, t) => {
|
|
92
|
+
if (!Array.isArray(t)) return;
|
|
93
|
+
let n = t[0] ?? s.min, r = t[1] ?? s.max;
|
|
94
|
+
E([n, r]);
|
|
95
|
+
}, t[24] = E, t[25] = s.max, t[26] = s.min, t[27] = j) : j = t[27];
|
|
96
|
+
let M = j, N;
|
|
97
|
+
t[28] === s.color ? N = t[29] : (N = s.color ? { color: s.color } : null, t[28] = s.color, t[29] = N);
|
|
98
|
+
let P;
|
|
99
|
+
t[30] === N ? P = t[31] : (P = {
|
|
100
|
+
...d.slider,
|
|
101
|
+
...N
|
|
102
|
+
}, t[30] = N, t[31] = P);
|
|
103
|
+
let F;
|
|
104
|
+
t[32] === v ? F = t[33] : (F = [...v], t[32] = v, t[33] = F);
|
|
105
|
+
let I = s.min, L = s.max, R = s.step ?? 1, z;
|
|
106
|
+
t[34] === s.marks ? z = t[35] : (z = g(s.marks), t[34] = s.marks, t[35] = z);
|
|
107
|
+
let B;
|
|
108
|
+
t[36] !== f || t[37] !== A || t[38] !== M || t[39] !== s.disabled || t[40] !== s.max || t[41] !== s.min || t[42] !== F || t[43] !== R || t[44] !== z || t[45] !== P ? (B = /* @__PURE__ */ l(i, {
|
|
109
|
+
sx: d.sliderContainer,
|
|
110
|
+
children: /* @__PURE__ */ l(o, {
|
|
111
|
+
sx: P,
|
|
112
|
+
value: F,
|
|
113
|
+
min: I,
|
|
114
|
+
max: L,
|
|
115
|
+
step: R,
|
|
116
|
+
marks: z,
|
|
117
|
+
disabled: s.disabled,
|
|
118
|
+
valueLabelDisplay: "auto",
|
|
119
|
+
valueLabelFormat: f,
|
|
120
|
+
onChange: A,
|
|
121
|
+
onChangeCommitted: M
|
|
122
|
+
})
|
|
123
|
+
}), t[36] = f, t[37] = A, t[38] = M, t[39] = s.disabled, t[40] = s.max, t[41] = s.min, t[42] = F, t[43] = R, t[44] = z, t[45] = P, t[46] = B) : B = t[46];
|
|
124
|
+
let V = `min-${v[0]}`, H;
|
|
125
|
+
t[47] !== O || t[48] !== v || t[49] !== y || t[50] !== f || t[51] !== s || t[52] !== V ? (H = /* @__PURE__ */ l(h, {
|
|
126
|
+
name: "min",
|
|
127
|
+
value: v[0],
|
|
128
|
+
item: s,
|
|
129
|
+
fmt: f,
|
|
130
|
+
editing: y,
|
|
131
|
+
setEditing: b,
|
|
132
|
+
commit: O,
|
|
133
|
+
current: v,
|
|
134
|
+
ariaLabel: "Minimum value"
|
|
135
|
+
}, V), t[47] = O, t[48] = v, t[49] = y, t[50] = f, t[51] = s, t[52] = V, t[53] = H) : H = t[53];
|
|
136
|
+
let U = `max-${v[1]}`, W;
|
|
137
|
+
t[54] !== O || t[55] !== v || t[56] !== y || t[57] !== f || t[58] !== s || t[59] !== U ? (W = /* @__PURE__ */ l(h, {
|
|
138
|
+
name: "max",
|
|
139
|
+
value: v[1],
|
|
140
|
+
item: s,
|
|
141
|
+
fmt: f,
|
|
142
|
+
editing: y,
|
|
143
|
+
setEditing: b,
|
|
144
|
+
commit: O,
|
|
145
|
+
current: v,
|
|
146
|
+
ariaLabel: "Maximum value"
|
|
147
|
+
}, U), t[54] = O, t[55] = v, t[56] = y, t[57] = f, t[58] = s, t[59] = U, t[60] = W) : W = t[60];
|
|
148
|
+
let G;
|
|
149
|
+
t[61] !== H || t[62] !== W ? (G = /* @__PURE__ */ u(i, {
|
|
150
|
+
sx: d.inputsRow,
|
|
151
|
+
children: [H, W]
|
|
152
|
+
}), t[61] = H, t[62] = W, t[63] = G) : G = t[63];
|
|
153
|
+
let K;
|
|
154
|
+
t[64] === s.note ? K = t[65] : (K = s.note ? /* @__PURE__ */ l(c, {
|
|
155
|
+
variant: "caption",
|
|
156
|
+
sx: d.note,
|
|
157
|
+
children: s.note
|
|
158
|
+
}) : null, t[64] = s.note, t[65] = K);
|
|
159
|
+
let q;
|
|
160
|
+
return t[66] !== B || t[67] !== G || t[68] !== K ? (q = /* @__PURE__ */ u(i, {
|
|
161
|
+
sx: d.item,
|
|
162
|
+
children: [
|
|
163
|
+
B,
|
|
164
|
+
G,
|
|
165
|
+
K
|
|
166
|
+
]
|
|
167
|
+
}), t[66] = B, t[67] = G, t[68] = K, t[69] = q) : q = t[69], q;
|
|
168
|
+
}
|
|
169
|
+
function h(e) {
|
|
170
|
+
let t = n(26), { name: i, value: a, item: o, fmt: c, editing: u, setEditing: f, commit: p, current: m, ariaLabel: h } = e, [g, _] = r(String(a)), v;
|
|
171
|
+
t[0] !== i || t[1] !== f ? (v = () => {
|
|
172
|
+
f(i);
|
|
173
|
+
}, t[0] = i, t[1] = f, t[2] = v) : v = t[2];
|
|
174
|
+
let y = v, b, x;
|
|
175
|
+
if (t[3] !== p || t[4] !== m || t[5] !== i || t[6] !== f || t[7] !== a) {
|
|
176
|
+
x = (t) => {
|
|
177
|
+
f(""), e(t.target.value);
|
|
178
|
+
}, b = (t) => {
|
|
179
|
+
t.key === "Enter" && (e(t.target.value), t.target.blur());
|
|
180
|
+
};
|
|
181
|
+
function e(e) {
|
|
182
|
+
let t = parseFloat(e), n = Number.isFinite(t) ? t : a, r = i === "min" ? [n, m[1]] : [m[0], n];
|
|
183
|
+
p(r);
|
|
184
|
+
}
|
|
185
|
+
t[3] = p, t[4] = m, t[5] = i, t[6] = f, t[7] = a, t[8] = b, t[9] = x;
|
|
186
|
+
} else b = t[8], x = t[9];
|
|
187
|
+
let S;
|
|
188
|
+
t[10] !== u || t[11] !== c || t[12] !== i || t[13] !== g ? (S = u === i ? g : c(Number(g)), t[10] = u, t[11] = c, t[12] = i, t[13] = g, t[14] = S) : S = t[14];
|
|
189
|
+
let C = S, w;
|
|
190
|
+
t[15] === Symbol.for("react.memo_cache_sentinel") ? (w = (e) => _(e.target.value), t[15] = w) : w = t[15];
|
|
191
|
+
let T;
|
|
192
|
+
t[16] === h ? T = t[17] : (T = { "aria-label": h }, t[16] = h, t[17] = T);
|
|
193
|
+
let E;
|
|
194
|
+
return t[18] !== y || t[19] !== b || t[20] !== C || t[21] !== x || t[22] !== o.disabled || t[23] !== i || t[24] !== T ? (E = /* @__PURE__ */ l(s, {
|
|
195
|
+
name: i,
|
|
196
|
+
value: C,
|
|
197
|
+
onChange: w,
|
|
198
|
+
onFocus: y,
|
|
199
|
+
onBlur: x,
|
|
200
|
+
onKeyDown: b,
|
|
201
|
+
disabled: o.disabled,
|
|
202
|
+
size: "small",
|
|
203
|
+
sx: d.input,
|
|
204
|
+
inputProps: T
|
|
205
|
+
}), t[18] = y, t[19] = b, t[20] = C, t[21] = x, t[22] = o.disabled, t[23] = i, t[24] = T, t[25] = E) : E = t[25], E;
|
|
206
|
+
}
|
|
207
|
+
function g(e) {
|
|
208
|
+
if (e != null) return typeof e == "boolean" ? e : [...e];
|
|
209
|
+
}
|
|
210
|
+
//#endregion
|
|
211
|
+
//#region src/widgets-v2/range/range.tsx
|
|
212
|
+
var _ = (e) => ({
|
|
213
|
+
data: e.data ?? [],
|
|
214
|
+
formatter: e.formatter
|
|
215
|
+
});
|
|
216
|
+
function v(r) {
|
|
217
|
+
let i = n(5), { onChange: a, onChangeCommitted: o } = r, s = t(), c = e(s, _), u;
|
|
218
|
+
return i[0] !== a || i[1] !== o || i[2] !== c.data || i[3] !== c.formatter ? (u = /* @__PURE__ */ l(f, {
|
|
219
|
+
items: c.data,
|
|
220
|
+
formatter: c.formatter,
|
|
221
|
+
onChange: a,
|
|
222
|
+
onChangeCommitted: o
|
|
223
|
+
}), i[0] = a, i[1] = o, i[2] = c.data, i[3] = c.formatter, i[4] = u) : u = i[4], u;
|
|
224
|
+
}
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region src/widgets-v2/range/skeleton.tsx
|
|
227
|
+
var y = {
|
|
228
|
+
root: {
|
|
229
|
+
display: "flex",
|
|
230
|
+
flexDirection: "column",
|
|
231
|
+
gap: 3,
|
|
232
|
+
py: 1
|
|
233
|
+
},
|
|
234
|
+
item: {
|
|
235
|
+
display: "flex",
|
|
236
|
+
flexDirection: "column",
|
|
237
|
+
gap: 1.5
|
|
238
|
+
},
|
|
239
|
+
track: { height: 32 },
|
|
240
|
+
inputsRow: {
|
|
241
|
+
display: "flex",
|
|
242
|
+
gap: 2
|
|
243
|
+
},
|
|
244
|
+
input: {
|
|
245
|
+
flex: 1,
|
|
246
|
+
height: 40
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
function b(e) {
|
|
250
|
+
let t = n(2), { count: r } = e, a = r === void 0 ? 1 : r, o;
|
|
251
|
+
return t[0] === a ? o = t[1] : (o = /* @__PURE__ */ l(i, {
|
|
252
|
+
sx: y.root,
|
|
253
|
+
children: Array.from({ length: a }).map(x)
|
|
254
|
+
}), t[0] = a, t[1] = o), o;
|
|
255
|
+
}
|
|
256
|
+
function x(e, t) {
|
|
257
|
+
return /* @__PURE__ */ u(i, {
|
|
258
|
+
sx: y.item,
|
|
259
|
+
children: [/* @__PURE__ */ l(a, {
|
|
260
|
+
variant: "rectangular",
|
|
261
|
+
sx: y.track
|
|
262
|
+
}), /* @__PURE__ */ u(i, {
|
|
263
|
+
sx: y.inputsRow,
|
|
264
|
+
children: [/* @__PURE__ */ l(a, {
|
|
265
|
+
variant: "rectangular",
|
|
266
|
+
sx: y.input
|
|
267
|
+
}), /* @__PURE__ */ l(a, {
|
|
268
|
+
variant: "rectangular",
|
|
269
|
+
sx: y.input
|
|
270
|
+
})]
|
|
271
|
+
})]
|
|
272
|
+
}, `item-${t}`);
|
|
273
|
+
}
|
|
274
|
+
//#endregion
|
|
275
|
+
export { v as n, f as r, b as t };
|
|
276
|
+
|
|
277
|
+
//# sourceMappingURL=range-BPWVrAsY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-BPWVrAsY.js","names":["SxProps","Theme","styles","root","display","flexDirection","gap","py","item","sliderContainer","px","slider","width","color","theme","palette","text","disabled","inputsRow","alignItems","input","flex","textAlign","note","Record","useCallback","useState","FocusEvent","KeyboardEvent","Box","Slider","TextField","Typography","RangeDataItem","RangeItemValue","styles","RangeUIProps","items","onChange","index","value","onChangeCommitted","formatter","Bound","RangeUI","t0","$","_c","fmt","_temp","t1","t2","item","i","min","max","map","root","n","String","RangeRowProps","RangeRow","current","editing","setEditing","next","lowRaw","highRaw","low","Math","high","normalize","t3","next_0","commit","t4","next_1","commitFinal","t5","next_2","commitText","t6","_","raw","Array","isArray","low_0","high_0","handleSlider","t7","__0","raw_0","low_1","high_1","handleSliderCommitted","t8","color","t9","slider","t10","t11","t12","t13","step","t14","marks","resolveMarks","t15","disabled","sliderContainer","t16","t17","t18","t19","t20","inputsRow","t21","note","t22","BoundInputProps","name","ariaLabel","BoundInput","setRaw","beginEditing","commitOnEnter","finishEditingAndCommit","e","commitFromText","target","e_0","key","HTMLInputElement","blur","input","parsed","parseFloat","safe","Number","isFinite","display","Symbol","for","e_1","label","undefined","useWidgetId","useWidgetShallow","RangeUI","RangeItemValue","RangeWidgetData","RangeSlice","data","formatter","value","rangeSelector","s","RangeProps","onChange","index","onChangeCommitted","Range","t0","$","_c","id","slice","t1","Box","Skeleton","SxProps","Theme","styles","root","display","flexDirection","gap","py","item","track","height","inputsRow","input","flex","Record","RangeSkeletonProps","count","RangeSkeleton","t0","$","_c","t1","undefined","t2","Array","from","length","map","_temp","_","i"],"sources":["../src/widgets-v2/range/style.ts","../src/widgets-v2/range/range-ui.tsx","../src/widgets-v2/range/range.tsx","../src/widgets-v2/range/skeleton.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n py: 1,\n },\n item: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1.5,\n },\n sliderContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n px: 1,\n },\n slider: {\n width: '100%',\n '&.Mui-disabled': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n inputsRow: {\n display: 'flex',\n gap: 2,\n alignItems: 'center',\n },\n input: {\n flex: 1,\n '& .MuiInputBase-input': {\n textAlign: 'center',\n },\n },\n note: {\n color: 'text.secondary',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n useCallback,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n} from 'react'\nimport { Box, Slider, TextField, Typography } from '@mui/material'\nimport type { RangeDataItem, RangeItemValue } from './types'\nimport { styles } from './style'\n\nexport interface RangeUIProps {\n items: readonly RangeDataItem[]\n /**\n * Fires on every pointer tick while a thumb is being dragged (mirrors\n * MUI `<Slider>`'s `onChange`). Use this to update local UI state —\n * not to persist expensive operations like remote queries.\n */\n onChange?: (index: number, value: RangeItemValue) => void\n /**\n * Fires once when the user *releases* a slider thumb after dragging,\n * after an arrow-key adjustment commits, or when the text inputs\n * blur / Enter. Mirrors MUI `<Slider>`'s `onChangeCommitted`. Use\n * this for side-effects you want to throttle to \"drag end\" — e.g.\n * writing the value to a source filter that triggers refetches.\n */\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n /** Number formatter for the slider tooltip and the text input display. */\n formatter?: (value: number) => string\n}\n\ntype Bound = 'min' | 'max'\n\n/**\n * Pure presentational component for the Range widget. Renders one MUI Slider\n * per item with editable min/max text inputs below — matching the Range v1\n * UX. Each item is always a two-thumb range; supply `value` to seed the\n * starting selection, otherwise it defaults to `[min, max]`.\n */\nexport function RangeUI({\n items,\n onChange,\n onChangeCommitted,\n formatter,\n}: RangeUIProps) {\n const fmt = formatter ?? ((n: number) => String(n))\n return (\n <Box sx={styles.root}>\n {items.map((item, i) => (\n // Composite of the row's track bounds — stable across reorders for\n // any realistic widget configuration. Falls back to a literal +\n // index when bounds collide (degenerate same-min-same-max rows).\n <RangeRow\n key={`range-${item.min}-${item.max}-${i}`}\n index={i}\n item={item}\n fmt={fmt}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n ))}\n </Box>\n )\n}\n\ninterface RangeRowProps {\n index: number\n item: RangeDataItem\n fmt: (n: number) => string\n onChange?: (index: number, value: RangeItemValue) => void\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n}\n\nfunction RangeRow({\n index,\n item,\n fmt,\n onChange,\n onChangeCommitted,\n}: RangeRowProps) {\n const current: readonly [number, number] = item.value ?? [item.min, item.max]\n const [editing, setEditing] = useState<'' | Bound>('')\n\n // Clamp inside [min, max] and keep `low <= high`. Pulled out so both the\n // live `onChange` path and the commit path share the same normalization.\n const normalize = useCallback(\n (next: readonly [number, number]): readonly [number, number] => {\n const [lowRaw, highRaw] = next\n const low = Math.min(Math.max(lowRaw, item.min), item.max)\n const high = Math.min(Math.max(highRaw, item.min), item.max)\n return low <= high ? [low, high] : [high, low]\n },\n [item.min, item.max],\n )\n\n const commit = useCallback(\n (next: readonly [number, number]) => {\n onChange?.(index, normalize(next))\n },\n [index, normalize, onChange],\n )\n\n const commitFinal = useCallback(\n (next: readonly [number, number]) => {\n onChangeCommitted?.(index, normalize(next))\n },\n [index, normalize, onChangeCommitted],\n )\n\n // A text-input commit (blur / Enter) is both a value change AND a final\n // commit, so it fires `onChange` *and* `onChangeCommitted`. Firing both\n // keeps the widget responsive for consumers that only wired `onChange`\n // (the pre-`onChangeCommitted` API) — without it, typing a value and\n // pressing Enter would silently no-op for them.\n const commitText = useCallback(\n (next: readonly [number, number]) => {\n const value = normalize(next)\n onChange?.(index, value)\n onChangeCommitted?.(index, value)\n },\n [index, normalize, onChange, onChangeCommitted],\n )\n\n const handleSlider = (_: Event, raw: number | number[]) => {\n if (!Array.isArray(raw)) return\n // Hoist defaults out of the destructure: react-compiler can't safely\n // reorder MemberExpression defaults inside an array pattern.\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commit([low, high])\n }\n\n const handleSliderCommitted = (\n _: Event | React.SyntheticEvent,\n raw: number | number[],\n ) => {\n if (!Array.isArray(raw)) return\n const low = raw[0] ?? item.min\n const high = raw[1] ?? item.max\n commitFinal([low, high])\n }\n\n return (\n <Box sx={styles.item}>\n <Box sx={styles.sliderContainer}>\n <Slider\n sx={{\n ...styles.slider,\n ...(item.color ? { color: item.color } : null),\n }}\n value={[...current]}\n min={item.min}\n max={item.max}\n step={item.step ?? 1}\n marks={resolveMarks(item.marks)}\n disabled={item.disabled}\n valueLabelDisplay='auto'\n valueLabelFormat={fmt}\n onChange={handleSlider}\n onChangeCommitted={handleSliderCommitted}\n />\n </Box>\n <Box sx={styles.inputsRow}>\n {/* Text-input commits (blur / Enter) are final, but also notify\n `onChange` — see `commitText` — so consumers that only wired\n `onChange` still update on a typed value. */}\n <BoundInput\n // Bumping the key on a fresh external value resets the local\n // editing state — matches v1's RangeItem behaviour.\n key={`min-${current[0]}`}\n name='min'\n value={current[0]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Minimum value'\n />\n <BoundInput\n key={`max-${current[1]}`}\n name='max'\n value={current[1]}\n item={item}\n fmt={fmt}\n editing={editing}\n setEditing={setEditing}\n commit={commitText}\n current={current}\n ariaLabel='Maximum value'\n />\n </Box>\n {item.note ? (\n <Typography variant='caption' sx={styles.note}>\n {item.note}\n </Typography>\n ) : null}\n </Box>\n )\n}\n\ninterface BoundInputProps {\n name: Bound\n value: number\n item: RangeDataItem\n fmt: (n: number) => string\n editing: '' | Bound\n setEditing: (next: '' | Bound) => void\n /**\n * Called when the user commits a new value (blur / Enter). Text input\n * edits never produce intermediate \"live\" values, so the consumer\n * only needs one callback — the row wires this to `commitFinal`.\n */\n commit: (next: readonly [number, number]) => void\n current: readonly [number, number]\n ariaLabel: string\n}\n\nfunction BoundInput({\n name,\n value,\n item,\n fmt,\n editing,\n setEditing,\n commit,\n current,\n ariaLabel,\n}: BoundInputProps) {\n const [raw, setRaw] = useState<string>(String(value))\n\n const beginEditing = () => {\n setEditing(name)\n }\n const finishEditingAndCommit = (e: FocusEvent<HTMLInputElement>) => {\n setEditing('')\n commitFromText(e.target.value)\n }\n const commitOnEnter = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n commitFromText((e.target as HTMLInputElement).value)\n ;(e.target as HTMLInputElement).blur()\n }\n }\n\n function commitFromText(input: string) {\n const parsed = parseFloat(input)\n const safe = Number.isFinite(parsed) ? parsed : value\n const next: readonly [number, number] =\n name === 'min' ? [safe, current[1]] : [current[0], safe]\n commit(next)\n }\n\n const display = editing === name ? raw : fmt(Number(raw))\n\n return (\n <TextField\n name={name}\n value={display}\n onChange={(e) => setRaw(e.target.value)}\n onFocus={beginEditing}\n onBlur={finishEditingAndCommit}\n onKeyDown={commitOnEnter}\n disabled={item.disabled}\n size='small'\n sx={styles.input}\n inputProps={{ 'aria-label': ariaLabel }}\n />\n )\n}\n\nfunction resolveMarks(\n marks: RangeDataItem['marks'],\n): boolean | { value: number; label?: string }[] | undefined {\n if (marks == null) return undefined\n if (typeof marks === 'boolean') return marks\n return [...marks]\n}\n","import { useWidgetId, useWidgetShallow } from '../stores'\nimport { RangeUI } from './range-ui'\nimport type { RangeItemValue, RangeWidgetData } from './types'\n\ninterface RangeSlice {\n data: RangeWidgetData\n formatter?: (value: number) => string\n}\n\nconst rangeSelector = (s: {\n data: unknown\n formatter?: (value: number) => string\n}): RangeSlice => ({\n data: (s.data ?? []) as RangeWidgetData,\n formatter: s.formatter,\n})\n\nexport interface RangeProps {\n /**\n * Fires on every pointer tick while a thumb is being dragged. Use this\n * for cheap UI updates (local state, optimistic display).\n */\n onChange?: (index: number, value: RangeItemValue) => void\n /**\n * Fires once when the user *releases* a slider thumb (or when the text\n * inputs blur / Enter, or when an arrow-key adjustment settles). Use\n * this for expensive side-effects you want throttled to drag end —\n * e.g. writing the value to a source filter that refetches widgets.\n */\n onChangeCommitted?: (index: number, value: RangeItemValue) => void\n}\n\n/**\n * Stateful Range bridge — reads `data` (post-pipeline) and `formatter` from\n * the per-widget store and forwards them to the pure {@link RangeUI}. Per\n * the destination-owned principle, value changes flow back through\n * `onChange` (per-tick) and `onChangeCommitted` (drag end) — the consumer\n * is expected to update the data prop on `<Provider>`. Use `disabled` on\n * individual `RangeDataItem`s to disable specific rows.\n */\nexport function Range({ onChange, onChangeCommitted }: RangeProps) {\n const id = useWidgetId()\n const slice = useWidgetShallow(id, rangeSelector)\n return (\n <RangeUI\n items={slice.data}\n formatter={slice.formatter}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n />\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport type { SxProps, Theme } from '@mui/material'\n\nconst styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n py: 1,\n },\n item: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1.5,\n },\n track: { height: 32 },\n inputsRow: {\n display: 'flex',\n gap: 2,\n },\n input: { flex: 1, height: 40 },\n} satisfies Record<string, SxProps<Theme>>\n\nexport interface RangeSkeletonProps {\n count?: number\n}\n\n/**\n * Loading placeholder for the Range widget. Renders `count` rows, each\n * matching the slider-then-inputs layout of {@link RangeUI} so the layout\n * doesn't jump when data resolves.\n */\nexport function RangeSkeleton({ count = 1 }: RangeSkeletonProps) {\n return (\n <Box sx={styles.root}>\n {Array.from({ length: count }).map((_, i) => (\n <Box key={`item-${i}`} sx={styles.item}>\n <Skeleton variant='rectangular' sx={styles.track} />\n <Box sx={styles.inputsRow}>\n <Skeleton variant='rectangular' sx={styles.input} />\n <Skeleton variant='rectangular' sx={styles.input} />\n </Box>\n </Box>\n ))}\n </Box>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), s = (e, n) => {
|
|
3
|
+
let r = {};
|
|
4
|
+
for (var i in e) t(r, i, {
|
|
5
|
+
get: e[i],
|
|
6
|
+
enumerable: !0
|
|
7
|
+
});
|
|
8
|
+
return n || t(r, Symbol.toStringTag, { value: "Module" }), r;
|
|
9
|
+
}, c = (e, i, o, s) => {
|
|
10
|
+
if (i && typeof i == "object" || typeof i == "function") for (var c = r(i), l = 0, u = c.length, d; l < u; l++) d = c[l], !a.call(e, d) && d !== o && t(e, d, {
|
|
11
|
+
get: ((e) => i[e]).bind(null, d),
|
|
12
|
+
enumerable: !(s = n(i, d)) || s.enumerable
|
|
13
|
+
});
|
|
14
|
+
return e;
|
|
15
|
+
}, l = (n, r, o) => (o = n == null ? {} : e(i(n)), c(r || !n || !n.__esModule || !a.call(n, "default") ? t(o, "default", {
|
|
16
|
+
value: n,
|
|
17
|
+
enumerable: !0
|
|
18
|
+
}) : o, n));
|
|
19
|
+
//#endregion
|
|
20
|
+
export { s as n, l as r, o as t };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { t as e } from "./use-widget-selector-VSPhfhNm.js";
|
|
2
|
+
import { c as t } from "react/compiler-runtime";
|
|
3
|
+
import { Box as n } from "@mui/material";
|
|
4
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
5
|
+
//#region src/widgets/formula/style.ts
|
|
6
|
+
var i = {
|
|
7
|
+
root: {
|
|
8
|
+
display: "flex",
|
|
9
|
+
flexDirection: "column",
|
|
10
|
+
gap: (e) => e.spacing(2)
|
|
11
|
+
},
|
|
12
|
+
item: { "&[data-disabled=\"true\"]": { color: (e) => e.palette.text.disabled } },
|
|
13
|
+
row: {
|
|
14
|
+
display: "flex",
|
|
15
|
+
alignItems: "center",
|
|
16
|
+
gap: (e) => e.spacing(1),
|
|
17
|
+
"& + &": { marginTop: (e) => e.spacing(1) }
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/widgets/formula/components/row.tsx
|
|
22
|
+
function a(a) {
|
|
23
|
+
let s = t(3), c = e(a.id, o), l;
|
|
24
|
+
return s[0] !== c || s[1] !== a ? (l = c?.map((e, t) => /* @__PURE__ */ r(n, {
|
|
25
|
+
sx: i.row,
|
|
26
|
+
children: typeof a.children == "function" ? a.children({ index: t }) : a.children
|
|
27
|
+
}, `row-${t}`)), s[0] = c, s[1] = a, s[2] = l) : l = s[2], l;
|
|
28
|
+
}
|
|
29
|
+
function o(e) {
|
|
30
|
+
return e?.data;
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { i as n, a as t };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=row-CvVGBuy_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-CvVGBuy_.js","names":["SxProps","Theme","styles","root","display","flexDirection","gap","theme","spacing","item","color","palette","text","disabled","row","alignItems","marginTop","Record","Box","styles","FormulaWidgetState","RowProps","useWidgetSelector","Row","props","$","_c","data","id","_temp","t0","map","_","index","row","children","w"],"sources":["../src/widgets/formula/style.ts","../src/widgets/formula/components/row.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n item: {\n '&[data-disabled=\"true\"]': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\nimport type { FormulaWidgetState, RowProps } from '../types'\nimport { useWidgetSelector } from '../../stores/use-widget-selector'\n\n/**\n * Iterates over the widget's data items and renders a row for each one using render props.\n */\nexport function Row(props: RowProps) {\n const data = useWidgetSelector(\n props.id,\n (w) => (w as FormulaWidgetState | undefined)?.data,\n )\n\n return data?.map((_, index) => {\n return (\n <Box sx={styles.row} key={`row-${index}`}>\n {typeof props.children === 'function'\n ? props.children({ index })\n : props.children}\n </Box>\n )\n })\n}\n"],"mappings":";;;;;AAEA,IAAaE,IAAS;CACpBC,MAAM;EACJC,SAAS;EACTC,eAAe;EACfC,MAAMC,MAAiBA,EAAMC,QAAQ,CAAC;CACxC;CACAC,MAAM,EACJ,6BAA2B,EACzBC,QAAQH,MAAiBA,EAAMI,QAAQC,KAAKC,SAC9C,EACF;CACAC,KAAK;EACHV,SAAS;EACTW,YAAY;EACZT,MAAMC,MAAiBA,EAAMC,QAAQ,CAAC;EAEtC,SAAS,EACPQ,YAAYT,MAAiBA,EAAMC,QAAQ,CAAC,EAC9C;CACF;AACF;;;ACdA,SAAOe,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACLC,IAAaL,EACXE,EAAKI,IACLC,CACF,GAACC;CAUC,OAVDL,EAAA,OAAAE,KAAAF,EAAA,OAAAD,KAEMM,IAAAH,GAAII,KAAMC,GAAAC,MAEb,kBAAC,GAAD;EAAS,IAAAd,EAAMe;EACZ,UAAA,OAAOV,EAAKW,YAAc,aACvBX,EAAKW,SAAU,EAAAF,SAAQ,CACV,IAAbT,EAAKW;CAHP,GAAsB,OAAOF,GAA7B,CAMP,GAACR,EAAA,KAAAE,GAAAF,EAAA,KAAAD,GAAAC,EAAA,KAAAK,KAAAA,IAAAL,EAAA,IARKK;AAQL;AAdG,SAAAD,EAAAO,GAAA;CAAA,OAGKA,GAA0CT;AAAA"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { r as e } from "./rolldown-runtime-B0aSnxlc.js";
|
|
2
|
+
import { t } from "./cjs-CBrZjPCj.js";
|
|
3
|
+
//#region src/widgets/echart/const.ts
|
|
4
|
+
var n = /* @__PURE__ */ e(t(), 1), r = "stacked";
|
|
5
|
+
//#endregion
|
|
6
|
+
//#region src/widgets/echart/utils.ts
|
|
7
|
+
function i(e, t, r) {
|
|
8
|
+
return (0, n.default)(e ?? {}, t ?? {}, { customMerge: (e) => {
|
|
9
|
+
let t = r?.(e);
|
|
10
|
+
if (t) return t;
|
|
11
|
+
if (e === "color") return (e, t) => t;
|
|
12
|
+
if (e === "axisLabel") return (e, t) => {
|
|
13
|
+
let n = {
|
|
14
|
+
...e,
|
|
15
|
+
...t
|
|
16
|
+
};
|
|
17
|
+
if (typeof e?.formatter == "function" && typeof t?.formatter == "function") {
|
|
18
|
+
let r = e.formatter, i = t.formatter;
|
|
19
|
+
n.formatter = (e) => r(e) === "" ? "" : i(e);
|
|
20
|
+
}
|
|
21
|
+
return n;
|
|
22
|
+
};
|
|
23
|
+
if (e === "series") return (e, t) => {
|
|
24
|
+
let r = Math.max(e?.length ?? 0, t?.length ?? 0);
|
|
25
|
+
return Array.from({ length: r }, (r, i) => {
|
|
26
|
+
let a = e?.[i] ?? {}, o = t?.[i] ?? {};
|
|
27
|
+
return (0, n.default)(a, o);
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
} });
|
|
31
|
+
}
|
|
32
|
+
function a({ start: e, end: t } = {
|
|
33
|
+
start: 0,
|
|
34
|
+
end: 100
|
|
35
|
+
}, { inside: n = !0, xSlider: r = !0, ySlider: i = !1, showSliders: a = !0, xAxisLabelFormatter: s, bottomOffset: c = 0 } = {}, l) {
|
|
36
|
+
let u = l ? o(l) : {};
|
|
37
|
+
return { dataZoom: [
|
|
38
|
+
n && {
|
|
39
|
+
throttle: 0,
|
|
40
|
+
type: "inside",
|
|
41
|
+
xAxisIndex: r ? [0] : [],
|
|
42
|
+
yAxisIndex: i ? [0] : [],
|
|
43
|
+
show: !0,
|
|
44
|
+
zoomLock: !1,
|
|
45
|
+
start: e,
|
|
46
|
+
end: t
|
|
47
|
+
},
|
|
48
|
+
n && i && {
|
|
49
|
+
throttle: 0,
|
|
50
|
+
type: "inside",
|
|
51
|
+
show: !0,
|
|
52
|
+
zoomLock: !1,
|
|
53
|
+
start: e,
|
|
54
|
+
end: t,
|
|
55
|
+
orientation: "vertical"
|
|
56
|
+
},
|
|
57
|
+
r && {
|
|
58
|
+
throttle: 0,
|
|
59
|
+
type: "slider",
|
|
60
|
+
xAxisIndex: [0],
|
|
61
|
+
bottom: c,
|
|
62
|
+
height: parseInt(l?.spacing?.(4) ?? "32"),
|
|
63
|
+
show: a,
|
|
64
|
+
zoomLock: !1,
|
|
65
|
+
start: e,
|
|
66
|
+
end: t,
|
|
67
|
+
labelFormatter: s,
|
|
68
|
+
showDetail: !1,
|
|
69
|
+
...u,
|
|
70
|
+
brushSelect: !1,
|
|
71
|
+
moveHandleSize: 8,
|
|
72
|
+
handleSize: "100%",
|
|
73
|
+
handleIcon: "image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDkgMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iLTAuNSIgd2lkdGg9IjgiIGhlaWdodD0iMTgiIHJ4PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI3KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMyAyMykiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDMgMTkpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAzIDE1KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4="
|
|
74
|
+
},
|
|
75
|
+
i && {
|
|
76
|
+
throttle: 0,
|
|
77
|
+
type: "slider",
|
|
78
|
+
left: parseInt(l?.spacing?.(6) ?? "48"),
|
|
79
|
+
width: parseInt(l?.spacing?.(4) ?? "32"),
|
|
80
|
+
yAxisIndex: [0],
|
|
81
|
+
show: a,
|
|
82
|
+
zoomLock: !1,
|
|
83
|
+
start: e,
|
|
84
|
+
end: t,
|
|
85
|
+
...u,
|
|
86
|
+
brushSelect: !1,
|
|
87
|
+
moveHandleSize: 8,
|
|
88
|
+
handleSize: "100%",
|
|
89
|
+
handleIcon: "image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDM2IDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iOCIgaGVpZ2h0PSIxOCIgcng9IjQiIHRyYW5zZm9ybT0icm90YXRlKC05MCAwLjUgMC41KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDEzIDYpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09InJvdGF0ZSgtOTAgMTcgNikiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0icm90YXRlKC05MCAyMSA2KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4="
|
|
90
|
+
}
|
|
91
|
+
].filter((e) => !!e) };
|
|
92
|
+
}
|
|
93
|
+
function o(e) {
|
|
94
|
+
return {
|
|
95
|
+
fillerColor: "rgba(53, 139, 231, 0.25)",
|
|
96
|
+
borderColor: "rgba(53, 139, 231, 0.3)",
|
|
97
|
+
borderWidth: .5,
|
|
98
|
+
backgroundColor: "transparent",
|
|
99
|
+
borderRadius: 4,
|
|
100
|
+
dataBackground: {
|
|
101
|
+
lineStyle: { opacity: 0 },
|
|
102
|
+
areaStyle: {
|
|
103
|
+
opacity: 1,
|
|
104
|
+
color: e.palette.secondary.main
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
selectedDataBackground: {
|
|
108
|
+
lineStyle: { opacity: 0 },
|
|
109
|
+
areaStyle: {
|
|
110
|
+
opacity: 1,
|
|
111
|
+
color: e.palette.secondary.main
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
handleStyle: {
|
|
115
|
+
color: e.palette.common.white,
|
|
116
|
+
borderColor: "rgba(3, 111, 226, 0.08)",
|
|
117
|
+
borderWidth: 1,
|
|
118
|
+
shadowBlur: 3,
|
|
119
|
+
shadowColor: "rgba(0, 0, 0, 0.1)",
|
|
120
|
+
shadowOffsetX: 0,
|
|
121
|
+
shadowOffsetY: 1
|
|
122
|
+
},
|
|
123
|
+
textStyle: {
|
|
124
|
+
color: e.palette.black[60],
|
|
125
|
+
fontSize: parseInt(e.typography.overlineDelicate.fontSize),
|
|
126
|
+
fontFamily: e.typography.overlineDelicate.fontFamily
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function s({ brushType: e = "lineX", brushMode: t = "single", xAxisIndex: n = 0 } = {}) {
|
|
131
|
+
return { brush: {
|
|
132
|
+
toolbox: ["lineX", "clear"],
|
|
133
|
+
brushType: e,
|
|
134
|
+
brushMode: t,
|
|
135
|
+
xAxisIndex: n
|
|
136
|
+
} };
|
|
137
|
+
}
|
|
138
|
+
function c(e = r) {
|
|
139
|
+
return { stack: e };
|
|
140
|
+
}
|
|
141
|
+
//#endregion
|
|
142
|
+
//#region src/widgets/echart/shared-resize-observer.ts
|
|
143
|
+
var l = /* @__PURE__ */ new Map(), u = null;
|
|
144
|
+
function d() {
|
|
145
|
+
return u ??= new ResizeObserver((e) => {
|
|
146
|
+
for (let t of e) l.get(t.target)?.();
|
|
147
|
+
}), u;
|
|
148
|
+
}
|
|
149
|
+
function f(e, t) {
|
|
150
|
+
return l.set(e, t), d().observe(e), () => {
|
|
151
|
+
l.delete(e), d().unobserve(e);
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//#endregion
|
|
155
|
+
export { i as a, a as i, s as n, r as o, c as r, f as t };
|
|
156
|
+
|
|
157
|
+
//# sourceMappingURL=shared-resize-observer-BEiP2rQt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-resize-observer-BEiP2rQt.js","names":["DEFAULT_STACK_GROUP","deepmerge","EchartOptionsProps","Theme","DEFAULT_STACK_GROUP","mergeEchartWidgetConfig","optionA","T","optionB","customMergeFn","key","a","b","customMerge","externalMerge","_","Record","merged","formatter","baseFormatter","value","customFormatter","baseResult","maxLength","Math","max","length","Array","from","index","aItem","bItem","getEChartZoomConfig","start","end","inside","xSlider","ySlider","showSliders","xAxisLabelFormatter","bottomOffset","theme","zoom","sliderStyles","getEChartZoomSliderStyles","dataZoom","throttle","type","xAxisIndex","yAxisIndex","show","zoomLock","orientation","bottom","height","parseInt","spacing","labelFormatter","showDetail","brushSelect","moveHandleSize","handleSize","handleIcon","left","width","filter","d","fillerColor","borderColor","borderWidth","backgroundColor","borderRadius","dataBackground","lineStyle","opacity","areaStyle","color","palette","secondary","main","selectedDataBackground","handleStyle","common","white","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","textStyle","black","fontSize","typography","overlineDelicate","fontFamily","const","getEChartBrushConfig","brushType","brushMode","throttleType","throttleDelay","brush","toolbox","getEChartStackConfig","stackGroup","stack","ResizeCallback","callbacks","Map","Element","observer","ResizeObserver","getObserver","entries","entry","callback","get","target","observeResize","element","set","observe","delete","unobserve","resetSharedResizeObserver","disconnect","clear"],"sources":["../src/widgets/echart/const.ts","../src/widgets/echart/utils.ts","../src/widgets/echart/shared-resize-observer.ts"],"sourcesContent":["export const DEFAULT_STACK_GROUP = 'stacked'\n","import deepmerge from 'deepmerge'\nimport type { EchartOptionsProps } from './types'\nimport type { Theme } from '@mui/material'\nimport { DEFAULT_STACK_GROUP } from './const'\n\n/**\n * Deep-merges two ECharts option objects with smart handling for `color`, `axisLabel`, and `series` keys.\n *\n * @param optionA - Base ECharts options.\n * @param optionB - Override ECharts options to merge on top.\n * @param customMergeFn - Optional function returning a custom merge strategy per key.\n * @returns The merged ECharts options object.\n *\n * @remarks\n * - `color` arrays are replaced entirely (not concatenated).\n * - `axisLabel` formatters are composed so the base formatter can suppress values by returning `''`.\n * - `series` arrays are merged element-by-element rather than concatenated.\n *\n * @example\n * ```tsx\n * const option = mergeEchartWidgetConfig(props.option, {\n * series: [{ barWidth: '60%', itemStyle: { borderRadius: [4, 4, 0, 0] } }],\n * tooltip: { trigger: 'axis' },\n * })\n * ```\n */\nexport function mergeEchartWidgetConfig<T extends EchartOptionsProps>(\n optionA: T | undefined,\n optionB: T | undefined,\n customMergeFn?: (\n key: string,\n ) => ((a: unknown, b: unknown) => unknown) | undefined,\n): T {\n return deepmerge(optionA ?? {}, optionB ?? {}, {\n customMerge: (key) => {\n const externalMerge = customMergeFn?.(key)\n if (externalMerge) return externalMerge\n\n if (key === 'color') {\n return (_, b: T['color']) => b\n }\n if (key === 'axisLabel') {\n return (\n a: Record<string, unknown> | undefined,\n b: Record<string, unknown> | undefined,\n ) => {\n const merged = { ...a, ...b }\n if (\n typeof a?.formatter === 'function' &&\n typeof b?.formatter === 'function'\n ) {\n const baseFormatter = a.formatter as (value: unknown) => unknown\n const customFormatter = b.formatter as (value: unknown) => unknown\n merged.formatter = (value: unknown) => {\n const baseResult = baseFormatter(value)\n if (baseResult === '') return ''\n return customFormatter(value)\n }\n }\n return merged\n }\n }\n if (key === 'series') {\n return (a: T['series'][], b: T['series'][]) => {\n const maxLength = Math.max(a?.length ?? 0, b?.length ?? 0)\n return Array.from({ length: maxLength }, (_, index) => {\n const aItem = a?.[index] ?? {}\n const bItem = b?.[index] ?? {}\n return deepmerge(aItem, bItem as object)\n })\n }\n }\n },\n }) as T\n}\n\n/**\n * Generates ECharts `dataZoom` configuration for interactive zoom and pan on chart axes.\n *\n * @param range - Initial visible range as `{ start, end }` percentages (0-100). Defaults to full range.\n * @param options - Zoom behavior options including axis sliders, inside zoom, and formatter.\n * @param theme - Optional MUI theme for styled slider handles and backgrounds.\n * @returns An object containing the `dataZoom` array configuration.\n */\nexport function getEChartZoomConfig(\n { start, end }: { start: number; end: number } = { start: 0, end: 100 },\n {\n inside = true,\n xSlider = true,\n ySlider = false,\n showSliders = true,\n xAxisLabelFormatter,\n bottomOffset = 0,\n } = {} as {\n inside?: boolean\n xSlider?: boolean\n ySlider?: boolean\n showSliders?: boolean\n xAxisLabelFormatter?: (value: number) => string\n bottomOffset?: number\n },\n theme?: Theme,\n) {\n const zoom = true\n const sliderStyles = theme ? getEChartZoomSliderStyles(theme) : {}\n\n return {\n dataZoom: [\n inside && {\n throttle: 0,\n type: 'inside',\n xAxisIndex: xSlider ? [0] : [],\n yAxisIndex: ySlider ? [0] : [],\n show: zoom,\n zoomLock: !zoom,\n start,\n end,\n },\n inside &&\n ySlider && {\n throttle: 0,\n type: 'inside',\n show: zoom,\n zoomLock: !zoom,\n start,\n end,\n orientation: 'vertical',\n },\n xSlider && {\n throttle: 0,\n type: 'slider',\n xAxisIndex: [0],\n bottom: bottomOffset,\n height: parseInt(theme?.spacing?.(4) ?? '32'),\n show: zoom && showSliders,\n zoomLock: !zoom,\n start,\n end,\n labelFormatter: xAxisLabelFormatter,\n showDetail: false,\n ...sliderStyles,\n brushSelect: false,\n moveHandleSize: 8,\n handleSize: '100%',\n handleIcon:\n 'image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDkgMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iLTAuNSIgd2lkdGg9IjgiIGhlaWdodD0iMTgiIHJ4PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI3KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMyAyMykiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDMgMTkpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAzIDE1KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4=',\n },\n ySlider && {\n throttle: 0,\n type: 'slider',\n left: parseInt(theme?.spacing?.(6) ?? '48'),\n width: parseInt(theme?.spacing?.(4) ?? '32'),\n yAxisIndex: [0],\n show: zoom && showSliders,\n zoomLock: !zoom,\n start,\n end,\n ...sliderStyles,\n brushSelect: false,\n moveHandleSize: 8,\n handleSize: '100%',\n handleIcon:\n 'image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDM2IDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iOCIgaGVpZ2h0PSIxOCIgcng9IjQiIHRyYW5zZm9ybT0icm90YXRlKC05MCAwLjUgMC41KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDEzIDYpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09InJvdGF0ZSgtOTAgMTcgNikiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0icm90YXRlKC05MCAyMSA2KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4=',\n },\n ].filter((d) => !!d),\n }\n}\n\nfunction getEChartZoomSliderStyles(theme: Theme) {\n return {\n fillerColor: 'rgba(53, 139, 231, 0.25)',\n borderColor: 'rgba(53, 139, 231, 0.3)',\n borderWidth: 0.5,\n backgroundColor: 'transparent',\n borderRadius: 4,\n dataBackground: {\n lineStyle: {\n opacity: 0,\n },\n areaStyle: {\n opacity: 1,\n color: theme.palette.secondary.main,\n },\n },\n selectedDataBackground: {\n lineStyle: {\n opacity: 0,\n },\n areaStyle: {\n opacity: 1,\n color: theme.palette.secondary.main,\n },\n },\n handleStyle: {\n color: theme.palette.common.white,\n borderColor: 'rgba(3, 111, 226, 0.08)',\n borderWidth: 1,\n shadowBlur: 3,\n shadowColor: 'rgba(0, 0, 0, 0.1)',\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n },\n textStyle: {\n color: theme.palette.black[60],\n fontSize: parseInt(theme.typography.overlineDelicate.fontSize as string),\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n },\n } as const\n}\n\n/**\n * Generates ECharts `brush` configuration for interactive data selection on charts.\n *\n * @param options - Brush options including type, mode, and target axis index.\n * @returns An object containing the `brush` configuration.\n */\nexport function getEChartBrushConfig(\n { brushType = 'lineX', brushMode = 'single', xAxisIndex = 0 } = {} as {\n brushType?: string\n brushMode?: string\n xAxisIndex?: number\n throttleType?: string\n throttleDelay?: number\n },\n) {\n return {\n brush: {\n toolbox: ['lineX', 'clear'],\n brushType,\n brushMode,\n xAxisIndex,\n },\n }\n}\n\n/**\n * Returns an ECharts `stack` configuration to group series into a stacked layout.\n *\n * @param stackGroup - The stack group identifier. Defaults to the library's default group.\n * @returns An object with the `stack` property set to the group name.\n */\nexport function getEChartStackConfig(stackGroup: string = DEFAULT_STACK_GROUP) {\n return { stack: stackGroup }\n}\n","/**\n * Shared ResizeObserver singleton for all ECharts instances.\n *\n * Instead of creating 100+ individual ResizeObserver instances (one per chart),\n * this module provides a single shared observer that efficiently handles resize\n * callbacks for all registered elements.\n */\n\ntype ResizeCallback = () => void\n\nconst callbacks = new Map<Element, ResizeCallback>()\n\nlet observer: ResizeObserver | null = null\n\nfunction getObserver(): ResizeObserver {\n observer ??= new ResizeObserver((entries) => {\n for (const entry of entries) {\n const callback = callbacks.get(entry.target)\n callback?.()\n }\n })\n return observer\n}\n\nexport function observeResize(\n element: Element,\n callback: ResizeCallback,\n): () => void {\n callbacks.set(element, callback)\n getObserver().observe(element)\n\n return () => {\n callbacks.delete(element)\n getObserver().unobserve(element)\n }\n}\n\n/** Reset the shared observer (for testing only). */\nexport function resetSharedResizeObserver(): void {\n if (observer) {\n observer.disconnect()\n observer = null\n }\n callbacks.clear()\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { t as e } from "./tooltip-DJUGNZxY.js";
|
|
2
|
+
import { c as t } from "react/compiler-runtime";
|
|
3
|
+
import { useLayoutEffect as n, useRef as r, useState as i } from "react";
|
|
4
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/smart-tooltip/smart-tooltip.tsx
|
|
6
|
+
var o = [];
|
|
7
|
+
function s(s) {
|
|
8
|
+
let c = t(13), { title: l, dependencies: u, timeout: d, TooltipProps: f, children: p } = s, m = u === void 0 ? o : u, h = d === void 0 ? 500 : d, g = r(null), [_, v] = i(!1), y;
|
|
9
|
+
c[0] === m ? y = c[1] : (y = JSON.stringify(m), c[0] = m, c[1] = y);
|
|
10
|
+
let b = y, x;
|
|
11
|
+
c[2] === h ? x = c[3] : (x = () => {
|
|
12
|
+
let e = () => {
|
|
13
|
+
let e = g.current;
|
|
14
|
+
e && v(e.scrollWidth > e.clientWidth || e.scrollHeight > e.clientHeight);
|
|
15
|
+
}, t = setTimeout(e, h), n = g.current, r = n && typeof ResizeObserver < "u" ? new ResizeObserver(e) : null;
|
|
16
|
+
return n && r?.observe(n), () => {
|
|
17
|
+
clearTimeout(t), r?.disconnect();
|
|
18
|
+
};
|
|
19
|
+
}, c[2] = h, c[3] = x);
|
|
20
|
+
let S;
|
|
21
|
+
c[4] !== b || c[5] !== h ? (S = [b, h], c[4] = b, c[5] = h, c[6] = S) : S = c[6], n(x, S);
|
|
22
|
+
let C = _ && l, w;
|
|
23
|
+
c[7] === p ? w = c[8] : (w = p({ ref: g }), c[7] = p, c[8] = w);
|
|
24
|
+
let T;
|
|
25
|
+
return c[9] !== f || c[10] !== C || c[11] !== w ? (T = /* @__PURE__ */ a(e, {
|
|
26
|
+
title: C,
|
|
27
|
+
...f,
|
|
28
|
+
children: w
|
|
29
|
+
}), c[9] = f, c[10] = C, c[11] = w, c[12] = T) : T = c[12], T;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { s as t };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=smart-tooltip-CwGHCqab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-tooltip-CwGHCqab.js","names":["TooltipProps","useLayoutEffect","useRef","useState","JSX","Ref","Tooltip","EMPTY_DEPENDENCIES","SmartTooltip","t0","$","_c","title","dependencies","t1","timeout","t2","children","undefined","ref","isOverflowing","setIsOverflowing","t3","JSON","stringify","dependenciesKey","t4","checkOverflow","el","current","scrollWidth","clientWidth","scrollHeight","clientHeight","timerId","setTimeout","el_0","resizeObserver","ResizeObserver","observe","clearTimeout","disconnect","t5","t6","t7","t8"],"sources":["../src/components/smart-tooltip/smart-tooltip.tsx"],"sourcesContent":["import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_DEPENDENCIES: unknown[] = []\n\n/**\n * An intelligent tooltip wrapper that automatically detects text overflow and displays a tooltip only when content is truncated.\n *\n * @remarks\n * Uses a render prop pattern. The child function receives a `ref` that must be attached to the element being monitored for overflow. Use the `dependencies` array to trigger re-evaluation when content or container size changes.\n *\n * @example\n * ```tsx\n * <SmartTooltip title=\"This is a long text that might get truncated\">\n * {({ ref }) => (\n * <Typography ref={ref} noWrap sx={{ overflow: 'hidden', textOverflow: 'ellipsis' }}>\n * This is a long text that might get truncated\n * </Typography>\n * )}\n * </SmartTooltip>\n * ```\n */\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n dependencies = EMPTY_DEPENDENCIES,\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}) {\n const ref = useRef<T>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n // Call sites pass a fresh `dependencies={[…]}` literal each render; key by\n // value so the effect does not churn ResizeObserver on referential churn.\n const dependenciesKey = JSON.stringify(dependencies)\n\n useLayoutEffect(() => {\n const checkOverflow = () => {\n const el = ref.current\n if (!el) return\n setIsOverflowing(\n el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight,\n )\n }\n\n // Initial measure after layout settles (fonts, flex collapse, …).\n const timerId = setTimeout(checkOverflow, timeout)\n // Re-measure when the element is resized (e.g. legend title reflows as\n // hover-faded actions collapse/expand).\n const el = ref.current\n const resizeObserver =\n el && typeof ResizeObserver !== 'undefined'\n ? new ResizeObserver(checkOverflow)\n : null\n if (el) resizeObserver?.observe(el)\n\n return () => {\n clearTimeout(timerId)\n resizeObserver?.disconnect()\n }\n }, [dependenciesKey, timeout])\n\n return (\n <Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>\n )\n}\n"],"mappings":";;;;;AAIA,IAAMO,IAAgC,CAAA;AAmBtC,SAAOC,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAA6C,EAAAC,UAAAC,cAAAC,GAAAC,SAAAC,GAAAhB,iBAAAiB,gBAAAR,GAElDI,IAAAC,MAAAI,KAAAA,IAAAX,IAAAO,GACAC,IAAAC,MAAAE,KAAAA,IAAA,MAAAF,GAUAG,IAAYjB,EAAU,IAAI,GAC1B,CAAAkB,GAAAC,KAA0ClB,EAAS,EAAK,GAACmB;CAAA,AAAAZ,EAAA,OAAAG,IAGLS,IAAAZ,EAAA,MAA5BY,IAAAC,KAAIC,UAAWX,CAAY,GAACH,EAAA,KAAAG,GAAAH,EAAA,KAAAY;CAApD,IAAAG,IAAwBH,GAA4BI;CAAA,AAAAhB,EAAA,OAAAK,IA0BnDW,IAAAhB,EAAA,MAxBegB,UAAA;EACd,IAAAC,UAAsB;GACpB,IAAAC,IAAWT,EAAGU;GACTD,KACLP,EACEO,EAAEE,cAAeF,EAAEG,eAAgBH,EAAEI,eAAgBJ,EAAEK,YACzD;EAAC,GAIHC,IAAgBC,WAAWR,GAAeZ,CAAO,GAGjDqB,IAAWjB,EAAGU,SACdQ,IACED,KAAM,OAAOE,iBAAmB,MAAhC,IACQA,eAAeX,CAChB,IAFP;EAGiC,OAA/BC,KAAIS,GAAcE,QAAUX,CAAE,SAE3B;GAELS,AADAG,aAAaN,CAAO,GACpBG,GAAcI,WAAa;EAAC;CAC7B,GACF/B,EAAA,KAAAK,GAAAL,EAAA,KAAAgB;CAAA,IAAAgB;CAxBDzC,AAwBCS,EAAA,OAAAe,KAAAf,EAAA,OAAAK,KAAE2B,IAAA,CAACjB,GAAiBV,CAAO,GAACL,EAAA,KAAAe,GAAAf,EAAA,KAAAK,GAAAL,EAAA,KAAAgC,KAAAA,IAAAhC,EAAA,IAxB7BT,EAAgByB,GAwBbgB,CAA0B;CAGX,IAAAC,IAAAvB,KAAAR,GAAsBgC;CAAA,AAAAlC,EAAA,OAAAO,IAClB2B,IAAAlC,EAAA,MAAjBkC,IAAA3B,EAAS,EAAAE,OAAM,CAAC,GAACT,EAAA,KAAAO,GAAAP,EAAA,KAAAkC;CAAA,IAAAC;CACV,OADUnC,EAAA,OAAAV,KAAAU,EAAA,QAAAiC,KAAAjC,EAAA,QAAAkC,KADpBC,IAAA,kBAAC,GAAD;EAAgB,OAAAF;EAAsB,GAAM3C;EACzC4C,UAAAA;CADK,CAAA,GAEElC,EAAA,KAAAV,GAAAU,EAAA,MAAAiC,GAAAjC,EAAA,MAAAkC,GAAAlC,EAAA,MAAAmC,KAAAA,IAAAnC,EAAA,KAFVmC;AAEU"}
|