@carto/ps-react-ui 4.0.3 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components.js +932 -637
- package/dist/components.js.map +1 -1
- package/dist/types/components/basemaps/basemaps.d.ts +3 -0
- package/dist/types/components/basemaps/const.d.ts +2 -0
- package/dist/types/components/basemaps/group-wrapper.d.ts +6 -0
- package/dist/types/components/basemaps/group.d.ts +6 -0
- package/dist/types/components/basemaps/header.d.ts +6 -0
- package/dist/types/components/basemaps/styles.d.ts +71 -0
- package/dist/types/components/basemaps/types.d.ts +26 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/components/measurement-tools/styles.d.ts +81 -0
- package/dist/types/components/responsive-drawer/responsive-drawer.d.ts +12 -0
- package/package.json +1 -1
package/dist/components.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"components.js","sources":["../src/components/lasso-tool/styles.ts","../src/components/lasso-tool/icons.tsx","../src/components/lasso-tool/const.tsx","../../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","../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/list-data/list-data.tsx"],"sourcesContent":["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 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","'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, 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'\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 {\n Paper,\n Tooltip,\n IconButton,\n Menu,\n MenuItem,\n Divider,\n ListItemIcon,\n ListItemText,\n Typography,\n SvgIcon,\n ToggleButton,\n Box,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport { ArrowDropDown, MoreVertOutlined } from '@mui/icons-material'\nimport {\n useMemo,\n useState,\n type ComponentProps,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, OptionsChildrenProps } 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'\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}: LassoToolsComponentProps): 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 onActionToggle(false)\n return onDelete(valueId)\n }\n\n const handleToggle: LassoToolsComponentProps['onActionToggle'] = (data) => {\n return onActionToggle(data)\n }\n\n const handleChangeMode: LassoToolsComponentProps['onChangeMode'] = (data) => {\n return onChangeMode?.(data)\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 = data[mode]\n\n const modesValues = Object.values(_modes)\n\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n <LassoToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon && <modeSelectedValue.icon />}\n </LassoToolsUIAction>\n <Options>\n {(props) => {\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 </Options>\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={onChipToggle}\n />\n ))}\n </Box>\n )}\n <Actions\n values={values}\n labels={labels?.actions}\n onAllChipToggle={onAllChipToggle}\n onAllDelete={onAllDelete}\n />\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 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 <>\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","import {\n Tooltip,\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'\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'\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 ...typography.caption,\n fontWeight: 500,\n margin: 0,\n '&:first-of-type:not(.MuiDivider-root)': {\n marginLeft: 0,\n },\n }),\n },\n subtitle: ({ typography, palette }) => ({\n ...typography.body2,\n color: palette.text.secondary,\n }),\n optionsGroup: {\n marginLeft: ({ spacing }) => spacing(1),\n '.MuiTypography-root': ({ typography }) => ({\n ...typography.body2,\n }),\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 Tooltip,\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'\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, Tooltip } 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'\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 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\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 { useState, useMemo, type JSX } from 'react'\nimport {\n Box,\n Button,\n Grid,\n ListItem,\n List,\n ListItemText,\n Tooltip,\n} 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'\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 <Tooltip\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 <ListItem\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 </Tooltip>\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"],"names":["styles","container","display","flexDirection","alignItems","justifyContent","overflow","gap","spacing","actions","icon","width","height","borderRadius","options","menu","paddingTop","boxShadow","backgroundColor","margin","marginLeft","marginRight","marginBottom","title","paddingX","paddingBottom","icons","color","palette","text","primary","more","chip","overflowX","scrollbarWidth","flexWrap","DrawPolygonIcon","props","$","_c","t0","Symbol","for","t1","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","mode","circle","lasso","polygon","rectangle","edit","noData","description","toggleAll","deleteAll","DEFAULT_LASSO_TOOLS_MODES_MAPPING","isMergeableObject","value","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","val","cloneUnlessOtherwiseSpecified","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","LassoToolsUIChip","chipProps","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t2","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","Tooltip","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","sx","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","data","useMemo","_modes","handleDelete","valueId","handleToggle","data_0","handleChangeMode","data_1","Object","keys","modeSelectedValue","modesValues","jsxs","Paper","LassoToolsUIAction","Options","Fragment","ModeList","OptionsList","Divider","disabled","length","Box","map","Actions","children","actionState","actionLabel","ToggleButton","TriggerProps","Icon","ArrowDropDown","MenuProps","anchorEl","setAnchorEl","useState","open","Boolean","event","currentTarget","handleClose","IconButton","Menu","onClose","modeTitle","Typography","handleClick","e","preventDefault","MenuItem","ListItemIcon","SvgIcon","ListItemText","toggleAllLabel","some","_temp","deleteAllLabel","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","LassoToolsInlineUI","BoxProps","evt","ToggleButtonGroup","NoData","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","undefined","modeExists","t9","t10","option","t11","slice","t12","t13","t14","unit","_units","t15","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","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","DEFAULT_LABELS","showMore","showLess","ListDataUI","maxItems","selectedItemId","tooltipProps","onExpand","onItemClick","showAll","setShowAll","showSkeleton","items","item","tooltipTitle","ListItem","List"],"mappings":"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","x_google_ignoreList":[3]}
|
1
|
+
{"version":3,"file":"components.js","sources":["../src/components/lasso-tool/styles.ts","../src/components/lasso-tool/icons.tsx","../src/components/lasso-tool/const.tsx","../../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","../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/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":["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 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","'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, 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'\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 {\n Paper,\n Tooltip,\n IconButton,\n Menu,\n MenuItem,\n Divider,\n ListItemIcon,\n ListItemText,\n Typography,\n SvgIcon,\n ToggleButton,\n Box,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport { ArrowDropDown, MoreVertOutlined } from '@mui/icons-material'\nimport {\n useMemo,\n useState,\n type ComponentProps,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, OptionsChildrenProps } 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'\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}: LassoToolsComponentProps): 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 onActionToggle(false)\n return onDelete(valueId)\n }\n\n const handleToggle: LassoToolsComponentProps['onActionToggle'] = (data) => {\n return onActionToggle(data)\n }\n\n const handleChangeMode: LassoToolsComponentProps['onChangeMode'] = (data) => {\n return onChangeMode?.(data)\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 = data[mode]\n\n const modesValues = Object.values(_modes)\n\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n <LassoToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon && <modeSelectedValue.icon />}\n </LassoToolsUIAction>\n <Options>\n {(props) => {\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 </Options>\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={onChipToggle}\n />\n ))}\n </Box>\n )}\n <Actions\n values={values}\n labels={labels?.actions}\n onAllChipToggle={onAllChipToggle}\n onAllDelete={onAllDelete}\n />\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 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 <>\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","import {\n Tooltip,\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'\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 Tooltip,\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'\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, Tooltip } 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'\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 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\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 { useState, useMemo, type JSX } from 'react'\nimport {\n Box,\n Button,\n Grid,\n ListItem,\n List,\n ListItemText,\n Tooltip,\n} 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'\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 <Tooltip\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 <ListItem\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 </Tooltip>\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 legend',\n },\n header: {\n title: 'Basemaps',\n actions: {\n close: 'Close',\n },\n },\n}\n","import { Close } from '@mui/icons-material'\nimport { Box, Typography, Tooltip, IconButton } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapsUILabels } from './types'\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'\n\nexport function BasemapsUI({\n options = [],\n labels: _labels,\n position = 'bottom-right',\n selected = null,\n onChange,\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 <IconButton\n sx={styles.toggle}\n title={labels.toggle.title}\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 <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":["styles","container","display","flexDirection","alignItems","justifyContent","overflow","gap","spacing","actions","icon","width","height","borderRadius","options","menu","paddingTop","boxShadow","backgroundColor","margin","marginLeft","marginRight","marginBottom","title","paddingX","paddingBottom","icons","color","palette","text","primary","more","chip","overflowX","scrollbarWidth","flexWrap","DrawPolygonIcon","props","$","_c","t0","Symbol","for","t1","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","mode","circle","lasso","polygon","rectangle","edit","noData","description","toggleAll","deleteAll","DEFAULT_LASSO_TOOLS_MODES_MAPPING","isMergeableObject","value","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","val","cloneUnlessOtherwiseSpecified","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","LassoToolsUIChip","chipProps","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t2","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","Tooltip","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","sx","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","data","useMemo","_modes","handleDelete","valueId","handleToggle","data_0","handleChangeMode","data_1","Object","keys","modeSelectedValue","modesValues","jsxs","Paper","LassoToolsUIAction","Options","Fragment","ModeList","OptionsList","Divider","disabled","length","Box","map","Actions","children","actionState","actionLabel","ToggleButton","TriggerProps","Icon","ArrowDropDown","MenuProps","anchorEl","setAnchorEl","useState","open","Boolean","event","currentTarget","handleClose","IconButton","Menu","onClose","modeTitle","Typography","handleClick","e","preventDefault","MenuItem","ListItemIcon","SvgIcon","ListItemText","toggleAllLabel","some","_temp","deleteAllLabel","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","LassoToolsInlineUI","BoxProps","evt","ToggleButtonGroup","NoData","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","undefined","modeExists","t9","t10","option","t11","slice","t12","t13","t14","unit","_units","t15","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","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","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","ref","slotProps","Drawer","startsWith","endsWith","Popover","BasemapsUI","toggleRef","setToggleRef","timeoutRef","timer","setTimer","theme","useTheme","breakpoints","down","useMediaQuery","optionSelected","groups","groupBy","groupCount","clearTimeout","setTimeout","handleMouseOver","handleMouseLeave","T1","transform","onMouseOver","onMouseLeave","t22","t23","t24","entries","t25","t26","option_0"],"mappings":"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","x_google_ignoreList":[3]}
|