@carto/ps-react-ui 4.0.0 → 4.0.2-canary.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 +756 -651
- package/dist/components.js.map +1 -1
- package/dist/types/common/common.d.ts +1 -1
- package/dist/types/common/index.d.ts +1 -0
- package/dist/types/common/lasso-tools.d.ts +11 -8
- package/dist/types/common/measurement-tools.d.ts +1 -2
- package/dist/types/components/index.d.ts +1 -1
- package/dist/types/components/list-data/list-data-skeleton.d.ts +5 -0
- package/dist/types/components/list-data/list-data.d.ts +2 -2
- package/dist/types/components/list-data/styles.d.ts +9 -12
- package/dist/types/components/list-data/types.d.ts +2 -1
- package/dist/types/components/measurement-tools/const.d.ts +2 -1
- package/dist/types/components/no-data-alert/no-data-alert.d.ts +8 -0
- package/dist/types/hooks/use-skeleton.d.ts +1 -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/const.tsx","../src/components/measurement-tools/icons.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/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 trace the line you want to measure',\n inactive: 'Click on the map to trace the line you want to measure',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide measure',\n inactive: 'Show measure',\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 e: MouseEvent<HTMLElement>,\n mode: NonNullable<(typeof modes)[keyof typeof modes]>['value'],\n ) => {\n e.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 { RequiredDeep } from 'type-fest'\nimport type { MeasurementUnitsMapping } from '../types'\nimport type { MeasurementToolsComponentProps } from './types'\n\nexport const DEFAULT_MEASUREMENT_TOOLS_LABELS: RequiredDeep<\n MeasurementToolsComponentProps['labels']\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to trace the line you want to measure',\n inactive: 'Click on the map to trace the line you want to measure',\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","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 { 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} 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,\n modes,\n modesMapping,\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='Decrease zoom'\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 { type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n firstColumn: {\n flex: 2.5,\n '& .MuiListItemText-primary': {\n wordBreak: 'break-word',\n whiteSpace: 'normal',\n },\n },\n secondColumn: {\n flex: 0.5,\n textAlign: 'right',\n '& .MuiListItemText-primary': {\n wordBreak: 'break-word',\n whiteSpace: 'normal',\n },\n },\n clickable: {\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n button: {\n mt: 2,\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 cursor: 'not-allowed',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { ListDataProps } from './types'\nimport {\n Button,\n Typography,\n ListItem,\n List,\n ListItemText,\n Tooltip,\n} from '@mui/material'\nimport { useMemo, useState, type JSX } from 'react'\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 itemsToShow = 0,\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 items = useMemo(\n () => (showAll || itemsToShow === 0 ? data : data.slice(0, itemsToShow)),\n [data, itemsToShow, showAll],\n )\n\n const handleToggle = () => {\n setShowAll(!showAll)\n onExpand?.(showAll)\n }\n\n if (items.length === 0) {\n return <Typography variant='body1'>No data</Typography>\n }\n\n return (\n <>\n <List id='expandable-list'>\n {items.map((item, index) => (\n <Tooltip\n // Default tooltip props\n followCursor={false}\n key={`list-item-${index}`}\n placement='top'\n arrow\n title={item.tooltipTitle}\n enterDelay={10}\n // Custom tooltip props\n {...tooltipProps}\n >\n <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 <ListItemText primary={item.label} sx={styles.firstColumn} />\n <ListItemText primary={item.value} sx={styles.secondColumn} />\n </ListItem>\n </Tooltip>\n ))}\n </List>\n\n {data.length > itemsToShow && (\n <Button\n onClick={handleToggle}\n sx={styles.button}\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 )}\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","ToggleButtonGroup","NoData","hasValues","Button","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","RulerIcon","BufferIcon","AreaIcon","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","option","t9","slice","t10","t11","t12","unit","_units","t13","t14","t15","MeasurementToolsUIAction","t16","t17","t18","t19","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","firstColumn","flex","wordBreak","whiteSpace","secondColumn","textAlign","clickable","cursor","hover","mt","showDivider","borderBottom","divider","selected","opacity","DEFAULT_LABELS","showMore","showLess","ListDataUI","itemsToShow","selectedItemId","tooltipProps","onExpand","onItemClick","showAll","setShowAll","items","item","index","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"],"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 trace the line you want to measure',\n inactive: 'Click on the map to trace the line you want to measure',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide measure',\n inactive: 'Show measure',\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 e: MouseEvent<HTMLElement>,\n mode: NonNullable<(typeof modes)[keyof typeof modes]>['value'],\n ) => {\n e.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 trace the line you want to measure',\n inactive: 'Click on the map to trace the line you want to measure',\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} 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,\n modes,\n modesMapping,\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='Decrease zoom'\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>\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 cursor: 'not-allowed',\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'>\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 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","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","option","t9","slice","t10","t11","t12","unit","_units","t13","t14","t15","MeasurementToolsUIAction","t16","t17","t18","t19","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","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]}
|