@carto/ps-react-ui 4.4.3 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/{download-config-Dqu78h2a.js → download-config-DemuQ3Jm.js} +9 -10
  2. package/dist/{download-config-Dqu78h2a.js.map → download-config-DemuQ3Jm.js.map} +1 -1
  3. package/dist/error-Cj8eUMrl.js +40 -0
  4. package/dist/error-Cj8eUMrl.js.map +1 -0
  5. package/dist/no-data-DkIt7Qt1.js +61 -0
  6. package/dist/no-data-DkIt7Qt1.js.map +1 -0
  7. package/dist/row-D4VOhcNI.js +34 -0
  8. package/dist/row-D4VOhcNI.js.map +1 -0
  9. package/dist/series-Bola3CmD.js +90 -0
  10. package/dist/series-Bola3CmD.js.map +1 -0
  11. package/dist/types/widgets/echart/shared-resize-observer.d.ts +12 -0
  12. package/dist/types/widgets/stores/index.d.ts +2 -1
  13. package/dist/types/widgets/stores/use-widget-selector.d.ts +35 -0
  14. package/dist/types/widgets/stores/widget-store-performance.test.d.ts +1 -0
  15. package/dist/types/widgets/stores/widget-store.d.ts +49 -27
  16. package/dist/types/widgets/table/types.d.ts +1 -1
  17. package/dist/use-widget-ref-BFazQvJK.js +22 -0
  18. package/dist/use-widget-ref-BFazQvJK.js.map +1 -0
  19. package/dist/use-widget-selector-DqRmWQ1K.js +12 -0
  20. package/dist/use-widget-selector-DqRmWQ1K.js.map +1 -0
  21. package/dist/widget-store-CIrb9RKP.js +263 -0
  22. package/dist/widget-store-CIrb9RKP.js.map +1 -0
  23. package/dist/widgets/actions.js +783 -817
  24. package/dist/widgets/actions.js.map +1 -1
  25. package/dist/widgets/bar.js +2 -2
  26. package/dist/widgets/category.js +254 -257
  27. package/dist/widgets/category.js.map +1 -1
  28. package/dist/widgets/echart.js +109 -99
  29. package/dist/widgets/echart.js.map +1 -1
  30. package/dist/widgets/error.js +1 -1
  31. package/dist/widgets/formula.js +71 -63
  32. package/dist/widgets/formula.js.map +1 -1
  33. package/dist/widgets/histogram.js +7 -8
  34. package/dist/widgets/histogram.js.map +1 -1
  35. package/dist/widgets/loader.js +53 -60
  36. package/dist/widgets/loader.js.map +1 -1
  37. package/dist/widgets/markdown.js +51 -50
  38. package/dist/widgets/markdown.js.map +1 -1
  39. package/dist/widgets/no-data.js +1 -1
  40. package/dist/widgets/pie.js +2 -2
  41. package/dist/widgets/range.js +146 -144
  42. package/dist/widgets/range.js.map +1 -1
  43. package/dist/widgets/scatterplot.js +2 -2
  44. package/dist/widgets/skeleton-loader.js +18 -17
  45. package/dist/widgets/skeleton-loader.js.map +1 -1
  46. package/dist/widgets/spread.js +110 -94
  47. package/dist/widgets/spread.js.map +1 -1
  48. package/dist/widgets/stores.js +5 -2
  49. package/dist/widgets/stores.js.map +1 -1
  50. package/dist/widgets/table.js +422 -436
  51. package/dist/widgets/table.js.map +1 -1
  52. package/dist/widgets/timeseries.js +2 -2
  53. package/dist/widgets/utils.js +1 -1
  54. package/dist/widgets/wrapper.js +156 -158
  55. package/dist/widgets/wrapper.js.map +1 -1
  56. package/dist/widgets.js +4 -4
  57. package/package.json +1 -1
  58. package/src/hooks/use-widget-ref.ts +3 -4
  59. package/src/widgets/actions/brush-toggle/brush-toggle.tsx +18 -32
  60. package/src/widgets/actions/change-column/change-column.tsx +15 -15
  61. package/src/widgets/actions/change-column/sortable-column-item.tsx +3 -1
  62. package/src/widgets/actions/download/download.tsx +4 -3
  63. package/src/widgets/actions/fullscreen/fullscreen.tsx +7 -11
  64. package/src/widgets/actions/lock-selection/lock-selection.tsx +12 -15
  65. package/src/widgets/actions/relative-data/relative-data.tsx +22 -26
  66. package/src/widgets/actions/searcher/searcher-toggle.tsx +11 -12
  67. package/src/widgets/actions/searcher/searcher.tsx +20 -21
  68. package/src/widgets/actions/stack-toggle/stack-toggle.tsx +15 -21
  69. package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +27 -43
  70. package/src/widgets/category/category-ui.tsx +27 -31
  71. package/src/widgets/echart/echart-ui.test.tsx +20 -16
  72. package/src/widgets/echart/echart-ui.tsx +6 -12
  73. package/src/widgets/echart/echart.tsx +13 -27
  74. package/src/widgets/echart/shared-resize-observer.ts +45 -0
  75. package/src/widgets/error/error.tsx +7 -9
  76. package/src/widgets/formula/components/prefix.tsx +4 -6
  77. package/src/widgets/formula/components/row.tsx +4 -4
  78. package/src/widgets/formula/components/series.tsx +4 -6
  79. package/src/widgets/formula/components/suffix.tsx +4 -6
  80. package/src/widgets/formula/components/value.tsx +9 -16
  81. package/src/widgets/loader/loader.tsx +31 -44
  82. package/src/widgets/markdown/markdown.tsx +4 -7
  83. package/src/widgets/no-data/no-data.tsx +7 -10
  84. package/src/widgets/range/components/range-item.tsx +20 -18
  85. package/src/widgets/skeleton-loader/skeleton-loader.tsx +2 -5
  86. package/src/widgets/spread/components/max-value.tsx +14 -16
  87. package/src/widgets/spread/components/min-value.tsx +14 -16
  88. package/src/widgets/stores/index.ts +2 -1
  89. package/src/widgets/stores/use-widget-selector.ts +47 -0
  90. package/src/widgets/stores/widget-store-performance.test.ts +750 -0
  91. package/src/widgets/stores/widget-store.test.ts +81 -0
  92. package/src/widgets/stores/widget-store.ts +225 -44
  93. package/src/widgets/table/config.ts +0 -1
  94. package/src/widgets/table/hooks/use-pagination.ts +28 -52
  95. package/src/widgets/table/hooks/use-selection.ts +20 -24
  96. package/src/widgets/table/hooks/use-sort.ts +22 -39
  97. package/src/widgets/table/types.ts +1 -1
  98. package/src/widgets/wrapper/wrapper-ui.tsx +12 -13
  99. package/src/widgets/wrapper/wrapper.tsx +4 -6
  100. package/dist/error-CEkRPccv.js +0 -39
  101. package/dist/error-CEkRPccv.js.map +0 -1
  102. package/dist/no-data-hR3KcJ-_.js +0 -60
  103. package/dist/no-data-hR3KcJ-_.js.map +0 -1
  104. package/dist/row-DTCV0Ocm.js +0 -35
  105. package/dist/row-DTCV0Ocm.js.map +0 -1
  106. package/dist/series-CYNOu2Ju.js +0 -91
  107. package/dist/series-CYNOu2Ju.js.map +0 -1
  108. package/dist/use-widget-ref-wtFLDFCD.js +0 -25
  109. package/dist/use-widget-ref-wtFLDFCD.js.map +0 -1
  110. package/dist/widget-store-CzDt8oSK.js +0 -163
  111. package/dist/widget-store-CzDt8oSK.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sources":["../../src/widgets/range/style.ts","../../src/widgets/range/components/range-item.tsx","../../src/widgets/range/range-ui.tsx","../../src/widgets/range/skeleton.tsx","../../src/widgets/range/config.ts","../../src/widgets/range/serializer.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles: Record<string, SxProps<Theme>> = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n rangeItem: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1.5),\n },\n sliderContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1),\n px: (theme: Theme) => theme.spacing(1),\n },\n inputsRow: {\n display: 'flex',\n gap: (theme: Theme) => theme.spacing(2),\n alignItems: 'center',\n },\n input: {\n flex: 1,\n '& .MuiInputBase-input': {\n textAlign: 'center',\n },\n },\n slider: {\n width: '100%',\n '&.Mui-disabled': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Slider, TextField } from '@mui/material'\nimport { useState, useMemo, type FocusEvent, type KeyboardEvent } from 'react'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport type { RangeItemProps, RangeWidgetState } from '../types'\nimport { styles } from '../style'\nimport { useShallow } from 'zustand/shallow'\n\nimport { defaultFormatter } from '../../utils/formatter'\n\ntype EditingState = '' | 'min' | 'max'\n\n/**\n * Renders a single range slider with editable min/max text inputs, reading its configuration from the widget store.\n */\nexport function RangeItem({ id, index }: RangeItemProps) {\n const item = useWidgetStore(\n useShallow((state) => state.getWidget<RangeWidgetState>(id)?.data[index]),\n )\n const onChange = useWidgetStore(\n useShallow((state) => state.getWidget<RangeWidgetState>(id)?.onChange),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<RangeWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n const getWidget = useWidgetStore((store) => store.getWidget)\n const setWidget = useWidgetStore((store) => store.setWidget)\n\n const currentValue = useMemo(\n () => (item ? (item.value ?? [item.min, item.max]) : [0, 0]),\n [item],\n )\n\n // Local state for input values - track if user is editing\n const [isEditing, setIsEditing] = useState<EditingState>('')\n\n if (!item) return null\n\n const handleSliderChange = (_: Event, newValue: number | number[]) => {\n if (Array.isArray(newValue)) {\n const [min, max] = newValue\n const data = getWidget<RangeWidgetState>(id)?.data ?? []\n\n data[index] = {\n ...item,\n value: newValue,\n }\n\n setWidget(id, {\n data,\n })\n\n onChange?.([min!, max!], index)\n }\n }\n\n const handleInputFocus = (e: FocusEvent<HTMLInputElement>) => {\n setIsEditing(e.target.name as EditingState)\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { name, value } = event.target\n\n let newValue: [number, number]\n if (name === 'min') {\n newValue = [\n Math.min(\n Math.max(item.min, parseFloat(value) || item.min),\n currentValue[1]!,\n ),\n currentValue[1] ?? 0,\n ]\n } else {\n newValue = [\n currentValue[0] ?? 0,\n Math.max(\n Math.min(item.max, parseFloat(value) || item.max),\n currentValue[0]!,\n ),\n ]\n }\n\n const data = getWidget<RangeWidgetState>(id)?.data ?? []\n\n setWidget(id, {\n data: data.map((d: RangeWidgetState['data'][number], i: number) =>\n i === index\n ? {\n ...d,\n value: newValue,\n }\n : d,\n ),\n })\n\n onChange?.([newValue[0], newValue[1]], index)\n }\n\n const handleInputBlur = (e: FocusEvent<HTMLInputElement>) => {\n setIsEditing('')\n handleInputChange(e)\n }\n\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n handleInputBlur(event as unknown as FocusEvent<HTMLInputElement>)\n event.currentTarget.blur()\n }\n }\n\n return (\n <Box sx={styles.rangeItem}>\n <Box sx={styles.sliderContainer}>\n <Slider\n value={currentValue}\n onChange={handleSliderChange}\n valueLabelDisplay='auto'\n valueLabelFormat={formatter}\n min={item.min}\n max={item.max}\n step={item.step}\n marks={item.marks}\n disabled={item.disabled}\n sx={{\n ...styles.slider,\n ...(item.color && {\n color: item.color,\n }),\n }}\n />\n </Box>\n\n <Box sx={styles.inputsRow}>\n <Input\n key={`min-${currentValue[0]}`}\n isEditing={isEditing}\n name='min'\n value={currentValue[0] ?? 0}\n formatter={formatter}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleInputKeyDown}\n disabled={item.disabled}\n inputProps={{\n 'aria-label': 'Minimum value',\n }}\n />\n <Input\n key={`max-${currentValue[1]}`}\n isEditing={isEditing}\n name='max'\n value={currentValue[1] ?? 0}\n formatter={formatter}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleInputKeyDown}\n disabled={item.disabled}\n inputProps={{\n 'aria-label': 'Maximum value',\n }}\n />\n </Box>\n </Box>\n )\n}\n\nfunction Input({\n isEditing,\n name,\n disabled,\n value,\n formatter,\n onFocus: onFocus,\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n inputProps,\n}: {\n isEditing: EditingState\n name: 'min' | 'max'\n disabled?: boolean\n value: number\n formatter: (value: number) => string\n onFocus: (e: FocusEvent<HTMLInputElement>) => void\n onBlur: (e: FocusEvent<HTMLInputElement>) => void\n onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => void\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>\n}) {\n const [currentValue, setCurrentValue] = useState<string>(String(value))\n\n // Compute display values when not editing\n const displayMinValue = useMemo(\n () => formatter(Number(currentValue)),\n [currentValue, formatter],\n )\n\n return (\n <TextField\n name={name}\n value={isEditing === name ? currentValue : displayMinValue}\n onChange={(e) => {\n setCurrentValue(e.target.value)\n }}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n disabled={disabled}\n size='small'\n sx={styles.input}\n inputProps={inputProps}\n />\n )\n}\n","import type { RangeUIProps } from './types'\nimport { Row } from '../formula/components/row'\nimport { RangeItem } from './components/range-item'\n\n/**\n * Renders a range widget with one or more interactive dual-slider controls for selecting value ranges.\n */\nexport function RangeUI(props: RangeUIProps) {\n return (\n <Row id={props.id}>\n {({ index }) => <RangeItem id={props.id} index={index} />}\n </Row>\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function RangeSkeleton() {\n return (\n <Box sx={styles.rangeItem} aria-label='Range skeleton'>\n <Skeleton width='100%' height={32} />\n <Box sx={styles.inputsRow}>\n <Skeleton width='100%' height={40} />\n <Skeleton width='100%' height={40} />\n </Box>\n </Box>\n )\n}\n","import type { RangeWidgetConfig } from './types'\n\n/**\n * Returns the default configuration for range (value range with labels) widgets.\n *\n * @returns Default range widget config.\n */\nexport function rangeConfig(): RangeWidgetConfig {\n return {}\n}\n","import type { RangeDataItem } from './types'\n\n/**\n * Sanitizes RangeDataItem by converting ReactNode note values to undefined.\n * This ensures only string values are stored in the widget state.\n *\n * @param item - The RangeDataItem to sanitize\n * @returns A new RangeDataItem with ReactNode note values converted to undefined\n */\nexport function sanitizeRangeDataItem(item: RangeDataItem): RangeDataItem {\n return {\n ...item,\n note: typeof item.note === 'string' ? item.note : undefined,\n }\n}\n\n/**\n * Sanitizes an array of RangeDataItems by converting ReactNode note values to undefined.\n *\n * @param items - Array of RangeDataItems to sanitize\n * @returns A new array with sanitized RangeDataItems\n */\nexport function sanitizeRangeDataItems(\n items: RangeDataItem[] | undefined,\n): RangeDataItem[] | undefined {\n return items?.map(sanitizeRangeDataItem)\n}\n"],"names":["styles","rangeItem","display","flexDirection","gap","theme","spacing","sliderContainer","px","inputsRow","alignItems","input","flex","textAlign","slider","width","color","palette","text","disabled","RangeItem","t0","$","_c","id","index","t1","state","getWidget","data","item","useWidgetStore","useShallow","t2","state_0","onChange","formatter","state_1","defaultFormatter","_temp","setWidget","_temp2","t3","value","min","max","currentValue","isEditing","setIsEditing","useState","t4","_","newValue","Array","isArray","handleSliderChange","t5","Symbol","for","e","target","name","handleInputFocus","t6","handleInputChange","event","Math","parseFloat","data_0","map","d","i","e_0","handleInputBlur","t7","event_0","key","currentTarget","blur","handleInputKeyDown","t8","t9","t10","marks","step","Box","jsx","Slider","t11","t12","t13","t14","Input","t15","t16","t17","t18","t19","t20","store_0","store","onFocus","onBlur","onKeyDown","inputProps","setCurrentValue","String","Number","TextField","RangeUI","props","Row","RangeSkeleton","Skeleton","jsxs","rangeConfig","sanitizeRangeDataItem","note","undefined","sanitizeRangeDataItems","items"],"mappings":"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"}
1
+ {"version":3,"file":"range.js","sources":["../../src/widgets/range/style.ts","../../src/widgets/range/components/range-item.tsx","../../src/widgets/range/range-ui.tsx","../../src/widgets/range/skeleton.tsx","../../src/widgets/range/config.ts","../../src/widgets/range/serializer.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles: Record<string, SxProps<Theme>> = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n rangeItem: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1.5),\n },\n sliderContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1),\n px: (theme: Theme) => theme.spacing(1),\n },\n inputsRow: {\n display: 'flex',\n gap: (theme: Theme) => theme.spacing(2),\n alignItems: 'center',\n },\n input: {\n flex: 1,\n '& .MuiInputBase-input': {\n textAlign: 'center',\n },\n },\n slider: {\n width: '100%',\n '&.Mui-disabled': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Slider, TextField } from '@mui/material'\nimport { useState, useMemo, type FocusEvent, type KeyboardEvent } from 'react'\nimport { widgetStoreActions } from '../../stores/widget-store'\nimport { useWidgetSelector } from '../../stores/use-widget-selector'\nimport type { RangeItemProps, RangeWidgetState } from '../types'\nimport { styles } from '../style'\n\nimport { defaultFormatter } from '../../utils/formatter'\n\ntype EditingState = '' | 'min' | 'max'\n\n/**\n * Renders a single range slider with editable min/max text inputs, reading its configuration from the widget store.\n */\nexport function RangeItem({ id, index }: RangeItemProps) {\n const {\n item,\n onChange,\n formatter: _formatter,\n } = useWidgetSelector(id, (w) => {\n const rw = w as RangeWidgetState | undefined\n return {\n item: rw?.data[index],\n onChange: rw?.onChange,\n formatter: rw?.formatter,\n }\n })\n const formatter = _formatter ?? defaultFormatter\n\n const currentValue = useMemo(\n () => (item ? (item.value ?? [item.min, item.max]) : [0, 0]),\n [item],\n )\n\n // Local state for input values - track if user is editing\n const [isEditing, setIsEditing] = useState<EditingState>('')\n\n if (!item) return null\n\n const handleSliderChange = (_: Event, newValue: number | number[]) => {\n if (Array.isArray(newValue)) {\n const [min, max] = newValue\n const data =\n widgetStoreActions.getWidget<RangeWidgetState>(id)?.data ?? []\n\n data[index] = {\n ...item,\n value: newValue,\n }\n\n widgetStoreActions.setWidget(id, {\n data,\n })\n\n onChange?.([min!, max!], index)\n }\n }\n\n const handleInputFocus = (e: FocusEvent<HTMLInputElement>) => {\n setIsEditing(e.target.name as EditingState)\n }\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { name, value } = event.target\n\n let newValue: [number, number]\n if (name === 'min') {\n newValue = [\n Math.min(\n Math.max(item.min, parseFloat(value) || item.min),\n currentValue[1]!,\n ),\n currentValue[1] ?? 0,\n ]\n } else {\n newValue = [\n currentValue[0] ?? 0,\n Math.max(\n Math.min(item.max, parseFloat(value) || item.max),\n currentValue[0]!,\n ),\n ]\n }\n\n const data = widgetStoreActions.getWidget<RangeWidgetState>(id)?.data ?? []\n\n widgetStoreActions.setWidget(id, {\n data: data.map((d: RangeWidgetState['data'][number], i: number) =>\n i === index\n ? {\n ...d,\n value: newValue,\n }\n : d,\n ),\n })\n\n onChange?.([newValue[0], newValue[1]], index)\n }\n\n const handleInputBlur = (e: FocusEvent<HTMLInputElement>) => {\n setIsEditing('')\n handleInputChange(e)\n }\n\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n handleInputBlur(event as unknown as FocusEvent<HTMLInputElement>)\n event.currentTarget.blur()\n }\n }\n\n return (\n <Box sx={styles.rangeItem}>\n <Box sx={styles.sliderContainer}>\n <Slider\n value={currentValue}\n onChange={handleSliderChange}\n valueLabelDisplay='auto'\n valueLabelFormat={formatter}\n min={item.min}\n max={item.max}\n step={item.step}\n marks={item.marks}\n disabled={item.disabled}\n sx={{\n ...styles.slider,\n ...(item.color && {\n color: item.color,\n }),\n }}\n />\n </Box>\n\n <Box sx={styles.inputsRow}>\n <Input\n key={`min-${currentValue[0]}`}\n isEditing={isEditing}\n name='min'\n value={currentValue[0] ?? 0}\n formatter={formatter}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleInputKeyDown}\n disabled={item.disabled}\n inputProps={{\n 'aria-label': 'Minimum value',\n }}\n />\n <Input\n key={`max-${currentValue[1]}`}\n isEditing={isEditing}\n name='max'\n value={currentValue[1] ?? 0}\n formatter={formatter}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleInputKeyDown}\n disabled={item.disabled}\n inputProps={{\n 'aria-label': 'Maximum value',\n }}\n />\n </Box>\n </Box>\n )\n}\n\nfunction Input({\n isEditing,\n name,\n disabled,\n value,\n formatter,\n onFocus: onFocus,\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n inputProps,\n}: {\n isEditing: EditingState\n name: 'min' | 'max'\n disabled?: boolean\n value: number\n formatter: (value: number) => string\n onFocus: (e: FocusEvent<HTMLInputElement>) => void\n onBlur: (e: FocusEvent<HTMLInputElement>) => void\n onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => void\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>\n}) {\n const [currentValue, setCurrentValue] = useState<string>(String(value))\n\n // Compute display values when not editing\n const displayMinValue = useMemo(\n () => formatter(Number(currentValue)),\n [currentValue, formatter],\n )\n\n return (\n <TextField\n name={name}\n value={isEditing === name ? currentValue : displayMinValue}\n onChange={(e) => {\n setCurrentValue(e.target.value)\n }}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n disabled={disabled}\n size='small'\n sx={styles.input}\n inputProps={inputProps}\n />\n )\n}\n","import type { RangeUIProps } from './types'\nimport { Row } from '../formula/components/row'\nimport { RangeItem } from './components/range-item'\n\n/**\n * Renders a range widget with one or more interactive dual-slider controls for selecting value ranges.\n */\nexport function RangeUI(props: RangeUIProps) {\n return (\n <Row id={props.id}>\n {({ index }) => <RangeItem id={props.id} index={index} />}\n </Row>\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function RangeSkeleton() {\n return (\n <Box sx={styles.rangeItem} aria-label='Range skeleton'>\n <Skeleton width='100%' height={32} />\n <Box sx={styles.inputsRow}>\n <Skeleton width='100%' height={40} />\n <Skeleton width='100%' height={40} />\n </Box>\n </Box>\n )\n}\n","import type { RangeWidgetConfig } from './types'\n\n/**\n * Returns the default configuration for range (value range with labels) widgets.\n *\n * @returns Default range widget config.\n */\nexport function rangeConfig(): RangeWidgetConfig {\n return {}\n}\n","import type { RangeDataItem } from './types'\n\n/**\n * Sanitizes RangeDataItem by converting ReactNode note values to undefined.\n * This ensures only string values are stored in the widget state.\n *\n * @param item - The RangeDataItem to sanitize\n * @returns A new RangeDataItem with ReactNode note values converted to undefined\n */\nexport function sanitizeRangeDataItem(item: RangeDataItem): RangeDataItem {\n return {\n ...item,\n note: typeof item.note === 'string' ? item.note : undefined,\n }\n}\n\n/**\n * Sanitizes an array of RangeDataItems by converting ReactNode note values to undefined.\n *\n * @param items - Array of RangeDataItems to sanitize\n * @returns A new array with sanitized RangeDataItems\n */\nexport function sanitizeRangeDataItems(\n items: RangeDataItem[] | undefined,\n): RangeDataItem[] | undefined {\n return items?.map(sanitizeRangeDataItem)\n}\n"],"names":["styles","rangeItem","display","flexDirection","gap","theme","spacing","sliderContainer","px","inputsRow","alignItems","input","flex","textAlign","slider","width","color","palette","text","disabled","RangeItem","t0","$","_c","id","index","t1","w","rw","item","data","onChange","formatter","_formatter","useWidgetSelector","defaultFormatter","t2","value","min","max","currentValue","isEditing","setIsEditing","useState","t3","_","newValue","Array","isArray","widgetStoreActions","getWidget","setWidget","handleSliderChange","t4","Symbol","for","e","target","name","handleInputFocus","t5","handleInputChange","event","Math","parseFloat","data_0","map","d","i","e_0","handleInputBlur","t6","event_0","key","currentTarget","blur","handleInputKeyDown","t7","t8","t9","marks","step","Box","jsx","Slider","t10","t11","t12","t13","Input","t14","t15","t16","t17","t18","t19","onFocus","onBlur","onKeyDown","inputProps","setCurrentValue","String","Number","TextField","RangeUI","props","Row","RangeSkeleton","Skeleton","jsxs","rangeConfig","sanitizeRangeDataItem","note","undefined","sanitizeRangeDataItems","items"],"mappings":"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"}
@@ -2,11 +2,11 @@ import { jsxs as g, jsx as i } from "react/jsx-runtime";
2
2
  import { c as h } from "react/compiler-runtime";
3
3
  import "react";
4
4
  import "echarts";
5
- import "../widget-store-CzDt8oSK.js";
5
+ import "../widget-store-CIrb9RKP.js";
6
6
  import "zustand/shallow";
7
7
  import { g as b } from "../options-D9wflre6.js";
8
8
  import { m as S } from "../utils-BOhInag6.js";
9
- import { c as v, s as k } from "../download-config-Dqu78h2a.js";
9
+ import { c as v, s as k } from "../download-config-DemuQ3Jm.js";
10
10
  import { g as w, b as L, a as I, e as _, c as A } from "../styles-Y8q7Jff3.js";
11
11
  import { Box as p, Skeleton as c } from "@mui/material";
12
12
  const X = v(k);
@@ -1,24 +1,25 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import { c as f } from "react/compiler-runtime";
3
- import { u as m } from "../widget-store-CzDt8oSK.js";
4
- import { Suspense as u } from "react";
5
- import { useShallow as d } from "zustand/shallow";
6
- function h(l) {
7
- const e = f(4), {
8
- id: r,
9
- children: s,
10
- Skeleton: t
11
- } = l;
12
- let i;
13
- if (e[0] !== r ? (i = (o) => o.widgets[r]?.isLoading, e[0] = r, e[1] = i) : i = e[1], m(d(i))) {
14
- if (!t)
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { c as s } from "react/compiler-runtime";
3
+ import { u } from "../use-widget-selector-DqRmWQ1K.js";
4
+ import { Suspense as c } from "react";
5
+ function L(r) {
6
+ const e = s(2), {
7
+ id: i,
8
+ children: l,
9
+ Skeleton: n
10
+ } = r;
11
+ if (u(i, f)) {
12
+ if (!n)
15
13
  return null;
16
14
  let o;
17
- return e[2] !== t ? (o = /* @__PURE__ */ n(u, { fallback: null, children: /* @__PURE__ */ n(t, {}) }), e[2] = t, e[3] = o) : o = e[3], o;
15
+ return e[0] !== n ? (o = /* @__PURE__ */ t(c, { fallback: null, children: /* @__PURE__ */ t(n, {}) }), e[0] = n, e[1] = o) : o = e[1], o;
18
16
  }
19
- return s;
17
+ return l;
18
+ }
19
+ function f(r) {
20
+ return r?.isLoading;
20
21
  }
21
22
  export {
22
- h as SkeletonLoader
23
+ L as SkeletonLoader
23
24
  };
24
25
  //# sourceMappingURL=skeleton-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton-loader.js","sources":["../../src/widgets/skeleton-loader/skeleton-loader.tsx"],"sourcesContent":["import type { SkeletonLoaderProps } from './types'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { Suspense } from 'react'\nimport { useShallow } from 'zustand/shallow'\n\n/**\n * Displays a skeleton loading placeholder while widget data is loading. Subscribes to widget loading state in the store and renders the provided Skeleton component or children accordingly.\n *\n * @example\n * ```tsx\n * <SkeletonLoader id=\"sales-chart\" Skeleton={BarSkeleton}>\n * <Bar id=\"sales-chart\" />\n * </SkeletonLoader>\n * ```\n */\nexport function SkeletonLoader({\n id,\n children,\n Skeleton,\n}: SkeletonLoaderProps) {\n const isLoading = useWidgetStore(\n useShallow((state) => state.widgets[id]?.isLoading),\n )\n\n if (isLoading) {\n if (!Skeleton) {\n return null\n }\n\n return (\n <Suspense fallback={null}>\n <Skeleton />\n </Suspense>\n )\n }\n\n return children\n}\n"],"names":["SkeletonLoader","t0","$","_c","id","children","Skeleton","t1","state","widgets","isLoading","useWidgetStore","useShallow","t2","Suspense","jsx"],"mappings":";;;;;AAeO,SAAAA,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAAwB;AAAA,IAAAC,IAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAAL;AAIT,MAAAM;AAKpB,MALoBL,SAAAE,KAEPG,IAAAC,CAAAA,MAAWA,EAAKC,QAASL,CAAE,GAAYM,WAAAR,OAAAE,GAAAF,OAAAK,KAAAA,IAAAL,EAAA,CAAA,GADlCS,EAChBC,EAAWL,CAAuC,CACpD,GAEa;AACX,QAAI,CAACD;AAAQ,aACJ;AACR,QAAAO;AAAA,WAAAX,SAAAI,KAGCO,sBAACC,GAAA,EAAmB,UAAA,MAClB,UAAA,gBAAAC,EAACT,KAAQ,GACX,GAAWJ,OAAAI,GAAAJ,OAAAW,KAAAA,IAAAX,EAAA,CAAA,GAFXW;AAAAA,EAEW;AAEd,SAEMR;AAAQ;"}
1
+ {"version":3,"file":"skeleton-loader.js","sources":["../../src/widgets/skeleton-loader/skeleton-loader.tsx"],"sourcesContent":["import type { SkeletonLoaderProps } from './types'\nimport { useWidgetSelector } from '../stores/use-widget-selector'\nimport { Suspense } from 'react'\n\n/**\n * Displays a skeleton loading placeholder while widget data is loading. Subscribes to widget loading state in the store and renders the provided Skeleton component or children accordingly.\n *\n * @example\n * ```tsx\n * <SkeletonLoader id=\"sales-chart\" Skeleton={BarSkeleton}>\n * <Bar id=\"sales-chart\" />\n * </SkeletonLoader>\n * ```\n */\nexport function SkeletonLoader({\n id,\n children,\n Skeleton,\n}: SkeletonLoaderProps) {\n const isLoading = useWidgetSelector(id, (w) => w?.isLoading)\n\n if (isLoading) {\n if (!Skeleton) {\n return null\n }\n\n return (\n <Suspense fallback={null}>\n <Skeleton />\n </Suspense>\n )\n }\n\n return children\n}\n"],"names":["SkeletonLoader","t0","$","_c","id","children","Skeleton","useWidgetSelector","_temp","t1","Suspense","jsx","w","isLoading"],"mappings":";;;;AAcO,SAAAA,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAAwB;AAAA,IAAAC,IAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAAL;AAO7B,MAFkBM,EAAkBH,GAAII,CAAmB,GAE9C;AACX,QAAI,CAACF;AAAQ,aACJ;AACR,QAAAG;AAAA,WAAAP,SAAAI,KAGCG,sBAACC,GAAA,EAAmB,UAAA,MAClB,UAAA,gBAAAC,EAACL,KAAQ,GACX,GAAWJ,OAAAI,GAAAJ,OAAAO,KAAAA,IAAAP,EAAA,CAAA,GAFXO;AAAAA,EAEW;AAEd,SAEMJ;AAAQ;AAnBV,SAAAG,EAAAI,GAAA;AAAA,SAK0CA,GAACC;AAAW;"}
@@ -1,146 +1,162 @@
1
- import { jsx as a, jsxs as I, Fragment as M } from "react/jsx-runtime";
2
- import { c as w } from "react/compiler-runtime";
3
- import { I as y, S as k, P as C, a as R } from "../series-CYNOu2Ju.js";
4
- import { u as h } from "../widget-store-CzDt8oSK.js";
5
- import { useShallow as S } from "zustand/shallow";
6
- import { d as T } from "../formatter-B9Bxn1k7.js";
7
- import { Box as $, Skeleton as V } from "@mui/material";
8
- import { R as b } from "../row-DTCV0Ocm.js";
1
+ import { jsx as s, jsxs as M, Fragment as _ } from "react/jsx-runtime";
2
+ import { c as g } from "react/compiler-runtime";
3
+ import { I as w, S as k, P as C, a as R } from "../series-Bola3CmD.js";
4
+ import { u as T } from "../use-widget-selector-DqRmWQ1K.js";
5
+ import { d as $ } from "../formatter-B9Bxn1k7.js";
6
+ import { Box as I, Skeleton as V } from "@mui/material";
7
+ import "../widget-store-CIrb9RKP.js";
8
+ import "zustand/shallow";
9
+ import { R as b } from "../row-D4VOhcNI.js";
9
10
  import "@mui/icons-material";
10
11
  import "react";
11
- import { u as j } from "../use-widget-ref-wtFLDFCD.js";
12
- import "react-markdown";
13
12
  import "html2canvas";
14
13
  import "../lasso-tool-BYbxrJ-7.js";
15
14
  import "../cjs-D4KH3azB.js";
16
15
  import "@dnd-kit/core";
17
16
  import "@dnd-kit/sortable";
18
17
  import "@dnd-kit/utilities";
19
- import { d as W, a as P } from "../exports-Cr43OCul.js";
20
- function v(t) {
21
- const e = w(2);
18
+ import { u as j } from "../use-widget-ref-BFazQvJK.js";
19
+ import { d as y, a as P } from "../exports-Cr43OCul.js";
20
+ function v(e) {
21
+ const t = g(2);
22
22
  let i;
23
- return e[0] !== t ? (i = /* @__PURE__ */ a(y, { ...t, children: "-" }), e[0] = t, e[1] = i) : i = e[1], i;
23
+ return t[0] !== e ? (i = /* @__PURE__ */ s(w, { ...e, children: "-" }), t[0] = e, t[1] = i) : i = t[1], i;
24
24
  }
25
- function F(t) {
26
- const e = w(19);
27
- let i, o, r;
28
- e[0] !== t ? ({
25
+ function F(e) {
26
+ const t = g(15);
27
+ let i, r, o;
28
+ t[0] !== e ? ({
29
29
  id: i,
30
- index: r,
31
- ...o
32
- } = t, e[0] = t, e[1] = i, e[2] = o, e[3] = r) : (i = e[1], o = e[2], r = e[3]);
33
- const n = r === void 0 ? 0 : r;
34
- let s;
35
- e[4] !== i || e[5] !== n ? (s = (f) => f.getWidget(i)?.data[n]?.min, e[4] = i, e[5] = n, e[6] = s) : s = e[6];
36
- const m = h(S(s));
37
- let c;
38
- e[7] !== i || e[8] !== n ? (c = (f) => f.getWidget(i)?.data[n]?.color, e[7] = i, e[8] = n, e[9] = c) : c = e[9];
39
- const u = h(S(c)), p = h(S((f) => f.getWidget(i)?.formatter)) ?? T;
40
- let l;
41
- e[10] !== u ? (l = {
42
- color: u
43
- }, e[10] = u, e[11] = l) : l = e[11];
44
- const x = m ?? 0;
30
+ index: o,
31
+ ...r
32
+ } = e, t[0] = e, t[1] = i, t[2] = r, t[3] = o) : (i = t[1], r = t[2], o = t[3]);
33
+ const n = o === void 0 ? 0 : o;
45
34
  let d;
46
- e[12] !== p || e[13] !== x ? (d = p(x), e[12] = p, e[13] = x, e[14] = d) : d = e[14];
47
- let g;
48
- return e[15] !== o || e[16] !== l || e[17] !== d ? (g = /* @__PURE__ */ a(y, { TypographyProps: l, ...o, children: d }), e[15] = o, e[16] = l, e[17] = d, e[18] = g) : g = e[18], g;
35
+ t[4] !== n ? (d = (S) => {
36
+ const p = S;
37
+ return {
38
+ min: p?.data[n]?.min,
39
+ color: p?.data[n]?.color,
40
+ formatter: p?.formatter
41
+ };
42
+ }, t[4] = n, t[5] = d) : d = t[5];
43
+ const {
44
+ min: m,
45
+ color: c,
46
+ formatter: h
47
+ } = T(i, d), u = h ?? $;
48
+ let a;
49
+ t[6] !== c ? (a = {
50
+ color: c
51
+ }, t[6] = c, t[7] = a) : a = t[7];
52
+ const x = m ?? 0;
53
+ let l;
54
+ t[8] !== u || t[9] !== x ? (l = u(x), t[8] = u, t[9] = x, t[10] = l) : l = t[10];
55
+ let f;
56
+ return t[11] !== r || t[12] !== a || t[13] !== l ? (f = /* @__PURE__ */ s(w, { TypographyProps: a, ...r, children: l }), t[11] = r, t[12] = a, t[13] = l, t[14] = f) : f = t[14], f;
49
57
  }
50
- function _(t) {
51
- const e = w(19);
52
- let i, o, r;
53
- e[0] !== t ? ({
58
+ function W(e) {
59
+ const t = g(15);
60
+ let i, r, o;
61
+ t[0] !== e ? ({
54
62
  id: i,
55
- index: r,
56
- ...o
57
- } = t, e[0] = t, e[1] = i, e[2] = o, e[3] = r) : (i = e[1], o = e[2], r = e[3]);
58
- const n = r === void 0 ? 0 : r;
59
- let s;
60
- e[4] !== i || e[5] !== n ? (s = (f) => f.getWidget(i)?.data[n]?.max, e[4] = i, e[5] = n, e[6] = s) : s = e[6];
61
- const m = h(S(s));
62
- let c;
63
- e[7] !== i || e[8] !== n ? (c = (f) => f.getWidget(i)?.data[n]?.color, e[7] = i, e[8] = n, e[9] = c) : c = e[9];
64
- const u = h(S(c)), p = h(S((f) => f.getWidget(i)?.formatter)) ?? T;
65
- let l;
66
- e[10] !== u ? (l = {
67
- color: u
68
- }, e[10] = u, e[11] = l) : l = e[11];
69
- const x = m ?? 0;
63
+ index: o,
64
+ ...r
65
+ } = e, t[0] = e, t[1] = i, t[2] = r, t[3] = o) : (i = t[1], r = t[2], o = t[3]);
66
+ const n = o === void 0 ? 0 : o;
70
67
  let d;
71
- e[12] !== p || e[13] !== x ? (d = p(x), e[12] = p, e[13] = x, e[14] = d) : d = e[14];
72
- let g;
73
- return e[15] !== o || e[16] !== l || e[17] !== d ? (g = /* @__PURE__ */ a(y, { TypographyProps: l, ...o, children: d }), e[15] = o, e[16] = l, e[17] = d, e[18] = g) : g = e[18], g;
68
+ t[4] !== n ? (d = (S) => {
69
+ const p = S;
70
+ return {
71
+ max: p?.data[n]?.max,
72
+ color: p?.data[n]?.color,
73
+ formatter: p?.formatter
74
+ };
75
+ }, t[4] = n, t[5] = d) : d = t[5];
76
+ const {
77
+ max: m,
78
+ color: c,
79
+ formatter: h
80
+ } = T(i, d), u = h ?? $;
81
+ let a;
82
+ t[6] !== c ? (a = {
83
+ color: c
84
+ }, t[6] = c, t[7] = a) : a = t[7];
85
+ const x = m ?? 0;
86
+ let l;
87
+ t[8] !== u || t[9] !== x ? (l = u(x), t[8] = u, t[9] = x, t[10] = l) : l = t[10];
88
+ let f;
89
+ return t[11] !== r || t[12] !== a || t[13] !== l ? (f = /* @__PURE__ */ s(w, { TypographyProps: a, ...r, children: l }), t[11] = r, t[12] = a, t[13] = l, t[14] = f) : f = t[14], f;
74
90
  }
75
- function ie(t) {
76
- const e = w(8), {
91
+ function rt(e) {
92
+ const t = g(8), {
77
93
  ref: i
78
- } = j(t.id);
79
- let o;
80
- e[0] !== t.id ? (o = (s) => {
94
+ } = j(e.id);
95
+ let r;
96
+ t[0] !== e.id ? (r = (d) => {
81
97
  const {
82
98
  index: m
83
- } = s;
84
- return /* @__PURE__ */ I(M, { children: [
85
- /* @__PURE__ */ a(k, { id: t.id, index: m }),
86
- /* @__PURE__ */ a(C, { id: t.id, index: m }),
87
- /* @__PURE__ */ a(F, { id: t.id, index: m }),
88
- /* @__PURE__ */ a(v, {}),
89
- /* @__PURE__ */ a(_, { id: t.id, index: m }),
90
- /* @__PURE__ */ a(R, { id: t.id, index: m })
99
+ } = d;
100
+ return /* @__PURE__ */ M(_, { children: [
101
+ /* @__PURE__ */ s(k, { id: e.id, index: m }),
102
+ /* @__PURE__ */ s(C, { id: e.id, index: m }),
103
+ /* @__PURE__ */ s(F, { id: e.id, index: m }),
104
+ /* @__PURE__ */ s(v, {}),
105
+ /* @__PURE__ */ s(W, { id: e.id, index: m }),
106
+ /* @__PURE__ */ s(R, { id: e.id, index: m })
91
107
  ] });
92
- }, e[0] = t.id, e[1] = o) : o = e[1];
93
- let r;
94
- e[2] !== t.id || e[3] !== o ? (r = /* @__PURE__ */ a(b, { id: t.id, children: o }), e[2] = t.id, e[3] = o, e[4] = r) : r = e[4];
108
+ }, t[0] = e.id, t[1] = r) : r = t[1];
109
+ let o;
110
+ t[2] !== e.id || t[3] !== r ? (o = /* @__PURE__ */ s(b, { id: e.id, children: r }), t[2] = e.id, t[3] = r, t[4] = o) : o = t[4];
95
111
  let n;
96
- return e[5] !== i || e[6] !== r ? (n = /* @__PURE__ */ a($, { ref: i, children: r }), e[5] = i, e[6] = r, e[7] = n) : n = e[7], n;
112
+ return t[5] !== i || t[6] !== o ? (n = /* @__PURE__ */ s(I, { ref: i, children: o }), t[5] = i, t[6] = o, t[7] = n) : n = t[7], n;
97
113
  }
98
114
  const B = {
99
115
  row: {
100
116
  display: "flex",
101
117
  alignItems: "center",
102
- gap: (t) => t.spacing(0.25),
118
+ gap: (e) => e.spacing(0.25),
103
119
  "& + &": {
104
- marginTop: (t) => t.spacing(1)
120
+ marginTop: (e) => e.spacing(1)
105
121
  }
106
122
  }
107
123
  };
108
- function oe() {
109
- const t = w(1);
110
- let e;
111
- return t[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ a($, { sx: B.row, "aria-label": "Spread skeleton", children: /* @__PURE__ */ a(V, { width: 120, height: 32 }) }), t[0] = e) : e = t[0], e;
124
+ function it() {
125
+ const e = g(1);
126
+ let t;
127
+ return e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ s(I, { sx: B.row, "aria-label": "Spread skeleton", children: /* @__PURE__ */ s(V, { width: 120, height: 32 }) }), e[0] = t) : t = e[0], t;
112
128
  }
113
- function re({
114
- refUI: t
129
+ function ot({
130
+ refUI: e
115
131
  }) {
116
132
  return [{
117
- ...W,
118
- modifier: () => W.modifier(t)
133
+ ...y,
134
+ modifier: () => y.modifier(e)
119
135
  }, {
120
136
  ...P,
121
- modifier: async (e) => {
122
- const i = e.map((o) => [o.min, o.max]);
137
+ modifier: async (t) => {
138
+ const i = t.map((r) => [r.min, r.max]);
123
139
  return P.modifier([["Min", "Max"], ...i]);
124
140
  }
125
141
  }];
126
142
  }
127
- function ne() {
143
+ function nt() {
128
144
  return {
129
145
  series: []
130
146
  };
131
147
  }
132
148
  export {
133
- y as Item,
134
- _ as MaxValue,
149
+ w as Item,
150
+ W as MaxValue,
135
151
  F as MinValue,
136
152
  C as Prefix,
137
153
  b as Row,
138
154
  v as Separator,
139
155
  k as Series,
140
- oe as SpreadSkeleton,
141
- ie as SpreadUI,
156
+ it as SpreadSkeleton,
157
+ rt as SpreadUI,
142
158
  R as Suffix,
143
- ne as spreadConfig,
144
- re as spreadDownloadConfig
159
+ nt as spreadConfig,
160
+ ot as spreadDownloadConfig
145
161
  };
146
162
  //# sourceMappingURL=spread.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spread.js","sources":["../../src/widgets/spread/components/separator.tsx","../../src/widgets/spread/components/min-value.tsx","../../src/widgets/spread/components/max-value.tsx","../../src/widgets/spread/spread-ui.tsx","../../src/widgets/spread/style.ts","../../src/widgets/spread/skeleton.tsx","../../src/widgets/spread/config.ts"],"sourcesContent":["import { Item } from '../../formula/components/item'\nimport type { ItemProps } from '../../formula/types'\n\n/**\n * Renders a dash separator between the min and max values in a spread widget.\n */\nexport function Separator(props: Omit<ItemProps, 'children'>) {\n return <Item {...props}>-</Item>\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\nimport { defaultFormatter } from '../../utils/formatter'\n\n/**\n * Displays the formatted minimum value for a spread widget data item.\n */\nexport function MinValue({ id, index = 0, ...props }: ValueProps) {\n const min = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.min,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(min ?? 0)}\n </Item>\n )\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\nimport { defaultFormatter } from '../../utils/formatter'\n\n/**\n * Displays the formatted maximum value for a spread widget data item.\n */\nexport function MaxValue({ id, index = 0, ...props }: ValueProps) {\n const max = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.max,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(max ?? 0)}\n </Item>\n )\n}\n","import type { SpreadUIProps } from './types'\n\nimport { Separator } from './components/separator'\nimport { MinValue } from './components/min-value'\nimport { MaxValue } from './components/max-value'\nimport { Prefix, Row, Suffix, Series } from '../formula'\nimport { useWidgetRef } from '../../hooks'\nimport { Box } from '@mui/material'\n\n/**\n * Renders a spread widget displaying min-max value pairs with optional prefixes, suffixes, and series indicators.\n */\nexport function SpreadUI(props: SpreadUIProps) {\n const { ref } = useWidgetRef(props.id)\n\n return (\n <Box ref={ref}>\n <Row id={props.id}>\n {({ index }) => (\n <>\n <Series id={props.id} index={index} />\n <Prefix id={props.id} index={index} />\n <MinValue id={props.id} index={index} />\n <Separator />\n <MaxValue id={props.id} index={index} />\n <Suffix id={props.id} index={index} />\n </>\n )}\n </Row>\n </Box>\n )\n}\n","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(0.25),\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function SpreadSkeleton() {\n return (\n <Box sx={styles.row} aria-label='Spread skeleton'>\n <Skeleton width={120} height={32} />\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type { SpreadWidgetConfig, SpreadWidgetData } from './types'\n\n/**\n * Creates download configuration for spread widgets, supporting PNG (screenshot) and CSV (min/max data) exports.\n *\n * @param props - Configuration with `refUI` reference for PNG export.\n * @returns Array of download items for use with the Download action.\n */\nexport function spreadDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<SpreadWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = data.map((item) => [item.min, item.max])\n\n return downloadToCSV.modifier([['Min', 'Max'], ...rows])\n },\n },\n ]\n}\n\n/**\n * Returns the default configuration for spread (min/max value range) widgets.\n *\n * @returns Default spread widget config with empty series.\n */\nexport function spreadConfig(): SpreadWidgetConfig {\n return {\n series: [],\n }\n}\n"],"names":["Separator","props","$","_c","t0","jsx","Item","MinValue","id","t1","index","undefined","t2","state","getWidget","data","min","useWidgetStore","useShallow","t3","state_0","color","formatter","state_1","defaultFormatter","t4","t5","t6","t7","MaxValue","max","SpreadUI","ref","useWidgetRef","jsxs","Fragment","Series","Prefix","Suffix","Row","Box","styles","row","display","alignItems","gap","theme","spacing","marginTop","SpreadSkeleton","Symbol","for","Skeleton","spreadDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","map","item","spreadConfig","series"],"mappings":"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"}
1
+ {"version":3,"file":"spread.js","sources":["../../src/widgets/spread/components/separator.tsx","../../src/widgets/spread/components/min-value.tsx","../../src/widgets/spread/components/max-value.tsx","../../src/widgets/spread/spread-ui.tsx","../../src/widgets/spread/style.ts","../../src/widgets/spread/skeleton.tsx","../../src/widgets/spread/config.ts"],"sourcesContent":["import { Item } from '../../formula/components/item'\nimport type { ItemProps } from '../../formula/types'\n\n/**\n * Renders a dash separator between the min and max values in a spread widget.\n */\nexport function Separator(props: Omit<ItemProps, 'children'>) {\n return <Item {...props}>-</Item>\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetSelector } from '../../stores/use-widget-selector'\nimport { Item } from '../../formula/components/item'\nimport { defaultFormatter } from '../../utils/formatter'\n\n/**\n * Displays the formatted minimum value for a spread widget data item.\n */\nexport function MinValue({ id, index = 0, ...props }: ValueProps) {\n const {\n min,\n color,\n formatter: _formatter,\n } = useWidgetSelector(id, (w) => {\n const sw = w as SpreadWidgetState | undefined\n return {\n min: sw?.data[index]?.min,\n color: sw?.data[index]?.color,\n formatter: sw?.formatter,\n }\n })\n const formatter = _formatter ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(min ?? 0)}\n </Item>\n )\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetSelector } from '../../stores/use-widget-selector'\nimport { Item } from '../../formula/components/item'\nimport { defaultFormatter } from '../../utils/formatter'\n\n/**\n * Displays the formatted maximum value for a spread widget data item.\n */\nexport function MaxValue({ id, index = 0, ...props }: ValueProps) {\n const {\n max,\n color,\n formatter: _formatter,\n } = useWidgetSelector(id, (w) => {\n const sw = w as SpreadWidgetState | undefined\n return {\n max: sw?.data[index]?.max,\n color: sw?.data[index]?.color,\n formatter: sw?.formatter,\n }\n })\n const formatter = _formatter ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(max ?? 0)}\n </Item>\n )\n}\n","import type { SpreadUIProps } from './types'\n\nimport { Separator } from './components/separator'\nimport { MinValue } from './components/min-value'\nimport { MaxValue } from './components/max-value'\nimport { Prefix, Row, Suffix, Series } from '../formula'\nimport { useWidgetRef } from '../../hooks'\nimport { Box } from '@mui/material'\n\n/**\n * Renders a spread widget displaying min-max value pairs with optional prefixes, suffixes, and series indicators.\n */\nexport function SpreadUI(props: SpreadUIProps) {\n const { ref } = useWidgetRef(props.id)\n\n return (\n <Box ref={ref}>\n <Row id={props.id}>\n {({ index }) => (\n <>\n <Series id={props.id} index={index} />\n <Prefix id={props.id} index={index} />\n <MinValue id={props.id} index={index} />\n <Separator />\n <MaxValue id={props.id} index={index} />\n <Suffix id={props.id} index={index} />\n </>\n )}\n </Row>\n </Box>\n )\n}\n","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(0.25),\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function SpreadSkeleton() {\n return (\n <Box sx={styles.row} aria-label='Spread skeleton'>\n <Skeleton width={120} height={32} />\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type { SpreadWidgetConfig, SpreadWidgetData } from './types'\n\n/**\n * Creates download configuration for spread widgets, supporting PNG (screenshot) and CSV (min/max data) exports.\n *\n * @param props - Configuration with `refUI` reference for PNG export.\n * @returns Array of download items for use with the Download action.\n */\nexport function spreadDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<SpreadWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = data.map((item) => [item.min, item.max])\n\n return downloadToCSV.modifier([['Min', 'Max'], ...rows])\n },\n },\n ]\n}\n\n/**\n * Returns the default configuration for spread (min/max value range) widgets.\n *\n * @returns Default spread widget config with empty series.\n */\nexport function spreadConfig(): SpreadWidgetConfig {\n return {\n series: [],\n }\n}\n"],"names":["Separator","props","$","_c","t0","jsx","Item","MinValue","id","t1","index","undefined","t2","w","sw","min","data","color","formatter","_formatter","useWidgetSelector","defaultFormatter","t3","t4","t5","t6","MaxValue","max","SpreadUI","ref","useWidgetRef","jsxs","Fragment","Series","Prefix","Suffix","Row","Box","styles","row","display","alignItems","gap","theme","spacing","marginTop","SpreadSkeleton","Symbol","for","Skeleton","spreadDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","map","item","spreadConfig","series"],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { u as r } from "../widget-store-CzDt8oSK.js";
1
+ import { u as o, w as r } from "../widget-store-CIrb9RKP.js";
2
+ import { u as i } from "../use-widget-selector-DqRmWQ1K.js";
2
3
  export {
3
- r as useWidgetStore
4
+ i as useWidgetSelector,
5
+ o as useWidgetStore,
6
+ r as widgetStoreActions
4
7
  };
5
8
  //# sourceMappingURL=stores.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stores.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"stores.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}