@carto/ps-react-ui 4.8.0 → 4.9.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/{change-column-Cidl_M-4.js → change-column-B4IT0rh6.js} +2 -2
- package/dist/{change-column-Cidl_M-4.js.map → change-column-B4IT0rh6.js.map} +1 -1
- package/dist/components.js +4 -3
- package/dist/components.js.map +1 -1
- package/dist/{data-zoom-layout-BH0LPwSy.js → data-zoom-layout-0QSptXG_.js} +2 -2
- package/dist/{data-zoom-layout-BH0LPwSy.js.map → data-zoom-layout-0QSptXG_.js.map} +1 -1
- package/dist/{download-config-DNLkypdN.js → download-config-CzmjOT2T.js} +2 -2
- package/dist/{download-config-DNLkypdN.js.map → download-config-CzmjOT2T.js.map} +1 -1
- package/dist/{lasso-tool-BYbxrJ-7.js → lasso-tool-CDFj4zKY.js} +2 -1
- package/dist/lasso-tool-CDFj4zKY.js.map +1 -0
- package/dist/range-l4fNHLEg.js +213 -0
- package/dist/range-l4fNHLEg.js.map +1 -0
- package/dist/resolve-theme-color-BdojIw0K.js +47 -0
- package/dist/resolve-theme-color-BdojIw0K.js.map +1 -0
- package/dist/{spread-CTuIXZSM.js → spread-Y9R1f5dm.js} +2 -2
- package/dist/{spread-CTuIXZSM.js.map → spread-Y9R1f5dm.js.map} +1 -1
- package/dist/table-CQCAnDLb.js +388 -0
- package/dist/table-CQCAnDLb.js.map +1 -0
- package/dist/types/components/lasso-tool/styles.d.ts +1 -0
- package/dist/types/components/measurement-tools/styles.d.ts +1 -0
- package/dist/types/widgets/actions/brush-toggle/style.d.ts +1 -1
- package/dist/types/widgets/actions/shared/styles.d.ts +1 -1
- package/dist/types/widgets/actions/zoom-toggle/style.d.ts +1 -1
- package/dist/types/widgets/echart/types.d.ts +1 -1
- package/dist/types/widgets/toolbar-actions/styles.d.ts +1 -1
- package/dist/types/widgets-v2/actions/brush-toggle/style.d.ts +1 -1
- package/dist/types/widgets-v2/actions/change-column/style.d.ts +1 -1
- package/dist/types/widgets-v2/actions/fullscreen/style.d.ts +1 -1
- package/dist/types/widgets-v2/actions/lock-selection/style.d.ts +1 -1
- package/dist/types/widgets-v2/actions/relative-data/style.d.ts +1 -1
- package/dist/types/widgets-v2/actions/searcher/style.d.ts +1 -1
- package/dist/types/widgets-v2/actions/stack-toggle/style.d.ts +1 -1
- package/dist/types/widgets-v2/actions/zoom-toggle/style.d.ts +1 -1
- package/dist/types/widgets-v2/bar/types.d.ts +8 -3
- package/dist/types/widgets-v2/category/types.d.ts +8 -4
- package/dist/types/widgets-v2/formula/types.d.ts +10 -7
- package/dist/types/widgets-v2/histogram/types.d.ts +7 -3
- package/dist/types/widgets-v2/index.d.ts +1 -0
- package/dist/types/widgets-v2/pie/types.d.ts +10 -3
- package/dist/types/widgets-v2/range/range-ui.d.ts +12 -4
- package/dist/types/widgets-v2/range/range.d.ts +13 -8
- package/dist/types/widgets-v2/scatterplot/types.d.ts +7 -3
- package/dist/types/widgets-v2/table/style.d.ts +0 -4
- package/dist/types/widgets-v2/table/table-ui.d.ts +7 -1
- package/dist/types/widgets-v2/table/table.d.ts +1 -1
- package/dist/types/widgets-v2/table/types.d.ts +13 -2
- package/dist/types/widgets-v2/timeseries/types.d.ts +7 -3
- package/dist/types/widgets-v2/types.d.ts +25 -0
- package/dist/types/widgets-v2/utils/index.d.ts +1 -0
- package/dist/types/widgets-v2/utils/resolve-theme-color.d.ts +18 -0
- package/dist/types/widgets-v2/utils/resolve-theme-color.test.d.ts +1 -0
- package/dist/types/widgets-v2/wrapper/style.d.ts +1 -2
- package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +6 -1
- package/dist/widgets/actions.js +1 -1
- package/dist/widgets/bar.js +1 -1
- package/dist/widgets/category.js +1 -1
- package/dist/widgets/formula.js +1 -1
- package/dist/widgets/histogram.js +1 -1
- package/dist/widgets/markdown.js +1 -1
- package/dist/widgets/pie.js +1 -1
- package/dist/widgets/scatterplot.js +1 -1
- package/dist/widgets/spread.js +1 -1
- package/dist/widgets/table.js +1 -1
- package/dist/widgets/timeseries.js +1 -1
- package/dist/widgets/utils.js +1 -1
- package/dist/widgets/wrapper.js +1 -1
- package/dist/widgets-v2/actions.js +1 -1
- package/dist/widgets-v2/bar.js +59 -56
- package/dist/widgets-v2/bar.js.map +1 -1
- package/dist/widgets-v2/category.js +1 -1
- package/dist/widgets-v2/formula.js +1 -1
- package/dist/widgets-v2/histogram.js +66 -63
- package/dist/widgets-v2/histogram.js.map +1 -1
- package/dist/widgets-v2/markdown.js +1 -1
- package/dist/widgets-v2/pie.js +101 -95
- package/dist/widgets-v2/pie.js.map +1 -1
- package/dist/widgets-v2/range.js +1 -1
- package/dist/widgets-v2/scatterplot.js +108 -102
- package/dist/widgets-v2/scatterplot.js.map +1 -1
- package/dist/widgets-v2/spread.js +2 -2
- package/dist/widgets-v2/table.js +3 -3
- package/dist/widgets-v2/timeseries.js +86 -80
- package/dist/widgets-v2/timeseries.js.map +1 -1
- package/dist/widgets-v2/utils.js +4 -3
- package/dist/widgets-v2.js +229 -229
- package/dist/widgets-v2.js.map +1 -1
- package/package.json +5 -3
- package/src/components/lasso-tool/styles.ts +1 -0
- package/src/components/measurement-tools/styles.ts +1 -0
- package/src/widgets/echart/types.ts +1 -1
- package/src/widgets-v2/bar/options.test.ts +19 -2
- package/src/widgets-v2/bar/options.ts +9 -3
- package/src/widgets-v2/bar/types.ts +8 -3
- package/src/widgets-v2/category/types.ts +9 -4
- package/src/widgets-v2/formula/types.ts +11 -7
- package/src/widgets-v2/histogram/options.test.ts +16 -2
- package/src/widgets-v2/histogram/options.ts +5 -4
- package/src/widgets-v2/histogram/types.ts +7 -3
- package/src/widgets-v2/index.ts +3 -0
- package/src/widgets-v2/pie/options.test.ts +20 -4
- package/src/widgets-v2/pie/options.ts +21 -17
- package/src/widgets-v2/pie/types.ts +10 -3
- package/src/widgets-v2/range/range-ui.test.tsx +8 -2
- package/src/widgets-v2/range/range-ui.tsx +81 -14
- package/src/widgets-v2/range/range.tsx +14 -8
- package/src/widgets-v2/scatterplot/options.test.ts +15 -3
- package/src/widgets-v2/scatterplot/options.ts +15 -11
- package/src/widgets-v2/scatterplot/types.ts +7 -3
- package/src/widgets-v2/table/style.ts +2 -5
- package/src/widgets-v2/table/table-ui.tsx +40 -7
- package/src/widgets-v2/table/table.tsx +6 -1
- package/src/widgets-v2/table/types.ts +13 -2
- package/src/widgets-v2/timeseries/options.test.ts +17 -2
- package/src/widgets-v2/timeseries/options.ts +10 -3
- package/src/widgets-v2/timeseries/types.ts +7 -3
- package/src/widgets-v2/types.ts +25 -0
- package/src/widgets-v2/utils/index.ts +1 -0
- package/src/widgets-v2/utils/resolve-theme-color.test.ts +43 -0
- package/src/widgets-v2/utils/resolve-theme-color.ts +34 -0
- package/src/widgets-v2/wrapper/style.ts +1 -2
- package/src/widgets-v2/wrapper/widget-wrapper.test.tsx +30 -0
- package/src/widgets-v2/wrapper/widget-wrapper.tsx +11 -1
- package/dist/lasso-tool-BYbxrJ-7.js.map +0 -1
- package/dist/merge-options-DCkkHZIf.js +0 -34
- package/dist/merge-options-DCkkHZIf.js.map +0 -1
- package/dist/range-DsqTjSpg.js +0 -186
- package/dist/range-DsqTjSpg.js.map +0 -1
- package/dist/table-HIpXuq4G.js +0 -390
- package/dist/table-HIpXuq4G.js.map +0 -1
|
@@ -6,7 +6,7 @@ import "zustand/shallow";
|
|
|
6
6
|
import "@mui/icons-material";
|
|
7
7
|
import "react";
|
|
8
8
|
import { d as n, a as s } from "./exports-Cr43OCul.js";
|
|
9
|
-
import "./lasso-tool-
|
|
9
|
+
import "./lasso-tool-CDFj4zKY.js";
|
|
10
10
|
import "./cjs-D4KH3azB.js";
|
|
11
11
|
import "@dnd-kit/core";
|
|
12
12
|
import "@dnd-kit/sortable";
|
|
@@ -54,4 +54,4 @@ export {
|
|
|
54
54
|
T as f,
|
|
55
55
|
b as s
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=download-config-
|
|
57
|
+
//# sourceMappingURL=download-config-CzmjOT2T.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-config-
|
|
1
|
+
{"version":3,"file":"download-config-CzmjOT2T.js","sources":["../src/widgets/utils/chart-config/csv-modifiers.ts","../src/widgets/utils/chart-config/download-config.ts"],"sourcesContent":["/**\n * Shared CSV export modifiers for chart widgets\n */\n\n/**\n * Flattens object array data into CSV-ready rows.\n * Used by bar, pie, histogram, and timeseries widgets.\n *\n * @param data - Array of series, where each series is an array of data objects\n * @returns CSV rows with headers and values\n */\nexport function flattenObjectArrayToCSV<T extends Record<string, unknown>>(\n data: T[][],\n): string[][] {\n const rows: string[][] = []\n\n // Add headers from first data point if available\n if (data.length > 0 && (data[0]?.length ?? 0) > 0) {\n const firstDataPoint = data?.[0]?.[0] ?? {}\n const headers = Object.keys(firstDataPoint)\n rows.push(headers)\n }\n\n // Add data rows from all series\n data.forEach((series) => {\n series.forEach((dataPoint) => {\n const values = Object.values(dataPoint).map((v) => String(v))\n rows.push(values)\n })\n })\n\n return rows\n}\n\n/**\n * Creates CSV rows for scatterplot data.\n * Scatterplot uses array format [x, y] instead of objects.\n *\n * @param data - Array of series, where each series is an array of [x, y] tuples\n * @returns CSV rows with ['x', 'y'] headers\n */\nexport function scatterplotDataToCSV(data: number[][][]): string[][] {\n const rows: string[][] = []\n\n // Add headers\n rows.push(['x', 'y'])\n\n // Add data rows from all series\n data.forEach((series) => {\n series.forEach((dataPoint) => {\n rows.push([String(dataPoint[0]), String(dataPoint[1])])\n })\n })\n\n return rows\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../../actions'\nimport type { ConfigProps } from '../../loader/types'\n\nexport function createChartDownloadConfig<TData>(\n csvModifier: (data: TData) => string[][],\n) {\n return function ({ refUI }: ConfigProps): DownloadItem<TData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = csvModifier(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ]\n }\n}\n"],"names":["flattenObjectArrayToCSV","data","rows","length","firstDataPoint","headers","Object","keys","push","forEach","series","dataPoint","values","map","v","String","scatterplotDataToCSV","createChartDownloadConfig","csvModifier","refUI","downloadToPNG","modifier","downloadToCSV"],"mappings":";;;;;;;;;;;;;;AAWO,SAASA,EACdC,GACY;AACZ,QAAMC,IAAmB,CAAA;AAGzB,MAAID,EAAKE,SAAS,MAAMF,EAAK,CAAC,GAAGE,UAAU,KAAK,GAAG;AACjD,UAAMC,IAAiBH,IAAO,CAAC,IAAI,CAAC,KAAK,CAAA,GACnCI,IAAUC,OAAOC,KAAKH,CAAc;AAC1CF,IAAAA,EAAKM,KAAKH,CAAO;AAAA,EACnB;AAGAJ,SAAAA,EAAKQ,QAASC,CAAAA,MAAW;AACvBA,IAAAA,EAAOD,QAASE,CAAAA,MAAc;AAC5B,YAAMC,IAASN,OAAOM,OAAOD,CAAS,EAAEE,IAAKC,CAAAA,MAAMC,OAAOD,CAAC,CAAC;AAC5DZ,MAAAA,EAAKM,KAAKI,CAAM;AAAA,IAClB,CAAC;AAAA,EACH,CAAC,GAEMV;AACT;AASO,SAASc,EAAqBf,GAAgC;AACnE,QAAMC,IAAmB,CAAA;AAGzBA,SAAAA,EAAKM,KAAK,CAAC,KAAK,GAAG,CAAC,GAGpBP,EAAKQ,QAASC,CAAAA,MAAW;AACvBA,IAAAA,EAAOD,QAASE,CAAAA,MAAc;AAC5BT,MAAAA,EAAKM,KAAK,CAACO,OAAOJ,EAAU,CAAC,CAAC,GAAGI,OAAOJ,EAAU,CAAC,CAAC,CAAC,CAAC;AAAA,IACxD,CAAC;AAAA,EACH,CAAC,GAEMT;AACT;ACpDO,SAASe,EACdC,GACA;AACA,SAAO,SAAU;AAAA,IAAEC,OAAAA;AAAAA,EAAAA,GAA6C;AAC9D,WAAO,CACL;AAAA,MACE,GAAGC;AAAAA,MACHC,UAAUA,MAAMD,EAAcC,SAASF,CAAK;AAAA,IAAA,GAE9C;AAAA,MACE,GAAGG;AAAAA,MACHD,UAAU,OAAOpB,MAAS;AACxB,cAAMC,IAAOgB,EAAYjB,CAAI;AAC7B,eAAOqB,EAAcD,SAASnB,CAAI;AAAA,MACpC;AAAA,IAAA,CACD;AAAA,EAEL;AACF;"}
|
|
@@ -99,6 +99,7 @@ const B = {
|
|
|
99
99
|
alignItems: "center",
|
|
100
100
|
justifyContent: "flex-start",
|
|
101
101
|
overflow: "hidden",
|
|
102
|
+
width: "fit-content",
|
|
102
103
|
"&.inline": {
|
|
103
104
|
flexDirection: "column",
|
|
104
105
|
alignItems: "flex-start",
|
|
@@ -550,4 +551,4 @@ export {
|
|
|
550
551
|
P as f,
|
|
551
552
|
A as s
|
|
552
553
|
};
|
|
553
|
-
//# sourceMappingURL=lasso-tool-
|
|
554
|
+
//# sourceMappingURL=lasso-tool-CDFj4zKY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lasso-tool-CDFj4zKY.js","sources":["../src/components/lasso-tool/icons.tsx","../src/components/lasso-tool/const.tsx","../src/components/lasso-tool/styles.ts","../src/components/lasso-tool/chip.tsx","../src/components/lasso-tool/lasso-tool.tsx"],"sourcesContent":["import type { SVGProps } from 'react'\n\nexport function DrawPolygonIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.996 2.996 0 0 0 0 2H6.829a2.995 2.995 0 0 0 0-2h10.342Zm-2.463-5.707 3.998 4a3.013 3.013 0 0 0-1.414 1.414l-4-3.999a3.014 3.014 0 0 0 1.31-1.214l.106-.201ZM2.998 6.829a2.995 2.995 0 0 0 2.002 0v10.342a2.993 2.993 0 0 0-2.002 0V6.83ZM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm1.84-3.919c.464.483 1.09.81 1.79.896l-1.47 2.94a2.992 2.992 0 0 0-1.79-.894l1.47-2.942ZM16 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm9.171.998a2.994 2.994 0 0 0 0 2.002H6.829a2.995 2.995 0 0 0 0-2.002h6.342Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawSquareIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.993 2.993 0 0 0-.17.974l-.001.052.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2h10.342ZM2.998 6.828a2.995 2.995 0 0 0 2.002 0V17.17a2.993 2.993 0 0 0-2.002 0V6.83Zm16.001 0a2.995 2.995 0 0 0 2 0V17.17a2.993 2.993 0 0 0-2 0V6.829ZM20 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm13.171.998a2.991 2.991 0 0 0-.17.976L17 4.026l.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2H17.17Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawCircleIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2Zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm0 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawLassoIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 3c4.935 0 9 3.736 9 9l-.002.343-.012.668c-.012.438-.033.86-.062 1.266l-.05.597C20.498 18.767 19.267 21 17 21c-1.192 0-1.971-.341-2.988-1.122l-.472-.375c-.401-.319-.64-.473-.888-.566a4.938 4.938 0 0 0-.415-.13l-.34-.085-.398-.086-.456-.086-.66-.111-1.708-.273a9.112 9.112 0 0 1-.952-.206C5.46 17.301 3 14.954 3 12.015c0-1.508.485-2.995 1.436-4.458.355.585.906 1.04 1.562 1.272C5.328 9.916 5 10.977 5 12.015c0 1.889 1.78 3.588 3.282 4.025l.085.023.345.076.517.092 1.619.257.583.1.518.098.237.05.433.103c.272.07.512.143.73.224.434.161.783.373 1.235.718l.457.362c.806.646 1.24.857 1.959.857.893 0 1.63-1.518 1.895-4.45l.045-.585c.013-.2.024-.407.033-.62l.02-.655c.005-.224.007-.454.007-.69 0-4.12-3.133-7-7-7a1 1 0 1 1 0-2ZM7 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function SelectToolIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='m10.083 19.394.057.113a1 1 0 0 0 1.72.007l2.869-4.786 4.786-2.87a1 1 0 0 0-.121-1.777l-14-6c-.83-.356-1.669.483-1.313 1.313l6.002 14ZM6.905 6.904l9.903 4.244-3.322 1.995-.102.069a1 1 0 0 0-.242.274l-1.992 3.321-4.245-9.903Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n","import type { LassoToolsMode, LassoToolsModesMapping } from '../types'\nimport {\n DrawPolygonIcon,\n DrawSquareIcon,\n DrawCircleIcon,\n DrawLassoIcon,\n SelectToolIcon,\n} from './icons'\nimport type { LassoToolsComponentProps } from './types'\nimport type { RequiredDeep } from 'type-fest'\n\nexport const LASSO_TOOLS_LABELS: NonNullable<\n RequiredDeep<LassoToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to draw your spatial filter',\n inactive: 'Click on the map to draw your spatial filter',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide drawing',\n inactive: 'Show drawing',\n },\n },\n options: {\n mode: {\n title: 'Choose a drawing tool',\n options: {\n circle: 'Circle',\n lasso: 'Lasso tool',\n polygon: 'Polygon',\n rectangle: 'Rectangle',\n edit: 'Edit feature',\n },\n },\n },\n noData: {\n title: 'Spatial filter not applied',\n description:\n 'Select a drawing or editing tool and click on the map to define your spatial filter',\n },\n actions: {\n toggleAll: {\n active: 'Hide all',\n inactive: 'Show all',\n },\n deleteAll: 'Remove all',\n },\n} as const\n\nexport const DEFAULT_LASSO_TOOLS_MODES_MAPPING: LassoToolsModesMapping<LassoToolsMode> =\n {\n polygon: {\n icon: <DrawPolygonIcon />,\n },\n rectangle: {\n icon: <DrawSquareIcon />,\n },\n circle: {\n icon: <DrawCircleIcon />,\n },\n lasso: {\n icon: <DrawLassoIcon />,\n },\n edit: {\n icon: <SelectToolIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n overflow: 'hidden',\n width: 'fit-content',\n\n '&.inline': {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n paddingTop: ({ spacing }) => spacing(1),\n '&.inline': {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n borderRadius: ({ spacing }) => spacing(0.5),\n\n '& .MuiDivider-root': {\n height: ({ spacing }) => spacing(4),\n\n '&.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(4),\n },\n '&.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(4),\n margin: ({ spacing }) => `${spacing(0.5, 0, 1)} !important`,\n borderRadius: '0 !important',\n },\n },\n\n '& .MuiToggleButton-sizeSmall': {\n margin: 0,\n\n '&.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(3),\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(3),\n },\n },\n\n '.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n\n '&:first-of-type': {\n marginLeft: 0,\n },\n '&:not(:last-of-type)': {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n },\n '&.MuiToggleButtonGroup-horizontal:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0.5),\n },\n },\n '&.MuiToggleButtonGroup-vertical:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0, 0.5),\n\n '&:not(:last-of-type)': {\n marginRight: 0,\n },\n '&:last-of-type': {\n marginBottom: 0,\n },\n },\n },\n },\n },\n icon: {\n borderRadius: 0,\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingBottom: ({ spacing }) => spacing(0.5),\n\n '&.inline': {\n paddingX: 0,\n paddingBottom: 0,\n },\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n more: {\n width: ({ spacing }) => spacing(4),\n },\n },\n chip: {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n overflowX: 'auto',\n scrollbarWidth: 'none',\n paddingX: ({ spacing }) => spacing(1),\n\n '&.inline': {\n overflowX: 'visible',\n flexWrap: 'wrap',\n },\n },\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Chip } from '@mui/material'\nimport type { PickDeep } from 'type-fest'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, LassoToolsData } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsUIChip({\n chipProps,\n value,\n labels,\n onChipToggle,\n onDelete,\n}: Pick<LassoToolsComponentProps, 'chipProps' | 'onDelete' | 'onChipToggle'> & {\n value: LassoToolsData\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'chip'>['chip']\n}) {\n const chipState = value.visible ? 'active' : 'inactive'\n const chipLabel =\n labels?.tooltip?.[chipState] ?? LASSO_TOOLS_LABELS.chip.tooltip[chipState]\n\n return (\n <Tooltip title={chipLabel} placement='bottom' {...chipProps?.TooltipProps}>\n <Chip\n sx={{\n ...styles.chip.chip,\n }}\n color={value.visible ? 'secondary' : 'default'}\n size='small'\n onDelete={() => onDelete(value.id)}\n label={value.label}\n onClick={() => onChipToggle(value.id, !value.visible)}\n {...chipProps?.ChipsProps}\n />\n </Tooltip>\n )\n}\n","import { ArrowDropDown, MoreVertOutlined } from '@mui/icons-material'\nimport {\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n SvgIcon,\n ToggleButton,\n Typography,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport deepmerge from 'deepmerge'\nimport {\n useMemo,\n useState,\n type ComponentProps,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport type { PickDeep } from 'type-fest'\nimport { Tooltip } from '../tooltip/tooltip'\nimport type { LassoToolsModes } from '../types'\nimport { LassoToolsUIChip } from './chip'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, OptionsChildrenProps } from './types'\n\nconst EMPTY_VALUES: LassoToolsComponentProps['values'] = []\nconst EMPTY_PAPER_PROPS: NonNullable<LassoToolsComponentProps['PaperProps']> =\n {}\n\n/**\n * Provides a comprehensive floating interface for spatial selection and drawing operations on maps, supporting polygon, rectangle, circle, freehand lasso, and edit modes.\n *\n * @remarks\n * Supports customizable slots for action, options, chips, and secondary actions via compound component pattern (e.g., `LassoToolsUI.Action`, `LassoToolsUI.Chips`).\n *\n * @example\n * ```tsx\n * <LassoToolsUI\n * enabled={enabled}\n * values={spatialFilters}\n * modes={modes}\n * modesMapping={modesMapping}\n * modeSelected={modeSelected}\n * onActionToggle={setEnabled}\n * onChangeMode={setModeSelected}\n * onChipToggle={handleChipToggle}\n * onDelete={handleDelete}\n * />\n * ```\n */\nexport function LassoToolsUI({\n enabled,\n values = EMPTY_VALUES,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = EMPTY_PAPER_PROPS,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n ChipsSlot = LassoToolsUI.Chips,\n ActionSlot = LassoToolsUI.Action,\n SecondaryActionsSlot = LassoToolsUI.SecondaryActions,\n OptionsSlot = LassoToolsUI.Options,\n}: LassoToolsComponentProps): JSX.Element {\n const slotArgs = {\n enabled,\n values,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n }\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n {!!ActionSlot && <ActionSlot {...slotArgs} />}\n {!!OptionsSlot && (\n <Options>\n {(props) => {\n return <OptionsSlot {...slotArgs} {...props} />\n }}\n </Options>\n )}\n {!!ChipsSlot && <ChipsSlot {...slotArgs} />}\n {!!SecondaryActionsSlot && <SecondaryActionsSlot {...slotArgs} />}\n </Paper>\n )\n}\n\nfunction LassoToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n LassoToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'action'>['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n LASSO_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nconst EMPTY_TRIGGER_PROPS: { Icon?: ReactNode; sx?: SxProps<Theme> } = {}\n\nfunction Options({\n TriggerProps = EMPTY_TRIGGER_PROPS,\n MenuProps,\n children,\n}: {\n TriggerProps?: {\n Icon?: ReactNode\n sx?: SxProps<Theme>\n }\n MenuProps?: Partial<ComponentProps<typeof Menu>>\n children: (props: OptionsChildrenProps) => JSX.Element\n}) {\n const { Icon, sx } = TriggerProps\n const IconNode = Icon ?? <ArrowDropDown />\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={{\n ...styles.options.icon,\n ...sx,\n }}\n onClick={handleToggle}\n >\n {IconNode}\n </IconButton>\n <Menu\n id='lasso-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'lasso-button',\n sx: styles.options.menu,\n }}\n {...MenuProps}\n >\n <div>\n {children({\n onClose: handleClose,\n })}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n modeSelected,\n labels,\n onChangeMode,\n onClose,\n}: Required<Pick<LassoToolsComponentProps, 'modeSelected' | 'onChangeMode'>> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n onClose: OptionsChildrenProps['onClose']\n}) {\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n value: NonNullable<(typeof data)[number]>['value'],\n ) => {\n e.preventDefault()\n onChangeMode?.(value)\n onClose()\n }\n\n return data\n .filter((mode): mode is NonNullable<typeof mode> => Boolean(mode))\n .map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n disabled={!!mode.disabled}\n onClick={(e) => handleClick(e, mode.value)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>{mode.icon}</SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })\n}\n\nfunction SecondaryActionsWrapper({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n if (!values?.length || values.length <= 1) {\n return null\n }\n\n const hasVisible = values?.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.actions?.toggleAll?.active ??\n LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.actions?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.actions?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <>\n <Divider orientation='vertical' flexItem />\n <Options\n TriggerProps={{ Icon: <MoreVertOutlined />, sx: styles.options.more }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n }}\n >\n {(props) => {\n return (\n <>\n <MenuItem\n color='inherit'\n onClick={() => {\n onAllChipToggle?.()\n props.onClose()\n }}\n >\n {toggleAllLabel}\n </MenuItem>\n <Divider />\n <MenuItem\n color='error'\n onClick={() => {\n onAllDelete?.()\n props.onClose()\n }}\n >\n <Typography variant='body2' color='error'>\n {deleteAllLabel}\n </Typography>\n </MenuItem>\n </>\n )\n }}\n </Options>\n </>\n )\n}\n\nLassoToolsUI.Action = function ActionsWrapper({\n modes,\n modesMapping,\n modeSelected,\n actionProps,\n enabled,\n labels,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const handleToggle: LassoToolsComponentProps['onActionToggle'] = (data) => {\n return onActionToggle?.(data)\n }\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = data[mode]\n\n return (\n <LassoToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled ?? false}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </LassoToolsUIAction>\n )\n}\n\nLassoToolsUI.Chips = function ChipsWrapper({\n values,\n labels,\n chipProps,\n onDelete,\n onChipToggle,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n onActionToggle?.(false)\n return onDelete?.(valueId)\n }\n\n return (\n !!values?.length && (\n <Box sx={styles.chip.container}>\n {values?.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={(id, data) => onChipToggle?.(id, data)}\n />\n ))}\n </Box>\n )\n )\n}\n\nLassoToolsUI.SecondaryActions = SecondaryActionsWrapper\n\nLassoToolsUI.Options = function OptionsWrapper({\n values,\n modes,\n modesMapping,\n modeSelected,\n labels,\n onChangeMode,\n ...props\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> &\n OptionsChildrenProps) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modesValues = Object.values(_modes)\n\n const handleChangeMode: LassoToolsComponentProps['onChangeMode'] = (data) => {\n return onChangeMode?.(data)\n }\n\n return (\n <>\n <ModeList data={modesValues} labels={labels?.options}>\n <OptionsList\n {...props}\n labels={labels?.options}\n data={modesValues}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </ModeList>\n {!!edit && (\n <>\n <Divider />\n <OptionsList\n {...props}\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values?.length,\n },\n ]}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </>\n )}\n </>\n )\n}\n"],"names":["DrawPolygonIcon","props","$","_c","t0","Symbol","for","t1","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","chip","options","mode","title","circle","lasso","polygon","rectangle","edit","noData","description","actions","toggleAll","deleteAll","DEFAULT_LASSO_TOOLS_MODES_MAPPING","icon","styles","container","display","flexDirection","alignItems","justifyContent","overflow","width","gap","spacing","height","borderRadius","menu","paddingTop","boxShadow","backgroundColor","margin","marginLeft","marginRight","marginBottom","paddingX","paddingBottom","icons","color","palette","text","primary","more","overflowX","scrollbarWidth","flexWrap","LassoToolsUIChip","chipProps","value","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t2","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","Tooltip","EMPTY_VALUES","EMPTY_PAPER_PROPS","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","ChipsSlot","ActionSlot","SecondaryActionsSlot","OptionsSlot","undefined","sx","Chips","Action","SecondaryActions","Options","slotArgs","t9","t10","t11","t12","t13","t14","jsxs","Paper","LassoToolsUIAction","children","actionState","actionLabel","ToggleButton","EMPTY_TRIGGER_PROPS","TriggerProps","MenuProps","Icon","ArrowDropDown","IconNode","anchorEl","setAnchorEl","useState","open","Boolean","event","currentTarget","handleToggle","handleClose","IconButton","onClose","Menu","ModeList","data","length","modeTitle","Typography","OptionsList","handleClick","e","preventDefault","filter","map","MenuItem","disabled","ListItemIcon","SvgIcon","ListItemText","SecondaryActionsWrapper","toggleAllLabel","some","_temp","deleteAllLabel","Divider","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","Fragment","useMemo","deepmerge","Object","keys","modeSelectedValue","handleDelete","valueId","Box","_modes","modesValues","handleChangeMode"],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { jsx as $, jsxs as G } from "react/jsx-runtime";
|
|
2
|
+
import { c as W } from "react/compiler-runtime";
|
|
3
|
+
import { u as V } from "./widget-context-DTGO0Yta.js";
|
|
4
|
+
import { u as X } from "./widget-store-registry-_W4Z4xp-.js";
|
|
5
|
+
import { useState as J } from "react";
|
|
6
|
+
import "zustand";
|
|
7
|
+
import { Box as N, Slider as Y, Typography as Z, TextField as ee } from "@mui/material";
|
|
8
|
+
const _ = {
|
|
9
|
+
root: {
|
|
10
|
+
display: "flex",
|
|
11
|
+
flexDirection: "column",
|
|
12
|
+
gap: 3,
|
|
13
|
+
py: 1
|
|
14
|
+
},
|
|
15
|
+
item: {
|
|
16
|
+
display: "flex",
|
|
17
|
+
flexDirection: "column",
|
|
18
|
+
gap: 1.5
|
|
19
|
+
},
|
|
20
|
+
sliderContainer: {
|
|
21
|
+
display: "flex",
|
|
22
|
+
flexDirection: "column",
|
|
23
|
+
gap: 1,
|
|
24
|
+
px: 1
|
|
25
|
+
},
|
|
26
|
+
slider: {
|
|
27
|
+
width: "100%",
|
|
28
|
+
"&.Mui-disabled": {
|
|
29
|
+
color: (a) => a.palette.text.disabled
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
inputsRow: {
|
|
33
|
+
display: "flex",
|
|
34
|
+
gap: 2,
|
|
35
|
+
alignItems: "center"
|
|
36
|
+
},
|
|
37
|
+
input: {
|
|
38
|
+
flex: 1,
|
|
39
|
+
"& .MuiInputBase-input": {
|
|
40
|
+
textAlign: "center"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
note: {
|
|
44
|
+
color: "text.secondary"
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
function te(a) {
|
|
48
|
+
const e = W(11), {
|
|
49
|
+
items: n,
|
|
50
|
+
onChange: t,
|
|
51
|
+
onChangeCommitted: l,
|
|
52
|
+
formatter: s
|
|
53
|
+
} = a, o = s ?? ne;
|
|
54
|
+
let m;
|
|
55
|
+
if (e[0] !== o || e[1] !== n || e[2] !== t || e[3] !== l) {
|
|
56
|
+
let r;
|
|
57
|
+
e[5] !== o || e[6] !== t || e[7] !== l ? (r = (g, d) => /* @__PURE__ */ $(ie, { index: d, item: g, fmt: o, onChange: t, onChangeCommitted: l }, `range-${g.min}-${g.max}-${d}`), e[5] = o, e[6] = t, e[7] = l, e[8] = r) : r = e[8], m = n.map(r), e[0] = o, e[1] = n, e[2] = t, e[3] = l, e[4] = m;
|
|
58
|
+
} else
|
|
59
|
+
m = e[4];
|
|
60
|
+
let i;
|
|
61
|
+
return e[9] !== m ? (i = /* @__PURE__ */ $(N, { sx: _.root, children: m }), e[9] = m, e[10] = i) : i = e[10], i;
|
|
62
|
+
}
|
|
63
|
+
function ne(a) {
|
|
64
|
+
return String(a);
|
|
65
|
+
}
|
|
66
|
+
function ie(a) {
|
|
67
|
+
const e = W(70), {
|
|
68
|
+
index: n,
|
|
69
|
+
item: t,
|
|
70
|
+
fmt: l,
|
|
71
|
+
onChange: s,
|
|
72
|
+
onChangeCommitted: o
|
|
73
|
+
} = a;
|
|
74
|
+
let m;
|
|
75
|
+
e[0] !== t.max || e[1] !== t.min || e[2] !== t.value ? (m = t.value ?? [t.min, t.max], e[0] = t.max, e[1] = t.min, e[2] = t.value, e[3] = m) : m = e[3];
|
|
76
|
+
const i = m, [r, g] = J("");
|
|
77
|
+
let d;
|
|
78
|
+
e[4] !== t.max || e[5] !== t.min ? (d = (S) => {
|
|
79
|
+
const [f, j] = S, E = Math.min(Math.max(f, t.min), t.max), q = Math.min(Math.max(j, t.min), t.max);
|
|
80
|
+
return E <= q ? [E, q] : [q, E];
|
|
81
|
+
}, e[4] = t.max, e[5] = t.min, e[6] = d) : d = e[6];
|
|
82
|
+
const u = d;
|
|
83
|
+
let v;
|
|
84
|
+
e[7] !== n || e[8] !== u || e[9] !== s ? (v = (S) => {
|
|
85
|
+
s?.(n, u(S));
|
|
86
|
+
}, e[7] = n, e[8] = u, e[9] = s, e[10] = v) : v = e[10];
|
|
87
|
+
const A = v;
|
|
88
|
+
let x;
|
|
89
|
+
e[11] !== n || e[12] !== u || e[13] !== o ? (x = (S) => {
|
|
90
|
+
o?.(n, u(S));
|
|
91
|
+
}, e[11] = n, e[12] = u, e[13] = o, e[14] = x) : x = e[14];
|
|
92
|
+
const p = x;
|
|
93
|
+
let y;
|
|
94
|
+
e[15] !== n || e[16] !== u || e[17] !== s || e[18] !== o ? (y = (S) => {
|
|
95
|
+
const f = u(S);
|
|
96
|
+
s?.(n, f), o?.(n, f);
|
|
97
|
+
}, e[15] = n, e[16] = u, e[17] = s, e[18] = o, e[19] = y) : y = e[19];
|
|
98
|
+
const h = y;
|
|
99
|
+
let C;
|
|
100
|
+
e[20] !== A || e[21] !== t.max || e[22] !== t.min ? (C = (S, f) => {
|
|
101
|
+
if (!Array.isArray(f))
|
|
102
|
+
return;
|
|
103
|
+
const j = f[0] ?? t.min, E = f[1] ?? t.max;
|
|
104
|
+
A([j, E]);
|
|
105
|
+
}, e[20] = A, e[21] = t.max, e[22] = t.min, e[23] = C) : C = e[23];
|
|
106
|
+
const b = C;
|
|
107
|
+
let w;
|
|
108
|
+
e[24] !== p || e[25] !== t.max || e[26] !== t.min ? (w = (S, f) => {
|
|
109
|
+
if (!Array.isArray(f))
|
|
110
|
+
return;
|
|
111
|
+
const j = f[0] ?? t.min, E = f[1] ?? t.max;
|
|
112
|
+
p([j, E]);
|
|
113
|
+
}, e[24] = p, e[25] = t.max, e[26] = t.min, e[27] = w) : w = e[27];
|
|
114
|
+
const F = w;
|
|
115
|
+
let c;
|
|
116
|
+
e[28] !== t.color ? (c = t.color ? {
|
|
117
|
+
color: t.color
|
|
118
|
+
} : null, e[28] = t.color, e[29] = c) : c = e[29];
|
|
119
|
+
let R;
|
|
120
|
+
e[30] !== c ? (R = {
|
|
121
|
+
..._.slider,
|
|
122
|
+
...c
|
|
123
|
+
}, e[30] = c, e[31] = R) : R = e[31];
|
|
124
|
+
let M;
|
|
125
|
+
e[32] !== i ? (M = [...i], e[32] = i, e[33] = M) : M = e[33];
|
|
126
|
+
const K = t.min, Q = t.max, O = t.step ?? 1;
|
|
127
|
+
let D;
|
|
128
|
+
e[34] !== t.marks ? (D = le(t.marks), e[34] = t.marks, e[35] = D) : D = e[35];
|
|
129
|
+
let I;
|
|
130
|
+
e[36] !== l || e[37] !== b || e[38] !== F || e[39] !== t.disabled || e[40] !== t.max || e[41] !== t.min || e[42] !== M || e[43] !== O || e[44] !== D || e[45] !== R ? (I = /* @__PURE__ */ $(N, { sx: _.sliderContainer, children: /* @__PURE__ */ $(Y, { sx: R, value: M, min: K, max: Q, step: O, marks: D, disabled: t.disabled, valueLabelDisplay: "auto", valueLabelFormat: l, onChange: b, onChangeCommitted: F }) }), e[36] = l, e[37] = b, e[38] = F, e[39] = t.disabled, e[40] = t.max, e[41] = t.min, e[42] = M, e[43] = O, e[44] = D, e[45] = R, e[46] = I) : I = e[46];
|
|
131
|
+
const P = `min-${i[0]}`;
|
|
132
|
+
let L;
|
|
133
|
+
e[47] !== h || e[48] !== i || e[49] !== r || e[50] !== l || e[51] !== t || e[52] !== P ? (L = /* @__PURE__ */ $(H, { name: "min", value: i[0], item: t, fmt: l, editing: r, setEditing: g, commit: h, current: i, ariaLabel: "Minimum value" }, P), e[47] = h, e[48] = i, e[49] = r, e[50] = l, e[51] = t, e[52] = P, e[53] = L) : L = e[53];
|
|
134
|
+
const U = `max-${i[1]}`;
|
|
135
|
+
let B;
|
|
136
|
+
e[54] !== h || e[55] !== i || e[56] !== r || e[57] !== l || e[58] !== t || e[59] !== U ? (B = /* @__PURE__ */ $(H, { name: "max", value: i[1], item: t, fmt: l, editing: r, setEditing: g, commit: h, current: i, ariaLabel: "Maximum value" }, U), e[54] = h, e[55] = i, e[56] = r, e[57] = l, e[58] = t, e[59] = U, e[60] = B) : B = e[60];
|
|
137
|
+
let T;
|
|
138
|
+
e[61] !== L || e[62] !== B ? (T = /* @__PURE__ */ G(N, { sx: _.inputsRow, children: [
|
|
139
|
+
L,
|
|
140
|
+
B
|
|
141
|
+
] }), e[61] = L, e[62] = B, e[63] = T) : T = e[63];
|
|
142
|
+
let k;
|
|
143
|
+
e[64] !== t.note ? (k = t.note ? /* @__PURE__ */ $(Z, { variant: "caption", sx: _.note, children: t.note }) : null, e[64] = t.note, e[65] = k) : k = e[65];
|
|
144
|
+
let z;
|
|
145
|
+
return e[66] !== I || e[67] !== T || e[68] !== k ? (z = /* @__PURE__ */ G(N, { sx: _.item, children: [
|
|
146
|
+
I,
|
|
147
|
+
T,
|
|
148
|
+
k
|
|
149
|
+
] }), e[66] = I, e[67] = T, e[68] = k, e[69] = z) : z = e[69], z;
|
|
150
|
+
}
|
|
151
|
+
function H(a) {
|
|
152
|
+
const e = W(26), {
|
|
153
|
+
name: n,
|
|
154
|
+
value: t,
|
|
155
|
+
item: l,
|
|
156
|
+
fmt: s,
|
|
157
|
+
editing: o,
|
|
158
|
+
setEditing: m,
|
|
159
|
+
commit: i,
|
|
160
|
+
current: r,
|
|
161
|
+
ariaLabel: g
|
|
162
|
+
} = a, [d, u] = J(String(t));
|
|
163
|
+
let v;
|
|
164
|
+
e[0] !== n || e[1] !== m ? (v = () => {
|
|
165
|
+
m(n);
|
|
166
|
+
}, e[0] = n, e[1] = m, e[2] = v) : v = e[2];
|
|
167
|
+
const A = v;
|
|
168
|
+
let x, p;
|
|
169
|
+
if (e[3] !== i || e[4] !== r || e[5] !== n || e[6] !== m || e[7] !== t) {
|
|
170
|
+
let F = function(c) {
|
|
171
|
+
const R = parseFloat(c), M = Number.isFinite(R) ? R : t, K = n === "min" ? [M, r[1]] : [r[0], M];
|
|
172
|
+
i(K);
|
|
173
|
+
};
|
|
174
|
+
p = (c) => {
|
|
175
|
+
m(""), F(c.target.value);
|
|
176
|
+
}, x = (c) => {
|
|
177
|
+
c.key === "Enter" && (F(c.target.value), c.target.blur());
|
|
178
|
+
}, e[3] = i, e[4] = r, e[5] = n, e[6] = m, e[7] = t, e[8] = x, e[9] = p;
|
|
179
|
+
} else
|
|
180
|
+
x = e[8], p = e[9];
|
|
181
|
+
let y;
|
|
182
|
+
e[10] !== o || e[11] !== s || e[12] !== n || e[13] !== d ? (y = o === n ? d : s(Number(d)), e[10] = o, e[11] = s, e[12] = n, e[13] = d, e[14] = y) : y = e[14];
|
|
183
|
+
const h = y;
|
|
184
|
+
let C;
|
|
185
|
+
e[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (C = (F) => u(F.target.value), e[15] = C) : C = e[15];
|
|
186
|
+
let b;
|
|
187
|
+
e[16] !== g ? (b = {
|
|
188
|
+
"aria-label": g
|
|
189
|
+
}, e[16] = g, e[17] = b) : b = e[17];
|
|
190
|
+
let w;
|
|
191
|
+
return e[18] !== A || e[19] !== x || e[20] !== h || e[21] !== p || e[22] !== l.disabled || e[23] !== n || e[24] !== b ? (w = /* @__PURE__ */ $(ee, { name: n, value: h, onChange: C, onFocus: A, onBlur: p, onKeyDown: x, disabled: l.disabled, size: "small", sx: _.input, inputProps: b }), e[18] = A, e[19] = x, e[20] = h, e[21] = p, e[22] = l.disabled, e[23] = n, e[24] = b, e[25] = w) : w = e[25], w;
|
|
192
|
+
}
|
|
193
|
+
function le(a) {
|
|
194
|
+
if (a != null)
|
|
195
|
+
return typeof a == "boolean" ? a : [...a];
|
|
196
|
+
}
|
|
197
|
+
const oe = (a) => ({
|
|
198
|
+
data: a.data ?? [],
|
|
199
|
+
formatter: a.formatter
|
|
200
|
+
});
|
|
201
|
+
function ue(a) {
|
|
202
|
+
const e = W(5), {
|
|
203
|
+
onChange: n,
|
|
204
|
+
onChangeCommitted: t
|
|
205
|
+
} = a, l = V(), s = X(l, oe);
|
|
206
|
+
let o;
|
|
207
|
+
return e[0] !== n || e[1] !== t || e[2] !== s.data || e[3] !== s.formatter ? (o = /* @__PURE__ */ $(te, { items: s.data, formatter: s.formatter, onChange: n, onChangeCommitted: t }), e[0] = n, e[1] = t, e[2] = s.data, e[3] = s.formatter, e[4] = o) : o = e[4], o;
|
|
208
|
+
}
|
|
209
|
+
export {
|
|
210
|
+
ue as R,
|
|
211
|
+
te as a
|
|
212
|
+
};
|
|
213
|
+
//# sourceMappingURL=range-l4fNHLEg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-l4fNHLEg.js","sources":["../src/widgets-v2/range/style.ts","../src/widgets-v2/range/range-ui.tsx","../src/widgets-v2/range/range.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"],"names":["styles","root","display","flexDirection","gap","py","item","sliderContainer","px","slider","width","color","theme","palette","text","disabled","inputsRow","alignItems","input","flex","textAlign","note","RangeUI","t0","$","_c","items","onChange","onChangeCommitted","formatter","fmt","_temp","t1","t2","i","RangeRow","min","max","map","Box","n","String","index","value","current","editing","setEditing","useState","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","t9","t10","t11","t12","t13","step","t14","marks","resolveMarks","t15","jsx","Slider","t16","t17","BoundInput","t18","t19","t20","t21","Typography","t22","jsxs","name","ariaLabel","setRaw","beginEditing","commitOnEnter","finishEditingAndCommit","commitFromText","parsed","parseFloat","safe","Number","isFinite","e","target","e_0","key","blur","Symbol","for","e_1","TextField","rangeSelector","s","data","Range","id","useWidgetId","slice","useWidgetShallow"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function f(e, t) {
|
|
2
|
+
if (!t) return e;
|
|
3
|
+
const r = {
|
|
4
|
+
...e
|
|
5
|
+
};
|
|
6
|
+
for (const n of Object.keys(t)) {
|
|
7
|
+
const o = e[n], i = t[n];
|
|
8
|
+
i !== void 0 && (r[n] = c(o, i));
|
|
9
|
+
}
|
|
10
|
+
return r;
|
|
11
|
+
}
|
|
12
|
+
function c(e, t) {
|
|
13
|
+
if (Array.isArray(e) && Array.isArray(t)) {
|
|
14
|
+
const r = Math.max(e.length, t.length), n = new Array(r);
|
|
15
|
+
for (let o = 0; o < r; o++) {
|
|
16
|
+
const i = e[o], s = t[o];
|
|
17
|
+
s === void 0 ? n[o] = i : i === void 0 ? n[o] = s : n[o] = c(i, s);
|
|
18
|
+
}
|
|
19
|
+
return n;
|
|
20
|
+
}
|
|
21
|
+
return u(e) && u(t) ? {
|
|
22
|
+
...e,
|
|
23
|
+
...t
|
|
24
|
+
} : t;
|
|
25
|
+
}
|
|
26
|
+
function u(e) {
|
|
27
|
+
if (e === null || typeof e != "object") return !1;
|
|
28
|
+
const t = Object.getPrototypeOf(e);
|
|
29
|
+
return t === Object.prototype || t === null;
|
|
30
|
+
}
|
|
31
|
+
function l(e, t) {
|
|
32
|
+
if (t == null) return;
|
|
33
|
+
if (!t.includes(".")) return t;
|
|
34
|
+
const r = t.split(".");
|
|
35
|
+
let n = e.palette;
|
|
36
|
+
for (const o of r) {
|
|
37
|
+
if (n == null || typeof n != "object")
|
|
38
|
+
return t;
|
|
39
|
+
n = n[o];
|
|
40
|
+
}
|
|
41
|
+
return typeof n == "string" ? n : t;
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
f as m,
|
|
45
|
+
l as r
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=resolve-theme-color-BdojIw0K.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-theme-color-BdojIw0K.js","sources":["../src/widgets-v2/utils/merge-options.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 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"],"names":["mergeOptions","base","override","out","key","Object","keys","a","b","undefined","mergeValue","Array","isArray","len","Math","max","length","result","i","av","bv","isPlainObject","v","proto","getPrototypeOf","prototype","resolveThemeColor","theme","raw","includes","parts","split","cursor","palette","part"],"mappings":"AAWO,SAASA,EACdC,GACAC,GACG;AACH,MAAI,CAACA,EAAU,QAAOD;AACtB,QAAME,IAA+B;AAAA,IAAE,GAAGF;AAAAA,EAAAA;AAC1C,aAAWG,KAAOC,OAAOC,KAAKJ,CAAQ,GAAkB;AACtD,UAAMK,IAAIN,EAAKG,CAAG,GACZI,IAAIN,EAASE,CAAG;AACtB,IAAII,MAAMC,WACVN,EAAIC,CAAa,IAAIM,EAAWH,GAAGC,CAAC;AAAA,EACtC;AACA,SAAOL;AACT;AAEA,SAASO,EAAWH,GAAYC,GAAqB;AACnD,MAAIG,MAAMC,QAAQL,CAAC,KAAKI,MAAMC,QAAQJ,CAAC,GAAG;AACxC,UAAMK,IAAMC,KAAKC,IAAIR,EAAES,QAAQR,EAAEQ,MAAM,GACjCC,IAAS,IAAIN,MAAeE,CAAG;AACrC,aAASK,IAAI,GAAGA,IAAIL,GAAKK,KAAK;AAC5B,YAAMC,IAAcZ,EAAEW,CAAC,GACjBE,IAAcZ,EAAEU,CAAC;AACvB,MAAIE,MAAOX,SAAWQ,EAAOC,CAAC,IAAIC,IACzBA,MAAOV,SAAWQ,EAAOC,CAAC,IAAIE,IAClCH,EAAOC,CAAC,IAAIR,EAAWS,GAAIC,CAAE;AAAA,IACpC;AACA,WAAOH;AAAAA,EACT;AACA,SAAII,EAAcd,CAAC,KAAKc,EAAcb,CAAC,IAC9B;AAAA,IAAE,GAAGD;AAAAA,IAAG,GAAGC;AAAAA,EAAAA,IAEbA;AACT;AAEA,SAASa,EAAcC,GAA0C;AAC/D,MAAIA,MAAM,QAAQ,OAAOA,KAAM,SAAU,QAAO;AAChD,QAAMC,IAAQlB,OAAOmB,eAAeF,CAAC;AACrC,SAAOC,MAAUlB,OAAOoB,aAAaF,MAAU;AACjD;AC/BO,SAASG,EACdC,GACAC,GACoB;AACpB,MAAIA,KAAO,KAAM;AACjB,MAAI,CAACA,EAAIC,SAAS,GAAG,EAAG,QAAOD;AAC/B,QAAME,IAAQF,EAAIG,MAAM,GAAG;AAC3B,MAAIC,IAAkBL,EAAMM;AAC5B,aAAWC,KAAQJ,GAAO;AACxB,QAAIE,KAAU,QAAQ,OAAOA,KAAW;AACtC,aAAOJ;AAETI,IAAAA,IAAUA,EAAmCE,CAAI;AAAA,EACnD;AACA,SAAO,OAAOF,KAAW,WAAWA,IAASJ;AAC/C;"}
|
|
@@ -10,7 +10,7 @@ import "zustand/middleware";
|
|
|
10
10
|
import "zustand/react/shallow";
|
|
11
11
|
import { V as u, s as m, S as b, P as _, a as g, N as j } from "./style-DVnT6HC1.js";
|
|
12
12
|
import "@mui/icons-material/FileDownload";
|
|
13
|
-
import "./lasso-tool-
|
|
13
|
+
import "./lasso-tool-CDFj4zKY.js";
|
|
14
14
|
import "./cjs-D4KH3azB.js";
|
|
15
15
|
import "@mui/icons-material";
|
|
16
16
|
import "html2canvas";
|
|
@@ -64,4 +64,4 @@ export {
|
|
|
64
64
|
F as a,
|
|
65
65
|
y as b
|
|
66
66
|
};
|
|
67
|
-
//# sourceMappingURL=spread-
|
|
67
|
+
//# sourceMappingURL=spread-Y9R1f5dm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spread-
|
|
1
|
+
{"version":3,"file":"spread-Y9R1f5dm.js","sources":["../src/widgets-v2/spread/separator.tsx","../src/widgets-v2/spread/spread-ui.tsx","../src/widgets-v2/spread/spread.tsx"],"sourcesContent":["import { Value } from '../formula'\n\n/**\n * Em-dash separator placed between a Spread row's `min` and `max` values.\n * Built from the Formula {@link Value} primitive so typography (h5/600,\n * baseline alignment) matches the numbers around it. Renders with\n * `text.secondary` so it visually recedes between the two bounds.\n */\nexport function Separator() {\n return <Value color='inherit'>-</Value>\n}\n","import { Box } from '@mui/material'\nimport type { Ref } from 'react'\nimport { Note, Prefix, Series, Suffix, Value } from '../formula'\nimport { styles } from '../formula/style'\nimport { Separator } from './separator'\nimport type { SpreadDataItem } from './types'\n\nexport interface SpreadUIProps {\n items: readonly SpreadDataItem[]\n /** Number formatter — applied to each item's `min` and `max`. */\n formatter?: (value: number) => string\n /** Forwarded to the root `<Box>` so consumers can capture the DOM (PNG export). */\n ref?: Ref<HTMLDivElement>\n}\n\n/**\n * Pure presentational component for the Spread widget. Each item renders as\n * a row containing (in order): optional `Series` avatar, a body with\n * `[prefix] min — max [suffix]` plus optional `Note`. Reuses the Formula\n * primitives ({@link Series}, {@link Prefix}, {@link Value}, {@link Suffix},\n * {@link Note}) and the Formula row styles so Spread and Formula stay\n * visually aligned when used together.\n */\nexport function SpreadUI({ items, formatter, ref }: SpreadUIProps) {\n const fmt = formatter ?? ((n: number) => String(n))\n return (\n <Box ref={ref} sx={styles.root}>\n {items.map((item, i) => (\n // Composite of series name + min/max bounds for stability across\n // reorders; falls back to the index when bounds happen to collide.\n <Box\n key={`spread-${item.series?.name ?? ''}-${item.min}-${item.max}-${i}`}\n sx={styles.row}\n >\n {item.series ? (\n <Series name={item.series.name} color={item.series.color} />\n ) : null}\n <Box sx={styles.body}>\n <Box sx={styles.valueRow}>\n {item.prefix ? <Prefix>{item.prefix}</Prefix> : null}\n <Value color={item.color}>{fmt(item.min)}</Value>\n <Separator />\n <Value color={item.color}>{fmt(item.max)}</Value>\n {item.suffix ? <Suffix>{item.suffix}</Suffix> : null}\n </Box>\n {item.note ? <Note>{item.note}</Note> : null}\n </Box>\n </Box>\n ))}\n </Box>\n )\n}\n","import { useWidgetId, useWidgetShallow } from '../stores'\nimport { SpreadUI } from './spread-ui'\nimport type { SpreadWidgetData } from './types'\n\ninterface SpreadSlice {\n data: SpreadWidgetData\n formatter?: (value: number) => string\n}\n\n// Stable empty-data sentinel — keeps the slice's `data` reference stable\n// when the underlying store value is null/undefined so the shallow-equality\n// gate in `useWidgetShallow` doesn't re-render every commit.\nconst EMPTY_DATA: SpreadWidgetData = Object.freeze([]) as SpreadWidgetData\n\nconst spreadSelector = (s: {\n data: unknown\n formatter?: (value: number) => string\n}): SpreadSlice => ({\n data: (s.data ?? EMPTY_DATA) as SpreadWidgetData,\n formatter: s.formatter,\n})\n\n/**\n * Stateful Spread bridge — reads `data` (post-pipeline) and `formatter` from\n * the per-widget store and forwards them to the pure {@link SpreadUI}.\n */\nexport function Spread() {\n const id = useWidgetId()\n const slice = useWidgetShallow(id, spreadSelector)\n return <SpreadUI items={slice.data} formatter={slice.formatter} />\n}\n"],"names":["Separator","$","_c","t0","Symbol","for","jsx","Value","SpreadUI","items","formatter","ref","fmt","_temp","t1","t2","item","i","Box","styles","row","series","Series","name","color","jsxs","body","valueRow","prefix","Prefix","min","max","suffix","Suffix","note","Note","map","root","n","String","EMPTY_DATA","Object","freeze","spreadSelector","s","data","Spread","id","useWidgetId","slice","useWidgetShallow"],"mappings":"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"}
|