@carto/ps-react-ui 3.0.0 → 4.0.0-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.
Files changed (61) hide show
  1. package/LICENSE.md +29 -0
  2. package/README.md +16 -13
  3. package/dist/components.js +1397 -0
  4. package/dist/components.js.map +1 -0
  5. package/dist/types/common/common.d.ts +3 -0
  6. package/dist/types/common/index.d.ts +25 -0
  7. package/dist/types/common/lasso-tools.d.ts +33 -0
  8. package/dist/types/common/measurement-tools.d.ts +66 -0
  9. package/dist/types/components/geolocation-controls/const.d.ts +5 -0
  10. package/dist/types/components/geolocation-controls/geolocation-controls.d.ts +3 -0
  11. package/dist/types/components/geolocation-controls/types.d.ts +16 -0
  12. package/dist/types/components/index.d.ts +16 -5
  13. package/dist/types/components/lasso-tool/chip.d.ts +6 -0
  14. package/dist/types/components/lasso-tool/const.d.ts +5 -0
  15. package/dist/types/components/lasso-tool/icons.d.ts +6 -0
  16. package/dist/types/components/lasso-tool/lasso-tool-inline.d.ts +3 -0
  17. package/dist/types/components/lasso-tool/lasso-tool.d.ts +3 -0
  18. package/dist/types/components/lasso-tool/styles.d.ts +132 -0
  19. package/dist/types/components/lasso-tool/types.d.ts +69 -0
  20. package/dist/types/components/list-data/list-data.d.ts +3 -0
  21. package/dist/types/components/list-data/styles.d.ts +37 -0
  22. package/dist/types/components/list-data/types.d.ts +16 -14
  23. package/dist/types/components/measurement-tools/const.d.ts +5 -0
  24. package/dist/types/components/measurement-tools/icons.d.ts +4 -0
  25. package/dist/types/components/measurement-tools/measurement-tools.d.ts +3 -0
  26. package/dist/types/components/measurement-tools/types.d.ts +61 -0
  27. package/dist/types/components/types.d.ts +1 -0
  28. package/dist/types/components/zoom-controls/styles.d.ts +25 -0
  29. package/dist/types/components/zoom-controls/types.d.ts +17 -0
  30. package/dist/types/components/zoom-controls/zoom-controls.d.ts +3 -0
  31. package/dist/types/widgets/index.d.ts +1 -0
  32. package/dist/widgets.js +2 -0
  33. package/dist/widgets.js.map +1 -0
  34. package/package.json +50 -40
  35. package/dist/index.cjs +0 -30
  36. package/dist/index.js +0 -956
  37. package/dist/types/common-stories/maps/deckgl-maps.component.d.ts +0 -2
  38. package/dist/types/common-stories/maps/google-maps.component.d.ts +0 -3
  39. package/dist/types/common-stories/maps/map-container.component.d.ts +0 -4
  40. package/dist/types/common-stories/maps/map.component.d.ts +0 -2
  41. package/dist/types/components/list-data/index.d.ts +0 -2
  42. package/dist/types/components/list-data/list-data.component.d.ts +0 -37
  43. package/dist/types/components/list-data/list-data.styles.d.ts +0 -6
  44. package/dist/types/components/map-measurement-tool-ui/index.d.ts +0 -1
  45. package/dist/types/components/map-measurement-tool-ui/map-measurement-tool-ui.component.d.ts +0 -4
  46. package/dist/types/components/map-measurement-tool-ui/map-measurement-tool-ui.styles.d.ts +0 -25
  47. package/dist/types/components/scroll-to-anchor/index.d.ts +0 -2
  48. package/dist/types/components/scroll-to-anchor/scroll-to-anchor.component.d.ts +0 -34
  49. package/dist/types/components/scroll-to-anchor/scroll-to-anchor.styles.d.ts +0 -13
  50. package/dist/types/components/scroll-to-anchor/types.d.ts +0 -10
  51. package/dist/types/components/section-container/index.d.ts +0 -2
  52. package/dist/types/components/section-container/section-container.component.d.ts +0 -28
  53. package/dist/types/components/section-container/section-container.styles.d.ts +0 -22
  54. package/dist/types/components/section-container/types.d.ts +0 -10
  55. package/dist/types/components/tabs-to-anchor/index.d.ts +0 -2
  56. package/dist/types/components/tabs-to-anchor/tabs-to-anchor.component.d.ts +0 -25
  57. package/dist/types/components/tabs-to-anchor/tabs-to-anchor.styles.d.ts +0 -23
  58. package/dist/types/components/tabs-to-anchor/types.d.ts +0 -9
  59. package/dist/types/index.d.ts +0 -2
  60. package/dist/types/utils/create-select-options-from-array.utils.d.ts +0 -5
  61. package/dist/types/utils/index.d.ts +0 -1
@@ -0,0 +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 from '@mui/icons-material/ArrowDropDown'\nimport MoreVertOutlined from '@mui/icons-material/MoreVertOutlined'\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","tag","border","borderColor","main","alpha","more","chip","overflowX","scrollbarWidth","flexWrap","disabled","opacity","action","disabledOpacity","DrawPolygonIcon","props","$","_c","t0","Symbol","for","t1","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","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","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","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","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]}
@@ -0,0 +1,3 @@
1
+ export type EditableModesMapping = {
2
+ icon: ReactNode
3
+ }
@@ -0,0 +1,25 @@
1
+ export {
2
+ CustomMeasureMode,
3
+ MeasurementMode,
4
+ MeasurementModeOption,
5
+ MeasurementModes,
6
+ MeasurementOptionsMode,
7
+ MeasurementOptionsUnit,
8
+ MeasurementSystem,
9
+ MeasurementUnit,
10
+ MeasurementUnitImperialDistance,
11
+ MeasurementUnitMetricDistance,
12
+ MeasurementUnitOption,
13
+ MeasurementUnits,
14
+ MeasurementModesMapping,
15
+ MeasurementUnitsMapping,
16
+ MeasureUnitMapping,
17
+ } from './measurement-tools'
18
+
19
+ export {
20
+ LassoToolsMode,
21
+ LassoToolsModeOption,
22
+ LassoToolsModes,
23
+ LassoToolOptionsMode,
24
+ LassoToolsModesMapping,
25
+ } from './lasso-tools'
@@ -0,0 +1,33 @@
1
+ import type { ReactNode } from 'react'
2
+ import type { Class } from 'type-fest'
3
+ import type { GeoJsonEditMode } from '@deck.gl-community/editable-layers'
4
+ import type { EditableModesMapping } from './common'
5
+
6
+ export type LassoToolsMode =
7
+ | 'polygon'
8
+ | 'rectangle'
9
+ | 'circle'
10
+ | 'lasso'
11
+ | 'edit'
12
+
13
+ export interface LassoToolsModeOption<M extends string = LassoToolsMode> {
14
+ value: M
15
+ mode: Class<GeoJsonEditMode>
16
+ }
17
+
18
+ export type LassoToolsModes<M extends string = LassoToolsMode> = Record<
19
+ M,
20
+ LassoToolsModeOption<M>
21
+ >
22
+
23
+ export type LassoToolOptionsMode<M extends string = LassoToolsMode> = Record<
24
+ M,
25
+ string | undefined
26
+ >
27
+
28
+ export type LassoToolsModesMapping<M extends string> = Record<
29
+ M,
30
+ EditableModesMapping & {
31
+ disabled?: boolean
32
+ }
33
+ >
@@ -0,0 +1,66 @@
1
+ import type { Class } from 'type-fest'
2
+ import type { EditableModesMapping } from './common'
3
+ import type { GeoJsonEditMode } from '@deck.gl-community/editable-layers'
4
+
5
+ export type MeasurementSystem = 'metric' | 'imperial'
6
+
7
+ export type MeasurementUnitMetricDistance =
8
+ | 'm-km'
9
+ | 'kilometer'
10
+ | 'meter'
11
+ | 'centimeter'
12
+ | 'milimeter'
13
+
14
+ export type MeasurementUnitImperialDistance = 'ft-mi' | 'mile' | 'yard' | 'feet'
15
+
16
+ export type MeasurementUnit =
17
+ | MeasurementUnitMetricDistance
18
+ | MeasurementUnitImperialDistance
19
+
20
+ export type MeasurementMode = 'distance' | 'buffer' | 'area'
21
+
22
+ export interface MeasurementModeOption<
23
+ M extends string = MeasurementMode,
24
+ T = GeoJSONEditMode,
25
+ > {
26
+ value: M
27
+ mode: Class<T>
28
+ }
29
+
30
+ export type MeasurementModes<
31
+ M extends string = MeasurementMode,
32
+ T = GeoJSONEditMode,
33
+ > = Record<M, MeasurementModeOption<M, T>>
34
+
35
+ export interface MeasurementUnitOption<U extends string = MeasurementUnit> {
36
+ value: U
37
+ system?: MeasurementSystem
38
+ }
39
+
40
+ export type MeasurementUnits<
41
+ T extends string = keyof MeasurementModes,
42
+ U extends string = MeasurementUnit,
43
+ > = Record<T, MeasurementUnitOption<U>[]>
44
+
45
+ export type MeasurementOptionsMode<T extends string = MeasurementMode> = Record<
46
+ T,
47
+ string | undefined
48
+ >
49
+ export type MeasurementOptionsUnit<T extends string = MeasurementUnit> = Record<
50
+ T,
51
+ string | undefined
52
+ >
53
+
54
+ export type CustomMeasureMode<T> = InstanceType<Class<T>>
55
+
56
+ export type MeasurementModesMapping<T extends string> = Record<
57
+ T,
58
+ EditableModesMapping
59
+ >
60
+
61
+ export type MeasureUnitMapping = {
62
+ short: string
63
+ }
64
+
65
+ export type MeasurementUnitsMapping<U extends string = MeasurementUnit> =
66
+ Record<U, MeasureUnitMapping>
@@ -0,0 +1,5 @@
1
+ export declare const tooltipLabelsDefault: {
2
+ enabled: string;
3
+ disabled: string;
4
+ };
5
+ export declare const ariaLabel = "geolocation";
@@ -0,0 +1,3 @@
1
+ import { GeolocationControlProps } from './types';
2
+ import { JSX } from 'react';
3
+ export declare function GeolocationControls({ disabled, labels, PaperProps, TooltipProps, watch, onChange, onError, }: GeolocationControlProps): JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { PaperProps, TooltipProps } from '@mui/material';
2
+ export interface GeolocationControlProps {
3
+ disabled?: boolean;
4
+ labels?: {
5
+ tooltip: {
6
+ enabled: string;
7
+ disabled: string;
8
+ };
9
+ ariaLabel: string;
10
+ };
11
+ PaperProps?: PaperProps;
12
+ TooltipProps?: Omit<TooltipProps, 'title'>;
13
+ watch?: boolean;
14
+ onChange: (props: Parameters<PositionCallback>[0]['coords']) => void;
15
+ onError?: (error: Parameters<PositionErrorCallback>[0]) => void;
16
+ }
@@ -1,5 +1,16 @@
1
- export * from './list-data';
2
- export * from './section-container';
3
- export * from './tabs-to-anchor';
4
- export * from './scroll-to-anchor';
5
- export * from './map-measurement-tool-ui';
1
+ export type { CustomMeasureMode, MeasurementMode, MeasurementModeOption, MeasurementModes, MeasurementModesMapping, MeasurementOptionsMode, MeasurementOptionsUnit, MeasurementSystem, MeasurementUnit, MeasurementUnitImperialDistance, MeasurementUnitMetricDistance, MeasurementUnitOption, MeasurementUnits, LassoToolsMode, LassoToolsModeOption, LassoToolsModes, LassoToolOptionsMode, LassoToolsModesMapping, } from './types';
2
+ export type { LassoToolsComponentProps, LassoToolsInlineComponentProps, } from './lasso-tool/types';
3
+ export { LassoToolsUI } from './lasso-tool/lasso-tool';
4
+ export { LassoToolsInlineUI } from './lasso-tool/lasso-tool-inline';
5
+ export { DEFAULT_LASSO_TOOLS_MODES_MAPPING, LASSO_TOOLS_LABELS, } from './lasso-tool/const';
6
+ export { DrawCircleIcon, DrawLassoIcon, DrawPolygonIcon, DrawSquareIcon, SelectToolIcon, } from './lasso-tool/icons';
7
+ export type { MeasurementToolsComponentProps } from './measurement-tools/types';
8
+ export { DEFAULT_MEASUREMENT_TOOLS_LABELS, DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING, } from './measurement-tools/const';
9
+ export { AreaIcon, BufferIcon, RulerIcon } from './measurement-tools/icons';
10
+ export { MeasurementToolsUI } from './measurement-tools/measurement-tools';
11
+ export type { GeolocationControlProps } from './geolocation-controls/types';
12
+ export { GeolocationControls } from './geolocation-controls/geolocation-controls';
13
+ export type { ZoomControlProps } from './zoom-controls/types';
14
+ export { ZoomControlsUI } from './zoom-controls/zoom-controls';
15
+ export type { ListDataProps, DataItem } from './list-data/types';
16
+ export { ListDataUI } from './list-data/list-data';
@@ -0,0 +1,6 @@
1
+ import { PickDeep } from 'type-fest';
2
+ import { LassoToolsComponentProps, LassoToolsData } from './types';
3
+ export declare function LassoToolsUIChip({ chipProps, value, labels, onChipToggle, onDelete, }: Pick<LassoToolsComponentProps, 'chipProps' | 'onDelete' | 'onChipToggle'> & {
4
+ value: LassoToolsData;
5
+ labels?: PickDeep<LassoToolsComponentProps['labels'], 'chip'>['chip'];
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { LassoToolsMode, LassoToolsModesMapping } from '../types';
2
+ import { LassoToolsComponentProps } from './types';
3
+ import { RequiredDeep } from 'type-fest';
4
+ export declare const LASSO_TOOLS_LABELS: RequiredDeep<LassoToolsComponentProps['labels']>;
5
+ export declare const DEFAULT_LASSO_TOOLS_MODES_MAPPING: LassoToolsModesMapping<LassoToolsMode>;
@@ -0,0 +1,6 @@
1
+ import { SVGProps } from 'react';
2
+ export declare function DrawPolygonIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
3
+ export declare function DrawSquareIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function DrawCircleIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
5
+ export declare function DrawLassoIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
6
+ export declare function SelectToolIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { JSX } from 'react';
2
+ import { LassoToolsInlineComponentProps } from './types';
3
+ export declare function LassoToolsInlineUI({ enabled, values, chipProps, labels, modes, modesMapping, modeSelected, BoxProps: { sx, ...BoxProps }, onChipToggle, onDelete, onChangeMode, onAllChipToggle, onAllDelete, }: LassoToolsInlineComponentProps): JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { JSX } from 'react';
2
+ import { LassoToolsComponentProps } from './types';
3
+ export declare function LassoToolsUI({ enabled, values, actionProps, chipProps, labels, modes, modesMapping, modeSelected, PaperProps: { sx, ...PaperProps }, onActionToggle, onChipToggle, onDelete, onChangeMode, onAllChipToggle, onAllDelete, }: LassoToolsComponentProps): JSX.Element;