@carto/ps-react-ui 4.2.7 → 4.3.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/cjs-D4KH3azB.js +85 -0
- package/dist/cjs-D4KH3azB.js.map +1 -0
- package/dist/components.js +770 -1415
- package/dist/components.js.map +1 -1
- package/dist/error-B2IJ9d2h.js +38 -0
- package/dist/error-B2IJ9d2h.js.map +1 -0
- package/dist/exports-Cr43OCul.js +51 -0
- package/dist/exports-Cr43OCul.js.map +1 -0
- package/dist/lasso-tool-BwRzEW7k.js +534 -0
- package/dist/lasso-tool-BwRzEW7k.js.map +1 -0
- package/dist/no-data-C54XJt13.js +61 -0
- package/dist/no-data-C54XJt13.js.map +1 -0
- package/dist/note-t51drNe0.js +124 -0
- package/dist/note-t51drNe0.js.map +1 -0
- package/dist/options-D9wflre6.js +49 -0
- package/dist/options-D9wflre6.js.map +1 -0
- package/dist/row-DrHwXNvF.js +35 -0
- package/dist/row-DrHwXNvF.js.map +1 -0
- package/dist/series-D3Pc-kYX.js +91 -0
- package/dist/series-D3Pc-kYX.js.map +1 -0
- package/dist/smart-tooltip-BEtBaIdz.js +39 -0
- package/dist/smart-tooltip-BEtBaIdz.js.map +1 -0
- package/dist/styles-CCZnY17y.js +117 -0
- package/dist/styles-CCZnY17y.js.map +1 -0
- package/dist/tooltip-BDnrRKrp.js +25 -0
- package/dist/tooltip-BDnrRKrp.js.map +1 -0
- package/dist/types/components/measurement-tools/styles.d.ts +13 -4
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/use-debounce.d.ts +19 -0
- package/dist/types/hooks/use-widget-ref.d.ts +17 -0
- package/dist/types/widgets/_shared/chart-config/config-factory.d.ts +38 -0
- package/dist/types/widgets/_shared/chart-config/csv-modifiers.d.ts +19 -0
- package/dist/types/widgets/_shared/chart-config/index.d.ts +7 -0
- package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +85 -0
- package/dist/types/widgets/_shared/skeleton/index.d.ts +4 -0
- package/dist/types/widgets/_shared/skeleton/styles.d.ts +19 -0
- package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -0
- package/dist/types/widgets/actions/change-column/change-column.d.ts +16 -0
- package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +9 -0
- package/dist/types/widgets/actions/change-column/types.d.ts +19 -0
- package/dist/types/widgets/actions/download/download.d.ts +2 -0
- package/dist/types/widgets/actions/download/exports.d.ts +6 -0
- package/dist/types/widgets/actions/download/types.d.ts +21 -0
- package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +2 -0
- package/dist/types/widgets/actions/fullscreen/styles.d.ts +16 -0
- package/dist/types/widgets/actions/fullscreen/types.d.ts +20 -0
- package/dist/types/widgets/actions/index.d.ts +18 -0
- package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +19 -0
- package/dist/types/widgets/actions/lock-selection/types.d.ts +36 -0
- package/dist/types/widgets/actions/relative-data/relative-data.d.ts +18 -0
- package/dist/types/widgets/actions/relative-data/style.d.ts +8 -0
- package/dist/types/widgets/actions/relative-data/types.d.ts +27 -0
- package/dist/types/widgets/actions/relative-data/utils.d.ts +9 -0
- package/dist/types/widgets/actions/relative-data/utils.test.d.ts +1 -0
- package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +18 -0
- package/dist/types/widgets/actions/searcher/searcher.d.ts +21 -0
- package/dist/types/widgets/actions/searcher/types.d.ts +64 -0
- package/dist/types/widgets/actions/shared/styles.d.ts +11 -0
- package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -0
- package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +16 -0
- package/dist/types/widgets/actions/stack-toggle/types.d.ts +25 -0
- package/dist/types/widgets/actions/zoom-toggle/index.d.ts +2 -0
- package/dist/types/widgets/actions/zoom-toggle/style.d.ts +13 -0
- package/dist/types/widgets/actions/zoom-toggle/types.d.ts +41 -0
- package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +18 -0
- package/dist/types/widgets/bar/config.d.ts +5 -0
- package/dist/types/widgets/bar/index.d.ts +3 -0
- package/dist/types/widgets/bar/skeleton.d.ts +1 -0
- package/dist/types/widgets/bar/style.d.ts +37 -0
- package/dist/types/widgets/bar/types.d.ts +9 -0
- package/dist/types/widgets/category/category-ui.d.ts +2 -0
- package/dist/types/widgets/category/components/category-bar.d.ts +7 -0
- package/dist/types/widgets/category/components/category-legend.d.ts +6 -0
- package/dist/types/widgets/category/components/category-row-multi.d.ts +11 -0
- package/dist/types/widgets/category/components/category-row-other.d.ts +6 -0
- package/dist/types/widgets/category/components/category-row-single.d.ts +11 -0
- package/dist/types/widgets/category/components/index.d.ts +10 -0
- package/dist/types/widgets/category/config.d.ts +16 -0
- package/dist/types/widgets/category/index.d.ts +6 -0
- package/dist/types/widgets/category/skeleton.d.ts +1 -0
- package/dist/types/widgets/category/style.d.ts +120 -0
- package/dist/types/widgets/category/types.d.ts +34 -0
- package/dist/types/widgets/echart/const.d.ts +1 -0
- package/dist/types/widgets/echart/echart-ui.d.ts +2 -0
- package/dist/types/widgets/echart/echart.d.ts +2 -0
- package/dist/types/widgets/echart/index.d.ts +5 -0
- package/dist/types/widgets/echart/options.d.ts +2 -0
- package/dist/types/widgets/echart/types.d.ts +34 -0
- package/dist/types/widgets/echart/utils.d.ts +80 -0
- package/dist/types/widgets/error/error.d.ts +2 -0
- package/dist/types/widgets/error/index.d.ts +2 -0
- package/dist/types/widgets/error/types.d.ts +12 -0
- package/dist/types/widgets/formula/components/item.d.ts +2 -0
- package/dist/types/widgets/formula/components/prefix.d.ts +2 -0
- package/dist/types/widgets/formula/components/row.d.ts +2 -0
- package/dist/types/widgets/formula/components/series.d.ts +2 -0
- package/dist/types/widgets/formula/components/suffix.d.ts +2 -0
- package/dist/types/widgets/formula/components/value.d.ts +2 -0
- package/dist/types/widgets/formula/config.d.ts +4 -0
- package/dist/types/widgets/formula/formula-ui.d.ts +2 -0
- package/dist/types/widgets/formula/index.d.ts +11 -0
- package/dist/types/widgets/formula/serializer.d.ts +16 -0
- package/dist/types/widgets/formula/skeleton.d.ts +1 -0
- package/dist/types/widgets/formula/style.d.ts +21 -0
- package/dist/types/widgets/formula/types.d.ts +42 -0
- package/dist/types/widgets/histogram/config.d.ts +5 -0
- package/dist/types/widgets/histogram/index.d.ts +3 -0
- package/dist/types/widgets/histogram/skeleton.d.ts +1 -0
- package/dist/types/widgets/histogram/style.d.ts +15 -0
- package/dist/types/widgets/histogram/types.d.ts +9 -0
- package/dist/types/widgets/index.d.ts +9 -1
- package/dist/types/widgets/loader/index.d.ts +3 -0
- package/dist/types/widgets/loader/loader.d.ts +2 -0
- package/dist/types/widgets/loader/types.d.ts +9 -0
- package/dist/types/widgets/loader/utils.d.ts +1 -0
- package/dist/types/widgets/markdown/config.d.ts +4 -0
- package/dist/types/widgets/markdown/index.d.ts +5 -0
- package/dist/types/widgets/markdown/markdown-ui.d.ts +2 -0
- package/dist/types/widgets/markdown/markdown.d.ts +2 -0
- package/dist/types/widgets/markdown/skeleton.d.ts +1 -0
- package/dist/types/widgets/markdown/style.d.ts +2 -0
- package/dist/types/widgets/markdown/types.d.ts +18 -0
- package/dist/types/widgets/no-data/index.d.ts +2 -0
- package/dist/types/widgets/no-data/no-data.d.ts +35 -0
- package/dist/types/widgets/no-data/style.d.ts +6 -0
- package/dist/types/widgets/no-data/types.d.ts +67 -0
- package/dist/types/widgets/note/index.d.ts +2 -0
- package/dist/types/widgets/note/note.d.ts +2 -0
- package/dist/types/widgets/note/style.d.ts +28 -0
- package/dist/types/widgets/note/types.d.ts +8 -0
- package/dist/types/widgets/pie/config.d.ts +5 -0
- package/dist/types/widgets/pie/index.d.ts +3 -0
- package/dist/types/widgets/pie/skeleton.d.ts +1 -0
- package/dist/types/widgets/pie/style.d.ts +15 -0
- package/dist/types/widgets/pie/types.d.ts +9 -0
- package/dist/types/widgets/range/components/range-item.d.ts +2 -0
- package/dist/types/widgets/range/config.d.ts +6 -0
- package/dist/types/widgets/range/index.d.ts +6 -0
- package/dist/types/widgets/range/range-ui.d.ts +2 -0
- package/dist/types/widgets/range/serializer.d.ts +16 -0
- package/dist/types/widgets/range/serializer.test.d.ts +1 -0
- package/dist/types/widgets/range/skeleton.d.ts +1 -0
- package/dist/types/widgets/range/style.d.ts +2 -0
- package/dist/types/widgets/range/types.d.ts +33 -0
- package/dist/types/widgets/scatterplot/config.d.ts +5 -0
- package/dist/types/widgets/scatterplot/index.d.ts +3 -0
- package/dist/types/widgets/scatterplot/skeleton.d.ts +1 -0
- package/dist/types/widgets/scatterplot/style.d.ts +24 -0
- package/dist/types/widgets/scatterplot/types.d.ts +9 -0
- package/dist/types/widgets/selection-summary/index.d.ts +2 -0
- package/dist/types/widgets/selection-summary/selection-summary.d.ts +2 -0
- package/dist/types/widgets/selection-summary/style.d.ts +9 -0
- package/dist/types/widgets/selection-summary/types.d.ts +13 -0
- package/dist/types/widgets/skeleton-loader/index.d.ts +2 -0
- package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +2 -0
- package/dist/types/widgets/skeleton-loader/types.d.ts +7 -0
- package/dist/types/widgets/spread/components/max-value.d.ts +2 -0
- package/dist/types/widgets/spread/components/min-value.d.ts +2 -0
- package/dist/types/widgets/spread/components/separator.d.ts +2 -0
- package/dist/types/widgets/spread/config.d.ts +10 -0
- package/dist/types/widgets/spread/index.d.ts +9 -0
- package/dist/types/widgets/spread/skeleton.d.ts +1 -0
- package/dist/types/widgets/spread/spread-ui.d.ts +2 -0
- package/dist/types/widgets/spread/style.d.ts +21 -0
- package/dist/types/widgets/spread/types.d.ts +40 -0
- package/dist/types/widgets/stores/index.d.ts +2 -0
- package/dist/types/widgets/stores/types.d.ts +165 -0
- package/dist/types/widgets/stores/widget-store.d.ts +39 -0
- package/dist/types/widgets/stores/widget-store.test.d.ts +1 -0
- package/dist/types/widgets/subheader/index.d.ts +2 -0
- package/dist/types/widgets/subheader/style.d.ts +19 -0
- package/dist/types/widgets/subheader/subheader.d.ts +2 -0
- package/dist/types/widgets/subheader/types.d.ts +10 -0
- package/dist/types/widgets/table/components/cell-header.d.ts +5 -0
- package/dist/types/widgets/table/components/cell.d.ts +16 -0
- package/dist/types/widgets/table/components/index.d.ts +4 -0
- package/dist/types/widgets/table/components/pagination-actions.d.ts +5 -0
- package/dist/types/widgets/table/components/pagination.d.ts +5 -0
- package/dist/types/widgets/table/components/row.d.ts +5 -0
- package/dist/types/widgets/table/config.d.ts +17 -0
- package/dist/types/widgets/table/helpers.d.ts +38 -0
- package/dist/types/widgets/table/helpers.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/index.d.ts +6 -0
- package/dist/types/widgets/table/hooks/use-pagination.d.ts +33 -0
- package/dist/types/widgets/table/hooks/use-pagination.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/use-selection.d.ts +30 -0
- package/dist/types/widgets/table/hooks/use-selection.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/use-sort.d.ts +22 -0
- package/dist/types/widgets/table/hooks/use-sort.test.d.ts +1 -0
- package/dist/types/widgets/table/index.d.ts +13 -0
- package/dist/types/widgets/table/serializer.d.ts +16 -0
- package/dist/types/widgets/table/skeleton.d.ts +10 -0
- package/dist/types/widgets/table/style.d.ts +33 -0
- package/dist/types/widgets/table/table-ui.d.ts +32 -0
- package/dist/types/widgets/table/types.d.ts +196 -0
- package/dist/types/widgets/timeseries/config.d.ts +5 -0
- package/dist/types/widgets/timeseries/index.d.ts +3 -0
- package/dist/types/widgets/timeseries/skeleton.d.ts +1 -0
- package/dist/types/widgets/timeseries/style.d.ts +38 -0
- package/dist/types/widgets/timeseries/types.d.ts +9 -0
- package/dist/types/widgets/toolbar-actions/index.d.ts +2 -0
- package/dist/types/widgets/toolbar-actions/styles.d.ts +37 -0
- package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +8 -0
- package/dist/types/widgets/toolbar-actions/types.d.ts +45 -0
- package/dist/types/widgets/wrapper/components/actions.d.ts +2 -0
- package/dist/types/widgets/wrapper/components/options.d.ts +2 -0
- package/dist/types/widgets/wrapper/components/title.d.ts +6 -0
- package/dist/types/widgets/wrapper/index.d.ts +6 -0
- package/dist/types/widgets/wrapper/styles.d.ts +89 -0
- package/dist/types/widgets/wrapper/types.d.ts +37 -0
- package/dist/types/widgets/wrapper/wrapper-ui.d.ts +2 -0
- package/dist/types/widgets/wrapper/wrapper.d.ts +2 -0
- package/dist/use-widget-ref-B0aNCANx.js +19 -0
- package/dist/use-widget-ref-B0aNCANx.js.map +1 -0
- package/dist/utils-D3-eQyDR.js +144 -0
- package/dist/utils-D3-eQyDR.js.map +1 -0
- package/dist/widget-store-CB6Trp_0.js +131 -0
- package/dist/widget-store-CB6Trp_0.js.map +1 -0
- package/dist/widgets/actions.js +872 -0
- package/dist/widgets/actions.js.map +1 -0
- package/dist/widgets/bar.js +188 -0
- package/dist/widgets/bar.js.map +1 -0
- package/dist/widgets/category.js +427 -0
- package/dist/widgets/category.js.map +1 -0
- package/dist/widgets/echart.js +115 -0
- package/dist/widgets/echart.js.map +1 -0
- package/dist/widgets/error.js +5 -0
- package/dist/widgets/error.js.map +1 -0
- package/dist/widgets/formula.js +119 -0
- package/dist/widgets/formula.js.map +1 -0
- package/dist/widgets/histogram.js +186 -0
- package/dist/widgets/histogram.js.map +1 -0
- package/dist/widgets/loader.js +57 -0
- package/dist/widgets/loader.js.map +1 -0
- package/dist/widgets/markdown.js +127 -0
- package/dist/widgets/markdown.js.map +1 -0
- package/dist/widgets/no-data.js +5 -0
- package/dist/widgets/no-data.js.map +1 -0
- package/dist/widgets/note.js +5 -0
- package/dist/widgets/note.js.map +1 -0
- package/dist/widgets/pie.js +230 -0
- package/dist/widgets/pie.js.map +1 -0
- package/dist/widgets/range.js +217 -0
- package/dist/widgets/range.js.map +1 -0
- package/dist/widgets/scatterplot.js +233 -0
- package/dist/widgets/scatterplot.js.map +1 -0
- package/dist/widgets/selection-summary.js +40 -0
- package/dist/widgets/selection-summary.js.map +1 -0
- package/dist/widgets/skeleton-loader.js +24 -0
- package/dist/widgets/skeleton-loader.js.map +1 -0
- package/dist/widgets/spread.js +161 -0
- package/dist/widgets/spread.js.map +1 -0
- package/dist/widgets/stores.js +5 -0
- package/dist/widgets/stores.js.map +1 -0
- package/dist/widgets/subheader.js +52 -0
- package/dist/widgets/subheader.js.map +1 -0
- package/dist/widgets/table.js +672 -0
- package/dist/widgets/table.js.map +1 -0
- package/dist/widgets/timeseries.js +187 -0
- package/dist/widgets/timeseries.js.map +1 -0
- package/dist/widgets/toolbar-actions.js +6725 -0
- package/dist/widgets/toolbar-actions.js.map +1 -0
- package/dist/widgets/wrapper.js +295 -0
- package/dist/widgets/wrapper.js.map +1 -0
- package/dist/widgets.js +12 -1
- package/dist/widgets.js.map +1 -1
- package/package.json +114 -4
package/dist/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":["../../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","../src/components/tooltip/tooltip.tsx","../src/components/lasso-tool/icons.tsx","../src/components/lasso-tool/const.tsx","../src/components/lasso-tool/styles.ts","../src/components/lasso-tool/chip.tsx","../src/components/lasso-tool/lasso-tool.tsx","../src/components/lasso-tool/lasso-tool-inline.tsx","../src/components/measurement-tools/icons.tsx","../src/components/measurement-tools/const.tsx","../src/components/measurement-tools/styles.ts","../src/components/measurement-tools/measurement-tools.tsx","../src/components/geolocation-controls/const.ts","../src/components/geolocation-controls/geolocation-controls.tsx","../src/components/zoom-controls/styles.ts","../src/components/zoom-controls/zoom-controls.tsx","../src/components/list-data/list-data-skeleton.tsx","../src/components/no-data-alert/no-data-alert.tsx","../src/hooks/use-skeleton.ts","../src/components/list-data/styles.ts","../src/components/smart-tooltip/smart-tooltip.tsx","../src/components/list-data/list-data.tsx","../src/components/basemaps/styles.ts","../src/components/basemaps/const.ts","../src/components/basemaps/header.tsx","../src/components/basemaps/group-wrapper.tsx","../src/components/basemaps/group.tsx","../src/components/responsive-drawer/responsive-drawer.tsx","../src/components/basemaps/basemaps.tsx"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { Tooltip as MuiTooltip, type TooltipProps } from '@mui/material'\n\nlet tooltipEnterDelay = 500\n\n/**\n * A wrapper around MUI's Tooltip component with enterNextDelay set to 1000ms by default.\n *\n * This component ensures consistent tooltip behavior across the application.\n *\n * @example\n * <Tooltip title=\"This is a tooltip\">\n * <Button>Hover me</Button>\n * </Tooltip>\n */\nexport function Tooltip({\n children,\n title,\n enterNextDelay = tooltipEnterDelay,\n ...props\n}: TooltipProps) {\n return (\n <MuiTooltip title={title} enterNextDelay={enterNextDelay} {...props}>\n {children}\n </MuiTooltip>\n )\n}\n\nexport function setTooltipEnterDelay(delay: number) {\n tooltipEnterDelay = delay\n}\n","import type { SVGProps } from 'react'\n\nexport function DrawPolygonIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.996 2.996 0 0 0 0 2H6.829a2.995 2.995 0 0 0 0-2h10.342Zm-2.463-5.707 3.998 4a3.013 3.013 0 0 0-1.414 1.414l-4-3.999a3.014 3.014 0 0 0 1.31-1.214l.106-.201ZM2.998 6.829a2.995 2.995 0 0 0 2.002 0v10.342a2.993 2.993 0 0 0-2.002 0V6.83ZM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm1.84-3.919c.464.483 1.09.81 1.79.896l-1.47 2.94a2.992 2.992 0 0 0-1.79-.894l1.47-2.942ZM16 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm9.171.998a2.994 2.994 0 0 0 0 2.002H6.829a2.995 2.995 0 0 0 0-2.002h6.342Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawSquareIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.993 2.993 0 0 0-.17.974l-.001.052.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2h10.342ZM2.998 6.828a2.995 2.995 0 0 0 2.002 0V17.17a2.993 2.993 0 0 0-2.002 0V6.83Zm16.001 0a2.995 2.995 0 0 0 2 0V17.17a2.993 2.993 0 0 0-2 0V6.829ZM20 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm13.171.998a2.991 2.991 0 0 0-.17.976L17 4.026l.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2H17.17Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawCircleIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2Zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm0 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawLassoIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 3c4.935 0 9 3.736 9 9l-.002.343-.012.668c-.012.438-.033.86-.062 1.266l-.05.597C20.498 18.767 19.267 21 17 21c-1.192 0-1.971-.341-2.988-1.122l-.472-.375c-.401-.319-.64-.473-.888-.566a4.938 4.938 0 0 0-.415-.13l-.34-.085-.398-.086-.456-.086-.66-.111-1.708-.273a9.112 9.112 0 0 1-.952-.206C5.46 17.301 3 14.954 3 12.015c0-1.508.485-2.995 1.436-4.458.355.585.906 1.04 1.562 1.272C5.328 9.916 5 10.977 5 12.015c0 1.889 1.78 3.588 3.282 4.025l.085.023.345.076.517.092 1.619.257.583.1.518.098.237.05.433.103c.272.07.512.143.73.224.434.161.783.373 1.235.718l.457.362c.806.646 1.24.857 1.959.857.893 0 1.63-1.518 1.895-4.45l.045-.585c.013-.2.024-.407.033-.62l.02-.655c.005-.224.007-.454.007-.69 0-4.12-3.133-7-7-7a1 1 0 1 1 0-2ZM7 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function SelectToolIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='m10.083 19.394.057.113a1 1 0 0 0 1.72.007l2.869-4.786 4.786-2.87a1 1 0 0 0-.121-1.777l-14-6c-.83-.356-1.669.483-1.313 1.313l6.002 14ZM6.905 6.904l9.903 4.244-3.322 1.995-.102.069a1 1 0 0 0-.242.274l-1.992 3.321-4.245-9.903Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n","import type { LassoToolsMode, LassoToolsModesMapping } from '../types'\nimport {\n DrawPolygonIcon,\n DrawSquareIcon,\n DrawCircleIcon,\n DrawLassoIcon,\n SelectToolIcon,\n} from './icons'\nimport type { LassoToolsComponentProps } from './types'\nimport type { RequiredDeep } from 'type-fest'\n\nexport const LASSO_TOOLS_LABELS: NonNullable<\n RequiredDeep<LassoToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to draw your spatial filter',\n inactive: 'Click on the map to draw your spatial filter',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide drawing',\n inactive: 'Show drawing',\n },\n },\n options: {\n mode: {\n title: 'Choose a drawing tool',\n options: {\n circle: 'Circle',\n lasso: 'Lasso tool',\n polygon: 'Polygon',\n rectangle: 'Rectangle',\n edit: 'Edit feature',\n },\n },\n },\n noData: {\n title: 'Spatial filter not applied',\n description:\n 'Select a drawing or editing tool and click on the map to define your spatial filter',\n },\n actions: {\n toggleAll: {\n active: 'Hide all',\n inactive: 'Show all',\n },\n deleteAll: 'Remove all',\n },\n} as const\n\nexport const DEFAULT_LASSO_TOOLS_MODES_MAPPING: LassoToolsModesMapping<LassoToolsMode> =\n {\n polygon: {\n icon: DrawPolygonIcon,\n },\n rectangle: {\n icon: DrawSquareIcon,\n },\n circle: {\n icon: DrawCircleIcon,\n },\n lasso: {\n icon: DrawLassoIcon,\n },\n edit: {\n icon: SelectToolIcon,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n overflow: 'hidden',\n\n '&.inline': {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n paddingTop: ({ spacing }) => spacing(1),\n '&.inline': {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n borderRadius: ({ spacing }) => spacing(0.5),\n\n '& .MuiDivider-root': {\n height: ({ spacing }) => spacing(4),\n\n '&.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(4),\n },\n '&.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(4),\n margin: ({ spacing }) => `${spacing(0.5, 0, 1)} !important`,\n borderRadius: '0 !important',\n },\n },\n\n '& .MuiToggleButton-sizeSmall': {\n margin: 0,\n\n '&.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(3),\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(3),\n },\n },\n\n '.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n\n '&:first-of-type': {\n marginLeft: 0,\n },\n '&:not(:last-of-type)': {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n },\n '&.MuiToggleButtonGroup-horizontal:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0.5),\n },\n },\n '&.MuiToggleButtonGroup-vertical:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0, 0.5),\n\n '&:not(:last-of-type)': {\n marginRight: 0,\n },\n '&:last-of-type': {\n marginBottom: 0,\n },\n },\n },\n },\n },\n icon: {\n borderRadius: 0,\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingBottom: ({ spacing }) => spacing(0.5),\n\n '&.inline': {\n paddingX: 0,\n paddingBottom: 0,\n },\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n more: {\n width: ({ spacing }) => spacing(4),\n },\n },\n chip: {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n overflowX: 'auto',\n scrollbarWidth: 'none',\n paddingX: ({ spacing }) => spacing(1),\n\n '&.inline': {\n overflowX: 'visible',\n flexWrap: 'wrap',\n },\n },\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Chip } from '@mui/material'\nimport type { PickDeep } from 'type-fest'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, LassoToolsData } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsUIChip({\n chipProps,\n value,\n labels,\n onChipToggle,\n onDelete,\n}: Pick<LassoToolsComponentProps, 'chipProps' | 'onDelete' | 'onChipToggle'> & {\n value: LassoToolsData\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'chip'>['chip']\n}) {\n const chipState = value.visible ? 'active' : 'inactive'\n const chipLabel =\n labels?.tooltip?.[chipState] ?? LASSO_TOOLS_LABELS.chip.tooltip[chipState]\n\n return (\n <Tooltip title={chipLabel} placement='bottom' {...chipProps?.TooltipProps}>\n <Chip\n sx={{\n ...styles.chip.chip,\n }}\n color={value.visible ? 'secondary' : 'default'}\n size='small'\n onDelete={() => onDelete(value.id)}\n label={value.label}\n onClick={() => onChipToggle(value.id, !value.visible)}\n {...chipProps?.ChipsProps}\n />\n </Tooltip>\n )\n}\n","import { ArrowDropDown, MoreVertOutlined } from '@mui/icons-material'\nimport {\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n SvgIcon,\n ToggleButton,\n Typography,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport deepmerge from 'deepmerge'\nimport {\n useMemo,\n useState,\n type ComponentProps,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport type { PickDeep } from 'type-fest'\nimport { Tooltip } from '../tooltip/tooltip'\nimport type { LassoToolsModes } from '../types'\nimport { LassoToolsUIChip } from './chip'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, OptionsChildrenProps } from './types'\n\nexport function LassoToolsUI({\n enabled,\n values = [],\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = {},\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n ChipsSlot = LassoToolsUI.Chips,\n ActionSlot = LassoToolsUI.Action,\n SecondaryActionsSlot = LassoToolsUI.SecondaryActions,\n OptionsSlot = LassoToolsUI.Options,\n}: LassoToolsComponentProps): JSX.Element {\n const slotArgs = {\n enabled,\n values,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n }\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n {!!ActionSlot && <ActionSlot {...slotArgs} />}\n {!!OptionsSlot && (\n <Options>\n {(props) => {\n return <OptionsSlot {...slotArgs} {...props} />\n }}\n </Options>\n )}\n {!!ChipsSlot && <ChipsSlot {...slotArgs} />}\n {!!SecondaryActionsSlot && <SecondaryActionsSlot {...slotArgs} />}\n </Paper>\n )\n}\n\nfunction LassoToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n LassoToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'action'>['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n LASSO_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nfunction Options({\n TriggerProps: { Icon = <ArrowDropDown />, sx } = {},\n MenuProps,\n children,\n}: {\n TriggerProps?: {\n Icon?: ReactNode\n sx?: SxProps<Theme>\n }\n MenuProps?: Partial<ComponentProps<typeof Menu>>\n children: (props: OptionsChildrenProps) => JSX.Element\n}) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={{\n ...styles.options.icon,\n ...sx,\n }}\n onClick={handleToggle}\n >\n {Icon}\n </IconButton>\n <Menu\n id='lasso-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'lasso-button',\n sx: styles.options.menu,\n }}\n {...MenuProps}\n >\n <div>\n {children({\n onClose: handleClose,\n })}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n modeSelected,\n labels,\n onChangeMode,\n onClose,\n}: Required<Pick<LassoToolsComponentProps, 'modeSelected' | 'onChangeMode'>> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n onClose: OptionsChildrenProps['onClose']\n}) {\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n value: (typeof data)[number]['value'],\n ) => {\n e.preventDefault()\n onChangeMode?.(value)\n onClose()\n }\n\n return data.map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n disabled={!!mode.disabled}\n onClick={(e) => handleClick(e, mode.value)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>\n <mode.icon />\n </SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })\n}\n\nfunction SecondaryActionsWrapper({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n if (!values?.length || values.length <= 1) {\n return null\n }\n\n const hasVisible = values?.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.actions?.toggleAll?.active ??\n LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.actions?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.actions?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <>\n <Divider orientation='vertical' flexItem />\n <Options\n TriggerProps={{ Icon: <MoreVertOutlined />, sx: styles.options.more }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n }}\n >\n {(props) => {\n return (\n <>\n <MenuItem\n color='inherit'\n onClick={() => {\n onAllChipToggle?.()\n props.onClose()\n }}\n >\n {toggleAllLabel}\n </MenuItem>\n <Divider />\n <MenuItem\n color='error'\n onClick={() => {\n onAllDelete?.()\n props.onClose()\n }}\n >\n <Typography variant='body2' color='error'>\n {deleteAllLabel}\n </Typography>\n </MenuItem>\n </>\n )\n }}\n </Options>\n </>\n )\n}\n\nLassoToolsUI.Action = function ActionsWrapper({\n modes,\n modesMapping,\n modeSelected,\n actionProps,\n enabled,\n labels,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const handleToggle: LassoToolsComponentProps['onActionToggle'] = (data) => {\n return onActionToggle?.(data)\n }\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = data[mode]\n\n return (\n <LassoToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled ?? false}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon && <modeSelectedValue.icon />}\n </LassoToolsUIAction>\n )\n}\n\nLassoToolsUI.Chips = function ChipsWrapper({\n values,\n labels,\n chipProps,\n onDelete,\n onChipToggle,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n onActionToggle?.(false)\n return onDelete?.(valueId)\n }\n\n return (\n !!values?.length && (\n <Box sx={styles.chip.container}>\n {values?.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={(id, data) => onChipToggle?.(id, data)}\n />\n ))}\n </Box>\n )\n )\n}\n\nLassoToolsUI.SecondaryActions = SecondaryActionsWrapper\n\nLassoToolsUI.Options = function OptionsWrapper({\n values,\n modes,\n modesMapping,\n modeSelected,\n labels,\n onChangeMode,\n ...props\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> &\n OptionsChildrenProps) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modesValues = Object.values(_modes)\n\n const handleChangeMode: LassoToolsComponentProps['onChangeMode'] = (data) => {\n return onChangeMode?.(data)\n }\n\n return (\n <>\n <ModeList data={modesValues} labels={labels?.options}>\n <OptionsList\n {...props}\n labels={labels?.options}\n data={modesValues}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </ModeList>\n {!!edit && (\n <>\n <Divider />\n <OptionsList\n {...props}\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values?.length,\n },\n ]}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </>\n )}\n </>\n )\n}\n","import {\n Divider,\n Typography,\n SvgIcon,\n ToggleButton,\n Box,\n ToggleButtonGroup,\n Button,\n} from '@mui/material'\nimport { useMemo, type JSX, type MouseEvent, type ReactNode } from 'react'\nimport { styles } from './styles'\nimport type {\n LassoToolsComponentProps,\n LassoToolsInlineComponentProps,\n} from './types'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport type { PickDeep } from 'type-fest'\nimport type { LassoToolsModes } from '../types'\nimport deepmerge from 'deepmerge'\nimport { LassoToolsUIChip } from './chip'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsInlineUI({\n enabled,\n values = [],\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n BoxProps: { sx, ...BoxProps } = {},\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n}: LassoToolsInlineComponentProps): JSX.Element {\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n return onDelete(valueId)\n }\n\n const handleClick = (\n evt: MouseEvent<HTMLElement>,\n mode: NonNullable<(typeof modes)[keyof typeof modes]>['value'],\n ) => {\n evt.preventDefault()\n onChangeMode?.(mode)\n }\n\n const modeExists = (modeSelected ?? '') in modes\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = enabled ? data[mode] : null\n\n const modesValues = Object.values(_modes)\n\n return (\n <Box\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...BoxProps}\n className='inline'\n >\n <ModeList data={modesValues} labels={labels?.options}>\n <ToggleButtonGroup\n value={modeSelectedValue?.value}\n exclusive\n className='inline'\n sx={styles.options.menu}\n onChange={handleClick}\n >\n <OptionsList labels={labels?.options} data={modesValues} />\n {!!edit && (\n <>\n <Divider orientation='vertical' />\n <OptionsList\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values.length,\n },\n ]}\n />\n </>\n )}\n </ToggleButtonGroup>\n </ModeList>\n <Divider flexItem />\n <NoData hasValues={!!values.length} labels={labels?.noData} />\n {!!values.length && (\n <Box sx={styles.chip.container} className='inline'>\n {values.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={onChipToggle}\n />\n ))}\n </Box>\n )}\n <Actions\n values={values}\n labels={labels?.actions}\n onAllChipToggle={onAllChipToggle}\n onAllDelete={onAllDelete}\n />\n </Box>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n className='inline'\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n labels,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n}) {\n return data.map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <Tooltip key={mode.value} title={label} placement='bottom'>\n <ToggleButton\n disabled={!!mode.disabled}\n value={mode.value}\n aria-label={mode.value}\n >\n <SvgIcon>\n <mode.icon />\n </SvgIcon>\n </ToggleButton>\n </Tooltip>\n )\n })\n}\n\nfunction NoData({\n hasValues,\n labels,\n}: {\n hasValues: boolean\n labels: PickDeep<LassoToolsComponentProps['labels'], 'noData'>['noData']\n}) {\n if (hasValues) {\n return null\n }\n\n const title = labels?.title ?? LASSO_TOOLS_LABELS.noData.title\n const description =\n labels?.description ?? LASSO_TOOLS_LABELS.noData.description\n\n return (\n <>\n <Typography variant='body1' color='textSecondary'>\n {title}\n </Typography>\n <Typography variant='body2' color='textSecondary'>\n {description}\n </Typography>\n </>\n )\n}\n\nfunction Actions({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Pick<\n LassoToolsComponentProps,\n 'values' | 'onAllChipToggle' | 'onAllDelete'\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n if (values.length <= 1) {\n return null\n }\n\n const hasVisible = values.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.toggleAll?.active ?? LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <Box>\n <Button color='inherit' onClick={() => onAllChipToggle()}>\n {toggleAllLabel}\n </Button>\n <Button color='error' onClick={() => onAllDelete()}>\n {deleteAllLabel}\n </Button>\n </Box>\n )\n}\n","import type { SVGProps } from 'react'\n\nexport function RulerIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n fill='currentColor'\n {...props}\n >\n <path\n fill='currentColor'\n d='M3 13.5c-.413 0-.766-.147-1.06-.44A1.445 1.445 0 0 1 1.5 12V6c0-.412.147-.766.44-1.06.294-.293.647-.44 1.06-.44h12c.412 0 .766.147 1.06.44.293.294.44.647.44 1.06v6c0 .412-.147.766-.44 1.06-.294.293-.647.44-1.06.44H3ZM3 12h12V6h-2.25v3h-1.5V6h-1.5v3h-1.5V6h-1.5v3h-1.5V6H3v6Z'\n />\n </svg>\n )\n}\n\nexport function BufferIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n {...props}\n >\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M9 1.5a7.5 7.5 0 1 1 0 15 7.5 7.5 0 0 1 0-15ZM9 3a6 6 0 1 0 0 12A6 6 0 0 0 9 3Zm0 4.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n\nexport function AreaIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M4.5 13.5v-9h9v9h-9Zm.75-8.25h7.5v7.5h-7.5v-7.5Z'\n clipRule='evenodd'\n />\n <path\n fill='#2C3032'\n fillRule='evenodd'\n d='M1.5 3A1.5 1.5 0 0 1 3 1.5h12A1.5 1.5 0 0 1 16.5 3v12a1.5 1.5 0 0 1-1.5 1.5H3A1.5 1.5 0 0 1 1.5 15V3ZM3 3h12v12H3V3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n","import type { RequiredDeep } from 'type-fest'\nimport type {\n MeasurementMode,\n MeasurementModesMapping,\n MeasurementUnitsMapping,\n} from '../types'\nimport type { MeasurementToolsComponentProps } from './types'\nimport { RulerIcon, BufferIcon, AreaIcon } from './icons'\n\nexport const DEFAULT_MEASUREMENT_TOOLS_LABELS: NonNullable<\n RequiredDeep<MeasurementToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to start measuring',\n inactive: 'Click on the map to start measuring',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide measure',\n inactive: 'Show measure',\n },\n },\n options: {\n mode: {\n title: 'Choose a measuring tool',\n options: {\n distance: 'Measure distance',\n buffer: 'Buffer distance',\n area: 'Area',\n },\n },\n units: {\n title: 'Unit of measurement',\n modal: {\n title: 'Map Measurement Unit',\n subtitle: 'Select the unit of measurement for your measurements',\n apply: 'Save',\n options: {\n metric: {\n title: 'Meters and Kilometers',\n options: {\n 'm-km': 'Auto',\n kilometer: 'Kilometers',\n meter: 'Meter',\n centimeter: 'Centimeter',\n milimeter: 'Milimeter',\n },\n },\n imperial: {\n title: 'Feet and Miles',\n options: {\n 'ft-mi': 'Auto',\n mile: 'Mile',\n feet: 'Feet',\n yard: 'Yard',\n },\n },\n },\n },\n },\n },\n} as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING: MeasurementUnitsMapping =\n {\n 'm-km': {\n short: 'm-km',\n },\n kilometer: {\n short: 'km',\n },\n meter: {\n short: 'm',\n },\n centimeter: {\n short: 'cm',\n },\n milimeter: {\n short: 'mm',\n },\n 'ft-mi': {\n short: 'ft-mi',\n },\n mile: {\n short: 'mi',\n },\n yard: {\n short: 'yd',\n },\n feet: {\n short: 'ft',\n },\n } as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING: MeasurementModesMapping<MeasurementMode> =\n {\n distance: {\n icon: <RulerIcon />,\n },\n buffer: {\n icon: <BufferIcon />,\n },\n area: {\n icon: <AreaIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\nimport type { CSSProperties } from 'react'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n overflow: 'hidden',\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n marginTop: ({ spacing }) => spacing(1),\n },\n icon: {\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingY: ({ spacing }) => spacing(0.5),\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n modal: {\n toggle: {\n boxShadow: 'none',\n backgroundColor: '#F8F9F9',\n padding: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(2),\n marginBottom: ({ spacing }) => spacing(1),\n '.MuiToggleButtonGroup-grouped': ({ typography }) =>\n ({\n ...typography.caption,\n fontWeight: 500,\n margin: 0,\n '&:first-of-type:not(.MuiDivider-root)': {\n marginLeft: 0,\n },\n }) as CSSProperties,\n },\n subtitle: ({ typography, palette }) =>\n ({\n ...typography.body2,\n color: palette.text.secondary,\n }) as CSSProperties,\n optionsGroup: {\n marginLeft: ({ spacing }) => spacing(1),\n '.MuiTypography-root': ({ typography }) =>\n ({\n ...typography.body2,\n }) as CSSProperties,\n },\n title: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: ({ spacing }) => spacing(2),\n },\n content: {\n paddingX: ({ spacing }) => spacing(2),\n minWidth: ({ spacing }) => spacing(50),\n },\n actions: {\n paddingX: ({ spacing }) => spacing(2),\n },\n },\n },\n chip: {\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { ArrowDropDown, Close } from '@mui/icons-material'\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n FormControl,\n FormControlLabel,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n Radio,\n RadioGroup,\n SvgIcon,\n ToggleButton,\n ToggleButtonGroup,\n Typography,\n} from '@mui/material'\nimport {\n useMemo,\n useState,\n type FormEvent,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n} from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport type { MeasurementToolsComponentProps } from './types'\nimport type { PickDeep, ValueOf } from 'type-fest'\nimport {\n DEFAULT_MEASUREMENT_TOOLS_LABELS,\n DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n} from './const'\nimport type {\n MeasurementSystem,\n MeasurementUnit,\n MeasurementUnitImperialDistance,\n MeasurementUnitMetricDistance,\n MeasurementUnitOption,\n MeasureUnitMapping,\n} from '../types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function MeasurementToolsUI({\n enabled,\n actionProps,\n labels = DEFAULT_MEASUREMENT_TOOLS_LABELS,\n modes,\n modesMapping = DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n unitsMapping = DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = {},\n units,\n unitSelected,\n onActionToggle,\n onChangeMode,\n onChangeUnit,\n}: MeasurementToolsComponentProps): JSX.Element {\n const handleToggle: MeasurementToolsComponentProps['onActionToggle'] = (\n data,\n ) => {\n return onActionToggle(!!data)\n }\n\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const modeExists = (modeSelected ?? '') in data\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof modes\n\n const modeSelectedValue = data[mode]\n\n const _units = useMemo(() => {\n const option = units[mode]\n const options =\n Object.keys(units).length >= 1 ? units : { [mode]: option.slice(0, 1) }\n return options[mode].map((unit) => {\n return {\n ...unit,\n ...unitsMapping[unit.value],\n }\n })\n }, [mode, units, unitsMapping])\n\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n <Box>\n <MeasurementToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </MeasurementToolsUIAction>\n <Options\n labels={labels?.options}\n modes={data}\n modeSelected={mode}\n units={_units}\n unitSelected={unitSelected}\n onChangeMode={onChangeMode}\n onChangeUnit={onChangeUnit}\n />\n </Box>\n </Paper>\n )\n}\n\nfunction MeasurementToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n MeasurementToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'action'\n >['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nfunction Options({\n modes,\n modeSelected,\n units,\n unitSelected,\n labels,\n onChangeMode,\n onChangeUnit,\n}: Required<\n Pick<\n MeasurementToolsComponentProps,\n 'modeSelected' | 'onChangeMode' | 'onChangeUnit'\n >\n> & {\n modes: MeasurementToolsComponentProps['modes'] &\n MeasurementToolsComponentProps['modesMapping']\n units: (MeasurementUnitOption<MeasurementUnit> & MeasureUnitMapping)[]\n unitSelected?: MeasurementToolsComponentProps['unitSelected']\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n}) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const [unitModal, setUnitModal] = useState(false)\n\n const modesAvailable = Object.values(modes)\n const unitsAvailable = Object.values(units)\n\n const hasValues = modesAvailable.length > 1 || unitsAvailable.length > 1\n\n if (!hasValues) {\n return null\n }\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n mode: ValueOf<Required<typeof modes>>,\n ) => {\n e.preventDefault()\n onChangeMode(mode.value)\n handleClose()\n }\n\n const handleClickUnit = () => {\n setUnitModal(true)\n }\n\n const handleCloseModal = () => {\n setUnitModal(false)\n }\n\n const handleApplyModal = (data: string) => {\n handleCloseModal()\n onChangeUnit(data)\n }\n\n const modeTitle =\n labels?.mode?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.title\n\n const unitTitle =\n labels?.units?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.title\n\n const hasDivider = modesAvailable.length > 1 && unitsAvailable.length > 1\n\n const unitSelectedValue = (units.find(\n (unit) => unit.value === unitSelected,\n ) ?? units[0])!\n\n return (\n <>\n <IconButton sx={styles.options.icon} onClick={handleToggle}>\n <ArrowDropDown />\n </IconButton>\n <Menu\n id='measurement-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'basic-button',\n sx: styles.options.menu,\n }}\n >\n <div>\n {modesAvailable.length > 1 && (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {modesAvailable.map((mode) => {\n const options =\n labels?.mode?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n onClick={(e) => handleClick(e, mode)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>{mode.icon}</SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })}\n </>\n )}\n {hasDivider && <Divider />}\n {unitsAvailable.length > 1 && (\n <>\n <MenuItem onClick={handleClickUnit}>\n <ListItemText>{unitTitle}</ListItemText>\n <Typography\n variant='caption'\n fontWeight={500}\n sx={styles.options.tag}\n >\n {unitSelectedValue.short}\n </Typography>\n </MenuItem>\n <UnitsModal\n open={unitModal}\n labels={labels}\n units={units}\n unitSelectedValue={unitSelectedValue}\n onClose={handleCloseModal}\n onSubmit={handleApplyModal}\n />\n </>\n )}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction UnitsModal({\n open,\n labels,\n units,\n unitSelectedValue,\n onClose,\n onSubmit,\n}: {\n open: boolean\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n units: MeasurementUnitOption<MeasurementUnit>[]\n unitSelectedValue: MeasurementUnitOption<MeasurementUnit>\n onClose: () => void\n onSubmit: (data: string) => void\n}) {\n const [system, setSystem] = useState<MeasurementSystem>('metric')\n\n const _units = useMemo(() => {\n return units.filter((unit) => unit.system === system)\n }, [system, units])\n\n const handleToggleChange = (\n _: MouseEvent<HTMLElement>,\n value: MeasurementSystem,\n ) => {\n setSystem(value)\n }\n\n const _labels =\n labels?.units?.modal?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.options\n\n const labelsBySystem = _labels[system].options\n\n const modalUnitTitle =\n labels?.units?.modal?.title ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.title\n const modalUnitSubtitle =\n labels?.units?.modal?.subtitle ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.subtitle\n const modalUnitApply =\n labels?.units?.modal?.apply ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.apply\n\n const _unitSelectedValue =\n unitSelectedValue.system === system ? unitSelectedValue : _units[0]\n\n return (\n <Dialog\n open={open}\n component={Box}\n onClose={onClose}\n maxWidth='xs'\n PaperProps={{\n component: 'form',\n onSubmit: (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const formData = new FormData(e.currentTarget)\n onSubmit(formData.get('unit-value') as string)\n },\n }}\n >\n <DialogTitle sx={styles.options.modal.title}>\n {modalUnitTitle}\n <IconButton onClick={onClose}>\n <Close />\n </IconButton>\n </DialogTitle>\n <DialogContent sx={styles.options.modal.content}>\n <Typography sx={styles.options.modal.subtitle}>\n {modalUnitSubtitle}\n </Typography>\n <ToggleButtonGroup\n color='primary'\n value={system}\n exclusive={true}\n fullWidth={true}\n onChange={handleToggleChange}\n aria-label='system'\n sx={styles.options.modal.toggle}\n >\n <ToggleButton value='metric'>{_labels.metric.title}</ToggleButton>\n <ToggleButton value='imperial'>{_labels.imperial.title}</ToggleButton>\n </ToggleButtonGroup>\n <FormControl key={_unitSelectedValue?.value}>\n <RadioGroup\n aria-labelledby='unit-value'\n defaultValue={_unitSelectedValue?.value}\n name='unit-value'\n sx={styles.options.modal.optionsGroup}\n >\n {_units.map((unit) => {\n const label =\n labelsBySystem[\n unit.value as MeasurementUnitMetricDistance &\n MeasurementUnitImperialDistance\n ]\n\n return (\n <FormControlLabel\n key={unit.value}\n value={unit.value}\n control={<Radio />}\n label={label}\n />\n )\n })}\n </RadioGroup>\n </FormControl>\n </DialogContent>\n <DialogActions sx={styles.options.modal.actions}>\n <Button variant='contained' type='submit'>\n {modalUnitApply}\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","export const tooltipLabelsDefault = {\n enabled: 'Show your current location',\n disabled: 'Location unavailable',\n}\n\nexport const ariaLabel = 'geolocation'\n","import { Paper, IconButton } from '@mui/material'\nimport {\n MyLocationOutlined,\n LocationDisabledOutlined,\n} from '@mui/icons-material'\nimport type { GeolocationControlProps } from './types'\nimport { useCallback, useEffect, useRef, useState, type JSX } from 'react'\nimport { ariaLabel, tooltipLabelsDefault } from './const'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function GeolocationControls({\n disabled,\n labels,\n PaperProps,\n TooltipProps,\n watch,\n onChange,\n onError,\n}: GeolocationControlProps): JSX.Element {\n const watchRef = useRef<number>(null)\n const hasGeolocation = 'geolocation' in navigator\n const [allowed, setAllowed] = useState(hasGeolocation)\n\n useEffect(() => {\n if (hasGeolocation) {\n navigator.permissions\n .query({ name: 'geolocation' })\n .then((result) => {\n setAllowed(result.state === 'granted')\n result.onchange = () => {\n setAllowed(result.state === 'granted')\n }\n })\n .catch((error: Parameters<PositionErrorCallback>[0]) => {\n setAllowed(false)\n onError?.(error)\n })\n }\n\n return () => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n }\n }, [hasGeolocation, onError])\n\n const success = useCallback(\n (position: Parameters<PositionCallback>[0]) => {\n onChange(position.coords)\n },\n [onChange],\n )\n\n const error = useCallback(\n (error: Parameters<PositionErrorCallback>[0]) => {\n setAllowed(false)\n onError?.(error)\n },\n [onError],\n )\n\n const handleClick = useCallback(() => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n\n if (watch) {\n watchRef.current = navigator.geolocation.watchPosition(success, error)\n return\n }\n\n navigator.geolocation.getCurrentPosition(success, error)\n }, [watch, success, error])\n\n const tooltipLabels = labels?.tooltip ?? tooltipLabelsDefault\n\n return (\n <Paper {...PaperProps}>\n <Tooltip\n arrow\n placement='right'\n title={tooltipLabels[allowed ? 'enabled' : 'disabled']}\n {...TooltipProps}\n >\n <IconButton\n onClick={handleClick}\n aria-label={labels?.ariaLabel ?? ariaLabel}\n disabled={!hasGeolocation || disabled}\n >\n {allowed ? <MyLocationOutlined /> : <LocationDisabledOutlined />}\n </IconButton>\n </Tooltip>\n </Paper>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n zoom: {\n position: 'relative',\n height: ({ spacing }) => spacing(4),\n aspectRatio: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n display: 'flex',\n backgroundColor: ({ palette }) => palette.background.paper,\n width: 'auto',\n overflow: 'hidden',\n boxShadow: ({ shadows }) => shadows[1],\n borderRadius: ({ spacing }) => spacing(0.5),\n\n button: {\n borderRadius: 0,\n },\n },\n circularProgress: {\n position: 'absolute',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n IconButton,\n Divider,\n Box,\n Typography,\n CircularProgress,\n Paper,\n} from '@mui/material'\nimport {\n AddOutlined,\n RemoveOutlined,\n CropFreeOutlined,\n} from '@mui/icons-material'\nimport { styles } from './styles'\nimport type { ZoomControlProps } from './types'\nimport { useCallback, type JSX } from 'react'\n\nexport function ZoomControlsUI({\n zoom,\n disabled,\n direction = 'vertical',\n reverse = false,\n isLoading,\n maxZoom = 24,\n minZoom = 0,\n PaperProps,\n ResetViewProps = {\n Icon: CropFreeOutlined,\n },\n showZoom = true,\n onChange,\n onReset,\n}: ZoomControlProps): JSX.Element {\n const increaseZoom = useCallback(() => {\n const newZoom = Math.min(maxZoom, zoom + 1)\n onChange(newZoom)\n }, [maxZoom, onChange, zoom])\n\n const decreaseZoom = useCallback(() => {\n const newZoom = Math.max(minZoom, zoom - 1)\n onChange(newZoom)\n }, [minZoom, onChange, zoom])\n\n const displayZoom = Math.floor(zoom)\n\n const dividerOrientation =\n direction === 'vertical' ? 'horizontal' : 'vertical'\n\n let flexDirection = direction === 'vertical' ? 'column' : 'row'\n\n if (reverse) {\n flexDirection += '-reverse'\n }\n\n return (\n <Paper\n sx={{\n ...styles.paper,\n flexDirection,\n }}\n {...PaperProps}\n >\n {onReset && (\n <>\n <IconButton\n onClick={onReset}\n aria-label='Reset action'\n disabled={disabled}\n >\n <ResetViewProps.Icon />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton\n onClick={increaseZoom}\n aria-label='Increase zoom'\n disabled={disabled}\n >\n <AddOutlined />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n {showZoom && (\n <>\n <Box sx={styles.zoom}>\n <Typography\n display='block'\n align='center'\n color='textSecondary'\n variant='overline'\n >\n {displayZoom}\n </Typography>\n {isLoading && (\n <CircularProgress\n sx={styles.circularProgress}\n variant='indeterminate'\n size={24}\n />\n )}\n </Box>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton\n onClick={decreaseZoom}\n aria-label='Decrease zoom'\n disabled={disabled}\n >\n <RemoveOutlined />\n </IconButton>\n </Paper>\n )\n}\n","import { Box, Grid, Skeleton } from '@mui/material'\n\ninterface ListDataSkeletonProps {\n length?: number\n}\n\nexport function ListDataSkeleton({ length = 5 }: ListDataSkeletonProps) {\n return (\n <Box aria-label='List Data skeleton'>\n {new Array(length).fill(null).map((_, idx) => (\n <Grid key={idx} container spacing={1}>\n <Grid\n container\n item\n direction='row'\n justifyContent='space-between'\n alignItems='center'\n >\n <Skeleton width={isOdd(idx) ? 72 : 48} height={20} />\n <Skeleton width={48} height={8} />\n </Grid>\n\n <Skeleton\n sx={{\n height: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(1.25),\n marginBottom: ({ spacing }) => spacing(1.75),\n width: '100%',\n }}\n />\n </Grid>\n ))}\n </Box>\n )\n}\n\n// Aux\nfunction isOdd(num: number) {\n return num % 2 === 1\n}\n","import {\n Alert,\n Box,\n Typography,\n type AlertProps,\n type TypographyProps,\n} from '@mui/material'\n\ninterface NoDataAlertProps {\n title?: string\n body?: string\n severity?: AlertProps['severity']\n}\n\nexport function NoDataAlert({\n title = 'No data available',\n body = 'There are no results for the combination of filters applied to your data. Try tweaking your filters, or zoom and pan the map to adjust the Map View.',\n severity,\n}: NoDataAlertProps) {\n if (severity) {\n return (\n <Alert title={title} severity={severity}>\n <AlertBody>{body}</AlertBody>\n </Alert>\n )\n }\n\n return (\n <Box>\n {title && <Typography variant='body2'>{title}</Typography>}\n <AlertBody color='textSecondary'>{body}</AlertBody>\n </Box>\n )\n}\n\n// Aux\ninterface AlertBodyProps {\n color?: TypographyProps['color']\n children: React.ReactNode\n}\n\nfunction AlertBody({ color, children }: AlertBodyProps) {\n if (children) {\n return (\n <Box mt={0.5}>\n <Typography\n component='div'\n variant='caption'\n color={color ?? 'inherit'}\n style={{ fontWeight: 'normal' }}\n >\n {children}\n </Typography>\n </Box>\n )\n }\n\n return <Box mt={-1} />\n}\n","import { useState } from 'react'\n\nexport function useSkeleton(isLoading: boolean) {\n // Track render phase: 0=never shown, 1=showing now, 2=already shown\n const [phase, setPhase] = useState(() => (isLoading ? 1 : 0))\n\n // Transition from phase 0 to 1 when loading starts\n if (isLoading && phase === 0) {\n setPhase(1)\n }\n\n // Transition from phase 1 to 2 when loading ends (skeleton was shown, now done)\n if (!isLoading && phase === 1) {\n setPhase(2)\n }\n\n // Show skeleton only in phase 1 (first time loading)\n return phase === 1\n}\n","import { type SxProps, type Theme } from '@mui/material'\n\nconst ellipsed = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nexport const styles = {\n label: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n },\n },\n value: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n textAlign: 'right',\n },\n },\n clickable: {\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n showDivider: {\n borderBottom: ({ palette }) => `1px solid ${palette.divider}`,\n },\n selected: {\n backgroundColor: ({ palette }) => palette.action.selected,\n },\n disabled: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n dependencies = [],\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}) {\n const ref = useRef<T>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n\n useLayoutEffect(() => {\n const timerId = setTimeout(() => {\n if (ref.current) {\n const isOverflowing =\n ref.current.scrollWidth > ref.current.clientWidth ||\n ref.current.scrollHeight > ref.current.clientHeight\n\n setIsOverflowing(isOverflowing)\n }\n }, timeout)\n\n return () => clearTimeout(timerId)\n }, [dependencies, timeout])\n\n return (\n <Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>\n )\n}\n","import { useState, useMemo, type JSX } from 'react'\nimport { Box, Button, Grid, ListItem, List, ListItemText } from '@mui/material'\nimport { ListDataSkeleton } from './list-data-skeleton'\nimport { NoDataAlert } from '../no-data-alert/no-data-alert'\nimport { useSkeleton } from '../../hooks/use-skeleton'\nimport type { ListDataProps } from './types'\nimport { styles } from './styles'\nimport { SmartTooltip } from '../smart-tooltip/smart-tooltip'\n\nconst DEFAULT_LABELS = {\n showMore: 'Show More',\n showLess: 'Show Less',\n} as const\n\nexport function ListDataUI({\n data = [],\n isLoading = false,\n maxItems = 5,\n labels = DEFAULT_LABELS,\n showDivider = true,\n selectedItemId,\n tooltipProps,\n onExpand,\n onItemClick,\n}: ListDataProps): JSX.Element {\n const [showAll, setShowAll] = useState(false)\n\n const showSkeleton = useSkeleton(isLoading)\n\n const items = useMemo(() => {\n return showAll ? data : data.slice(0, maxItems)\n }, [data, maxItems, showAll])\n\n const handleToggle = () => {\n setShowAll(!showAll)\n onExpand?.(showAll)\n }\n\n if (showSkeleton) {\n return <ListDataSkeleton length={maxItems} />\n }\n\n if (items.length === 0) {\n return <NoDataAlert />\n }\n\n return (\n <>\n <List id='expandable-list' role='list'>\n {items.map((item, idx) => (\n <SmartTooltip<HTMLLIElement>\n // Default tooltip props\n followCursor={false}\n key={`list-item-${idx}`}\n placement='top'\n arrow\n title={item.tooltipTitle}\n enterDelay={10}\n // Custom tooltip props\n {...tooltipProps}\n >\n {({ ref }) => (\n <ListItem\n ref={ref}\n role='listitem'\n sx={{\n ...(showDivider && styles.showDivider),\n ...(onItemClick && styles.clickable),\n ...(selectedItemId === item.id && styles.selected),\n ...(item.disabled && styles.disabled),\n }}\n onClick={() => {\n if (item.disabled) return\n onItemClick?.(item)\n }}\n >\n <Grid container alignItems='center'>\n <Grid item xs={8}>\n <ListItemText primary={item.label} sx={styles.label} />\n </Grid>\n <Grid item xs={4}>\n <ListItemText primary={item.value} sx={styles.value} />\n </Grid>\n </Grid>\n </ListItem>\n )}\n </SmartTooltip>\n ))}\n </List>\n\n {data.length > maxItems && (\n <Box my={2}>\n <Button\n onClick={handleToggle}\n variant='text'\n color='primary'\n aria-expanded={showAll}\n aria-controls='expandable-list'\n >\n {showAll ? labels.showLess : labels.showMore}\n </Button>\n </Box>\n )}\n </>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const BASEMAPS_WIDTH = 288\n\nexport const styles = {\n root: {\n width: BASEMAPS_WIDTH,\n overflow: 'auto',\n },\n toggle: {\n padding: ({ spacing }) => spacing(0.5),\n\n img: {\n width: '100%',\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.25),\n },\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n paddingInlineStart: ({ spacing }) => spacing(2),\n position: 'sticky',\n top: 0,\n zIndex: 2,\n background: ({ palette }) => palette.background.paper,\n },\n groupWrapper: {\n content: {\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(0.5),\n },\n },\n group: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(1),\n },\n item: {\n container: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n background: 'transparent',\n border: 'none',\n cursor: 'pointer',\n padding: 0,\n height: ({ spacing }) => spacing(12),\n\n img: {\n maxWidth: ({ spacing }) => spacing(9),\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.5),\n border: `2px solid transparent`,\n\n '&:hover': {\n borderColor: ({ palette }) => palette.action.active,\n },\n\n '&[data-active=\"true\"]': {\n borderColor: ({ palette }) => palette.primary.main,\n },\n },\n },\n selected: {\n color: ({ palette }) => palette.primary.main,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { BasemapsUILabels } from './types'\n\nexport const DEFAULT_BASEMAPS_LABELS: BasemapsUILabels = {\n toggle: {\n title: 'Toggle basemaps controls',\n },\n header: {\n title: 'Basemaps',\n actions: {\n close: 'Close',\n },\n },\n}\n","import { Close } from '@mui/icons-material'\nimport { Box, Typography, IconButton } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapsUILabels } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function Header({\n isMobile = false,\n labels,\n onChangeCollapsed,\n}: {\n labels: BasemapsUILabels['header']\n isMobile?: boolean\n onChangeCollapsed: () => void\n}) {\n return (\n <Box sx={styles.header}>\n {isMobile && (\n <>\n <Typography variant='caption' flexGrow={1}>\n {labels.title}\n </Typography>\n <Tooltip title={labels.actions.close}>\n <IconButton\n size='small'\n onClick={onChangeCollapsed}\n aria-label={labels.actions.close}\n >\n <Close />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n )\n}\n","import { Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport { styles } from './styles'\n\nexport function GroupWrapper({\n title,\n children,\n collapsed = false,\n}: {\n title: string\n children: ReactNode\n collapsed?: boolean\n}) {\n if (collapsed) return children\n\n return (\n <>\n <Typography\n variant='caption'\n color='textSecondary'\n sx={styles.groupWrapper.content}\n >\n {title}\n </Typography>\n {children}\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapOption } from './types'\n\nexport function Group({\n values,\n selected,\n onChange,\n}: {\n values: Omit<BasemapOption, 'group'>[]\n selected: string | null | undefined\n onChange: (id: string) => void\n}) {\n return (\n <Box sx={styles.group}>\n {values.map((option) => {\n const isSelected = option.id === selected\n return (\n <Box\n key={option.id}\n sx={styles.item.container}\n component='button'\n aria-label={option.label}\n onClick={() => onChange(option.id)}\n >\n <img\n src={option.icon}\n aria-label={option.label + ' icon'}\n data-active={isSelected}\n />\n <Typography\n variant='caption'\n sx={{ ...(isSelected && styles.item.selected) }}\n >\n {option.label}\n </Typography>\n </Box>\n )\n })}\n </Box>\n )\n}\n","import { Drawer, Popover, type PopoverProps } from '@mui/material'\nimport type { ReactNode } from 'react'\n\nexport function ResponsiveDrawer<\n T extends {\n collapsed: boolean\n onChangeCollapsed: (collapsed: boolean) => void\n position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n slotProps?: PopoverProps['slotProps']\n },\n>({\n ref,\n children,\n collapsed,\n isMobile = false,\n position,\n sx,\n slotProps,\n onChangeCollapsed,\n}: Required<Pick<T, 'collapsed' | 'onChangeCollapsed' | 'position'>> &\n Pick<PopoverProps, 'slotProps' | 'sx'> & {\n ref: HTMLElement | null\n isMobile: boolean\n children: ReactNode\n }) {\n if (isMobile) {\n return (\n <Drawer anchor='bottom' open={!collapsed} onClose={onChangeCollapsed}>\n {children}\n </Drawer>\n )\n }\n\n return (\n <Popover\n sx={sx}\n anchorEl={ref}\n open={!collapsed}\n onClose={() => onChangeCollapsed(true)}\n anchorOrigin={{\n vertical: position.startsWith('bottom') ? 'bottom' : 'top',\n horizontal: position.endsWith('right') ? 'left' : 'right',\n }}\n transformOrigin={{\n vertical: position.startsWith('bottom') ? 'bottom' : 'top',\n horizontal: position.endsWith('right') ? 'right' : 'left',\n }}\n slotProps={slotProps}\n >\n {children}\n </Popover>\n )\n}\n","import { IconButton, Paper, useMediaQuery, useTheme } from '@mui/material'\nimport type { BasemapsUIProps } from './types'\nimport { useEffect, useRef, useState, type JSX } from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport { DEFAULT_BASEMAPS_LABELS } from './const'\nimport { Header } from './header'\nimport { GroupWrapper } from './group-wrapper'\nimport { Group } from './group'\nimport { ResponsiveDrawer } from '../responsive-drawer/responsive-drawer'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function BasemapsUI({\n options = [],\n labels: _labels,\n position = 'bottom-right',\n selected = null,\n onChange,\n TooltipProps,\n}: BasemapsUIProps): JSX.Element {\n const [toggleRef, setToggleRef] = useState<HTMLButtonElement | null>(null)\n const [isOpen, setIsOpen] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const [timer, setTimer] = useState<number | null>(null)\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n const labels = deepmerge(DEFAULT_BASEMAPS_LABELS, _labels ?? {})\n\n const optionSelected = options.find((option) => option.id === selected)\n\n const groups = Object.groupBy(options, (option) => option.group ?? 'default')\n\n const groupCount = Object.keys(groups).length\n\n const handleClose = () => {\n setToggleRef(null)\n setIsOpen(false)\n }\n\n useEffect(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (!timer) {\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n handleClose()\n return\n }, timer)\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [timer])\n\n const handleMouseOver = () => {\n setTimer(null)\n }\n const handleMouseLeave = () => {\n setTimer(400)\n }\n\n return (\n <Paper>\n <Tooltip title={labels.toggle.title} placement='right' {...TooltipProps}>\n <IconButton\n sx={styles.toggle}\n onClick={(e) => {\n setToggleRef(e.currentTarget as HTMLButtonElement)\n setIsOpen(true)\n }}\n >\n <img\n src={optionSelected?.icon}\n alt={optionSelected?.label ?? 'Basemap'}\n />\n </IconButton>\n </Tooltip>\n\n <ResponsiveDrawer\n ref={toggleRef}\n slotProps={{\n paper: {\n sx: {\n ...styles.root,\n transform: `translate3d(${position.endsWith('right') ? '-8px' : '8px'}, ${\n position.startsWith('bottom') ? '-4px' : '4px'\n }, 0) !important`,\n },\n onMouseOver: handleMouseOver,\n onMouseLeave: handleMouseLeave,\n },\n }}\n collapsed={!isOpen}\n position={position}\n isMobile={isMobile}\n onChangeCollapsed={() => handleClose()}\n >\n <Header\n isMobile={isMobile}\n labels={labels.header}\n onChangeCollapsed={() => handleClose()}\n />\n {Object.entries(groups).map(([group, values]) => (\n <GroupWrapper\n key={group}\n title={group + ' ' + labels.header.title}\n collapsed={groupCount < 2}\n >\n <Group\n values={values!}\n selected={selected}\n onChange={(e) => {\n handleClose()\n onChange(e)\n }}\n />\n </GroupWrapper>\n ))}\n </ResponsiveDrawer>\n </Paper>\n )\n}\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","val","cloneUnlessOtherwiseSpecified","options","deepmerge","defaultArrayMerge","target","source","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","object","property","propertyIsUnsafe","mergeObject","destination","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","array","prev","next","deepmerge_1","cjs","tooltipEnterDelay","Tooltip","t0","$","_c","children","props","t1","title","enterNextDelay","undefined","t2","MuiTooltip","setTooltipEnterDelay","delay","DrawPolygonIcon","Symbol","for","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","chip","mode","circle","lasso","polygon","rectangle","edit","noData","description","actions","toggleAll","deleteAll","DEFAULT_LASSO_TOOLS_MODES_MAPPING","icon","styles","container","display","flexDirection","alignItems","justifyContent","overflow","gap","spacing","width","height","borderRadius","menu","paddingTop","boxShadow","backgroundColor","margin","marginLeft","marginRight","marginBottom","paddingX","paddingBottom","icons","color","palette","text","primary","more","overflowX","scrollbarWidth","flexWrap","LassoToolsUIChip","chipProps","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","ChipsSlot","ActionSlot","SecondaryActionsSlot","OptionsSlot","sx","Chips","Action","SecondaryActions","Options","t9","slotArgs","t10","t11","t12","t13","t14","t15","jsxs","Paper","LassoToolsUIAction","actionState","actionLabel","ToggleButton","TriggerProps","Icon","ArrowDropDown","MenuProps","anchorEl","setAnchorEl","useState","open","Boolean","handleToggle","event","currentTarget","handleClose","Fragment","IconButton","Menu","onClose","ModeList","data","length","modeTitle","Typography","OptionsList","handleClick","e","preventDefault","map","MenuItem","disabled","ListItemIcon","SvgIcon","ListItemText","SecondaryActionsWrapper","toggleAllLabel","some","_temp","deleteAllLabel","Divider","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","useMemo","Object","keys","modeSelectedValue","handleDelete","valueId","Box","_modes","modesValues","handleChangeMode","LassoToolsInlineUI","BoxProps","evt","mode_0","ToggleButtonGroup","t16","t17","t18","t19","t20","NoData","t21","t22","t23","Actions","t24","hasValues","Button","RulerIcon","BufferIcon","AreaIcon","DEFAULT_MEASUREMENT_TOOLS_LABELS","distance","buffer","area","units","modal","subtitle","apply","metric","kilometer","meter","centimeter","milimeter","imperial","mile","feet","yard","DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING","short","DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING","marginTop","paddingY","tag","border","borderColor","main","alpha","toggle","padding",".MuiToggleButtonGroup-grouped","typography","caption","fontWeight","body2","secondary","optionsGroup",".MuiTypography-root","content","minWidth","MeasurementToolsUI","unitsMapping","unitSelected","onChangeUnit","data_0","modeExists","option","slice","unit","_units","MeasurementToolsUIAction","unitModal","setUnitModal","modesAvailable","unitsAvailable","handleClickUnit","handleCloseModal","handleApplyModal","unitTitle","hasDivider","find","unitSelectedValue","e_0","UnitsModal","onSubmit","system","setSystem","filter","_","handleToggleChange","_labels","labelsBySystem","modalUnitTitle","modalUnitSubtitle","modalUnitApply","_unitSelectedValue","component","formData","FormData","get","Close","DialogTitle","unit_0","FormControlLabel","Radio","RadioGroup","FormControl","DialogContent","DialogActions","Dialog","tooltipLabelsDefault","ariaLabel","GeolocationControls","watch","onChange","onError","watchRef","useRef","hasGeolocation","navigator","allowed","setAllowed","permissions","query","name","then","result","state","onchange","catch","error","current","geolocation","clearWatch","useEffect","position","coords","success","error_0","error_1","watchPosition","getCurrentPosition","MyLocationOutlined","LocationDisabledOutlined","zoom","aspectRatio","paper","background","shadows","button","circularProgress","ZoomControlsUI","direction","reverse","isLoading","maxZoom","minZoom","ResetViewProps","showZoom","onReset","CropFreeOutlined","newZoom","Math","min","increaseZoom","newZoom_0","max","decreaseZoom","displayZoom","floor","dividerOrientation","AddOutlined","CircularProgress","RemoveOutlined","ListDataSkeleton","Array","fill","_temp4","idx","Grid","Skeleton","isOdd","_temp2","_temp3","spacing_1","spacing_0","num","NoDataAlert","body","severity","AlertBody","Alert","useSkeleton","phase","setPhase","ellipsed","textOverflow","whiteSpace","textAlign","clickable","cursor","hover","showDivider","borderBottom","divider","selected","opacity","pointerEvents","SmartTooltip","dependencies","timeout","ref","isOverflowing","setIsOverflowing","timerId","setTimeout","isOverflowing_0","scrollWidth","clientWidth","scrollHeight","clientHeight","clearTimeout","useLayoutEffect","DEFAULT_LABELS","showMore","showLess","ListDataUI","maxItems","selectedItemId","tooltipProps","onExpand","onItemClick","showAll","setShowAll","showSkeleton","items","item","tooltipTitle","ListItem","List","BASEMAPS_WIDTH","root","img","header","paddingInlineStart","top","zIndex","groupWrapper","paddingInline","paddingBlock","group","maxWidth","DEFAULT_BASEMAPS_LABELS","close","Header","isMobile","onChangeCollapsed","GroupWrapper","collapsed","Group","isSelected","ResponsiveDrawer","slotProps","Drawer","startsWith","endsWith","Popover","BasemapsUI","toggleRef","setToggleRef","isOpen","setIsOpen","timeoutRef","timer","setTimer","theme","useTheme","breakpoints","down","useMediaQuery","optionSelected","groupBy","groups","groupCount","handleMouseOver","handleMouseLeave","transform","onMouseOver","onMouseLeave","t25","t26","t27","entries","t28","t29","t30","option_0"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"components.js","sources":["../src/components/lasso-tool/lasso-tool-inline.tsx","../src/components/measurement-tools/icons.tsx","../src/components/measurement-tools/const.tsx","../src/components/measurement-tools/styles.ts","../src/components/measurement-tools/measurement-tools.tsx","../src/components/geolocation-controls/const.ts","../src/components/geolocation-controls/geolocation-controls.tsx","../src/components/zoom-controls/styles.ts","../src/components/zoom-controls/zoom-controls.tsx","../src/components/list-data/list-data-skeleton.tsx","../src/components/no-data-alert/no-data-alert.tsx","../src/hooks/use-skeleton.ts","../src/components/list-data/styles.ts","../src/components/list-data/list-data.tsx","../src/components/basemaps/styles.ts","../src/components/basemaps/const.ts","../src/components/basemaps/header.tsx","../src/components/basemaps/group-wrapper.tsx","../src/components/basemaps/group.tsx","../src/components/responsive-drawer/responsive-drawer.tsx","../src/components/basemaps/basemaps.tsx"],"sourcesContent":["import {\n Divider,\n Typography,\n SvgIcon,\n ToggleButton,\n Box,\n ToggleButtonGroup,\n Button,\n} from '@mui/material'\nimport { useMemo, type JSX, type MouseEvent, type ReactNode } from 'react'\nimport { styles } from './styles'\nimport type {\n LassoToolsComponentProps,\n LassoToolsInlineComponentProps,\n} from './types'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport type { PickDeep } from 'type-fest'\nimport type { LassoToolsModes } from '../types'\nimport deepmerge from 'deepmerge'\nimport { LassoToolsUIChip } from './chip'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsInlineUI({\n enabled,\n values = [],\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n BoxProps: { sx, ...BoxProps } = {},\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n}: LassoToolsInlineComponentProps): JSX.Element {\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n return onDelete(valueId)\n }\n\n const handleClick = (\n evt: MouseEvent<HTMLElement>,\n mode: NonNullable<(typeof modes)[keyof typeof modes]>['value'],\n ) => {\n evt.preventDefault()\n onChangeMode?.(mode)\n }\n\n const modeExists = (modeSelected ?? '') in modes\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = enabled ? data[mode] : null\n\n const modesValues = Object.values(_modes)\n\n return (\n <Box\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...BoxProps}\n className='inline'\n >\n <ModeList data={modesValues} labels={labels?.options}>\n <ToggleButtonGroup\n value={modeSelectedValue?.value}\n exclusive\n className='inline'\n sx={styles.options.menu}\n onChange={handleClick}\n >\n <OptionsList labels={labels?.options} data={modesValues} />\n {!!edit && (\n <>\n <Divider orientation='vertical' />\n <OptionsList\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values.length,\n },\n ]}\n />\n </>\n )}\n </ToggleButtonGroup>\n </ModeList>\n <Divider flexItem />\n <NoData hasValues={!!values.length} labels={labels?.noData} />\n {!!values.length && (\n <Box sx={styles.chip.container} className='inline'>\n {values.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={onChipToggle}\n />\n ))}\n </Box>\n )}\n <Actions\n values={values}\n labels={labels?.actions}\n onAllChipToggle={onAllChipToggle}\n onAllDelete={onAllDelete}\n />\n </Box>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n className='inline'\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n labels,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n}) {\n return data.map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <Tooltip key={mode.value} title={label} placement='bottom'>\n <ToggleButton\n disabled={!!mode.disabled}\n value={mode.value}\n aria-label={mode.value}\n >\n <SvgIcon>\n <mode.icon />\n </SvgIcon>\n </ToggleButton>\n </Tooltip>\n )\n })\n}\n\nfunction NoData({\n hasValues,\n labels,\n}: {\n hasValues: boolean\n labels: PickDeep<LassoToolsComponentProps['labels'], 'noData'>['noData']\n}) {\n if (hasValues) {\n return null\n }\n\n const title = labels?.title ?? LASSO_TOOLS_LABELS.noData.title\n const description =\n labels?.description ?? LASSO_TOOLS_LABELS.noData.description\n\n return (\n <>\n <Typography variant='body1' color='textSecondary'>\n {title}\n </Typography>\n <Typography variant='body2' color='textSecondary'>\n {description}\n </Typography>\n </>\n )\n}\n\nfunction Actions({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Pick<\n LassoToolsComponentProps,\n 'values' | 'onAllChipToggle' | 'onAllDelete'\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n if (values.length <= 1) {\n return null\n }\n\n const hasVisible = values.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.toggleAll?.active ?? LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <Box>\n <Button color='inherit' onClick={() => onAllChipToggle()}>\n {toggleAllLabel}\n </Button>\n <Button color='error' onClick={() => onAllDelete()}>\n {deleteAllLabel}\n </Button>\n </Box>\n )\n}\n","import type { SVGProps } from 'react'\n\nexport function RulerIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n fill='currentColor'\n {...props}\n >\n <path\n fill='currentColor'\n d='M3 13.5c-.413 0-.766-.147-1.06-.44A1.445 1.445 0 0 1 1.5 12V6c0-.412.147-.766.44-1.06.294-.293.647-.44 1.06-.44h12c.412 0 .766.147 1.06.44.293.294.44.647.44 1.06v6c0 .412-.147.766-.44 1.06-.294.293-.647.44-1.06.44H3ZM3 12h12V6h-2.25v3h-1.5V6h-1.5v3h-1.5V6h-1.5v3h-1.5V6H3v6Z'\n />\n </svg>\n )\n}\n\nexport function BufferIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n {...props}\n >\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M9 1.5a7.5 7.5 0 1 1 0 15 7.5 7.5 0 0 1 0-15ZM9 3a6 6 0 1 0 0 12A6 6 0 0 0 9 3Zm0 4.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n\nexport function AreaIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M4.5 13.5v-9h9v9h-9Zm.75-8.25h7.5v7.5h-7.5v-7.5Z'\n clipRule='evenodd'\n />\n <path\n fill='#2C3032'\n fillRule='evenodd'\n d='M1.5 3A1.5 1.5 0 0 1 3 1.5h12A1.5 1.5 0 0 1 16.5 3v12a1.5 1.5 0 0 1-1.5 1.5H3A1.5 1.5 0 0 1 1.5 15V3ZM3 3h12v12H3V3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n","import type { RequiredDeep } from 'type-fest'\nimport type {\n MeasurementMode,\n MeasurementModesMapping,\n MeasurementUnitsMapping,\n} from '../types'\nimport type { MeasurementToolsComponentProps } from './types'\nimport { RulerIcon, BufferIcon, AreaIcon } from './icons'\n\nexport const DEFAULT_MEASUREMENT_TOOLS_LABELS: NonNullable<\n RequiredDeep<MeasurementToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to start measuring',\n inactive: 'Click on the map to start measuring',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide measure',\n inactive: 'Show measure',\n },\n },\n options: {\n mode: {\n title: 'Choose a measuring tool',\n options: {\n distance: 'Measure distance',\n buffer: 'Buffer distance',\n area: 'Area',\n },\n },\n units: {\n title: 'Unit of measurement',\n modal: {\n title: 'Map Measurement Unit',\n subtitle: 'Select the unit of measurement for your measurements',\n apply: 'Save',\n options: {\n metric: {\n title: 'Meters and Kilometers',\n options: {\n 'm-km': 'Auto',\n kilometer: 'Kilometers',\n meter: 'Meter',\n centimeter: 'Centimeter',\n milimeter: 'Milimeter',\n },\n },\n imperial: {\n title: 'Feet and Miles',\n options: {\n 'ft-mi': 'Auto',\n mile: 'Mile',\n feet: 'Feet',\n yard: 'Yard',\n },\n },\n },\n },\n },\n },\n} as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING: MeasurementUnitsMapping =\n {\n 'm-km': {\n short: 'm-km',\n },\n kilometer: {\n short: 'km',\n },\n meter: {\n short: 'm',\n },\n centimeter: {\n short: 'cm',\n },\n milimeter: {\n short: 'mm',\n },\n 'ft-mi': {\n short: 'ft-mi',\n },\n mile: {\n short: 'mi',\n },\n yard: {\n short: 'yd',\n },\n feet: {\n short: 'ft',\n },\n } as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING: MeasurementModesMapping<MeasurementMode> =\n {\n distance: {\n icon: <RulerIcon />,\n },\n buffer: {\n icon: <BufferIcon />,\n },\n area: {\n icon: <AreaIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n overflow: 'hidden',\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n marginTop: ({ spacing }) => spacing(1),\n },\n icon: {\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingY: ({ spacing }) => spacing(0.5),\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n modal: {\n toggle: {\n boxShadow: 'none',\n backgroundColor: '#F8F9F9',\n padding: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(2),\n marginBottom: ({ spacing }) => spacing(1),\n '.MuiToggleButtonGroup-grouped': {\n typography: 'caption',\n fontWeight: 500,\n margin: 0,\n '&:first-of-type:not(.MuiDivider-root)': {\n marginLeft: 0,\n },\n },\n },\n subtitle: {\n typography: 'body2',\n color: ({ palette }) => palette.text.secondary,\n },\n optionsGroup: {\n marginLeft: ({ spacing }) => spacing(1),\n typography: 'body2',\n },\n title: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: ({ spacing }) => spacing(2),\n },\n content: {\n paddingX: ({ spacing }) => spacing(2),\n minWidth: ({ spacing }) => spacing(50),\n },\n actions: {\n paddingX: ({ spacing }) => spacing(2),\n },\n },\n },\n chip: {\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { ArrowDropDown, Close } from '@mui/icons-material'\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n FormControl,\n FormControlLabel,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n Radio,\n RadioGroup,\n SvgIcon,\n ToggleButton,\n ToggleButtonGroup,\n Typography,\n} from '@mui/material'\nimport {\n useMemo,\n useState,\n type FormEvent,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n} from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport type { MeasurementToolsComponentProps } from './types'\nimport type { PickDeep, ValueOf } from 'type-fest'\nimport {\n DEFAULT_MEASUREMENT_TOOLS_LABELS,\n DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n} from './const'\nimport type {\n MeasurementSystem,\n MeasurementUnit,\n MeasurementUnitImperialDistance,\n MeasurementUnitMetricDistance,\n MeasurementUnitOption,\n MeasureUnitMapping,\n} from '../types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function MeasurementToolsUI({\n enabled,\n actionProps,\n labels = DEFAULT_MEASUREMENT_TOOLS_LABELS,\n modes,\n modesMapping = DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n unitsMapping = DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = {},\n units,\n unitSelected,\n onActionToggle,\n onChangeMode,\n onChangeUnit,\n}: MeasurementToolsComponentProps): JSX.Element {\n const handleToggle: MeasurementToolsComponentProps['onActionToggle'] = (\n data,\n ) => {\n return onActionToggle(!!data)\n }\n\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const modeExists = (modeSelected ?? '') in data\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof modes\n\n const modeSelectedValue = data[mode]\n\n const _units = useMemo(() => {\n const option = units[mode]\n const options =\n Object.keys(units).length >= 1 ? units : { [mode]: option.slice(0, 1) }\n return options[mode].map((unit) => {\n return {\n ...unit,\n ...unitsMapping[unit.value],\n }\n })\n }, [mode, units, unitsMapping])\n\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n <Box>\n <MeasurementToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </MeasurementToolsUIAction>\n <Options\n labels={labels?.options}\n modes={data}\n modeSelected={mode}\n units={_units}\n unitSelected={unitSelected}\n onChangeMode={onChangeMode}\n onChangeUnit={onChangeUnit}\n />\n </Box>\n </Paper>\n )\n}\n\nfunction MeasurementToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n MeasurementToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'action'\n >['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nfunction Options({\n modes,\n modeSelected,\n units,\n unitSelected,\n labels,\n onChangeMode,\n onChangeUnit,\n}: Required<\n Pick<\n MeasurementToolsComponentProps,\n 'modeSelected' | 'onChangeMode' | 'onChangeUnit'\n >\n> & {\n modes: MeasurementToolsComponentProps['modes'] &\n MeasurementToolsComponentProps['modesMapping']\n units: (MeasurementUnitOption<MeasurementUnit> & MeasureUnitMapping)[]\n unitSelected?: MeasurementToolsComponentProps['unitSelected']\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n}) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const [unitModal, setUnitModal] = useState(false)\n\n const modesAvailable = Object.values(modes)\n const unitsAvailable = Object.values(units)\n\n const hasValues = modesAvailable.length > 1 || unitsAvailable.length > 1\n\n if (!hasValues) {\n return null\n }\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n mode: ValueOf<Required<typeof modes>>,\n ) => {\n e.preventDefault()\n onChangeMode(mode.value)\n handleClose()\n }\n\n const handleClickUnit = () => {\n setUnitModal(true)\n }\n\n const handleCloseModal = () => {\n setUnitModal(false)\n }\n\n const handleApplyModal = (data: string) => {\n handleCloseModal()\n onChangeUnit(data)\n }\n\n const modeTitle =\n labels?.mode?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.title\n\n const unitTitle =\n labels?.units?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.title\n\n const hasDivider = modesAvailable.length > 1 && unitsAvailable.length > 1\n\n const unitSelectedValue = (units.find(\n (unit) => unit.value === unitSelected,\n ) ?? units[0])!\n\n return (\n <>\n <IconButton sx={styles.options.icon} onClick={handleToggle}>\n <ArrowDropDown />\n </IconButton>\n <Menu\n id='measurement-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'basic-button',\n sx: styles.options.menu,\n }}\n >\n <div>\n {modesAvailable.length > 1 && (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {modesAvailable.map((mode) => {\n const options =\n labels?.mode?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n onClick={(e) => handleClick(e, mode)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>{mode.icon}</SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })}\n </>\n )}\n {hasDivider && <Divider />}\n {unitsAvailable.length > 1 && (\n <>\n <MenuItem onClick={handleClickUnit}>\n <ListItemText>{unitTitle}</ListItemText>\n <Typography\n variant='caption'\n fontWeight={500}\n sx={styles.options.tag}\n >\n {unitSelectedValue.short}\n </Typography>\n </MenuItem>\n <UnitsModal\n open={unitModal}\n labels={labels}\n units={units}\n unitSelectedValue={unitSelectedValue}\n onClose={handleCloseModal}\n onSubmit={handleApplyModal}\n />\n </>\n )}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction UnitsModal({\n open,\n labels,\n units,\n unitSelectedValue,\n onClose,\n onSubmit,\n}: {\n open: boolean\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n units: MeasurementUnitOption<MeasurementUnit>[]\n unitSelectedValue: MeasurementUnitOption<MeasurementUnit>\n onClose: () => void\n onSubmit: (data: string) => void\n}) {\n const [system, setSystem] = useState<MeasurementSystem>('metric')\n\n const _units = useMemo(() => {\n return units.filter((unit) => unit.system === system)\n }, [system, units])\n\n const handleToggleChange = (\n _: MouseEvent<HTMLElement>,\n value: MeasurementSystem,\n ) => {\n setSystem(value)\n }\n\n const _labels =\n labels?.units?.modal?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.options\n\n const labelsBySystem = _labels[system].options\n\n const modalUnitTitle =\n labels?.units?.modal?.title ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.title\n const modalUnitSubtitle =\n labels?.units?.modal?.subtitle ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.subtitle\n const modalUnitApply =\n labels?.units?.modal?.apply ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.apply\n\n const _unitSelectedValue =\n unitSelectedValue.system === system ? unitSelectedValue : _units[0]\n\n return (\n <Dialog\n open={open}\n component={Box}\n onClose={onClose}\n maxWidth='xs'\n PaperProps={{\n component: 'form',\n onSubmit: (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const formData = new FormData(e.currentTarget)\n onSubmit(formData.get('unit-value') as string)\n },\n }}\n >\n <DialogTitle sx={styles.options.modal.title}>\n {modalUnitTitle}\n <IconButton onClick={onClose}>\n <Close />\n </IconButton>\n </DialogTitle>\n <DialogContent sx={styles.options.modal.content}>\n <Typography sx={styles.options.modal.subtitle}>\n {modalUnitSubtitle}\n </Typography>\n <ToggleButtonGroup\n color='primary'\n value={system}\n exclusive={true}\n fullWidth={true}\n onChange={handleToggleChange}\n aria-label='system'\n sx={styles.options.modal.toggle}\n >\n <ToggleButton value='metric'>{_labels.metric.title}</ToggleButton>\n <ToggleButton value='imperial'>{_labels.imperial.title}</ToggleButton>\n </ToggleButtonGroup>\n <FormControl key={_unitSelectedValue?.value}>\n <RadioGroup\n aria-labelledby='unit-value'\n defaultValue={_unitSelectedValue?.value}\n name='unit-value'\n sx={styles.options.modal.optionsGroup}\n >\n {_units.map((unit) => {\n const label =\n labelsBySystem[\n unit.value as MeasurementUnitMetricDistance &\n MeasurementUnitImperialDistance\n ]\n\n return (\n <FormControlLabel\n key={unit.value}\n value={unit.value}\n control={<Radio />}\n label={label}\n />\n )\n })}\n </RadioGroup>\n </FormControl>\n </DialogContent>\n <DialogActions sx={styles.options.modal.actions}>\n <Button variant='contained' type='submit'>\n {modalUnitApply}\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","export const tooltipLabelsDefault = {\n enabled: 'Show your current location',\n disabled: 'Location unavailable',\n}\n\nexport const ariaLabel = 'geolocation'\n","import { Paper, IconButton } from '@mui/material'\nimport {\n MyLocationOutlined,\n LocationDisabledOutlined,\n} from '@mui/icons-material'\nimport type { GeolocationControlProps } from './types'\nimport { useCallback, useEffect, useRef, useState, type JSX } from 'react'\nimport { ariaLabel, tooltipLabelsDefault } from './const'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function GeolocationControls({\n disabled,\n labels,\n PaperProps,\n TooltipProps,\n watch,\n onChange,\n onError,\n}: GeolocationControlProps): JSX.Element {\n const watchRef = useRef<number>(null)\n const hasGeolocation = 'geolocation' in navigator\n const [allowed, setAllowed] = useState(hasGeolocation)\n\n useEffect(() => {\n if (hasGeolocation) {\n navigator.permissions\n .query({ name: 'geolocation' })\n .then((result) => {\n setAllowed(result.state === 'granted')\n result.onchange = () => {\n setAllowed(result.state === 'granted')\n }\n })\n .catch((error: Parameters<PositionErrorCallback>[0]) => {\n setAllowed(false)\n onError?.(error)\n })\n }\n\n return () => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n }\n }, [hasGeolocation, onError])\n\n const success = useCallback(\n (position: Parameters<PositionCallback>[0]) => {\n onChange(position.coords)\n },\n [onChange],\n )\n\n const error = useCallback(\n (error: Parameters<PositionErrorCallback>[0]) => {\n setAllowed(false)\n onError?.(error)\n },\n [onError],\n )\n\n const handleClick = useCallback(() => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n\n if (watch) {\n watchRef.current = navigator.geolocation.watchPosition(success, error)\n return\n }\n\n navigator.geolocation.getCurrentPosition(success, error)\n }, [watch, success, error])\n\n const tooltipLabels = labels?.tooltip ?? tooltipLabelsDefault\n\n return (\n <Paper {...PaperProps}>\n <Tooltip\n arrow\n placement='right'\n title={tooltipLabels[allowed ? 'enabled' : 'disabled']}\n {...TooltipProps}\n >\n <IconButton\n onClick={handleClick}\n aria-label={labels?.ariaLabel ?? ariaLabel}\n disabled={!hasGeolocation || disabled}\n >\n {allowed ? <MyLocationOutlined /> : <LocationDisabledOutlined />}\n </IconButton>\n </Tooltip>\n </Paper>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n zoom: {\n position: 'relative',\n height: ({ spacing }) => spacing(4),\n aspectRatio: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n display: 'flex',\n backgroundColor: ({ palette }) => palette.background.paper,\n width: 'auto',\n overflow: 'hidden',\n boxShadow: ({ shadows }) => shadows[1],\n borderRadius: ({ spacing }) => spacing(0.5),\n\n button: {\n borderRadius: 0,\n },\n },\n circularProgress: {\n position: 'absolute',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n IconButton,\n Divider,\n Box,\n Typography,\n CircularProgress,\n Paper,\n} from '@mui/material'\nimport {\n AddOutlined,\n RemoveOutlined,\n CropFreeOutlined,\n} from '@mui/icons-material'\nimport { styles } from './styles'\nimport type { ZoomControlProps } from './types'\nimport { useCallback, type JSX } from 'react'\n\nexport function ZoomControlsUI({\n zoom,\n disabled,\n direction = 'vertical',\n reverse = false,\n isLoading,\n maxZoom = 24,\n minZoom = 0,\n PaperProps,\n ResetViewProps = {\n Icon: CropFreeOutlined,\n },\n showZoom = true,\n onChange,\n onReset,\n}: ZoomControlProps): JSX.Element {\n const increaseZoom = useCallback(() => {\n const newZoom = Math.min(maxZoom, zoom + 1)\n onChange(newZoom)\n }, [maxZoom, onChange, zoom])\n\n const decreaseZoom = useCallback(() => {\n const newZoom = Math.max(minZoom, zoom - 1)\n onChange(newZoom)\n }, [minZoom, onChange, zoom])\n\n const displayZoom = Math.floor(zoom)\n\n const dividerOrientation =\n direction === 'vertical' ? 'horizontal' : 'vertical'\n\n let flexDirection = direction === 'vertical' ? 'column' : 'row'\n\n if (reverse) {\n flexDirection += '-reverse'\n }\n\n return (\n <Paper\n sx={{\n ...styles.paper,\n flexDirection,\n }}\n {...PaperProps}\n >\n {onReset && (\n <>\n <IconButton\n onClick={onReset}\n aria-label='Reset action'\n disabled={disabled}\n >\n <ResetViewProps.Icon />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton\n onClick={increaseZoom}\n aria-label='Increase zoom'\n disabled={disabled}\n >\n <AddOutlined />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n {showZoom && (\n <>\n <Box sx={styles.zoom}>\n <Typography\n display='block'\n align='center'\n color='textSecondary'\n variant='overline'\n >\n {displayZoom}\n </Typography>\n {isLoading && (\n <CircularProgress\n sx={styles.circularProgress}\n variant='indeterminate'\n size={24}\n />\n )}\n </Box>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton\n onClick={decreaseZoom}\n aria-label='Decrease zoom'\n disabled={disabled}\n >\n <RemoveOutlined />\n </IconButton>\n </Paper>\n )\n}\n","import { Box, Grid, Skeleton } from '@mui/material'\n\ninterface ListDataSkeletonProps {\n length?: number\n}\n\nexport function ListDataSkeleton({ length = 5 }: ListDataSkeletonProps) {\n return (\n <Box aria-label='List Data skeleton'>\n {new Array(length).fill(null).map((_, idx) => (\n <Grid key={idx} container spacing={1}>\n <Grid\n container\n item\n direction='row'\n justifyContent='space-between'\n alignItems='center'\n >\n <Skeleton width={isOdd(idx) ? 72 : 48} height={20} />\n <Skeleton width={48} height={8} />\n </Grid>\n\n <Skeleton\n sx={{\n height: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(1.25),\n marginBottom: ({ spacing }) => spacing(1.75),\n width: '100%',\n }}\n />\n </Grid>\n ))}\n </Box>\n )\n}\n\n// Aux\nfunction isOdd(num: number) {\n return num % 2 === 1\n}\n","import {\n Alert,\n Box,\n Typography,\n type AlertProps,\n type TypographyProps,\n} from '@mui/material'\n\ninterface NoDataAlertProps {\n title?: string\n body?: string\n severity?: AlertProps['severity']\n}\n\nexport function NoDataAlert({\n title = 'No data available',\n body = 'There are no results for the combination of filters applied to your data. Try tweaking your filters, or zoom and pan the map to adjust the Map View.',\n severity,\n}: NoDataAlertProps) {\n if (severity) {\n return (\n <Alert title={title} severity={severity}>\n <AlertBody>{body}</AlertBody>\n </Alert>\n )\n }\n\n return (\n <Box>\n {title && <Typography variant='body2'>{title}</Typography>}\n <AlertBody color='textSecondary'>{body}</AlertBody>\n </Box>\n )\n}\n\n// Aux\ninterface AlertBodyProps {\n color?: TypographyProps['color']\n children: React.ReactNode\n}\n\nfunction AlertBody({ color, children }: AlertBodyProps) {\n if (children) {\n return (\n <Box mt={0.5}>\n <Typography\n component='div'\n variant='caption'\n color={color ?? 'inherit'}\n style={{ fontWeight: 'normal' }}\n >\n {children}\n </Typography>\n </Box>\n )\n }\n\n return <Box mt={-1} />\n}\n","import { useState } from 'react'\n\nexport function useSkeleton(isLoading: boolean) {\n // Track render phase: 0=never shown, 1=showing now, 2=already shown\n const [phase, setPhase] = useState(() => (isLoading ? 1 : 0))\n\n // Transition from phase 0 to 1 when loading starts\n if (isLoading && phase === 0) {\n setPhase(1)\n }\n\n // Transition from phase 1 to 2 when loading ends (skeleton was shown, now done)\n if (!isLoading && phase === 1) {\n setPhase(2)\n }\n\n // Show skeleton only in phase 1 (first time loading)\n return phase === 1\n}\n","import { type SxProps, type Theme } from '@mui/material'\n\nconst ellipsed = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nexport const styles = {\n label: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n },\n },\n value: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n textAlign: 'right',\n },\n },\n clickable: {\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n showDivider: {\n borderBottom: ({ palette }) => `1px solid ${palette.divider}`,\n },\n selected: {\n backgroundColor: ({ palette }) => palette.action.selected,\n },\n disabled: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useState, useMemo, type JSX } from 'react'\nimport { Box, Button, Grid, ListItem, List, ListItemText } from '@mui/material'\nimport { ListDataSkeleton } from './list-data-skeleton'\nimport { NoDataAlert } from '../no-data-alert/no-data-alert'\nimport { useSkeleton } from '../../hooks/use-skeleton'\nimport type { ListDataProps } from './types'\nimport { styles } from './styles'\nimport { SmartTooltip } from '../smart-tooltip/smart-tooltip'\n\nconst DEFAULT_LABELS = {\n showMore: 'Show More',\n showLess: 'Show Less',\n} as const\n\nexport function ListDataUI({\n data = [],\n isLoading = false,\n maxItems = 5,\n labels = DEFAULT_LABELS,\n showDivider = true,\n selectedItemId,\n tooltipProps,\n onExpand,\n onItemClick,\n}: ListDataProps): JSX.Element {\n const [showAll, setShowAll] = useState(false)\n\n const showSkeleton = useSkeleton(isLoading)\n\n const items = useMemo(() => {\n return showAll ? data : data.slice(0, maxItems)\n }, [data, maxItems, showAll])\n\n const handleToggle = () => {\n setShowAll(!showAll)\n onExpand?.(showAll)\n }\n\n if (showSkeleton) {\n return <ListDataSkeleton length={maxItems} />\n }\n\n if (items.length === 0) {\n return <NoDataAlert />\n }\n\n return (\n <>\n <List id='expandable-list' role='list'>\n {items.map((item, idx) => (\n <SmartTooltip<HTMLLIElement>\n // Default tooltip props\n followCursor={false}\n key={`list-item-${idx}`}\n placement='top'\n arrow\n title={item.tooltipTitle}\n enterDelay={10}\n // Custom tooltip props\n {...tooltipProps}\n >\n {({ ref }) => (\n <ListItem\n ref={ref}\n role='listitem'\n sx={{\n ...(showDivider && styles.showDivider),\n ...(onItemClick && styles.clickable),\n ...(selectedItemId === item.id && styles.selected),\n ...(item.disabled && styles.disabled),\n }}\n onClick={() => {\n if (item.disabled) return\n onItemClick?.(item)\n }}\n >\n <Grid container alignItems='center'>\n <Grid item xs={8}>\n <ListItemText primary={item.label} sx={styles.label} />\n </Grid>\n <Grid item xs={4}>\n <ListItemText primary={item.value} sx={styles.value} />\n </Grid>\n </Grid>\n </ListItem>\n )}\n </SmartTooltip>\n ))}\n </List>\n\n {data.length > maxItems && (\n <Box my={2}>\n <Button\n onClick={handleToggle}\n variant='text'\n color='primary'\n aria-expanded={showAll}\n aria-controls='expandable-list'\n >\n {showAll ? labels.showLess : labels.showMore}\n </Button>\n </Box>\n )}\n </>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const BASEMAPS_WIDTH = 288\n\nexport const styles = {\n root: {\n width: BASEMAPS_WIDTH,\n overflow: 'auto',\n },\n toggle: {\n padding: ({ spacing }) => spacing(0.5),\n\n img: {\n width: '100%',\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.25),\n },\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n paddingInlineStart: ({ spacing }) => spacing(2),\n position: 'sticky',\n top: 0,\n zIndex: 2,\n background: ({ palette }) => palette.background.paper,\n },\n groupWrapper: {\n content: {\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(0.5),\n },\n },\n group: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(1),\n },\n item: {\n container: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n background: 'transparent',\n border: 'none',\n cursor: 'pointer',\n padding: 0,\n height: ({ spacing }) => spacing(12),\n\n img: {\n maxWidth: ({ spacing }) => spacing(9),\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.5),\n border: `2px solid transparent`,\n\n '&:hover': {\n borderColor: ({ palette }) => palette.action.active,\n },\n\n '&[data-active=\"true\"]': {\n borderColor: ({ palette }) => palette.primary.main,\n },\n },\n },\n selected: {\n color: ({ palette }) => palette.primary.main,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { BasemapsUILabels } from './types'\n\nexport const DEFAULT_BASEMAPS_LABELS: BasemapsUILabels = {\n toggle: {\n title: 'Toggle basemaps controls',\n },\n header: {\n title: 'Basemaps',\n actions: {\n close: 'Close',\n },\n },\n}\n","import { Close } from '@mui/icons-material'\nimport { Box, Typography, IconButton } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapsUILabels } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function Header({\n isMobile = false,\n labels,\n onChangeCollapsed,\n}: {\n labels: BasemapsUILabels['header']\n isMobile?: boolean\n onChangeCollapsed: () => void\n}) {\n return (\n <Box sx={styles.header}>\n {isMobile && (\n <>\n <Typography variant='caption' flexGrow={1}>\n {labels.title}\n </Typography>\n <Tooltip title={labels.actions.close}>\n <IconButton\n size='small'\n onClick={onChangeCollapsed}\n aria-label={labels.actions.close}\n >\n <Close />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n )\n}\n","import { Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport { styles } from './styles'\n\nexport function GroupWrapper({\n title,\n children,\n collapsed = false,\n}: {\n title: string\n children: ReactNode\n collapsed?: boolean\n}) {\n if (collapsed) return children\n\n return (\n <>\n <Typography\n variant='caption'\n color='textSecondary'\n sx={styles.groupWrapper.content}\n >\n {title}\n </Typography>\n {children}\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapOption } from './types'\n\nexport function Group({\n values,\n selected,\n onChange,\n}: {\n values: Omit<BasemapOption, 'group'>[]\n selected: string | null | undefined\n onChange: (id: string) => void\n}) {\n return (\n <Box sx={styles.group}>\n {values.map((option) => {\n const isSelected = option.id === selected\n return (\n <Box\n key={option.id}\n sx={styles.item.container}\n component='button'\n aria-label={option.label}\n onClick={() => onChange(option.id)}\n >\n <img\n src={option.icon}\n aria-label={option.label + ' icon'}\n data-active={isSelected}\n />\n <Typography\n variant='caption'\n sx={{ ...(isSelected && styles.item.selected) }}\n >\n {option.label}\n </Typography>\n </Box>\n )\n })}\n </Box>\n )\n}\n","import { Drawer, Popover, type PopoverProps } from '@mui/material'\nimport type { ReactNode } from 'react'\n\nexport function ResponsiveDrawer<\n T extends {\n collapsed: boolean\n onChangeCollapsed: (collapsed: boolean) => void\n position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n slotProps?: PopoverProps['slotProps']\n },\n>({\n ref,\n children,\n collapsed,\n isMobile = false,\n position,\n sx,\n slotProps,\n onChangeCollapsed,\n}: Required<Pick<T, 'collapsed' | 'onChangeCollapsed' | 'position'>> &\n Pick<PopoverProps, 'slotProps' | 'sx'> & {\n ref: HTMLElement | null\n isMobile: boolean\n children: ReactNode\n }) {\n if (isMobile) {\n return (\n <Drawer anchor='bottom' open={!collapsed} onClose={onChangeCollapsed}>\n {children}\n </Drawer>\n )\n }\n\n return (\n <Popover\n sx={sx}\n anchorEl={ref}\n open={!collapsed}\n onClose={() => onChangeCollapsed(true)}\n anchorOrigin={{\n vertical: position.startsWith('bottom') ? 'bottom' : 'top',\n horizontal: position.endsWith('right') ? 'left' : 'right',\n }}\n transformOrigin={{\n vertical: position.startsWith('bottom') ? 'bottom' : 'top',\n horizontal: position.endsWith('right') ? 'right' : 'left',\n }}\n slotProps={slotProps}\n >\n {children}\n </Popover>\n )\n}\n","import { IconButton, Paper, useMediaQuery, useTheme } from '@mui/material'\nimport type { BasemapsUIProps } from './types'\nimport { useEffect, useRef, useState, type JSX } from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport { DEFAULT_BASEMAPS_LABELS } from './const'\nimport { Header } from './header'\nimport { GroupWrapper } from './group-wrapper'\nimport { Group } from './group'\nimport { ResponsiveDrawer } from '../responsive-drawer/responsive-drawer'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function BasemapsUI({\n options = [],\n labels: _labels,\n position = 'bottom-right',\n selected = null,\n onChange,\n TooltipProps,\n}: BasemapsUIProps): JSX.Element {\n const [toggleRef, setToggleRef] = useState<HTMLButtonElement | null>(null)\n const [isOpen, setIsOpen] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const [timer, setTimer] = useState<number | null>(null)\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n const labels = deepmerge(DEFAULT_BASEMAPS_LABELS, _labels ?? {})\n\n const optionSelected = options.find((option) => option.id === selected)\n\n const groups = Object.groupBy(options, (option) => option.group ?? 'default')\n\n const groupCount = Object.keys(groups).length\n\n const handleClose = () => {\n setToggleRef(null)\n setIsOpen(false)\n }\n\n useEffect(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (!timer) {\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n handleClose()\n return\n }, timer)\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [timer])\n\n const handleMouseOver = () => {\n setTimer(null)\n }\n const handleMouseLeave = () => {\n setTimer(400)\n }\n\n return (\n <Paper>\n <Tooltip title={labels.toggle.title} placement='right' {...TooltipProps}>\n <IconButton\n sx={styles.toggle}\n onClick={(e) => {\n setToggleRef(e.currentTarget as HTMLButtonElement)\n setIsOpen(true)\n }}\n >\n <img\n src={optionSelected?.icon}\n alt={optionSelected?.label ?? 'Basemap'}\n />\n </IconButton>\n </Tooltip>\n\n <ResponsiveDrawer\n ref={toggleRef}\n slotProps={{\n paper: {\n sx: {\n ...styles.root,\n transform: `translate3d(${position.endsWith('right') ? '-8px' : '8px'}, ${\n position.startsWith('bottom') ? '-4px' : '4px'\n }, 0) !important`,\n },\n onMouseOver: handleMouseOver,\n onMouseLeave: handleMouseLeave,\n },\n }}\n collapsed={!isOpen}\n position={position}\n isMobile={isMobile}\n onChangeCollapsed={() => handleClose()}\n >\n <Header\n isMobile={isMobile}\n labels={labels.header}\n onChangeCollapsed={() => handleClose()}\n />\n {Object.entries(groups).map(([group, values]) => (\n <GroupWrapper\n key={group}\n title={group + ' ' + labels.header.title}\n collapsed={groupCount < 2}\n >\n <Group\n values={values!}\n selected={selected}\n onChange={(e) => {\n handleClose()\n onChange(e)\n }}\n />\n </GroupWrapper>\n ))}\n </ResponsiveDrawer>\n </Paper>\n )\n}\n"],"names":["LassoToolsInlineUI","t0","$","_c","enabled","values","t1","chipProps","labels","modes","modesMapping","modeSelected","BoxProps","t2","onChipToggle","onDelete","onChangeMode","onAllChipToggle","onAllDelete","t3","undefined","t4","sx","t5","deepmerge","data","_modes","edit","t6","valueId","handleDelete","t7","evt","mode","preventDefault","handleClick","mode_0","Object","keys","modeSelectedValue","t8","modesValues","t9","styles","container","t10","options","t11","value","t12","t13","jsx","OptionsList","t14","length","jsxs","Fragment","Divider","disabled","t15","ToggleButtonGroup","menu","t16","ModeList","t17","Symbol","for","t18","t19","noData","t20","NoData","t21","chip","Box","map","LassoToolsUIChip","id","t22","actions","t23","Actions","t24","children","modeTitle","title","LASSO_TOOLS_LABELS","Typography","label","Tooltip","ToggleButton","SvgIcon","hasValues","description","toggleAllLabel","some","_temp","toggleAll","active","inactive","deleteAllLabel","deleteAll","Button","visible","RulerIcon","props","BufferIcon","AreaIcon","DEFAULT_MEASUREMENT_TOOLS_LABELS","action","tooltip","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","icon","display","flexDirection","alignItems","justifyContent","gap","spacing","overflow","width","height","borderRadius","marginTop","paddingX","paddingY","icons","color","palette","text","primary","tag","border","borderColor","main","backgroundColor","alpha","toggle","boxShadow","padding","marginBottom","typography","fontWeight","margin","marginLeft","secondary","optionsGroup","content","minWidth","MeasurementToolsUI","actionProps","unitsMapping","PaperProps","unitSelected","onActionToggle","onChangeUnit","handleToggle","data_0","modeExists","option","slice","unit","_units","MeasurementToolsUIAction","Options","Paper","actionState","actionLabel","TooltipProps","anchorEl","setAnchorEl","useState","unitModal","setUnitModal","modesAvailable","unitsAvailable","open","Boolean","event","currentTarget","handleClose","e","handleClickUnit","handleCloseModal","handleApplyModal","unitTitle","hasDivider","find","unitSelectedValue","IconButton","ArrowDropDown","MenuItem","e_0","ListItemIcon","ListItemText","UnitsModal","Menu","onClose","onSubmit","system","setSystem","filter","_","handleToggleChange","_labels","labelsBySystem","modalUnitTitle","modalUnitSubtitle","modalUnitApply","_unitSelectedValue","component","formData","FormData","get","Close","DialogTitle","unit_0","FormControlLabel","Radio","RadioGroup","FormControl","DialogContent","DialogActions","Dialog","tooltipLabelsDefault","ariaLabel","GeolocationControls","watch","onChange","onError","watchRef","useRef","hasGeolocation","navigator","allowed","setAllowed","permissions","query","name","then","result","state","onchange","catch","error","current","geolocation","clearWatch","useEffect","position","coords","success","error_0","error_1","watchPosition","getCurrentPosition","MyLocationOutlined","LocationDisabledOutlined","zoom","aspectRatio","paper","background","shadows","button","circularProgress","ZoomControlsUI","direction","reverse","isLoading","maxZoom","minZoom","ResetViewProps","showZoom","onReset","Icon","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","phase","setPhase","ellipsed","textOverflow","whiteSpace","textAlign","clickable","cursor","hover","showDivider","borderBottom","divider","selected","opacity","pointerEvents","DEFAULT_LABELS","showMore","showLess","ListDataUI","maxItems","selectedItemId","tooltipProps","onExpand","onItemClick","showAll","setShowAll","showSkeleton","items","item","SmartTooltip","tooltipTitle","ref","ListItem","List","BASEMAPS_WIDTH","root","img","header","paddingInlineStart","top","zIndex","groupWrapper","paddingInline","paddingBlock","group","flexWrap","maxWidth","DEFAULT_BASEMAPS_LABELS","close","Header","isMobile","onChangeCollapsed","GroupWrapper","collapsed","Group","isSelected","ResponsiveDrawer","slotProps","Drawer","startsWith","endsWith","vertical","horizontal","Popover","BasemapsUI","toggleRef","setToggleRef","isOpen","setIsOpen","timeoutRef","timer","setTimer","theme","useTheme","breakpoints","down","useMediaQuery","optionSelected","groupBy","groups","groupCount","clearTimeout","setTimeout","handleMouseOver","handleMouseLeave","transform","onMouseOver","onMouseLeave","t25","t26","t27","entries","t28","t29","t30","option_0"],"mappings":"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"}
|