@carto/ps-react-ui 4.3.8 → 4.3.10

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 (95) hide show
  1. package/dist/components.js +692 -700
  2. package/dist/components.js.map +1 -1
  3. package/dist/{lasso-tool-jl4YK02H.js → lasso-tool-BYbxrJ-7.js} +184 -190
  4. package/dist/lasso-tool-BYbxrJ-7.js.map +1 -0
  5. package/dist/{row-BKmVAUN5.js → row-DTCV0Ocm.js} +2 -2
  6. package/dist/row-DTCV0Ocm.js.map +1 -0
  7. package/dist/{series-D1pynfeh.js → series-CYNOu2Ju.js} +2 -2
  8. package/dist/{series-D1pynfeh.js.map → series-CYNOu2Ju.js.map} +1 -1
  9. package/dist/smart-tooltip-D4vwQpFf.js +37 -0
  10. package/dist/smart-tooltip-D4vwQpFf.js.map +1 -0
  11. package/dist/{styles-DrPyd0y5.js → styles-CAroD5Rc.js} +12 -12
  12. package/dist/styles-CAroD5Rc.js.map +1 -0
  13. package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +1 -1
  14. package/dist/types/widgets/category/config.d.ts +3 -10
  15. package/dist/types/widgets/range/config.d.ts +0 -4
  16. package/dist/types/widgets/spread/config.d.ts +0 -5
  17. package/dist/types/widgets/table/components/cell.d.ts +4 -2
  18. package/dist/types/widgets/table/config.d.ts +1 -2
  19. package/dist/types/widgets/table/table-ui.d.ts +1 -1
  20. package/dist/types/widgets/table/types.d.ts +1 -1
  21. package/dist/types/widgets/wrapper/components/options.d.ts +1 -1
  22. package/dist/widgets/actions.js +607 -621
  23. package/dist/widgets/actions.js.map +1 -1
  24. package/dist/widgets/bar.js +48 -49
  25. package/dist/widgets/bar.js.map +1 -1
  26. package/dist/widgets/category.js +28 -28
  27. package/dist/widgets/category.js.map +1 -1
  28. package/dist/widgets/formula.js +3 -3
  29. package/dist/widgets/histogram.js +50 -50
  30. package/dist/widgets/histogram.js.map +1 -1
  31. package/dist/widgets/markdown.js +1 -1
  32. package/dist/widgets/pie.js +9 -9
  33. package/dist/widgets/pie.js.map +1 -1
  34. package/dist/widgets/range.js +1 -1
  35. package/dist/widgets/range.js.map +1 -1
  36. package/dist/widgets/scatterplot.js +13 -13
  37. package/dist/widgets/scatterplot.js.map +1 -1
  38. package/dist/widgets/spread.js +3 -3
  39. package/dist/widgets/spread.js.map +1 -1
  40. package/dist/widgets/table.js +242 -241
  41. package/dist/widgets/table.js.map +1 -1
  42. package/dist/widgets/timeseries.js +3 -3
  43. package/dist/widgets/timeseries.js.map +1 -1
  44. package/dist/widgets/wrapper.js +152 -162
  45. package/dist/widgets/wrapper.js.map +1 -1
  46. package/package.json +1 -1
  47. package/src/components/basemaps/basemaps.tsx +3 -1
  48. package/src/components/geolocation-controls/geolocation-controls.tsx +10 -6
  49. package/src/components/lasso-tool/lasso-tool-inline.tsx +6 -2
  50. package/src/components/lasso-tool/lasso-tool.tsx +9 -3
  51. package/src/components/list-data/list-data-skeleton.tsx +1 -1
  52. package/src/components/list-data/list-data.tsx +5 -3
  53. package/src/components/measurement-tools/measurement-tools.tsx +5 -1
  54. package/src/components/smart-tooltip/smart-tooltip.tsx +3 -1
  55. package/src/widgets/_shared/chart-config/option-builders.test.ts +2 -2
  56. package/src/widgets/_shared/chart-config/option-builders.ts +6 -4
  57. package/src/widgets/actions/download/download.test.tsx +6 -2
  58. package/src/widgets/actions/download/download.tsx +3 -1
  59. package/src/widgets/actions/fullscreen/fullscreen.tsx +8 -1
  60. package/src/widgets/actions/relative-data/relative-data.tsx +2 -6
  61. package/src/widgets/actions/searcher/searcher.tsx +0 -6
  62. package/src/widgets/bar/config.ts +8 -4
  63. package/src/widgets/bar/skeleton.tsx +1 -1
  64. package/src/widgets/category/components/category-row-multi.tsx +1 -1
  65. package/src/widgets/category/config.ts +1 -11
  66. package/src/widgets/formula/components/row.tsx +1 -1
  67. package/src/widgets/histogram/config.ts +7 -2
  68. package/src/widgets/histogram/skeleton.tsx +2 -2
  69. package/src/widgets/pie/skeleton.tsx +1 -1
  70. package/src/widgets/range/config.ts +0 -5
  71. package/src/widgets/scatterplot/skeleton.tsx +2 -2
  72. package/src/widgets/spread/config.ts +0 -6
  73. package/src/widgets/table/components/cell.tsx +5 -3
  74. package/src/widgets/table/components/row.tsx +6 -1
  75. package/src/widgets/table/config.ts +1 -1
  76. package/src/widgets/table/table-ui.tsx +1 -1
  77. package/src/widgets/table/types.ts +1 -1
  78. package/src/widgets/timeseries/skeleton.tsx +1 -1
  79. package/src/widgets/wrapper/components/actions.test.tsx +6 -2
  80. package/src/widgets/wrapper/components/actions.tsx +3 -1
  81. package/src/widgets/wrapper/components/options.test.tsx +12 -4
  82. package/src/widgets/wrapper/components/options.tsx +8 -3
  83. package/src/widgets/wrapper/wrapper-ui.tsx +5 -2
  84. package/src/widgets/wrapper/wrapper.tsx +2 -4
  85. package/dist/lasso-tool-jl4YK02H.js.map +0 -1
  86. package/dist/row-BKmVAUN5.js.map +0 -1
  87. package/dist/smart-tooltip-BEtBaIdz.js +0 -39
  88. package/dist/smart-tooltip-BEtBaIdz.js.map +0 -1
  89. package/dist/styles-DrPyd0y5.js.map +0 -1
  90. package/dist/types/widgets/actions/relative-data/style.d.ts +0 -8
  91. package/dist/types/widgets/actions/zoom-toggle/index.d.ts +0 -2
  92. package/dist/types/widgets/table/components/index.d.ts +0 -4
  93. package/src/widgets/actions/relative-data/style.ts +0 -9
  94. package/src/widgets/actions/zoom-toggle/index.ts +0 -2
  95. package/src/widgets/table/components/index.ts +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lasso-tool-BYbxrJ-7.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\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\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","gap","spacing","width","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":";;;;;;;AAEO,SAAAA,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAQDF,gCACW,UAAA,WACA,UAAA,WACP,GAAA,qkBACG,MAAA,eAAA,CAAc,GACnBF,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAK;AAAA,SAAAL,SAAAD,KAXJM,IAAA,gBAAAC,EAAA,OAAA,EACO,MAAA,QACC,OAAA,8BACE,SAAA,gBACJP,GAEJG,UAAAA,EAAAA,CAMF,GAAMF,OAAAD,GAAAC,OAAAK,KAAAA,IAAAL,EAAA,CAAA,GAZNK;AAYM;AAIH,SAAAE,GAAAR,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAQDF,gCACW,UAAA,WACA,UAAA,WACP,GAAA,gfACG,MAAA,eAAA,CAAc,GACnBF,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAK;AAAA,SAAAL,SAAAD,KAXJM,IAAA,gBAAAC,EAAA,OAAA,EACO,MAAA,QACC,OAAA,8BACE,SAAA,gBACJP,GAEJG,UAAAA,EAAAA,CAMF,GAAMF,OAAAD,GAAAC,OAAAK,KAAAA,IAAAL,EAAA,CAAA,GAZNK;AAYM;AAIH,SAAAG,GAAAT,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAQDF,gCACW,UAAA,WACA,UAAA,WACP,GAAA,gJACG,MAAA,eAAA,CAAc,GACnBF,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAK;AAAA,SAAAL,SAAAD,KAXJM,IAAA,gBAAAC,EAAA,OAAA,EACO,MAAA,QACC,OAAA,8BACE,SAAA,gBACJP,GAEJG,UAAAA,EAAAA,CAMF,GAAMF,OAAAD,GAAAC,OAAAK,KAAAA,IAAAL,EAAA,CAAA,GAZNK;AAYM;AAIH,SAAAI,GAAAV,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAQDF,gCACW,UAAA,WACA,UAAA,WACP,GAAA,wvBACG,MAAA,eAAA,CAAc,GACnBF,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAK;AAAA,SAAAL,SAAAD,KAXJM,IAAA,gBAAAC,EAAA,OAAA,EACO,MAAA,QACC,OAAA,8BACE,SAAA,gBACJP,GAEJG,UAAAA,EAAAA,CAMF,GAAMF,OAAAD,GAAAC,OAAAK,KAAAA,IAAAL,EAAA,CAAA,GAZNK;AAYM;AAIH,SAAAK,GAAAX,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAQDF,gCACW,UAAA,WACA,UAAA,WACP,GAAA,mOACG,MAAA,eAAA,CAAc,GACnBF,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAK;AAAA,SAAAL,SAAAD,KAXJM,IAAA,gBAAAC,EAAA,OAAA,EACO,MAAA,QACC,OAAA,8BACE,SAAA,gBACJP,GAEJG,UAAAA,EAAAA,CAMF,GAAMF,OAAAD,GAAAC,OAAAK,KAAAA,IAAAL,EAAA,CAAA,GAZNK;AAYM;AC7EH,MAAMM,IAET;AAAA,EACFC,QAAQ;AAAA,IACNC,SAAS;AAAA,MACPC,QAAQ;AAAA,MACRC,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEFC,MAAM;AAAA,IACJH,SAAS;AAAA,MACPC,QAAQ;AAAA,MACRC,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEFE,SAAS;AAAA,IACPC,MAAM;AAAA,MACJC,OAAO;AAAA,MACPF,SAAS;AAAA,QACPG,QAAQ;AAAA,QACRC,OAAO;AAAA,QACPC,SAAS;AAAA,QACTC,WAAW;AAAA,QACXC,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEFC,QAAQ;AAAA,IACNN,OAAO;AAAA,IACPO,aACE;AAAA,EAAA;AAAA,EAEJC,SAAS;AAAA,IACPC,WAAW;AAAA,MACTd,QAAQ;AAAA,MACRC,UAAU;AAAA,IAAA;AAAA,IAEZc,WAAW;AAAA,EAAA;AAEf,GAEaC,KACX;AAAA,EACER,SAAS;AAAA,IACPS,wBAAOjC,IAAA,CAAA,CAAe;AAAA,EAAA;AAAA,EAExByB,WAAW;AAAA,IACTQ,wBAAOxB,IAAA,CAAA,CAAc;AAAA,EAAA;AAAA,EAEvBa,QAAQ;AAAA,IACNW,wBAAOvB,IAAA,CAAA,CAAc;AAAA,EAAA;AAAA,EAEvBa,OAAO;AAAA,IACLU,wBAAOtB,IAAA,CAAA,CAAa;AAAA,EAAA;AAAA,EAEtBe,MAAM;AAAA,IACJO,wBAAOrB,IAAA,CAAA,CAAc;AAAA,EAAA;AAEzB,GCnEWsB,IAAS;AAAA,EACpBC,WAAW;AAAA,IACTC,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,YAAY;AAAA,IACZC,gBAAgB;AAAA,IAChBC,UAAU;AAAA,IAEV,YAAY;AAAA,MACVH,eAAe;AAAA,MACfC,YAAY;AAAA,MACZG,KAAKA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,IAAA;AAAA,EACjC;AAAA,EAEFb,SAAS;AAAA,IACPI,MAAM;AAAA,MACJU,OAAOA,CAAC;AAAA,QAAED,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MACjCE,QAAQA,CAAC;AAAA,QAAEF,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MAClCG,cAAc;AAAA,MACd,gDAAgD;AAAA,QAC9CA,cAAc;AAAA,MAAA;AAAA,IAChB;AAAA,EACF;AAAA,EAEF1B,SAAS;AAAA,IACP2B,MAAM;AAAA,MACJC,YAAYA,CAAC;AAAA,QAAEL,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MACtC,YAAY;AAAA,QACVM,WAAW;AAAA,QACXC,iBAAiB;AAAA,QACjBJ,cAAcA,CAAC;AAAA,UAAEH,SAAAA;AAAAA,QAAAA,MAAcA,EAAQ,GAAG;AAAA,QAE1C,sBAAsB;AAAA,UACpBE,QAAQA,CAAC;AAAA,YAAEF,SAAAA;AAAAA,UAAAA,MAAcA,EAAQ,CAAC;AAAA,UAElC,4CAA4C;AAAA,YAC1CE,QAAQA,CAAC;AAAA,cAAEF,SAAAA;AAAAA,YAAAA,MAAcA,EAAQ,CAAC;AAAA,UAAA;AAAA,UAEpC,0CAA0C;AAAA,YACxCE,QAAQ;AAAA,YACRD,OAAOA,CAAC;AAAA,cAAED,SAAAA;AAAAA,YAAAA,MAAcA,EAAQ,CAAC;AAAA,YACjCQ,QAAQA,CAAC;AAAA,cAAER,SAAAA;AAAAA,YAAAA,MAAc,GAAGA,EAAQ,KAAK,GAAG,CAAC,CAAC;AAAA,YAC9CG,cAAc;AAAA,UAAA;AAAA,QAChB;AAAA,QAGF,gCAAgC;AAAA,UAC9BK,QAAQ;AAAA,UAER,wDAAwD;AAAA,YACtDA,QAAQ;AAAA,UAAA;AAAA,UAEV,+DAA+D;AAAA,YAC7DN,QAAQA,CAAC;AAAA,cAAEF,SAAAA;AAAAA,YAAAA,MAAcA,EAAQ,CAAC;AAAA,UAAA;AAAA,UAEpC,6DAA6D;AAAA,YAC3DE,QAAQ;AAAA,YACRD,OAAOA,CAAC;AAAA,cAAED,SAAAA;AAAAA,YAAAA,MAAcA,EAAQ,CAAC;AAAA,UAAA;AAAA,QACnC;AAAA,QAGF,uDAAuD;AAAA,UACrDQ,QAAQ;AAAA,UAER,mBAAmB;AAAA,YACjBC,YAAY;AAAA,UAAA;AAAA,UAEd,wBAAwB;AAAA,YACtBC,aAAaA,CAAC;AAAA,cAAEV,SAAAA;AAAAA,YAAAA,MAAcA,EAAQ,GAAG;AAAA,UAAA;AAAA,QAC3C;AAAA,QAEF,2DAA2D;AAAA,UACzD,iCAAiC;AAAA,YAC/BQ,QAAQA,CAAC;AAAA,cAAER,SAAAA;AAAAA,YAAAA,MAAcA,EAAQ,GAAG,GAAG;AAAA,UAAA;AAAA,QACzC;AAAA,QAEF,yDAAyD;AAAA,UACvD,iCAAiC;AAAA,YAC/BQ,QAAQA,CAAC;AAAA,cAAER,SAAAA;AAAAA,YAAAA,MAAcA,EAAQ,GAAG,GAAG,GAAG;AAAA,YAE1C,wBAAwB;AAAA,cACtBU,aAAa;AAAA,YAAA;AAAA,YAEf,kBAAkB;AAAA,cAChBC,cAAc;AAAA,YAAA;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEFpB,MAAM;AAAA,MACJY,cAAc;AAAA,MACdF,OAAOA,CAAC;AAAA,QAAED,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,IAAA;AAAA,IAEnCrB,OAAO;AAAA,MACLiC,UAAUA,CAAC;AAAA,QAAEZ,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MACpCa,eAAeA,CAAC;AAAA,QAAEb,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,MAE3C,YAAY;AAAA,QACVY,UAAU;AAAA,QACVC,eAAe;AAAA,MAAA;AAAA,IACjB;AAAA,IAEFC,OAAO;AAAA,MACLC,OAAOA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQC,KAAKC;AAAAA,IAAAA;AAAAA,IAUvCC,MAAM;AAAA,MACJlB,OAAOA,CAAC;AAAA,QAAED,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,IAAA;AAAA,EACnC;AAAA,EAEFxB,MAAM;AAAA,IACJiB,WAAW;AAAA,MACTC,SAAS;AAAA,MACTC,eAAe;AAAA,MACfC,YAAY;AAAA,MACZG,KAAKA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,MACjCoB,WAAW;AAAA,MACXC,gBAAgB;AAAA,MAChBT,UAAUA,CAAC;AAAA,QAAEZ,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MAEpC,YAAY;AAAA,QACVoB,WAAW;AAAA,QACXE,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF9C,MAAM;AAAA,MACJkC,aAAaA,CAAC;AAAA,QAAEV,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,IAAA;AAAA,EAK7C;AACF;ACvIO,SAAAuB,GAAA7D,GAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAA0B;AAAA,IAAA+D,WAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAAlE,GAU/BmE,IAAkBJ,EAAKK,UAAL,WAAA,YAClBC,IACEL,GAAMrD,UAAYwD,CAAS,KAAK1D,EAAkBK,KAAKH,QAASwD,CAAS,GAGvBhE,IAAA2D,GAASQ;AAAc,MAAAC;AAAA,EAAAzE,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAEjEqE,IAAA;AAAA,IAAA,GACCzC,EAAMhB,KAAKA;AAAAA,EAAAA,GACfhB,OAAAyE,KAAAA,IAAAzE,EAAA,CAAA;AACM,QAAA0E,IAAAT,EAAKK,UAAL,cAAA;AAAuC,MAAAK;AAAA,EAAA3E,SAAAoE,KAAApE,EAAA,CAAA,MAAAiE,EAAAW,MAEpCD,IAAAA,MAAMP,EAASH,EAAKW,EAAG,GAAC5E,OAAAoE,GAAApE,EAAA,CAAA,IAAAiE,EAAAW,IAAA5E,OAAA2E,KAAAA,IAAA3E,EAAA,CAAA;AAAA,MAAA6E;AAAA,EAAA7E,EAAA,CAAA,MAAAmE,KAAAnE,EAAA,CAAA,MAAAiE,EAAAW,MAAA5E,EAAA,CAAA,MAAAiE,EAAAK,WAEzBO,IAAAA,MAAMV,EAAaF,EAAKW,IAAK,CAACX,EAAKK,OAAQ,GAACtE,OAAAmE,GAAAnE,EAAA,CAAA,IAAAiE,EAAAW,IAAA5E,EAAA,CAAA,IAAAiE,EAAAK,SAAAtE,OAAA6E,KAAAA,IAAA7E,EAAA,CAAA;AACjD,QAAA8E,IAAAd,GAASe;AAAY,MAAAC;AAAA,EAAAhF,SAAA0E,KAAA1E,EAAA,CAAA,MAAA2E,KAAA3E,EAAA,EAAA,MAAA6E,KAAA7E,UAAA8E,KAAA9E,EAAA,EAAA,MAAAiE,EAAAgB,SAT3BD,sBAACE,IAAA,EACK,IAAAT,GAGG,OAAAC,GACF,MAAA,SACK,UAAAC,GACH,OAAAV,EAAKgB,OACH,SAAAJ,GAA4C,GACjDC,GAAqB,GACzB9E,OAAA0E,GAAA1E,OAAA2E,GAAA3E,QAAA6E,GAAA7E,QAAA8E,GAAA9E,EAAA,EAAA,IAAAiE,EAAAgB,OAAAjF,QAAAgF,KAAAA,IAAAhF,EAAA,EAAA;AAAA,MAAAmF;AAAA,SAAAnF,EAAA,EAAA,MAAAuE,KAAAvE,UAAAK,KAAAL,EAAA,EAAA,MAAAgF,KAXJG,sBAACC,KAAeb,OAAAA,GAAqB,WAAA,UAAQ,GAAKlE,GAChD2E,UAAAA,EAAAA,CAWF,GAAUhF,QAAAuE,GAAAvE,QAAAK,GAAAL,QAAAgF,GAAAhF,QAAAmF,KAAAA,IAAAnF,EAAA,EAAA,GAZVmF;AAYU;ACAd,MAAME,KAAmD,CAAA,GACnDC,KACJ,CAAA;AAEK,SAAAC,EAAArF,GAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAAsB;AAAA,IAAAuF,SAAAA;AAAAA,IAAAC,QAAApF;AAAAA,IAAAqF,aAAAA;AAAAA,IAAA1B,WAAAA;AAAAA,IAAAE,QAAAA;AAAAA,IAAAyB,OAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,YAAArB;AAAAA,IAAAsB,gBAAAA;AAAAA,IAAA5B,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAA4B,cAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,WAAAzB;AAAAA,IAAA0B,YAAAzB;AAAAA,IAAA0B,sBAAAxB;AAAAA,IAAAyB,aAAAxB;AAAAA,EAAAA,IAAA5E,GAE3BuF,IAAApF,MAAAkG,SAAAlB,KAAAhF,GAOY2E,IAAAP,MAAA8B,SAAAjB,KAAAb;AAAyC,MAAAqB,GAAAU;AAAA,EAAAxG,SAAAgF,KAAzC;AAAA,IAAAwB,IAAAA;AAAAA,IAAA,GAAAV;AAAAA,EAAAA,IAAAd,GAAyChF,OAAAgF,GAAAhF,OAAA8F,GAAA9F,OAAAwG,MAAAV,IAAA9F,EAAA,CAAA,GAAAwG,IAAAxG,EAAA,CAAA;AAOrD,QAAAmG,IAAAzB,MAAA6B,SAAYhB,EAAYkB,QAAxB/B,GACA0B,IAAAzB,MAAA4B,SAAahB,EAAYmB,SAAzB/B,GACA0B,IAAAxB,MAAA0B,SAAuBhB,EAAYoB,mBAAnC9B,GACAyB,IAAAxB,MAAAyB,SAAchB,EAAYqB,UAA1B9B;AAAkC,MAAAK;AAAA,EAAAnF,EAAA,CAAA,MAAA8F,KAAA9F,EAAA,CAAA,MAAA0F,KAAA1F,EAAA,CAAA,MAAAgE,KAAAhE,EAAA,CAAA,MAAAwF,KAAAxF,EAAA,CAAA,MAAAkE,KAAAlE,EAAA,CAAA,MAAA6F,KAAA7F,EAAA,CAAA,MAAA2F,KAAA3F,UAAA4F,KAAA5F,EAAA,EAAA,MAAA+F,KAAA/F,EAAA,EAAA,MAAAiG,KAAAjG,EAAA,EAAA,MAAAkG,KAAAlG,EAAA,EAAA,MAAAgG,KAAAhG,EAAA,EAAA,MAAAmE,KAAAnE,EAAA,EAAA,MAAAoE,KAAApE,EAAA,EAAA,MAAAyF,KAEjBN,IAAA;AAAA,IAAAK,SAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAA1B,WAAAA;AAAAA,IAAAE,QAAAA;AAAAA,IAAAyB,OAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,IAAA5B,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAA4B,cAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,EAAAA,GAgBhBlG,OAAA8F,GAAA9F,OAAA0F,GAAA1F,OAAAgE,GAAAhE,OAAAwF,GAAAxF,OAAAkE,GAAAlE,OAAA6F,GAAA7F,OAAA2F,GAAA3F,QAAA4F,GAAA5F,QAAA+F,GAAA/F,QAAAiG,GAAAjG,QAAAkG,GAAAlG,QAAAgG,GAAAhG,QAAAmE,GAAAnE,QAAAoE,GAAApE,QAAAyF,GAAAzF,QAAAmF,KAAAA,IAAAnF,EAAA,EAAA;AAhBD,QAAA6G,IAAiB1B;AAgBhB,MAAA2B;AAAA,EAAA9G,UAAAwG,KAGOM,IAAA;AAAA,IAAA,GACC9E,EAAMC;AAAAA,IAAU,GAChBuE;AAAAA,EAAAA,GACJxG,QAAAwG,GAAAxG,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAAA,MAAA+G;AAAA,EAAA/G,EAAA,EAAA,MAAAoG,KAAApG,UAAA6G,KAGAE,IAAA,CAAC,CAACX,KAAc,gBAAA9F,EAAC8F,GAAA,EAAU,GAAKS,GAAQ,GAAI7G,QAAAoG,GAAApG,QAAA6G,GAAA7G,QAAA+G,KAAAA,IAAA/G,EAAA,EAAA;AAAA,MAAAgH;AAAA,EAAAhH,EAAA,EAAA,MAAAsG,KAAAtG,UAAA6G,KAC5CG,IAAA,CAAC,CAACV,KACD,gBAAAhG,EAACsG,GAAA,EACE7G,UAAAA,CAAAA,MACQ,gBAAAO,EAACgG,GAAA,EAAW,GAAKO,GAAQ,GAAM9G,EAAAA,IAE1C,GACDC,QAAAsG,GAAAtG,QAAA6G,GAAA7G,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA;AAAA,MAAAiH;AAAA,EAAAjH,EAAA,EAAA,MAAAmG,KAAAnG,UAAA6G,KACAI,IAAA,CAAC,CAACd,KAAa,gBAAA7F,EAAC6F,GAAA,EAAS,GAAKU,GAAQ,GAAI7G,QAAAmG,GAAAnG,QAAA6G,GAAA7G,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAAA,MAAAkH;AAAA,EAAAlH,EAAA,EAAA,MAAAqG,KAAArG,UAAA6G,KAC1CK,IAAA,CAAC,CAACb,KAAwB,gBAAA/F,EAAC+F,GAAA,EAAoB,GAAKQ,GAAQ,GAAI7G,QAAAqG,GAAArG,QAAA6G,GAAA7G,QAAAkH,KAAAA,IAAAlH,EAAA,EAAA;AAAA,MAAAmH;AAAA,SAAAnH,UAAA8F,KAAA9F,EAAA,EAAA,MAAA+G,KAAA/G,EAAA,EAAA,MAAAgH,KAAAhH,EAAA,EAAA,MAAAiH,KAAAjH,UAAAkH,KAAAlH,EAAA,EAAA,MAAA8G,KAhBnEK,IAAA,gBAAAC,EAACC,IAAA,EACK,IAAAP,GAGH,GACGhB,GAEHiB,UAAAA;AAAAA,IAAAA;AAAAA,IACAC;AAAAA,IAOAC;AAAAA,IACAC;AAAAA,EAAAA,GACH,GAAQlH,QAAA8F,GAAA9F,QAAA+G,GAAA/G,QAAAgH,GAAAhH,QAAAiH,GAAAjH,QAAAkH,GAAAlH,QAAA8G,GAAA9G,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA,GAjBRmH;AAiBQ;AAIZ,SAAAG,GAAApH,GAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAA4B;AAAA,IAAAyF,aAAAA;AAAAA,IAAAxB,QAAAA;AAAAA,IAAAsB,SAAAA;AAAAA,IAAA+B,UAAAA;AAAAA,IAAAxB,gBAAAA;AAAAA,EAAAA,IAAA7F,GAc1BsH,IAAoBhC,IAAA,WAAA,YACpBiC,IACEvD,GAAMrD,UAAY2G,CAAW,KAC7B7G,EAAkBC,OAAOC,QAAS2G,CAAW,GAMvCnH,IAAAqF,GAAWlB;AAAc,MAAAC;AAAA,EAAAzE,EAAA,CAAA,MAAAwF,KAAAxF,SAAA+F,KAKlBtB,IAAAA,MAAMsB,EAAe,CAACP,CAAO,GAACxF,OAAAwF,GAAAxF,OAAA+F,GAAA/F,OAAAyE,KAAAA,IAAAzE,EAAA,CAAA;AAAA,MAAA0E;AAAA,EAAA1E,EAAA,CAAA,MAAAyH,KAAAzH,EAAA,CAAA,MAAAuH,KAAAvH,EAAA,CAAA,MAAAwF,KAAAxF,SAAAyE,KAHzCC,sBAACgD,IAAA,EACO,OAAA,UACF,IAAA1F,EAAML,QAAQI,MACT,SAAA0C,GACGgD,iBACFjC,0BAGZ,GAAexF,OAAAyH,GAAAzH,OAAAuH,GAAAvH,OAAAwF,GAAAxF,OAAAyE,GAAAzE,OAAA0E,KAAAA,IAAA1E,EAAA,CAAA;AAAA,MAAA2E;AAAA,SAAA3E,EAAA,CAAA,MAAAyH,KAAAzH,SAAAK,KAAAL,EAAA,EAAA,MAAA0E,KAbjBC,sBAACS,KACQqC,OAAAA,GACG,WAAA,SAAO,GACbpH,GAEJqE,UAAAA,EAAAA,CASF,GAAU1E,OAAAyH,GAAAzH,OAAAK,GAAAL,QAAA0E,GAAA1E,QAAA2E,KAAAA,IAAA3E,EAAA,EAAA,GAdV2E;AAcU;AAId,MAAMgD,KAAiE,CAAA;AAEvE,SAAAf,EAAA1G,GAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAAiB;AAAA,IAAA2H,cAAAvH;AAAAA,IAAAwH,WAAAA;AAAAA,IAAAN,UAAAA;AAAAA,EAAAA,IAAArH,GACf0H,IAAAvH,MAAAkG,SAAAoB,KAAAtH,GAWA;AAAA,IAAAyH,MAAAA;AAAAA,IAAAtB,IAAAA;AAAAA,EAAAA,IAAqBoB;AAAY,MAAAnD;AAAA,EAAAzE,SAAA8H,KAChBrD,IAAAqD,uBAASC,GAAA,CAAA,CAAa,GAAG/H,OAAA8H,GAAA9H,OAAAyE,KAAAA,IAAAzE,EAAA,CAAA;AAA1C,QAAAgI,IAAiBvD,GAEjB,CAAAwD,GAAAC,CAAA,IAAgCC,GAA6B,IAAI,GAEjEC,IAAaC,EAAQJ;AAAS,MAAAvD;AAAA,EAAA1E,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAETsE,IAAA4D,CAAAA,MAAA;AACnBJ,IAAAA,EAAYI,EAAKC,aAAc;AAAA,EAAC,GACjCvI,OAAA0E,KAAAA,IAAA1E,EAAA,CAAA;AAFD,QAAAwI,IAAqB9D;AAEpB,MAAAC;AAAA,EAAA3E,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAEmBuE,IAAAA,MAAA;AAClBuD,IAAAA,EAAY,IAAI;AAAA,EAAC,GAClBlI,OAAA2E,KAAAA,IAAA3E,EAAA,CAAA;AAFD,QAAAyI,IAAoB9D;AAEnB,MAAAE;AAAA,EAAA7E,SAAAwG,KAKS3B,IAAA;AAAA,IAAA,GACC7C,EAAMf,QAAQc;AAAAA,IAAK,GACnByE;AAAAA,EAAAA,GACJxG,OAAAwG,GAAAxG,OAAA6E,KAAAA,IAAA7E,EAAA,CAAA;AAAA,MAAA8E;AAAA,EAAA9E,EAAA,CAAA,MAAAgI,KAAAhI,SAAA6E,KAJHC,sBAAC4D,IAAA,EACK,IAAA7D,GAIK2D,yBAGX,GAAaxI,OAAAgI,GAAAhI,OAAA6E,GAAA7E,OAAA8E,KAAAA,IAAA9E,EAAA,CAAA;AAAA,MAAAgF;AAAA,EAAAhF,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAMI4E,IAAA;AAAA,IAAA,mBACM;AAAA,IAAcwB,IAC7BxE,EAAMf,QAAQ2B;AAAAA,EAAAA,GACnB5C,OAAAgF,KAAAA,IAAAhF,EAAA,CAAA;AAAA,MAAAmF;AAAA,EAAAnF,UAAAuH,KAIEpC,IAAAoC,EAAS;AAAA,IAAAoB,SACCF;AAAAA,EAAAA,CACV,GAACzI,QAAAuH,GAAAvH,QAAAmF,KAAAA,IAAAnF,EAAA,EAAA;AAAA,MAAA8G;AAAA,EAAA9G,UAAAmF,KAHJ2B,+BACG3B,UAAAA,EAAAA,CAGH,GAAMnF,QAAAmF,GAAAnF,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAAA,MAAA+G;AAAA,EAAA/G,EAAA,EAAA,MAAA6H,KAAA7H,EAAA,EAAA,MAAAiI,KAAAjI,EAAA,EAAA,MAAAoI,KAAApI,UAAA8G,KAfRC,IAAA,gBAAAzG,EAACsI,IAAA,EACI,IAAA,cACOX,UAAAA,GACJG,MAAAA,GACGK,YACM,eAAAzD,GAGd,GACG6C,GAEJf,UAAAA,GAKF,GAAO9G,QAAA6H,GAAA7H,QAAAiI,GAAAjI,QAAAoI,GAAApI,QAAA8G,GAAA9G,QAAA+G,KAAAA,IAAA/G,EAAA,EAAA;AAAA,MAAAgH;AAAA,SAAAhH,EAAA,EAAA,MAAA+G,KAAA/G,UAAA8E,KA1BTkC,2BACElC,UAAAA;AAAAA,IAAAA;AAAAA,IASAiC;AAAAA,EAAAA,GAgBO,GACN/G,QAAA+G,GAAA/G,QAAA8E,GAAA9E,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA,GA3BHgH;AA2BG;AAIP,SAAA6B,GAAA3I,GAAA;AAAA,QAAAF,IAAAC,EAAA,CAAA,GAAkB;AAAA,IAAA6I,MAAAA;AAAAA,IAAA5E,QAAAA;AAAAA,IAAAqD,UAAAA;AAAAA,EAAAA,IAAArH;AAShB,MAAI4I,EAAIC,UAAW;AAAC,WACX;AAGT,QAAAC,IAAkB9E,GAAMhD,MAAaC,SAAIR,EAAkBM,QAAQC,KAAKC;AAAM,MAAAd;AAAA,EAAAL,SAAAgJ,KAI1E3I,IAAA,gBAAAC,EAAC2I,GAAA,EACS,SAAA,aACF,OAAA,kBACF,IAAAjH,EAAMf,QAAQE,OAEjB6H,UAAAA,EAAAA,CACH,GAAahJ,OAAAgJ,GAAAhJ,OAAAK,KAAAA,IAAAL,EAAA,CAAA;AAAA,MAAAyE;AAAA,SAAAzE,EAAA,CAAA,MAAAuH,KAAAvH,SAAAK,KAPfoE,2BACEpE,UAAAA;AAAAA,IAAAA;AAAAA,IAOCkH;AAAAA,EAAAA,GAAQ,GACRvH,OAAAuH,GAAAvH,OAAAK,GAAAL,OAAAyE,KAAAA,IAAAzE,EAAA,CAAA,GATHyE;AASG;AAIP,SAASyE,EAAY;AAAA,EACnBJ,MAAAA;AAAAA,EACAjD,cAAAA;AAAAA,EACA3B,QAAAA;AAAAA,EACA8B,cAAAA;AAAAA,EACA2C,SAAAA;AAMF,GAAG;AACD,QAAMQ,IAAcA,CAClBC,GACAnF,MACG;AACHmF,IAAAA,EAAEC,eAAAA,GACFrD,IAAe/B,CAAK,GACpB0E,EAAAA;AAAAA,EACF;AAEA,SAAOG,EACJQ,OAAO,CAACpI,MAA2CmH,EAAQnH,CAAK,EAChEqI,IAAKrI,CAAAA,MAAS;AAGb,UAAM+D,KADJf,GAAQhD,MAAMD,WAAWN,EAAmBM,QAAQC,KAAKD,SACrCC,EAAK+C,KAAK;AAEhC,6BACGuF,GAAA,EAEC,UAAU,CAAC,CAACtI,EAAKuI,UACjB,SAAUL,CAAAA,MAAMD,EAAYC,GAAGlI,EAAK+C,KAAK,GACzC,UAAU/C,EAAK+C,UAAU4B,GAEzB,UAAA;AAAA,MAAA,gBAAAvF,EAACoJ,IAAA,EAAa,IAAI1H,EAAOf,QAAQqC,OAC/B,UAAA,gBAAAhD,EAACqJ,IAAA,EAASzI,UAAAA,EAAKa,KAAAA,CAAK,EAAA,CACtB;AAAA,MACA,gBAAAzB,EAACsJ,MAAc3E,UAAAA,EAAAA,CAAM;AAAA,IAAA,EAAA,GARhB/D,EAAK+C,KASZ;AAAA,EAEJ,CAAC;AACL;AAEA,SAAA4F,GAAA3J,GAAA;AAAA,QAAAF,IAAAC,EAAA,CAAA,GAAiC;AAAA,IAAAwF,QAAAA;AAAAA,IAAAvB,QAAAA;AAAAA,IAAA+B,iBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,EAAAA,IAAAhG;AAW/B,MAAI,CAACuF,GAAMsD,UAAYtD,EAAMsD,UAAW;AAAC,WAChC;AAKT,QAAAe,IAFmBrE,GAAMsE,KAAOC,EAAwB,IAGnD9F,GAAMvC,SAAoBC,WAAQd,UACnCH,EAAkBgB,QAAQC,UAAUd,SACnCoD,GAAMvC,SAAoBC,WAAUb,YACrCJ,EAAkBgB,QAAQC,UAAUb,UAExCkJ,IACE/F,GAAMvC,SAAoBE,aAAIlB,EAAkBgB,QAAQE;AAAU,MAAAxB;AAAA,EAAAL,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAIhEC,IAAA,gBAAAC,EAAC4J,GAAA,EAAoB,aAAA,YAAW,UAAA,IAAQ,GAAGlK,OAAAK,KAAAA,IAAAL,EAAA,CAAA;AAAA,MAAAyE,GAAAC;AAAA,EAAA1E,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAE3BqE,IAAA;AAAA,IAAAqD,wBAASqC,IAAA,EAAgB;AAAA,IAAG3D,IAAMxE,EAAMf,QAAQ0C;AAAAA,EAAAA,GACnDe,IAAA;AAAA,IAAA0F,cACK;AAAA,MAAAC,UACF;AAAA,MAAQC,YACN;AAAA,IAAA;AAAA,IACbC,iBACgB;AAAA,MAAAF,UACL;AAAA,MAAKC,YACH;AAAA,IAAA;AAAA,EACd,GACDtK,OAAAyE,GAAAzE,OAAA0E,MAAAD,IAAAzE,EAAA,CAAA,GAAA0E,IAAA1E,EAAA,CAAA;AAAA,MAAA2E;AAAA,SAAA3E,EAAA,CAAA,MAAAiK,KAAAjK,EAAA,CAAA,MAAAiG,KAAAjG,EAAA,CAAA,MAAAkG,KAAAlG,SAAA8J,KAbLnF,IAAA,gBAAAyC,EAAAoD,GAAA,EACEnK,UAAAA;AAAAA,IAAAA;AAAAA,sBACCuG,GAAA,EACe,cAAAnC,GACH,WAAAC,GAWV3E,iBAEG,gBAAAqH,EAAAoD,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAlK,EAACkJ,GAAA,EACO,OAAA,WACG,SAAA,MAAA;AACPvD,QAAAA,IAAAA,GACAlG,EAAK4I,QAAAA;AAAAA,MAAU,GAGhBmB,UAAAA,GACH;AAAA,wBACCI,GAAA,EAAO;AAAA,MACR,gBAAA5J,EAACkJ,GAAA,EACO,OAAA,SACG,SAAA,MAAA;AACPtD,QAAAA,IAAAA,GACAnG,EAAK4I,QAAAA;AAAAA,MAAU,GAGjB,4BAACM,GAAA,EAAmB,SAAA,SAAc,OAAA,sBAElC,EAAA,CACF;AAAA,IAAA,EAAA,CAAW,EAAA,CAInB;AAAA,EAAA,GAAU,GACTjJ,OAAAiK,GAAAjK,OAAAiG,GAAAjG,OAAAkG,GAAAlG,OAAA8J,GAAA9J,OAAA2E,KAAAA,IAAA3E,EAAA,CAAA,GA3CH2E;AA2CG;AAtEP,SAAAqF,GAAA/F,GAAA;AAAA,SAe6CA,EAAKK;AAAQ;AA2D1DiB,EAAamB,SAAS,SAAwB;AAAA,EAC5Cf,OAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAH,aAAAA;AAAAA,EACAF,SAAAA;AAAAA,EACAtB,QAAAA;AAAAA,EACA6B,gBAAAA;AAQF,GAAG;AACD,QAAM+C,IAAO2B,EAAQ,MACZC,EAAU/E,KAAS,IAAIC,KAAgB,CAAA,CAAE,GAC/C,CAACD,GAAOC,CAAY,CAAC,GAElB4C,IAA4DM,CAAAA,MACzD/C,IAAiB+C,CAAI,GAKxB5H,KAFa2E,IAAeA,MAAiBF,KAAS,CAAA,KAAM,MAGnDE,IAAe8E,OAAOC,KAAK9B,CAAI,EAAE,CAAC,GAG3C+B,IAAoB/B,EAAK5H,CAAI;AAEnC,SACE,gBAAAZ,EAACgH,IAAA,EACC,aAAA5B,GACA,QAAQxB,GAAQtD,QAChB,SAAS4E,KAAW,IACpB,gBAAgBgD,GAEfqC,UAAAA,GAAmB9I,MACtB;AAEJ;AAEAwD,EAAakB,QAAQ,SAAsB;AAAA,EACzChB,QAAAA;AAAAA,EACAvB,QAAAA;AAAAA,EACAF,WAAAA;AAAAA,EACAI,UAAAA;AAAAA,EACAD,cAAAA;AAAAA,EACA4B,gBAAAA;AAMF,GAAG;AACD,QAAM+E,IAAsDC,CAAAA,OAC1DhF,IAAiB,EAAK,GACf3B,IAAW2G,CAAO;AAG3B,SACE,CAAC,CAACtF,GAAQsD,4BACPiC,IAAA,EAAI,IAAIhJ,EAAOhB,KAAKiB,WAClBwD,UAAAA,GAAQ8D,IAAKtF,CAAAA,wBACXF,IAAA,EAEC,OAAAE,GACA,QAAQC,GAAQlD,MAChB,WAAAgD,GACA,UAAU8G,GACV,cAAc,CAAClG,GAAIkE,MAAS3E,IAAeS,GAAIkE,CAAI,EAAA,GAL9C7E,EAAMW,EAK0C,CAExD,GACH;AAGN;AAEAW,EAAaoB,mBAAmBkD;AAEhCtE,EAAaqB,UAAU,SAAwB;AAAA,EAC7CnB,QAAAA;AAAAA,EACAE,OAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACA3B,QAAAA;AAAAA,EACA8B,cAAAA;AAAAA,EACA,GAAGjG;AAOgB,GAAG;AACtB,QAAM+I,IAAO2B,EAAQ,MACZC,EAAU/E,KAAS,IAAIC,KAAgB,CAAA,CAAE,GAC/C,CAACD,GAAOC,CAAY,CAAC,GAElB;AAAA,IAAEpE,MAAAA;AAAAA,IAAM,GAAGyJ;AAAAA,EAAAA,IAAWnC,GAItB5H,KAFa2E,IAAeA,MAAiBF,KAAS,CAAA,KAAM,MAGnDE,IAAe8E,OAAOC,KAAK9B,CAAI,EAAE,CAAC,GAG3CoC,IAAcP,OAAOlF,OAAOwF,CAAM,GAElCE,IAA8DrC,CAAAA,MAC3D9C,IAAe8C,CAAI;AAG5B,SACE,gBAAA1B,EAAAoD,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAlK,EAACuI,MAAS,MAAMqC,GAAa,QAAQhH,GAAQjD,SAC3C,4BAACiI,GAAA,EACC,GAAInJ,GACJ,QAAQmE,GAAQjD,SAChB,MAAMiK,GACN,cAAchK,GACd,cAAciK,GAAiB,EAAA,CAEnC;AAAA,IACC,CAAC,CAAC3J,KACD,gBAAA4F,EAAAoD,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAlK,EAAC4J,GAAA,EAAO;AAAA,MACR,gBAAA5J,EAAC4I,QACKnJ,GACJ,QAAQmE,GAAQjD,SAChB,MAAM,CACJ;AAAA,QACE,GAAGO;AAAAA,QACHiI,UAAU,CAAChE,GAAQsD;AAAAA,MAAAA,CACpB,GAEH,cAAc7H,GACd,cAAciK,EAAAA,CAAiB;AAAA,IAAA,EAAA,CAEnC;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -26,10 +26,10 @@ function y(t) {
26
26
  let a;
27
27
  return e[2] !== o || e[3] !== t ? (a = o?.map((l, r) => /* @__PURE__ */ d(c, { sx: f.row, children: typeof t.children == "function" ? t.children({
28
28
  index: r
29
- }) : t.children }, r)), e[2] = o, e[3] = t, e[4] = a) : a = e[4], a;
29
+ }) : t.children }, `row-${r}`)), e[2] = o, e[3] = t, e[4] = a) : a = e[4], a;
30
30
  }
31
31
  export {
32
32
  y as R,
33
33
  f as s
34
34
  };
35
- //# sourceMappingURL=row-BKmVAUN5.js.map
35
+ //# sourceMappingURL=row-DTCV0Ocm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-DTCV0Ocm.js","sources":["../src/widgets/formula/style.ts","../src/widgets/formula/components/row.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n item: {\n '&[data-disabled=\"true\"]': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\nimport type { FormulaWidgetState, RowProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Row(props: RowProps) {\n const data = useWidgetStore(\n useShallow((state) => state.getWidget<FormulaWidgetState>(props.id)?.data),\n )\n\n return data?.map((_, index) => {\n return (\n <Box sx={styles.row} key={`row-${index}`}>\n {typeof props.children === 'function'\n ? props.children({ index })\n : props.children}\n </Box>\n )\n })\n}\n"],"names":["styles","item","color","theme","palette","text","disabled","row","display","alignItems","gap","spacing","marginTop","Row","props","$","_c","t0","id","state","getWidget","data","useWidgetStore","useShallow","t1","map","_","index","jsx","Box","children"],"mappings":";;;;;AAEO,MAAMA,IAAS;AAAA,EAMpBC,MAAM;AAAA,IACJ,2BAA2B;AAAA,MACzBC,OAAOA,CAACC,MAAiBA,EAAMC,QAAQC,KAAKC;AAAAA,IAAAA;AAAAA,EAC9C;AAAA,EAEFC,KAAK;AAAA,IACHC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,KAAKA,CAACP,MAAiBA,EAAMQ,QAAQ,CAAC;AAAA,IAEtC,SAAS;AAAA,MACPC,WAAWA,CAACT,MAAiBA,EAAMQ,QAAQ,CAAC;AAAA,IAAA;AAAA,EAC9C;AAEJ;AChBO,SAAAE,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAD,EAAAI,MAEQD,IAAAE,CAAAA,MAAWA,EAAKC,UAA+BN,EAAKI,EAAS,GAACG,MAAAN,EAAA,CAAA,IAAAD,EAAAI,IAAAH,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAD3E,QAAAM,IAAaC,EACXC,EAAWN,CAA8D,CAC3E;AAAC,MAAAO;AAAA,SAAAT,EAAA,CAAA,MAAAM,KAAAN,SAAAD,KAEMU,IAAAH,GAAII,IAAM,CAAAC,GAAAC,MAEb,gBAAAC,EAACC,GAAA,EAAQ,IAAA7B,EAAMO,KACZ,UAAA,OAAOO,EAAKgB,YAAc,aACvBhB,EAAKgB,SAAU;AAAA,IAAAH,OAAAA;AAAAA,EAAAA,CACF,IAAbb,EAAKgB,YAHe,OAAOH,CAAK,EAItC,CAEH,GAACZ,OAAAM,GAAAN,OAAAD,GAAAC,OAAAS,KAAAA,IAAAT,EAAA,CAAA,GARKS;AAQL;"}
@@ -3,7 +3,7 @@ import { c as h } from "react/compiler-runtime";
3
3
  import { u as g } from "./widget-store-CzDt8oSK.js";
4
4
  import { useShallow as p } from "zustand/shallow";
5
5
  import { Typography as S, Avatar as b } from "@mui/material";
6
- import { s as P } from "./row-BKmVAUN5.js";
6
+ import { s as P } from "./row-DTCV0Ocm.js";
7
7
  function y(i) {
8
8
  const e = h(4);
9
9
  let t;
@@ -88,4 +88,4 @@ export {
88
88
  j as S,
89
89
  I as a
90
90
  };
91
- //# sourceMappingURL=series-D1pynfeh.js.map
91
+ //# sourceMappingURL=series-CYNOu2Ju.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"series-D1pynfeh.js","sources":["../src/widgets/formula/components/item.tsx","../src/widgets/formula/components/prefix.tsx","../src/widgets/formula/components/suffix.tsx","../src/widgets/formula/components/series.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport type { ItemProps } from '../types'\nimport { styles } from '../style'\n\nexport function Item(props: ItemProps) {\n return (\n <Typography\n sx={styles.item}\n variant='h5'\n fontWeight='medium'\n data-disabled={props.disabled}\n color='default'\n {...props.TypographyProps}\n >\n {props.children}\n </Typography>\n )\n}\n","import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Prefix({ id, index = 0, ...props }: ValueProps) {\n const prefix = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.data?.[index]?.prefix,\n ),\n )\n\n if (!prefix) {\n return null\n }\n\n return <Item {...props}>{prefix}</Item>\n}\n","import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport type { Theme } from '@mui/material'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Suffix({ id, index = 0, ...props }: ValueProps) {\n const suffix = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.data?.[index]?.suffix,\n ),\n )\n\n if (!suffix) {\n return null\n }\n\n return (\n <Item\n TypographyProps={{\n color: (theme: Theme) => theme.palette.text.secondary,\n }}\n {...props}\n >\n {suffix}\n </Item>\n )\n}\n","import { Avatar } from '@mui/material'\nimport type { FormulaWidgetState, ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Series({ id, index = 0 }: Pick<ValueProps, 'id' | 'index'>) {\n const serie = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.series?.[index],\n ),\n )\n if (!serie) {\n return null\n }\n\n const { name, color } = serie\n\n return (\n <Avatar\n sx={{\n bgcolor: color,\n width: 32,\n height: 32,\n fontSize: '0.875rem',\n fontWeight: 'medium',\n ...(color && {\n color: (theme) => theme.palette.getContrastText(color),\n }),\n }}\n >\n {name.charAt(0).toUpperCase()}\n </Avatar>\n )\n}\n"],"names":["Item","props","$","_c","t0","TypographyProps","children","disabled","Typography","styles","item","Prefix","id","t1","index","undefined","t2","state","getWidget","data","prefix","useWidgetStore","useShallow","t3","jsx","Suffix","suffix","Symbol","for","color","_temp","t4","theme","palette","text","secondary","Series","series","serie","name","getContrastText","bgcolor","width","height","fontSize","fontWeight","t5","charAt","toUpperCase","t6","Avatar"],"mappings":"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"}
1
+ {"version":3,"file":"series-CYNOu2Ju.js","sources":["../src/widgets/formula/components/item.tsx","../src/widgets/formula/components/prefix.tsx","../src/widgets/formula/components/suffix.tsx","../src/widgets/formula/components/series.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport type { ItemProps } from '../types'\nimport { styles } from '../style'\n\nexport function Item(props: ItemProps) {\n return (\n <Typography\n sx={styles.item}\n variant='h5'\n fontWeight='medium'\n data-disabled={props.disabled}\n color='default'\n {...props.TypographyProps}\n >\n {props.children}\n </Typography>\n )\n}\n","import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Prefix({ id, index = 0, ...props }: ValueProps) {\n const prefix = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.data?.[index]?.prefix,\n ),\n )\n\n if (!prefix) {\n return null\n }\n\n return <Item {...props}>{prefix}</Item>\n}\n","import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport type { Theme } from '@mui/material'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Suffix({ id, index = 0, ...props }: ValueProps) {\n const suffix = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.data?.[index]?.suffix,\n ),\n )\n\n if (!suffix) {\n return null\n }\n\n return (\n <Item\n TypographyProps={{\n color: (theme: Theme) => theme.palette.text.secondary,\n }}\n {...props}\n >\n {suffix}\n </Item>\n )\n}\n","import { Avatar } from '@mui/material'\nimport type { FormulaWidgetState, ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Series({ id, index = 0 }: Pick<ValueProps, 'id' | 'index'>) {\n const serie = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.series?.[index],\n ),\n )\n if (!serie) {\n return null\n }\n\n const { name, color } = serie\n\n return (\n <Avatar\n sx={{\n bgcolor: color,\n width: 32,\n height: 32,\n fontSize: '0.875rem',\n fontWeight: 'medium',\n ...(color && {\n color: (theme) => theme.palette.getContrastText(color),\n }),\n }}\n >\n {name.charAt(0).toUpperCase()}\n </Avatar>\n )\n}\n"],"names":["Item","props","$","_c","t0","TypographyProps","children","disabled","Typography","styles","item","Prefix","id","t1","index","undefined","t2","state","getWidget","data","prefix","useWidgetStore","useShallow","t3","jsx","Suffix","suffix","Symbol","for","color","_temp","t4","theme","palette","text","secondary","Series","series","serie","name","getContrastText","bgcolor","width","height","fontSize","fontWeight","t5","charAt","toUpperCase","t6","Avatar"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { jsx as v } from "react/jsx-runtime";
2
+ import { c as S } from "react/compiler-runtime";
3
+ import { useRef as w, useState as I, useLayoutEffect as O } from "react";
4
+ import { T as P } from "./tooltip-BDnrRKrp.js";
5
+ const x = [];
6
+ function _(p) {
7
+ const t = S(11), {
8
+ title: a,
9
+ dependencies: m,
10
+ timeout: d,
11
+ TooltipProps: l,
12
+ children: c
13
+ } = p, f = m === void 0 ? x : m, e = d === void 0 ? 500 : d, o = w(null), [T, h] = I(!1);
14
+ let r;
15
+ t[0] !== e ? (r = () => {
16
+ const E = setTimeout(() => {
17
+ if (o.current) {
18
+ const g = o.current.scrollWidth > o.current.clientWidth || o.current.scrollHeight > o.current.clientHeight;
19
+ h(g);
20
+ }
21
+ }, e);
22
+ return () => clearTimeout(E);
23
+ }, t[0] = e, t[1] = r) : r = t[1];
24
+ let n;
25
+ t[2] !== f || t[3] !== e ? (n = [f, e], t[2] = f, t[3] = e, t[4] = n) : n = t[4], O(r, n);
26
+ const u = T && a;
27
+ let i;
28
+ t[5] !== c ? (i = c({
29
+ ref: o
30
+ }), t[5] = c, t[6] = i) : i = t[6];
31
+ let s;
32
+ return t[7] !== l || t[8] !== u || t[9] !== i ? (s = /* @__PURE__ */ v(P, { title: u, ...l, children: i }), t[7] = l, t[8] = u, t[9] = i, t[10] = s) : s = t[10], s;
33
+ }
34
+ export {
35
+ _ as S
36
+ };
37
+ //# sourceMappingURL=smart-tooltip-D4vwQpFf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-tooltip-D4vwQpFf.js","sources":["../src/components/smart-tooltip/smart-tooltip.tsx"],"sourcesContent":["import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_DEPENDENCIES: unknown[] = []\n\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n dependencies = EMPTY_DEPENDENCIES,\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}) {\n const ref = useRef<T>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n\n useLayoutEffect(() => {\n const timerId = setTimeout(() => {\n if (ref.current) {\n const isOverflowing =\n ref.current.scrollWidth > ref.current.clientWidth ||\n ref.current.scrollHeight > ref.current.clientHeight\n\n setIsOverflowing(isOverflowing)\n }\n }, timeout)\n\n return () => clearTimeout(timerId)\n }, [dependencies, timeout])\n\n return (\n <Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>\n )\n}\n"],"names":["EMPTY_DEPENDENCIES","SmartTooltip","t0","$","_c","title","dependencies","t1","timeout","t2","TooltipProps","children","undefined","ref","useRef","isOverflowing","setIsOverflowing","useState","t3","timerId","setTimeout","current","isOverflowing_0","scrollWidth","clientWidth","scrollHeight","clientHeight","clearTimeout","t4","useLayoutEffect","t5","t6","t7","Tooltip"],"mappings":";;;;AAIA,MAAMA,IAAgC,CAAA;AAE/B,SAAAC,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA6C;AAAA,IAAAC,OAAAA;AAAAA,IAAAC,cAAAC;AAAAA,IAAAC,SAAAC;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAAT,GAElDI,IAAAC,MAAAK,SAAAZ,IAAAO,GACAC,IAAAC,MAAAG,SAAA,MAAAH,GAUAI,IAAYC,EAAU,IAAI,GAC1B,CAAAC,GAAAC,CAAA,IAA0CC,EAAS,EAAK;AAAC,MAAAC;AAAA,EAAAf,SAAAK,KAEzCU,IAAAA,MAAA;AACd,UAAAC,IAAgBC,WAAW,MAAA;AACzB,UAAIP,EAAGQ,SAAQ;AACb,cAAAC,IACET,EAAGQ,QAAQE,cAAeV,EAAGQ,QAAQG,eACrCX,EAAGQ,QAAQI,eAAgBZ,EAAGQ,QAAQK;AAExCV,QAAAA,EAAiBD,CAAa;AAAA,MAAC;AAAA,IAChC,GACAP,CAAO;AAAC,WAEJ,MAAMmB,aAAaR,CAAO;AAAA,EAAC,GACnChB,OAAAK,GAAAL,OAAAe,KAAAA,IAAAf,EAAA,CAAA;AAAA,MAAAyB;AAAA,EAAAzB,EAAA,CAAA,MAAAG,KAAAH,SAAAK,KAAEoB,IAAA,CAACtB,GAAcE,CAAO,GAACL,OAAAG,GAAAH,OAAAK,GAAAL,OAAAyB,KAAAA,IAAAzB,EAAA,CAAA,GAZ1B0B,EAAgBX,GAYbU,CAAuB;AAGR,QAAAE,IAAAf,KAAAV;AAAsB,MAAA0B;AAAA,EAAA5B,SAAAQ,KACnCoB,IAAApB,EAAS;AAAA,IAAAE,KAAAA;AAAAA,EAAAA,CAAO,GAACV,OAAAQ,GAAAR,OAAA4B,KAAAA,IAAA5B,EAAA,CAAA;AAAA,MAAA6B;AAAA,SAAA7B,EAAA,CAAA,MAAAO,KAAAP,SAAA2B,KAAA3B,EAAA,CAAA,MAAA4B,KADpBC,sBAACC,GAAA,EAAe,OAAAH,GAAsB,GAAMpB,GACzCqB,UAAAA,GACH,GAAU5B,OAAAO,GAAAP,OAAA2B,GAAA3B,OAAA4B,GAAA5B,QAAA6B,KAAAA,IAAA7B,EAAA,EAAA,GAFV6B;AAEU;"}
@@ -19,12 +19,12 @@ function y(t) {
19
19
  });
20
20
  }), e;
21
21
  }
22
- function F(t) {
23
- if (t <= 0) return 0;
24
- const e = Math.pow(10, Math.floor(Math.log10(t)));
25
- return Math.ceil(t / e) * e;
26
- }
27
22
  function b(t) {
23
+ if (t === 0) return 0;
24
+ const e = Math.abs(t), n = Math.pow(10, Math.floor(Math.log10(e))), i = Math.ceil(e / n) * n;
25
+ return t < 0 ? -i : i;
26
+ }
27
+ function F(t) {
28
28
  return {
29
29
  show: t,
30
30
  icon: "circle",
@@ -34,7 +34,7 @@ function b(t) {
34
34
  type: "scroll"
35
35
  };
36
36
  }
37
- function x(t, e) {
37
+ function d(t, e) {
38
38
  return {
39
39
  ...!t && {
40
40
  bottom: parseInt(e.spacing(3))
@@ -44,7 +44,7 @@ function x(t, e) {
44
44
  }
45
45
  };
46
46
  }
47
- function d(t) {
47
+ function x(t) {
48
48
  return function(e, n, i, o, r) {
49
49
  const c = {
50
50
  top: parseInt(t.spacing(0.5))
@@ -110,14 +110,14 @@ const S = {
110
110
  }
111
111
  };
112
112
  export {
113
- d as a,
114
- x as b,
113
+ x as a,
114
+ d as b,
115
115
  w as c,
116
- b as d,
116
+ F as d,
117
117
  S as e,
118
118
  m as f,
119
119
  v as g,
120
- F as n,
120
+ b as n,
121
121
  y as s
122
122
  };
123
- //# sourceMappingURL=styles-DrPyd0y5.js.map
123
+ //# sourceMappingURL=styles-CAroD5Rc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles-CAroD5Rc.js","sources":["../src/widgets/_shared/chart-config/csv-modifiers.ts","../src/widgets/_shared/chart-config/option-builders.ts","../src/widgets/_shared/skeleton/styles.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 type { Theme } from '@mui/material'\nimport type { LegendComponentOption } from 'echarts'\nimport type {\n CallbackDataParams,\n TopLevelFormatterParams,\n} from 'node_modules/echarts/types/dist/shared'\n\n/**\n * Shared EChart configuration builders for chart widgets\n */\n\n/**\n * Rounds a value up to the nearest \"nice\" number.\n * A nice number is a multiple of 10^floor(log10(value)).\n *\n * Examples: 547 → 600, 200 → 200, 1200 → 2000, 18 → 20, 5 → 5, -547 → -500\n */\nexport function niceNum(value: number): number {\n if (value === 0) return 0\n const absValue = Math.abs(value)\n const base = Math.pow(10, Math.floor(Math.log10(absValue)))\n const rounded = Math.ceil(absValue / base) * base\n return value < 0 ? -rounded : rounded\n}\n\n/**\n * Builds standard legend configuration for chart widgets\n *\n * @param hasLegend - Whether to show the legend\n * @returns Legend configuration object\n */\nexport function buildLegendConfig(hasLegend: boolean): LegendComponentOption {\n return {\n show: hasLegend,\n icon: 'circle' as const,\n left: 0,\n bottom: 0,\n orient: 'horizontal',\n type: 'scroll',\n }\n}\n\n/**\n * Builds standard grid configuration with legend-aware spacing\n *\n * @param hasLegend - Whether the chart has a legend\n * @param theme - MUI theme for spacing\n * @param additionalConfig - Additional grid configuration to merge\n * @returns Grid configuration object\n */\nexport function buildGridConfig(hasLegend: boolean, theme: Theme) {\n return {\n ...(!hasLegend && { bottom: parseInt(theme.spacing(3)) }),\n ...(hasLegend && { bottom: parseInt(theme.spacing(7)) }),\n }\n}\n\n/**\n * Creates a tooltip position calculator that handles overflow\n * Used by bar, histogram, and scatterplot widgets\n *\n * @param theme - MUI theme for spacing\n * @returns Tooltip position function\n */\nexport function createTooltipPositioner(theme: Theme) {\n return function (\n point: [number, number],\n _params: unknown,\n _dom: unknown,\n _rect: unknown,\n size: { contentSize: [number, number]; viewSize: [number, number] },\n ) {\n const position = { top: parseInt(theme.spacing(0.5)) } as Record<\n string,\n number\n >\n\n // Position tooltip left or right based on available space\n if (size.contentSize[0] < size.viewSize[0] - point[0]) {\n position.left = point[0]\n } else {\n position.right = size.viewSize[0] - point[0]\n }\n\n return position\n }\n}\n\n/**\n * Creates an axis label formatter for ECharts\n * Used to format numeric axis labels with a widget formatter\n *\n * @param formatter - Optional formatter function from widget config\n * @returns Axis label formatter function or undefined\n */\nexport function createAxisLabelFormatter(\n formatter?: (value: number) => string,\n) {\n if (!formatter) return undefined\n return (value: number) => formatter(value)\n}\n\n/**\n * Applies formatter to xAxis configuration\n * Only applies to single axis objects (not arrays) with type 'value'\n *\n * @param xAxis - Existing xAxis configuration\n * @param formatter - Optional formatter function from widget config\n * @returns Updated xAxis configuration or undefined if no changes needed\n */\nexport function applyXAxisFormatter(\n xAxis: unknown,\n formatter?: (value: number) => string,\n) {\n let axisFormatter = createAxisLabelFormatter(formatter)\n\n const xAxisIsObject = xAxis && !Array.isArray(xAxis)\n const xAxisTyped = xAxis as { type?: string; axisLabel?: unknown }\n\n if (!xAxisIsObject || xAxisTyped.type !== 'value') {\n axisFormatter = undefined\n }\n\n return {\n ...xAxisTyped,\n axisLabel: {\n ...(typeof xAxisTyped.axisLabel === 'object' && xAxisTyped.axisLabel\n ? xAxisTyped.axisLabel\n : {}),\n formatter: axisFormatter,\n },\n }\n}\n\n/**\n * Applies formatter to yAxis configuration\n * Only applies to single axis objects (not arrays) with type 'value'\n *\n * @param yAxis - Existing yAxis configuration\n * @param formatter - Optional formatter function from widget config\n * @returns Updated yAxis configuration or undefined if no changes needed\n */\nexport function applyYAxisFormatter(\n yAxis: unknown,\n formatter?: (value: number) => string,\n) {\n let axisFormatter = createAxisLabelFormatter(formatter)\n\n const yAxisIsObject = yAxis && !Array.isArray(yAxis)\n const yAxisTyped = yAxis as { type?: string; axisLabel?: unknown }\n\n if (!yAxisIsObject || yAxisTyped.type !== 'value') {\n axisFormatter = undefined\n }\n\n return {\n ...yAxisTyped,\n axisLabel: {\n ...(typeof yAxisTyped.axisLabel === 'object' && yAxisTyped.axisLabel\n ? yAxisTyped.axisLabel\n : {}),\n formatter: axisFormatter,\n },\n }\n}\n\n/**\n * Creates a tooltip formatter for ECharts\n * Formats numeric values in tooltip using widget formatter\n * Handles both axis trigger (array) and item trigger (object) modes\n *\n * @param formatter - Optional formatter function from widget config\n * @returns Tooltip formatter function or undefined\n */\nexport function createTooltipFormatter(\n callback: (\n item: CallbackDataParams,\n items: CallbackDataParams[],\n ) => {\n name: string\n seriesName: string\n marker: string\n value: string | number\n },\n) {\n return (params: TopLevelFormatterParams) => {\n // Handle both array (axis trigger) and object (item trigger)\n const items = Array.isArray(params) ? params : [params]\n\n const tooltip = (name: string, callback: string) =>\n `<div style=\"margin: 0px 0 0;line-height:1;\">${name ? `<div style=\"font-size:11px;color:#FFFFFF;font-weight:400;line-height:1; margin-bottom: 10px\">${name}</div>` : ''}<div style=\"margin: 0;line-height:1;\">${callback}</div><div style=\"clear:both\"></div></div>`\n\n const values = items.map((item) => {\n const { name, seriesName, marker, value } = callback(item, items)\n return {\n name,\n seriesName,\n marker,\n value,\n }\n })\n\n const name = values[0]?.name ?? ''\n // Show margin if name exists or there are multiple items\n const showMargin = name || items.length > 1\n const marginStyle = showMargin\n ? 'margin: 10px 0 0;line-height:1;'\n : 'margin: 0;line-height:1;'\n\n const formattedValues = values.map(\n ({ seriesName, marker, value }) =>\n `<div style=\"${marginStyle}\"><div style=\"margin: 0px 0 0;line-height:1;\">${marker}${seriesName ? `<span style=\"font-size:11px;color:#FFFFFF;font-weight:400;margin-left:2px;margin-right:10px\">${seriesName}</span>` : ''}<span style=\"float:right;margin-left:10px;font-size:11px;color:#FFFFFF;font-weight:900\">${value}</span></div></div>`,\n )\n\n return tooltip(name, formattedValues.join(''))\n }\n}\n","import type { Theme } from '@mui/material'\n\n/**\n * Base skeleton styles shared across all chart widgets\n */\nexport const baseSkeletonStyles = {\n graph: {\n /**\n * Common container style for chart widget skeletons\n */\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexDirection: 'column',\n gap: ({ spacing }: Theme) => spacing(1),\n height: ({ spacing }: Theme) => spacing(38),\n },\n },\n} as const\n"],"names":["flattenObjectArrayToCSV","data","rows","length","firstDataPoint","headers","Object","keys","push","forEach","series","dataPoint","values","map","v","String","scatterplotDataToCSV","niceNum","value","absValue","Math","abs","base","pow","floor","log10","rounded","ceil","buildLegendConfig","hasLegend","show","icon","left","bottom","orient","type","buildGridConfig","theme","parseInt","spacing","createTooltipPositioner","point","_params","_dom","_rect","size","position","top","contentSize","viewSize","right","createAxisLabelFormatter","formatter","applyYAxisFormatter","yAxis","axisFormatter","yAxisIsObject","Array","isArray","yAxisTyped","undefined","axisLabel","createTooltipFormatter","callback","params","items","tooltip","name","item","seriesName","marker","marginStyle","formattedValues","join","baseSkeletonStyles","graph","container","display","alignItems","justifyContent","flexDirection","gap","height"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { CallbackDataParams, TopLevelFormatterParams } from '../../../../node_mo
8
8
  * Rounds a value up to the nearest "nice" number.
9
9
  * A nice number is a multiple of 10^floor(log10(value)).
10
10
  *
11
- * Examples: 547 → 600, 200 → 200, 1200 → 2000, 18 → 20, 5 → 5
11
+ * Examples: 547 → 600, 200 → 200, 1200 → 2000, 18 → 20, 5 → 5, -547 → -500
12
12
  */
13
13
  export declare function niceNum(value: number): number;
14
14
  /**
@@ -1,16 +1,9 @@
1
1
  import { DownloadItem } from '../actions';
2
2
  import { ConfigProps } from '../loader/types';
3
- import { CategoryWidgetConfig, CategoryWidgetData, CategorySeriesConfig, CategoryLabels } from './types';
4
- export interface CategoryDownloadConfigProps extends ConfigProps {
3
+ import { CategoryWidgetConfig, CategoryWidgetData, CategorySeriesConfig } from './types';
4
+ interface CategoryDownloadConfigProps extends ConfigProps {
5
5
  series?: CategorySeriesConfig[];
6
6
  }
7
- export interface CategoryConfigProps {
8
- data?: CategoryWidgetData;
9
- series?: CategorySeriesConfig[];
10
- formatter?: (value: number) => string;
11
- maxItems?: number;
12
- labels?: CategoryLabels;
13
- max?: number;
14
- }
15
7
  export declare function categoryDownloadConfig({ refUI, series, }: CategoryDownloadConfigProps): DownloadItem<CategoryWidgetData>[];
16
8
  export declare function categoryConfig(): CategoryWidgetConfig;
9
+ export {};
@@ -1,6 +1,2 @@
1
1
  import { RangeWidgetConfig } from './types';
2
- export interface RangeConfigProps {
3
- formatter?: (value: number) => string;
4
- onChange?: (value: number[], index: number) => void;
5
- }
6
2
  export declare function rangeConfig(): RangeWidgetConfig;
@@ -1,10 +1,5 @@
1
1
  import { DownloadItem } from '../actions';
2
2
  import { ConfigProps } from '../loader/types';
3
3
  import { SpreadWidgetConfig, SpreadWidgetData } from './types';
4
- import { SeriesConfig } from '../formula/types';
5
- export interface SpreadConfigProps {
6
- formatter?: (value: number) => string;
7
- series?: SeriesConfig[];
8
- }
9
4
  export declare function spreadDownloadConfig({ refUI, }: ConfigProps): DownloadItem<SpreadWidgetData>[];
10
5
  export declare function spreadConfig(): SpreadWidgetConfig;
@@ -1,10 +1,12 @@
1
- import { TableColumn } from '../types';
1
+ import { TableColumn, TableRow } from '../types';
2
2
  /**
3
3
  * Props for Cell component
4
4
  */
5
5
  export interface CellProps {
6
6
  /** Column definition */
7
7
  column: TableColumn;
8
+ /** Full table row for context */
9
+ row: TableRow;
8
10
  /** Cell value */
9
11
  value: unknown;
10
12
  }
@@ -13,4 +15,4 @@ export interface CellProps {
13
15
  * Markdown is rendered when the raw value is a string and no formatter is defined.
14
16
  * If a formatter is used, its output is rendered directly without markdown parsing.
15
17
  */
16
- export declare function Cell({ column, value }: CellProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function Cell({ column, row, value }: CellProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,5 @@
1
1
  import { ConfigProps } from '../loader/types';
2
- import { TableDownloadConfig, TableWidgetConfig, TableColumn, Mode, SortDirection } from './types';
3
- export declare const DEFAULT_MODE: Mode;
2
+ import { TableDownloadConfig, TableWidgetConfig, TableColumn, SortDirection } from './types';
4
3
  export declare const DEFAULT_PAGE = 0;
5
4
  export declare const DEFAULT_ROWS_PER_PAGE = 10;
6
5
  export declare const DEFAULT_ROWS_PER_PAGE_OPTIONS: number[];
@@ -4,7 +4,7 @@ import { TableUIProps } from './types';
4
4
  /**
5
5
  * Props for the base Table component
6
6
  */
7
- export interface TableComponentProps extends MuiTableProps {
7
+ interface TableComponentProps extends MuiTableProps {
8
8
  /** Table element ref */
9
9
  ref?: Ref<HTMLTableElement>;
10
10
  }
@@ -25,7 +25,7 @@ export interface TableColumn {
25
25
  /** Enable sorting for this column */
26
26
  sortable?: boolean;
27
27
  /** Custom cell value formatter */
28
- formatter?: (value: unknown) => ReactNode;
28
+ formatter?: (value: unknown, row: TableRow) => ReactNode;
29
29
  }
30
30
  /**
31
31
  * Table row data - extends Record for flexible data
@@ -1,2 +1,2 @@
1
1
  import { WrapperOptionsProps } from '../types';
2
- export declare function Options({ labels, options }: WrapperOptionsProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Options({ labels, options, }: WrapperOptionsProps): import("react/jsx-runtime").JSX.Element;