@carto/ps-react-ui 4.2.4 → 4.2.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","../src/components/tooltip/tooltip.tsx","../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","../src/components/lasso-tool/lasso-tool-inline.tsx","../src/components/measurement-tools/icons.tsx","../src/components/measurement-tools/const.tsx","../src/components/measurement-tools/styles.ts","../src/components/measurement-tools/measurement-tools.tsx","../src/components/geolocation-controls/const.ts","../src/components/geolocation-controls/geolocation-controls.tsx","../src/components/zoom-controls/styles.ts","../src/components/zoom-controls/zoom-controls.tsx","../src/components/list-data/list-data-skeleton.tsx","../src/components/no-data-alert/no-data-alert.tsx","../src/hooks/use-skeleton.ts","../src/components/list-data/styles.ts","../src/components/smart-tooltip/smart-tooltip.tsx","../src/components/list-data/list-data.tsx","../src/components/basemaps/styles.ts","../src/components/basemaps/const.ts","../src/components/basemaps/header.tsx","../src/components/basemaps/group-wrapper.tsx","../src/components/basemaps/group.tsx","../src/components/responsive-drawer/responsive-drawer.tsx","../src/components/basemaps/basemaps.tsx"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { Tooltip as MuiTooltip, type TooltipProps } from '@mui/material'\n\nlet tooltipEnterDelay = 500\n\n/**\n * A wrapper around MUI's Tooltip component with enterNextDelay set to 1000ms by default.\n *\n * This component ensures consistent tooltip behavior across the application.\n *\n * @example\n * <Tooltip title=\"This is a tooltip\">\n * <Button>Hover me</Button>\n * </Tooltip>\n */\nexport function Tooltip({\n children,\n title,\n enterNextDelay = tooltipEnterDelay,\n ...props\n}: TooltipProps) {\n return (\n <MuiTooltip title={title} enterNextDelay={enterNextDelay} {...props}>\n {children}\n </MuiTooltip>\n )\n}\n\nexport function setTooltipEnterDelay(delay: number) {\n tooltipEnterDelay = delay\n}\n","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: RequiredDeep<\n 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\nexport function LassoToolsUI({\n enabled,\n values = [],\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = {},\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\nfunction Options({\n TriggerProps: { Icon = <ArrowDropDown />, sx } = {},\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 [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 {Icon}\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: (typeof data)[number]['value'],\n ) => {\n e.preventDefault()\n onChangeMode?.(value)\n onClose()\n }\n\n return data.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>\n <mode.icon />\n </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 && <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","import {\n Divider,\n Typography,\n SvgIcon,\n ToggleButton,\n Box,\n ToggleButtonGroup,\n Button,\n} from '@mui/material'\nimport { useMemo, type JSX, type MouseEvent, type ReactNode } from 'react'\nimport { styles } from './styles'\nimport type {\n LassoToolsComponentProps,\n LassoToolsInlineComponentProps,\n} from './types'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport type { PickDeep } from 'type-fest'\nimport type { LassoToolsModes } from '../types'\nimport deepmerge from 'deepmerge'\nimport { LassoToolsUIChip } from './chip'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsInlineUI({\n enabled,\n values = [],\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n BoxProps: { sx, ...BoxProps } = {},\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n}: LassoToolsInlineComponentProps): JSX.Element {\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n return onDelete(valueId)\n }\n\n const handleClick = (\n evt: MouseEvent<HTMLElement>,\n mode: NonNullable<(typeof modes)[keyof typeof modes]>['value'],\n ) => {\n evt.preventDefault()\n onChangeMode?.(mode)\n }\n\n const modeExists = (modeSelected ?? '') in modes\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = enabled ? data[mode] : null\n\n const modesValues = Object.values(_modes)\n\n return (\n <Box\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...BoxProps}\n className='inline'\n >\n <ModeList data={modesValues} labels={labels?.options}>\n <ToggleButtonGroup\n value={modeSelectedValue?.value}\n exclusive\n className='inline'\n sx={styles.options.menu}\n onChange={handleClick}\n >\n <OptionsList labels={labels?.options} data={modesValues} />\n {!!edit && (\n <>\n <Divider orientation='vertical' />\n <OptionsList\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values.length,\n },\n ]}\n />\n </>\n )}\n </ToggleButtonGroup>\n </ModeList>\n <Divider flexItem />\n <NoData hasValues={!!values.length} labels={labels?.noData} />\n {!!values.length && (\n <Box sx={styles.chip.container} className='inline'>\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={onChipToggle}\n />\n ))}\n </Box>\n )}\n <Actions\n values={values}\n labels={labels?.actions}\n onAllChipToggle={onAllChipToggle}\n onAllDelete={onAllDelete}\n />\n </Box>\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 className='inline'\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n labels,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n}) {\n return data.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 <Tooltip key={mode.value} title={label} placement='bottom'>\n <ToggleButton\n disabled={!!mode.disabled}\n value={mode.value}\n aria-label={mode.value}\n >\n <SvgIcon>\n <mode.icon />\n </SvgIcon>\n </ToggleButton>\n </Tooltip>\n )\n })\n}\n\nfunction NoData({\n hasValues,\n labels,\n}: {\n hasValues: boolean\n labels: PickDeep<LassoToolsComponentProps['labels'], 'noData'>['noData']\n}) {\n if (hasValues) {\n return null\n }\n\n const title = labels?.title ?? LASSO_TOOLS_LABELS.noData.title\n const description =\n labels?.description ?? LASSO_TOOLS_LABELS.noData.description\n\n return (\n <>\n <Typography variant='body1' color='textSecondary'>\n {title}\n </Typography>\n <Typography variant='body2' color='textSecondary'>\n {description}\n </Typography>\n </>\n )\n}\n\nfunction Actions({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Pick<\n LassoToolsComponentProps,\n 'values' | 'onAllChipToggle' | 'onAllDelete'\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n if (values.length <= 1) {\n return null\n }\n\n const hasVisible = values.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.toggleAll?.active ?? LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <Box>\n <Button color='inherit' onClick={() => onAllChipToggle()}>\n {toggleAllLabel}\n </Button>\n <Button color='error' onClick={() => onAllDelete()}>\n {deleteAllLabel}\n </Button>\n </Box>\n )\n}\n","import type { SVGProps } from 'react'\n\nexport function RulerIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n fill='currentColor'\n {...props}\n >\n <path\n fill='currentColor'\n d='M3 13.5c-.413 0-.766-.147-1.06-.44A1.445 1.445 0 0 1 1.5 12V6c0-.412.147-.766.44-1.06.294-.293.647-.44 1.06-.44h12c.412 0 .766.147 1.06.44.293.294.44.647.44 1.06v6c0 .412-.147.766-.44 1.06-.294.293-.647.44-1.06.44H3ZM3 12h12V6h-2.25v3h-1.5V6h-1.5v3h-1.5V6h-1.5v3h-1.5V6H3v6Z'\n />\n </svg>\n )\n}\n\nexport function BufferIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n {...props}\n >\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M9 1.5a7.5 7.5 0 1 1 0 15 7.5 7.5 0 0 1 0-15ZM9 3a6 6 0 1 0 0 12A6 6 0 0 0 9 3Zm0 4.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n\nexport function AreaIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M4.5 13.5v-9h9v9h-9Zm.75-8.25h7.5v7.5h-7.5v-7.5Z'\n clipRule='evenodd'\n />\n <path\n fill='#2C3032'\n fillRule='evenodd'\n d='M1.5 3A1.5 1.5 0 0 1 3 1.5h12A1.5 1.5 0 0 1 16.5 3v12a1.5 1.5 0 0 1-1.5 1.5H3A1.5 1.5 0 0 1 1.5 15V3ZM3 3h12v12H3V3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n","import type { RequiredDeep } from 'type-fest'\nimport type {\n MeasurementMode,\n MeasurementModesMapping,\n MeasurementUnitsMapping,\n} from '../types'\nimport type { MeasurementToolsComponentProps } from './types'\nimport { RulerIcon, BufferIcon, AreaIcon } from './icons'\n\nexport const DEFAULT_MEASUREMENT_TOOLS_LABELS: RequiredDeep<\n MeasurementToolsComponentProps['labels']\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to start measuring',\n inactive: 'Click on the map to start measuring',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide measure',\n inactive: 'Show measure',\n },\n },\n options: {\n mode: {\n title: 'Choose a measuring tool',\n options: {\n distance: 'Measure distance',\n buffer: 'Buffer distance',\n area: 'Area',\n },\n },\n units: {\n title: 'Unit of measurement',\n modal: {\n title: 'Map Measurement Unit',\n subtitle: 'Select the unit of measurement for your measurements',\n apply: 'Save',\n options: {\n metric: {\n title: 'Meters and Kilometers',\n options: {\n 'm-km': 'Auto',\n kilometer: 'Kilometers',\n meter: 'Meter',\n centimeter: 'Centimeter',\n milimeter: 'Milimeter',\n },\n },\n imperial: {\n title: 'Feet and Miles',\n options: {\n 'ft-mi': 'Auto',\n mile: 'Mile',\n feet: 'Feet',\n yard: 'Yard',\n },\n },\n },\n },\n },\n },\n} as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING: MeasurementUnitsMapping =\n {\n 'm-km': {\n short: 'm-km',\n },\n kilometer: {\n short: 'km',\n },\n meter: {\n short: 'm',\n },\n centimeter: {\n short: 'cm',\n },\n milimeter: {\n short: 'mm',\n },\n 'ft-mi': {\n short: 'ft-mi',\n },\n mile: {\n short: 'mi',\n },\n yard: {\n short: 'yd',\n },\n feet: {\n short: 'ft',\n },\n } as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING: MeasurementModesMapping<MeasurementMode> =\n {\n distance: {\n icon: <RulerIcon />,\n },\n buffer: {\n icon: <BufferIcon />,\n },\n area: {\n icon: <AreaIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\nimport type { CSSProperties } from 'react'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n overflow: 'hidden',\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 marginTop: ({ spacing }) => spacing(1),\n },\n icon: {\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingY: ({ spacing }) => spacing(0.5),\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 modal: {\n toggle: {\n boxShadow: 'none',\n backgroundColor: '#F8F9F9',\n padding: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(2),\n marginBottom: ({ spacing }) => spacing(1),\n '.MuiToggleButtonGroup-grouped': ({ typography }) =>\n ({\n ...typography.caption,\n fontWeight: 500,\n margin: 0,\n '&:first-of-type:not(.MuiDivider-root)': {\n marginLeft: 0,\n },\n }) as CSSProperties,\n },\n subtitle: ({ typography, palette }) =>\n ({\n ...typography.body2,\n color: palette.text.secondary,\n }) as CSSProperties,\n optionsGroup: {\n marginLeft: ({ spacing }) => spacing(1),\n '.MuiTypography-root': ({ typography }) =>\n ({\n ...typography.body2,\n }) as CSSProperties,\n },\n title: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: ({ spacing }) => spacing(2),\n },\n content: {\n paddingX: ({ spacing }) => spacing(2),\n minWidth: ({ spacing }) => spacing(50),\n },\n actions: {\n paddingX: ({ spacing }) => spacing(2),\n },\n },\n },\n chip: {\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 { ArrowDropDown, Close } from '@mui/icons-material'\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n FormControl,\n FormControlLabel,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n Radio,\n RadioGroup,\n SvgIcon,\n ToggleButton,\n ToggleButtonGroup,\n Typography,\n} from '@mui/material'\nimport {\n useMemo,\n useState,\n type FormEvent,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n} from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport type { MeasurementToolsComponentProps } from './types'\nimport type { PickDeep, ValueOf } from 'type-fest'\nimport {\n DEFAULT_MEASUREMENT_TOOLS_LABELS,\n DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n} from './const'\nimport type {\n MeasurementSystem,\n MeasurementUnit,\n MeasurementUnitImperialDistance,\n MeasurementUnitMetricDistance,\n MeasurementUnitOption,\n MeasureUnitMapping,\n} from '../types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function MeasurementToolsUI({\n enabled,\n actionProps,\n labels = DEFAULT_MEASUREMENT_TOOLS_LABELS,\n modes,\n modesMapping = DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n unitsMapping = DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = {},\n units,\n unitSelected,\n onActionToggle,\n onChangeMode,\n onChangeUnit,\n}: MeasurementToolsComponentProps): JSX.Element {\n const handleToggle: MeasurementToolsComponentProps['onActionToggle'] = (\n data,\n ) => {\n return onActionToggle(!!data)\n }\n\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const modeExists = (modeSelected ?? '') in data\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof modes\n\n const modeSelectedValue = data[mode]\n\n const _units = useMemo(() => {\n const option = units[mode]\n const options =\n Object.keys(units).length >= 1 ? units : { [mode]: option.slice(0, 1) }\n return options[mode].map((unit) => {\n return {\n ...unit,\n ...unitsMapping[unit.value],\n }\n })\n }, [mode, units, unitsMapping])\n\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n <Box>\n <MeasurementToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </MeasurementToolsUIAction>\n <Options\n labels={labels?.options}\n modes={data}\n modeSelected={mode}\n units={_units}\n unitSelected={unitSelected}\n onChangeMode={onChangeMode}\n onChangeUnit={onChangeUnit}\n />\n </Box>\n </Paper>\n )\n}\n\nfunction MeasurementToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n MeasurementToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'action'\n >['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n DEFAULT_MEASUREMENT_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\nfunction Options({\n modes,\n modeSelected,\n units,\n unitSelected,\n labels,\n onChangeMode,\n onChangeUnit,\n}: Required<\n Pick<\n MeasurementToolsComponentProps,\n 'modeSelected' | 'onChangeMode' | 'onChangeUnit'\n >\n> & {\n modes: MeasurementToolsComponentProps['modes'] &\n MeasurementToolsComponentProps['modesMapping']\n units: (MeasurementUnitOption<MeasurementUnit> & MeasureUnitMapping)[]\n unitSelected?: MeasurementToolsComponentProps['unitSelected']\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n}) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const [unitModal, setUnitModal] = useState(false)\n\n const modesAvailable = Object.values(modes)\n const unitsAvailable = Object.values(units)\n\n const hasValues = modesAvailable.length > 1 || unitsAvailable.length > 1\n\n if (!hasValues) {\n return null\n }\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 const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n mode: ValueOf<Required<typeof modes>>,\n ) => {\n e.preventDefault()\n onChangeMode(mode.value)\n handleClose()\n }\n\n const handleClickUnit = () => {\n setUnitModal(true)\n }\n\n const handleCloseModal = () => {\n setUnitModal(false)\n }\n\n const handleApplyModal = (data: string) => {\n handleCloseModal()\n onChangeUnit(data)\n }\n\n const modeTitle =\n labels?.mode?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.title\n\n const unitTitle =\n labels?.units?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.title\n\n const hasDivider = modesAvailable.length > 1 && unitsAvailable.length > 1\n\n const unitSelectedValue = (units.find(\n (unit) => unit.value === unitSelected,\n ) ?? units[0])!\n\n return (\n <>\n <IconButton sx={styles.options.icon} onClick={handleToggle}>\n <ArrowDropDown />\n </IconButton>\n <Menu\n id='measurement-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'basic-button',\n sx: styles.options.menu,\n }}\n >\n <div>\n {modesAvailable.length > 1 && (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {modesAvailable.map((mode) => {\n const options =\n labels?.mode?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n onClick={(e) => handleClick(e, mode)}\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 )}\n {hasDivider && <Divider />}\n {unitsAvailable.length > 1 && (\n <>\n <MenuItem onClick={handleClickUnit}>\n <ListItemText>{unitTitle}</ListItemText>\n <Typography\n variant='caption'\n fontWeight={500}\n sx={styles.options.tag}\n >\n {unitSelectedValue.short}\n </Typography>\n </MenuItem>\n <UnitsModal\n open={unitModal}\n labels={labels}\n units={units}\n unitSelectedValue={unitSelectedValue}\n onClose={handleCloseModal}\n onSubmit={handleApplyModal}\n />\n </>\n )}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction UnitsModal({\n open,\n labels,\n units,\n unitSelectedValue,\n onClose,\n onSubmit,\n}: {\n open: boolean\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n units: MeasurementUnitOption<MeasurementUnit>[]\n unitSelectedValue: MeasurementUnitOption<MeasurementUnit>\n onClose: () => void\n onSubmit: (data: string) => void\n}) {\n const [system, setSystem] = useState<MeasurementSystem>('metric')\n\n const _units = useMemo(() => {\n return units.filter((unit) => unit.system === system)\n }, [system, units])\n\n const handleToggleChange = (\n _: MouseEvent<HTMLElement>,\n value: MeasurementSystem,\n ) => {\n setSystem(value)\n }\n\n const _labels =\n labels?.units?.modal?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.options\n\n const labelsBySystem = _labels[system].options\n\n const modalUnitTitle =\n labels?.units?.modal?.title ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.title\n const modalUnitSubtitle =\n labels?.units?.modal?.subtitle ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.subtitle\n const modalUnitApply =\n labels?.units?.modal?.apply ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.apply\n\n const _unitSelectedValue =\n unitSelectedValue.system === system ? unitSelectedValue : _units[0]\n\n return (\n <Dialog\n open={open}\n component={Box}\n onClose={onClose}\n maxWidth='xs'\n PaperProps={{\n component: 'form',\n onSubmit: (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const formData = new FormData(e.currentTarget)\n onSubmit(formData.get('unit-value') as string)\n },\n }}\n >\n <DialogTitle sx={styles.options.modal.title}>\n {modalUnitTitle}\n <IconButton onClick={onClose}>\n <Close />\n </IconButton>\n </DialogTitle>\n <DialogContent sx={styles.options.modal.content}>\n <Typography sx={styles.options.modal.subtitle}>\n {modalUnitSubtitle}\n </Typography>\n <ToggleButtonGroup\n color='primary'\n value={system}\n exclusive={true}\n fullWidth={true}\n onChange={handleToggleChange}\n aria-label='system'\n sx={styles.options.modal.toggle}\n >\n <ToggleButton value='metric'>{_labels.metric.title}</ToggleButton>\n <ToggleButton value='imperial'>{_labels.imperial.title}</ToggleButton>\n </ToggleButtonGroup>\n <FormControl key={_unitSelectedValue?.value}>\n <RadioGroup\n aria-labelledby='unit-value'\n defaultValue={_unitSelectedValue?.value}\n name='unit-value'\n sx={styles.options.modal.optionsGroup}\n >\n {_units.map((unit) => {\n const label =\n labelsBySystem[\n unit.value as MeasurementUnitMetricDistance &\n MeasurementUnitImperialDistance\n ]\n\n return (\n <FormControlLabel\n key={unit.value}\n value={unit.value}\n control={<Radio />}\n label={label}\n />\n )\n })}\n </RadioGroup>\n </FormControl>\n </DialogContent>\n <DialogActions sx={styles.options.modal.actions}>\n <Button variant='contained' type='submit'>\n {modalUnitApply}\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","export const tooltipLabelsDefault = {\n enabled: 'Show your current location',\n disabled: 'Location unavailable',\n}\n\nexport const ariaLabel = 'geolocation'\n","import { Paper, IconButton } from '@mui/material'\nimport {\n MyLocationOutlined,\n LocationDisabledOutlined,\n} from '@mui/icons-material'\nimport type { GeolocationControlProps } from './types'\nimport { useCallback, useEffect, useRef, useState, type JSX } from 'react'\nimport { ariaLabel, tooltipLabelsDefault } from './const'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function GeolocationControls({\n disabled,\n labels,\n PaperProps,\n TooltipProps,\n watch,\n onChange,\n onError,\n}: GeolocationControlProps): JSX.Element {\n const watchRef = useRef<number>(null)\n const hasGeolocation = 'geolocation' in navigator\n const [allowed, setAllowed] = useState(hasGeolocation)\n\n useEffect(() => {\n if (hasGeolocation) {\n navigator.permissions\n .query({ name: 'geolocation' })\n .then((result) => {\n setAllowed(result.state === 'granted')\n result.onchange = () => {\n setAllowed(result.state === 'granted')\n }\n })\n .catch((error: Parameters<PositionErrorCallback>[0]) => {\n setAllowed(false)\n onError?.(error)\n })\n }\n\n return () => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n }\n }, [hasGeolocation, onError])\n\n const success = useCallback(\n (position: Parameters<PositionCallback>[0]) => {\n onChange(position.coords)\n },\n [onChange],\n )\n\n const error = useCallback(\n (error: Parameters<PositionErrorCallback>[0]) => {\n setAllowed(false)\n onError?.(error)\n },\n [onError],\n )\n\n const handleClick = useCallback(() => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n\n if (watch) {\n watchRef.current = navigator.geolocation.watchPosition(success, error)\n return\n }\n\n navigator.geolocation.getCurrentPosition(success, error)\n }, [watch, success, error])\n\n const tooltipLabels = labels?.tooltip ?? tooltipLabelsDefault\n\n return (\n <Paper {...PaperProps}>\n <Tooltip\n arrow\n placement='right'\n title={tooltipLabels[allowed ? 'enabled' : 'disabled']}\n {...TooltipProps}\n >\n <IconButton\n onClick={handleClick}\n aria-label={labels?.ariaLabel ?? ariaLabel}\n disabled={!hasGeolocation || disabled}\n >\n {allowed ? <MyLocationOutlined /> : <LocationDisabledOutlined />}\n </IconButton>\n </Tooltip>\n </Paper>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n zoom: {\n position: 'relative',\n height: ({ spacing }) => spacing(4),\n aspectRatio: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n display: 'flex',\n backgroundColor: ({ palette }) => palette.background.paper,\n width: 'auto',\n overflow: 'hidden',\n boxShadow: ({ shadows }) => shadows[1],\n borderRadius: ({ spacing }) => spacing(0.5),\n\n button: {\n borderRadius: 0,\n },\n },\n circularProgress: {\n position: 'absolute',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n IconButton,\n Divider,\n Box,\n Typography,\n CircularProgress,\n Paper,\n} from '@mui/material'\nimport {\n AddOutlined,\n RemoveOutlined,\n CropFreeOutlined,\n} from '@mui/icons-material'\nimport { styles } from './styles'\nimport type { ZoomControlProps } from './types'\nimport { useCallback, type JSX } from 'react'\n\nexport function ZoomControlsUI({\n zoom,\n disabled,\n direction = 'vertical',\n isLoading,\n maxZoom = 24,\n minZoom = 0,\n PaperProps,\n ResetViewProps = {\n Icon: CropFreeOutlined,\n },\n showZoom = true,\n onChange,\n onReset,\n}: ZoomControlProps): JSX.Element {\n const increaseZoom = useCallback(() => {\n const newZoom = Math.min(maxZoom, zoom + 1)\n onChange(newZoom)\n }, [maxZoom, onChange, zoom])\n\n const decreaseZoom = useCallback(() => {\n const newZoom = Math.max(minZoom, zoom - 1)\n onChange(newZoom)\n }, [minZoom, onChange, zoom])\n\n const displayZoom = Math.floor(zoom)\n\n const dividerOrientation =\n direction === 'vertical' ? 'horizontal' : 'vertical'\n\n const propsByType = {\n zoomIn: {\n onClick: increaseZoom,\n 'aria-label': 'Increase zoom',\n disabled,\n },\n zoomOut: {\n onClick: decreaseZoom,\n 'aria-label': 'Decrease zoom',\n disabled,\n },\n }\n\n const firstButton = {\n icon: direction === 'vertical' ? <AddOutlined /> : <RemoveOutlined />,\n props: direction === 'vertical' ? propsByType.zoomIn : propsByType.zoomOut,\n }\n\n const secondButton = {\n icon: direction === 'vertical' ? <RemoveOutlined /> : <AddOutlined />,\n props: direction === 'vertical' ? propsByType.zoomOut : propsByType.zoomIn,\n }\n\n return (\n <Paper\n sx={{\n ...styles.paper,\n flexDirection: direction === 'vertical' ? 'column' : 'row',\n }}\n {...PaperProps}\n >\n {onReset && (\n <>\n <IconButton\n onClick={onReset}\n aria-label='Reset action'\n disabled={disabled}\n >\n <ResetViewProps.Icon />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton {...firstButton.props}>{firstButton.icon}</IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n {showZoom && (\n <>\n <Box sx={styles.zoom}>\n <Typography\n display='block'\n align='center'\n color='textSecondary'\n variant='overline'\n >\n {displayZoom}\n </Typography>\n {isLoading && (\n <CircularProgress\n sx={styles.circularProgress}\n variant='indeterminate'\n size={24}\n />\n )}\n </Box>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton {...secondButton.props}>{secondButton.icon}</IconButton>\n </Paper>\n )\n}\n","import { Box, Grid, Skeleton } from '@mui/material'\n\ninterface ListDataSkeletonProps {\n length?: number\n}\n\nexport function ListDataSkeleton({ length = 5 }: ListDataSkeletonProps) {\n return (\n <Box aria-label='List Data skeleton'>\n {new Array(length).fill(null).map((_, idx) => (\n <Grid key={idx} container spacing={1}>\n <Grid\n container\n item\n direction='row'\n justifyContent='space-between'\n alignItems='center'\n >\n <Skeleton width={isOdd(idx) ? 72 : 48} height={20} />\n <Skeleton width={48} height={8} />\n </Grid>\n\n <Skeleton\n sx={{\n height: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(1.25),\n marginBottom: ({ spacing }) => spacing(1.75),\n width: '100%',\n }}\n />\n </Grid>\n ))}\n </Box>\n )\n}\n\n// Aux\nfunction isOdd(num: number) {\n return num % 2 === 1\n}\n","import {\n Alert,\n Box,\n Typography,\n type AlertProps,\n type TypographyProps,\n} from '@mui/material'\n\ninterface NoDataAlertProps {\n title?: string\n body?: string\n severity?: AlertProps['severity']\n}\n\nexport function NoDataAlert({\n title = 'No data available',\n body = 'There are no results for the combination of filters applied to your data. Try tweaking your filters, or zoom and pan the map to adjust the Map View.',\n severity,\n}: NoDataAlertProps) {\n if (severity) {\n return (\n <Alert title={title} severity={severity}>\n <AlertBody>{body}</AlertBody>\n </Alert>\n )\n }\n\n return (\n <Box>\n {title && <Typography variant='body2'>{title}</Typography>}\n <AlertBody color='textSecondary'>{body}</AlertBody>\n </Box>\n )\n}\n\n// Aux\ninterface AlertBodyProps {\n color?: TypographyProps['color']\n children: React.ReactNode\n}\n\nfunction AlertBody({ color, children }: AlertBodyProps) {\n if (children) {\n return (\n <Box mt={0.5}>\n <Typography\n component='div'\n variant='caption'\n color={color ?? 'inherit'}\n style={{ fontWeight: 'normal' }}\n >\n {children}\n </Typography>\n </Box>\n )\n }\n\n return <Box mt={-1} />\n}\n","import { useState, useEffect } from 'react'\n\nexport function useSkeleton(isLoading: boolean) {\n const [visible, setVisible] = useState(false)\n const [everBeenVisible, setEverBeenVisible] = useState(false)\n\n useEffect(() => {\n if (isLoading && !everBeenVisible) {\n setVisible(true)\n setEverBeenVisible(true)\n }\n\n if (!isLoading) {\n setVisible(false)\n }\n }, [isLoading, everBeenVisible])\n\n return visible\n}\n","import { type SxProps, type Theme } from '@mui/material'\n\nconst ellipsed = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nexport const styles = {\n label: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n },\n },\n value: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n textAlign: 'right',\n },\n },\n clickable: {\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n showDivider: {\n borderBottom: ({ palette }) => `1px solid ${palette.divider}`,\n },\n selected: {\n backgroundColor: ({ palette }) => palette.action.selected,\n },\n disabled: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n 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","import { useState, useMemo, type JSX } from 'react'\nimport { Box, Button, Grid, ListItem, List, ListItemText } from '@mui/material'\nimport { ListDataSkeleton } from './list-data-skeleton'\nimport { NoDataAlert } from '../no-data-alert/no-data-alert'\nimport { useSkeleton } from '../../hooks/use-skeleton'\nimport type { ListDataProps } from './types'\nimport { styles } from './styles'\nimport { SmartTooltip } from '../smart-tooltip/smart-tooltip'\n\nconst DEFAULT_LABELS = {\n showMore: 'Show More',\n showLess: 'Show Less',\n} as const\n\nexport function ListDataUI({\n data = [],\n isLoading = false,\n maxItems = 5,\n labels = DEFAULT_LABELS,\n showDivider = true,\n selectedItemId,\n tooltipProps,\n onExpand,\n onItemClick,\n}: ListDataProps): JSX.Element {\n const [showAll, setShowAll] = useState(false)\n\n const showSkeleton = useSkeleton(isLoading)\n\n const items = useMemo(() => {\n return showAll ? data : data.slice(0, maxItems)\n }, [data, maxItems, showAll])\n\n const handleToggle = () => {\n setShowAll(!showAll)\n onExpand?.(showAll)\n }\n\n if (showSkeleton) {\n return <ListDataSkeleton length={maxItems} />\n }\n\n if (items.length === 0) {\n return <NoDataAlert />\n }\n\n return (\n <>\n <List id='expandable-list' role='list'>\n {items.map((item, idx) => (\n <SmartTooltip<HTMLLIElement>\n // Default tooltip props\n followCursor={false}\n key={`list-item-${idx}`}\n placement='top'\n arrow\n title={item.tooltipTitle}\n enterDelay={10}\n // Custom tooltip props\n {...tooltipProps}\n >\n {({ ref }) => (\n <ListItem\n ref={ref}\n role='listitem'\n sx={{\n ...(showDivider && styles.showDivider),\n ...(onItemClick && styles.clickable),\n ...(selectedItemId === item.id && styles.selected),\n ...(item.disabled && styles.disabled),\n }}\n onClick={() => {\n if (item.disabled) return\n onItemClick?.(item)\n }}\n >\n <Grid container alignItems='center'>\n <Grid item xs={8}>\n <ListItemText primary={item.label} sx={styles.label} />\n </Grid>\n <Grid item xs={4}>\n <ListItemText primary={item.value} sx={styles.value} />\n </Grid>\n </Grid>\n </ListItem>\n )}\n </SmartTooltip>\n ))}\n </List>\n\n {data.length > maxItems && (\n <Box my={2}>\n <Button\n onClick={handleToggle}\n variant='text'\n color='primary'\n aria-expanded={showAll}\n aria-controls='expandable-list'\n >\n {showAll ? labels.showLess : labels.showMore}\n </Button>\n </Box>\n )}\n </>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const BASEMAPS_WIDTH = 288\n\nexport const styles = {\n root: {\n width: BASEMAPS_WIDTH,\n overflow: 'auto',\n },\n toggle: {\n padding: ({ spacing }) => spacing(0.5),\n\n img: {\n width: '100%',\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.25),\n },\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n paddingInlineStart: ({ spacing }) => spacing(2),\n position: 'sticky',\n top: 0,\n zIndex: 2,\n background: ({ palette }) => palette.background.paper,\n },\n groupWrapper: {\n content: {\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(0.5),\n },\n },\n group: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(1),\n },\n item: {\n container: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n background: 'transparent',\n border: 'none',\n cursor: 'pointer',\n padding: 0,\n height: ({ spacing }) => spacing(12),\n\n img: {\n maxWidth: ({ spacing }) => spacing(9),\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.5),\n border: `2px solid transparent`,\n\n '&:hover': {\n borderColor: ({ palette }) => palette.action.active,\n },\n\n '&[data-active=\"true\"]': {\n borderColor: ({ palette }) => palette.primary.main,\n },\n },\n },\n selected: {\n color: ({ palette }) => palette.primary.main,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { BasemapsUILabels } from './types'\n\nexport const DEFAULT_BASEMAPS_LABELS: BasemapsUILabels = {\n toggle: {\n title: 'Toggle basemaps controls',\n },\n header: {\n title: 'Basemaps',\n actions: {\n close: 'Close',\n },\n },\n}\n","import { Close } from '@mui/icons-material'\nimport { Box, Typography, IconButton } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapsUILabels } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function Header({\n isMobile = false,\n labels,\n onChangeCollapsed,\n}: {\n labels: BasemapsUILabels['header']\n isMobile?: boolean\n onChangeCollapsed: () => void\n}) {\n return (\n <Box sx={styles.header}>\n {isMobile && (\n <>\n <Typography variant='caption' flexGrow={1}>\n {labels.title}\n </Typography>\n <Tooltip title={labels.actions.close}>\n <IconButton\n size='small'\n onClick={onChangeCollapsed}\n aria-label={labels.actions.close}\n >\n <Close />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n )\n}\n","import { Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport { styles } from './styles'\n\nexport function GroupWrapper({\n title,\n children,\n collapsed = false,\n}: {\n title: string\n children: ReactNode\n collapsed?: boolean\n}) {\n if (collapsed) return children\n\n return (\n <>\n <Typography\n variant='caption'\n color='textSecondary'\n sx={styles.groupWrapper.content}\n >\n {title}\n </Typography>\n {children}\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapOption } from './types'\n\nexport function Group({\n values,\n selected,\n onChange,\n}: {\n values: Omit<BasemapOption, 'group'>[]\n selected: string | null | undefined\n onChange: (id: string) => void\n}) {\n return (\n <Box sx={styles.group}>\n {values.map((option) => {\n const isSelected = option.id === selected\n return (\n <Box\n key={option.id}\n sx={styles.item.container}\n component='button'\n aria-label={option.label}\n onClick={() => onChange(option.id)}\n >\n <img\n src={option.icon}\n aria-label={option.label + ' icon'}\n data-active={isSelected}\n />\n <Typography\n variant='caption'\n sx={{ ...(isSelected && styles.item.selected) }}\n >\n {option.label}\n </Typography>\n </Box>\n )\n })}\n </Box>\n )\n}\n","import { Drawer, Popover, type PopoverProps } from '@mui/material'\nimport type { ReactNode } from 'react'\n\nexport function ResponsiveDrawer<\n T extends {\n collapsed: boolean\n onChangeCollapsed: (collapsed: boolean) => void\n position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n slotProps?: PopoverProps['slotProps']\n },\n>({\n ref,\n children,\n collapsed,\n isMobile = false,\n position,\n sx,\n slotProps,\n onChangeCollapsed,\n}: Required<Pick<T, 'collapsed' | 'onChangeCollapsed' | 'position'>> &\n Pick<PopoverProps, 'slotProps' | 'sx'> & {\n ref: HTMLElement | null\n isMobile: boolean\n children: ReactNode\n }) {\n if (isMobile) {\n return (\n <Drawer anchor='bottom' open={!collapsed} onClose={onChangeCollapsed}>\n {children}\n </Drawer>\n )\n }\n\n return (\n <Popover\n sx={sx}\n anchorEl={ref}\n open={!collapsed}\n onClose={() => onChangeCollapsed(true)}\n anchorOrigin={{\n vertical: position.startsWith('bottom') ? 'bottom' : 'top',\n horizontal: position.endsWith('right') ? 'left' : 'right',\n }}\n transformOrigin={{\n vertical: position.startsWith('bottom') ? 'bottom' : 'top',\n horizontal: position.endsWith('right') ? 'right' : 'left',\n }}\n slotProps={slotProps}\n >\n {children}\n </Popover>\n )\n}\n","import { IconButton, Paper, useMediaQuery, useTheme } from '@mui/material'\nimport type { BasemapsUIProps } from './types'\nimport { useEffect, useRef, useState, type JSX } from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport { DEFAULT_BASEMAPS_LABELS } from './const'\nimport { Header } from './header'\nimport { GroupWrapper } from './group-wrapper'\nimport { Group } from './group'\nimport { ResponsiveDrawer } from '../responsive-drawer/responsive-drawer'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function BasemapsUI({\n options = [],\n labels: _labels,\n position = 'bottom-right',\n selected = null,\n onChange,\n TooltipProps,\n}: BasemapsUIProps): JSX.Element {\n const [toggleRef, setToggleRef] = useState<HTMLButtonElement | null>(null)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const [timer, setTimer] = useState<number | null>(null)\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n const labels = deepmerge(DEFAULT_BASEMAPS_LABELS, _labels ?? {})\n\n const collapsed = !toggleRef\n\n const optionSelected = options.find((option) => option.id === selected)\n\n const groups = Object.groupBy(options, (option) => option.group ?? 'default')\n\n const groupCount = Object.keys(groups).length\n\n useEffect(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (!timer) {\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n setToggleRef(null)\n return\n }, timer)\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [timer])\n\n const handleMouseOver = () => {\n setTimer(null)\n }\n const handleMouseLeave = () => {\n setTimer(400)\n }\n\n return (\n <Paper>\n <Tooltip title={labels.toggle.title} placement='right' {...TooltipProps}>\n <IconButton\n sx={styles.toggle}\n onClick={(e) => {\n setToggleRef(e.currentTarget as HTMLButtonElement)\n }}\n >\n <img\n src={optionSelected?.icon}\n alt={optionSelected?.label ?? 'Basemap'}\n />\n </IconButton>\n </Tooltip>\n\n <ResponsiveDrawer\n ref={toggleRef}\n slotProps={{\n paper: {\n sx: {\n ...styles.root,\n transform: `translate3d(${position.endsWith('right') ? '-8px' : '8px'}, ${\n position.startsWith('bottom') ? '-4px' : '4px'\n }, 0) !important`,\n },\n onMouseOver: handleMouseOver,\n onMouseLeave: handleMouseLeave,\n },\n }}\n collapsed={collapsed}\n position={position}\n isMobile={isMobile}\n onChangeCollapsed={() => setToggleRef(null)}\n >\n <Header\n isMobile={isMobile}\n labels={labels.header}\n onChangeCollapsed={() => setToggleRef(null)}\n />\n {Object.entries(groups).map(([group, values]) => (\n <GroupWrapper\n key={group}\n title={group + ' ' + labels.header.title}\n collapsed={groupCount < 2}\n >\n <Group\n values={values!}\n selected={selected}\n onChange={(e) => {\n setToggleRef(null)\n onChange(e)\n }}\n />\n </GroupWrapper>\n ))}\n </ResponsiveDrawer>\n </Paper>\n )\n}\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","val","cloneUnlessOtherwiseSpecified","options","deepmerge","defaultArrayMerge","target","source","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","object","property","propertyIsUnsafe","mergeObject","destination","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","array","prev","next","deepmerge_1","cjs","tooltipEnterDelay","Tooltip","t0","$","_c","children","props","t1","title","enterNextDelay","undefined","t2","MuiTooltip","setTooltipEnterDelay","delay","DrawPolygonIcon","Symbol","for","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","chip","mode","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","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","ChipsSlot","ActionSlot","SecondaryActionsSlot","OptionsSlot","sx","Chips","Action","SecondaryActions","Options","t9","slotArgs","t10","t11","t12","t13","t14","t15","jsxs","Paper","LassoToolsUIAction","actionState","actionLabel","ToggleButton","TriggerProps","Icon","ArrowDropDown","MenuProps","anchorEl","setAnchorEl","useState","open","Boolean","handleToggle","event","currentTarget","handleClose","Fragment","IconButton","Menu","onClose","ModeList","data","length","modeTitle","Typography","OptionsList","handleClick","e","preventDefault","map","MenuItem","disabled","ListItemIcon","SvgIcon","ListItemText","SecondaryActionsWrapper","toggleAllLabel","some","_temp","deleteAllLabel","Divider","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","useMemo","Object","keys","modeSelectedValue","handleDelete","valueId","Box","_modes","modesValues","handleChangeMode","LassoToolsInlineUI","BoxProps","evt","ToggleButtonGroup","NoData","Actions","hasValues","Button","RulerIcon","BufferIcon","AreaIcon","DEFAULT_MEASUREMENT_TOOLS_LABELS","distance","buffer","area","units","modal","subtitle","apply","metric","kilometer","meter","centimeter","milimeter","imperial","mile","feet","yard","DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING","short","DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING","marginTop","paddingY","tag","border","borderColor","main","alpha","toggle","padding",".MuiToggleButtonGroup-grouped","typography","caption","fontWeight","body2","secondary","optionsGroup",".MuiTypography-root","content","minWidth","MeasurementToolsUI","unitsMapping","unitSelected","onChangeUnit","data_0","modeExists","option","slice","unit","_units","t16","t17","MeasurementToolsUIAction","t18","t19","t20","t21","unitModal","setUnitModal","T0","handleApplyModal","handleClickUnit","handleCloseModal","hasDivider","unitSelectedValue","unitTitle","unitsAvailable","bb0","modesAvailable","find","mode_0","e_0","UnitsModal","onSubmit","system","setSystem","filter","handleToggleChange","_","_labels","labelsBySystem","modalUnitTitle","modalUnitSubtitle","modalUnitApply","_unitSelectedValue","Dialog","component","formData","FormData","get","DialogTitle","Close","DialogContent","FormControl","RadioGroup","unit_0","FormControlLabel","Radio","DialogActions","tooltipLabelsDefault","ariaLabel","GeolocationControls","watch","onChange","onError","watchRef","useRef","hasGeolocation","navigator","allowed","setAllowed","permissions","query","name","then","result","state","onchange","catch","error","current","geolocation","clearWatch","useEffect","position","coords","success","error_0","error_1","watchPosition","getCurrentPosition","MyLocationOutlined","LocationDisabledOutlined","zoom","aspectRatio","paper","background","shadows","button","circularProgress","ZoomControlsUI","direction","isLoading","maxZoom","minZoom","ResetViewProps","showZoom","onReset","CropFreeOutlined","newZoom","Math","min","increaseZoom","newZoom_0","max","decreaseZoom","displayZoom","floor","dividerOrientation","onClick","zoomIn","zoomOut","propsByType","AddOutlined","RemoveOutlined","firstButton","secondButton","t22","t23","CircularProgress","t24","t25","ListDataSkeleton","Array","fill","_temp4","idx","Grid","Skeleton","isOdd","_temp2","_temp3","spacing_1","spacing_0","num","NoDataAlert","body","severity","AlertBody","Alert","useSkeleton","setVisible","everBeenVisible","setEverBeenVisible","ellipsed","textOverflow","whiteSpace","textAlign","clickable","cursor","hover","showDivider","borderBottom","divider","selected","opacity","pointerEvents","SmartTooltip","dependencies","timeout","ref","isOverflowing","setIsOverflowing","useLayoutEffect","timerId","setTimeout","scrollWidth","clientWidth","scrollHeight","clientHeight","clearTimeout","DEFAULT_LABELS","showMore","showLess","ListDataUI","maxItems","selectedItemId","tooltipProps","onExpand","onItemClick","showAll","setShowAll","showSkeleton","items","item","tooltipTitle","ListItem","List","BASEMAPS_WIDTH","root","img","header","paddingInlineStart","top","zIndex","groupWrapper","paddingInline","paddingBlock","group","maxWidth","DEFAULT_BASEMAPS_LABELS","close","Header","isMobile","onChangeCollapsed","GroupWrapper","collapsed","Group","isSelected","ResponsiveDrawer","slotProps","Drawer","startsWith","endsWith","Popover","BasemapsUI","toggleRef","setToggleRef","timeoutRef","timer","setTimer","theme","useTheme","breakpoints","down","useMediaQuery","optionSelected","groups","groupBy","groupCount","handleMouseOver","handleMouseLeave","T1","transform","onMouseOver","onMouseLeave","entries","t26","option_0"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"components.js","sources":["../../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","../src/components/tooltip/tooltip.tsx","../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","../src/components/lasso-tool/lasso-tool-inline.tsx","../src/components/measurement-tools/icons.tsx","../src/components/measurement-tools/const.tsx","../src/components/measurement-tools/styles.ts","../src/components/measurement-tools/measurement-tools.tsx","../src/components/geolocation-controls/const.ts","../src/components/geolocation-controls/geolocation-controls.tsx","../src/components/zoom-controls/styles.ts","../src/components/zoom-controls/zoom-controls.tsx","../src/components/list-data/list-data-skeleton.tsx","../src/components/no-data-alert/no-data-alert.tsx","../src/hooks/use-skeleton.ts","../src/components/list-data/styles.ts","../src/components/smart-tooltip/smart-tooltip.tsx","../src/components/list-data/list-data.tsx","../src/components/basemaps/styles.ts","../src/components/basemaps/const.ts","../src/components/basemaps/header.tsx","../src/components/basemaps/group-wrapper.tsx","../src/components/basemaps/group.tsx","../src/components/responsive-drawer/responsive-drawer.tsx","../src/components/basemaps/basemaps.tsx"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { Tooltip as MuiTooltip, type TooltipProps } from '@mui/material'\n\nlet tooltipEnterDelay = 500\n\n/**\n * A wrapper around MUI's Tooltip component with enterNextDelay set to 1000ms by default.\n *\n * This component ensures consistent tooltip behavior across the application.\n *\n * @example\n * <Tooltip title=\"This is a tooltip\">\n * <Button>Hover me</Button>\n * </Tooltip>\n */\nexport function Tooltip({\n children,\n title,\n enterNextDelay = tooltipEnterDelay,\n ...props\n}: TooltipProps) {\n return (\n <MuiTooltip title={title} enterNextDelay={enterNextDelay} {...props}>\n {children}\n </MuiTooltip>\n )\n}\n\nexport function setTooltipEnterDelay(delay: number) {\n tooltipEnterDelay = delay\n}\n","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: RequiredDeep<\n 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\nexport function LassoToolsUI({\n enabled,\n values = [],\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = {},\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\nfunction Options({\n TriggerProps: { Icon = <ArrowDropDown />, sx } = {},\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 [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 {Icon}\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: (typeof data)[number]['value'],\n ) => {\n e.preventDefault()\n onChangeMode?.(value)\n onClose()\n }\n\n return data.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>\n <mode.icon />\n </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 && <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","import {\n Divider,\n Typography,\n SvgIcon,\n ToggleButton,\n Box,\n ToggleButtonGroup,\n Button,\n} from '@mui/material'\nimport { useMemo, type JSX, type MouseEvent, type ReactNode } from 'react'\nimport { styles } from './styles'\nimport type {\n LassoToolsComponentProps,\n LassoToolsInlineComponentProps,\n} from './types'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport type { PickDeep } from 'type-fest'\nimport type { LassoToolsModes } from '../types'\nimport deepmerge from 'deepmerge'\nimport { LassoToolsUIChip } from './chip'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsInlineUI({\n enabled,\n values = [],\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n BoxProps: { sx, ...BoxProps } = {},\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n}: LassoToolsInlineComponentProps): JSX.Element {\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n return onDelete(valueId)\n }\n\n const handleClick = (\n evt: MouseEvent<HTMLElement>,\n mode: NonNullable<(typeof modes)[keyof typeof modes]>['value'],\n ) => {\n evt.preventDefault()\n onChangeMode?.(mode)\n }\n\n const modeExists = (modeSelected ?? '') in modes\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = enabled ? data[mode] : null\n\n const modesValues = Object.values(_modes)\n\n return (\n <Box\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...BoxProps}\n className='inline'\n >\n <ModeList data={modesValues} labels={labels?.options}>\n <ToggleButtonGroup\n value={modeSelectedValue?.value}\n exclusive\n className='inline'\n sx={styles.options.menu}\n onChange={handleClick}\n >\n <OptionsList labels={labels?.options} data={modesValues} />\n {!!edit && (\n <>\n <Divider orientation='vertical' />\n <OptionsList\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values.length,\n },\n ]}\n />\n </>\n )}\n </ToggleButtonGroup>\n </ModeList>\n <Divider flexItem />\n <NoData hasValues={!!values.length} labels={labels?.noData} />\n {!!values.length && (\n <Box sx={styles.chip.container} className='inline'>\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={onChipToggle}\n />\n ))}\n </Box>\n )}\n <Actions\n values={values}\n labels={labels?.actions}\n onAllChipToggle={onAllChipToggle}\n onAllDelete={onAllDelete}\n />\n </Box>\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 className='inline'\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n labels,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n}) {\n return data.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 <Tooltip key={mode.value} title={label} placement='bottom'>\n <ToggleButton\n disabled={!!mode.disabled}\n value={mode.value}\n aria-label={mode.value}\n >\n <SvgIcon>\n <mode.icon />\n </SvgIcon>\n </ToggleButton>\n </Tooltip>\n )\n })\n}\n\nfunction NoData({\n hasValues,\n labels,\n}: {\n hasValues: boolean\n labels: PickDeep<LassoToolsComponentProps['labels'], 'noData'>['noData']\n}) {\n if (hasValues) {\n return null\n }\n\n const title = labels?.title ?? LASSO_TOOLS_LABELS.noData.title\n const description =\n labels?.description ?? LASSO_TOOLS_LABELS.noData.description\n\n return (\n <>\n <Typography variant='body1' color='textSecondary'>\n {title}\n </Typography>\n <Typography variant='body2' color='textSecondary'>\n {description}\n </Typography>\n </>\n )\n}\n\nfunction Actions({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Pick<\n LassoToolsComponentProps,\n 'values' | 'onAllChipToggle' | 'onAllDelete'\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n if (values.length <= 1) {\n return null\n }\n\n const hasVisible = values.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.toggleAll?.active ?? LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <Box>\n <Button color='inherit' onClick={() => onAllChipToggle()}>\n {toggleAllLabel}\n </Button>\n <Button color='error' onClick={() => onAllDelete()}>\n {deleteAllLabel}\n </Button>\n </Box>\n )\n}\n","import type { SVGProps } from 'react'\n\nexport function RulerIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n fill='currentColor'\n {...props}\n >\n <path\n fill='currentColor'\n d='M3 13.5c-.413 0-.766-.147-1.06-.44A1.445 1.445 0 0 1 1.5 12V6c0-.412.147-.766.44-1.06.294-.293.647-.44 1.06-.44h12c.412 0 .766.147 1.06.44.293.294.44.647.44 1.06v6c0 .412-.147.766-.44 1.06-.294.293-.647.44-1.06.44H3ZM3 12h12V6h-2.25v3h-1.5V6h-1.5v3h-1.5V6h-1.5v3h-1.5V6H3v6Z'\n />\n </svg>\n )\n}\n\nexport function BufferIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n {...props}\n >\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M9 1.5a7.5 7.5 0 1 1 0 15 7.5 7.5 0 0 1 0-15ZM9 3a6 6 0 1 0 0 12A6 6 0 0 0 9 3Zm0 4.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n\nexport function AreaIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M4.5 13.5v-9h9v9h-9Zm.75-8.25h7.5v7.5h-7.5v-7.5Z'\n clipRule='evenodd'\n />\n <path\n fill='#2C3032'\n fillRule='evenodd'\n d='M1.5 3A1.5 1.5 0 0 1 3 1.5h12A1.5 1.5 0 0 1 16.5 3v12a1.5 1.5 0 0 1-1.5 1.5H3A1.5 1.5 0 0 1 1.5 15V3ZM3 3h12v12H3V3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n","import type { RequiredDeep } from 'type-fest'\nimport type {\n MeasurementMode,\n MeasurementModesMapping,\n MeasurementUnitsMapping,\n} from '../types'\nimport type { MeasurementToolsComponentProps } from './types'\nimport { RulerIcon, BufferIcon, AreaIcon } from './icons'\n\nexport const DEFAULT_MEASUREMENT_TOOLS_LABELS: RequiredDeep<\n MeasurementToolsComponentProps['labels']\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to start measuring',\n inactive: 'Click on the map to start measuring',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide measure',\n inactive: 'Show measure',\n },\n },\n options: {\n mode: {\n title: 'Choose a measuring tool',\n options: {\n distance: 'Measure distance',\n buffer: 'Buffer distance',\n area: 'Area',\n },\n },\n units: {\n title: 'Unit of measurement',\n modal: {\n title: 'Map Measurement Unit',\n subtitle: 'Select the unit of measurement for your measurements',\n apply: 'Save',\n options: {\n metric: {\n title: 'Meters and Kilometers',\n options: {\n 'm-km': 'Auto',\n kilometer: 'Kilometers',\n meter: 'Meter',\n centimeter: 'Centimeter',\n milimeter: 'Milimeter',\n },\n },\n imperial: {\n title: 'Feet and Miles',\n options: {\n 'ft-mi': 'Auto',\n mile: 'Mile',\n feet: 'Feet',\n yard: 'Yard',\n },\n },\n },\n },\n },\n },\n} as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING: MeasurementUnitsMapping =\n {\n 'm-km': {\n short: 'm-km',\n },\n kilometer: {\n short: 'km',\n },\n meter: {\n short: 'm',\n },\n centimeter: {\n short: 'cm',\n },\n milimeter: {\n short: 'mm',\n },\n 'ft-mi': {\n short: 'ft-mi',\n },\n mile: {\n short: 'mi',\n },\n yard: {\n short: 'yd',\n },\n feet: {\n short: 'ft',\n },\n } as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING: MeasurementModesMapping<MeasurementMode> =\n {\n distance: {\n icon: <RulerIcon />,\n },\n buffer: {\n icon: <BufferIcon />,\n },\n area: {\n icon: <AreaIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\nimport type { CSSProperties } from 'react'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n overflow: 'hidden',\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 marginTop: ({ spacing }) => spacing(1),\n },\n icon: {\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingY: ({ spacing }) => spacing(0.5),\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 modal: {\n toggle: {\n boxShadow: 'none',\n backgroundColor: '#F8F9F9',\n padding: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(2),\n marginBottom: ({ spacing }) => spacing(1),\n '.MuiToggleButtonGroup-grouped': ({ typography }) =>\n ({\n ...typography.caption,\n fontWeight: 500,\n margin: 0,\n '&:first-of-type:not(.MuiDivider-root)': {\n marginLeft: 0,\n },\n }) as CSSProperties,\n },\n subtitle: ({ typography, palette }) =>\n ({\n ...typography.body2,\n color: palette.text.secondary,\n }) as CSSProperties,\n optionsGroup: {\n marginLeft: ({ spacing }) => spacing(1),\n '.MuiTypography-root': ({ typography }) =>\n ({\n ...typography.body2,\n }) as CSSProperties,\n },\n title: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: ({ spacing }) => spacing(2),\n },\n content: {\n paddingX: ({ spacing }) => spacing(2),\n minWidth: ({ spacing }) => spacing(50),\n },\n actions: {\n paddingX: ({ spacing }) => spacing(2),\n },\n },\n },\n chip: {\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 { ArrowDropDown, Close } from '@mui/icons-material'\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n FormControl,\n FormControlLabel,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n Radio,\n RadioGroup,\n SvgIcon,\n ToggleButton,\n ToggleButtonGroup,\n Typography,\n} from '@mui/material'\nimport {\n useMemo,\n useState,\n type FormEvent,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n} from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport type { MeasurementToolsComponentProps } from './types'\nimport type { PickDeep, ValueOf } from 'type-fest'\nimport {\n DEFAULT_MEASUREMENT_TOOLS_LABELS,\n DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n} from './const'\nimport type {\n MeasurementSystem,\n MeasurementUnit,\n MeasurementUnitImperialDistance,\n MeasurementUnitMetricDistance,\n MeasurementUnitOption,\n MeasureUnitMapping,\n} from '../types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function MeasurementToolsUI({\n enabled,\n actionProps,\n labels = DEFAULT_MEASUREMENT_TOOLS_LABELS,\n modes,\n modesMapping = DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n unitsMapping = DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = {},\n units,\n unitSelected,\n onActionToggle,\n onChangeMode,\n onChangeUnit,\n}: MeasurementToolsComponentProps): JSX.Element {\n const handleToggle: MeasurementToolsComponentProps['onActionToggle'] = (\n data,\n ) => {\n return onActionToggle(!!data)\n }\n\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const modeExists = (modeSelected ?? '') in data\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof modes\n\n const modeSelectedValue = data[mode]\n\n const _units = useMemo(() => {\n const option = units[mode]\n const options =\n Object.keys(units).length >= 1 ? units : { [mode]: option.slice(0, 1) }\n return options[mode].map((unit) => {\n return {\n ...unit,\n ...unitsMapping[unit.value],\n }\n })\n }, [mode, units, unitsMapping])\n\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n <Box>\n <MeasurementToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </MeasurementToolsUIAction>\n <Options\n labels={labels?.options}\n modes={data}\n modeSelected={mode}\n units={_units}\n unitSelected={unitSelected}\n onChangeMode={onChangeMode}\n onChangeUnit={onChangeUnit}\n />\n </Box>\n </Paper>\n )\n}\n\nfunction MeasurementToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n MeasurementToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'action'\n >['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n DEFAULT_MEASUREMENT_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\nfunction Options({\n modes,\n modeSelected,\n units,\n unitSelected,\n labels,\n onChangeMode,\n onChangeUnit,\n}: Required<\n Pick<\n MeasurementToolsComponentProps,\n 'modeSelected' | 'onChangeMode' | 'onChangeUnit'\n >\n> & {\n modes: MeasurementToolsComponentProps['modes'] &\n MeasurementToolsComponentProps['modesMapping']\n units: (MeasurementUnitOption<MeasurementUnit> & MeasureUnitMapping)[]\n unitSelected?: MeasurementToolsComponentProps['unitSelected']\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n}) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const [unitModal, setUnitModal] = useState(false)\n\n const modesAvailable = Object.values(modes)\n const unitsAvailable = Object.values(units)\n\n const hasValues = modesAvailable.length > 1 || unitsAvailable.length > 1\n\n if (!hasValues) {\n return null\n }\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 const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n mode: ValueOf<Required<typeof modes>>,\n ) => {\n e.preventDefault()\n onChangeMode(mode.value)\n handleClose()\n }\n\n const handleClickUnit = () => {\n setUnitModal(true)\n }\n\n const handleCloseModal = () => {\n setUnitModal(false)\n }\n\n const handleApplyModal = (data: string) => {\n handleCloseModal()\n onChangeUnit(data)\n }\n\n const modeTitle =\n labels?.mode?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.title\n\n const unitTitle =\n labels?.units?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.title\n\n const hasDivider = modesAvailable.length > 1 && unitsAvailable.length > 1\n\n const unitSelectedValue = (units.find(\n (unit) => unit.value === unitSelected,\n ) ?? units[0])!\n\n return (\n <>\n <IconButton sx={styles.options.icon} onClick={handleToggle}>\n <ArrowDropDown />\n </IconButton>\n <Menu\n id='measurement-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'basic-button',\n sx: styles.options.menu,\n }}\n >\n <div>\n {modesAvailable.length > 1 && (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {modesAvailable.map((mode) => {\n const options =\n labels?.mode?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n onClick={(e) => handleClick(e, mode)}\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 )}\n {hasDivider && <Divider />}\n {unitsAvailable.length > 1 && (\n <>\n <MenuItem onClick={handleClickUnit}>\n <ListItemText>{unitTitle}</ListItemText>\n <Typography\n variant='caption'\n fontWeight={500}\n sx={styles.options.tag}\n >\n {unitSelectedValue.short}\n </Typography>\n </MenuItem>\n <UnitsModal\n open={unitModal}\n labels={labels}\n units={units}\n unitSelectedValue={unitSelectedValue}\n onClose={handleCloseModal}\n onSubmit={handleApplyModal}\n />\n </>\n )}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction UnitsModal({\n open,\n labels,\n units,\n unitSelectedValue,\n onClose,\n onSubmit,\n}: {\n open: boolean\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n units: MeasurementUnitOption<MeasurementUnit>[]\n unitSelectedValue: MeasurementUnitOption<MeasurementUnit>\n onClose: () => void\n onSubmit: (data: string) => void\n}) {\n const [system, setSystem] = useState<MeasurementSystem>('metric')\n\n const _units = useMemo(() => {\n return units.filter((unit) => unit.system === system)\n }, [system, units])\n\n const handleToggleChange = (\n _: MouseEvent<HTMLElement>,\n value: MeasurementSystem,\n ) => {\n setSystem(value)\n }\n\n const _labels =\n labels?.units?.modal?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.options\n\n const labelsBySystem = _labels[system].options\n\n const modalUnitTitle =\n labels?.units?.modal?.title ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.title\n const modalUnitSubtitle =\n labels?.units?.modal?.subtitle ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.subtitle\n const modalUnitApply =\n labels?.units?.modal?.apply ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.apply\n\n const _unitSelectedValue =\n unitSelectedValue.system === system ? unitSelectedValue : _units[0]\n\n return (\n <Dialog\n open={open}\n component={Box}\n onClose={onClose}\n maxWidth='xs'\n PaperProps={{\n component: 'form',\n onSubmit: (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const formData = new FormData(e.currentTarget)\n onSubmit(formData.get('unit-value') as string)\n },\n }}\n >\n <DialogTitle sx={styles.options.modal.title}>\n {modalUnitTitle}\n <IconButton onClick={onClose}>\n <Close />\n </IconButton>\n </DialogTitle>\n <DialogContent sx={styles.options.modal.content}>\n <Typography sx={styles.options.modal.subtitle}>\n {modalUnitSubtitle}\n </Typography>\n <ToggleButtonGroup\n color='primary'\n value={system}\n exclusive={true}\n fullWidth={true}\n onChange={handleToggleChange}\n aria-label='system'\n sx={styles.options.modal.toggle}\n >\n <ToggleButton value='metric'>{_labels.metric.title}</ToggleButton>\n <ToggleButton value='imperial'>{_labels.imperial.title}</ToggleButton>\n </ToggleButtonGroup>\n <FormControl key={_unitSelectedValue?.value}>\n <RadioGroup\n aria-labelledby='unit-value'\n defaultValue={_unitSelectedValue?.value}\n name='unit-value'\n sx={styles.options.modal.optionsGroup}\n >\n {_units.map((unit) => {\n const label =\n labelsBySystem[\n unit.value as MeasurementUnitMetricDistance &\n MeasurementUnitImperialDistance\n ]\n\n return (\n <FormControlLabel\n key={unit.value}\n value={unit.value}\n control={<Radio />}\n label={label}\n />\n )\n })}\n </RadioGroup>\n </FormControl>\n </DialogContent>\n <DialogActions sx={styles.options.modal.actions}>\n <Button variant='contained' type='submit'>\n {modalUnitApply}\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","export const tooltipLabelsDefault = {\n enabled: 'Show your current location',\n disabled: 'Location unavailable',\n}\n\nexport const ariaLabel = 'geolocation'\n","import { Paper, IconButton } from '@mui/material'\nimport {\n MyLocationOutlined,\n LocationDisabledOutlined,\n} from '@mui/icons-material'\nimport type { GeolocationControlProps } from './types'\nimport { useCallback, useEffect, useRef, useState, type JSX } from 'react'\nimport { ariaLabel, tooltipLabelsDefault } from './const'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function GeolocationControls({\n disabled,\n labels,\n PaperProps,\n TooltipProps,\n watch,\n onChange,\n onError,\n}: GeolocationControlProps): JSX.Element {\n const watchRef = useRef<number>(null)\n const hasGeolocation = 'geolocation' in navigator\n const [allowed, setAllowed] = useState(hasGeolocation)\n\n useEffect(() => {\n if (hasGeolocation) {\n navigator.permissions\n .query({ name: 'geolocation' })\n .then((result) => {\n setAllowed(result.state === 'granted')\n result.onchange = () => {\n setAllowed(result.state === 'granted')\n }\n })\n .catch((error: Parameters<PositionErrorCallback>[0]) => {\n setAllowed(false)\n onError?.(error)\n })\n }\n\n return () => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n }\n }, [hasGeolocation, onError])\n\n const success = useCallback(\n (position: Parameters<PositionCallback>[0]) => {\n onChange(position.coords)\n },\n [onChange],\n )\n\n const error = useCallback(\n (error: Parameters<PositionErrorCallback>[0]) => {\n setAllowed(false)\n onError?.(error)\n },\n [onError],\n )\n\n const handleClick = useCallback(() => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n\n if (watch) {\n watchRef.current = navigator.geolocation.watchPosition(success, error)\n return\n }\n\n navigator.geolocation.getCurrentPosition(success, error)\n }, [watch, success, error])\n\n const tooltipLabels = labels?.tooltip ?? tooltipLabelsDefault\n\n return (\n <Paper {...PaperProps}>\n <Tooltip\n arrow\n placement='right'\n title={tooltipLabels[allowed ? 'enabled' : 'disabled']}\n {...TooltipProps}\n >\n <IconButton\n onClick={handleClick}\n aria-label={labels?.ariaLabel ?? ariaLabel}\n disabled={!hasGeolocation || disabled}\n >\n {allowed ? <MyLocationOutlined /> : <LocationDisabledOutlined />}\n </IconButton>\n </Tooltip>\n </Paper>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n zoom: {\n position: 'relative',\n height: ({ spacing }) => spacing(4),\n aspectRatio: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n display: 'flex',\n backgroundColor: ({ palette }) => palette.background.paper,\n width: 'auto',\n overflow: 'hidden',\n boxShadow: ({ shadows }) => shadows[1],\n borderRadius: ({ spacing }) => spacing(0.5),\n\n button: {\n borderRadius: 0,\n },\n },\n circularProgress: {\n position: 'absolute',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n IconButton,\n Divider,\n Box,\n Typography,\n CircularProgress,\n Paper,\n} from '@mui/material'\nimport {\n AddOutlined,\n RemoveOutlined,\n CropFreeOutlined,\n} from '@mui/icons-material'\nimport { styles } from './styles'\nimport type { ZoomControlProps } from './types'\nimport { useCallback, type JSX } from 'react'\n\nexport function ZoomControlsUI({\n zoom,\n disabled,\n direction = 'vertical',\n reverse = false,\n isLoading,\n maxZoom = 24,\n minZoom = 0,\n PaperProps,\n ResetViewProps = {\n Icon: CropFreeOutlined,\n },\n showZoom = true,\n onChange,\n onReset,\n}: ZoomControlProps): JSX.Element {\n const increaseZoom = useCallback(() => {\n const newZoom = Math.min(maxZoom, zoom + 1)\n onChange(newZoom)\n }, [maxZoom, onChange, zoom])\n\n const decreaseZoom = useCallback(() => {\n const newZoom = Math.max(minZoom, zoom - 1)\n onChange(newZoom)\n }, [minZoom, onChange, zoom])\n\n const displayZoom = Math.floor(zoom)\n\n const dividerOrientation =\n direction === 'vertical' ? 'horizontal' : 'vertical'\n\n let flexDirection = direction === 'vertical' ? 'column' : 'row'\n\n if (reverse) {\n flexDirection += '-reverse'\n }\n\n return (\n <Paper\n sx={{\n ...styles.paper,\n flexDirection,\n }}\n {...PaperProps}\n >\n {onReset && (\n <>\n <IconButton\n onClick={onReset}\n aria-label='Reset action'\n disabled={disabled}\n >\n <ResetViewProps.Icon />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton\n onClick={increaseZoom}\n aria-label='Increase zoom'\n disabled={disabled}\n >\n <AddOutlined />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n {showZoom && (\n <>\n <Box sx={styles.zoom}>\n <Typography\n display='block'\n align='center'\n color='textSecondary'\n variant='overline'\n >\n {displayZoom}\n </Typography>\n {isLoading && (\n <CircularProgress\n sx={styles.circularProgress}\n variant='indeterminate'\n size={24}\n />\n )}\n </Box>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton\n onClick={decreaseZoom}\n aria-label='Decrease zoom'\n disabled={disabled}\n >\n <RemoveOutlined />\n </IconButton>\n </Paper>\n )\n}\n","import { Box, Grid, Skeleton } from '@mui/material'\n\ninterface ListDataSkeletonProps {\n length?: number\n}\n\nexport function ListDataSkeleton({ length = 5 }: ListDataSkeletonProps) {\n return (\n <Box aria-label='List Data skeleton'>\n {new Array(length).fill(null).map((_, idx) => (\n <Grid key={idx} container spacing={1}>\n <Grid\n container\n item\n direction='row'\n justifyContent='space-between'\n alignItems='center'\n >\n <Skeleton width={isOdd(idx) ? 72 : 48} height={20} />\n <Skeleton width={48} height={8} />\n </Grid>\n\n <Skeleton\n sx={{\n height: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(1.25),\n marginBottom: ({ spacing }) => spacing(1.75),\n width: '100%',\n }}\n />\n </Grid>\n ))}\n </Box>\n )\n}\n\n// Aux\nfunction isOdd(num: number) {\n return num % 2 === 1\n}\n","import {\n Alert,\n Box,\n Typography,\n type AlertProps,\n type TypographyProps,\n} from '@mui/material'\n\ninterface NoDataAlertProps {\n title?: string\n body?: string\n severity?: AlertProps['severity']\n}\n\nexport function NoDataAlert({\n title = 'No data available',\n body = 'There are no results for the combination of filters applied to your data. Try tweaking your filters, or zoom and pan the map to adjust the Map View.',\n severity,\n}: NoDataAlertProps) {\n if (severity) {\n return (\n <Alert title={title} severity={severity}>\n <AlertBody>{body}</AlertBody>\n </Alert>\n )\n }\n\n return (\n <Box>\n {title && <Typography variant='body2'>{title}</Typography>}\n <AlertBody color='textSecondary'>{body}</AlertBody>\n </Box>\n )\n}\n\n// Aux\ninterface AlertBodyProps {\n color?: TypographyProps['color']\n children: React.ReactNode\n}\n\nfunction AlertBody({ color, children }: AlertBodyProps) {\n if (children) {\n return (\n <Box mt={0.5}>\n <Typography\n component='div'\n variant='caption'\n color={color ?? 'inherit'}\n style={{ fontWeight: 'normal' }}\n >\n {children}\n </Typography>\n </Box>\n )\n }\n\n return <Box mt={-1} />\n}\n","import { useState, useEffect } from 'react'\n\nexport function useSkeleton(isLoading: boolean) {\n const [visible, setVisible] = useState(false)\n const [everBeenVisible, setEverBeenVisible] = useState(false)\n\n useEffect(() => {\n if (isLoading && !everBeenVisible) {\n setVisible(true)\n setEverBeenVisible(true)\n }\n\n if (!isLoading) {\n setVisible(false)\n }\n }, [isLoading, everBeenVisible])\n\n return visible\n}\n","import { type SxProps, type Theme } from '@mui/material'\n\nconst ellipsed = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nexport const styles = {\n label: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n },\n },\n value: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n textAlign: 'right',\n },\n },\n clickable: {\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n showDivider: {\n borderBottom: ({ palette }) => `1px solid ${palette.divider}`,\n },\n selected: {\n backgroundColor: ({ palette }) => palette.action.selected,\n },\n disabled: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n 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","import { useState, useMemo, type JSX } from 'react'\nimport { Box, Button, Grid, ListItem, List, ListItemText } from '@mui/material'\nimport { ListDataSkeleton } from './list-data-skeleton'\nimport { NoDataAlert } from '../no-data-alert/no-data-alert'\nimport { useSkeleton } from '../../hooks/use-skeleton'\nimport type { ListDataProps } from './types'\nimport { styles } from './styles'\nimport { SmartTooltip } from '../smart-tooltip/smart-tooltip'\n\nconst DEFAULT_LABELS = {\n showMore: 'Show More',\n showLess: 'Show Less',\n} as const\n\nexport function ListDataUI({\n data = [],\n isLoading = false,\n maxItems = 5,\n labels = DEFAULT_LABELS,\n showDivider = true,\n selectedItemId,\n tooltipProps,\n onExpand,\n onItemClick,\n}: ListDataProps): JSX.Element {\n const [showAll, setShowAll] = useState(false)\n\n const showSkeleton = useSkeleton(isLoading)\n\n const items = useMemo(() => {\n return showAll ? data : data.slice(0, maxItems)\n }, [data, maxItems, showAll])\n\n const handleToggle = () => {\n setShowAll(!showAll)\n onExpand?.(showAll)\n }\n\n if (showSkeleton) {\n return <ListDataSkeleton length={maxItems} />\n }\n\n if (items.length === 0) {\n return <NoDataAlert />\n }\n\n return (\n <>\n <List id='expandable-list' role='list'>\n {items.map((item, idx) => (\n <SmartTooltip<HTMLLIElement>\n // Default tooltip props\n followCursor={false}\n key={`list-item-${idx}`}\n placement='top'\n arrow\n title={item.tooltipTitle}\n enterDelay={10}\n // Custom tooltip props\n {...tooltipProps}\n >\n {({ ref }) => (\n <ListItem\n ref={ref}\n role='listitem'\n sx={{\n ...(showDivider && styles.showDivider),\n ...(onItemClick && styles.clickable),\n ...(selectedItemId === item.id && styles.selected),\n ...(item.disabled && styles.disabled),\n }}\n onClick={() => {\n if (item.disabled) return\n onItemClick?.(item)\n }}\n >\n <Grid container alignItems='center'>\n <Grid item xs={8}>\n <ListItemText primary={item.label} sx={styles.label} />\n </Grid>\n <Grid item xs={4}>\n <ListItemText primary={item.value} sx={styles.value} />\n </Grid>\n </Grid>\n </ListItem>\n )}\n </SmartTooltip>\n ))}\n </List>\n\n {data.length > maxItems && (\n <Box my={2}>\n <Button\n onClick={handleToggle}\n variant='text'\n color='primary'\n aria-expanded={showAll}\n aria-controls='expandable-list'\n >\n {showAll ? labels.showLess : labels.showMore}\n </Button>\n </Box>\n )}\n </>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const BASEMAPS_WIDTH = 288\n\nexport const styles = {\n root: {\n width: BASEMAPS_WIDTH,\n overflow: 'auto',\n },\n toggle: {\n padding: ({ spacing }) => spacing(0.5),\n\n img: {\n width: '100%',\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.25),\n },\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n paddingInlineStart: ({ spacing }) => spacing(2),\n position: 'sticky',\n top: 0,\n zIndex: 2,\n background: ({ palette }) => palette.background.paper,\n },\n groupWrapper: {\n content: {\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(0.5),\n },\n },\n group: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(1),\n },\n item: {\n container: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n background: 'transparent',\n border: 'none',\n cursor: 'pointer',\n padding: 0,\n height: ({ spacing }) => spacing(12),\n\n img: {\n maxWidth: ({ spacing }) => spacing(9),\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.5),\n border: `2px solid transparent`,\n\n '&:hover': {\n borderColor: ({ palette }) => palette.action.active,\n },\n\n '&[data-active=\"true\"]': {\n borderColor: ({ palette }) => palette.primary.main,\n },\n },\n },\n selected: {\n color: ({ palette }) => palette.primary.main,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { BasemapsUILabels } from './types'\n\nexport const DEFAULT_BASEMAPS_LABELS: BasemapsUILabels = {\n toggle: {\n title: 'Toggle basemaps controls',\n },\n header: {\n title: 'Basemaps',\n actions: {\n close: 'Close',\n },\n },\n}\n","import { Close } from '@mui/icons-material'\nimport { Box, Typography, IconButton } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapsUILabels } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function Header({\n isMobile = false,\n labels,\n onChangeCollapsed,\n}: {\n labels: BasemapsUILabels['header']\n isMobile?: boolean\n onChangeCollapsed: () => void\n}) {\n return (\n <Box sx={styles.header}>\n {isMobile && (\n <>\n <Typography variant='caption' flexGrow={1}>\n {labels.title}\n </Typography>\n <Tooltip title={labels.actions.close}>\n <IconButton\n size='small'\n onClick={onChangeCollapsed}\n aria-label={labels.actions.close}\n >\n <Close />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n )\n}\n","import { Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport { styles } from './styles'\n\nexport function GroupWrapper({\n title,\n children,\n collapsed = false,\n}: {\n title: string\n children: ReactNode\n collapsed?: boolean\n}) {\n if (collapsed) return children\n\n return (\n <>\n <Typography\n variant='caption'\n color='textSecondary'\n sx={styles.groupWrapper.content}\n >\n {title}\n </Typography>\n {children}\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapOption } from './types'\n\nexport function Group({\n values,\n selected,\n onChange,\n}: {\n values: Omit<BasemapOption, 'group'>[]\n selected: string | null | undefined\n onChange: (id: string) => void\n}) {\n return (\n <Box sx={styles.group}>\n {values.map((option) => {\n const isSelected = option.id === selected\n return (\n <Box\n key={option.id}\n sx={styles.item.container}\n component='button'\n aria-label={option.label}\n onClick={() => onChange(option.id)}\n >\n <img\n src={option.icon}\n aria-label={option.label + ' icon'}\n data-active={isSelected}\n />\n <Typography\n variant='caption'\n sx={{ ...(isSelected && styles.item.selected) }}\n >\n {option.label}\n </Typography>\n </Box>\n )\n })}\n </Box>\n )\n}\n","import { Drawer, Popover, type PopoverProps } from '@mui/material'\nimport type { ReactNode } from 'react'\n\nexport function ResponsiveDrawer<\n T extends {\n collapsed: boolean\n onChangeCollapsed: (collapsed: boolean) => void\n position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n slotProps?: PopoverProps['slotProps']\n },\n>({\n ref,\n children,\n collapsed,\n isMobile = false,\n position,\n sx,\n slotProps,\n onChangeCollapsed,\n}: Required<Pick<T, 'collapsed' | 'onChangeCollapsed' | 'position'>> &\n Pick<PopoverProps, 'slotProps' | 'sx'> & {\n ref: HTMLElement | null\n isMobile: boolean\n children: ReactNode\n }) {\n if (isMobile) {\n return (\n <Drawer anchor='bottom' open={!collapsed} onClose={onChangeCollapsed}>\n {children}\n </Drawer>\n )\n }\n\n return (\n <Popover\n sx={sx}\n anchorEl={ref}\n open={!collapsed}\n onClose={() => onChangeCollapsed(true)}\n anchorOrigin={{\n vertical: position.startsWith('bottom') ? 'bottom' : 'top',\n horizontal: position.endsWith('right') ? 'left' : 'right',\n }}\n transformOrigin={{\n vertical: position.startsWith('bottom') ? 'bottom' : 'top',\n horizontal: position.endsWith('right') ? 'right' : 'left',\n }}\n slotProps={slotProps}\n >\n {children}\n </Popover>\n )\n}\n","import { IconButton, Paper, useMediaQuery, useTheme } from '@mui/material'\nimport type { BasemapsUIProps } from './types'\nimport { useEffect, useRef, useState, type JSX } from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport { DEFAULT_BASEMAPS_LABELS } from './const'\nimport { Header } from './header'\nimport { GroupWrapper } from './group-wrapper'\nimport { Group } from './group'\nimport { ResponsiveDrawer } from '../responsive-drawer/responsive-drawer'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function BasemapsUI({\n options = [],\n labels: _labels,\n position = 'bottom-right',\n selected = null,\n onChange,\n TooltipProps,\n}: BasemapsUIProps): JSX.Element {\n const [toggleRef, setToggleRef] = useState<HTMLButtonElement | null>(null)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const [timer, setTimer] = useState<number | null>(null)\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n const labels = deepmerge(DEFAULT_BASEMAPS_LABELS, _labels ?? {})\n\n const collapsed = !toggleRef\n\n const optionSelected = options.find((option) => option.id === selected)\n\n const groups = Object.groupBy(options, (option) => option.group ?? 'default')\n\n const groupCount = Object.keys(groups).length\n\n useEffect(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (!timer) {\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n setToggleRef(null)\n return\n }, timer)\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [timer])\n\n const handleMouseOver = () => {\n setTimer(null)\n }\n const handleMouseLeave = () => {\n setTimer(400)\n }\n\n return (\n <Paper>\n <Tooltip title={labels.toggle.title} placement='right' {...TooltipProps}>\n <IconButton\n sx={styles.toggle}\n onClick={(e) => {\n setToggleRef(e.currentTarget as HTMLButtonElement)\n }}\n >\n <img\n src={optionSelected?.icon}\n alt={optionSelected?.label ?? 'Basemap'}\n />\n </IconButton>\n </Tooltip>\n\n <ResponsiveDrawer\n ref={toggleRef}\n slotProps={{\n paper: {\n sx: {\n ...styles.root,\n transform: `translate3d(${position.endsWith('right') ? '-8px' : '8px'}, ${\n position.startsWith('bottom') ? '-4px' : '4px'\n }, 0) !important`,\n },\n onMouseOver: handleMouseOver,\n onMouseLeave: handleMouseLeave,\n },\n }}\n collapsed={collapsed}\n position={position}\n isMobile={isMobile}\n onChangeCollapsed={() => setToggleRef(null)}\n >\n <Header\n isMobile={isMobile}\n labels={labels.header}\n onChangeCollapsed={() => setToggleRef(null)}\n />\n {Object.entries(groups).map(([group, values]) => (\n <GroupWrapper\n key={group}\n title={group + ' ' + labels.header.title}\n collapsed={groupCount < 2}\n >\n <Group\n values={values!}\n selected={selected}\n onChange={(e) => {\n setToggleRef(null)\n onChange(e)\n }}\n />\n </GroupWrapper>\n ))}\n </ResponsiveDrawer>\n </Paper>\n )\n}\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","val","cloneUnlessOtherwiseSpecified","options","deepmerge","defaultArrayMerge","target","source","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","object","property","propertyIsUnsafe","mergeObject","destination","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","array","prev","next","deepmerge_1","cjs","tooltipEnterDelay","Tooltip","t0","$","_c","children","props","t1","title","enterNextDelay","undefined","t2","MuiTooltip","setTooltipEnterDelay","delay","DrawPolygonIcon","Symbol","for","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","chip","mode","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","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","ChipsSlot","ActionSlot","SecondaryActionsSlot","OptionsSlot","sx","Chips","Action","SecondaryActions","Options","t9","slotArgs","t10","t11","t12","t13","t14","t15","jsxs","Paper","LassoToolsUIAction","actionState","actionLabel","ToggleButton","TriggerProps","Icon","ArrowDropDown","MenuProps","anchorEl","setAnchorEl","useState","open","Boolean","handleToggle","event","currentTarget","handleClose","Fragment","IconButton","Menu","onClose","ModeList","data","length","modeTitle","Typography","OptionsList","handleClick","e","preventDefault","map","MenuItem","disabled","ListItemIcon","SvgIcon","ListItemText","SecondaryActionsWrapper","toggleAllLabel","some","_temp","deleteAllLabel","Divider","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","useMemo","Object","keys","modeSelectedValue","handleDelete","valueId","Box","_modes","modesValues","handleChangeMode","LassoToolsInlineUI","BoxProps","evt","ToggleButtonGroup","NoData","Actions","hasValues","Button","RulerIcon","BufferIcon","AreaIcon","DEFAULT_MEASUREMENT_TOOLS_LABELS","distance","buffer","area","units","modal","subtitle","apply","metric","kilometer","meter","centimeter","milimeter","imperial","mile","feet","yard","DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING","short","DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING","marginTop","paddingY","tag","border","borderColor","main","alpha","toggle","padding",".MuiToggleButtonGroup-grouped","typography","caption","fontWeight","body2","secondary","optionsGroup",".MuiTypography-root","content","minWidth","MeasurementToolsUI","unitsMapping","unitSelected","onChangeUnit","data_0","modeExists","option","slice","unit","_units","t16","t17","MeasurementToolsUIAction","t18","t19","t20","t21","unitModal","setUnitModal","T0","handleApplyModal","handleClickUnit","handleCloseModal","hasDivider","unitSelectedValue","unitTitle","unitsAvailable","bb0","modesAvailable","find","mode_0","e_0","UnitsModal","onSubmit","system","setSystem","filter","handleToggleChange","_","_labels","labelsBySystem","modalUnitTitle","modalUnitSubtitle","modalUnitApply","_unitSelectedValue","Dialog","component","formData","FormData","get","DialogTitle","Close","DialogContent","FormControl","RadioGroup","unit_0","FormControlLabel","Radio","DialogActions","tooltipLabelsDefault","ariaLabel","GeolocationControls","watch","onChange","onError","watchRef","useRef","hasGeolocation","navigator","allowed","setAllowed","permissions","query","name","then","result","state","onchange","catch","error","current","geolocation","clearWatch","useEffect","position","coords","success","error_0","error_1","watchPosition","getCurrentPosition","MyLocationOutlined","LocationDisabledOutlined","zoom","aspectRatio","paper","background","shadows","button","circularProgress","ZoomControlsUI","direction","reverse","isLoading","maxZoom","minZoom","ResetViewProps","showZoom","onReset","CropFreeOutlined","newZoom","Math","min","increaseZoom","newZoom_0","max","decreaseZoom","displayZoom","floor","dividerOrientation","AddOutlined","CircularProgress","RemoveOutlined","ListDataSkeleton","Array","fill","_temp4","idx","Grid","Skeleton","isOdd","_temp2","_temp3","spacing_1","spacing_0","num","NoDataAlert","body","severity","AlertBody","Alert","useSkeleton","setVisible","everBeenVisible","setEverBeenVisible","ellipsed","textOverflow","whiteSpace","textAlign","clickable","cursor","hover","showDivider","borderBottom","divider","selected","opacity","pointerEvents","SmartTooltip","dependencies","timeout","ref","isOverflowing","setIsOverflowing","useLayoutEffect","timerId","setTimeout","scrollWidth","clientWidth","scrollHeight","clientHeight","clearTimeout","DEFAULT_LABELS","showMore","showLess","ListDataUI","maxItems","selectedItemId","tooltipProps","onExpand","onItemClick","showAll","setShowAll","showSkeleton","items","item","tooltipTitle","ListItem","List","BASEMAPS_WIDTH","root","img","header","paddingInlineStart","top","zIndex","groupWrapper","paddingInline","paddingBlock","group","maxWidth","DEFAULT_BASEMAPS_LABELS","close","Header","isMobile","onChangeCollapsed","GroupWrapper","collapsed","Group","isSelected","ResponsiveDrawer","slotProps","Drawer","startsWith","endsWith","Popover","BasemapsUI","toggleRef","setToggleRef","timeoutRef","timer","setTimer","theme","useTheme","breakpoints","down","useMediaQuery","optionSelected","groups","groupBy","groupCount","handleMouseOver","handleMouseLeave","T1","transform","onMouseOver","onMouseLeave","t22","t23","t24","entries","t25","t26","option_0"],"mappings":";;;;;;;;;;;;AAEA,MAAIA,IAAoB,SAA2BC,GAAO;AACzD,WAAOC,EAAgBD,CAAK,KACxB,CAACE,EAAUF,CAAK;AAAA,EACpB;AAED,WAASC,EAAgBD,GAAO;AAC/B,WAAO,CAAC,CAACA,KAAS,OAAOA,KAAU;AAAA,EACpC;AAEA,WAASE,EAAUF,GAAO;AACzB,QAAIG,IAAc,OAAO,UAAU,SAAS,KAAKH,CAAK;AAEtD,WAAOG,MAAgB,qBACnBA,MAAgB,mBAChBC,EAAeJ,CAAK;AAAA,EACzB;AAGA,MAAIK,IAAe,OAAO,UAAW,cAAc,OAAO,KACtDC,IAAqBD,IAAe,OAAO,IAAI,eAAe,IAAI;AAEtE,WAASD,EAAeJ,GAAO;AAC9B,WAAOA,EAAM,aAAaM;AAAA,EAC3B;AAEA,WAASC,EAAYC,GAAK;AACzB,WAAO,MAAM,QAAQA,CAAG,IAAI,CAAA,IAAK,CAAA;AAAA,EAClC;AAEA,WAASC,EAA8BT,GAAOU,GAAS;AACtD,WAAQA,EAAQ,UAAU,MAASA,EAAQ,kBAAkBV,CAAK,IAC/DW,EAAUJ,EAAYP,CAAK,GAAGA,GAAOU,CAAO,IAC5CV;AAAA,EACJ;AAEA,WAASY,EAAkBC,GAAQC,GAAQJ,GAAS;AACnD,WAAOG,EAAO,OAAOC,CAAM,EAAE,IAAI,SAASC,GAAS;AAClD,aAAON,EAA8BM,GAASL,CAAO;AAAA,IACrD,CAAA;AAAA,EACF;AAEA,WAASM,EAAiBC,GAAKP,GAAS;AACvC,QAAI,CAACA,EAAQ;AACZ,aAAOC;AAER,QAAIO,IAAcR,EAAQ,YAAYO,CAAG;AACzC,WAAO,OAAOC,KAAgB,aAAaA,IAAcP;AAAA,EAC1D;AAEA,WAASQ,EAAgCN,GAAQ;AAChD,WAAO,OAAO,wBACX,OAAO,sBAAsBA,CAAM,EAAE,OAAO,SAASO,GAAQ;AAC9D,aAAO,OAAO,qBAAqB,KAAKP,GAAQO,CAAM;AAAA,IACtD,CAAA,IACC,CAAA;AAAA,EACJ;AAEA,WAASC,EAAQR,GAAQ;AACxB,WAAO,OAAO,KAAKA,CAAM,EAAE,OAAOM,EAAgCN,CAAM,CAAC;AAAA,EAC1E;AAEA,WAASS,EAAmBC,GAAQC,GAAU;AAC7C,QAAI;AACH,aAAOA,KAAYD;AAAA,IACnB,QAAU;AACV,aAAO;AAAA,IACT;AAAA,EACA;AAGA,WAASE,EAAiBZ,GAAQI,GAAK;AACtC,WAAOK,EAAmBT,GAAQI,CAAG,KACjC,EAAE,OAAO,eAAe,KAAKJ,GAAQI,CAAG,KACvC,OAAO,qBAAqB,KAAKJ,GAAQI,CAAG;AAAA,EAClD;AAEA,WAASS,EAAYb,GAAQC,GAAQJ,GAAS;AAC7C,QAAIiB,IAAc,CAAE;AACpB,WAAIjB,EAAQ,kBAAkBG,CAAM,KACnCQ,EAAQR,CAAM,EAAE,QAAQ,SAASI,GAAK;AACrC,MAAAU,EAAYV,CAAG,IAAIR,EAA8BI,EAAOI,CAAG,GAAGP,CAAO;AAAA,IACxE,CAAG,GAEFW,EAAQP,CAAM,EAAE,QAAQ,SAASG,GAAK;AACrC,MAAIQ,EAAiBZ,GAAQI,CAAG,MAI5BK,EAAmBT,GAAQI,CAAG,KAAKP,EAAQ,kBAAkBI,EAAOG,CAAG,CAAC,IAC3EU,EAAYV,CAAG,IAAID,EAAiBC,GAAKP,CAAO,EAAEG,EAAOI,CAAG,GAAGH,EAAOG,CAAG,GAAGP,CAAO,IAEnFiB,EAAYV,CAAG,IAAIR,EAA8BK,EAAOG,CAAG,GAAGP,CAAO;AAAA,IAExE,CAAE,GACMiB;AAAA,EACR;AAEA,WAAShB,EAAUE,GAAQC,GAAQJ,GAAS;AAC3C,IAAAA,IAAUA,KAAW,CAAE,GACvBA,EAAQ,aAAaA,EAAQ,cAAcE,GAC3CF,EAAQ,oBAAoBA,EAAQ,qBAAqBX,GAGzDW,EAAQ,gCAAgCD;AAExC,QAAImB,IAAgB,MAAM,QAAQd,CAAM,GACpCe,IAAgB,MAAM,QAAQhB,CAAM,GACpCiB,IAA4BF,MAAkBC;AAElD,WAAKC,IAEMF,IACHlB,EAAQ,WAAWG,GAAQC,GAAQJ,CAAO,IAE1CgB,EAAYb,GAAQC,GAAQJ,CAAO,IAJnCD,EAA8BK,GAAQJ,CAAO;AAAA,EAMtD;AAEA,EAAAC,EAAU,MAAM,SAAsBoB,GAAOrB,GAAS;AACrD,QAAI,CAAC,MAAM,QAAQqB,CAAK;AACvB,YAAM,IAAI,MAAM,mCAAmC;AAGpD,WAAOA,EAAM,OAAO,SAASC,GAAMC,GAAM;AACxC,aAAOtB,EAAUqB,GAAMC,GAAMvB,CAAO;AAAA,IACtC,GAAI,CAAE,CAAA;AAAA,EACL;AAED,MAAIwB,IAAcvB;AAElB,SAAAwB,KAAiBD;;;;AClIjB,IAAIE,KAAoB;AAYjB,SAAAC,GAAAC,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA;AAAAC,MAAAA,GAAAC,GAAAC,GAAAC;AAAAL,EAAAA,SAAAD,KAAiB;AAAA,IAAAG,UAAAA;AAAAA,IAAAG,OAAAA;AAAAA,IAAAC,gBAAAF;AAAAA,IAAA,GAAAD;AAAAA,EAAAA,IAAAJ,GAKTC,OAAAD,GAAAC,OAAAE,GAAAF,OAAAG,GAAAH,OAAAI,GAAAJ,OAAAK,MAAAH,IAAAF,EAAA,CAAA,GAAAG,IAAAH,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA;AAFbM,QAAAA,IAAAF,MAAkCG,SAAAV,KAAlCO;AAAkCI,MAAAA;AAAA,SAAAR,EAAA,CAAA,MAAAE,KAAAF,EAAAM,CAAAA,MAAAA,KAAAN,EAAAG,CAAAA,MAAAA,KAAAH,SAAAK,KAIhCG,sBAACC,IAAkBJ,EAAAA,OAAAA,GAAuBC,gBAAAA,MAAoBH,gBAE9D,GAAaH,OAAAE,GAAAF,OAAAM,GAAAN,OAAAG,GAAAH,OAAAK,GAAAL,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAFbQ;AAEa;AAIV,SAASE,GAAqBC,GAAe;AAC9BA,EAAAA,KAAAA;AACtB;AC3BO,SAAAC,GAAAT,GAAA;AAAAH,QAAAA,IAAAC,EAAA,CAAA;AAAAF,MAAAA;AAAA,EAAAC,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,qCASU,UAAA,WACA,UAAA,WACP,GAAA,qkBACG,MAAA,eACL,CAAA,GAAAd,OAAAD,KAAAA,IAAAC,EAAA,CAAA;AAAAI,MAAAA;AAAAJ,SAAAA,SAAAG,KAXJC,IAAA,gBAAAW,EAAA,OACO,EAAA,MAAA,QACC,OAAA,8BACE,SAAA,gBACJZ,GAEJJ,UAMFA,EAAA,CAAA,GAAMC,OAAAG,GAAAH,OAAAI,KAAAA,IAAAJ,EAAA,CAAA,GAZNI;AAYM;AAIH,SAAAY,GAAAb,GAAA;AAAAH,QAAAA,IAAAC,EAAA,CAAA;AAAAF,MAAAA;AAAA,EAAAC,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,qCASU,UAAA,WACA,UAAA,WACP,GAAA,gfACG,MAAA,eACL,CAAA,GAAAd,OAAAD,KAAAA,IAAAC,EAAA,CAAA;AAAAI,MAAAA;AAAAJ,SAAAA,SAAAG,KAXJC,IAAA,gBAAAW,EAAA,OACO,EAAA,MAAA,QACC,OAAA,8BACE,SAAA,gBACJZ,GAEJJ,UAMFA,EAAA,CAAA,GAAMC,OAAAG,GAAAH,OAAAI,KAAAA,IAAAJ,EAAA,CAAA,GAZNI;AAYM;AAIH,SAAAa,GAAAd,GAAA;AAAAH,QAAAA,IAAAC,EAAA,CAAA;AAAAF,MAAAA;AAAA,EAAAC,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,qCASU,UAAA,WACA,UAAA,WACP,GAAA,gJACG,MAAA,eACL,CAAA,GAAAd,OAAAD,KAAAA,IAAAC,EAAA,CAAA;AAAAI,MAAAA;AAAAJ,SAAAA,SAAAG,KAXJC,IAAA,gBAAAW,EAAA,OACO,EAAA,MAAA,QACC,OAAA,8BACE,SAAA,gBACJZ,GAEJJ,UAMFA,EAAA,CAAA,GAAMC,OAAAG,GAAAH,OAAAI,KAAAA,IAAAJ,EAAA,CAAA,GAZNI;AAYM;AAIH,SAAAc,GAAAf,GAAA;AAAAH,QAAAA,IAAAC,EAAA,CAAA;AAAAF,MAAAA;AAAA,EAAAC,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,qCASU,UAAA,WACA,UAAA,WACP,GAAA,wvBACG,MAAA,eACL,CAAA,GAAAd,OAAAD,KAAAA,IAAAC,EAAA,CAAA;AAAAI,MAAAA;AAAAJ,SAAAA,SAAAG,KAXJC,IAAA,gBAAAW,EAAA,OACO,EAAA,MAAA,QACC,OAAA,8BACE,SAAA,gBACJZ,GAEJJ,UAMFA,EAAA,CAAA,GAAMC,OAAAG,GAAAH,OAAAI,KAAAA,IAAAJ,EAAA,CAAA,GAZNI;AAYM;AAIH,SAAAe,GAAAhB,GAAA;AAAAH,QAAAA,IAAAC,EAAA,CAAA;AAAAF,MAAAA;AAAA,EAAAC,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,qCASU,UAAA,WACA,UAAA,WACP,GAAA,mOACG,MAAA,eACL,CAAA,GAAAd,OAAAD,KAAAA,IAAAC,EAAA,CAAA;AAAAI,MAAAA;AAAAJ,SAAAA,SAAAG,KAXJC,IAAA,gBAAAW,EAAA,OACO,EAAA,MAAA,QACC,OAAA,8BACE,SAAA,gBACJZ,GAEJJ,UAMFA,EAAA,CAAA,GAAMC,OAAAG,GAAAH,OAAAI,KAAAA,IAAAJ,EAAA,CAAA,GAZNI;AAYM;AC7EH,MAAMgB,IAET;AAAA,EACFC,QAAQ;AAAA,IACNC,SAAS;AAAA,MACPC,QAAQ;AAAA,MACRC,UAAU;AAAA,IAAA;AAAA,EAEd;AAAA,EACAC,MAAM;AAAA,IACJH,SAAS;AAAA,MACPC,QAAQ;AAAA,MACRC,UAAU;AAAA,IAAA;AAAA,EAEd;AAAA,EACArD,SAAS;AAAA,IACPuD,MAAM;AAAA,MACJrB,OAAO;AAAA,MACPlC,SAAS;AAAA,QACPwD,QAAQ;AAAA,QACRC,OAAO;AAAA,QACPC,SAAS;AAAA,QACTC,WAAW;AAAA,QACXC,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EAEJ;AAAA,EACAC,QAAQ;AAAA,IACN3B,OAAO;AAAA,IACP4B,aACE;AAAA,EACJ;AAAA,EACAC,SAAS;AAAA,IACPC,WAAW;AAAA,MACTZ,QAAQ;AAAA,MACRC,UAAU;AAAA,IACZ;AAAA,IACAY,WAAW;AAAA,EAAA;AAEf,GAEaC,KACX;AAAA,EACER,SAAS;AAAA,IACPS,MAAM1B;AAAAA,EACR;AAAA,EACAkB,WAAW;AAAA,IACTQ,MAAMtB;AAAAA,EACR;AAAA,EACAW,QAAQ;AAAA,IACNW,MAAMrB;AAAAA,EACR;AAAA,EACAW,OAAO;AAAA,IACLU,MAAMpB;AAAAA,EACR;AAAA,EACAa,MAAM;AAAA,IACJO,MAAMnB;AAAAA,EAAAA;AAEV,GCnEWoB,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,MAAQ,MAAMA,EAAQ,CAAC;AAAA,IAAA;AAAA,EAEnC;AAAA,EACAb,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,EAEJ;AAAA,EACA/E,SAAS;AAAA,IACPgF,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,YAAQ,MAAMA,EAAQ,CAAC;AAAA,UACpC;AAAA,UACA,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,QAElB;AAAA,QAEA,gCAAgC;AAAA,UAC9BK,QAAQ;AAAA,UAER,wDAAwD;AAAA,YACtDA,QAAQ;AAAA,UACV;AAAA,UACA,+DAA+D;AAAA,YAC7DN,QAAQA,CAAC;AAAA,cAAEF,SAAAA;AAAAA,YAAQ,MAAMA,EAAQ,CAAC;AAAA,UACpC;AAAA,UACA,6DAA6D;AAAA,YAC3DE,QAAQ;AAAA,YACRD,OAAOA,CAAC;AAAA,cAAED,SAAAA;AAAAA,YAAQ,MAAMA,EAAQ,CAAC;AAAA,UAAA;AAAA,QAErC;AAAA,QAEA,uDAAuD;AAAA,UACrDQ,QAAQ;AAAA,UAER,mBAAmB;AAAA,YACjBC,YAAY;AAAA,UACd;AAAA,UACA,wBAAwB;AAAA,YACtBC,aAAaA,CAAC;AAAA,cAAEV,SAAAA;AAAAA,YAAQ,MAAMA,EAAQ,GAAG;AAAA,UAAA;AAAA,QAE7C;AAAA,QACA,2DAA2D;AAAA,UACzD,iCAAiC;AAAA,YAC/BQ,QAAQA,CAAC;AAAA,cAAER,SAAAA;AAAAA,YAAAA,MAAcA,EAAQ,GAAG,GAAG;AAAA,UAAA;AAAA,QAE3C;AAAA,QACA,yDAAyD;AAAA,UACvD,iCAAiC;AAAA,YAC/BQ,QAAQA,CAAC;AAAA,cAAER,SAAAA;AAAAA,YAAcA,MAAAA,EAAQ,GAAG,GAAG,GAAG;AAAA,YAE1C,wBAAwB;AAAA,cACtBU,aAAa;AAAA,YACf;AAAA,YACA,kBAAkB;AAAA,cAChBC,cAAc;AAAA,YAAA;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAAA,IAEJ;AAAA,IACApB,MAAM;AAAA,MACJY,cAAc;AAAA,MACdF,OAAOA,CAAC;AAAA,QAAED,SAAAA;AAAAA,MAAQ,MAAMA,EAAQ,CAAC;AAAA,IACnC;AAAA,IACA1C,OAAO;AAAA,MACLsD,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,IAEnB;AAAA,IACAC,OAAO;AAAA,MACLC,OAAOA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQC,KAAKC;AAAAA,IACvC;AAAA,IASAC,MAAM;AAAA,MACJlB,OAAOA,CAAC;AAAA,QAAED,SAAAA;AAAAA,MAAQ,MAAMA,EAAQ,CAAC;AAAA,IAAA;AAAA,EAErC;AAAA,EACAtB,MAAM;AAAA,IACJe,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,IAEd;AAAA,IACA5C,MAAM;AAAA,MACJgC,aAAaA,CAAC;AAAA,QAAEV,SAAAA;AAAAA,MAAQ,MAAMA,EAAQ,GAAG;AAAA,IAK7C;AAAA,EAAA;AACF;ACvIO,SAAAuB,GAAAvE,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAA0B;AAAA,IAAAsE,WAAAA;AAAAA,IAAA9G,OAAAA;AAAAA,IAAA+G,QAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAA3E,GAU/B4E,IAAkBlH,EAAKmH,UAAW,WAAW,YAC7CC,IACEL,GAAMlD,UAAYqD,CAAS,KAAAvD,EAAAK,KAAAH,QAAqCqD,CAAS,GAGvBvE,IAAAmE,GAASO;AAActE,MAAAA;AAAA,EAAAR,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,KAEjEN,IAAA;AAAA,IAAA,GAAA+B,EAAAd,KAAAA;AAAAA,EAAA,GAEHzB,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AACM+E,QAAAA,IAAAtH,EAAKmH,UAAW,cAAc;AAASI,MAAAA;AAAAhF,EAAAA,SAAA0E,KAAA1E,EAAAvC,CAAAA,MAAAA,EAAAwH,MAEpCD,IAAAA,MAAMN,EAASjH,EAAKwH,EAAG,GAACjF,OAAA0E,GAAA1E,EAAA,CAAA,IAAAvC,EAAAwH,IAAAjF,OAAAgF,KAAAA,IAAAhF,EAAA,CAAA;AAAAkF,MAAAA;AAAA,EAAAlF,EAAA,CAAA,MAAAyE,KAAAzE,EAAAvC,CAAAA,MAAAA,EAAAwH,MAAAjF,EAAAvC,CAAAA,MAAAA,EAAAmH,WAEzBM,IAAAA,MAAMT,EAAahH,EAAKwH,IAAMxH,CAAAA,EAAKmH,OAAQ,GAAC5E,OAAAyE,GAAAzE,EAAA,CAAA,IAAAvC,EAAAwH,IAAAjF,EAAA,CAAA,IAAAvC,EAAAmH,SAAA5E,OAAAkF,KAAAA,IAAAlF,EAAA,CAAA;AACjD,QAAAmF,IAAAZ,GAASa;AAAYC,MAAAA;AAAArF,EAAAA,SAAA+E,KAAA/E,EAAAgF,CAAAA,MAAAA,KAAAhF,EAAA,EAAA,MAAAkF,KAAAlF,UAAAmF,KAAAnF,EAAAvC,EAAAA,MAAAA,EAAA6H,SAT3BD,sBAACE,IACK,EAAA,IAAA/E,GAGG,OAAAuE,GACF,MAAA,SACK,UAAAC,GACH,OAAAvH,EAAK6H,OACH,SAAAJ,GAA4C,GACjDC,GACJ,GAAAnF,OAAA+E,GAAA/E,OAAAgF,GAAAhF,QAAAkF,GAAAlF,QAAAmF,GAAAnF,EAAA,EAAA,IAAAvC,EAAA6H,OAAAtF,QAAAqF,KAAAA,IAAArF,EAAA,EAAA;AAAAwF,MAAAA;AAAAxF,SAAAA,EAAA6E,EAAAA,MAAAA,KAAA7E,UAAAI,KAAAJ,EAAA,EAAA,MAAAqF,2BAXHvF,MAAe+E,OAAAA,GAAqB,WAAA,UAAQ,GAAKzE,GAChDiF,UAWFA,EAAA,CAAA,GAAUrF,QAAA6E,GAAA7E,QAAAI,GAAAJ,QAAAqF,GAAArF,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA,GAZVwF;AAYU;ACAP,SAAAC,GAAA1F,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAAsB;AAAA,IAAAyF,SAAAA;AAAAA,IAAAC,QAAAvF;AAAAA,IAAAwF,aAAAA;AAAAA,IAAArB,WAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAqB,OAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,YAAAxF;AAAAA,IAAAyF,gBAAAA;AAAAA,IAAAxB,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAwB,cAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,WAAAtB;AAAAA,IAAAuB,YAAAtB;AAAAA,IAAAuB,sBAAArB;AAAAA,IAAAsB,aAAArB;AAAAA,EAAAA,IAAApF;AAoBFsF,MAAAA;AAAArF,EAAAA,SAAAI,KAlBzBA,IAAAA,MAAWG,cAAXH,GAAWJ,OAAAI,GAAAJ,OAAAqF,KAAAA,IAAArF,EAAA,CAAA;AAAX,QAAA2F,IAAAN;AAAWG,MAAAA;AAAAxF,EAAAA,SAAAQ,KAOCA,IAAAA,MAA0BD,cAA1BC,GAA0BR,OAAAQ,GAAAR,OAAAwF,KAAAA,IAAAxF,EAAA,CAAA;AAAAgG,MAAAA,GAAAS;AAAAzG,EAAAA,SAAAwF,KAA1B;AAAA,IAAAiB,IAAAA;AAAAA,IAAA,GAAAT;AAAAA,EAAAA,IAAAR,GAA0BxF,OAAAwF,GAAAxF,OAAAgG,GAAAhG,OAAAyG,MAAAT,IAAAhG,EAAA,CAAA,GAAAyG,IAAAzG,EAAA,CAAA;AAOtC,QAAAqG,IAAAtB,MAA8BxE,SAAAkF,GAAAiB,QAA9B3B,GACAuB,IAAAtB,MAAgCzE,SAAAkF,GAAAkB,SAAhC3B,GACAuB,IAAArB,MAAoD3E,SAAAkF,GAAAmB,mBAApD1B,GACAsB,IAAArB,MAAkC5E,SAAAkF,GAAAoB,UAAlC1B;AAAkC2B,MAAAA;AAAA9G,EAAAA,EAAAgG,CAAAA,MAAAA,KAAAhG,EAAA4F,CAAAA,MAAAA,KAAA5F,EAAAuE,CAAAA,MAAAA,KAAAvE,EAAA0F,EAAAA,MAAAA,KAAA1F,EAAAwE,EAAAA,MAAAA,KAAAxE,EAAA+F,EAAAA,MAAAA,KAAA/F,EAAA6F,EAAAA,MAAAA,KAAA7F,UAAA8F,KAAA9F,EAAA,EAAA,MAAAiG,KAAAjG,EAAA,EAAA,MAAAmG,KAAAnG,EAAA,EAAA,MAAAoG,KAAApG,EAAA,EAAA,MAAAkG,KAAAlG,EAAA,EAAA,MAAAyE,KAAAzE,EAAA,EAAA,MAAA0E,KAAA1E,EAAA,EAAA,MAAA2F,KAEjBmB,IAAA;AAAA,IAAApB,SAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAArB,WAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAqB,OAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,IAAAxB,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAwB,cAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,EAAA,GAgBhBpG,OAAAgG,GAAAhG,OAAA4F,GAAA5F,OAAAuE,GAAAvE,QAAA0F,GAAA1F,QAAAwE,GAAAxE,QAAA+F,GAAA/F,QAAA6F,GAAA7F,QAAA8F,GAAA9F,QAAAiG,GAAAjG,QAAAmG,GAAAnG,QAAAoG,GAAApG,QAAAkG,GAAAlG,QAAAyE,GAAAzE,QAAA0E,GAAA1E,QAAA2F,GAAA3F,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAhBD,QAAA+G,IAAiBD;AAgBhBE,MAAAA;AAAAhH,EAAAA,UAAAyG,KAGOO,IAAA;AAAA,IAAA,GAAAzE,EAAAC;AAAAA,IAAA,GAECiE;AAAAA,EAAE,GACNzG,QAAAyG,GAAAzG,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA;AAAAiH,MAAAA;AAAA,EAAAjH,EAAAsG,EAAAA,MAAAA,KAAAtG,UAAA+G,KAGAE,MAAEX,KAAe,gBAAAvF,EAAAuF,GAAA,EAAU,GAAKS,GAAY,GAAA/G,QAAAsG,GAAAtG,QAAA+G,GAAA/G,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAAAkH,MAAAA;AAAA,EAAAlH,EAAAwG,EAAAA,MAAAA,KAAAxG,UAAA+G,KAC5CG,MAAEV,KACD,gBAAAzF,EAAC8F,IACE1G,EAAAA,UAAAA,CAAAA,MACS,gBAAAY,EAAAyF,GAAA,EAAW,GAAKO,GAAc5G,GAAAA,MAE1C,GACDH,QAAAwG,GAAAxG,QAAA+G,GAAA/G,QAAAkH,KAAAA,IAAAlH,EAAA,EAAA;AAAAmH,MAAAA;AAAA,EAAAnH,EAAAqG,EAAAA,MAAAA,KAAArG,UAAA+G,KACAI,MAAEd,KAAc,gBAAAtF,EAAAsF,GAAA,EAAS,GAAKU,GAAY,GAAA/G,QAAAqG,GAAArG,QAAA+G,GAAA/G,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA;AAAAoH,MAAAA;AAAA,EAAApH,EAAAuG,EAAAA,MAAAA,KAAAvG,UAAA+G,KAC1CK,MAAEb,KAAyB,gBAAAxF,EAAAwF,GAAA,EAAoB,GAAKQ,GAAY,GAAA/G,QAAAuG,GAAAvG,QAAA+G,GAAA/G,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AAAAqH,MAAAA;AAAArH,SAAAA,UAAAgG,KAAAhG,EAAAgH,EAAAA,MAAAA,KAAAhH,EAAAiH,EAAAA,MAAAA,KAAAjH,EAAA,EAAA,MAAAkH,KAAAlH,UAAAmH,KAAAnH,EAAA,EAAA,MAAAoH,KAhBnEC,IAAC,gBAAAC,EAAAC,IAAA,EACK,IAAAP,GAIAhB,GAAAA,GAEHiB,UAAAA;AAAAA,IAAAA;AAAAA,IACAC;AAAAA,IAOAC;AAAAA,IACAC;AAAAA,EAAAA,GACH,GAAQpH,QAAAgG,GAAAhG,QAAAgH,GAAAhH,QAAAiH,GAAAjH,QAAAkH,GAAAlH,QAAAmH,GAAAnH,QAAAoH,GAAApH,QAAAqH,KAAAA,IAAArH,EAAA,EAAA,GAjBRqH;AAiBQ;AAIZ,SAAAG,GAAAzH,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAA4B;AAAA,IAAA2F,aAAAA;AAAAA,IAAApB,QAAAA;AAAAA,IAAAkB,SAAAA;AAAAA,IAAAxF,UAAAA;AAAAA,IAAA+F,gBAAAA;AAAAA,EAAAA,IAAAlG,GAc1B0H,IAAoB/B,IAAU,WAAW,YACzCgC,IACElD,GAAMlD,UAAYmG,CAAW,KAAArG,EAAAC,OAAAC,QACKmG,CAAW,GAMvCrH,IAAAwF,GAAWd;AAActE,MAAAA;AAAA,EAAAR,EAAA0F,CAAAA,MAAAA,KAAA1F,SAAAiG,KAKlBzF,IAAAA,MAAMyF,EAAc,CAAEP,CAAO,GAAC1F,OAAA0F,GAAA1F,OAAAiG,GAAAjG,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA+E,MAAAA;AAAA,EAAA/E,EAAA,CAAA,MAAA0H,KAAA1H,EAAAE,CAAAA,MAAAA,KAAAF,EAAA0F,CAAAA,MAAAA,KAAA1F,SAAAQ,KAHzCuE,IAAC,gBAAAhE,EAAA4G,IAAA,EACO,OAAA,UACF,IAAApF,EAAAL,QAAAI,MACK,SAAA9B,GACGkH,iBACFhC,0BAGZ,GAAe1F,OAAA0H,GAAA1H,OAAAE,GAAAF,OAAA0F,GAAA1F,OAAAQ,GAAAR,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA;AAAAgF,MAAAA;AAAAhF,SAAAA,EAAA0H,CAAAA,MAAAA,KAAA1H,SAAAI,KAAAJ,EAAA,EAAA,MAAA+E,2BAbhBjF,MACQ4H,OAAAA,GACG,WAAA,SAAO,GACbtH,GAEJ2E,UASFA,EAAA,CAAA,GAAU/E,OAAA0H,GAAA1H,OAAAI,GAAAJ,QAAA+E,GAAA/E,QAAAgF,KAAAA,IAAAhF,EAAA,EAAA,GAdVgF;AAcU;AAId,SAAS6B,GAAQ;AAAA,EACfe,cAAc;AAAA,IAAEC,MAAAA,sBAAQC,IAAgB,EAAA;AAAA,IAAErB,IAAAA;AAAAA,EAAAA,IAAO,CAAC;AAAA,EAClDsB,WAAAA;AAAAA,EACA7H,UAAAA;AAQF,GAAG;AACD,QAAM,CAAC8H,GAAUC,CAAW,IAAIC,GAA6B,IAAI,GAE3DC,IAAOC,EAAQJ,GAEfK,IAAeA,CAACC,MAAyC;AAC7DL,IAAAA,EAAYK,EAAMC,aAAa;AAAA,EACjC,GAEMC,IAAcA,MAAM;AACxBP,IAAAA,EAAY,IAAI;AAAA,EAClB;AAEA,SAEI,gBAAAX,EAAAmB,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAA1H,EAAC2H,MACC,IAAI;AAAA,MACF,GAAGnG,EAAOpE,QAAQmE;AAAAA,MAClB,GAAGmE;AAAAA,IACL,GACA,SAAS4B,GAERR,UACHA,EAAA,CAAA;AAAA,IACA,gBAAA9G,EAAC4H,MACC,IAAG,cACH,UAAAX,GACA,MAAAG,GACA,SAASK,GACT,eAAe;AAAA,MACb,mBAAmB;AAAA,MACnB/B,IAAIlE,EAAOpE,QAAQgF;AAAAA,IAAAA,GAEjB4E,GAAAA,GAEJ,UAAA,gBAAAhH,EAAC,SACEb,UAASA,EAAA;AAAA,MACR0I,SAASJ;AAAAA,IACV,CAAA,EACH,CAAA,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;AAEA,SAAAK,GAAA9I,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAAkB;AAAA,IAAA6I,MAAAA;AAAAA,IAAAtE,QAAAA;AAAAA,IAAAtE,UAAAA;AAAAA,EAAAA,IAAAH;AASZ+I,MAAAA,EAAIC,UAAY;AAAA,WAAA;AAIpB,QAAAC,IAAkBxE,GAAM9C,MAAArB,SAAAe,EAAAjD,QAAAuD,KAAArB;AAAsDD,MAAAA;AAAAJ,EAAAA,SAAAgJ,KAI1E5I,IAAA,gBAAAW,EAACkI,GACS,EAAA,SAAA,aACF,OAAA,kBACF,IAAA1G,EAAApE,QAAAkC,OAEK,UACX2I,EAAA,CAAA,GAAahJ,OAAAgJ,GAAAhJ,OAAAI,KAAAA,IAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAA,SAAAR,EAAAE,CAAAA,MAAAA,KAAAF,SAAAI,KAPfI,IACEJ,gBAAAA,EAAAA,GAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA;KAOS,GACRJ,OAAAE,GAAAF,OAAAI,GAAAJ,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GATHQ;AASG;AAIP,SAAS0I,GAAY;AAAA,EACnBJ,MAAAA;AAAAA,EACA/C,cAAAA;AAAAA,EACAvB,QAAAA;AAAAA,EACA0B,cAAAA;AAAAA,EACA0C,SAAAA;AAMF,GAAG;AACKO,QAAAA,IAAcA,CAClBC,GACA3L,MACG;AACH2L,IAAAA,EAAEC,eAAe,GACjBnD,IAAezI,CAAK,GACZmL,EAAA;AAAA,EACV;AAEOE,SAAAA,EAAKQ,IAAK5H,CAASA,MAAA;AAGlB4D,UAAAA,KADJd,GAAQ9C,MAAMvD,WAAWiD,EAAmBjD,QAAQuD,KAAKvD,SACrCuD,EAAKjE,KAAK;AAEhC,6BACG8L,IAEC,EAAA,UAAU,CAAC,CAAC7H,EAAK8H,UACjB,SAAUJ,CAAMD,MAAAA,EAAYC,GAAG1H,EAAKjE,KAAK,GACzC,UAAUiE,EAAKjE,UAAUsI,GAEzB,UAAA;AAAA,MAAA,gBAAAhF,EAAC0I,IAAa,EAAA,IAAIlH,EAAOpE,QAAQ0F,OAC/B,UAAA,gBAAA9C,EAAC2I,IACC,EAAA,UAAA,gBAAA3I,EAACW,EAAK,MAAL,CAAS,CAAA,EACZ,CAAA,GACF;AAAA,MACA,gBAAAX,EAAC4I,MAAcrE,UAAMA,EAAA,CAAA;AAAA,IAAA,EAAA,GAVhB5D,EAAKjE,KAWZ;AAAA,EAAA,CAEH;AACH;AAEA,SAAAmM,GAAA7J,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAAiC;AAAA,IAAA0F,QAAAA;AAAAA,IAAAnB,QAAAA;AAAAA,IAAA2B,iBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,EAAAA,IAAArG;AAUhC,MACK,CAAC4F,GAAMoD,UAAYpD,EAAMoD,UAAY;AAAA,WAAA;AAMzC,QAAAc,IAFmBlE,GAAMmE,KAAAC,EAAA,IAGpBvF,GAAMtC,SAAAC,WAAAZ,UAAAH,EAAAc,QAAAC,UAAAZ,SAENiD,GAAMtC,SAAAC,WAAAX,YAAAJ,EAAAc,QAAAC,UAAAX,UAGXwI,IACExF,GAAMtC,SAAAE,aAAAhB,EAAAc,QAAAE;AAA4DhC,MAAAA;AAAA,EAAAJ,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,KAIhEV,IAAC,gBAAAW,EAAAkJ,IAAA,EAAoB,aAAA,YAAW,UAAO,IAAI,GAAAjK,OAAAI,KAAAA,IAAAJ,EAAA,CAAA;AAAAQ,MAAAA,GAAAuE;AAAA,EAAA/E,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,KAE3BN,IAAA;AAAA,IAAAqH,wBAASqC,IAAmB,EAAA;AAAA,IAAAzD,IAAAlE,EAAApE,QAAA+F;AAAAA,EAAA,GAC/Ba,IAAA;AAAA,IAAAoF,cAAA;AAAA,MAAAC,UAEG;AAAA,MAAQC,YACN;AAAA,IAAO;AAAA,IAAAC,iBAAA;AAAA,MAAAF,UAGT;AAAA,MAAKC,YACH;AAAA,IAAA;AAAA,EAAO,GAEtBrK,OAAAQ,GAAAR,OAAA+E,MAAAvE,IAAAR,EAAA,CAAA,GAAA+E,IAAA/E,EAAA,CAAA;AAAAgF,MAAAA;AAAA,SAAAhF,EAAA,CAAA,MAAAgK,KAAAhK,EAAAmG,CAAAA,MAAAA,KAAAnG,EAAAoG,CAAAA,MAAAA,KAAApG,SAAA6J,KAbL7E,IACE5E,gBAAAA,EAAAA,GAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,sBACCyG,IACe,EAAA,cAAArG,GACH,WAAAuE,GAWV5E,iBAGK,gBAAAmH,EAAAmB,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAA1H,EAACwI,IACO,EAAA,OAAA,WACG,SAAA,MAAA;AACQ,QAAApD,IAAA,GACfhG,EAAKyI,QAAS;AAAA,MAAA,GAGfiB,UACHA,GAAA;AAAA,wBACCI,IACD,EAAA;AAAA,MAAC,gBAAAlJ,EAAAwI,IAAA,EACO,OAAA,SACG,SAAA,MAAA;AACI,QAAAnD,IAAA,GACXjG,EAAKyI,QAAS;AAAA,MAAC,GAGjB,4BAACK,GAAmB,EAAA,SAAA,SAAc,OAAA,SAClB,YAChB,CAAA,EACF,CAAA;AAAA,IAAA,EAAA,CAAW,EAInB,CAAA;AAAA,EAAA,GAAU,GACTjJ,OAAAgK,GAAAhK,OAAAmG,GAAAnG,OAAAoG,GAAApG,OAAA6J,GAAA7J,OAAAgF,KAAAA,IAAAhF,EAAA,CAAA,GA3CHgF;AA2CG;AAtEP,SAAA+E,GAAAtM,GAAA;AAAA,SAe6CA,EAAKmH;AAAA;AA2DlDa,GAAakB,SAAS,SAAwB;AAAA,EAC5Cd,OAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAH,aAAAA;AAAAA,EACAF,SAAAA;AAAAA,EACAlB,QAAAA;AAAAA,EACAyB,gBAAAA;AAQF,GAAG;AACK6C,QAAAA,IAAOyB,GAAQ,MACZnM,GAAUyH,KAAS,IAAIC,KAAgB,CAAA,CAAE,GAC/C,CAACD,GAAOC,CAAY,CAAC,GAElBuC,IAA4DS,CAAAA,MACzD7C,IAAiB6C,CAAI,GAKxBpH,KAFaqE,IAAeA,MAAiBF,KAAS,CAAA,KAAM,MAGnDE,IAAeyE,OAAOC,KAAK3B,CAAI,EAAE,CAAC,GAG3C4B,IAAoB5B,EAAKpH,CAAI;AAEnC,2BACG8F,IACC,EAAA,aAAA5B,GACA,QAAQpB,GAAQnD,QAChB,SAASqE,KAAW,IACpB,gBAAgB2C,GAEfqC,UAAmBpI,GAAAA,0BAASoI,EAAkB,MAAlB,CAAyB,CAAA,GACxD;AAEJ;AAEAjF,GAAaiB,QAAQ,SAAsB;AAAA,EACzCf,QAAAA;AAAAA,EACAnB,QAAAA;AAAAA,EACAD,WAAAA;AAAAA,EACAG,UAAAA;AAAAA,EACAD,cAAAA;AAAAA,EACAwB,gBAAAA;AAMF,GAAG;AACD,QAAM0E,IAAsDC,CAAYA,OACtE3E,IAAiB,EAAK,GACfvB,IAAWkG,CAAO;AAG3B,SACE,CAAC,CAACjF,GAAQoD,4BACP8B,GAAI,EAAA,IAAItI,EAAOd,KAAKe,WAClBmD,UAAAA,GAAQ2D,IAAK7L,CAAAA,wBACX6G,IAEC,EAAA,OAAA7G,GACA,QAAQ+G,GAAQ/C,MAChB,WAAA8C,GACA,UAAUoG,GACV,cAAc,CAAC1F,GAAI6D,MAASrE,IAAeQ,GAAI6D,CAAI,EAAA,GAL9CrL,EAAMwH,EAK0C,CAExD,GACH;AAGN;AAEAQ,GAAamB,mBAAmBgD;AAEhCnE,GAAaoB,UAAU,SAAwB;AAAA,EAC7ClB,QAAAA;AAAAA,EACAE,OAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAvB,QAAAA;AAAAA,EACA0B,cAAAA;AAAAA,EACA,GAAG/F;AAOgB,GAAG;AAChB2I,QAAAA,IAAOyB,GAAQ,MACZnM,GAAUyH,KAAS,IAAIC,KAAgB,CAAA,CAAE,GAC/C,CAACD,GAAOC,CAAY,CAAC,GAElB;AAAA,IAAE/D,MAAAA;AAAAA,IAAM,GAAG+I;AAAAA,EAAAA,IAAWhC,GAItBpH,KAFaqE,IAAeA,MAAiBF,KAAS,CAAA,KAAM,MAGnDE,IAAeyE,OAAOC,KAAK3B,CAAI,EAAE,CAAC,GAG3CiC,IAAcP,OAAO7E,OAAOmF,CAAM,GAElCE,IAA8DlC,CAAAA,MAC3D5C,IAAe4C,CAAI;AAG5B,SAEI,gBAAAxB,EAAAmB,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAA1H,EAAC8H,MAAS,MAAMkC,GAAa,QAAQvG,GAAQrG,SAC3C,4BAAC+K,IACC,EAAA,GAAI/I,GACJ,QAAQqE,GAAQrG,SAChB,MAAM4M,GACN,cAAcrJ,GACd,cAAcsJ,GAAiB,EAEnC,CAAA;AAAA,IACC,CAAC,CAACjJ,KAEC,gBAAAuF,EAAAmB,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAA1H,EAACkJ,IAAO,EAAA;AAAA,MACR,gBAAAlJ,EAACmI,SACK/I,GACJ,QAAQqE,GAAQrG,SAChB,MAAM,CACJ;AAAA,QACE,GAAG4D;AAAAA,QACHyH,UAAU,CAAC7D,GAAQoD;AAAAA,MACpB,CAAA,GAEH,cAAcrH,GACd,cAAcsJ,EAAiB,CAAA;AAAA,IAAA,EAEnC,CAAA;AAAA,EAAA,GAEJ;AAEJ;AC1cO,SAASC,GAAmB;AAAA,EACjCvF,SAAAA;AAAAA,EACAC,QAAAA,IAAS,CAAE;AAAA,EACXpB,WAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAqB,OAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAmF,UAAU;AAAA,IAAEzE,IAAAA;AAAAA,IAAI,GAAGyE;AAAAA,EAAAA,IAAa,CAAC;AAAA,EACjCzG,cAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAwB,cAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,aAAAA;AAC8B,GAAgB;AACxC0C,QAAAA,IAAOyB,GAAQ,MACZnM,GAAUyH,GAAOC,CAAY,GACnC,CAACD,GAAOC,CAAY,CAAC,GAElB;AAAA,IAAE/D,MAAAA;AAAAA,IAAM,GAAG+I;AAAAA,EAAAA,IAAWhC,GAEtB6B,IAAsDC,CAAYA,MAC/DlG,EAASkG,CAAO,GAGnBzB,IAAcA,CAClBgC,GACAzJ,MACG;AACHyJ,IAAAA,EAAI9B,eAAe,GACnBnD,IAAexE,CAAI;AAAA,EACrB,GAIMA,KAFcqE,KAAgB,OAAOF,IAG5BE,IAAeyE,OAAOC,KAAK3B,CAAI,EAAE,CAAC,GAG3C4B,IAAoBhF,IAAUoD,EAAKpH,CAAI,IAAI,MAE3CqJ,IAAcP,OAAO7E,OAAOmF,CAAM;AAGtC,SAAA,gBAAAxD,EAACuD,KACC,IAAI;AAAA,IACF,GAAGtI,EAAOC;AAAAA,IACV,GAAGiE;AAAAA,EAEDyE,GAAAA,GAAAA,GACJ,WAAU,UAEV,UAAA;AAAA,IAAC,gBAAAnK,EAAA8H,IAAA,EAAS,MAAMkC,GAAa,QAAQvG,GAAQrG,SAC3C,UAAA,gBAAAmJ,EAAC8D,MACC,OAAOV,GAAmBjN,OAC1B,WAAS,IACT,WAAU,UACV,IAAI8E,EAAOpE,QAAQgF,MACnB,UAAUgG,GAEV,UAAA;AAAA,MAAA,gBAAApI,EAACmI,IAAY,EAAA,QAAQ1E,GAAQrG,SAAS,MAAM4M,GAAY;AAAA,MACvD,CAAC,CAAChJ,KAEC,gBAAAuF,EAAAmB,GAAA,EAAA,UAAA;AAAA,QAAC,gBAAA1H,EAAAkJ,IAAA,EAAQ,aAAY,WAAU,CAAA;AAAA,0BAC9Bf,IACC,EAAA,QAAQ1E,GAAQrG,SAChB,MAAM,CACJ;AAAA,UACE,GAAG4D;AAAAA,UACHyH,UAAU,CAAC7D,EAAOoD;AAAAA,QAAAA,CACnB,EACD,CAAA;AAAA,MAAA,EAEN,CAAA;AAAA,IAAA,EAAA,CAEJ,EACF,CAAA;AAAA,IACA,gBAAAhI,EAACkJ,IAAQ,EAAA,UAAQ,GAAA,CAAA;AAAA,IACjB,gBAAAlJ,EAACsK,MAAO,WAAW,CAAC,CAAC1F,EAAOoD,QAAQ,QAAQvE,GAAQxC,QAAO;AAAA,IAC1D,CAAC,CAAC2D,EAAOoD,UACP,gBAAAhI,EAAA8J,GAAA,EAAI,IAAItI,EAAOd,KAAKe,WAAW,WAAU,UACvCmD,UAAO2D,EAAAA,IAAK7L,CACXA,MAAA,gBAAAsD,EAACuD,IAEC,EAAA,OAAA7G,GACA,QAAQ+G,GAAQ/C,MAChB,WAAA8C,GACA,UAAUoG,GACV,cAAAlG,EALKhH,GAAAA,EAAMwH,EAKgB,CAE9B,EACH,CAAA;AAAA,sBAEDqG,IACC,EAAA,QAAA3F,GACA,QAAQnB,GAAQtC,SAChB,iBAAAiE,GACA,aAAAC,EAAyB,CAAA;AAAA,EAAA,GAE7B;AAEJ;AAEA,SAAAyC,GAAA9I,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAAkB;AAAA,IAAA6I,MAAAA;AAAAA,IAAAtE,QAAAA;AAAAA,IAAAtE,UAAAA;AAAAA,EAAAA,IAAAH;AASZ+I,MAAAA,EAAIC,UAAY;AAAA,WAAA;AAIpB,QAAAC,IAAkBxE,GAAM9C,MAAArB,SAAAe,EAAAjD,QAAAuD,KAAArB;AAAsDD,MAAAA;AAAAJ,EAAAA,SAAAgJ,KAI1E5I,IAAC,gBAAAW,EAAAkI,GAAA,EACS,SAAA,aACF,OAAA,kBACF,IAAA1G,EAAApE,QAAAkC,OACM,WAAA,UAET2I,UACHA,GAAA,GAAahJ,OAAAgJ,GAAAhJ,OAAAI,KAAAA,IAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAA,SAAAR,EAAAE,CAAAA,MAAAA,KAAAF,SAAAI,KARfI,IACEJ,gBAAAA,EAAAA,GAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA;KAQS,GACRJ,OAAAE,GAAAF,OAAAI,GAAAJ,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAVHQ;AAUG;AAIP,SAAS0I,GAAY;AAAA,EACnBJ,MAAAA;AAAAA,EACAtE,QAAAA;AAKF,GAAG;AACMsE,SAAAA,EAAKQ,IAAK5H,CAASA,MAAA;AAGlB4D,UAAAA,KADJd,GAAQ9C,MAAMvD,WAAWiD,EAAmBjD,QAAQuD,KAAKvD,SACrCuD,EAAKjE,KAAK;AAEhC,WACG,gBAAAsD,EAAAjB,IAAA,EAAyB,OAAOwF,GAAO,WAAU,UAChD,UAAC,gBAAAvE,EAAA4G,IAAA,EACC,UAAU,CAAC,CAACjG,EAAK8H,UACjB,OAAO9H,EAAKjE,OACZ,cAAYiE,EAAKjE,OAEjB,UAAA,gBAAAsD,EAAC2I,IACC,EAAA,UAAA,gBAAA3I,EAACW,EAAK,MAAL,CAAA,CAAS,EACZ,CAAA,EACF,CAAA,EAAA,GATYA,EAAKjE,KAUnB;AAAA,EAAA,CAEH;AACH;AAEA,SAAA4N,GAAAtL,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAAgB;AAAA,IAAAsL,WAAAA;AAAAA,IAAA/G,QAAAA;AAAAA,EAAAA,IAAAzE;AAMf,MACKwL;AAAS,WAAA;AAIb,QAAAlL,IAAcmE,GAAMnE,SAAAe,EAAAY,OAAA3B,OACpB4B,IACEuC,GAAMvC,eAAAb,EAAAY,OAAAC;AAAsD7B,MAAAA;AAAAJ,EAAAA,SAAAK,KAI1DD,sBAAC6I,GAAmB,EAAA,SAAA,SAAc,OAAA,iBAC/B5I,UACHA,GAAA,GAAaL,OAAAK,GAAAL,OAAAI,KAAAA,IAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,EAAAA,SAAAiC,KACbzB,sBAACyI,GAAmB,EAAA,SAAA,SAAc,OAAA,iBAC/BhH,UACHA,GAAA,GAAajC,OAAAiC,GAAAjC,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA+E,MAAAA;AAAA,SAAA/E,EAAAI,CAAAA,MAAAA,KAAAJ,SAAAQ,KANfuE,IACE3E,gBAAAA,EAAAA,GAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAGAI;AAAAA,EAAAA,GAEa,GACZR,OAAAI,GAAAJ,OAAAQ,GAAAR,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA,GAPH+E;AAOG;AAIP,SAAAuG,GAAAvL,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAAiB;AAAA,IAAA0F,QAAAA;AAAAA,IAAAnB,QAAAA;AAAAA,IAAA2B,iBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,EAAAA,IAAArG;AAWX4F,MAAAA,EAAMoD,UAAY;AAAA,WAAA;AAMtB,QAAAc,IAFmBlE,EAAMmE,KAAAC,EAA8B,IAGlDvF,GAAMrC,WAAAZ,UAAAH,EAAAc,QAAAC,UAAAZ,SACNiD,GAAMrC,WAAAX,YAAAJ,EAAAc,QAAAC,UAAAX,UAGXwI,IACExF,GAAMpC,aAAAhB,EAAAc,QAAAE;AAAmDhC,MAAAA;AAAAJ,EAAAA,SAAAmG,KAItB/F,IAAAA,MAAM+F,EAAgB,GAACnG,OAAAmG,GAAAnG,OAAAI,KAAAA,IAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAA,EAAAR,EAAAI,CAAAA,MAAAA,KAAAJ,SAAA6J,KAAxDrJ,sBAACgL,IAAa,EAAA,OAAA,WAAmB,SAAApL,aAEjCyJ,GAAA,GAAS7J,OAAAI,GAAAJ,OAAA6J,GAAA7J,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA+E,MAAAA;AAAA/E,EAAAA,SAAAoG,KACsBrB,IAAAA,MAAMqB,EAAY,GAACpG,OAAAoG,GAAApG,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA;AAAAgF,MAAAA;AAAA,EAAAhF,EAAAgK,CAAAA,MAAAA,KAAAhK,SAAA+E,KAAlDC,sBAACwG,IAAa,EAAA,OAAA,SAAiB,SAAAzG,aAE/BiF,GAAA,GAAShK,OAAAgK,GAAAhK,OAAA+E,GAAA/E,OAAAgF,KAAAA,IAAAhF,EAAA,CAAA;AAAAkF,MAAAA;AAAA,SAAAlF,EAAAQ,EAAAA,MAAAA,KAAAR,UAAAgF,KANXE,sBAAC2F,GACCrK,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAGAwE;AAAAA,EAAAA,GAGF,GAAMhF,QAAAQ,GAAAR,QAAAgF,GAAAhF,QAAAkF,KAAAA,IAAAlF,EAAA,EAAA,GAPNkF;AAOM;AAjCV,SAAA6E,GAAAtM,GAAA;AAAA,SAe4CA,EAAKmH;AAAA;AChO1C,SAAA6G,GAAAtL,GAAA;AAAAH,QAAAA,IAAAC,EAAA,CAAA;AAAAF,MAAAA;AAAA,EAAAC,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,KAQDf,IAAA,gBAAAgB,EAAA,QAAA,EACO,MAAA,gBACH,GAAA,sRACF,GAAAf,OAAAD,KAAAA,IAAAC,EAAA,CAAA;AAAAI,MAAAA;AAAAJ,SAAAA,SAAAG,KATJC,IAAA,gBAAAW,EAAA,OACQ,EAAA,OAAA,8BACE,SAAA,aACH,MAAA,mBACDZ,GAEJJ,UAIFA,EAAA,CAAA,GAAMC,OAAAG,GAAAH,OAAAI,KAAAA,IAAAJ,EAAA,CAAA,GAVNI;AAUM;AAIH,SAAAsL,GAAAvL,GAAA;AAAAH,QAAAA,IAAAC,EAAA,CAAA;AAAAF,MAAAA;AAAA,EAAAC,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,qCASM,MAAA,gBACI,UAAA,WACP,GAAA,8HACO,UAAA,UACT,CAAA,GAAAd,OAAAD,KAAAA,IAAAC,EAAA,CAAA;AAAAI,MAAAA;AAAAJ,SAAAA,SAAAG,KAXJC,IAAA,gBAAAW,EAAA,OACO,EAAA,MAAA,QACC,OAAA,8BACE,SAAA,gBACJZ,GAEJJ,UAMFA,EAAA,CAAA,GAAMC,OAAAG,GAAAH,OAAAI,KAAAA,IAAAJ,EAAA,CAAA,GAZNI;AAYM;AAIH,SAAAuL,GAAAxL,GAAA;AAAAH,QAAAA,IAAAC,EAAA,CAAA;AAAAF,MAAAA,GAAAK;AAAA,EAAAJ,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,qCAIM,MAAA,gBACI,UAAA,WACP,GAAA,oDACO,UAAA,UACT,CAAA,mCAEK,MAAA,WACI,UAAA,WACP,GAAA,wHACO,UAAA,UACT,CAAA,GAAAd,OAAAD,GAAAC,OAAAI,MAAAL,IAAAC,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,SAAAA,SAAAG,KAZJK,6BAAW,EAAA,OAAA,8BAAqC,SAAA,gBAAgBL,GAC9DJ,UAAAA;AAAAA,IAAAA;AAAAA,IAMAK;AAAAA,EAAAA,GAMF,GAAMJ,OAAAG,GAAAH,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAbNQ;AAaM;AC1CH,MAAMoL,KAET;AAAA,EACFvK,QAAQ;AAAA,IACNC,SAAS;AAAA,MACPC,QAAQ;AAAA,MACRC,UAAU;AAAA,IAAA;AAAA,EAEd;AAAA,EACAC,MAAM;AAAA,IACJH,SAAS;AAAA,MACPC,QAAQ;AAAA,MACRC,UAAU;AAAA,IAAA;AAAA,EAEd;AAAA,EACArD,SAAS;AAAA,IACPuD,MAAM;AAAA,MACJrB,OAAO;AAAA,MACPlC,SAAS;AAAA,QACP0N,UAAU;AAAA,QACVC,QAAQ;AAAA,QACRC,MAAM;AAAA,MAAA;AAAA,IAEV;AAAA,IACAC,OAAO;AAAA,MACL3L,OAAO;AAAA,MACP4L,OAAO;AAAA,QACL5L,OAAO;AAAA,QACP6L,UAAU;AAAA,QACVC,OAAO;AAAA,QACPhO,SAAS;AAAA,UACPiO,QAAQ;AAAA,YACN/L,OAAO;AAAA,YACPlC,SAAS;AAAA,cACP,QAAQ;AAAA,cACRkO,WAAW;AAAA,cACXC,OAAO;AAAA,cACPC,YAAY;AAAA,cACZC,WAAW;AAAA,YAAA;AAAA,UAEf;AAAA,UACAC,UAAU;AAAA,YACRpM,OAAO;AAAA,YACPlC,SAAS;AAAA,cACP,SAAS;AAAA,cACTuO,MAAM;AAAA,cACNC,MAAM;AAAA,cACNC,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ,GAEaC,KACX;AAAA,EACE,QAAQ;AAAA,IACNC,OAAO;AAAA,EACT;AAAA,EACAT,WAAW;AAAA,IACTS,OAAO;AAAA,EACT;AAAA,EACAR,OAAO;AAAA,IACLQ,OAAO;AAAA,EACT;AAAA,EACAP,YAAY;AAAA,IACVO,OAAO;AAAA,EACT;AAAA,EACAN,WAAW;AAAA,IACTM,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACPA,OAAO;AAAA,EACT;AAAA,EACAJ,MAAM;AAAA,IACJI,OAAO;AAAA,EACT;AAAA,EACAF,MAAM;AAAA,IACJE,OAAO;AAAA,EACT;AAAA,EACAH,MAAM;AAAA,IACJG,OAAO;AAAA,EAAA;AAEX,GAEWC,KACX;AAAA,EACElB,UAAU;AAAA,IACRvJ,wBAAOmJ,IAAS,CAAA,CAAA;AAAA,EAClB;AAAA,EACAK,QAAQ;AAAA,IACNxJ,wBAAOoJ,IAAU,CAAA,CAAA;AAAA,EACnB;AAAA,EACAK,MAAM;AAAA,IACJzJ,wBAAOqJ,IAAQ,CAAA,CAAA;AAAA,EAAA;AAEnB,GCxGWpJ,IAAS;AAAA,EACpBC,WAAW;AAAA,IACTC,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,YAAY;AAAA,IACZC,gBAAgB;AAAA,IAChBE,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAC/BF,UAAU;AAAA,EACZ;AAAA,EACAX,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,EAEJ;AAAA,EACA/E,SAAS;AAAA,IACPgF,MAAM;AAAA,MACJ6J,WAAWA,CAAC;AAAA,QAAEjK,SAAAA;AAAAA,MAAQ,MAAMA,EAAQ,CAAC;AAAA,IACvC;AAAA,IACAT,MAAM;AAAA,MACJU,OAAOA,CAAC;AAAA,QAAED,SAAAA;AAAAA,MAAQ,MAAMA,EAAQ,CAAC;AAAA,IACnC;AAAA,IACA1C,OAAO;AAAA,MACLsD,UAAUA,CAAC;AAAA,QAAEZ,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MACpCkK,UAAUA,CAAC;AAAA,QAAElK,SAAAA;AAAAA,MAAQ,MAAMA,EAAQ,GAAG;AAAA,IACxC;AAAA,IACAc,OAAO;AAAA,MACLC,OAAOA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQC,KAAKC;AAAAA,IACvC;AAAA,IACAiJ,KAAK;AAAA,MACHhK,cAAcA,CAAC;AAAA,QAAEH,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,IAAI;AAAA,MAC3CoK,QAAQ;AAAA,MACRC,aAAaA,CAAC;AAAA,QAAErJ,SAAAA;AAAAA,MAAAA,MAAcA,EAAQE,QAAQoJ;AAAAA,MAC9C1J,UAAUA,CAAC;AAAA,QAAEZ,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,GAAG;AAAA,MACtCe,OAAOA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQE,QAAQoJ;AAAAA,MACxC/J,iBAAiBA,CAAC;AAAA,QAAES,SAAAA;AAAAA,MAAcuJ,MAAAA,GAAMvJ,EAAQE,QAAQoJ,MAAM,IAAI;AAAA,IACpE;AAAA,IACApB,OAAO;AAAA,MACLsB,QAAQ;AAAA,QACNlK,WAAW;AAAA,QACXC,iBAAiB;AAAA,QACjBkK,SAASA,CAAC;AAAA,UAAEzK,SAAAA;AAAAA,QAAAA,MAAcA,EAAQ,GAAG;AAAA,QACrCiK,WAAWA,CAAC;AAAA,UAAEjK,SAAAA;AAAAA,QAAAA,MAAcA,EAAQ,CAAC;AAAA,QACrCW,cAAcA,CAAC;AAAA,UAAEX,SAAAA;AAAAA,QAAAA,MAAcA,EAAQ,CAAC;AAAA,QACxC,iCAAiC0K,CAAC;AAAA,UAAEC,YAAAA;AAAAA,QAAAA,OACjC;AAAA,UACC,GAAGA,EAAWC;AAAAA,UACdC,YAAY;AAAA,UACZrK,QAAQ;AAAA,UACR,yCAAyC;AAAA,YACvCC,YAAY;AAAA,UAAA;AAAA,QAEhB;AAAA,MACJ;AAAA,MACA0I,UAAUA,CAAC;AAAA,QAAEwB,YAAAA;AAAAA,QAAY3J,SAAAA;AAAAA,MAAAA,OACtB;AAAA,QACC,GAAG2J,EAAWG;AAAAA,QACd/J,OAAOC,EAAQC,KAAK8J;AAAAA,MAAAA;AAAAA,MAExBC,cAAc;AAAA,QACZvK,YAAYA,CAAC;AAAA,UAAET,SAAAA;AAAAA,QAAAA,MAAcA,EAAQ,CAAC;AAAA,QACtC,uBAAuBiL,CAAC;AAAA,UAAEN,YAAAA;AAAAA,QAAAA,OACvB;AAAA,UACC,GAAGA,EAAWG;AAAAA,QAChB;AAAA,MACJ;AAAA,MACAxN,OAAO;AAAA,QACLoC,SAAS;AAAA,QACTG,gBAAgB;AAAA,QAChBD,YAAY;AAAA,QACZ6K,SAASA,CAAC;AAAA,UAAEzK,SAAAA;AAAAA,QAAQ,MAAMA,EAAQ,CAAC;AAAA,MACrC;AAAA,MACAkL,SAAS;AAAA,QACPtK,UAAUA,CAAC;AAAA,UAAEZ,SAAAA;AAAAA,QAAAA,MAAcA,EAAQ,CAAC;AAAA,QACpCmL,UAAUA,CAAC;AAAA,UAAEnL,SAAAA;AAAAA,QAAQ,MAAMA,EAAQ,EAAE;AAAA,MACvC;AAAA,MACAb,SAAS;AAAA,QACPyB,UAAUA,CAAC;AAAA,UAAEZ,SAAAA;AAAAA,QAAQ,MAAMA,EAAQ,CAAC;AAAA,MAAA;AAAA,IACtC;AAAA,EACF;AAUJ;AC7CO,SAAAoL,GAAApO,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAA4B;AAAA,IAAAyF,SAAAA;AAAAA,IAAAE,aAAAA;AAAAA,IAAApB,QAAApE;AAAAA,IAAAyF,OAAAA;AAAAA,IAAAC,cAAAtF;AAAAA,IAAA4N,cAAArJ;AAAAA,IAAAgB,cAAAA;AAAAA,IAAAC,YAAAhB;AAAAA,IAAAgH,OAAAA;AAAAA,IAAAqC,cAAAA;AAAAA,IAAApI,gBAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAoI,cAAAA;AAAAA,EAAAA,IAAAvO,GAGjCyE,IAAApE,MAAyCG,SAAAqL,KAAzCxL,GAEA0F,IAAAtF,MAAsDD,SAAAwM,KAAtDvM,GACA4N,IAAArJ,MAAsDxE,SAAAsM,KAAtD9H;AAAsDG,MAAAA;AAAAlF,EAAAA,SAAAgF,KAE1CA,IAAAA,MAA0BzE,cAA1ByE,GAA0BhF,OAAAgF,GAAAhF,OAAAkF,KAAAA,IAAAlF,EAAA,CAAA;AAAAgG,MAAAA,GAAAS;AAAAzG,EAAAA,SAAAkF,KAA1B;AAAA,IAAAuB,IAAAA;AAAAA,IAAA,GAAAT;AAAAA,EAAAA,IAAAd,GAA0BlF,OAAAkF,GAAAlF,OAAAgG,GAAAhG,OAAAyG,MAAAT,IAAAhG,EAAA,CAAA,GAAAyG,IAAAzG,EAAA,CAAA;AAAAmF,MAAAA;AAAAnF,EAAAA,SAAAiG,KAOiCd,IAAA2D,CAG9D7C,MAAAA,EAAc,CAAA,CAAG6C,CAAI,GAC7B9I,OAAAiG,GAAAjG,OAAAmF,KAAAA,IAAAnF,EAAA,CAAA;AAJD,QAAAqI,IAAuElD;AAItEE,MAAAA,GAAAG;AAAA,EAAAxF,EAAA6F,CAAAA,MAAAA,KAAA7F,SAAA8F,KAGQ1H,IAAAA,GAAUyH,GAAOC,CAAY,GAAC9F,OAAA6F,GAAA7F,OAAA8F,GAAA9F,OAAAwF,KAAAA,IAAAxF,EAAA,CAAA,GAA9BwF,IAAAA;AADT,QAAA+I,IAAalJ,GAIbmJ,KAAoBzI,KAAgB,OAAO+C;AAAIhC,MAAAA;AAAA9G,EAAAA,EAAAuO,EAAAA,MAAAA,KAAAvO,UAAAwO,KAAAxO,EAAA,EAAA,MAAA+F,KAG7Ce,IAAA0H,IAAazI,IAAeyE,OAAAC,KAAY3B,CAAI,EAAI,CAAA,GAAA9I,QAAAuO,GAAAvO,QAAAwO,GAAAxO,QAAA+F,GAAA/F,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AADlD,QAAA0B,IACEoF,GAGF4D,IAA0B5B,EAAKpH,CAAI;AAACsF,MAAAA;AAGlCyH,QAAAA,IAAezC,EAAMtK,CAAI;AAACuF,MAAAA;AAAAjH,EAAAA,EAAA0B,EAAAA,MAAAA,KAAA1B,UAAAyO,KAAAzO,EAAA,EAAA,MAAAgM,KAExB/E,IAAAuD,OAAAC,KAAYuB,CAAK,EAACjD,UAAY,IAAGiD,IAAK;AAAA,IAAA,CAAMtK,CAAI,GAAG+M,EAAMC,MAAW,GAAA,CAAA;AAAA,EAAC,GAAE1O,QAAA0B,GAAA1B,QAAAyO,GAAAzO,QAAAgM,GAAAhM,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAClEkH,QAAAA,IADLD,EACavF,CAAI;AAACyF,MAAAA;AAAA,MAAAnH,EAAAkH,EAAAA,MAAAA,KAAAlH,UAAAoO,GAAA;AAAAhH,QAAAA;AAAApH,IAAAA,UAAAoO,KAAKhH,IAAAuH,CAAAA,QAAA;AAAA,MAAA,GAElBA;AAAAA,MAAI,GACJP,EAAaO,GAAIlR,KAAA;AAAA,IAAA,IAEvBuC,QAAAoO,GAAApO,QAAAoH,KAAAA,IAAApH,EAAA,EAAA,GALMkH,IAAAA,EAAaoC,IAAKlC,CAKxB,GAACpH,QAAAkH,GAAAlH,QAAAoO,GAAApO,QAAAmH;AAAAA,EAAAA;AAAAA,IAAAA,IAAAnH,EAAA,EAAA;AALKmH,EAAAA,IAAAA;AAJT,QAAAyH,IAAe5H;AAUgBI,MAAAA;AAAApH,EAAAA,UAAAyG,KAIvBW,IAAA;AAAA,IAAA,GAAA7E,EAAAC;AAAAA,IAAA,GAECiE;AAAAA,EAAE,GACNzG,QAAAyG,GAAAzG,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AAMW,QAAAqH,IAAA7C,GAAMnD,QAIbwN,KAAAnE,GAAiBpI;AAAMwM,MAAAA;AAAA,EAAA9O,EAAA4F,EAAAA,MAAAA,KAAA5F,EAAA,EAAA,MAAA0F,KAAA1F,EAAAqI,EAAAA,MAAAA,KAAArI,EAAA,EAAA,MAAAqH,KAAArH,UAAA6O,MANzBC,IAAA,gBAAA/N,EAAAgO,MACcnJ,aAAAA,GACL,QAAAyB,GACC3B,SAAAA,GACO2C,gBAAAA,GAEfwG,UACHA,GAAA,CAAA,GAA2B7O,QAAA4F,GAAA5F,QAAA0F,GAAA1F,QAAAqI,GAAArI,QAAAqH,GAAArH,QAAA6O,IAAA7O,QAAA8O,KAAAA,IAAA9O,EAAA,EAAA;AAEjB,QAAAgP,KAAAxK,GAAMrG;AAAS8Q,MAAAA;AAAAjP,EAAAA,EAAA4O,EAAAA,MAAAA,KAAA5O,EAAAuO,EAAAA,MAAAA,KAAAvO,EAAA0B,EAAAA,MAAAA,KAAA1B,UAAAkG,KAAAlG,EAAA,EAAA,MAAAsO,KAAAtO,EAAA,EAAA,MAAAgP,MAAAhP,EAAA,EAAA,MAAAqO,KADzBY,IAAC,gBAAAlO,EAAA8F,IAAA,EACS,QAAAmI,IACDlG,OAAGyF,GACI7M,iBACPkN,UACOP,cAAAA,GACAnI,cAAAA,GACAoI,cAAAA,GACd,GAAAtO,QAAA4O,GAAA5O,QAAAuO,GAAAvO,QAAA0B,GAAA1B,QAAAkG,GAAAlG,QAAAsO,GAAAtO,QAAAgP,IAAAhP,QAAAqO,GAAArO,QAAAiP,KAAAA,IAAAjP,EAAA,EAAA;AAAAkP,MAAAA;AAAA,EAAAlP,EAAA8O,EAAAA,MAAAA,KAAA9O,UAAAiP,KAjBJC,sBAACrE,GACCiE,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAQAG;AAAAA,EAAAA,GASF,GAAMjP,QAAA8O,GAAA9O,QAAAiP,GAAAjP,QAAAkP,KAAAA,IAAAlP,EAAA,EAAA;AAAAmP,MAAAA;AAAAnP,SAAAA,EAAAgG,EAAAA,MAAAA,KAAAhG,UAAAoH,KAAApH,EAAA,EAAA,MAAAkP,KAzBRC,sBAAC5H,IACK,EAAA,IAAAH,GAIApB,GAAAA,GAEJkJ,UAmBFA,GAAA,GAAQlP,QAAAgG,GAAAhG,QAAAoH,GAAApH,QAAAkP,GAAAlP,QAAAmP,KAAAA,IAAAnP,EAAA,EAAA,GA1BRmP;AA0BQ;AAIZ,SAAAJ,GAAAhP,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAAkC;AAAA,IAAA2F,aAAAA;AAAAA,IAAApB,QAAAA;AAAAA,IAAAkB,SAAAA;AAAAA,IAAAxF,UAAAA;AAAAA,IAAA+F,gBAAAA;AAAAA,EAAAA,IAAAlG,GAiBhC0H,IAAoB/B,IAAU,WAAW,YACzCgC,IACElD,GAAMlD,UAAYmG,CAAW,KAAAmE,GAAAvK,OAAAC,QACmBmG,CAAW,GAMrDrH,IAAAwF,GAAWd;AAActE,MAAAA;AAAA,EAAAR,EAAA0F,CAAAA,MAAAA,KAAA1F,SAAAiG,KAKlBzF,IAAAA,MAAMyF,EAAc,CAAEP,CAAO,GAAC1F,OAAA0F,GAAA1F,OAAAiG,GAAAjG,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA+E,MAAAA;AAAA,EAAA/E,EAAA,CAAA,MAAA0H,KAAA1H,EAAAE,CAAAA,MAAAA,KAAAF,EAAA0F,CAAAA,MAAAA,KAAA1F,SAAAQ,KAHzCuE,IAAC,gBAAAhE,EAAA4G,IAAA,EACO,OAAA,UACF,IAAApF,EAAAL,QAAAI,MACK,SAAA9B,GACGkH,iBACFhC,0BAGZ,GAAe1F,OAAA0H,GAAA1H,OAAAE,GAAAF,OAAA0F,GAAA1F,OAAAQ,GAAAR,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA;AAAAgF,MAAAA;AAAAhF,SAAAA,EAAA0H,CAAAA,MAAAA,KAAA1H,SAAAI,KAAAJ,EAAA,EAAA,MAAA+E,2BAbhBjF,MACQ4H,OAAAA,GACG,WAAA,SAAO,GACbtH,GAEJ2E,UASFA,EAAA,CAAA,GAAU/E,OAAA0H,GAAA1H,OAAAI,GAAAJ,QAAA+E,GAAA/E,QAAAgF,KAAAA,IAAAhF,EAAA,EAAA,GAdVgF;AAcU;AAId,SAAA6B,GAAA9G,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAAiB;AAAA,IAAA4F,OAAAA;AAAAA,IAAAE,cAAAA;AAAAA,IAAAiG,OAAAA;AAAAA,IAAAqC,cAAAA;AAAAA,IAAA7J,QAAAA;AAAAA,IAAA0B,cAAAA;AAAAA,IAAAoI,cAAAA;AAAAA,EAAAA,IAAAvO,GAuBf,CAAAiI,GAAAC,CAAA,IAAgCC,OAAiC,GACjE,CAAAkH,GAAAC,CAAA,IAAkCnH,KAAc;AAACoH,MAAAA,GAAAC,GAAAC,GAAAC,GAAAC,GAAAtP,GAAAI,GAAAuE,GAAAC,GAAAE,GAAAC,GAAAE,GAAAG,GAAAmK,GAAAC,GAAAC;AAAA7P,MAAAA,SAAAgI,KAAAhI,EAAAwE,CAAAA,MAAAA,GAAA9C,MAAAvD,WAAA6B,EAAA,CAAA,MAAAwE,GAAA9C,MAAArB,SAAAL,EAAAwE,CAAAA,MAAAA,GAAAwH,OAAA3L,SAAAL,EAAA+F,CAAAA,MAAAA,KAAA/F,EAAA,CAAA,MAAA6F,KAAA7F,EAAA,CAAA,MAAAkG,KAAAlG,EAAAsO,CAAAA,MAAAA,KAAAtO,SAAAqO,KAAArO,EAAA,CAAA,MAAAgM,GAAA;AAQxCnL,IAAAA,IAAAA,OAAAC,iCAAG;AAAC,IAAAgP,GAAA;AANbC,YAAAA,IAAuBvF,OAAA7E,OAAcE,CAAK;AAACiB,UAAAA;AAG6B,UAH7B9G,UAAAgM,KACpBlF,IAAA0D,OAAA7E,OAAcqG,CAAK,GAAChM,QAAAgM,GAAAhM,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA,GAApB8G,IAAAA,GAEiD,EAAtDiJ,EAAchH,cAAe8G,EAAc9G,SAAW,IAE1D;AACL,QAAAvD,IAAA;AAAIsK,cAAAA;AAAAA,MAAAA;AAGb3H,YAAAA,IAAaC,EAAQJ;AAAShB,UAAAA;AAAA,MAAAhH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAETkG,IAAAsB,CAAAA,MAAA;AACnBL,QAAAA,EAAYK,EAAKC,aAAc;AAAA,MAAC,GACjCvI,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA;AAFD,YAAAqI,KAAqBrB;AAEpBC,UAAAA;AAAA,MAAAjH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAEmBmG,IAAAA,MAAA;AAClBgB,QAAAA,MAAgB;AAAA,MAAC,GAClBjI,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAFD,YAAAwI,KAAoBvB;AAEnBC,UAAAA;AAAAlH,MAAAA,UAAAkG,KAEmBgB,IAAAA,CAAAkC,GAAA1H,OAAA;AAIlB0H,QAAAA,EAACC,eAAgB,GACjBnD,EAAaxE,GAAIjE,KAAM,GACX+K,GAAA;AAAA,MAAC,GACdxI,QAAAkG,GAAAlG,QAAAkH,KAAAA,IAAAlH,EAAA,EAAA;AAPD,YAAAmJ,IAAoBjC;AAOnBC,UAAAA;AAAA,MAAAnH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAEuBqG,IAAAA,MAAA;AACtBkI,QAAAA,IAAiB;AAAA,MAAC,GACnBrP,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA,GAFuBmH,IAAAA;AAEvBC,UAAAA;AAAA,MAAApH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAEwBsG,IAAAA,MAAA;AACvBiI,QAAAA,IAAkB;AAAA,MAAC,GACpBrP,QAAAoH,KAAAA,IAAApH,EAAA,EAAA,GAFwBoH,IAAAA;AAExBC,UAAAA;AAAArH,MAAAA,UAAAsO,KAEwBjH,KAAAyB,CAAAA,MAAA;AACN,QAAA2G,EAAA,GACjBnB,EAAaxF,CAAI;AAAA,MAAC,GACnB9I,QAAAsO,GAAAtO,QAAAqH,MAAAA,KAAArH,EAAA,EAAA,GAHwBqH,IAAAA;AAKzB,YAAA2B,KACExE,GAAM9C,MAAArB,SAAAuL,GAAAzN,QAAAuD,KAAArB;AAERuP,MAAAA,IACEpL,GAAMwH,OAAA3L,SAAAuL,GAAAzN,QAAA6N,MAAA3L,OAERqP,IAAmBK,EAAchH,cAAe8G,EAAc9G,SAAW;AAAA8F,UAAAA;AAAA,MAAA7O,EAAAqO,EAAAA,MAAAA,KAAArO,UAAAgM,KAE9CA,KAAAA,EAAKgE,KAAArB,CACpBA,MAAAA,EAAIlR,UAAW4Q,CAC3B,KAAKrC,EAAQ,CAAA,GAAAhM,QAAAqO,GAAArO,QAAAgM,GAAAhM,QAAA6O,MAAAA,KAAA7O,EAAA,EAAA,GAFc6O,IAAAA,IAEZ7O,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAIXuE,IAAA,gBAAAtE,EAAC2H,IAAe,EAAA,IAAAnG,EAAApE,QAAAmE,MAA8B+F,SAAAA,IAC5C,UAAC,gBAAAtH,EAAA+G,IAAA,CAAA,CAAa,EAChB,CAAA,GAAa9H,QAAAqF,KAAAA,IAAArF,EAAA,EAAA,GACZ2I,IAAAA,IACsBnI,IAAA,oBACXwH,IAAAA,GACJG,IAAAA,GACGK,IAAAA,IAAWxI,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KACLqE,IAAA;AAAA,QAAA,mBACM;AAAA,QAAcsB,IAAAlE,EAAApE,QAAAgF;AAAAA,MAAA,GAElCnD,QAAAmF,KAAAA,IAAAnF,EAAA,EAAA,GAGE+P,IAAAA,EAAchH,SAAA,KAEX,gBAAAzB,EAAAmB,GAAA,EAAA,UAAA;AAAA,QAAC,gBAAA1H,EAAAkI,GAAA,EACS,SAAA,aACF,OAAA,kBACF,IAAA1G,EAAApE,QAAAkC,OAEH2I,UACHA,GAAA,CAAA;AAAA,QACC+G,EAAczG,IAAA2G,CAAAA,MAAA;AAIb3K,gBAAAA,MAFEd,GAAM9C,MAAAvD,WAAAyN,GAAAzN,QAAAuD,KAAAvD,SAEcuD,EAAIjE,KAAA;AAGxB,iBAAA,gBAAA6J,EAACiC,IAEU,EAAA,SAAA2G,CAAO/G,OAAAA,EAAYC,IAAG1H,CAAI,GACzB,UAAAA,EAAIjE,UAAWsI,GAEzB,UAAA;AAAA,YAAC,gBAAAhF,EAAA0I,IAAA,EAAiB,IAAAlH,EAAApE,QAAA0F,OAChB,UAAC,gBAAA9C,EAAA2I,IAAA,EAAShI,UAAIY,EAAAA,KAAAA,CAAM,EACtB,CAAA;AAAA,YACA,gBAAAvB,EAAC4I,MAAcrE,UAAMA,GAAA,CAAA;AAAA,UAAA,EAAA,GAPhB5D,EAAIjE,KAQX;AAAA,QAEH,CAAA;AAAA,MAAA,GAAC;AAAA,IAAA;AAELuC,IAAAA,OAAAgI,GAAAxD,EAAAA,CAAAA,IAAAA,GAAA9C,MAAAvD,SAAAqG,EAAAA,CAAAA,IAAAA,GAAA9C,MAAArB,OAAAmE,EAAAA,CAAAA,IAAAA,GAAAwH,OAAA3L,OAAAL,OAAA+F,GAAA/F,OAAA6F,GAAA7F,OAAAkG,GAAAlG,OAAAsO,GAAAtO,OAAAqO,GAAArO,OAAAgM,GAAAhM,QAAAsP,GAAAtP,QAAAuP,GAAAvP,QAAAwP,GAAAxP,QAAAyP,GAAAzP,QAAA0P,GAAA1P,QAAAI,GAAAJ,QAAAQ,GAAAR,QAAA+E,GAAA/E,QAAAgF,GAAAhF,QAAAkF,GAAAlF,QAAAmF,GAAAnF,QAAAqF,GAAArF,QAAAwF,GAAAxF,QAAA2P,GAAA3P,QAAA4P,GAAA5P,QAAA6P;AAAAA,EAAAA;AAAAP,IAAAA,IAAAtP,EAAA,EAAA,GAAAuP,IAAAvP,EAAA,EAAA,GAAAwP,IAAAxP,EAAA,EAAA,GAAAyP,IAAAzP,EAAA,EAAA,GAAA0P,IAAA1P,EAAA,EAAA,GAAAI,IAAAJ,EAAA,EAAA,GAAAQ,IAAAR,EAAA,EAAA,GAAA+E,IAAA/E,EAAA,EAAA,GAAAgF,IAAAhF,EAAA,EAAA,GAAAkF,IAAAlF,EAAA,EAAA,GAAAmF,IAAAnF,EAAA,EAAA,GAAAqF,IAAArF,EAAA,EAAA,GAAAwF,IAAAxF,EAAA,EAAA,GAAA2P,IAAA3P,EAAA,EAAA,GAAA4P,IAAA5P,EAAA,EAAA,GAAA6P,IAAA7P,EAAA,EAAA;AAAA,MAAAwF,MAAA3E,OAAAC,IAAA,6BAAA;AAAA0E,WAAAA;AAAAsB,MAAAA;AAAA9G,EAAAA,UAAA0P,KACAA,IAAAA,uBAAezF,IAAU,CAAA,CAAA,GAAAjK,QAAA0P,GAAA1P,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAAAgH,MAAAA;AAAA,EAAAhH,EAAAuP,EAAAA,MAAAA,KAAAvP,UAAAwP,KAAAxP,EAAA,EAAA,MAAAyP,KAAAzP,EAAAwE,EAAAA,MAAAA,KAAAxE,EAAA,EAAA,MAAAoP,KAAApP,EAAA2P,EAAAA,MAAAA,KAAA3P,UAAA4P,KAAA5P,EAAA,EAAA,MAAAgM,KAAAhM,EAAA6P,EAAAA,MAAAA,EAAA9G,UACzB8G,IAAAA,EAAc9G,SAAW,KAEtB,gBAAAzB,EAAAmB,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAnB,EAAAiC,IAAA,EAAkBiG,SAAAA,GACjB,UAAA;AAAA,MAAA,gBAAAzO,EAAC4I,MAAciG,UAAUA,EAAA,CAAA;AAAA,MACzB,gBAAA7O,EAACkI,GACS,EAAA,SAAA,WACI,YAAA,KACR,IAAA1G,EAAApE,QAAA+O,KAEHyC,UAAAA,EAAiB7C,MACpB,CAAA;AAAA,IAAA,GACF;AAAA,IACA,gBAAA/L,EAACoP,IACOf,EAAAA,MAAAA,GACE5K,QAAAA,GACDwH,OAAAA,GACY2D,mBAAAA,GACVF,SAAAA,GACCF,UAAeA;KACzB,GAELvP,QAAAuP,GAAAvP,QAAAwP,GAAAxP,QAAAyP,GAAAzP,QAAAwE,GAAAxE,QAAAoP,GAAApP,QAAA2P,GAAA3P,QAAA4P,GAAA5P,QAAAgM,GAAAhM,EAAA,EAAA,IAAA6P,EAAA9G,QAAA/I,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA;AAAAiH,MAAAA;AAAAjH,EAAAA,EAAAI,EAAAA,MAAAA,KAAAJ,UAAAgH,KAAAhH,EAAA,EAAA,MAAA8G,KArDHG,sBAsDM,OArDH7G,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IA8BA0G;AAAAA,IACAE;AAAAA,EAAAA,GAsBH,GAAMhH,QAAAI,GAAAJ,QAAAgH,GAAAhH,QAAA8G,GAAA9G,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAAAkH,MAAAA;AAAAlH,EAAAA,EAAAsP,EAAAA,MAAAA,KAAAtP,EAAAiH,EAAAA,MAAAA,KAAAjH,EAAAQ,EAAAA,MAAAA,KAAAR,UAAA+E,KAAA/E,EAAA,EAAA,MAAAgF,KAAAhF,EAAA,EAAA,MAAAkF,KAAAlF,EAAA,EAAA,MAAAmF,KAhER+B,IAAC,gBAAAnG,EAAAuO,GAAA,EACI,IAAA9O,GACOwH,UAAAA,GACJG,MAAAA,GACGK,SAAAA,GACM,eAAArD,GAKf8B,UAuDFA,GAAA,GAAOjH,QAAAsP,GAAAtP,QAAAiH,GAAAjH,QAAAQ,GAAAR,QAAA+E,GAAA/E,QAAAgF,GAAAhF,QAAAkF,GAAAlF,QAAAmF,GAAAnF,QAAAkH,KAAAA,IAAAlH,EAAA,EAAA;AAAAmH,MAAAA;AAAA,SAAAnH,EAAAkH,EAAAA,MAAAA,KAAAlH,UAAAqF,KArET8B,IACE9B,gBAAAA,EAAAA,GAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAGA6B;AAAAA,EAAAA,GAiEO,GACNlH,QAAAkH,GAAAlH,QAAAqF,GAAArF,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA,GAtEHmH;AAsEG;AAIP,SAASgJ,GAAW;AAAA,EAClBhI,MAAAA;AAAAA,EACA3D,QAAAA;AAAAA,EACAwH,OAAAA;AAAAA,EACA2D,mBAAAA;AAAAA,EACA/G,SAAAA;AAAAA,EACAwH,UAAAA;AAWF,GAAG;AACD,QAAM,CAACC,GAAQC,CAAS,IAAIpI,GAA4B,QAAQ,GAE1D0G,IAASrE,GAAQ,MACdyB,EAAMuE,OAAQ5B,CAASA,MAAAA,EAAK0B,WAAWA,CAAM,GACnD,CAACA,GAAQrE,CAAK,CAAC,GAEZwE,IAAqBA,CACzBC,GACAhT,MACG;AACH6S,IAAAA,EAAU7S,CAAK;AAAA,EACjB,GAEMiT,IACJlM,GAAQwH,OAAOC,OAAO9N,WACtByN,GAAiCzN,QAAQ6N,MAAMC,MAAM9N,SAEjDwS,IAAiBD,EAAQL,CAAM,EAAElS,SAEjCyS,IACJpM,GAAQwH,OAAOC,OAAO5L,SACtBuL,GAAiCzN,QAAQ6N,MAAMC,MAAM5L,OACjDwQ,IACJrM,GAAQwH,OAAOC,OAAOC,YACtBN,GAAiCzN,QAAQ6N,MAAMC,MAAMC,UACjD4E,IACJtM,GAAQwH,OAAOC,OAAOE,SACtBP,GAAiCzN,QAAQ6N,MAAMC,MAAME,OAEjD4E,IACJpB,EAAkBU,WAAWA,IAASV,IAAoBf,EAAO,CAAC;AAGlE,SAAA,gBAAAtH,EAAC0J,MACC,MAAA7I,GACA,WAAW0C,GACX,SAAAjC,GACA,UAAS,MACT,YAAY;AAAA,IACVqI,WAAW;AAAA,IACXb,UAAUA,CAAChH,MAAkC;AAC3CA,MAAAA,EAAEC,eAAe;AACjB,YAAM6H,IAAW,IAAIC,SAAS/H,EAAEb,aAAa;AACpC2I,MAAAA,EAAAA,EAASE,IAAI,YAAY,CAAW;AAAA,IAAA;AAAA,EAIjD,GAAA,UAAA;AAAA,IAAA,gBAAA9J,EAAC+J,IAAY,EAAA,IAAI9O,EAAOpE,QAAQ8N,MAAM5L,OACnCuQ,UAAAA;AAAAA,MAAAA;AAAAA,wBACAlI,IAAW,EAAA,SAASE,GACnB,UAAA,gBAAA7H,EAACuQ,MAAK,EACR,CAAA;AAAA,IAAA,GACF;AAAA,sBACCC,IAAc,EAAA,IAAIhP,EAAOpE,QAAQ8N,MAAMgC,SACtC,UAAA;AAAA,MAAA,gBAAAlN,EAACkI,KAAW,IAAI1G,EAAOpE,QAAQ8N,MAAMC,UAClC2E,UACHA,GAAA;AAAA,wBACCzF,IACC,EAAA,OAAM,WACN,OAAOiF,GACP,WAAW,IACX,WAAW,IACX,UAAUG,GACV,cAAW,UACX,IAAIjO,EAAOpE,QAAQ8N,MAAMsB,QAEzB,UAAA;AAAA,QAAA,gBAAAxM,EAAC4G,IAAa,EAAA,OAAM,UAAU+I,UAAAA,EAAQtE,OAAO/L,OAAM;AAAA,0BAClDsH,IAAa,EAAA,OAAM,YAAY+I,UAAAA,EAAQjE,SAASpM,MAAM,CAAA;AAAA,MAAA,GACzD;AAAA,wBACCmR,IACC,EAAA,UAAA,gBAAAzQ,EAAC0Q,MACC,mBAAgB,cAChB,cAAcV,GAAoBtT,OAClC,MAAK,cACL,IAAI8E,EAAOpE,QAAQ8N,MAAM8B,cAExBa,UAAAA,EAAOtF,IAAKqF,CAAS+C,MAAA;AACdpM,cAAAA,IACJqL,EACEhC,EAAKlR,KAC4B;AAInC,eAAA,gBAAAsD,EAAC4Q,IAEC,EAAA,OAAOhD,EAAKlR,OACZ,SAAS,gBAAAsD,EAAC6Q,IAAK,CAAA,CAAA,GACf,OAAAtM,EAHKqJ,GAAAA,EAAKlR,KAIV;AAAA,MAAA,CAEL,EACH,CAAA,KAvBgBsT,GAAoBtT,KAwBtC;AAAA,IAAA,GACF;AAAA,IACC,gBAAAsD,EAAA8Q,IAAA,EAAc,IAAItP,EAAOpE,QAAQ8N,MAAM/J,SACtC,UAAC,gBAAAnB,EAAAyK,IAAA,EAAO,SAAQ,aAAY,MAAK,UAC9BsF,aACH,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;AC1bO,MAAMgB,KAAuB;AAAA,EAClCpM,SAAS;AAAA,EACT8D,UAAU;AACZ,GAEauI,KAAY;ACKlB,SAAAC,GAAAjS,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAA6B;AAAA,IAAAuJ,UAAAA;AAAAA,IAAAhF,QAAAA;AAAAA,IAAAwB,YAAAA;AAAAA,IAAAlB,cAAAA;AAAAA,IAAAmN,OAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,SAAAA;AAAAA,EAAAA,IAAApS,GASlCqS,IAAiBC,GAAA,IAAmB,GACpCC,IAAuB,iBAAaC,WACpC,CAAAC,GAAAC,CAAA,IAA8BvK,GAASoK,CAAc;AAAClS,MAAAA,GAAAI;AAAAR,EAAAA,SAAAmS,KAE5C/R,IAAAA,OACJkS,KACFC,UAAAG,YAAAC,MAAA;AAAA,IAAAC,MACiB;AAAA,EAAA,CAAe,EAACC,KAAAC,CAAAA,MAAA;AAElBA,IAAAA,EAAAA,EAAMC,UAAW,SAAS,GACrCD,EAAME,WAAA,MAAA;AACOF,MAAAA,EAAAA,EAAMC,UAAW,SAAS;AAAA,IAAC;AAAA,EAAA,CAEzC,EAACE,MAAAC,CAAAA,MAAA;AAEAT,IAAAA,IAAgB,GAChBN,IAAUe,CAAK;AAAA,EAAA,CAChB,GAAC,MAAA;AAAA,IAIAd,EAAQe,WACVC,UAAAA,YAAAC,WAAiCjB,EAAQe,OAAQ;AAAA,EAAC,IAGrD3S,IAAA,CAAC8R,GAAgBH,CAAO,GAACnS,OAAAmS,GAAAnS,OAAAI,GAAAJ,OAAAQ,MAAAJ,IAAAJ,EAAA,CAAA,GAAAQ,IAAAR,EAAA,CAAA,IArB5BsT,GAAUlT,GAqBPI,CAAyB;AAACuE,MAAAA;AAAA/E,EAAAA,SAAAkS,KAG3BnN,IAAAwO,CAAAA,MAAA;AACErB,IAAAA,EAASqB,EAAQC,MAAO;AAAA,EAAC,GAC1BxT,OAAAkS,GAAAlS,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA;AAHH,QAAAyT,IAAgB1O;AAKfC,MAAAA;AAAAhF,EAAAA,SAAAmS,KAGCnN,IAAA0O,CAAAA,MAAA;AACEjB,IAAAA,IAAgB,GAChBN,IAAUe,CAAK;AAAA,EAAA,GAChBlT,OAAAmS,GAAAnS,OAAAgF,KAAAA,IAAAhF,EAAA,CAAA;AAJH,QAAA2T,IAAc3O;AAMbE,MAAAA;AAAAlF,EAAAA,EAAA2T,CAAAA,MAAAA,KAAA3T,SAAAyT,KAAAzT,EAAA,CAAA,MAAAiS,KAE+B/M,IAAAA,MAAA;AAEsB,QADhDkN,EAAQe,WACVC,UAAAA,YAAAC,WAAiCjB,EAAQe,OAAQ,GAG/ClB,GAAK;AACPG,MAAAA,EAAQe,UAAWZ,UAAAa,YAAAQ,cAAoCH,GAASP,CAAK;AAAC;AAAA,IAAA;AAIxEE,cAAAA,YAAAS,mBAAyCJ,GAASP,CAAK;AAAA,EAAC,GACzDlT,OAAA2T,GAAA3T,OAAAyT,GAAAzT,OAAAiS,GAAAjS,QAAAkF,KAAAA,IAAAlF,EAAA,EAAA;AAXD,QAAAmJ,IAAoBjE,GAoBPC,KAPSX,GAAMlD,WAAAwQ,IAODU,IAAU,YAAY,UAAU,GAKvCnN,IAAAb,GAAMuN,aAAAA,IACRvM,IAAA,CAAC8M,KAAkB9I;AAAQ1C,MAAAA;AAAA9G,EAAAA,UAAAwS,KAEpC1L,IAAA0L,IAAU,gBAAAzR,EAAC+S,IAAqB,CAAA,CAAA,sBAAIC,IAA2B,EAAA,GAAA/T,QAAAwS,GAAAxS,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAAAgH,MAAAA;AAAA,EAAAhH,EAAA,EAAA,MAAAmJ,KAAAnJ,EAAAqF,EAAAA,MAAAA,KAAArF,EAAAwF,EAAAA,MAAAA,KAAAxF,UAAA8G,KALlEE,IAAA,gBAAAjG,EAAC2H,MACUS,YACG,cAAA9D,GACF,UAAAG,GAETsB,UACHA,EAAA,CAAA,GAAa9G,QAAAmJ,GAAAnJ,QAAAqF,GAAArF,QAAAwF,GAAAxF,QAAA8G,GAAA9G,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA;AAAAiH,MAAAA;AAAAjH,EAAAA,EAAA8E,EAAAA,MAAAA,KAAA9E,UAAAgH,KAAAhH,EAAA,EAAA,MAAAmF,KAZf8B,IAAA,gBAAAlG,EAACjB,IACC,EAAA,WACU,WAAA,SACH,OAAAqF,GACHL,GAAAA,GAEJkC,UAOFA,EAAA,CAAA,GAAUhH,QAAA8E,GAAA9E,QAAAgH,GAAAhH,QAAAmF,GAAAnF,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAAAkH,MAAAA;AAAA,SAAAlH,EAAAgG,EAAAA,MAAAA,KAAAhG,UAAAiH,KAdZC,IAAC,gBAAAnG,EAAAwG,IAAA,EAAK,GAAKvB,GACTiB,UAcFA,GAAA,GAAQjH,QAAAgG,GAAAhG,QAAAiH,GAAAjH,QAAAkH,KAAAA,IAAAlH,EAAA,EAAA,GAfRkH;AAeQ;AC1FL,MAAM3E,KAAS;AAAA,EACpByR,MAAM;AAAA,IACJT,UAAU;AAAA,IACVtQ,QAAQA,CAAC;AAAA,MAAEF,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAClCkR,aAAa;AAAA,IACbxR,SAAS;AAAA,IACTE,YAAY;AAAA,IACZC,gBAAgB;AAAA,EAClB;AAAA,EACAsR,OAAO;AAAA,IACLzR,SAAS;AAAA,IACTa,iBAAiBA,CAAC;AAAA,MAAES,SAAAA;AAAAA,IAAAA,MAAcA,EAAQoQ,WAAWD;AAAAA,IACrDlR,OAAO;AAAA,IACPH,UAAU;AAAA,IACVQ,WAAWA,CAAC;AAAA,MAAE+Q,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACrClR,cAAcA,CAAC;AAAA,MAAEH,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IAE1CsR,QAAQ;AAAA,MACNnR,cAAc;AAAA,IAAA;AAAA,EAElB;AAAA,EACAoR,kBAAkB;AAAA,IAChBf,UAAU;AAAA,EAAA;AAEd;ACTO,SAAAgB,GAAAxU,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAAwB;AAAA,IAAA+T,MAAAA;AAAAA,IAAAxK,UAAAA;AAAAA,IAAAgL,WAAApU;AAAAA,IAAAqU,SAAAjU;AAAAA,IAAAkU,WAAAA;AAAAA,IAAAC,SAAA5P;AAAAA,IAAA6P,SAAA5P;AAAAA,IAAAgB,YAAAA;AAAAA,IAAA6O,gBAAA3P;AAAAA,IAAA4P,UAAA3P;AAAAA,IAAA+M,UAAAA;AAAAA,IAAA6C,SAAAA;AAAAA,EAAAA,IAAAhV,GAG7ByU,IAAApU,MAAsBG,SAAV,aAAZH,GACAqU,IAAAjU,MAAeD,cAAfC,GAEAmU,IAAA5P,MAAYxE,cAAZwE,GACA6P,IAAA5P,MAAWzE,aAAXyE;AAAWK,MAAAA;AAAArF,EAAAA,SAAAkF,KAEXG,IAAAH,MAEC3E,SAAA;AAAA,IAAAsH,MAAAmN;AAAAA,EAAAA,IAFD9P,GAEClF,OAAAkF,GAAAlF,OAAAqF,KAAAA,IAAArF,EAAA,CAAA;AAFD,QAAA6U,IAAAxP,GAGAyP,IAAA3P,MAAe5E,cAAf4E;AAAeK,MAAAA;AAAAxF,EAAAA,EAAA2U,CAAAA,MAAAA,KAAA3U,SAAAkS,KAAAlS,EAAA,CAAA,MAAAgU,KAIkBxO,IAAAA,MAAA;AAC/B,UAAAyP,IAAgBC,KAAAC,IAASR,GAASX,IAAI,CAAI;AAC1C9B,IAAAA,EAAS+C,CAAO;AAAA,EAAC,GAClBjV,OAAA2U,GAAA3U,OAAAkS,GAAAlS,OAAAgU,GAAAhU,OAAAwF,KAAAA,IAAAxF,EAAA,CAAA;AAHD,QAAAoV,IAAqB5P;AAGQsB,MAAAA;AAAA9G,EAAAA,EAAA4U,CAAAA,MAAAA,KAAA5U,SAAAkS,KAAAlS,EAAA,CAAA,MAAAgU,KAEIlN,IAAAA,MAAA;AAC/B,UAAAuO,IAAgBH,KAAAI,IAASV,GAASZ,IAAI,CAAI;AAC1C9B,IAAAA,EAAS+C,CAAO;AAAA,EAAC,GAClBjV,OAAA4U,GAAA5U,OAAAkS,GAAAlS,OAAAgU,GAAAhU,OAAA8G,KAAAA,IAAA9G,EAAA,CAAA;AAHD,QAAAuV,IAAqBzO,GAKrB0O,IAAoBN,KAAAO,MAAWzB,CAAI,GAEnC0B,IACElB,MAAc,aAAa,eAAe;AAE5C9R,MAAAA,IAAoB8R,MAAc,aAAa,WAAW;AAAK,EAE3DC,MACF/R,IAAAA,IAAiB;AAAUsE,MAAAA;AAAAhH,EAAAA,UAAA0C,KAKrBsE,IAAA;AAAA,IAAA,GAAAzE,GAAA2R;AAAAA,IAAAxR,eAAAA;AAAAA,EAAA,GAGH1C,QAAA0C,GAAA1C,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA;AAAAiH,MAAAA;AAAA,EAAAjH,EAAA,EAAA,MAAA6U,KAAA7U,EAAAwJ,EAAAA,MAAAA,KAAAxJ,EAAA0V,EAAAA,MAAAA,KAAA1V,UAAA+U,KAGA9N,IAAA8N,KAEG,gBAAAzN,EAAAmB,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAA1H,EAAA2H,IAAA,EACUqM,SAAMA,GACJ,cAAA,gBACDvL,UAAAA,GAEV,wCACF,CAAA;AAAA,IACC,gBAAAzI,EAAAkJ,IAAA,EAAqByL,aAAAA,GAAoB,UAAO;KAAI,GAExD1V,QAAA6U,GAAA7U,QAAAwJ,GAAAxJ,QAAA0V,GAAA1V,QAAA+U,GAAA/U,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAAAkH,MAAAA;AAAA,EAAAlH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAMCoG,sBAACyO,IAAc,EAAA,GAAA3V,QAAAkH,KAAAA,IAAAlH,EAAA,EAAA;AAAAmH,MAAAA;AAAA,EAAAnH,EAAAwJ,EAAAA,MAAAA,KAAAxJ,UAAAoV,KALjBjO,sBAACuB,IACU0M,EAAAA,SAAWA,GACT,cAAA,iBACD5L,UAAAA,GAEVtC,UACFA,EAAA,CAAA,GAAalH,QAAAwJ,GAAAxJ,QAAAoV,GAAApV,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA;AAAAoH,MAAAA;AAAApH,EAAAA,UAAA0V,KACbtO,IAAC,gBAAArG,EAAAkJ,IAAA,EAAqByL,aAAAA,GAAoB,UAAO,IAAI,GAAA1V,QAAA0V,GAAA1V,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AAAAqH,MAAAA;AAAA,EAAArH,EAAA,EAAA,MAAAwV,KAAAxV,EAAA0V,EAAAA,MAAAA,KAAA1V,EAAA0U,EAAAA,MAAAA,KAAA1U,UAAA8U,KACpDzN,IAAAyN,KAEG,gBAAAxN,EAAAmB,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAnB,EAAAuD,GAAA,EAAQ,IAAAtI,GAAAyR,MACP,UAAA;AAAA,MAAC,gBAAAjT,EAAAkI,GAAA,EACS,SAAA,SACF,OAAA,UACA,OAAA,iBACE,SAAA,sBAGVuM,EAAA,CAAA;AAAA,MACCd,uBACEkB,IACK,EAAA,IAAArT,GAAA+R,kBACI,SAAA,iBACF,MAAA,GAAE,CAAA;AAAA,IAAA,GAGd;AAAA,IACC,gBAAAvT,EAAAkJ,IAAA,EAAqByL,aAAAA,GAAoB,UAAO;KAAI,GAExD1V,QAAAwV,GAAAxV,QAAA0V,GAAA1V,QAAA0U,GAAA1U,QAAA8U,GAAA9U,QAAAqH,KAAAA,IAAArH,EAAA,EAAA;AAAA6O,MAAAA;AAAA,EAAA7O,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAMC+N,sBAACgH,IAAiB,EAAA,GAAA7V,QAAA6O,KAAAA,IAAA7O,EAAA,EAAA;AAAA8O,MAAAA;AAAA,EAAA9O,EAAAuV,EAAAA,MAAAA,KAAAvV,UAAAwJ,KALpBsF,sBAACpG,IACU6M,EAAAA,SAAWA,GACT,cAAA,iBACD/L,UAAAA,GAEVqF,UACFA,EAAA,CAAA,GAAa7O,QAAAuV,GAAAvV,QAAAwJ,GAAAxJ,QAAA8O,KAAAA,IAAA9O,EAAA,EAAA;AAAAgP,MAAAA;AAAAhP,SAAAA,EAAAgG,EAAAA,MAAAA,KAAAhG,EAAAgH,EAAAA,MAAAA,KAAAhH,EAAAiH,EAAAA,MAAAA,KAAAjH,UAAAmH,KAAAnH,EAAA,EAAA,MAAAoH,KAAApH,EAAA,EAAA,MAAAqH,KAAArH,EAAA,EAAA,MAAA8O,KAvDfE,IAAC,gBAAA1H,EAAAC,IAAA,EACK,IAAAP,GAIAhB,GAAAA,GAEHiB,UAAAA;AAAAA,IAAAA;AAAAA,IAYDE;AAAAA,IAOAC;AAAAA,IACCC;AAAAA,IAsBDyH;AAAAA,EAAAA,GAOF,GAAQ9O,QAAAgG,GAAAhG,QAAAgH,GAAAhH,QAAAiH,GAAAjH,QAAAmH,GAAAnH,QAAAoH,GAAApH,QAAAqH,GAAArH,QAAA8O,GAAA9O,QAAAgP,KAAAA,IAAAhP,EAAA,EAAA,GAxDRgP;AAwDQ;ACzGL,SAAA8G,GAAA/V,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAA0B;AAAA,IAAA8I,QAAA3I;AAAAA,EAAAA,IAAAL,GAAEgJ,IAAA3I,MAAUG,aAAVH;AAAUI,MAAAA;AAAAR,EAAAA,SAAA+I,KAGtCgN,IAAAA,IAAAA,MAAUhN,CAAM,EAAAiN,KAAW,IAAA,EAAC1M,IAAA2M,EAsB5B,GAACjW,OAAA+I,GAAA/I,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA+E,MAAAA;AAAA/E,SAAAA,SAAAQ,KAvBJuE,IAAC,gBAAAhE,EAAA8J,GAAA,EAAe,cAAA,sBACbrK,UAuBHA,GAAA,GAAMR,OAAAQ,GAAAR,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA,GAxBN+E;AAwBM;AA1BH,SAAAkR,GAAAxF,GAAAyF,GAAA;AAAA,SAIE,gBAAA5O,EAAA6O,IAAA,EAAe,eAAmB,YACjC,UAAA;AAAA,IAAC,gBAAA7O,EAAA6O,IAAA,EACC,WAAA,IACA,MAAA,IACU,WAAA,OACK,gBAAA,iBACJ,YAAA,UAEX,UAAA;AAAA,MAAC,gBAAApV,EAAAqV,IAAA,EAAgB,OAAAC,GAAMH,CAAG,IAAU,KAAA,IAAW,YAAE;AAAA,MAChD,gBAAAnV,EAAAqV,IAAA,EAAgB,OAAC,IAAW,QAAC,EAAA,CAAA;AAAA,IAAA,GAChC;AAAA,IAEA,gBAAArV,EAACqV,MACK,IAAA;AAAA,MAAAnT,QAAA8G;AAAAA,MAAAiD,WAAAsJ;AAAAA,MAAA5S,cAAA6S;AAAAA,MAAAvT,OAIK;AAAA,IAAA,EACR,CAAA;AAAA,EAAA,EAAA,IAEL;AAAO;AAxBR,SAAAuT,GAAAxW,GAAA;AAoBsB,QAAA;AAAA,IAAAgD,SAAAyT;AAAAA,EAAAA,IAAAzW;AAAW,SAAKgD,MAAY;AAAC;AApBnD,SAAAuT,GAAAvW,GAAA;AAmBmB,QAAA;AAAA,IAAAgD,SAAA0T;AAAAA,EAAAA,IAAA1W;AAAW,SAAKgD,MAAY;AAAC;AAnBhD,SAAAgH,GAAAhK,GAAA;AAkBgB,QAAA;AAAA,IAAAgD,SAAAA;AAAAA,EAAAA,IAAAhD;AAAW,SAAKgD,KAAW;AAAC;AAanD,SAASsT,GAAMK,GAAa;AAC1B,SAAOA,IAAM,MAAM;AACrB;ACzBO,SAAAC,GAAA5W,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAAqB;AAAA,IAAAI,OAAAD;AAAAA,IAAAwW,MAAApW;AAAAA,IAAAqW,UAAAA;AAAAA,EAAAA,IAAA9W,GAC1BM,IAAAD,MAA2BG,SAAnB,sBAARH,GACAwW,IAAApW,MAA6JD,SAAtJ,yJAAPC;AAA6J,MAGzJqW,GAAQ;AAAA9R,QAAAA;AAAA/E,IAAAA,SAAA4W,KAGN7R,IAAC,gBAAAhE,EAAA+V,IAAA,YAAgBF,EAAA,CAAA,GAAY5W,OAAA4W,GAAA5W,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA;AAAAgF,QAAAA;AAAAhF,WAAAA,EAAA6W,CAAAA,MAAAA,KAAA7W,SAAA+E,KAAA/E,EAAA,CAAA,MAAAK,KAD/B2E,IAAC,gBAAAjE,EAAAgW,IAAA,EAAa1W,OAAAA,GAAiBwW,UAAAA,GAC7B9R,UAAAA,GACF,GAAQ/E,OAAA6W,GAAA7W,OAAA+E,GAAA/E,OAAAK,GAAAL,OAAAgF,KAAAA,IAAAhF,EAAA,CAAA,GAFRgF;AAAAA,EAAAA;AAEQD,MAAAA;AAAA/E,EAAAA,SAAAK,KAMP0E,IAAA1E,KAAS,gBAAAU,EAACkI,GAAmB,EAAA,SAAA,SAAS5I,UAAMA,GAAA,GAAaL,OAAAK,GAAAL,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA;AAAAgF,MAAAA;AAAAhF,EAAAA,SAAA4W,KAC1D5R,IAAC,gBAAAjE,EAAA+V,IAAA,EAAgB,OAAA,iBAAoB,UAAEF,GAAA,GAAY5W,OAAA4W,GAAA5W,OAAAgF,KAAAA,IAAAhF,EAAA,CAAA;AAAAkF,MAAAA;AAAA,SAAAlF,EAAA+E,EAAAA,MAAAA,KAAA/E,UAAAgF,KAFrDE,sBAAC2F,GACE9F,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IACDC;AAAAA,EAAAA,GACF,GAAMhF,QAAA+E,GAAA/E,QAAAgF,GAAAhF,QAAAkF,KAAAA,IAAAlF,EAAA,EAAA,GAHNkF;AAGM;AAUV,SAAA4R,GAAA/W,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAAmB;AAAA,IAAA6D,OAAAA;AAAAA,IAAA5D,UAAAA;AAAAA,EAAAA,IAAAH;AAAmC,MAChDG,GAAQ;AAMG,UAAAE,IAAA0D,KAAS;AAAStD,QAAAA;AAAA,IAAAR,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,KAClBN,IAAA;AAAA,MAAAoN,YAAc;AAAA,IAAQ,GAAE5N,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA+E,QAAAA;AAAA,WAAA/E,EAAAE,CAAAA,MAAAA,KAAAF,SAAAI,KALnC2E,IAAC,gBAAAhE,EAAA8J,GAAA,EAAQ,SACP,4BAAC5B,GACW,EAAA,WAAA,OACF,SAAA,WACD,OAAA7I,GACA,OAAAI,eAGT,CAAA,GACF,GAAMR,OAAAE,GAAAF,OAAAI,GAAAJ,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA,GATN+E;AAAAA,EAAAA;AASM3E,MAAAA;AAAA,SAAAJ,EAAA,CAAA,MAAAa,OAAAC,IAAA,2BAAA,2BAIF+J,GAAQ,EAAA,IAAA,GAAM,CAAA,GAAA7K,OAAAI,KAAAA,IAAAJ,EAAA,CAAA,GAAfI;AAAe;ACvDjB,SAAA4W,GAAAtC,GAAA;AAAA1U,QAAAA,IAAAC,EAAA,CAAA,GACL,CAAA2E,GAAAqS,CAAA,IAA8B/O,KAAc,GAC5C,CAAAgP,GAAAC,CAAA,IAA8CjP,KAAc;AAACnI,MAAAA,GAAAK;AAAA,SAAAJ,EAAAkX,CAAAA,MAAAA,KAAAlX,SAAA0U,KAEnD3U,IAAAA,MAAA;AACJ2U,IAAAA,MAAcwC,MAChBD,IAAe,GACfE,IAAuB,IAGpBzC,KACHuC,IAAgB;AAAA,EAAC,GAElB7W,IAAA,CAACsU,GAAWwC,CAAe,GAAClX,OAAAkX,GAAAlX,OAAA0U,GAAA1U,OAAAD,GAAAC,OAAAI,MAAAL,IAAAC,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,IAT/BsT,GAAUvT,GASPK,CAA4B,GAExBwE;AAAO;ACfhB,MAAMwS,KAAW;AAAA,EACfvU,UAAU;AAAA,EACVwU,cAAc;AAAA,EACdC,YAAY;AACd,GAEa/U,KAAS;AAAA,EACpB+C,OAAO;AAAA,IACL,8BAA8B;AAAA,MAC5B,GAAG8R;AAAAA,IAAAA;AAAAA,EAEP;AAAA,EACA3Z,OAAO;AAAA,IACL,8BAA8B;AAAA,MAC5B,GAAG2Z;AAAAA,MACHG,WAAW;AAAA,IAAA;AAAA,EAEf;AAAA,EACAC,WAAW;AAAA,IACTC,QAAQ;AAAA,IACR,WAAW;AAAA,MACTnU,iBAAiBA,CAAC;AAAA,QAAES,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ1C,OAAOqW;AAAAA,IAAAA;AAAAA,EAErD;AAAA,EACAC,aAAa;AAAA,IACXC,cAAcA,CAAC;AAAA,MAAE7T,SAAAA;AAAAA,IAAAA,MAAc,aAAaA,EAAQ8T,OAAO;AAAA,EAC7D;AAAA,EACAC,UAAU;AAAA,IACRxU,iBAAiBA,CAAC;AAAA,MAAES,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ1C,OAAOyW;AAAAA,EACnD;AAAA,EACAtO,UAAU;AAAA,IACRuO,SAAS;AAAA,IACTC,eAAe;AAAA,EAAA;AAEnB;AChCO,SAASC,GAAoC;AAAA,EAClD5X,OAAAA;AAAAA,EACA6X,cAAAA,IAAe,CAAE;AAAA,EACjBC,SAAAA,IAAU;AAAA,EACVrT,cAAAA;AAAAA,EACA5E,UAAAA;AAOF,GAAG;AACKkY,QAAAA,IAAM/F,GAAU,IAAI,GACpB,CAACgG,GAAeC,CAAgB,IAAIpQ,GAAS,EAAK;AAExDqQ,SAAAA,GAAgB,MAAM;AACdC,UAAAA,IAAUC,WAAW,MAAM;AAC/B,UAAIL,EAAIjF,SAAS;AACTkF,cAAAA,IACJD,EAAIjF,QAAQuF,cAAcN,EAAIjF,QAAQwF,eACtCP,EAAIjF,QAAQyF,eAAeR,EAAIjF,QAAQ0F;AAEzCP,QAAAA,EAAiBD,CAAa;AAAA,MAAA;AAAA,OAE/BF,CAAO;AAEH,WAAA,MAAMW,aAAaN,CAAO;AAAA,EAAA,GAChC,CAACN,GAAcC,CAAO,CAAC,qBAGvBrY,IAAQ,EAAA,OAAOuY,KAAiBhY,GAAO,GAAIyE,GACzC5E,UAASA,EAAA;AAAA,IAAEkY,KAAAA;AAAAA,EAAK,CAAA,GACnB;AAEJ;AC9BA,MAAMW,KAAiB;AAAA,EACrBC,UAAU;AAAA,EACVC,UAAU;AACZ;AAEO,SAAAC,GAAAnZ,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAAoB;AAAA,IAAA6I,MAAA1I;AAAAA,IAAAsU,WAAAlU;AAAAA,IAAA2Y,UAAApU;AAAAA,IAAAP,QAAAQ;AAAAA,IAAA2S,aAAAzS;AAAAA,IAAAkU,gBAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,aAAAA;AAAAA,EAAAA,IAAAxZ;AAUXoF,MAAAA;AAAAnF,EAAAA,SAAAI,KATdA,IAAAA,MAASG,cAATH,GAASJ,OAAAI,GAAAJ,OAAAmF,KAAAA,IAAAnF,EAAA,CAAA;AAAT,QAAA8I,IAAA3D,GACAuP,IAAAlU,MAAiBD,cAAjBC,GACA2Y,IAAApU,MAAYxE,aAAZwE,GACAP,IAAAQ,MAAuBzE,SAAAwY,KAAvB/T,GACA2S,IAAAzS,MAAkB3E,cAAlB2E,GAMA,CAAAsU,GAAAC,CAAA,IAA8BvR,KAAc,GAE5CwR,IAAqB1C,GAAYtC,CAAS;AAACrP,MAAAA,GAAAG;AAAAxF,EAAAA,EAAA8I,CAAAA,MAAAA,KAAA9I,SAAAmZ,KAAAnZ,EAAA,CAAA,MAAAwZ,KAGlChU,IAAAgU,IAAU1Q,IAAOA,EAAI4F,MAAUyK,GAAAA,CAAQ,GAACnZ,OAAA8I,GAAA9I,OAAAmZ,GAAAnZ,OAAAwZ,GAAAxZ,OAAAwF,KAAAA,IAAAxF,EAAA,CAAA,GAAxCwF,IAAAA;AADT,QAAAmU,IAActU;AAEeyB,MAAAA;AAAA,EAAA9G,EAAAsZ,CAAAA,MAAAA,KAAAtZ,SAAAwZ,KAER1S,IAAAA,MAAA;AACnB2S,IAAAA,EAAU,CAAED,CAAO,GACnBF,IAAWE,CAAO;AAAA,EAAA,GACnBxZ,OAAAsZ,GAAAtZ,OAAAwZ,GAAAxZ,OAAA8G,KAAAA,IAAA9G,EAAA,CAAA;AAHD,QAAAqI,IAAqBvB;AAGpB,MAEG4S,GAAY;AAAA1S,QAAAA;AAAAhH,WAAAA,SAAAmZ,KACPnS,sBAAC8O,IAAyBqD,EAAAA,QAAAA,EAAY,CAAA,GAAAnZ,OAAAmZ,GAAAnZ,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA,GAAtCgH;AAAAA,EAAAA;AAGL2S,MAAAA,EAAK5Q,WAAa,GAAA;AAAA/B,QAAAA;AAAA,WAAAhH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KACbkG,sBAAC2P,IAAc,EAAA,GAAA3W,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA,GAAfgH;AAAAA,EAAAA;AAAeA,MAAAA;AAAA,MAAAhH,EAAA2Z,EAAAA,MAAAA,KAAA3Z,EAAA,EAAA,MAAAuZ,KAAAvZ,EAAAoZ,EAAAA,MAAAA,KAAApZ,EAAA,EAAA,MAAA2X,KAAA3X,UAAAqZ,GAAA;AAAApS,QAAAA;AAAA,IAAAjH,EAAA,EAAA,MAAAuZ,KAAAvZ,EAAAoZ,EAAAA,MAAAA,KAAApZ,EAAA2X,EAAAA,MAAAA,KAAA3X,UAAAqZ,KAMPpS,IAAAA,CAAA2S,GAAA1D,wBACR+B,IAEe,EAAA,cAAI,IAER,WAAA,OACV,OAAI,IACG,OAAA2B,EAAIC,cACC,YAAA,IAERR,GAAAA,GAEHnS,WAAAA,MAAA;AAAC,YAAA;AAAA,QAAAkR,KAAAA;AAAAA,MAAAA,IAAAlR;AAAO,aACN,gBAAAnG,EAAA+Y,IAAA,EACM1B,KAAAA,GACA,MAAA,YACD,IAAA;AAAA,QAAA,GACET,KAAWpV,GAAAoV;AAAAA,QAAsB,GACjC4B,KAAWhX,GAAAiV;AAAAA,QAAoB,GAC/B4B,MAAmBQ,EAAI3U,MAAG1C,GAAAuV;AAAAA,QAAmB,GAC7C8B,EAAIpQ,YAAAjH,GAAAiH;AAAAA,MAA4B,GAE7B,SAAA,MAAA;AAAA,QACHoQ,EAAIpQ,YACR+P,IAAcK,CAAI;AAAA,MAAA,GAGpB,UAAC,gBAAAtS,EAAA6O,IAAA,EAAK,WAAQ,IAAa,YAAA,UACzB,UAAA;AAAA,QAAA,gBAAApV,EAACoV,IAAK,EAAA,MAAA,IAAS,IAAA,GACb,UAAA,gBAAApV,EAAC4I,IAAsB,EAAA,SAAAiQ,EAAItU,OAAY,IAAA/C,GAAA+C,MAAY,CAAA,GACrD;AAAA,QACC,gBAAAvE,EAAAoV,IAAA,EAAK,MAAA,IAAS,IAAC,GACd,UAAA,gBAAApV,EAAC4I,IAAsB,EAAA,SAAAiQ,EAAInc,OAAY,IAAA8E,GAAA9E,OACzC,EAAA,CAAA;AAAA,MAAA,EAAA,CACF,EACF,CAAA;AAAA,IAAW,EAAA,gBA/BKyY,CAAG,EAiCvB,GACDlW,QAAAuZ,GAAAvZ,QAAAoZ,GAAApZ,QAAA2X,GAAA3X,QAAAqZ,GAAArZ,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA,GAtCA2Z,IAAAA,EAAKrQ,IAAKrC,CAsCV,GAACjH,QAAA2Z,GAAA3Z,QAAAuZ,GAAAvZ,QAAAoZ,GAAApZ,QAAA2X,GAAA3X,QAAAqZ,GAAArZ,QAAAgH;AAAAA,EAAAA;AAAAA,IAAAA,IAAAhH,EAAA,EAAA;AAAAiH,MAAAA;AAAAjH,EAAAA,UAAAgH,KAvCJC,sBAAC8S,IAAQ,EAAA,IAAA,mBAAuB,MAAA,QAC7B/S,UAuCHA,GAAA,GAAOhH,QAAAgH,GAAAhH,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAAAkH,MAAAA;AAAAlH,EAAAA,UAAA8I,EAAAC,UAAA/I,UAAAqI,KAAArI,EAAAwE,EAAAA,MAAAA,KAAAxE,EAAA,EAAA,MAAAmZ,KAAAnZ,UAAAwZ,KAEN1Q,IAAAA,EAAIC,SAAUoQ,KACZ,gBAAApY,EAAA8J,GAAA,EAAQ,OACP,UAAA,gBAAA9J,EAACyK,IACUnD,EAAAA,SAAWA,GACZ,SAAA,QACF,OAAA,WACSmR,iBAAMA,GACP,iBAAA,mBAEbA,cAAUhV,EAAMyU,WAAYzU,EAAMwU,SAAAA,CACrC,EACF,CAAA,GACDhZ,EAAA,EAAA,IAAA8I,EAAAC,QAAA/I,QAAAqI,GAAArI,QAAAwE,GAAAxE,QAAAmZ,GAAAnZ,QAAAwZ,GAAAxZ,QAAAkH,KAAAA,IAAAlH,EAAA,EAAA;AAAAmH,MAAAA;AAAA,SAAAnH,EAAAiH,EAAAA,MAAAA,KAAAjH,UAAAkH,KAvDHC,IACEF,gBAAAA,EAAAA,GAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IA0CCC;AAAAA,EAAAA,GAYA,GACAlH,QAAAiH,GAAAjH,QAAAkH,GAAAlH,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA,GAxDHmH;AAwDG;ACrGA,MAAM6S,KAAiB,KAEjBzX,KAAS;AAAA,EACpB0X,MAAM;AAAA,IACJjX,OAAOgX;AAAAA,IACPnX,UAAU;AAAA,EACZ;AAAA,EACA0K,QAAQ;AAAA,IACNC,SAASA,CAAC;AAAA,MAAEzK,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,IAErCmX,KAAK;AAAA,MACHlX,OAAO;AAAA,MACPiR,aAAa;AAAA,MACb/Q,cAAcA,CAAC;AAAA,QAAEH,SAAAA;AAAAA,MAAQ,MAAMA,EAAQ,IAAI;AAAA,IAAA;AAAA,EAE/C;AAAA,EACAoX,QAAQ;AAAA,IACN1X,SAAS;AAAA,IACTE,YAAY;AAAA,IACZC,gBAAgB;AAAA,IAChB4K,SAASA,CAAC;AAAA,MAAEzK,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACnCqX,oBAAoBA,CAAC;AAAA,MAAErX,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAC9CwQ,UAAU;AAAA,IACV8G,KAAK;AAAA,IACLC,QAAQ;AAAA,IACRnG,YAAYA,CAAC;AAAA,MAAEpQ,SAAAA;AAAAA,IAAAA,MAAcA,EAAQoQ,WAAWD;AAAAA,EAClD;AAAA,EACAqG,cAAc;AAAA,IACZtM,SAAS;AAAA,MACPuM,eAAeA,CAAC;AAAA,QAAEzX,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MACzC0X,cAAcA,CAAC;AAAA,QAAE1X,SAAAA;AAAAA,MAAQ,MAAMA,EAAQ,GAAG;AAAA,IAAA;AAAA,EAE9C;AAAA,EACA2X,OAAO;AAAA,IACLjY,SAAS;AAAA,IACTC,eAAe;AAAA,IACf2B,UAAU;AAAA,IACVzB,gBAAgB;AAAA,IAChBD,YAAY;AAAA,IACZG,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAC/ByX,eAAeA,CAAC;AAAA,MAAEzX,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IACzC0X,cAAcA,CAAC;AAAA,MAAE1X,SAAAA;AAAAA,IAAQ,MAAMA,EAAQ,CAAC;AAAA,EAC1C;AAAA,EACA6W,MAAM;AAAA,IACJpX,WAAW;AAAA,MACTC,SAAS;AAAA,MACTE,YAAY;AAAA,MACZD,eAAe;AAAA,MACfI,KAAKA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MAC/BoR,YAAY;AAAA,MACZhH,QAAQ;AAAA,MACRsK,QAAQ;AAAA,MACRjK,SAAS;AAAA,MACTvK,QAAQA,CAAC;AAAA,QAAEF,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,EAAE;AAAA,MAEnCmX,KAAK;AAAA,QACHS,UAAUA,CAAC;AAAA,UAAE5X,SAAAA;AAAAA,QAAAA,MAAcA,EAAQ,CAAC;AAAA,QACpCkR,aAAa;AAAA,QACb/Q,cAAcA,CAAC;AAAA,UAAEH,SAAAA;AAAAA,QAAAA,MAAcA,EAAQ,GAAG;AAAA,QAC1CoK,QAAQ;AAAA,QAER,WAAW;AAAA,UACTC,aAAaA,CAAC;AAAA,YAAErJ,SAAAA;AAAAA,UAAAA,MAAcA,EAAQ1C,OAAOE;AAAAA,QAC/C;AAAA,QAEA,yBAAyB;AAAA,UACvB6L,aAAaA,CAAC;AAAA,YAAErJ,SAAAA;AAAAA,UAAAA,MAAcA,EAAQE,QAAQoJ;AAAAA,QAAAA;AAAAA,MAChD;AAAA,IAEJ;AAAA,IACAyK,UAAU;AAAA,MACRhU,OAAOA,CAAC;AAAA,QAAEC,SAAAA;AAAAA,MAAAA,MAAcA,EAAQE,QAAQoJ;AAAAA,IAAAA;AAAAA,EAC1C;AAEJ,GC1EauN,KAA4C;AAAA,EACvDrN,QAAQ;AAAA,IACNlN,OAAO;AAAA,EACT;AAAA,EACA8Z,QAAQ;AAAA,IACN9Z,OAAO;AAAA,IACP6B,SAAS;AAAA,MACP2Y,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;ACNO,SAAAC,GAAA/a,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAAgB;AAAA,IAAA8a,UAAA3a;AAAAA,IAAAoE,QAAAA;AAAAA,IAAAwW,mBAAAA;AAAAA,EAAAA,IAAAjb,GACrBgb,IAAA3a,MAAgBG,cAAhBH;AAAgBI,MAAAA;AAAAR,EAAAA,EAAA+a,CAAAA,MAAAA,KAAA/a,SAAAwE,KAAAxE,EAAA,CAAA,MAAAgb,KAUXxa,IAAAua,KAEG,gBAAAzT,EAAAmB,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAA1H,EAACkI,KAAmB,SAAA,WAAoB,aACrCzE,YAAMnE,OACT;AAAA,sBACCP,IAAe,EAAA,OAAA0E,EAAMtC,QAAA2Y,OACpB,4BAACnS,IACM,EAAA,MAAA,SACIsS,SAAAA,GACG,cAAAxW,EAAMtC,QAAA2Y,OAElB,UAAC,gBAAA9Z,EAAAuQ,IAAA,CACH,CAAA,EAAA,CAAA,EACF,CAAA;AAAA,EAAA,GAAU,GAEbtR,OAAA+a,GAAA/a,OAAAwE,GAAAxE,OAAAgb,GAAAhb,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA+E,MAAAA;AAAA/E,SAAAA,SAAAQ,KAhBHuE,IAAC,gBAAAhE,EAAA8J,GAAA,EAAQ,IAAAtI,GAAA4X,QACN3Z,UAgBHA,GAAA,GAAMR,OAAAQ,GAAAR,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA,GAjBN+E;AAiBM;AC7BH,SAAAkW,GAAAlb,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAAsB;AAAA,IAAAI,OAAAA;AAAAA,IAAAH,UAAAA;AAAAA,IAAAgb,WAAA9a;AAAAA,EAAAA,IAAAL;AAGV,MAAjBK,MAAiBG,cAAjBH;AAMsBF,WAAAA;AAAQM,MAAAA;AAAAR,EAAAA,SAAAK,KAI1BG,IAAA,gBAAAO,EAACkI,GACS,EAAA,SAAA,WACF,OAAA,iBACF,IAAA1G,GAAAgY,aAAAtM,SAEC,UACP5N,EAAA,CAAA,GAAaL,OAAAK,GAAAL,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA+E,MAAAA;AAAA,SAAA/E,EAAAE,CAAAA,MAAAA,KAAAF,SAAAQ,KAPfuE,IACEvE,gBAAAA,EAAAA,GAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA;KAOS,GACRR,OAAAE,GAAAF,OAAAQ,GAAAR,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA,GATH+E;AASG;ACrBA,SAAAoW,GAAApb,GAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA,GAAe;AAAA,IAAA0F,QAAAA;AAAAA,IAAAmS,UAAAA;AAAAA,IAAA5F,UAAAA;AAAAA,EAAAA,IAAAnS;AAQrBK,MAAAA;AAAAJ,MAAAA,EAAAkS,CAAAA,MAAAA,KAAAlS,SAAA8X,KAAA9X,EAAA,CAAA,MAAA2F,GAAA;AAAAnF,QAAAA;AAAA,IAAAR,EAAAkS,CAAAA,MAAAA,KAAAlS,SAAA8X,KAGiBtX,IAAAiO,CAAAA,MAAA;AACV2M,YAAAA,IAAmB3M,EAAMxJ,OAAQ6S;AAAQ,+BAEtCjN,GAEK,EAAA,IAAAtI,GAAAqX,KAAApX,WACM,WAAA,UACE,cAAAiM,EAAMnJ,OACT,eAAM4M,EAASzD,EAAMxJ,EAAG,GAEjC,UAAA;AAAA,QAIE,gBAAAlE,EAAA,OAAA,EAHK,KAAA0N,EAAMnM,MACC,cAAAmM,EAAMnJ,QAAS,SACd8V,iBAAU,CAAA;AAAA,QAExB,gBAAAra,EAAAkI,GAAA,EACS,SAAA,WACJ,IAAA;AAAA,UAAA,GAAMmS,KAAU7Y,GAAAqX,KAAA9B;AAAAA,QAAAA,GAEnBrJ,YAAMnJ,MACT,CAAA;AAAA,MAAA,EAAA,GAhBKmJ,EAAMxJ,EAiBb;AAAA,IAAM,GAETjF,OAAAkS,GAAAlS,OAAA8X,GAAA9X,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAvBA2F,IAAAA,EAAM2D,IAAK9I,CAuBX,GAACR,OAAAkS,GAAAlS,OAAA8X,GAAA9X,OAAA2F,GAAA3F,OAAAI;AAAAA,EAAAA;AAAAA,IAAAA,IAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,SAAAA,SAAAI,KAxBJI,IAAC,gBAAAO,EAAA8J,GAAA,EAAQ,IAAAtI,GAAAmY,OACNta,UAwBHA,GAAA,GAAMJ,OAAAI,GAAAJ,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAzBNQ;AAyBM;ACpCH,SAAA6a,GAAAtb,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAOL;AAAA,IAAAmY,KAAAA;AAAAA,IAAAlY,UAAAA;AAAAA,IAAAgb,WAAAA;AAAAA,IAAAH,UAAA3a;AAAAA,IAAAmT,UAAAA;AAAAA,IAAA9M,IAAAA;AAAAA,IAAA6U,WAAAA;AAAAA,IAAAN,mBAAAA;AAAAA,EAAAA,IAAAjb;AAIgB,MAAhBK,MAAgBG,cAAhBH,GAWY;AAEsB,UAAAI,KAAC0a;AAASnW,QAAAA;AAAA/E,WAAAA,EAAAE,CAAAA,MAAAA,KAAAF,SAAAgb,KAAAhb,EAAA,CAAA,MAAAQ,KAAxCuE,sBAACwW,IAAc,EAAA,QAAA,UAAe,MAAA/a,GAAqBwa,SAAgBA,GACzD,UAAA9a,EACV,CAAA,GAASF,OAAAE,GAAAF,OAAAgb,GAAAhb,OAAAQ,GAAAR,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA,GAFT+E;AAAAA,EAAAA;AAUM,QAAAvE,KAAC0a;AAASnW,MAAAA;AAAA/E,EAAAA,SAAAgb,KACPjW,IAAAA,MAAMiW,IAAsB,GAAChb,OAAAgb,GAAAhb,OAAA+E,KAAAA,IAAA/E,EAAA,CAAA;AAE1B,QAAAgF,IAAAuO,EAAQiI,WAAY,QAAQ,IAAI,WAAW,OACzCtW,IAAAqO,EAAQkI,SAAU,OAAO,IAAI,SAAS;AAAOtW,MAAAA;AAAA,EAAAnF,EAAAgF,CAAAA,MAAAA,KAAAhF,SAAAkF,KAF7CC,IAAA;AAAA,IAAAiF,UACFpF;AAAAA,IAAgDqF,YAC9CnF;AAAAA,EAA6C,GAC1DlF,OAAAgF,GAAAhF,OAAAkF,GAAAlF,OAAAmF,KAAAA,IAAAnF,EAAA,CAAA;AAEW,QAAAqF,IAAAkO,EAAQiI,WAAY,QAAQ,IAAI,WAAW,OACzChW,IAAA+N,EAAQkI,SAAU,OAAO,IAAI,UAAU;AAAM3U,MAAAA;AAAA,EAAA9G,EAAAqF,CAAAA,MAAAA,KAAArF,UAAAwF,KAF1CsB,IAAA;AAAA,IAAAsD,UACL/E;AAAAA,IAAgDgF,YAC9C7E;AAAAA,EAA6C,GAC1DxF,OAAAqF,GAAArF,QAAAwF,GAAAxF,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAAAgH,MAAAA;AAAA,SAAAhH,EAAA,EAAA,MAAAE,KAAAF,EAAA,EAAA,MAAAoY,KAAApY,EAAA,EAAA,MAAAsb,KAAAtb,EAAAyG,EAAAA,MAAAA,KAAAzG,EAAAQ,EAAAA,MAAAA,KAAAR,EAAA+E,EAAAA,MAAAA,KAAA/E,EAAAmF,EAAAA,MAAAA,KAAAnF,UAAA8G,KAZHE,IAAC,gBAAAjG,EAAA2a,IAAA,EACKjV,IAAAA,GACM2R,aACJ,MAAA5X,GACG,SAAAuE,GACK,cAAAI,GAIG,iBAAA2B,GAINwU,WAAAA,GAEH,UAAApb,GACV,GAAUF,QAAAE,GAAAF,QAAAoY,GAAApY,QAAAsb,GAAAtb,QAAAyG,GAAAzG,QAAAQ,GAAAR,QAAA+E,GAAA/E,QAAAmF,GAAAnF,QAAA8G,GAAA9G,QAAAgH,KAAAA,IAAAhH,EAAA,EAAA,GAhBVgH;AAgBU;ACtCP,SAAA2U,GAAA5b,GAAA;AAAAC,QAAAA,IAAAC,EAAA,EAAA,GAAoB;AAAA,IAAA9B,SAAAiC;AAAAA,IAAAoE,QAAAkM;AAAAA,IAAA6C,UAAA/S;AAAAA,IAAAsX,UAAA/S;AAAAA,IAAAmN,UAAAA;AAAAA,IAAApN,cAAAA;AAAAA,EAAAA,IAAA/E;AAOTiF,MAAAA;AAAAhF,EAAAA,SAAAI,KANhBA,IAAAA,MAAYG,cAAZH,GAAYJ,OAAAI,GAAAJ,OAAAgF,KAAAA,IAAAhF,EAAA,CAAA;AAAZ,QAAA7B,IAAA6G,GAEAuO,IAAA/S,MAAyBD,SAAd,iBAAXC,GACAsX,IAAA/S,MAAexE,gBAAfwE,GAIA,CAAA6W,GAAAC,CAAA,IAAkC3T,OAAuC,GACzE4T,IAAmBzJ,GAAA,IAAkC,GACrD,CAAA0J,GAAAC,CAAA,IAA0B9T,OAA4B,GACtD+T,IAAcC,GAAS;AAAChX,MAAAA;AAAA,EAAAlF,EAAA,CAAA,MAAAic,EAAAE,eACOF,IAAAA,EAAKE,YAAAC,KAAkB,IAAI,GAACpc,EAAA,CAAA,IAAAic,EAAAE,aAAAnc,OAAAkF,KAAAA,IAAAlF,EAAA,CAAA;AAA3D+a,QAAAA,IAAiBsB,GAAcnX,CAA4B;AAACC,MAAAA;AAAAnF,EAAAA,SAAA0Q,KACVvL,IAAAuL,KAAa,CAAA,GAAA1Q,OAAA0Q,GAAA1Q,OAAAmF,KAAAA,IAAAnF,EAAA,CAAA;AAAAqF,MAAAA;AAAArF,EAAAA,SAAAmF,KAAhD/G,IAAAA,GAAAwc,IAAmCzV,CAAa,GAACnF,OAAAmF,GAAAnF,OAAAqF,KAAAA,IAAArF,EAAA,CAAA;AAAhE,QAAAwE,IAAea,GAEf6V,KAAmBU;AAASpW,MAAAA;AAAA,MAAAxF,EAAA7B,CAAAA,MAAAA,KAAA6B,SAAA8X,GAAA;AAAAhR,QAAAA;AAAA9G,IAAAA,UAAA8X,KAEQhR,KAAA2H,CAAYA,OAAAA,GAAMxJ,OAAQ6S,GAAQ9X,QAAA8X,GAAA9X,QAAA8G,MAAAA,KAAA9G,EAAA,EAAA,GAA/C7B,IAAAA,EAAO6R,KAAMlJ,EAAkC,GAAC9G,OAAA7B,GAAA6B,OAAA8X,GAAA9X,QAAAwF;AAAAA,EAAAA;AAAAA,IAAAA,IAAAxF,EAAA,EAAA;AAAvE,QAAAsc,IAAuB9W,GAEvB+W,IAAe/R,OAAAgS,QAAere,GAAO4L,EAAuC,GAE5E0S,IAAmBjS,OAAAC,KAAY8R,CAAM,EAACxT;AAAO/B,MAAAA,GAAAF;AAAA9G,EAAAA,UAAA+b,KAEnCjV,IAAAA,MAAA;AAE0B,QAD9BgV,EAAU3I,WACZ2F,aAAagD,EAAU3I,OAAQ,GAAC,EAG7B4I;AAIK5I,aAAAA,EAAAA,UAAWsF,WAAA,MAAA;AACnBoD,QAAAA,MAAiB;AAAA,SAEhBE,CAAK,GAAC,MAAA;AAAA,QAGHD,EAAU3I,WACZ2F,aAAagD,EAAU3I,OAAQ;AAAA,MAAC;AAAA,EAAA,GAGnCnM,KAAC+U,CAAK,GAAC/b,QAAA+b,GAAA/b,QAAAgH,GAAAhH,QAAA8G,MAAAE,IAAAhH,EAAA,EAAA,GAAA8G,IAAA9G,EAAA,EAAA,IAnBVsT,GAAUxM,GAmBPE,CAAO;AAACC,MAAAA;AAAA,EAAAjH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAEamG,IAAAA,MAAA;AACtB+U,IAAAA,MAAa;AAAA,EAAC,GACfhc,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAFD,QAAA0c,IAAwBzV;AAEvBC,MAAAA;AAAA,EAAAlH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KACwBoG,IAAAA,MAAA;AACvB8U,IAAAA,KAAY;AAAA,EAAC,GACdhc,QAAAkH,KAAAA,IAAAlH,EAAA,EAAA;AAFD,QAAA2c,IAAyBzV,GAKtBoI,IAAA/H;AAAKJ,MAAAA;AAAA,EAAAnH,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAISqG,IAAAiC,CAAAA,OAAA;AACPyS,IAAAA,EAAazS,GAACb,aAAmC;AAAA,EAAC,GACnDvI,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA;AAGM,QAAAoH,IAAAkV,GAAcha,MACd+E,IAAAiV,GAAchX,SAAW;AAASuJ,MAAAA;AAAA,EAAA7O,EAAAoH,EAAAA,MAAAA,KAAApH,UAAAqH,KAR3CwH,IAAC,gBAAA9N,EAAA2H,IAAA,EACK,IAAAnG,GAAAgL,QACK,SAAApG,GAIT,UAAA,gBAAApG,EAAA,OACO,EAAA,KAAAqG,GACA,KAAAC,EAET,CAAA,GAAA,GAAarH,QAAAoH,GAAApH,QAAAqH,GAAArH,QAAA6O,KAAAA,IAAA7O,EAAA,EAAA;AAAA8O,MAAAA;AAAA,EAAA9O,EAAA,EAAA,MAAA8E,KAAA9E,EAAAwE,EAAAA,MAAAA,EAAA+I,OAAAlN,SAAAL,UAAA6O,KAXfC,KAAA,gBAAA/N,EAACjB,IAAe,EAAA,OAAA0E,EAAM+I,OAAAlN,OAAyB,WAAA,SAAO,GAAKyE,GACzD+J,UAWFA,EAAA,CAAA,GAAU7O,QAAA8E,GAAAN,EAAAA,EAAAA,IAAAA,EAAA+I,OAAAlN,OAAAL,QAAA6O,GAAA7O,QAAA8O,MAAAA,KAAA9O,EAAA,EAAA;AAET,QAAA4c,IAAAvB,IAMkBrM,oBAAeuE,EAAQkI,SAAU,OAAO,IAAI,SAAS,KAAK,KACnElI,EAAQiI,WAAY,QAAQ,IAAI,SAAS,KAAK;AAC/BvM,MAAAA;AAAAjP,EAAAA,UAAAgP,MANZC,IAAA;AAAA,IAAAiF,OAAA;AAAA,MAAAzN,IAAA;AAAA,QAAA,GAAAlE,GAAA0X;AAAAA,QAAA4C,WAIM7N;AAAAA,MAEM;AAAA,MAAA8N,aAENJ;AAAAA,MAAeK,cACdJ;AAAAA,IAAAA;AAAAA,EAAgB,GAEjC3c,QAAAgP,IAAAhP,QAAAiP,KAAAA,IAAAjP,EAAA,EAAA;AAAAkP,MAAAA;AAAA,EAAAlP,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAIkBoO,IAAAA,MAAM2M,MAAiB,GAAC7b,QAAAkP,KAAAA,IAAAlP,EAAA,EAAA;AAAAmP,MAAAA;AAAA,EAAAnP,EAAA,EAAA,MAAAa,OAAAC,IAAA,2BAAA,KAKtBqO,IAAAA,MAAM0M,MAAiB,GAAC7b,QAAAmP,KAAAA,IAAAnP,EAAA,EAAA;AAAAgd,MAAAA;AAAAhd,EAAAA,UAAA+a,KAAA/a,EAAAwE,EAAAA,MAAAA,EAAA2V,UAH7C6C,sBAAClC,IACWC,EAAAA,UAAAA,GACF,QAAAvW,EAAM2V,QACK,mBAAAhL,GACnB,GAAAnP,QAAA+a,GAAA/a,EAAA,EAAA,IAAAwE,EAAA2V,QAAAna,QAAAgd,KAAAA,IAAAhd,EAAA,EAAA;AAAAid,MAAAA;AAAA,EAAAjd,EAAAyc,EAAAA,MAAAA,KAAAzc,UAAAwE,EAAA2V,UAAAna,EAAAkS,EAAAA,MAAAA,KAAAlS,UAAA8X,KAC0BmF,KAAAC,CAAAA,OAAA;AAAC,UAAA,CAAAxC,IAAA/U,EAAA,IAAAuX;AAAe,6BACzCjC,IAEQ,EAAA,OAAAP,KAAQ,MAAMlW,EAAM2V,OAAA9Z,OAChB,WAAAoc,IAAa,GAExB,UAAC,gBAAA1b,EAAAoa,IAAA,EACSxV,QAAAA,IACEmS,UAAAA,GACA,UAAA5H,CAAAA,OAAA;AACR2L,MAAAA,MAAiB,GACjB3J,EAAS9I,EAAC;AAAA,IAAA,EACX,CAAA,KAVMsR,EAYX;AAAA,EAAe,GAChB1a,QAAAyc,GAAAzc,EAAA,EAAA,IAAAwE,EAAA2V,QAAAna,QAAAkS,GAAAlS,QAAA8X,GAAA9X,QAAAid,MAAAA,KAAAjd,EAAA,EAAA;AAfA,QAAAkd,KAAA1S,OAAA2S,QAAeZ,CAAM,EAACjT,IAAK2T,EAe3B;AAACG,MAAAA;AAAA,EAAApd,EAAA,EAAA,MAAA4c,KAAA5c,EAAAkb,EAAAA,MAAAA,KAAAlb,UAAA+a,KAAA/a,EAAA,EAAA,MAAAuT,KAAAvT,EAAAiP,EAAAA,MAAAA,KAAAjP,EAAAkP,EAAAA,MAAAA,KAAAlP,EAAA,EAAA,MAAAgd,KAAAhd,EAAAkd,EAAAA,MAAAA,MAAAld,UAAA4b,4BAvCHgB,GACMhB,EAAAA,KAAAA,GACM,WAAA3M,GAYAiM,WAAAA,GACD3H,UAAAA,GACAwH,UAAAA,GACS,mBAAA7L,GAEnB8N,UAAAA;AAAAA,IAAAA;AAAAA,IAKCE;AAAAA,EAAAA,GAgBH,GAAmBld,QAAA4c,GAAA5c,QAAAkb,GAAAlb,QAAA+a,GAAA/a,QAAAuT,GAAAvT,QAAAiP,GAAAjP,QAAAkP,GAAAlP,QAAAgd,GAAAhd,QAAAkd,IAAAld,QAAA4b,GAAA5b,QAAAod,MAAAA,KAAApd,EAAA,EAAA;AAAAqd,MAAAA;AAAArd,SAAAA,EAAAsP,EAAAA,MAAAA,KAAAtP,UAAA8O,MAAA9O,EAAA,EAAA,MAAAod,MAvDrBC,sBAAC/N,GACCR,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAcAsO;AAAAA,EAAAA,GAyCF,GAAQpd,QAAAsP,GAAAtP,QAAA8O,IAAA9O,QAAAod,IAAApd,QAAAqd,KAAAA,IAAArd,EAAA,EAAA,GAxDRqd;AAwDQ;AA5GL,SAAAtT,GAAAuT,GAAA;AAAA,SAmB8C7O,EAAMiM,SAAU;AAAS;","x_google_ignoreList":[0]}