@defra/interactive-map 0.0.16-alpha → 0.0.17-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/assets/images/slot-map.svg +264 -0
  2. package/dist/css/index.css +1 -1
  3. package/dist/esm/im-core.js +1 -1
  4. package/dist/esm/im-shell.js +1 -1
  5. package/dist/umd/im-core.js +1 -1
  6. package/dist/umd/index.js +1 -1
  7. package/docs/api/slots.md +16 -15
  8. package/docs/api.md +3 -3
  9. package/docs/getting-started.md +4 -1
  10. package/docs/plugins/datasets.md +561 -0
  11. package/docs/plugins.md +1 -1
  12. package/package.json +2 -2
  13. package/plugins/beta/datasets/dist/css/index.css +85 -15
  14. package/plugins/beta/datasets/dist/esm/im-datasets-plugin.js +1 -1
  15. package/plugins/beta/datasets/dist/umd/im-datasets-plugin.js +1 -1
  16. package/plugins/beta/datasets/dist/umd/index.js +1 -1
  17. package/plugins/beta/datasets/src/DatasetsInit.jsx +23 -8
  18. package/plugins/beta/datasets/src/adapters/maplibre/index.js +18 -0
  19. package/plugins/beta/datasets/src/adapters/maplibre/layerBuilders.js +113 -0
  20. package/plugins/beta/datasets/src/adapters/maplibre/layerIds.js +69 -0
  21. package/plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.js +338 -0
  22. package/plugins/beta/datasets/src/adapters/maplibre/patternRegistry.js +48 -0
  23. package/plugins/beta/datasets/src/api/addDataset.js +2 -8
  24. package/plugins/beta/datasets/src/api/getOpacity.js +17 -0
  25. package/plugins/beta/datasets/src/api/getStyle.js +13 -0
  26. package/plugins/beta/datasets/src/api/removeDataset.js +2 -44
  27. package/plugins/beta/datasets/src/api/setData.js +8 -0
  28. package/plugins/beta/datasets/src/api/setDatasetVisibility.js +37 -0
  29. package/plugins/beta/datasets/src/api/setFeatureVisibility.js +22 -0
  30. package/plugins/beta/datasets/src/api/setOpacity.js +29 -0
  31. package/plugins/beta/datasets/src/api/setStyle.js +22 -0
  32. package/plugins/beta/datasets/src/datasets.js +29 -55
  33. package/plugins/beta/datasets/src/defaults.js +42 -8
  34. package/plugins/beta/datasets/src/fetch/createDynamicSource.js +34 -25
  35. package/plugins/beta/datasets/src/fetch/fetchGeoJSON.js +2 -2
  36. package/plugins/beta/datasets/src/manifest.js +24 -16
  37. package/plugins/beta/datasets/src/panels/Key.jsx +128 -50
  38. package/plugins/beta/datasets/src/panels/Key.module.scss +48 -9
  39. package/plugins/beta/datasets/src/panels/Layers.jsx +132 -29
  40. package/plugins/beta/datasets/src/panels/Layers.module.scss +50 -8
  41. package/plugins/beta/datasets/src/reducer.js +128 -9
  42. package/plugins/beta/datasets/src/styles/patterns.js +157 -0
  43. package/plugins/beta/datasets/src/utils/bbox.js +7 -5
  44. package/plugins/beta/datasets/src/utils/filters.js +5 -2
  45. package/plugins/beta/datasets/src/utils/mergeSublayer.js +78 -0
  46. package/plugins/beta/draw-ml/dist/css/index.css +1 -1
  47. package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
  48. package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
  49. package/plugins/beta/draw-ml/src/draw.scss +0 -7
  50. package/plugins/beta/draw-ml/src/manifest.js +16 -16
  51. package/plugins/beta/frame/dist/esm/im-frame-plugin.js +1 -1
  52. package/plugins/beta/frame/dist/umd/im-frame-plugin.js +1 -1
  53. package/plugins/beta/frame/src/Frame.jsx +5 -5
  54. package/plugins/beta/map-styles/dist/esm/im-map-styles-plugin.js +1 -1
  55. package/plugins/beta/map-styles/dist/umd/im-map-styles-plugin.js +1 -1
  56. package/plugins/beta/map-styles/src/manifest.js +1 -1
  57. package/plugins/beta/scale-bar/dist/css/index.css +1 -1
  58. package/plugins/beta/scale-bar/dist/esm/im-scale-bar-plugin.js +1 -1
  59. package/plugins/beta/scale-bar/dist/umd/im-scale-bar-plugin.js +1 -1
  60. package/plugins/beta/scale-bar/src/index.test.js +3 -3
  61. package/plugins/beta/scale-bar/src/manifest.js +3 -3
  62. package/plugins/beta/scale-bar/src/scaleBar.scss +2 -1
  63. package/plugins/interact/dist/css/index.css +1 -1
  64. package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
  65. package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
  66. package/plugins/interact/src/interact.scss +0 -7
  67. package/plugins/interact/src/manifest.js +14 -18
  68. package/plugins/interact/src/manifest.test.js +3 -1
  69. package/plugins/search/dist/css/index.css +1 -1
  70. package/plugins/search/src/components/Form/Form.module.scss +2 -1
  71. package/providers/maplibre/dist/esm/im-maplibre-provider.js +1 -1
  72. package/providers/maplibre/dist/umd/im-maplibre-framework.js +1 -1
  73. package/providers/maplibre/dist/umd/im-maplibre-framework.js.LICENSE.txt +1 -1
  74. package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
  75. package/providers/maplibre/src/utils/highlightFeatures.js +1 -0
  76. package/providers/maplibre/src/utils/highlightFeatures.test.js +1 -0
  77. package/src/App/components/Actions/Actions.jsx +2 -2
  78. package/src/App/components/Actions/Actions.module.scss +0 -7
  79. package/src/App/components/Actions/Actions.test.jsx +1 -1
  80. package/src/App/components/Icon/Icon.jsx +3 -2
  81. package/src/App/components/Icon/Icon.module.scss +4 -0
  82. package/src/App/components/Icon/Icon.test.jsx +43 -4
  83. package/src/App/components/MapButton/MapButton.jsx +42 -17
  84. package/src/App/components/MapButton/MapButton.module.scss +4 -13
  85. package/src/App/components/MapButton/MapButton.test.jsx +27 -3
  86. package/src/App/components/PopupMenu/PopupMenu.jsx +51 -274
  87. package/src/App/components/PopupMenu/PopupMenu.module.scss +14 -7
  88. package/src/App/components/PopupMenu/PopupMenu.test.jsx +70 -1
  89. package/src/App/components/PopupMenu/usePopupMenu.js +258 -0
  90. package/src/App/hooks/useButtonStateEvaluator.js +12 -2
  91. package/src/App/hooks/useButtonStateEvaluator.test.js +38 -4
  92. package/src/App/hooks/useInterfaceAPI.js +6 -0
  93. package/src/App/hooks/useLayoutMeasurements.js +84 -18
  94. package/src/App/hooks/useLayoutMeasurements.test.js +124 -17
  95. package/src/App/layout/Layout.jsx +12 -7
  96. package/src/App/layout/Layout.test.jsx +2 -2
  97. package/src/App/layout/layout.module.scss +67 -29
  98. package/src/App/registry/pluginRegistry.js +1 -1
  99. package/src/App/renderer/HtmlElementHost.jsx +2 -1
  100. package/src/App/renderer/HtmlElementHost.test.jsx +7 -7
  101. package/src/App/renderer/mapButtons.js +1 -1
  102. package/src/App/renderer/mapPanels.test.js +2 -2
  103. package/src/App/renderer/slotHelpers.js +2 -2
  104. package/src/App/renderer/slotHelpers.test.js +5 -5
  105. package/src/App/renderer/slots.js +9 -5
  106. package/src/App/store/AppProvider.jsx +3 -1
  107. package/src/App/store/AppProvider.test.jsx +1 -1
  108. package/src/App/store/ServiceProvider.jsx +3 -1
  109. package/src/App/store/appActionsMap.js +16 -0
  110. package/src/App/store/appActionsMap.test.js +27 -0
  111. package/src/App/store/appDispatchMiddleware.js +1 -1
  112. package/src/App/store/appDispatchMiddleware.test.js +2 -2
  113. package/src/App/store/appReducer.js +2 -0
  114. package/src/InteractiveMap/InteractiveMap.js +4 -0
  115. package/src/config/appConfig.js +5 -2
  116. package/src/config/events.js +28 -0
  117. package/src/scss/main.scss +1 -0
  118. package/src/scss/settings/_dimensions.scss +0 -1
  119. package/src/utils/getSafeZoneInset.js +9 -7
  120. package/src/utils/getSafeZoneInset.test.js +10 -10
  121. package/webpack.dev.mjs +1 -1
  122. package/docs/api/slot-map.svg +0 -1
  123. package/plugins/beta/datasets/src/api/hideDataset.js +0 -14
  124. package/plugins/beta/datasets/src/api/hideFeatures.js +0 -41
  125. package/plugins/beta/datasets/src/api/showDataset.js +0 -14
  126. package/plugins/beta/datasets/src/api/showFeatures.js +0 -44
  127. package/plugins/beta/datasets/src/handleSetMapStyle.js +0 -54
  128. package/plugins/beta/datasets/src/mapLayers.js +0 -164
  129. /package/src/{utils → services}/logger.js +0 -0
  130. /package/src/{utils → services}/logger.test.js +0 -0
@@ -24,10 +24,3 @@
24
24
  width: 100px;
25
25
  }
26
26
  }
27
-
28
- // Position touch add point button
29
- .im-c-button-wrapper--draw-add-point {
30
- position: absolute;
31
- bottom: calc(100% + var(--primary-gap));
32
- z-index: 0;
33
- }
@@ -24,23 +24,28 @@ export const manifest = {
24
24
  InitComponent: DrawInit,
25
25
 
26
26
  buttons: [{
27
- id: 'drawAddPoint',
28
- label: 'Add point',
29
- iconId: 'plus',
30
- variant: 'touch',
31
- hiddenWhen: ({ appState, pluginState }) => !['draw_polygon', 'draw_line'].includes(pluginState.mode) || appState.interfaceType !== 'touch',
32
- ...createButtonSlots(false)
33
- }, {
34
27
  id: 'drawCancel',
35
28
  label: 'Cancel',
36
29
  variant: 'tertiary',
37
30
  hiddenWhen: ({ pluginState }) => !pluginState.mode,
38
31
  ...createButtonSlots(true)
32
+ }, {
33
+ id: 'drawAddPoint',
34
+ label: 'Add point',
35
+ variant: 'primary',
36
+ hiddenWhen: ({ appState, pluginState }) => !['draw_polygon', 'draw_line'].includes(pluginState.mode) || appState.interfaceType !== 'touch',
37
+ ...createButtonSlots(true)
38
+ }, {
39
+ id: 'drawDone',
40
+ label: 'Done',
41
+ variant: 'primary',
42
+ hiddenWhen: ({ pluginState }) => !['draw_polygon', 'draw_line', 'edit_vertex'].includes(pluginState.mode),
43
+ enableWhen: ({ pluginState }) => pluginState.numVertecies >= (pluginState.mode === 'draw_polygon' ? 3 : 2),
44
+ ...createButtonSlots(true)
39
45
  }, {
40
46
  id: 'drawMenu',
41
47
  label: 'Menu',
42
48
  iconId: 'menu',
43
- variant: 'tertiary',
44
49
  hiddenWhen: ({ pluginState }) => !['draw_polygon', 'draw_line', 'edit_vertex'].includes(pluginState.mode),
45
50
  menuItems: [{
46
51
  id: 'drawUndo',
@@ -61,14 +66,9 @@ export const manifest = {
61
66
  enableWhen: ({ pluginState }) => pluginState.selectedVertexIndex >= 0 && pluginState.numVertecies > (pluginState.tempFeature?.geometry?.type === 'Polygon' ? 3 : 2),
62
67
  hiddenWhen: ({ pluginState }) => !(['simple_select', 'edit_vertex'].includes(pluginState.mode))
63
68
  }],
64
- ...createButtonSlots(true)
65
- }, {
66
- id: 'drawDone',
67
- label: 'Done',
68
- variant: 'primary',
69
- hiddenWhen: ({ pluginState }) => !['draw_polygon', 'draw_line', 'edit_vertex'].includes(pluginState.mode),
70
- enableWhen: ({ pluginState }) => pluginState.numVertecies >= (pluginState.mode === 'draw_polygon' ? 3 : 2),
71
- ...createButtonSlots(true)
69
+ mobile: { slot: 'bottom-right' },
70
+ tablet: { slot: 'top-middle' },
71
+ desktop: { slot: 'top-middle' }
72
72
  }],
73
73
 
74
74
  keyboardShortcuts: [{
@@ -1 +1 @@
1
- import{useEffect as e,useRef as t,useState as r}from"preact/compat";import{jsxs as n,Fragment as o,jsx as i}from"preact/jsx-runtime";import a from"@babel/runtime/helpers/defineProperty";function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function p(e){var t;if(null==e||null===(t=e.geometry)||void 0===t||null===(t=t.coordinates)||void 0===t||!t[0])return null;var r=e.geometry.coordinates[0],n=1/0,o=1/0,i=-1/0,a=-1/0;return r.forEach(e=>{var[t,r]=e;t<n&&(n=t),t>i&&(i=t),r<o&&(o=r),r>a&&(a=r)}),[n,o,i,a]}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var s={aspectRatio:1,mobileWidth:"300px",tabletWidth:"360px",desktopWidth:"400px"};function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function O(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?O(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):O(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var g={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},h={reducer:{initialState:{frame:null,frameRefs:null},actions:{SET_FRAME:(e,t)=>l(l({},e),{},{frame:t}),SET_FRAME_REFS:(e,t)=>l(l({},e),{},{frameRefs:t})}},InitComponent:t=>{var r,n,o,i,{appState:a,mapState:c,mapProvider:l,pluginConfig:p,pluginState:f,services:u,buttonConfig:s}=t,{mode:d,breakpoint:b,layoutRefs:m}=a,{eventBus:y}=u,{frameDone:O,frameCancel:v}=s,{dispatch:g,frameRefs:h,frame:j}=f,P=null===(r=null===(n=p.includeModes)||void 0===n?void 0:n.includes(d))||void 0===r||r,w=null!==(o=null===(i=p.excludeModes)||void 0===i?void 0:i.includes(d))&&void 0!==o&&o,S=c.isMapReady&&P&&!w;e(()=>{if(S)return O.onClick=()=>{var e=function(e){var{frameEl:t,viewportEl:r,mapProvider:n,featureId:o,scale:i}=e,a=t.getBoundingClientRect(),c=r.getBoundingClientRect(),l={x:(a.left-c.left)/i,y:(a.top-c.top)/i},p={x:(a.right-c.left)/i,y:(a.top-c.top)/i},f={x:(a.right-c.left)/i,y:(a.bottom-c.top)/i},u={x:(a.left-c.left)/i,y:(a.bottom-c.top)/i},s={type:"Feature",geometry:{type:"Polygon",coordinates:[[n.screenToMap(l),n.screenToMap(p),n.screenToMap(f),n.screenToMap(u),n.screenToMap(l)]]},properties:{}};return o&&(s.id=o),s}({frameEl:h.displayRef.current,viewportEl:m.viewportRef.current,featureId:null==j?void 0:j.featureId,scale:{small:1,medium:1.5,large:2}[c.mapSize],mapProvider:l});g({type:"SET_FRAME",payload:null}),y.emit("frame:done",e)},v.onClick=()=>{g({type:"SET_FRAME",payload:null}),y.emit("frame:cancel")},()=>{O.onClick=null,v.onClick=null}},[c.isMapReady,d,b,j,h,m,l,g,y,O,v])},controls:[{id:"frame",label:"Frame",mobile:{slot:"middle"},tablet:{slot:"middle"},desktop:{slot:"middle"},render:function(a){var c,{appState:l,mapState:p,pluginState:f,mapProvider:s}=a,{actionsRef:d,mainRef:b,footerRef:m,viewportRef:y}=l.layoutRefs,{dispatch:O}=f,v=t(null),g=t(null),h=t(null),[j,P]=r("65px"),[w,S]=r(null);return e(()=>{O({type:"SET_FRAME_REFS",payload:{displayRef:g}})},[]),e(()=>{if(f.frame&&v.current){var e=v.current,t=()=>{if(d.current&&b.current&&m.current){var t=b.current.offsetHeight,r=m.current.offsetTop,n=d.current.offsetTop,o=t-Math.min(n,r)+10;P("65px 65px ".concat(o,"px 65px"));var{offsetWidth:i,offsetHeight:a}=e;if(t-o-e.offsetTop===e.offsetHeight){var{top:c,left:p,width:u,height:s}=function(e,t,r,n){var o=Number.parseInt(r["".concat(n,"Width")]||e,10),i=Math.min(o,e),a=i/r.aspectRatio;return a>t&&(i=(a=t)*r.aspectRatio),{top:(t-a)/2,left:(e-i)/2,width:i,height:a}}(i,a,f.frame,l.breakpoint),y=c+e.offsetTop,O=p+e.offsetLeft;S({top:"".concat(y,"px"),left:"".concat(O,"px"),width:"".concat(u,"px"),height:"".concat(s,"px")})}}},r=new window.ResizeObserver(t);return r.observe(e),t(),()=>r.disconnect()}h.current=null},[f.frame,l.breakpoint,d,b,m]),e(()=>{var e;if(null!==(e=f.frame)&&void 0!==e&&e.bounds&&g.current&&y.current&&w){var t=g.current,r=y.current,n=t.getBoundingClientRect(),o=r.getBoundingClientRect(),i={small:1,medium:1.5,large:2}[p.mapSize],a={top:(n.top-o.top)/i,right:(o.right-n.right)/i,bottom:(o.bottom-n.bottom)/i,left:(n.left-o.left)/i};s.setPadding(a),s.fitToBounds(f.frame.bounds,!0)}},[null===(c=f.frame)||void 0===c?void 0:c.bounds,w,s,g,y]),f.frame?n(o,{children:[i("div",{className:"im-c-frame-spacer",style:{inset:j},ref:v}),w&&i("div",{ref:g,className:"im-c-frame-display",style:u({},w)})]}):null}}],buttons:[v({id:"frameDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.frame}},g),v({id:"frameCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.frame}},g)],api:{addFrame:function(e,t){var{pluginConfig:r,pluginState:n,services:o}=e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:a}=n,{eventBus:c}=o;a({type:"SET_FRAME",payload:b(b(b(b({},s),r),i),{},{featureId:t})}),c.emit("frame:add")},editFeature:function(e,t){var{pluginConfig:r,pluginState:n,mapProvider:o,services:i}=e,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:c}=n,{eventBus:l}=i,f=p(t),u=function(e,t){var r=p(e);if(!r)return null;var[n,o,i,a]=r,c=t.mapToScreen([n,a]),l=t.mapToScreen([i,o]),f=Math.abs(l.x-c.x),u=Math.abs(l.y-c.y);return 0===u?null:Math.round(f/u*1e6)/1e6}(t,o),d=y(y(y(y({},s),r),a),{},{aspectRatio:u,featureId:(null==t?void 0:t.id)||t.properties.id});c({type:"SET_FRAME",payload:y(y({},d),{},{bounds:f})}),l.emit("frame:edit")}}};export{h as manifest};
1
+ import{useEffect as e,useRef as t,useState as r}from"preact/compat";import{jsxs as n,Fragment as o,jsx as i}from"preact/jsx-runtime";import a from"@babel/runtime/helpers/defineProperty";function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function p(e){var t;if(null==e||null===(t=e.geometry)||void 0===t||null===(t=t.coordinates)||void 0===t||!t[0])return null;var r=e.geometry.coordinates[0],n=1/0,o=1/0,i=-1/0,a=-1/0;return r.forEach(e=>{var[t,r]=e;t<n&&(n=t),t>i&&(i=t),r<o&&(o=r),r>a&&(a=r)}),[n,o,i,a]}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var s={aspectRatio:1,mobileWidth:"300px",tabletWidth:"360px",desktopWidth:"400px"};function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function O(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?O(Object(r),!0).forEach(function(t){a(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):O(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var g={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},h={reducer:{initialState:{frame:null,frameRefs:null},actions:{SET_FRAME:(e,t)=>l(l({},e),{},{frame:t}),SET_FRAME_REFS:(e,t)=>l(l({},e),{},{frameRefs:t})}},InitComponent:t=>{var r,n,o,i,{appState:a,mapState:c,mapProvider:l,pluginConfig:p,pluginState:f,services:u,buttonConfig:s}=t,{mode:d,breakpoint:b,layoutRefs:m}=a,{eventBus:y}=u,{frameDone:O,frameCancel:v}=s,{dispatch:g,frameRefs:h,frame:j}=f,P=null===(r=null===(n=p.includeModes)||void 0===n?void 0:n.includes(d))||void 0===r||r,w=null!==(o=null===(i=p.excludeModes)||void 0===i?void 0:i.includes(d))&&void 0!==o&&o,S=c.isMapReady&&P&&!w;e(()=>{if(S)return O.onClick=()=>{var e=function(e){var{frameEl:t,viewportEl:r,mapProvider:n,featureId:o,scale:i}=e,a=t.getBoundingClientRect(),c=r.getBoundingClientRect(),l={x:(a.left-c.left)/i,y:(a.top-c.top)/i},p={x:(a.right-c.left)/i,y:(a.top-c.top)/i},f={x:(a.right-c.left)/i,y:(a.bottom-c.top)/i},u={x:(a.left-c.left)/i,y:(a.bottom-c.top)/i},s={type:"Feature",geometry:{type:"Polygon",coordinates:[[n.screenToMap(l),n.screenToMap(p),n.screenToMap(f),n.screenToMap(u),n.screenToMap(l)]]},properties:{}};return o&&(s.id=o),s}({frameEl:h.displayRef.current,viewportEl:m.viewportRef.current,featureId:null==j?void 0:j.featureId,scale:{small:1,medium:1.5,large:2}[c.mapSize],mapProvider:l});g({type:"SET_FRAME",payload:null}),y.emit("frame:done",e)},v.onClick=()=>{g({type:"SET_FRAME",payload:null}),y.emit("frame:cancel")},()=>{O.onClick=null,v.onClick=null}},[c.isMapReady,d,b,j,h,m,l,g,y,O,v])},controls:[{id:"frame",label:"Frame",mobile:{slot:"middle"},tablet:{slot:"middle"},desktop:{slot:"middle"},render:function(a){var c,{appState:l,mapState:p,pluginState:f,mapProvider:s}=a,{actionsRef:d,mainRef:b,bottomRef:m,viewportRef:y}=l.layoutRefs,{dispatch:O}=f,v=t(null),g=t(null),h=t(null),[j,P]=r("65px"),[w,S]=r(null);return e(()=>{O({type:"SET_FRAME_REFS",payload:{displayRef:g}})},[]),e(()=>{if(f.frame&&v.current){var e=v.current,t=()=>{if(d.current&&b.current&&m.current){var t=b.current.offsetHeight,r=m.current.offsetTop,n=d.current.offsetTop,o=t-Math.min(n,r)+10;P("65px 65px ".concat(o,"px 65px"));var{offsetWidth:i,offsetHeight:a}=e;if(t-o-e.offsetTop===e.offsetHeight){var{top:c,left:p,width:u,height:s}=function(e,t,r,n){var o=Number.parseInt(r["".concat(n,"Width")]||e,10),i=Math.min(o,e),a=i/r.aspectRatio;return a>t&&(i=(a=t)*r.aspectRatio),{top:(t-a)/2,left:(e-i)/2,width:i,height:a}}(i,a,f.frame,l.breakpoint),y=c+e.offsetTop,O=p+e.offsetLeft;S({top:"".concat(y,"px"),left:"".concat(O,"px"),width:"".concat(u,"px"),height:"".concat(s,"px")})}}},r=new window.ResizeObserver(t);return r.observe(e),t(),()=>r.disconnect()}h.current=null},[f.frame,l.breakpoint,d,b,m]),e(()=>{var e;if(null!==(e=f.frame)&&void 0!==e&&e.bounds&&g.current&&y.current&&w){var t=g.current,r=y.current,n=t.getBoundingClientRect(),o=r.getBoundingClientRect(),i={small:1,medium:1.5,large:2}[p.mapSize],a={top:(n.top-o.top)/i,right:(o.right-n.right)/i,bottom:(o.bottom-n.bottom)/i,left:(n.left-o.left)/i};s.setPadding(a),s.fitToBounds(f.frame.bounds,!0)}},[null===(c=f.frame)||void 0===c?void 0:c.bounds,w,s,g,y]),f.frame?n(o,{children:[i("div",{className:"im-c-frame-spacer",style:{inset:j},ref:v}),w&&i("div",{ref:g,className:"im-c-frame-display",style:u({},w)})]}):null}}],buttons:[v({id:"frameDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.frame}},g),v({id:"frameCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.frame}},g)],api:{addFrame:function(e,t){var{pluginConfig:r,pluginState:n,services:o}=e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:a}=n,{eventBus:c}=o;a({type:"SET_FRAME",payload:b(b(b(b({},s),r),i),{},{featureId:t})}),c.emit("frame:add")},editFeature:function(e,t){var{pluginConfig:r,pluginState:n,mapProvider:o,services:i}=e,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:c}=n,{eventBus:l}=i,f=p(t),u=function(e,t){var r=p(e);if(!r)return null;var[n,o,i,a]=r,c=t.mapToScreen([n,a]),l=t.mapToScreen([i,o]),f=Math.abs(l.x-c.x),u=Math.abs(l.y-c.y);return 0===u?null:Math.round(f/u*1e6)/1e6}(t,o),d=y(y(y(y({},s),r),a),{},{aspectRatio:u,featureId:(null==t?void 0:t.id)||t.properties.id});c({type:"SET_FRAME",payload:y(y({},d),{},{bounds:f})}),l.emit("frame:edit")}}};export{h as manifest};
@@ -1 +1 @@
1
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[191],{397(t,e,r){function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function i(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?o(Object(r),!0).forEach(function(e){u(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function u(t,e,r){return(e=function(t){var e=function(t){if("object"!=n(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}r.r(e),r.d(e,{manifest:()=>A});var a={SET_FRAME:function(t,e){return i(i({},t),{},{frame:e})},SET_FRAME_REFS:function(t,e){return i(i({},t),{},{frameRefs:e})}},c=r(738);function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,u,a=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return a}}(t,e)||function(t,e){if(t){if("string"==typeof t)return f(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function p(t){var e;if(null==t||null===(e=t.geometry)||void 0===e||null===(e=e.coordinates)||void 0===e||!e[0])return null;var r=t.geometry.coordinates[0],n=1/0,o=1/0,i=-1/0,u=-1/0;return r.forEach(function(t){var e=l(t,2),r=e[0],a=e[1];r<n&&(n=r),r>i&&(i=r),a<o&&(o=a),a>u&&(u=a)}),[n,o,i,u]}var s=r(287);function y(t){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},y(t)}function b(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function m(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?b(Object(r),!0).forEach(function(e){d(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function d(t,e,r){return(e=function(t){var e=function(t){if("object"!=y(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==y(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function v(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,u,a=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return a}}(t,e)||function(t,e){if(t){if("string"==typeof t)return g(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var O={aspectRatio:1,mobileWidth:"300px",tabletWidth:"360px",desktopWidth:"400px"};function h(t){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h(t)}function j(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function S(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?j(Object(r),!0).forEach(function(e){w(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function w(t,e,r){return(e=function(t){var e=function(t){if("object"!=h(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=h(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==h(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function P(t){return P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},P(t)}function E(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function R(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?E(Object(r),!0).forEach(function(e){T(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function T(t,e,r){return(e=function(t){var e=function(t){if("object"!=P(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=P(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==P(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function D(t){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},D(t)}function M(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function x(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?M(Object(r),!0).forEach(function(e){C(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):M(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function C(t,e,r){return(e=function(t){var e=function(t){if("object"!=D(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=D(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==D(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var k={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},A={reducer:{initialState:{frame:null,frameRefs:null},actions:a},InitComponent:function(t){var e,r,n,o,i=t.appState,u=t.mapState,a=t.mapProvider,l=t.pluginConfig,f=t.pluginState,p=t.services,s=t.buttonConfig,y=i.mode,b=i.breakpoint,m=i.layoutRefs,d=p.eventBus,v=s.frameDone,g=s.frameCancel,O=f.dispatch,h=f.frameRefs,j=f.frame,S=null===(e=null===(r=l.includeModes)||void 0===r?void 0:r.includes(y))||void 0===e||e,w=null!==(n=null===(o=l.excludeModes)||void 0===o?void 0:o.includes(y))&&void 0!==n&&n,P=u.isMapReady&&S&&!w;(0,c.useEffect)(function(){if(P)return v.onClick=function(){var t=function(t){var e=t.viewportEl,r=t.mapProvider,n=t.featureId,o=t.scale,i=t.frameEl.getBoundingClientRect(),u=e.getBoundingClientRect(),a={x:(i.left-u.left)/o,y:(i.top-u.top)/o},c={x:(i.right-u.left)/o,y:(i.top-u.top)/o},l={x:(i.right-u.left)/o,y:(i.bottom-u.top)/o},f={x:(i.left-u.left)/o,y:(i.bottom-u.top)/o},p={type:"Feature",geometry:{type:"Polygon",coordinates:[[r.screenToMap(a),r.screenToMap(c),r.screenToMap(l),r.screenToMap(f),r.screenToMap(a)]]},properties:{}};return n&&(p.id=n),p}({frameEl:h.displayRef.current,viewportEl:m.viewportRef.current,featureId:null==j?void 0:j.featureId,scale:{small:1,medium:1.5,large:2}[u.mapSize],mapProvider:a});O({type:"SET_FRAME",payload:null}),d.emit("frame:done",t)},g.onClick=function(){O({type:"SET_FRAME",payload:null}),d.emit("frame:cancel")},function(){v.onClick=null,g.onClick=null}},[u.isMapReady,y,b,j,h,m,a,O,d,v,g])},controls:[{id:"frame",label:"Frame",mobile:{slot:"middle"},tablet:{slot:"middle"},desktop:{slot:"middle"},render:function(t){var e,r=t.appState,n=t.mapState,o=t.pluginState,i=t.mapProvider,u=r.layoutRefs,a=u.actionsRef,l=u.mainRef,f=u.footerRef,p=u.viewportRef,y=o.dispatch,b=(0,c.useRef)(null),d=(0,c.useRef)(null),g=(0,c.useRef)(null),O=v((0,c.useState)("65px"),2),h=O[0],j=O[1],S=v((0,c.useState)(null),2),w=S[0],P=S[1];return(0,c.useEffect)(function(){y({type:"SET_FRAME_REFS",payload:{displayRef:d}})},[]),(0,c.useEffect)(function(){if(o.frame&&b.current){var t=b.current,e=function(){if(a.current&&l.current&&f.current){var e=l.current.offsetHeight,n=f.current.offsetTop,i=a.current.offsetTop,u=e-Math.min(i,n)+10;j("65px 65px ".concat(u,"px 65px"));var c=t.offsetWidth,p=t.offsetHeight;if(e-u-t.offsetTop===t.offsetHeight){var s=function(t,e,r,n){var o=Number.parseInt(r["".concat(n,"Width")]||t,10),i=Math.min(o,t),u=i/r.aspectRatio;return u>e&&(i=(u=e)*r.aspectRatio),{top:(e-u)/2,left:(t-i)/2,width:i,height:u}}(c,p,o.frame,r.breakpoint),y=s.top,b=s.left,m=s.width,d=s.height,v=y+t.offsetTop,g=b+t.offsetLeft;P({top:"".concat(v,"px"),left:"".concat(g,"px"),width:"".concat(m,"px"),height:"".concat(d,"px")})}}},n=new window.ResizeObserver(e);return n.observe(t),e(),function(){return n.disconnect()}}g.current=null},[o.frame,r.breakpoint,a,l,f]),(0,c.useEffect)(function(){var t;if(null!==(t=o.frame)&&void 0!==t&&t.bounds&&d.current&&p.current&&w){var e=d.current,r=p.current,u=e.getBoundingClientRect(),a=r.getBoundingClientRect(),c={small:1,medium:1.5,large:2}[n.mapSize],l={top:(u.top-a.top)/c,right:(a.right-u.right)/c,bottom:(a.bottom-u.bottom)/c,left:(u.left-a.left)/c};i.setPadding(l),i.fitToBounds(o.frame.bounds,!0)}},[null===(e=o.frame)||void 0===e?void 0:e.bounds,w,i,d,p]),o.frame?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"im-c-frame-spacer",style:{inset:h},ref:b}),w&&(0,s.jsx)("div",{ref:d,className:"im-c-frame-display",style:m({},w)})]}):null}}],buttons:[x({id:"frameDone",label:"Done",variant:"primary",hiddenWhen:function(t){return!t.pluginState.frame}},k),x({id:"frameCancel",label:"Cancel",variant:"tertiary",hiddenWhen:function(t){return!t.pluginState.frame}},k)],api:{addFrame:function(t,e){var r=t.pluginConfig,n=t.pluginState,o=t.services,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=n.dispatch,a=o.eventBus;u({type:"SET_FRAME",payload:S(S(S(S({},O),r),i),{},{featureId:e})}),a.emit("frame:add")},editFeature:function(t,e){var r=t.pluginConfig,n=t.pluginState,o=t.mapProvider,i=t.services,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.dispatch,c=i.eventBus,f=p(e),s=function(t,e){var r=p(t);if(!r)return null;var n=l(r,4),o=n[0],i=n[1],u=n[2],a=n[3],c=e.mapToScreen([o,a]),f=e.mapToScreen([u,i]),s=Math.abs(f.x-c.x),y=Math.abs(f.y-c.y);return 0===y?null:Math.round(s/y*1e6)/1e6}(e,o),y=R(R(R(R({},O),r),u),{},{aspectRatio:s,featureId:(null==e?void 0:e.id)||e.properties.id});a({type:"SET_FRAME",payload:R(R({},y),{},{bounds:f})}),c.emit("frame:edit")}}}}}]);
1
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[191],{397(t,e,r){function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function i(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?o(Object(r),!0).forEach(function(e){u(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function u(t,e,r){return(e=function(t){var e=function(t){if("object"!=n(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}r.r(e),r.d(e,{manifest:()=>A});var a={SET_FRAME:function(t,e){return i(i({},t),{},{frame:e})},SET_FRAME_REFS:function(t,e){return i(i({},t),{},{frameRefs:e})}},c=r(738);function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,u,a=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return a}}(t,e)||function(t,e){if(t){if("string"==typeof t)return f(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function p(t){var e;if(null==t||null===(e=t.geometry)||void 0===e||null===(e=e.coordinates)||void 0===e||!e[0])return null;var r=t.geometry.coordinates[0],n=1/0,o=1/0,i=-1/0,u=-1/0;return r.forEach(function(t){var e=l(t,2),r=e[0],a=e[1];r<n&&(n=r),r>i&&(i=r),a<o&&(o=a),a>u&&(u=a)}),[n,o,i,u]}var s=r(287);function y(t){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},y(t)}function b(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function m(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?b(Object(r),!0).forEach(function(e){d(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function d(t,e,r){return(e=function(t){var e=function(t){if("object"!=y(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==y(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function v(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,u,a=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return a}}(t,e)||function(t,e){if(t){if("string"==typeof t)return g(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var O={aspectRatio:1,mobileWidth:"300px",tabletWidth:"360px",desktopWidth:"400px"};function h(t){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h(t)}function j(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function S(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?j(Object(r),!0).forEach(function(e){w(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function w(t,e,r){return(e=function(t){var e=function(t){if("object"!=h(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=h(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==h(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function P(t){return P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},P(t)}function E(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function R(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?E(Object(r),!0).forEach(function(e){T(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function T(t,e,r){return(e=function(t){var e=function(t){if("object"!=P(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=P(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==P(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function D(t){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},D(t)}function M(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function x(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?M(Object(r),!0).forEach(function(e){C(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):M(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function C(t,e,r){return(e=function(t){var e=function(t){if("object"!=D(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=D(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==D(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var k={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},A={reducer:{initialState:{frame:null,frameRefs:null},actions:a},InitComponent:function(t){var e,r,n,o,i=t.appState,u=t.mapState,a=t.mapProvider,l=t.pluginConfig,f=t.pluginState,p=t.services,s=t.buttonConfig,y=i.mode,b=i.breakpoint,m=i.layoutRefs,d=p.eventBus,v=s.frameDone,g=s.frameCancel,O=f.dispatch,h=f.frameRefs,j=f.frame,S=null===(e=null===(r=l.includeModes)||void 0===r?void 0:r.includes(y))||void 0===e||e,w=null!==(n=null===(o=l.excludeModes)||void 0===o?void 0:o.includes(y))&&void 0!==n&&n,P=u.isMapReady&&S&&!w;(0,c.useEffect)(function(){if(P)return v.onClick=function(){var t=function(t){var e=t.viewportEl,r=t.mapProvider,n=t.featureId,o=t.scale,i=t.frameEl.getBoundingClientRect(),u=e.getBoundingClientRect(),a={x:(i.left-u.left)/o,y:(i.top-u.top)/o},c={x:(i.right-u.left)/o,y:(i.top-u.top)/o},l={x:(i.right-u.left)/o,y:(i.bottom-u.top)/o},f={x:(i.left-u.left)/o,y:(i.bottom-u.top)/o},p={type:"Feature",geometry:{type:"Polygon",coordinates:[[r.screenToMap(a),r.screenToMap(c),r.screenToMap(l),r.screenToMap(f),r.screenToMap(a)]]},properties:{}};return n&&(p.id=n),p}({frameEl:h.displayRef.current,viewportEl:m.viewportRef.current,featureId:null==j?void 0:j.featureId,scale:{small:1,medium:1.5,large:2}[u.mapSize],mapProvider:a});O({type:"SET_FRAME",payload:null}),d.emit("frame:done",t)},g.onClick=function(){O({type:"SET_FRAME",payload:null}),d.emit("frame:cancel")},function(){v.onClick=null,g.onClick=null}},[u.isMapReady,y,b,j,h,m,a,O,d,v,g])},controls:[{id:"frame",label:"Frame",mobile:{slot:"middle"},tablet:{slot:"middle"},desktop:{slot:"middle"},render:function(t){var e,r=t.appState,n=t.mapState,o=t.pluginState,i=t.mapProvider,u=r.layoutRefs,a=u.actionsRef,l=u.mainRef,f=u.bottomRef,p=u.viewportRef,y=o.dispatch,b=(0,c.useRef)(null),d=(0,c.useRef)(null),g=(0,c.useRef)(null),O=v((0,c.useState)("65px"),2),h=O[0],j=O[1],S=v((0,c.useState)(null),2),w=S[0],P=S[1];return(0,c.useEffect)(function(){y({type:"SET_FRAME_REFS",payload:{displayRef:d}})},[]),(0,c.useEffect)(function(){if(o.frame&&b.current){var t=b.current,e=function(){if(a.current&&l.current&&f.current){var e=l.current.offsetHeight,n=f.current.offsetTop,i=a.current.offsetTop,u=e-Math.min(i,n)+10;j("65px 65px ".concat(u,"px 65px"));var c=t.offsetWidth,p=t.offsetHeight;if(e-u-t.offsetTop===t.offsetHeight){var s=function(t,e,r,n){var o=Number.parseInt(r["".concat(n,"Width")]||t,10),i=Math.min(o,t),u=i/r.aspectRatio;return u>e&&(i=(u=e)*r.aspectRatio),{top:(e-u)/2,left:(t-i)/2,width:i,height:u}}(c,p,o.frame,r.breakpoint),y=s.top,b=s.left,m=s.width,d=s.height,v=y+t.offsetTop,g=b+t.offsetLeft;P({top:"".concat(v,"px"),left:"".concat(g,"px"),width:"".concat(m,"px"),height:"".concat(d,"px")})}}},n=new window.ResizeObserver(e);return n.observe(t),e(),function(){return n.disconnect()}}g.current=null},[o.frame,r.breakpoint,a,l,f]),(0,c.useEffect)(function(){var t;if(null!==(t=o.frame)&&void 0!==t&&t.bounds&&d.current&&p.current&&w){var e=d.current,r=p.current,u=e.getBoundingClientRect(),a=r.getBoundingClientRect(),c={small:1,medium:1.5,large:2}[n.mapSize],l={top:(u.top-a.top)/c,right:(a.right-u.right)/c,bottom:(a.bottom-u.bottom)/c,left:(u.left-a.left)/c};i.setPadding(l),i.fitToBounds(o.frame.bounds,!0)}},[null===(e=o.frame)||void 0===e?void 0:e.bounds,w,i,d,p]),o.frame?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"im-c-frame-spacer",style:{inset:h},ref:b}),w&&(0,s.jsx)("div",{ref:d,className:"im-c-frame-display",style:m({},w)})]}):null}}],buttons:[x({id:"frameDone",label:"Done",variant:"primary",hiddenWhen:function(t){return!t.pluginState.frame}},k),x({id:"frameCancel",label:"Cancel",variant:"tertiary",hiddenWhen:function(t){return!t.pluginState.frame}},k)],api:{addFrame:function(t,e){var r=t.pluginConfig,n=t.pluginState,o=t.services,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=n.dispatch,a=o.eventBus;u({type:"SET_FRAME",payload:S(S(S(S({},O),r),i),{},{featureId:e})}),a.emit("frame:add")},editFeature:function(t,e){var r=t.pluginConfig,n=t.pluginState,o=t.mapProvider,i=t.services,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.dispatch,c=i.eventBus,f=p(e),s=function(t,e){var r=p(t);if(!r)return null;var n=l(r,4),o=n[0],i=n[1],u=n[2],a=n[3],c=e.mapToScreen([o,a]),f=e.mapToScreen([u,i]),s=Math.abs(f.x-c.x),y=Math.abs(f.y-c.y);return 0===y?null:Math.round(s/y*1e6)/1e6}(e,o),y=R(R(R(R({},O),r),u),{},{aspectRatio:s,featureId:(null==e?void 0:e.id)||e.properties.id});a({type:"SET_FRAME",payload:R(R({},y),{},{bounds:f})}),c.emit("frame:edit")}}}}}]);
@@ -2,7 +2,7 @@ import React, { useRef, useEffect, useState } from 'react'
2
2
  import { computeInset } from './utils.js'
3
3
 
4
4
  export function Frame ({ appState, mapState, pluginState, mapProvider }) {
5
- const { actionsRef, mainRef, footerRef, viewportRef } = appState.layoutRefs
5
+ const { actionsRef, mainRef, bottomRef, viewportRef } = appState.layoutRefs
6
6
  const { dispatch } = pluginState
7
7
  const elRef = useRef(null)
8
8
  const displayRef = useRef(null)
@@ -28,15 +28,15 @@ export function Frame ({ appState, mapState, pluginState, mapProvider }) {
28
28
  const parent = elRef.current
29
29
 
30
30
  const updateLayout = () => {
31
- if (!actionsRef.current || !mainRef.current || !footerRef.current) {
31
+ if (!actionsRef.current || !mainRef.current || !bottomRef.current) {
32
32
  return
33
33
  }
34
34
 
35
35
  // Parent inset
36
36
  const mainHeight = mainRef.current.offsetHeight
37
- const footerTop = footerRef.current.offsetTop
37
+ const bottomTop = bottomRef.current.offsetTop
38
38
  const actionsTop = actionsRef.current.offsetTop
39
- const offsetBottom = mainHeight - Math.min(actionsTop, footerTop) + 10
39
+ const offsetBottom = mainHeight - Math.min(actionsTop, bottomTop) + 10
40
40
  setParentInset(`65px 65px ${offsetBottom}px 65px`)
41
41
 
42
42
  const { offsetWidth: parentWidth, offsetHeight: parentHeight } = parent
@@ -71,7 +71,7 @@ export function Frame ({ appState, mapState, pluginState, mapProvider }) {
71
71
  updateLayout()
72
72
 
73
73
  return () => observer.disconnect()
74
- }, [pluginState.frame, appState.breakpoint, actionsRef, mainRef, footerRef])
74
+ }, [pluginState.frame, appState.breakpoint, actionsRef, mainRef, bottomRef])
75
75
 
76
76
  // Fit bounds after frame is rendered (for editFeature)
77
77
  useEffect(() => {
@@ -1 +1 @@
1
- import{useEffect as e,useContext as t,createContext as i}from"preact/compat";import{jsx as s,Fragment as l,jsxs as a}from"preact/jsx-runtime";import r from"@babel/runtime/helpers/defineProperty";new Set;function m(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?m(Object(i),!0).forEach(function(t){r(e,t,i[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):m(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}var n={slot:"middle",open:!1,dismissible:!0,modal:!0};o({},n),o(o({},n),{},{width:"500px"}),o(o({},n),{},{width:"500px"});var c={small:1,medium:1.5,large:2},p={InitComponent:function(t){var{pluginConfig:i,services:a}=t,{events:r,eventBus:m}=a,o=()=>{m.emit(r.MAP_INIT_MAP_STYLES,i.mapStyles)};return e(()=>(m.on(r.APP_READY,o),()=>m.off(r.APP_READY,o)),[]),s(l,{})},panels:[{id:"mapStyles",label:"Map styles",mobile:{slot:"bottom",modal:!0,dismissible:!0},tablet:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},desktop:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},render:e=>{var{mapState:t,pluginConfig:i,services:l,mapProvider:r}=e,{mapStyle:m,mapSize:o}=t,{mapStyles:n}=i,{events:p,eventBus:d}=l,{supportsMapSizes:h}=r.capabilities;return a("div",{className:"im-c-map-styles",children:[s("div",{className:"im-c-map-styles__group",children:s("div",{className:"im-c-map-styles__inner",children:n.filter(e=>e.url).map(e=>s("div",{className:"im-c-map-styles__item",children:a("button",{className:"im-c-map-styles__button","aria-pressed":e.id===m.id,onClick:()=>{return t=e,void d.emit(p.MAP_SET_STYLE,t);var t},children:[s("div",{className:"im-c-map-styles__image",children:s("img",{src:e.thumbnail||void 0,alt:"",height:"60",width:"60"})}),e.label]})},e.id))})}),h&&a("div",{className:"im-c-map-styles__group",children:[s("h3",{className:"im-c-map-styles__heading",id:"map-text-sizes",children:"Map size"}),s("div",{className:"im-c-map-styles__inner",children:["small","medium","large"].map(e=>s("div",{className:"im-c-map-styles__item",children:a("button",{className:"im-c-map-styles__button",onClick:()=>{return t=e,d.emit(p.MAP_SET_SIZE,t),void d.emit(p.MAP_SET_PIXEL_RATIO,window.devicePixelRatio*c[t]);var t},"aria-pressed":e===o,children:[s("div",{className:"im-c-map-styles__image",children:a("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fillRule:"evenodd",children:[s("rect",{className:"im-c-map-styles__image-bg",width:"100%",height:"100%"}),s("g",{style:{transform:"scale(".concat(c[e],")"),transformOrigin:"8px 52px"},children:s("path",{d:"M8 51.785L12.948 38.9h1.837l5.274 12.885h-1.943l-1.503-3.903h-5.387l-1.415 3.903H8zm3.718-5.291h4.368l-1.345-3.569-.914-2.671c-.164.826-.395 1.646-.694 2.46l-1.415 3.78zm15.592 4.139c-3.698 3.143-7.836.271-6.315-2.562.963-1.794 5.529-1.982 6.183-2.21.022-.825.052-2.27-2.241-2.312-1.751-.031-2.242 1.025-2.435 1.776l-1.547-.211c.234-1.102.963-2.856 4.21-2.874 4.037-.022 3.612 2.962 3.612 3.524v2.11c0 .315 0 3.012.501 3.911h-1.652c-.164-.328-.27-.712-.316-1.152zm-.132-3.533c-.907.37-3.444.694-3.964.914-1.293.548-.911 2.399.225 2.637.639.134 3.739.476 3.739-2.971v-.58z"})})]})}),e[0].toUpperCase()+e.slice(1)]})},e))})]})]})}}],buttons:[{id:"mapStyles",label:"Styles",panelId:"mapStyles",iconId:"map",mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"map",svgContent:'<path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/>'}]};export{p as manifest};
1
+ import{useEffect as e,useContext as t,createContext as i}from"preact/compat";import{jsx as s,Fragment as l,jsxs as a}from"preact/jsx-runtime";import r from"@babel/runtime/helpers/defineProperty";new Set;function m(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function n(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?m(Object(i),!0).forEach(function(t){r(e,t,i[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):m(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}var o={slot:"middle",open:!1,dismissible:!0,modal:!0};n({},o),n(n({},o),{},{width:"500px"}),n(n({},o),{},{width:"500px"});var c={small:1,medium:1.5,large:2},p={InitComponent:function(t){var{pluginConfig:i,services:a}=t,{events:r,eventBus:m}=a,n=()=>{m.emit(r.MAP_INIT_MAP_STYLES,i.mapStyles)};return e(()=>(m.on(r.APP_READY,n),()=>m.off(r.APP_READY,n)),[]),s(l,{})},panels:[{id:"mapStyles",label:"Map styles",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},desktop:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},render:e=>{var{mapState:t,pluginConfig:i,services:l,mapProvider:r}=e,{mapStyle:m,mapSize:n}=t,{mapStyles:o}=i,{events:p,eventBus:d}=l,{supportsMapSizes:h}=r.capabilities;return a("div",{className:"im-c-map-styles",children:[s("div",{className:"im-c-map-styles__group",children:s("div",{className:"im-c-map-styles__inner",children:o.filter(e=>e.url).map(e=>s("div",{className:"im-c-map-styles__item",children:a("button",{className:"im-c-map-styles__button","aria-pressed":e.id===m.id,onClick:()=>{return t=e,void d.emit(p.MAP_SET_STYLE,t);var t},children:[s("div",{className:"im-c-map-styles__image",children:s("img",{src:e.thumbnail||void 0,alt:"",height:"60",width:"60"})}),e.label]})},e.id))})}),h&&a("div",{className:"im-c-map-styles__group",children:[s("h3",{className:"im-c-map-styles__heading",id:"map-text-sizes",children:"Map size"}),s("div",{className:"im-c-map-styles__inner",children:["small","medium","large"].map(e=>s("div",{className:"im-c-map-styles__item",children:a("button",{className:"im-c-map-styles__button",onClick:()=>{return t=e,d.emit(p.MAP_SET_SIZE,t),void d.emit(p.MAP_SET_PIXEL_RATIO,window.devicePixelRatio*c[t]);var t},"aria-pressed":e===n,children:[s("div",{className:"im-c-map-styles__image",children:a("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fillRule:"evenodd",children:[s("rect",{className:"im-c-map-styles__image-bg",width:"100%",height:"100%"}),s("g",{style:{transform:"scale(".concat(c[e],")"),transformOrigin:"8px 52px"},children:s("path",{d:"M8 51.785L12.948 38.9h1.837l5.274 12.885h-1.943l-1.503-3.903h-5.387l-1.415 3.903H8zm3.718-5.291h4.368l-1.345-3.569-.914-2.671c-.164.826-.395 1.646-.694 2.46l-1.415 3.78zm15.592 4.139c-3.698 3.143-7.836.271-6.315-2.562.963-1.794 5.529-1.982 6.183-2.21.022-.825.052-2.27-2.241-2.312-1.751-.031-2.242 1.025-2.435 1.776l-1.547-.211c.234-1.102.963-2.856 4.21-2.874 4.037-.022 3.612 2.962 3.612 3.524v2.11c0 .315 0 3.012.501 3.911h-1.652c-.164-.328-.27-.712-.316-1.152zm-.132-3.533c-.907.37-3.444.694-3.964.914-1.293.548-.911 2.399.225 2.637.639.134 3.739.476 3.739-2.971v-.58z"})})]})}),e[0].toUpperCase()+e.slice(1)]})},e))})]})]})}}],buttons:[{id:"mapStyles",label:"Styles",panelId:"mapStyles",iconId:"map",mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"map",svgContent:'<path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/>'}]};export{p as manifest};
@@ -1 +1 @@
1
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[657],{860(e,t,i){i.r(t),i.d(t,{manifest:()=>p});var s=i(738),r=i(287);new Set,new Set;function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function l(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function a(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?l(Object(i),!0).forEach(function(t){o(e,t,i[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):l(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}function o(e,t,i){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var c={slot:"middle",open:!1,dismissible:!0,modal:!0},m=(a({},c),a(a({},c),{},{width:"500px"}),a(a({},c),{},{width:"500px"}),{small:1,medium:1.5,large:2}),p={InitComponent:function(e){var t=e.pluginConfig,i=e.services,n=i.events,l=i.eventBus,a=function(){l.emit(n.MAP_INIT_MAP_STYLES,t.mapStyles)};return(0,s.useEffect)(function(){return l.on(n.APP_READY,a),function(){return l.off(n.APP_READY,a)}},[]),(0,r.jsx)(r.Fragment,{})},panels:[{id:"mapStyles",label:"Map styles",mobile:{slot:"bottom",modal:!0,dismissible:!0},tablet:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},desktop:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},render:function(e){var t=e.mapState,i=e.pluginConfig,s=e.services,n=e.mapProvider,l=t.mapStyle,a=t.mapSize,o=i.mapStyles,c=s.events,p=s.eventBus,d=n.capabilities.supportsMapSizes;return(0,r.jsxs)("div",{className:"im-c-map-styles",children:[(0,r.jsx)("div",{className:"im-c-map-styles__group",children:(0,r.jsx)("div",{className:"im-c-map-styles__inner",children:o.filter(function(e){return e.url}).map(function(e){return(0,r.jsx)("div",{className:"im-c-map-styles__item",children:(0,r.jsxs)("button",{className:"im-c-map-styles__button","aria-pressed":e.id===l.id,onClick:function(){return t=e,void p.emit(c.MAP_SET_STYLE,t);var t},children:[(0,r.jsx)("div",{className:"im-c-map-styles__image",children:(0,r.jsx)("img",{src:e.thumbnail||void 0,alt:"",height:"60",width:"60"})}),e.label]})},e.id)})})}),d&&(0,r.jsxs)("div",{className:"im-c-map-styles__group",children:[(0,r.jsx)("h3",{className:"im-c-map-styles__heading",id:"map-text-sizes",children:"Map size"}),(0,r.jsx)("div",{className:"im-c-map-styles__inner",children:["small","medium","large"].map(function(e){return(0,r.jsx)("div",{className:"im-c-map-styles__item",children:(0,r.jsxs)("button",{className:"im-c-map-styles__button",onClick:function(){return t=e,p.emit(c.MAP_SET_SIZE,t),void p.emit(c.MAP_SET_PIXEL_RATIO,window.devicePixelRatio*m[t]);var t},"aria-pressed":e===a,children:[(0,r.jsx)("div",{className:"im-c-map-styles__image",children:(0,r.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fillRule:"evenodd",children:[(0,r.jsx)("rect",{className:"im-c-map-styles__image-bg",width:"100%",height:"100%"}),(0,r.jsx)("g",{style:{transform:"scale(".concat(m[e],")"),transformOrigin:"8px 52px"},children:(0,r.jsx)("path",{d:"M8 51.785L12.948 38.9h1.837l5.274 12.885h-1.943l-1.503-3.903h-5.387l-1.415 3.903H8zm3.718-5.291h4.368l-1.345-3.569-.914-2.671c-.164.826-.395 1.646-.694 2.46l-1.415 3.78zm15.592 4.139c-3.698 3.143-7.836.271-6.315-2.562.963-1.794 5.529-1.982 6.183-2.21.022-.825.052-2.27-2.241-2.312-1.751-.031-2.242 1.025-2.435 1.776l-1.547-.211c.234-1.102.963-2.856 4.21-2.874 4.037-.022 3.612 2.962 3.612 3.524v2.11c0 .315 0 3.012.501 3.911h-1.652c-.164-.328-.27-.712-.316-1.152zm-.132-3.533c-.907.37-3.444.694-3.964.914-1.293.548-.911 2.399.225 2.637.639.134 3.739.476 3.739-2.971v-.58z"})})]})}),e[0].toUpperCase()+e.slice(1)]})},e)})})]})]})}}],buttons:[{id:"mapStyles",label:"Styles",panelId:"mapStyles",iconId:"map",mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"map",svgContent:'<path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/>'}]}}}]);
1
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[657],{860(e,t,i){i.r(t),i.d(t,{manifest:()=>p});var s=i(738),r=i(287);new Set,new Set;function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function l(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function a(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?l(Object(i),!0).forEach(function(t){o(e,t,i[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):l(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}function o(e,t,i){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var c={slot:"middle",open:!1,dismissible:!0,modal:!0},m=(a({},c),a(a({},c),{},{width:"500px"}),a(a({},c),{},{width:"500px"}),{small:1,medium:1.5,large:2}),p={InitComponent:function(e){var t=e.pluginConfig,i=e.services,n=i.events,l=i.eventBus,a=function(){l.emit(n.MAP_INIT_MAP_STYLES,t.mapStyles)};return(0,s.useEffect)(function(){return l.on(n.APP_READY,a),function(){return l.off(n.APP_READY,a)}},[]),(0,r.jsx)(r.Fragment,{})},panels:[{id:"mapStyles",label:"Map styles",mobile:{slot:"drawer",modal:!0,dismissible:!0},tablet:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},desktop:{slot:"left-top",modal:!0,width:"400px",dismissible:!0},render:function(e){var t=e.mapState,i=e.pluginConfig,s=e.services,n=e.mapProvider,l=t.mapStyle,a=t.mapSize,o=i.mapStyles,c=s.events,p=s.eventBus,d=n.capabilities.supportsMapSizes;return(0,r.jsxs)("div",{className:"im-c-map-styles",children:[(0,r.jsx)("div",{className:"im-c-map-styles__group",children:(0,r.jsx)("div",{className:"im-c-map-styles__inner",children:o.filter(function(e){return e.url}).map(function(e){return(0,r.jsx)("div",{className:"im-c-map-styles__item",children:(0,r.jsxs)("button",{className:"im-c-map-styles__button","aria-pressed":e.id===l.id,onClick:function(){return t=e,void p.emit(c.MAP_SET_STYLE,t);var t},children:[(0,r.jsx)("div",{className:"im-c-map-styles__image",children:(0,r.jsx)("img",{src:e.thumbnail||void 0,alt:"",height:"60",width:"60"})}),e.label]})},e.id)})})}),d&&(0,r.jsxs)("div",{className:"im-c-map-styles__group",children:[(0,r.jsx)("h3",{className:"im-c-map-styles__heading",id:"map-text-sizes",children:"Map size"}),(0,r.jsx)("div",{className:"im-c-map-styles__inner",children:["small","medium","large"].map(function(e){return(0,r.jsx)("div",{className:"im-c-map-styles__item",children:(0,r.jsxs)("button",{className:"im-c-map-styles__button",onClick:function(){return t=e,p.emit(c.MAP_SET_SIZE,t),void p.emit(c.MAP_SET_PIXEL_RATIO,window.devicePixelRatio*m[t]);var t},"aria-pressed":e===a,children:[(0,r.jsx)("div",{className:"im-c-map-styles__image",children:(0,r.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 60 60",fillRule:"evenodd",children:[(0,r.jsx)("rect",{className:"im-c-map-styles__image-bg",width:"100%",height:"100%"}),(0,r.jsx)("g",{style:{transform:"scale(".concat(m[e],")"),transformOrigin:"8px 52px"},children:(0,r.jsx)("path",{d:"M8 51.785L12.948 38.9h1.837l5.274 12.885h-1.943l-1.503-3.903h-5.387l-1.415 3.903H8zm3.718-5.291h4.368l-1.345-3.569-.914-2.671c-.164.826-.395 1.646-.694 2.46l-1.415 3.78zm15.592 4.139c-3.698 3.143-7.836.271-6.315-2.562.963-1.794 5.529-1.982 6.183-2.21.022-.825.052-2.27-2.241-2.312-1.751-.031-2.242 1.025-2.435 1.776l-1.547-.211c.234-1.102.963-2.856 4.21-2.874 4.037-.022 3.612 2.962 3.612 3.524v2.11c0 .315 0 3.012.501 3.911h-1.652c-.164-.328-.27-.712-.316-1.152zm-.132-3.533c-.907.37-3.444.694-3.964.914-1.293.548-.911 2.399.225 2.637.639.134 3.739.476 3.739-2.971v-.58z"})})]})}),e[0].toUpperCase()+e.slice(1)]})},e)})})]})]})}}],buttons:[{id:"mapStyles",label:"Styles",panelId:"mapStyles",iconId:"map",mobile:{slot:"top-left",showLabel:!1},tablet:{slot:"top-left",showLabel:!0},desktop:{slot:"top-left",showLabel:!0}}],icons:[{id:"map",svgContent:'<path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/>'}]}}}]);
@@ -9,7 +9,7 @@ export const manifest = {
9
9
  id: 'mapStyles',
10
10
  label: 'Map styles',
11
11
  mobile: {
12
- slot: 'bottom',
12
+ slot: 'drawer',
13
13
  modal: true,
14
14
  dismissible: true
15
15
  },
@@ -1 +1 @@
1
- .im-c-scale-bar{position:relative;margin-left:auto;padding-bottom:5px;color:var(--map-overlay-foreground-color);user-select:none;min-height:20px;width:100px}.im-c-scale-bar__label{text-shadow:-1px -1px 0 var(--map-overlay-halo-color),1px -1px 0 var(--map-overlay-halo-color),-1px 1px 0 var(--map-overlay-halo-color),1px 1px 0 var(--map-overlay-halo-color)}.im-c-scale-bar::after{content:"";position:absolute;bottom:0;left:0;height:4px;width:100%;background-color:var(--map-overlay-foreground-color);box-shadow:-1px -1px 0 var(--map-overlay-halo-color),1px -1px 0 var(--map-overlay-halo-color),-1px 1px 0 var(--map-overlay-halo-color),1px 1px 0 var(--map-overlay-halo-color)}@media(forced-colors: active){.im-c-scale-bar::after{background-color:Canvas}}
1
+ .im-c-scale-bar{position:relative;margin-left:auto;text-align:right;padding-bottom:5px;color:var(--map-overlay-foreground-color);user-select:none;height:25px;width:100px}.im-c-scale-bar__label{text-shadow:-1px -1px 0 var(--map-overlay-halo-color),1px -1px 0 var(--map-overlay-halo-color),-1px 1px 0 var(--map-overlay-halo-color),1px 1px 0 var(--map-overlay-halo-color)}.im-c-scale-bar::after{content:"";position:absolute;bottom:0;left:0;height:4px;width:100%;background-color:var(--map-overlay-foreground-color);box-shadow:-1px -1px 0 var(--map-overlay-halo-color),1px -1px 0 var(--map-overlay-halo-color),-1px 1px 0 var(--map-overlay-halo-color),1px 1px 0 var(--map-overlay-halo-color)}@media(forced-colors: active){.im-c-scale-bar::after{background-color:Canvas}}
@@ -1 +1 @@
1
- import{useRef as r,useMemo as a}from"preact/compat";import{jsx as l,jsxs as t}from"preact/jsx-runtime";var e={small:1,medium:1.5,large:2},i={metric:[{threshold:1,abbr:"m",abbrPlural:"m",unit:"metre",unitPlural:"metres",factor:1},{threshold:1e3,abbr:"km",abbrPlural:"km",unit:"kilometre",unitPlural:"kilometres",factor:.001}],imperial:[{threshold:1609.344,abbr:"mi",abbrPlural:"mi",unit:"mile",unitPlural:"miles",factor:1/1609.344},{threshold:.9144,abbr:"yd",abbrPlural:"yds",unit:"yard",unitPlural:"yards",factor:1/.9144},{threshold:.3048,abbr:"ft",abbrPlural:"ft",unit:"foot",unitPlural:"feet",factor:1/.3048}]},b=r=>{var a=Math.pow(10,Math.floor(Math.log10(r))),l=r/a;return(l>=10?10:l>=5?5:l>=3?3:l>=2?2:1)*a};var o={controls:[{id:"scaleBar",label:"Scale bar",mobile:{slot:"footer-right"},tablet:{slot:"footer-right"},desktop:{slot:"footer-right"},render:function(o){var{mapState:u,pluginConfig:n}=o,{resolution:s,mapSize:m}=u,c=r(null),d=a(()=>s?((r,a,l,t)=>{var o=r/e[t],u=o*a,n=i[l];for(var{abbr:s,abbrPlural:m,unit:c,unitPlural:d,factor:h}of n){var f=b(u*h);if(f>=1&&f<1e3){var p=f/h/o;if(p<=a)return{label:f,abbr:f>1?m:s,width:p,unit:f>1?d:c}}}var P=n[n.length-1],v=u*P.factor,g=b(v),y=g>1?P.abbrPlural:P.abbr,w=g>1?P.abbrPlural:P.abbr;return{label:g,abbr:y,width:g/P.factor/o,unit:w}})(s/1,120,n.units,m):{width:0,label:"",abbr:"",unit:""},[s,m,n.units]);return l("div",{className:"im-c-scale-bar",ref:c,style:{width:"".concat(d.width,"px")},children:t("span",{className:"im-c-scale-bar__label",children:[l("span",{className:"im-u-visually-hidden",children:"Scale bar: "}),d.label,l("span",{"aria-hidden":"true",children:d.abbr}),l("span",{className:"im-u-visually-hidden",children:d.unit})]})})}}]};export{o as manifest};
1
+ import{useRef as r,useMemo as a}from"preact/compat";import{jsx as l,jsxs as t}from"preact/jsx-runtime";var e={small:1,medium:1.5,large:2},i={metric:[{threshold:1,abbr:"m",abbrPlural:"m",unit:"metre",unitPlural:"metres",factor:1},{threshold:1e3,abbr:"km",abbrPlural:"km",unit:"kilometre",unitPlural:"kilometres",factor:.001}],imperial:[{threshold:1609.344,abbr:"mi",abbrPlural:"mi",unit:"mile",unitPlural:"miles",factor:1/1609.344},{threshold:.9144,abbr:"yd",abbrPlural:"yds",unit:"yard",unitPlural:"yards",factor:1/.9144},{threshold:.3048,abbr:"ft",abbrPlural:"ft",unit:"foot",unitPlural:"feet",factor:1/.3048}]},b=r=>{var a=Math.pow(10,Math.floor(Math.log10(r))),l=r/a;return(l>=10?10:l>=5?5:l>=3?3:l>=2?2:1)*a};var o={controls:[{id:"scaleBar",label:"Scale bar",mobile:{slot:"right-bottom"},tablet:{slot:"right-bottom"},desktop:{slot:"right-bottom"},render:function(o){var{mapState:u,pluginConfig:n}=o,{resolution:s,mapSize:m}=u,c=r(null),d=a(()=>s?((r,a,l,t)=>{var o=r/e[t],u=o*a,n=i[l];for(var{abbr:s,abbrPlural:m,unit:c,unitPlural:d,factor:h}of n){var f=b(u*h);if(f>=1&&f<1e3){var p=f/h/o;if(p<=a)return{label:f,abbr:f>1?m:s,width:p,unit:f>1?d:c}}}var P=n[n.length-1],v=u*P.factor,g=b(v),y=g>1?P.abbrPlural:P.abbr,w=g>1?P.abbrPlural:P.abbr;return{label:g,abbr:y,width:g/P.factor/o,unit:w}})(s/1,120,n.units,m):{width:0,label:"",abbr:"",unit:""},[s,m,n.units]);return l("div",{className:"im-c-scale-bar",ref:c,style:{width:"".concat(d.width,"px")},children:t("span",{className:"im-c-scale-bar__label",children:[l("span",{className:"im-u-visually-hidden",children:"Scale bar: "}),d.label,l("span",{"aria-hidden":"true",children:d.abbr}),l("span",{className:"im-u-visually-hidden",children:d.unit})]})})}}]};export{o as manifest};
@@ -1 +1 @@
1
- "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[996],{405(r,t,a){a.r(t),a.d(t,{manifest:()=>s});var e=a(738);function n(r,t){(null==t||t>r.length)&&(t=r.length);for(var a=0,e=Array(t);a<t;a++)e[a]=r[a];return e}var l={small:1,medium:1.5,large:2},i={metric:[{threshold:1,abbr:"m",abbrPlural:"m",unit:"metre",unitPlural:"metres",factor:1},{threshold:1e3,abbr:"km",abbrPlural:"km",unit:"kilometre",unitPlural:"kilometres",factor:.001}],imperial:[{threshold:1609.344,abbr:"mi",abbrPlural:"mi",unit:"mile",unitPlural:"miles",factor:1/1609.344},{threshold:.9144,abbr:"yd",abbrPlural:"yds",unit:"yard",unitPlural:"yards",factor:1/.9144},{threshold:.3048,abbr:"ft",abbrPlural:"ft",unit:"foot",unitPlural:"feet",factor:1/.3048}]},o=function(r){var t=Math.pow(10,Math.floor(Math.log10(r))),a=r/t;return(a>=10?10:a>=5?5:a>=3?3:a>=2?2:1)*t},u=a(287),s={controls:[{id:"scaleBar",label:"Scale bar",mobile:{slot:"footer-right"},tablet:{slot:"footer-right"},desktop:{slot:"footer-right"},render:function(r){var t=r.mapState,a=r.pluginConfig,s=t.resolution,b=t.mapSize,c=(0,e.useRef)(null),f=(0,e.useMemo)(function(){return s?function(r,t,a,e){var u,s=r/l[e],b=120*s,c=i[a],f=function(r,t){var a="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!a){if(Array.isArray(r)||(a=function(r,t){if(r){if("string"==typeof r)return n(r,t);var a={}.toString.call(r).slice(8,-1);return"Object"===a&&r.constructor&&(a=r.constructor.name),"Map"===a||"Set"===a?Array.from(r):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?n(r,t):void 0}}(r))||t&&r&&"number"==typeof r.length){a&&(r=a);var e=0,l=function(){};return{s:l,n:function(){return e>=r.length?{done:!0}:{done:!1,value:r[e++]}},e:function(r){throw r},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,u=!1;return{s:function(){a=a.call(r)},n:function(){var r=a.next();return o=r.done,r},e:function(r){u=!0,i=r},f:function(){try{o||null==a.return||a.return()}finally{if(u)throw i}}}}(c);try{for(f.s();!(u=f.n()).done;){var h=u.value,d=h.abbr,m=h.abbrPlural,y=h.unit,p=h.unitPlural,v=h.factor,g=o(b*v);if(g>=1&&g<1e3){var P=g/v/s;if(P<=120)return{label:g,abbr:g>1?m:d,width:P,unit:g>1?p:y}}}}catch(r){f.e(r)}finally{f.f()}var w=c[c.length-1],k=b*w.factor,S=o(k),j=S>1?w.abbrPlural:w.abbr,x=S>1?w.abbrPlural:w.abbr;return{label:S,abbr:j,width:S/w.factor/s,unit:x}}(s/1,0,a.units,b):{width:0,label:"",abbr:"",unit:""}},[s,b,a.units]);return(0,u.jsx)("div",{className:"im-c-scale-bar",ref:c,style:{width:"".concat(f.width,"px")},children:(0,u.jsxs)("span",{className:"im-c-scale-bar__label",children:[(0,u.jsx)("span",{className:"im-u-visually-hidden",children:"Scale bar: "}),f.label,(0,u.jsx)("span",{"aria-hidden":"true",children:f.abbr}),(0,u.jsx)("span",{className:"im-u-visually-hidden",children:f.unit})]})})}}]}}}]);
1
+ "use strict";(this.webpackChunkdefra_DefraMap=this.webpackChunkdefra_DefraMap||[]).push([[996],{405(r,t,a){a.r(t),a.d(t,{manifest:()=>b});var e=a(738);function n(r,t){(null==t||t>r.length)&&(t=r.length);for(var a=0,e=Array(t);a<t;a++)e[a]=r[a];return e}var l={small:1,medium:1.5,large:2},i={metric:[{threshold:1,abbr:"m",abbrPlural:"m",unit:"metre",unitPlural:"metres",factor:1},{threshold:1e3,abbr:"km",abbrPlural:"km",unit:"kilometre",unitPlural:"kilometres",factor:.001}],imperial:[{threshold:1609.344,abbr:"mi",abbrPlural:"mi",unit:"mile",unitPlural:"miles",factor:1/1609.344},{threshold:.9144,abbr:"yd",abbrPlural:"yds",unit:"yard",unitPlural:"yards",factor:1/.9144},{threshold:.3048,abbr:"ft",abbrPlural:"ft",unit:"foot",unitPlural:"feet",factor:1/.3048}]},o=function(r){var t=Math.pow(10,Math.floor(Math.log10(r))),a=r/t;return(a>=10?10:a>=5?5:a>=3?3:a>=2?2:1)*t},u=a(287),b={controls:[{id:"scaleBar",label:"Scale bar",mobile:{slot:"right-bottom"},tablet:{slot:"right-bottom"},desktop:{slot:"right-bottom"},render:function(r){var t=r.mapState,a=r.pluginConfig,b=t.resolution,s=t.mapSize,c=(0,e.useRef)(null),f=(0,e.useMemo)(function(){return b?function(r,t,a,e){var u,b=r/l[e],s=120*b,c=i[a],f=function(r,t){var a="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!a){if(Array.isArray(r)||(a=function(r,t){if(r){if("string"==typeof r)return n(r,t);var a={}.toString.call(r).slice(8,-1);return"Object"===a&&r.constructor&&(a=r.constructor.name),"Map"===a||"Set"===a?Array.from(r):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?n(r,t):void 0}}(r))||t&&r&&"number"==typeof r.length){a&&(r=a);var e=0,l=function(){};return{s:l,n:function(){return e>=r.length?{done:!0}:{done:!1,value:r[e++]}},e:function(r){throw r},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,u=!1;return{s:function(){a=a.call(r)},n:function(){var r=a.next();return o=r.done,r},e:function(r){u=!0,i=r},f:function(){try{o||null==a.return||a.return()}finally{if(u)throw i}}}}(c);try{for(f.s();!(u=f.n()).done;){var h=u.value,d=h.abbr,m=h.abbrPlural,y=h.unit,p=h.unitPlural,v=h.factor,g=o(s*v);if(g>=1&&g<1e3){var P=g/v/b;if(P<=120)return{label:g,abbr:g>1?m:d,width:P,unit:g>1?p:y}}}}catch(r){f.e(r)}finally{f.f()}var w=c[c.length-1],k=s*w.factor,S=o(k),j=S>1?w.abbrPlural:w.abbr,x=S>1?w.abbrPlural:w.abbr;return{label:S,abbr:j,width:S/w.factor/b,unit:x}}(b/1,0,a.units,s):{width:0,label:"",abbr:"",unit:""}},[b,s,a.units]);return(0,u.jsx)("div",{className:"im-c-scale-bar",ref:c,style:{width:"".concat(f.width,"px")},children:(0,u.jsxs)("span",{className:"im-c-scale-bar__label",children:[(0,u.jsx)("span",{className:"im-u-visually-hidden",children:"Scale bar: "}),f.label,(0,u.jsx)("span",{"aria-hidden":"true",children:f.abbr}),(0,u.jsx)("span",{className:"im-u-visually-hidden",children:f.unit})]})})}}]}}}]);
@@ -60,9 +60,9 @@ describe('createPlugin', () => {
60
60
  const manifest = await plugin.load()
61
61
 
62
62
  const scaleBarControl = manifest.controls[0]
63
- expect(scaleBarControl.mobile.slot).toBe('footer-right')
64
- expect(scaleBarControl.tablet.slot).toBe('footer-right')
65
- expect(scaleBarControl.desktop.slot).toBe('footer-right')
63
+ expect(scaleBarControl.mobile.slot).toBe('right-bottom')
64
+ expect(scaleBarControl.tablet.slot).toBe('right-bottom')
65
+ expect(scaleBarControl.desktop.slot).toBe('right-bottom')
66
66
  })
67
67
 
68
68
  it('manifest control has render function', async () => {
@@ -6,13 +6,13 @@ export const manifest = {
6
6
  id: 'scaleBar',
7
7
  label: 'Scale bar',
8
8
  mobile: {
9
- slot: 'footer-right'
9
+ slot: 'right-bottom'
10
10
  },
11
11
  tablet: {
12
- slot: 'footer-right'
12
+ slot: 'right-bottom'
13
13
  },
14
14
  desktop: {
15
- slot: 'footer-right'
15
+ slot: 'right-bottom'
16
16
  },
17
17
  render: ScaleBar
18
18
  }]
@@ -7,10 +7,11 @@
7
7
  .im-c-scale-bar {
8
8
  position: relative;
9
9
  margin-left: auto;
10
+ text-align: right;
10
11
  padding-bottom: 5px;
11
12
  color: var(--map-overlay-foreground-color);
12
13
  user-select: none;
13
- min-height: 20px; // Required to ensure padding is calculated before scale bar is rendered
14
+ height: 25px; // Required to ensure padding is calculated before scale bar is rendered
14
15
  width: 100px;
15
16
  }
16
17
 
@@ -1 +1 @@
1
- .im-c-mark-location{display:flex;justify-content:center;gap:var(--divider-gap)}.im-o-app--mobile .im-c-mark-location .im-c-button-wrapper,.im-o-app--mobile .im-c-mark-location .im-c-map-button{flex:1 1 auto;min-width:fit-content}.im-o-app--mouse.im-o-app--tablet .im-c-mark-location .im-c-map-button,.im-o-app--mouse.im-o-app--desktop .im-c-mark-location .im-c-map-button{min-width:150px}.im-o-app--mobile .im-c-mark-location .im-c-map-button{flex:1 1 auto;min-width:fit-content}.im-c-button-wrapper--select-at-target{position:absolute;bottom:calc(100% + var(--primary-gap));z-index:0}
1
+ .im-c-mark-location{display:flex;justify-content:center;gap:var(--divider-gap)}.im-o-app--mobile .im-c-mark-location .im-c-button-wrapper,.im-o-app--mobile .im-c-mark-location .im-c-map-button{flex:1 1 auto;min-width:fit-content}.im-o-app--mouse.im-o-app--tablet .im-c-mark-location .im-c-map-button,.im-o-app--mouse.im-o-app--desktop .im-c-mark-location .im-c-map-button{min-width:150px}.im-o-app--mobile .im-c-mark-location .im-c-map-button{flex:1 1 auto;min-width:fit-content}
@@ -1 +1 @@
1
- import{useCallback as e,useRef as t,useEffect as r,useMemo as n}from"preact/compat";import o from"@babel/runtime/helpers/defineProperty";function i(e,t,r={}){const n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!u(e[0])||!u(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,r)}function s(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return i({type:"LineString",coordinates:e},t,r)}function l(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function c(e,t,r={}){return i({type:"MultiLineString",coordinates:e},t,r)}function u(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}const p=11102230246251565e-32,d=134217729,f=(3+8*p)*p;function y(e,t,r,n,o){let i,a,s,l,c=t[0],u=n[0],p=0,d=0;u>c==u>-c?(i=c,c=t[++p]):(i=u,u=n[++d]);let f=0;if(p<e&&d<r)for(u>c==u>-c?(a=c+i,s=i-(a-c),c=t[++p]):(a=u+i,s=i-(a-u),u=n[++d]),i=a,0!==s&&(o[f++]=s);p<e&&d<r;)u>c==u>-c?(a=i+c,l=a-i,s=i-(a-l)+(c-l),c=t[++p]):(a=i+u,l=a-i,s=i-(a-l)+(u-l),u=n[++d]),i=a,0!==s&&(o[f++]=s);for(;p<e;)a=i+c,l=a-i,s=i-(a-l)+(c-l),c=t[++p],i=a,0!==s&&(o[f++]=s);for(;d<r;)a=i+u,l=a-i,s=i-(a-l)+(u-l),u=n[++d],i=a,0!==s&&(o[f++]=s);return 0===i&&0!==f||(o[f++]=i),f}function g(e){return new Float64Array(e)}const h=g(4),v=g(8),S=g(12),b=g(16),E=g(4);function m(e,t,r,n,o,i){const a=(t-i)*(r-o),s=(e-o)*(n-i),l=a-s,c=Math.abs(a+s);return Math.abs(l)>=33306690738754716e-32*c?l:-function(e,t,r,n,o,i,a){let s,l,c,u,p,g,m,w,P,O,L,k,A,F,C,I,M,j;const D=e-o,T=r-o,x=t-i,B=n-i;F=D*B,g=d*D,m=g-(g-D),w=D-m,g=d*B,P=g-(g-B),O=B-P,C=w*O-(F-m*P-w*P-m*O),I=x*T,g=d*x,m=g-(g-x),w=x-m,g=d*T,P=g-(g-T),O=T-P,M=w*O-(I-m*P-w*P-m*O),L=C-M,p=C-L,h[0]=C-(L+p)+(p-M),k=F+L,p=k-F,A=F-(k-p)+(L-p),L=A-I,p=A-L,h[1]=A-(L+p)+(p-I),j=k+L,p=j-k,h[2]=k-(j-p)+(L-p),h[3]=j;let _=function(e,t){let r=t[0];for(let n=1;n<e;n++)r+=t[n];return r}(4,h),R=22204460492503146e-32*a;if(_>=R||-_>=R)return _;if(p=e-D,s=e-(D+p)+(p-o),p=r-T,c=r-(T+p)+(p-o),p=t-x,l=t-(x+p)+(p-i),p=n-B,u=n-(B+p)+(p-i),0===s&&0===l&&0===c&&0===u)return _;if(R=11093356479670487e-47*a+f*Math.abs(_),_+=D*u+B*s-(x*c+T*l),_>=R||-_>=R)return _;F=s*B,g=d*s,m=g-(g-s),w=s-m,g=d*B,P=g-(g-B),O=B-P,C=w*O-(F-m*P-w*P-m*O),I=l*T,g=d*l,m=g-(g-l),w=l-m,g=d*T,P=g-(g-T),O=T-P,M=w*O-(I-m*P-w*P-m*O),L=C-M,p=C-L,E[0]=C-(L+p)+(p-M),k=F+L,p=k-F,A=F-(k-p)+(L-p),L=A-I,p=A-L,E[1]=A-(L+p)+(p-I),j=k+L,p=j-k,E[2]=k-(j-p)+(L-p),E[3]=j;const U=y(4,h,4,E,v);F=D*u,g=d*D,m=g-(g-D),w=D-m,g=d*u,P=g-(g-u),O=u-P,C=w*O-(F-m*P-w*P-m*O),I=x*c,g=d*x,m=g-(g-x),w=x-m,g=d*c,P=g-(g-c),O=c-P,M=w*O-(I-m*P-w*P-m*O),L=C-M,p=C-L,E[0]=C-(L+p)+(p-M),k=F+L,p=k-F,A=F-(k-p)+(L-p),L=A-I,p=A-L,E[1]=A-(L+p)+(p-I),j=k+L,p=j-k,E[2]=k-(j-p)+(L-p),E[3]=j;const G=y(U,v,4,E,S);F=s*u,g=d*s,m=g-(g-s),w=s-m,g=d*u,P=g-(g-u),O=u-P,C=w*O-(F-m*P-w*P-m*O),I=l*c,g=d*l,m=g-(g-l),w=l-m,g=d*c,P=g-(g-c),O=c-P,M=w*O-(I-m*P-w*P-m*O),L=C-M,p=C-L,E[0]=C-(L+p)+(p-M),k=F+L,p=k-F,A=F-(k-p)+(L-p),L=A-I,p=A-L,E[1]=A-(L+p)+(p-I),j=k+L,p=j-k,E[2]=k-(j-p)+(L-p),E[3]=j;const N=y(G,S,4,E,b);return b[N-1]}(e,t,r,n,o,i,c)}function w(e,t){var r,n,o,i,a,s,l,c,u,p=0,d=e[0],f=e[1],y=t.length;for(r=0;r<y;r++){n=0;var g=t[r],h=g.length-1;if((c=g[0])[0]!==g[h][0]&&c[1]!==g[h][1])throw new Error("First and last coordinates in a ring must be the same");for(i=c[0]-d,a=c[1]-f;n<h;n++){if(s=(u=g[n+1])[0]-d,l=u[1]-f,0===a&&0===l){if(s<=0&&i>=0||i<=0&&s>=0)return 0}else if(l>=0&&a<=0||l<=0&&a>=0){if(0===(o=m(i,s,a,l,0,0)))return 0;(o>0&&l>0&&a<=0||o<0&&l<=0&&a>0)&&p++}c=u,a=l,i=s}}return p%2!=0}function P(e){return"Feature"===e.type?e.geometry:e}function O(e,t,r={}){if(!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=P(t),i=o.type,a=t.bbox;let s=o.coordinates;if(a&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(n,a))return!1;"Polygon"===i&&(s=[s]);let l=!1;for(var c=0;c<s.length;++c){const e=w(n,s[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}class L{constructor(e=[],t=k){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:r}=this,n=t[e];for(;e>0;){const o=e-1>>1,i=t[o];if(r(n,i)>=0)break;t[e]=i,e=o}t[e]=n}_down(e){const{data:t,compare:r}=this,n=this.length>>1,o=t[e];for(;e<n;){let n=1+(e<<1),i=t[n];const a=n+1;if(a<this.length&&r(t[a],i)<0&&(n=a,i=t[a]),r(i,o)>=0)break;t[e]=i,e=n}t[e]=o}}function k(e,t){return e<t?-1:e>t?1:0}function A(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function F(e,t){return e.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:e.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:e.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?e.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}class C{constructor(e,t,r,n){this.p={x:e[0],y:e[1]},this.featureId=t,this.ringId=r,this.eventId=n,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(e){return this.p.x===e.p.x&&this.p.y===e.p.y}}let I=0,M=0,j=0;function D(e,t){const r="Feature"===e.type?e.geometry:e;let n=r.coordinates;"Polygon"!==r.type&&"MultiLineString"!==r.type||(n=[n]),"LineString"===r.type&&(n=[[n]]);for(let e=0;e<n.length;e++)for(let r=0;r<n[e].length;r++){let o=n[e][r][0],i=null;M+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const s=new C(o,I,M,j),l=new C(i,I,M,j+1);s.otherEvent=l,l.otherEvent=s,A(s,l)>0?(l.isLeftEndpoint=!0,s.isLeftEndpoint=!1):(s.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(s),t.push(l),o=i,j+=1}}I+=1}class T{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function x(e,t){if(null===e||null===t)return!1;if(e.leftSweepEvent.ringId===t.leftSweepEvent.ringId&&(e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.rightSweepEvent)||e.leftSweepEvent.isSamePoint(t.leftSweepEvent)||e.leftSweepEvent.isSamePoint(t.rightSweepEvent)))return!1;const r=e.leftSweepEvent.p.x,n=e.leftSweepEvent.p.y,o=e.rightSweepEvent.p.x,i=e.rightSweepEvent.p.y,a=t.leftSweepEvent.p.x,s=t.leftSweepEvent.p.y,l=t.rightSweepEvent.p.x,c=t.rightSweepEvent.p.y,u=(c-s)*(o-r)-(l-a)*(i-n),p=(l-a)*(n-s)-(c-s)*(r-a),d=(o-r)*(n-s)-(i-n)*(r-a);if(0===u)return!1;const f=p/u,y=d/u;if(f>=0&&f<=1&&y>=0&&y<=1){return[r+f*(o-r),n+f*(i-n)]}return!1}var B=function(e,t){const r=new L([],A);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)D(r[e],t)}else D(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new L([],F);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new T(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const s=x(e,a);!1!==s&&r.push(s)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)};function _(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let s=[];"FeatureCollection"===e.type?s=s.concat(e.features):"Feature"===e.type?s.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||s.push(i(e)),"FeatureCollection"===t.type?s=s.concat(t.features):"Feature"===t.type?s.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||s.push(i(t));const c=B(l(s),o);let u=[];if(n){const e={};c.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,u.push(t))})}else u=c;return l(u.map(e=>a(e)))}function R(e,t){!function(e,t){var r,n,o,i,a,s,l,c,u,p,d=0,f="FeatureCollection"===e.type,y="Feature"===e.type,g=f?e.features.length:1;for(r=0;r<g;r++){for(s=f?e.features[r].geometry:y?e.geometry:e,c=f?e.features[r].properties:y?e.properties:{},u=f?e.features[r].bbox:y?e.bbox:void 0,p=f?e.features[r].id:y?e.id:void 0,a=(l=!!s&&"GeometryCollection"===s.type)?s.geometries.length:1,o=0;o<a;o++)if(null!==(i=l?s.geometries[o]:s))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,d,c,u,p))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],d,c,u,p))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,d,c,u,p))return!1;d++}}(e,function(e,r,n,o,a){var s,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(i(e,n,{bbox:o,id:a}),r,0)&&void 0}switch(l){case"MultiPoint":s="Point";break;case"MultiLineString":s="LineString";break;case"MultiPolygon":s="Polygon"}for(var c=0;c<e.coordinates.length;c++){var u=e.coordinates[c];if(!1===t(i({type:s,coordinates:u},n),r,c))return!1}})}function U(e,t={}){const r=P(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){const r=P(e),n=r.coordinates,o=t.properties?t.properties:"Feature"===e.type?e.properties:{};return G(n,o)}(r,t);case"MultiPolygon":return function(e,t={}){const r=P(e),n=r.coordinates,o=t.properties?t.properties:"Feature"===e.type?e.properties:{},i=[];return n.forEach(e=>{i.push(G(e,o))}),l(i)}(r,t);default:throw new Error("invalid poly")}}function G(e,t){return e.length>1?c(e,t):s(e[0],t)}function N(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(q(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function W(e,t,r){for(const r of t.coordinates)if(O(r,e))return!0;return _(t,U(e),{ignoreSelfIntersections:r}).features.length>0}function q(e,t,r){const n=r[0]-e[0],o=r[1]-e[1],i=t[0]-e[0],a=t[1]-e[1];return 0===n*a-o*i&&(Math.abs(i)>=Math.abs(a)?i>0?e[0]<=r[0]&&r[0]<=t[0]:t[0]<=r[0]&&r[0]<=e[0]:a>0?e[1]<=r[1]&&r[1]<=t[1]:t[1]<=r[1]&&r[1]<=e[1])}var H=function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return R(e,e=>{R(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!N(t,e);case"Polygon":return!O(e,t)}break;case"LineString":switch(t.type){case"Point":return!N(e,t);case"LineString":return!function(e,t,r){const n=_(e,t,{ignoreSelfIntersections:r});if(n.features.length>0)return!0;return!1}(e,t,r);case"Polygon":return!W(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!O(t,e);case"LineString":return!W(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(O(r,t))return!0;for(const r of t.coordinates[0])if(O(r,e))return!0;const n=_(U(e),U(t),{ignoreSelfIntersections:r});if(n.features.length>0)return!0;return!1}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n};function J(e){var t=e.geometry||e;switch(t.type){case"Polygon":return function(e,t,r={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return i({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return i({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return s(t.coordinates);case"MultiLineString":return c(t.coordinates);case"Point":return a(t.coordinates);case"MultiPoint":return function(e,t,r={}){return i({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function K(e,t){return t.some(t=>!H(J(t),J(e)))}function V(e){var t;if(1!==e.length)return!1;var r=null===(t=e[0].geometry)||void 0===t?void 0:t.type;return"Polygon"===r||"MultiPolygon"===r}function z(e){if(e.length<2)return!1;if(e.some(e=>{var t;return!(null!==(t=e.geometry)&&void 0!==t&&t.type)}))return!1;for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++)if(!t.has(n)){var o=[...t].map(t=>e[t]);K(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}var Q=n=>{var{mapState:o,pluginState:i,services:a,mapProvider:s}=n,{markers:l}=o,{dispatch:c,dataLayers:u,interactionMode:p,multiSelect:d,contiguous:f,markerColor:y,tolerance:g,selectedFeatures:h,selectionBounds:v,deselectOnClickOutside:S}=i,{eventBus:b}=a,E=(e=>{var t={};for(var r of e)t[r.layerId]=r;return t})(u),m=e(e=>{var{point:t,coords:r}=e,n=((e,t,r)=>{try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}})(s,t,{radius:g}),o=u.length>0;null!=i&&i.debug&&console.log("--- Features at ".concat(r," ---"),n);var a=o&&("select"===p||"auto"===p)?((e,t)=>{for(var r of e){var n,o=null===(n=r.layer)||void 0===n?void 0:n.id;if(t[o])return{feature:r,config:t[o]}}return null})(n,E):null;a?function(e){var t,r,{feature:n,config:o}=e;l.remove("location");var i=f&&K(n,h),a=null!==(t=null===(r=n.properties)||void 0===r?void 0:r[o.idProperty])&&void 0!==t?t:n.id;if(!a)return;c({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:a,multiSelect:d,layerId:o.layerId,idProperty:o.idProperty,properties:n.properties,geometry:n.geometry,replaceAll:f&&!i}})}(a):"marker"===p||"auto"===p&&o?(c({type:"CLEAR_SELECTED_FEATURES"}),l.add("location",r,{color:y}),b.emit("interact:markerchange",{coords:r})):S&&c({type:"CLEAR_SELECTED_FEATURES"})},[s,u,p,d,b,c,l,f,h,E,null==i?void 0:i.debug,g,y,S]);return((e,n,o)=>{var i=t(null);r(()=>{if(!(n.length>0)||o){var t=i.current;(null===t||0===t.length)&&0===n.length||(e.emit("interact:selectionchange",{selectedFeatures:n,selectionBounds:o,canMerge:z(n),canSplit:V(n)}),i.current=n)}},[n,o])})(b,h,v),{handleInteraction:m}},X={tolerance:10,interactionMode:"marker",multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,markerColor:"rgba(212,53,28,1)",selectedStroke:"rgba(212,53,28,1)",selectedFill:"rgba(255, 0, 0, 0.1)",selectedStrokeWidth:2},Y=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},Z=e=>{var{mapProvider:t,mapStyle:o,pluginState:i,selectedFeatures:a,dispatch:s,events:l,eventBus:c}=e,{dataLayers:u}=i,p=n(()=>o?((e,t)=>{var r={};return t?(e.forEach(e=>{var n=e.selectedStroke||X.selectedStroke,o=e.selectedFill||X.selectedFill,i=e.selectedStrokeWidth||X.selectedStrokeWidth;r[e.layerId]={stroke:Y(n,t.id),fill:Y(o,t.id),strokeWidth:i}}),r):r})(u,o):null,[u,o]),d=()=>{var e,r=null===(e=t.updateHighlightedFeatures)||void 0===e?void 0:e.call(t,a,p);s({type:"UPDATE_SELECTED_BOUNDS",payload:r})};r(()=>{if(t&&a&&p)return d(),c.on(l.MAP_DATA_CHANGE,d),()=>{c.off(l.MAP_DATA_CHANGE,d)}},[a,t,p])};function $(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ee(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?$(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function te(e){var{getAppState:t,mapState:r,getPluginState:n,buttonConfig:o,events:i,eventBus:a,handleInteraction:s,clickReadyRef:l,closeApp:c}=e,{selectDone:u,selectAtTarget:p,selectCancel:d}=o,{viewportRef:f}=t().layoutRefs,y=!1,g=e=>{y="Enter"===e.key&&f.current===e.target},h=e=>{"Enter"===e.key&&y&&(e.preventDefault(),S())},v=e=>{l.current&&s(e)},S=()=>s(r.crossHair.getDetail()),b=((e,t)=>(r,n)=>{var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:ee({multiSelect:o.multiSelect,addToExisting:n},r)})})(r,n),E=e=>b(e,!0),m=e=>b(e,!1);return document.addEventListener("keydown",g),document.addEventListener("keyup",h),a.on(i.MAP_CLICK,v),a.on("interact:selectFeature",E),a.on("interact:unselectFeature",m),p.onClick=S,u.onClick=()=>{var e,o=n(),i=r.markers.getMarker("location"),{coords:s}=i||{},{selectionBounds:l,selectedFeatures:u}=o;t().disabledButtons.has("selectDone")||(a.emit("interact:done",ee(ee(ee({},s&&{coords:s}),!s&&u&&{selectedFeatures:u}),!s&&l&&{selectionBounds:l})),(null===(e=o.closeOnAction)||void 0===e||e)&&c())},d.onClick=()=>{var e;a.emit("interact:cancel"),(null===(e=n().closeOnAction)||void 0===e||e)&&c()},()=>{u.onClick=null,p.onClick=null,d.onClick=null,document.removeEventListener("keydown",g),document.removeEventListener("keyup",h),a.off(i.MAP_CLICK,v),a.off("interact:selectFeature",E),a.off("interact:unselectFeature",m)}}function re(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ne(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?re(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):re(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var oe={ENABLE:(e,t)=>ne(ne(ne({},e),t),{},{enabled:!0}),DISABLE:e=>ne(ne({},e),{},{enabled:!1,selectedFeatures:[],selectionBounds:null}),TOGGLE_SELECTED_FEATURES:(e,t)=>{var{featureId:r,multiSelect:n,layerId:o,idProperty:i,addToExisting:a=!0,replaceAll:s=!1,properties:l,geometry:c}=t,u=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],p=u.findIndex(e=>e.featureId===r&&e.layerId===o);if(!1===a){var d=u.filter((e,t)=>t!==p);return ne(ne({},e),{},{selectedFeatures:d,selectionBounds:null})}var f,y={featureId:r,layerId:o,idProperty:i,properties:l,geometry:c};if(n&&!s){var g=[...u];-1===p?g.push(y):g.splice(p,1),f=g}else{f=-1!==p&&1===u.length?[]:[y]}return ne(ne({},e),{},{selectedFeatures:f,selectionBounds:null})},UPDATE_SELECTED_BOUNDS:(e,t)=>JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:ne(ne({},e),{},{selectionBounds:t}),CLEAR_SELECTED_FEATURES:e=>ne(ne({},e),{},{selectedFeatures:[],selectionBounds:null})};function ie(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ae(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ie(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ie(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var se={InitComponent:e=>{var{appState:n,mapState:o,services:i,buttonConfig:a,mapProvider:s,pluginState:l}=e,{interfaceType:c}=n,{dispatch:u,enabled:p,selectedFeatures:d,selectionBounds:f}=l,{events:y,eventBus:g,closeApp:h}=i,{crossHair:v,mapStyle:S}=o,b=["touch","keyboard"].includes(c),{handleInteraction:E}=Q({mapState:o,pluginState:l,services:i,mapProvider:s}),m=t(E);m.current=E;var w=t(l);w.current=l;var P=t(n);P.current=n;var O=t(!1);return r(()=>{O.current=!1;var e=setTimeout(()=>{O.current=!0},0);return()=>clearTimeout(e)},[l.enabled]),Z({mapProvider:s,mapStyle:S,pluginState:l,selectedFeatures:d,dispatch:u,events:y,eventBus:g}),r(()=>{p&&b?v.fixAtCenter():v.hide()},[p,c]),r(()=>{if(l.enabled)return te({getAppState:()=>P.current,mapState:o,getPluginState:()=>w.current,buttonConfig:a,events:y,eventBus:g,handleInteraction:e=>m.current(e),clickReadyRef:O,closeApp:h})},[l.enabled,a,y,g,h]),null},reducer:{initialState:{enabled:!1,dataLayers:[],markerColor:null,interactionMode:null,multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectionBounds:null,closeOnAction:!0},actions:oe},buttons:[{id:"selectAtTarget",label:"Select",iconId:"select",variant:"touch",hiddenWhen:e=>{var{appState:t,pluginState:r}=e;return!r.enabled||"touch"!==t.interfaceType},mobile:{slot:"actions",showLabel:!1},tablet:{slot:"actions",showLabel:!1},desktop:{slot:"actions",showLabel:!1}},{id:"selectCancel",label:"Back",variant:"tertiary",hiddenWhen:e=>{var{appConfig:t,appState:r,pluginState:n}=e;return!n.enabled||!(["hybrid","buttonFirst"].includes(t.behaviour)&&r.isFullscreen)},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},{id:"selectDone",label:"Continue",variant:"primary",excludeWhen:e=>{var{appState:t,pluginState:r}=e;return!r.enabled||!t.isFullscreen},enableWhen:e=>{var{mapState:t,pluginState:r}=e;return!!t.markers.items.some(e=>"location"===e.id)||!!r.selectionBounds},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}}],keyboardShortcuts:[{id:"selectOrMark",group:"Select",title:"Select feature",command:"<kbd>Enter</kbd></dd>"}],icons:[{id:"select",svgContent:'<path d="M22 14a8 8 0 0 1-8 8"/><path d="M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2"/><path d="M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1"/><path d="M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10"/><path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"/>'}],api:{enable:(e,t)=>{var{pluginState:r,pluginConfig:n}=e;r.dispatch({type:"ENABLE",payload:ae(ae(ae({},X),n),t)})},disable:e=>{var{pluginState:t}=e;t.dispatch({type:"DISABLE"})},clear:e=>{var{pluginState:t,mapState:r}=e;t.dispatch({type:"CLEAR_SELECTED_FEATURES"}),r.markers.remove("location")},selectFeature:(e,t)=>{var{services:r}=e,{featureId:n,layerId:o,idProperty:i}=t;r.eventBus.emit("interact:selectFeature",{featureId:n,layerId:o,idProperty:i})},unselectFeature:(e,t)=>{var{services:r}=e,{featureId:n,layerId:o,idProperty:i}=t;r.eventBus.emit("interact:unselectFeature",{featureId:n,layerId:o,idProperty:i})}}};export{se as manifest};
1
+ import{useCallback as e,useRef as t,useEffect as r,useMemo as n}from"preact/compat";import o from"@babel/runtime/helpers/defineProperty";function i(e,t,r={}){const n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function a(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!u(e[0])||!u(e[1]))throw new Error("coordinates must contain numbers");return i({type:"Point",coordinates:e},t,r)}function s(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return i({type:"LineString",coordinates:e},t,r)}function l(e,t={}){const r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function c(e,t,r={}){return i({type:"MultiLineString",coordinates:e},t,r)}function u(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}const p=11102230246251565e-32,d=134217729,f=(3+8*p)*p;function y(e,t,r,n,o){let i,a,s,l,c=t[0],u=n[0],p=0,d=0;u>c==u>-c?(i=c,c=t[++p]):(i=u,u=n[++d]);let f=0;if(p<e&&d<r)for(u>c==u>-c?(a=c+i,s=i-(a-c),c=t[++p]):(a=u+i,s=i-(a-u),u=n[++d]),i=a,0!==s&&(o[f++]=s);p<e&&d<r;)u>c==u>-c?(a=i+c,l=a-i,s=i-(a-l)+(c-l),c=t[++p]):(a=i+u,l=a-i,s=i-(a-l)+(u-l),u=n[++d]),i=a,0!==s&&(o[f++]=s);for(;p<e;)a=i+c,l=a-i,s=i-(a-l)+(c-l),c=t[++p],i=a,0!==s&&(o[f++]=s);for(;d<r;)a=i+u,l=a-i,s=i-(a-l)+(u-l),u=n[++d],i=a,0!==s&&(o[f++]=s);return 0===i&&0!==f||(o[f++]=i),f}function g(e){return new Float64Array(e)}const h=g(4),v=g(8),S=g(12),E=g(16),b=g(4);function m(e,t,r,n,o,i){const a=(t-i)*(r-o),s=(e-o)*(n-i),l=a-s,c=Math.abs(a+s);return Math.abs(l)>=33306690738754716e-32*c?l:-function(e,t,r,n,o,i,a){let s,l,c,u,p,g,m,w,P,O,L,k,A,F,C,I,M,j;const D=e-o,T=r-o,x=t-i,B=n-i;F=D*B,g=d*D,m=g-(g-D),w=D-m,g=d*B,P=g-(g-B),O=B-P,C=w*O-(F-m*P-w*P-m*O),I=x*T,g=d*x,m=g-(g-x),w=x-m,g=d*T,P=g-(g-T),O=T-P,M=w*O-(I-m*P-w*P-m*O),L=C-M,p=C-L,h[0]=C-(L+p)+(p-M),k=F+L,p=k-F,A=F-(k-p)+(L-p),L=A-I,p=A-L,h[1]=A-(L+p)+(p-I),j=k+L,p=j-k,h[2]=k-(j-p)+(L-p),h[3]=j;let _=function(e,t){let r=t[0];for(let n=1;n<e;n++)r+=t[n];return r}(4,h),R=22204460492503146e-32*a;if(_>=R||-_>=R)return _;if(p=e-D,s=e-(D+p)+(p-o),p=r-T,c=r-(T+p)+(p-o),p=t-x,l=t-(x+p)+(p-i),p=n-B,u=n-(B+p)+(p-i),0===s&&0===l&&0===c&&0===u)return _;if(R=11093356479670487e-47*a+f*Math.abs(_),_+=D*u+B*s-(x*c+T*l),_>=R||-_>=R)return _;F=s*B,g=d*s,m=g-(g-s),w=s-m,g=d*B,P=g-(g-B),O=B-P,C=w*O-(F-m*P-w*P-m*O),I=l*T,g=d*l,m=g-(g-l),w=l-m,g=d*T,P=g-(g-T),O=T-P,M=w*O-(I-m*P-w*P-m*O),L=C-M,p=C-L,b[0]=C-(L+p)+(p-M),k=F+L,p=k-F,A=F-(k-p)+(L-p),L=A-I,p=A-L,b[1]=A-(L+p)+(p-I),j=k+L,p=j-k,b[2]=k-(j-p)+(L-p),b[3]=j;const U=y(4,h,4,b,v);F=D*u,g=d*D,m=g-(g-D),w=D-m,g=d*u,P=g-(g-u),O=u-P,C=w*O-(F-m*P-w*P-m*O),I=x*c,g=d*x,m=g-(g-x),w=x-m,g=d*c,P=g-(g-c),O=c-P,M=w*O-(I-m*P-w*P-m*O),L=C-M,p=C-L,b[0]=C-(L+p)+(p-M),k=F+L,p=k-F,A=F-(k-p)+(L-p),L=A-I,p=A-L,b[1]=A-(L+p)+(p-I),j=k+L,p=j-k,b[2]=k-(j-p)+(L-p),b[3]=j;const G=y(U,v,4,b,S);F=s*u,g=d*s,m=g-(g-s),w=s-m,g=d*u,P=g-(g-u),O=u-P,C=w*O-(F-m*P-w*P-m*O),I=l*c,g=d*l,m=g-(g-l),w=l-m,g=d*c,P=g-(g-c),O=c-P,M=w*O-(I-m*P-w*P-m*O),L=C-M,p=C-L,b[0]=C-(L+p)+(p-M),k=F+L,p=k-F,A=F-(k-p)+(L-p),L=A-I,p=A-L,b[1]=A-(L+p)+(p-I),j=k+L,p=j-k,b[2]=k-(j-p)+(L-p),b[3]=j;const N=y(G,S,4,b,E);return E[N-1]}(e,t,r,n,o,i,c)}function w(e,t){var r,n,o,i,a,s,l,c,u,p=0,d=e[0],f=e[1],y=t.length;for(r=0;r<y;r++){n=0;var g=t[r],h=g.length-1;if((c=g[0])[0]!==g[h][0]&&c[1]!==g[h][1])throw new Error("First and last coordinates in a ring must be the same");for(i=c[0]-d,a=c[1]-f;n<h;n++){if(s=(u=g[n+1])[0]-d,l=u[1]-f,0===a&&0===l){if(s<=0&&i>=0||i<=0&&s>=0)return 0}else if(l>=0&&a<=0||l<=0&&a>=0){if(0===(o=m(i,s,a,l,0,0)))return 0;(o>0&&l>0&&a<=0||o<0&&l<=0&&a>0)&&p++}c=u,a=l,i=s}}return p%2!=0}function P(e){return"Feature"===e.type?e.geometry:e}function O(e,t,r={}){if(!e)throw new Error("point is required");if(!t)throw new Error("polygon is required");const n=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}(e),o=P(t),i=o.type,a=t.bbox;let s=o.coordinates;if(a&&!1===function(e,t){return t[0]<=e[0]&&t[1]<=e[1]&&t[2]>=e[0]&&t[3]>=e[1]}(n,a))return!1;"Polygon"===i&&(s=[s]);let l=!1;for(var c=0;c<s.length;++c){const e=w(n,s[c]);if(0===e)return!r.ignoreBoundary;e&&(l=!0)}return l}class L{constructor(e=[],t=k){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:r}=this,n=t[e];for(;e>0;){const o=e-1>>1,i=t[o];if(r(n,i)>=0)break;t[e]=i,e=o}t[e]=n}_down(e){const{data:t,compare:r}=this,n=this.length>>1,o=t[e];for(;e<n;){let n=1+(e<<1),i=t[n];const a=n+1;if(a<this.length&&r(t[a],i)<0&&(n=a,i=t[a]),r(i,o)>=0)break;t[e]=i,e=n}t[e]=o}}function k(e,t){return e<t?-1:e>t?1:0}function A(e,t){return e.p.x>t.p.x?1:e.p.x<t.p.x?-1:e.p.y!==t.p.y?e.p.y>t.p.y?1:-1:1}function F(e,t){return e.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:e.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:e.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?e.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}class C{constructor(e,t,r,n){this.p={x:e[0],y:e[1]},this.featureId=t,this.ringId=r,this.eventId=n,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(e){return this.p.x===e.p.x&&this.p.y===e.p.y}}let I=0,M=0,j=0;function D(e,t){const r="Feature"===e.type?e.geometry:e;let n=r.coordinates;"Polygon"!==r.type&&"MultiLineString"!==r.type||(n=[n]),"LineString"===r.type&&(n=[[n]]);for(let e=0;e<n.length;e++)for(let r=0;r<n[e].length;r++){let o=n[e][r][0],i=null;M+=1;for(let a=0;a<n[e][r].length-1;a++){i=n[e][r][a+1];const s=new C(o,I,M,j),l=new C(i,I,M,j+1);s.otherEvent=l,l.otherEvent=s,A(s,l)>0?(l.isLeftEndpoint=!0,s.isLeftEndpoint=!1):(s.isLeftEndpoint=!0,l.isLeftEndpoint=!1),t.push(s),t.push(l),o=i,j+=1}}I+=1}class T{constructor(e){this.leftSweepEvent=e,this.rightSweepEvent=e.otherEvent}}function x(e,t){if(null===e||null===t)return!1;if(e.leftSweepEvent.ringId===t.leftSweepEvent.ringId&&(e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.rightSweepEvent)||e.leftSweepEvent.isSamePoint(t.leftSweepEvent)||e.leftSweepEvent.isSamePoint(t.rightSweepEvent)))return!1;const r=e.leftSweepEvent.p.x,n=e.leftSweepEvent.p.y,o=e.rightSweepEvent.p.x,i=e.rightSweepEvent.p.y,a=t.leftSweepEvent.p.x,s=t.leftSweepEvent.p.y,l=t.rightSweepEvent.p.x,c=t.rightSweepEvent.p.y,u=(c-s)*(o-r)-(l-a)*(i-n),p=(l-a)*(n-s)-(c-s)*(r-a),d=(o-r)*(n-s)-(i-n)*(r-a);if(0===u)return!1;const f=p/u,y=d/u;if(f>=0&&f<=1&&y>=0&&y<=1){return[r+f*(o-r),n+f*(i-n)]}return!1}var B=function(e,t){const r=new L([],A);return function(e,t){if("FeatureCollection"===e.type){const r=e.features;for(let e=0;e<r.length;e++)D(r[e],t)}else D(e,t)}(e,r),function(e,t){t=t||!1;const r=[],n=new L([],F);for(;e.length;){const o=e.pop();if(o.isLeftEndpoint){const e=new T(o);for(let i=0;i<n.data.length;i++){const a=n.data[i];if(t&&a.leftSweepEvent.featureId===o.featureId)continue;const s=x(e,a);!1!==s&&r.push(s)}n.push(e)}else!1===o.isLeftEndpoint&&n.pop()}return r}(r,t)};function _(e,t,r={}){const{removeDuplicates:n=!0,ignoreSelfIntersections:o=!0}=r;let s=[];"FeatureCollection"===e.type?s=s.concat(e.features):"Feature"===e.type?s.push(e):"LineString"!==e.type&&"Polygon"!==e.type&&"MultiLineString"!==e.type&&"MultiPolygon"!==e.type||s.push(i(e)),"FeatureCollection"===t.type?s=s.concat(t.features):"Feature"===t.type?s.push(t):"LineString"!==t.type&&"Polygon"!==t.type&&"MultiLineString"!==t.type&&"MultiPolygon"!==t.type||s.push(i(t));const c=B(l(s),o);let u=[];if(n){const e={};c.forEach(t=>{const r=t.join(",");e[r]||(e[r]=!0,u.push(t))})}else u=c;return l(u.map(e=>a(e)))}function R(e,t){!function(e,t){var r,n,o,i,a,s,l,c,u,p,d=0,f="FeatureCollection"===e.type,y="Feature"===e.type,g=f?e.features.length:1;for(r=0;r<g;r++){for(s=f?e.features[r].geometry:y?e.geometry:e,c=f?e.features[r].properties:y?e.properties:{},u=f?e.features[r].bbox:y?e.bbox:void 0,p=f?e.features[r].id:y?e.id:void 0,a=(l=!!s&&"GeometryCollection"===s.type)?s.geometries.length:1,o=0;o<a;o++)if(null!==(i=l?s.geometries[o]:s))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,d,c,u,p))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],d,c,u,p))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,d,c,u,p))return!1;d++}}(e,function(e,r,n,o,a){var s,l=null===e?null:e.type;switch(l){case null:case"Point":case"LineString":case"Polygon":return!1!==t(i(e,n,{bbox:o,id:a}),r,0)&&void 0}switch(l){case"MultiPoint":s="Point";break;case"MultiLineString":s="LineString";break;case"MultiPolygon":s="Polygon"}for(var c=0;c<e.coordinates.length;c++){var u=e.coordinates[c];if(!1===t(i({type:s,coordinates:u},n),r,c))return!1}})}function U(e,t={}){const r=P(e);switch(t.properties||"Feature"!==e.type||(t.properties=e.properties),r.type){case"Polygon":return function(e,t={}){const r=P(e),n=r.coordinates,o=t.properties?t.properties:"Feature"===e.type?e.properties:{};return G(n,o)}(r,t);case"MultiPolygon":return function(e,t={}){const r=P(e),n=r.coordinates,o=t.properties?t.properties:"Feature"===e.type?e.properties:{},i=[];return n.forEach(e=>{i.push(G(e,o))}),l(i)}(r,t);default:throw new Error("invalid poly")}}function G(e,t){return e.length>1?c(e,t):s(e[0],t)}function N(e,t){for(let r=0;r<e.coordinates.length-1;r++)if(q(e.coordinates[r],e.coordinates[r+1],t.coordinates))return!0;return!1}function W(e,t,r){for(const r of t.coordinates)if(O(r,e))return!0;return _(t,U(e),{ignoreSelfIntersections:r}).features.length>0}function q(e,t,r){const n=r[0]-e[0],o=r[1]-e[1],i=t[0]-e[0],a=t[1]-e[1];return 0===n*a-o*i&&(Math.abs(i)>=Math.abs(a)?i>0?e[0]<=r[0]&&r[0]<=t[0]:t[0]<=r[0]&&r[0]<=e[0]:a>0?e[1]<=r[1]&&r[1]<=t[1]:t[1]<=r[1]&&r[1]<=e[1])}var H=function(e,t,{ignoreSelfIntersections:r=!0}={ignoreSelfIntersections:!0}){let n=!0;return R(e,e=>{R(t,t=>{if(!1===n)return!1;n=function(e,t,r){switch(e.type){case"Point":switch(t.type){case"Point":return n=e.coordinates,o=t.coordinates,!(n[0]===o[0]&&n[1]===o[1]);case"LineString":return!N(t,e);case"Polygon":return!O(e,t)}break;case"LineString":switch(t.type){case"Point":return!N(e,t);case"LineString":return!function(e,t,r){const n=_(e,t,{ignoreSelfIntersections:r});if(n.features.length>0)return!0;return!1}(e,t,r);case"Polygon":return!W(t,e,r)}break;case"Polygon":switch(t.type){case"Point":return!O(t,e);case"LineString":return!W(e,t,r);case"Polygon":return!function(e,t,r){for(const r of e.coordinates[0])if(O(r,t))return!0;for(const r of t.coordinates[0])if(O(r,e))return!0;const n=_(U(e),U(t),{ignoreSelfIntersections:r});if(n.features.length>0)return!0;return!1}(t,e,r)}}var n,o;return!1}(e.geometry,t.geometry,r)})}),n};function J(e){var t=e.geometry||e;switch(t.type){case"Polygon":return function(e,t,r={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return i({type:"Polygon",coordinates:e},t,r)}(t.coordinates);case"MultiPolygon":return function(e,t,r={}){return i({type:"MultiPolygon",coordinates:e},t,r)}(t.coordinates);case"LineString":return s(t.coordinates);case"MultiLineString":return c(t.coordinates);case"Point":return a(t.coordinates);case"MultiPoint":return function(e,t,r={}){return i({type:"MultiPoint",coordinates:e},t,r)}(t.coordinates);default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function K(e,t){return t.some(t=>!H(J(t),J(e)))}function V(e){var t;if(1!==e.length)return!1;var r=null===(t=e[0].geometry)||void 0===t?void 0:t.type;return"Polygon"===r||"MultiPolygon"===r}function z(e){if(e.length<2)return!1;if(e.some(e=>{var t;return!(null!==(t=e.geometry)&&void 0!==t&&t.type)}))return!1;for(var t=new Set([0]),r=!0;r;){r=!1;for(var n=1;n<e.length;n++)if(!t.has(n)){var o=[...t].map(t=>e[t]);K(e[n],o)&&(t.add(n),r=!0)}}return t.size===e.length}var Q=n=>{var{mapState:o,pluginState:i,services:a,mapProvider:s}=n,{markers:l}=o,{dispatch:c,dataLayers:u,interactionMode:p,multiSelect:d,contiguous:f,markerColor:y,tolerance:g,selectedFeatures:h,selectionBounds:v,deselectOnClickOutside:S}=i,{eventBus:E}=a,b=(e=>{var t={};for(var r of e)t[r.layerId]=r;return t})(u),m=e(e=>{var{point:t,coords:r}=e,n=((e,t,r)=>{try{return(null==e?void 0:e.getFeaturesAtPoint(t,r))||[]}catch(e){return console.warn("Feature query failed:",e),[]}})(s,t,{radius:g}),o=u.length>0;null!=i&&i.debug&&console.log("--- Features at ".concat(r," ---"),n);var a=o&&("select"===p||"auto"===p)?((e,t)=>{for(var r of e){var n,o=null===(n=r.layer)||void 0===n?void 0:n.id;if(t[o])return{feature:r,config:t[o]}}return null})(n,b):null;a?function(e){var t,r,{feature:n,config:o}=e;l.remove("location");var i=f&&K(n,h),a=null!==(t=null===(r=n.properties)||void 0===r?void 0:r[o.idProperty])&&void 0!==t?t:n.id;if(!a)return;c({type:"TOGGLE_SELECTED_FEATURES",payload:{featureId:a,multiSelect:d,layerId:o.layerId,idProperty:o.idProperty,properties:n.properties,geometry:n.geometry,replaceAll:f&&!i}})}(a):"marker"===p||"auto"===p&&o?(c({type:"CLEAR_SELECTED_FEATURES"}),l.add("location",r,{color:y}),E.emit("interact:markerchange",{coords:r})):S&&c({type:"CLEAR_SELECTED_FEATURES"})},[s,u,p,d,E,c,l,f,h,b,null==i?void 0:i.debug,g,y,S]);return((e,n,o)=>{var i=t(null);r(()=>{if(!(n.length>0)||o){var t=i.current;(null===t||0===t.length)&&0===n.length||(e.emit("interact:selectionchange",{selectedFeatures:n,selectionBounds:o,canMerge:z(n),canSplit:V(n)}),i.current=n)}},[n,o])})(E,h,v),{handleInteraction:m}},X={tolerance:10,interactionMode:"marker",multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,markerColor:"rgba(212,53,28,1)",selectedStroke:"rgba(212,53,28,1)",selectedFill:"rgba(255, 0, 0, 0.1)",selectedStrokeWidth:2},Y=(e,t)=>{if(!e)return null;if("string"==typeof e)return e.trim();if("object"==typeof e){if(t&&e[t])return e[t];var r=Object.values(e)[0];return null!=r?r:null}return null},Z=e=>{var{mapProvider:t,mapStyle:o,pluginState:i,selectedFeatures:a,dispatch:s,events:l,eventBus:c}=e,{dataLayers:u}=i,p=n(()=>o?((e,t)=>{var r={};return t?(e.forEach(e=>{var n=e.selectedStroke||X.selectedStroke,o=e.selectedFill||X.selectedFill,i=e.selectedStrokeWidth||X.selectedStrokeWidth;r[e.layerId]={stroke:Y(n,t.id),fill:Y(o,t.id),strokeWidth:i}}),r):r})(u,o):null,[u,o]),d=()=>{var e,r=null===(e=t.updateHighlightedFeatures)||void 0===e?void 0:e.call(t,a,p);s({type:"UPDATE_SELECTED_BOUNDS",payload:r})};r(()=>{if(t&&a&&p)return d(),c.on(l.MAP_DATA_CHANGE,d),()=>{c.off(l.MAP_DATA_CHANGE,d)}},[a,t,p])};function $(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ee(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?$(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function te(e){var{getAppState:t,mapState:r,getPluginState:n,buttonConfig:o,events:i,eventBus:a,handleInteraction:s,clickReadyRef:l,closeApp:c}=e,{selectDone:u,selectAtTarget:p,selectCancel:d}=o,{viewportRef:f}=t().layoutRefs,y=!1,g=e=>{y="Enter"===e.key&&f.current===e.target},h=e=>{"Enter"===e.key&&y&&(e.preventDefault(),S())},v=e=>{l.current&&s(e)},S=()=>s(r.crossHair.getDetail()),E=((e,t)=>(r,n)=>{var o=t();e.markers.remove("location"),o.dispatch({type:"TOGGLE_SELECTED_FEATURES",payload:ee({multiSelect:o.multiSelect,addToExisting:n},r)})})(r,n),b=e=>E(e,!0),m=e=>E(e,!1);return document.addEventListener("keydown",g),document.addEventListener("keyup",h),a.on(i.MAP_CLICK,v),a.on("interact:selectFeature",b),a.on("interact:unselectFeature",m),p.onClick=S,u.onClick=()=>{var e,o=n(),i=r.markers.getMarker("location"),{coords:s}=i||{},{selectionBounds:l,selectedFeatures:u}=o;t().disabledButtons.has("selectDone")||(a.emit("interact:done",ee(ee(ee({},s&&{coords:s}),!s&&u&&{selectedFeatures:u}),!s&&l&&{selectionBounds:l})),(null===(e=o.closeOnAction)||void 0===e||e)&&c())},d.onClick=()=>{var e;a.emit("interact:cancel"),(null===(e=n().closeOnAction)||void 0===e||e)&&c()},()=>{u.onClick=null,p.onClick=null,d.onClick=null,document.removeEventListener("keydown",g),document.removeEventListener("keyup",h),a.off(i.MAP_CLICK,v),a.off("interact:selectFeature",b),a.off("interact:unselectFeature",m)}}function re(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ne(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?re(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):re(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var oe={ENABLE:(e,t)=>ne(ne(ne({},e),t),{},{enabled:!0}),DISABLE:e=>ne(ne({},e),{},{enabled:!1,selectedFeatures:[],selectionBounds:null}),TOGGLE_SELECTED_FEATURES:(e,t)=>{var{featureId:r,multiSelect:n,layerId:o,idProperty:i,addToExisting:a=!0,replaceAll:s=!1,properties:l,geometry:c}=t,u=Array.isArray(e.selectedFeatures)?e.selectedFeatures:[],p=u.findIndex(e=>e.featureId===r&&e.layerId===o);if(!1===a){var d=u.filter((e,t)=>t!==p);return ne(ne({},e),{},{selectedFeatures:d,selectionBounds:null})}var f,y={featureId:r,layerId:o,idProperty:i,properties:l,geometry:c};if(n&&!s){var g=[...u];-1===p?g.push(y):g.splice(p,1),f=g}else{f=-1!==p&&1===u.length?[]:[y]}return ne(ne({},e),{},{selectedFeatures:f,selectionBounds:null})},UPDATE_SELECTED_BOUNDS:(e,t)=>JSON.stringify(t)===JSON.stringify(e.selectionBounds)?e:ne(ne({},e),{},{selectionBounds:t}),CLEAR_SELECTED_FEATURES:e=>ne(ne({},e),{},{selectedFeatures:[],selectionBounds:null})};function ie(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ae(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ie(Object(r),!0).forEach(function(t){o(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ie(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var se={InitComponent:e=>{var{appState:n,mapState:o,services:i,buttonConfig:a,mapProvider:s,pluginState:l}=e,{interfaceType:c}=n,{dispatch:u,enabled:p,selectedFeatures:d,selectionBounds:f}=l,{events:y,eventBus:g,closeApp:h}=i,{crossHair:v,mapStyle:S}=o,E=["touch","keyboard"].includes(c),{handleInteraction:b}=Q({mapState:o,pluginState:l,services:i,mapProvider:s}),m=t(b);m.current=b;var w=t(l);w.current=l;var P=t(n);P.current=n;var O=t(!1);return r(()=>{O.current=!1;var e=setTimeout(()=>{O.current=!0},0);return()=>clearTimeout(e)},[l.enabled]),Z({mapProvider:s,mapStyle:S,pluginState:l,selectedFeatures:d,dispatch:u,events:y,eventBus:g}),r(()=>{p&&E?v.fixAtCenter():v.hide()},[p,c]),r(()=>{if(l.enabled)return te({getAppState:()=>P.current,mapState:o,getPluginState:()=>w.current,buttonConfig:a,events:y,eventBus:g,handleInteraction:e=>m.current(e),clickReadyRef:O,closeApp:h})},[l.enabled,a,y,g,h]),null},reducer:{initialState:{enabled:!1,dataLayers:[],markerColor:null,interactionMode:null,multiSelect:!1,contiguous:!1,deselectOnClickOutside:!1,selectedFeatures:[],selectionBounds:null,closeOnAction:!0},actions:oe},buttons:[{id:"selectCancel",label:"Back",variant:"tertiary",hiddenWhen:e=>{var{appConfig:t,appState:r,pluginState:n}=e;return!n.enabled||!(["hybrid","buttonFirst"].includes(t.behaviour)&&r.isFullscreen)},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},{id:"selectAtTarget",label:"Select",variant:"primary",hiddenWhen:e=>{var{appState:t,pluginState:r}=e;return!r.enabled||"touch"!==t.interfaceType},mobile:{slot:"actions"},tablet:{slot:"actions"},desktop:{slot:"actions"}},{id:"selectDone",label:"Continue",variant:"primary",excludeWhen:e=>{var{appState:t,pluginState:r}=e;return!r.enabled||!t.isFullscreen},enableWhen:e=>{var{mapState:t,pluginState:r}=e;return!!t.markers.items.some(e=>"location"===e.id)||!!r.selectionBounds},mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}}],keyboardShortcuts:[{id:"selectOrMark",group:"Select",title:"Select feature",command:"<kbd>Enter</kbd></dd>"}],icons:[{id:"select",svgContent:'<path d="M22 14a8 8 0 0 1-8 8"/><path d="M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2"/><path d="M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1"/><path d="M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10"/><path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"/>'}],api:{enable:(e,t)=>{var{pluginState:r,pluginConfig:n}=e;r.dispatch({type:"ENABLE",payload:ae(ae(ae({},X),n),t)})},disable:e=>{var{pluginState:t}=e;t.dispatch({type:"DISABLE"})},clear:e=>{var{pluginState:t,mapState:r}=e;t.dispatch({type:"CLEAR_SELECTED_FEATURES"}),r.markers.remove("location")},selectFeature:(e,t)=>{var{services:r}=e,{featureId:n,layerId:o,idProperty:i}=t;r.eventBus.emit("interact:selectFeature",{featureId:n,layerId:o,idProperty:i})},unselectFeature:(e,t)=>{var{services:r}=e,{featureId:n,layerId:o,idProperty:i}=t;r.eventBus.emit("interact:unselectFeature",{featureId:n,layerId:o,idProperty:i})}}};export{se as manifest};