@defra/interactive-map 0.0.6-alpha → 0.0.7-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 (61) hide show
  1. package/dist/css/index.css +1 -1
  2. package/dist/esm/im-core.js +1 -1
  3. package/dist/umd/im-core.js +1 -1
  4. package/docs/api.md +10 -5
  5. package/package.json +56 -4
  6. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +2 -0
  7. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js.LICENSE.txt +1 -0
  8. package/plugins/beta/draw-es/dist/esm/index.js +2 -0
  9. package/plugins/beta/draw-es/dist/esm/index.js.LICENSE.txt +1 -0
  10. package/plugins/beta/draw-ml/dist/css/index.css +1 -1
  11. package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
  12. package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
  13. package/plugins/beta/draw-ml/src/DrawInit.jsx +15 -0
  14. package/plugins/beta/draw-ml/src/api/deleteFeature.js +4 -4
  15. package/plugins/beta/draw-ml/src/api/editFeature.js +10 -5
  16. package/plugins/beta/draw-ml/src/draw.scss +1 -0
  17. package/plugins/beta/draw-ml/src/events.js +2 -0
  18. package/plugins/beta/draw-ml/src/manifest.js +18 -43
  19. package/plugins/beta/draw-ml/src/modes/createDrawMode.js +35 -1
  20. package/plugins/beta/draw-ml/src/modes/editVertexMode.js +17 -1
  21. package/plugins/interact/dist/css/index.css +1 -1
  22. package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
  23. package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
  24. package/plugins/interact/src/defaults.js +1 -0
  25. package/plugins/interact/src/events.js +6 -1
  26. package/plugins/interact/src/events.test.js +19 -5
  27. package/plugins/interact/src/hooks/useInteractionHandlers.js +7 -2
  28. package/plugins/interact/src/hooks/useInteractionHandlers.test.js +28 -0
  29. package/plugins/interact/src/interact.scss +1 -0
  30. package/plugins/interact/src/manifest.js +22 -16
  31. package/plugins/interact/src/manifest.test.js +1 -1
  32. package/plugins/interact/src/reducer.js +1 -0
  33. package/plugins/interact/src/reducer.test.js +1 -0
  34. package/providers/beta/esri/dist/css/im-esri-provider.css +1 -0
  35. package/providers/beta/esri/dist/esm/im-esri-provider.js +2 -0
  36. package/providers/beta/esri/dist/esm/im-esri-provider.js.LICENSE.txt +1 -0
  37. package/providers/beta/esri/dist/esm/index.js +2 -0
  38. package/providers/beta/esri/dist/esm/index.js.LICENSE.txt +1 -0
  39. package/providers/beta/esri/src/esriProvider.js +12 -0
  40. package/providers/beta/esri/src/mapEvents.js +2 -2
  41. package/providers/maplibre/dist/esm/im-maplibre-provider.js +1 -1
  42. package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
  43. package/providers/maplibre/src/maplibreProvider.js +11 -1
  44. package/providers/maplibre/src/utils/highlightFeatures.js +6 -2
  45. package/src/App/components/Actions/Actions.jsx +2 -1
  46. package/src/App/components/Actions/Actions.module.scss +14 -0
  47. package/src/App/components/Actions/Actions.test.jsx +2 -2
  48. package/src/App/components/MapButton/MapButton.module.scss +19 -6
  49. package/src/App/components/PopupMenu/PopupMenu.jsx +69 -14
  50. package/src/App/components/PopupMenu/PopupMenu.module.scss +70 -7
  51. package/src/App/components/PopupMenu/PopupMenu.test.jsx +102 -16
  52. package/src/App/hooks/useButtonStateEvaluator.js +2 -2
  53. package/src/App/hooks/useInterfaceAPI.js +26 -32
  54. package/src/App/registry/pluginRegistry.js +2 -2
  55. package/src/App/renderer/mapButtons.js +6 -1
  56. package/src/App/renderer/mapButtons.test.js +20 -0
  57. package/src/App/store/MapProvider.jsx +2 -2
  58. package/src/App/store/mapActionsMap.js +3 -2
  59. package/src/App/store/mapReducer.js +1 -0
  60. package/src/scss/settings/_dimensions.scss +1 -0
  61. package/webpack.esm.mjs +19 -10
package/docs/api.md CHANGED
@@ -682,17 +682,22 @@ interactiveMap.on('app:ready', () => {
682
682
 
683
683
  Emitted when the underlying map is in a state ready to interact with. For example, when using MapLibre this event is emitted after the map has been instantiated; for ESRI SDK it is emitted when `view.ready` is first true.
684
684
 
685
- **Payload:** Determined by the underlying map engine. MapLibre returns the map instance; ESRI returns `{ map, mapView }`.
685
+ **Payload:** A controlled API object with the following properties:
686
+
687
+ | Property | Type | Description |
688
+ |---|---|---|
689
+ | `map` | Object | The underlying map instance (all providers) |
690
+ | `view` | Object | The map view (ESRI only) |
691
+ | `crs` | string | The coordinate reference system (e.g. `'EPSG:4326'`) |
692
+ | `fitToBounds` | Function | Fit the map to a bounding box |
693
+ | `setView` | Function | Set the map center and zoom |
686
694
 
687
695
  ```js
688
- interactiveMap.on('map:ready', (map) => {
696
+ interactiveMap.on('map:ready', ({ map, crs, fitToBounds, setView }) => {
689
697
  interactiveMap.addMarker('home', [-0.1276, 51.5074])
690
698
  })
691
699
  ```
692
700
 
693
- > [!NOTE]
694
- > If you need lower-level control beyond what InteractiveMap offers, you can use the map instance directly.
695
-
696
701
  ---
697
702
 
698
703
  ### `app:panelopened`
package/package.json CHANGED
@@ -1,12 +1,60 @@
1
1
  {
2
2
  "name": "@defra/interactive-map",
3
- "version": "0.0.6-alpha",
3
+ "version": "0.0.7-alpha",
4
4
  "description": "An accessible map component",
5
5
  "main": "dist/umd/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "exports": {
8
- "import": "./dist/esm/index.js",
9
- "require": "./dist/umd/index.js"
8
+ ".": {
9
+ "import": "./dist/esm/index.js",
10
+ "require": "./dist/umd/index.js"
11
+ },
12
+ "./providers/maplibre": {
13
+ "import": "./providers/maplibre/dist/esm/index.js",
14
+ "require": "./providers/maplibre/dist/umd/index.js"
15
+ },
16
+ "./providers/open-names": {
17
+ "import": "./providers/beta/open-names/dist/esm/index.js",
18
+ "require": "./providers/beta/open-names/dist/umd/index.js"
19
+ },
20
+ "./providers/esri": {
21
+ "import": "./providers/beta/esri/dist/esm/index.js"
22
+ },
23
+ "./plugins/scale-bar": {
24
+ "import": "./plugins/beta/scale-bar/dist/esm/index.js",
25
+ "require": "./plugins/beta/scale-bar/dist/umd/index.js"
26
+ },
27
+ "./plugins/use-location": {
28
+ "import": "./plugins/beta/use-location/dist/esm/index.js",
29
+ "require": "./plugins/beta/use-location/dist/umd/index.js"
30
+ },
31
+ "./plugins/search": {
32
+ "import": "./plugins/search/dist/esm/index.js",
33
+ "require": "./plugins/search/dist/umd/index.js"
34
+ },
35
+ "./plugins/interact": {
36
+ "import": "./plugins/interact/dist/esm/index.js",
37
+ "require": "./plugins/interact/dist/umd/index.js"
38
+ },
39
+ "./plugins/datasets": {
40
+ "import": "./plugins/beta/datasets/dist/esm/index.js",
41
+ "require": "./plugins/beta/datasets/dist/umd/index.js"
42
+ },
43
+ "./plugins/map-styles": {
44
+ "import": "./plugins/beta/map-styles/dist/esm/index.js",
45
+ "require": "./plugins/beta/map-styles/dist/umd/index.js"
46
+ },
47
+ "./plugins/draw-ml": {
48
+ "import": "./plugins/beta/draw-ml/dist/esm/index.js",
49
+ "require": "./plugins/beta/draw-ml/dist/umd/index.js"
50
+ },
51
+ "./plugins/draw-es": {
52
+ "import": "./plugins/beta/draw-es/dist/esm/index.js"
53
+ },
54
+ "./plugins/frame": {
55
+ "import": "./plugins/beta/frame/dist/esm/index.js",
56
+ "require": "./plugins/beta/frame/dist/umd/index.js"
57
+ }
10
58
  },
11
59
  "type": "module",
12
60
  "scripts": {
@@ -41,10 +89,14 @@
41
89
  ]
42
90
  },
43
91
  "peerDependencies": {
92
+ "@arcgis/core": "^4.34.8",
44
93
  "react": "^19.2.0",
45
94
  "react-dom": "^19.2.0"
46
95
  },
47
96
  "peerDependenciesMeta": {
97
+ "@arcgis/core": {
98
+ "optional": true
99
+ },
48
100
  "react": {
49
101
  "optional": true
50
102
  },
@@ -53,6 +105,7 @@
53
105
  }
54
106
  },
55
107
  "devDependencies": {
108
+ "@arcgis/core": "^4.34.8",
56
109
  "@babel/core": "^7.28.0",
57
110
  "@babel/preset-env": "^7.28.0",
58
111
  "@babel/preset-react": "^7.27.1",
@@ -114,7 +167,6 @@
114
167
  "@turf/bearing": "^7.3.3"
115
168
  },
116
169
  "dependencies": {
117
- "@arcgis/core": "^4.34.8",
118
170
  "@turf/area": "^7.2.0",
119
171
  "@turf/bearing": "^7.3.3",
120
172
  "@turf/boolean-disjoint": "^7.3.3",
@@ -0,0 +1,2 @@
1
+ /*! For license information please see im-draw-es-plugin.js.LICENSE.txt */
2
+ export const __webpack_esm_id__="im-draw-es-plugin";export const __webpack_esm_ids__=["im-draw-es-plugin"];export const __webpack_esm_modules__={"./plugins/beta/draw-es/src/manifest.js"(e,t,r){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 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 i(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}function a(e,t,r){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 r=t.call(e,"string");if("object"!=n(r))return r;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:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,{manifest:()=>F}),r.r(t);var c={SET_MODE:function(e,t){return i(i({},e),{},{mode:t})},SET_FEATURE:function(e,t){return i(i({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature})}},u=r("react"),l=r("@arcgis/core/widgets/Sketch/SketchViewModel.js"),p=r("@arcgis/core/layers/GraphicsLayer.js"),s=r("@arcgis/core/geometry/operators/simplifyOperator.js"),f=r("@arcgis/core/Graphic.js");function y(e){return y="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},y(e)}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 m(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){v(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 v(e,t,r){return(t=function(e){var t=function(e){if("object"!=y(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==y(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function b(e){return{type:"simple-fill",color:[0,120,255,.2],outline:{color:"dark"===e?"#ffffff":"#d4351c",width:2}}}function h(e,t,r){return new f.default({geometry:{type:"polygon",rings:t,spatialReference:27700},attributes:{id:e},symbol:b(r)})}function g(e){if(null==e||!e.geometry)throw new Error("Invalid graphic");var t=e.geometry,r=e.attributes,n=void 0===r?{}:r;switch(t.type){case"point":return{type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:m({},n)};case"polyline":return{type:"Feature",geometry:{type:"LineString",coordinates:t.paths[0]},properties:m({},n)};case"polygon":return{type:"Feature",geometry:{type:"Polygon",coordinates:t.rings},properties:m({},n)};default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function w(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof c?n:c,l=Object.create(u.prototype);return S(l,"_invoke",function(r,n,o){var i,c,u,l=0,p=o||[],s=!1,f={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return i=t,c=0,u=e,f.n=r,a}};function y(r,n){for(c=r,u=n,t=0;!s&&l&&!o&&t<p.length;t++){var o,i=p[t],y=f.p,d=i[2];r>3?(o=d===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=y&&((o=r<2&&y<i[1])?(c=0,f.v=n,f.n=i[1]):y<d&&(o=r<3||i[0]>n||n>d)&&(i[4]=r,i[5]=n,f.n=d,c=0))}if(o||r>1)return a;throw s=!0,n}return function(o,p,d){if(l>1)throw TypeError("Generator is already running");for(s&&1===p&&y(p,d),c=p,u=d;(t=c<2?e:u)||!s;){i||(c?c<3?(c>1&&(f.n=-1),y(c,u)):f.n=u:f.v=u);try{if(l=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=e}else if((t=(s=f.n<0)?u:r.call(n,f))!==a)break}catch(t){i=e,c=1,u=t}finally{l=1}}return{value:t,done:s}}}(r,o,i),!0),l}var a={};function c(){}function u(){}function l(){}t=Object.getPrototypeOf;var p=[][n]?t(t([][n]())):(S(t={},n,function(){return this}),t),s=l.prototype=c.prototype=Object.create(p);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,S(e,o,"GeneratorFunction")),e.prototype=Object.create(s),e}return u.prototype=l,S(s,"constructor",l),S(l,"constructor",u),u.displayName="GeneratorFunction",S(l,o,"GeneratorFunction"),S(s),S(s,o,"Generator"),S(s,n,function(){return this}),S(s,"toString",function(){return"[object Generator]"}),(w=function(){return{w:i,m:f}})()}function S(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}S=function(e,t,r,n){function i(t,r){S(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},S(e,t,r,n)}function O(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function k(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){O(i,n,o,a,c,"next",e)}function c(e){O(i,n,o,a,c,"throw",e)}a(void 0)})}}function E(e){return E="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},E(e)}function j(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 P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?j(Object(r),!0).forEach(function(t){_(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function _(e,t,r){return(t=function(e){var t=function(e){if("object"!=E(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=E(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==E(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var T={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},F={reducer:{initialState:{mode:null,feature:null,tempFeature:null},actions:c},InitComponent:function(e){var t,r,n,o,i=e.appState,a=e.mapState,c=e.pluginConfig,f=e.pluginState,y=e.services,d=e.mapProvider,m=e.buttonConfig,v=y.events,S=y.eventBus,O=(a.mapStyle||{}).mapColorScheme,E=null===(t=null===(r=c.includeModes)||void 0===r?void 0:r.includes(i.mode))||void 0===t||t,j=null!==(n=null===(o=c.excludeModes)||void 0===o?void 0:o.includes(i.mode))&&void 0!==n&&n,P=a.isMapReady&&E&&!j;(0,u.useEffect)(function(){if(P&&!d.sketchViewModel){var e=function(e){var t=e.mapProvider.view,r=new p.default({id:"sketchLayer"});t.map.add(r);var n=new p.default({id:"emptySketchLayer"});return t.map.add(n),{sketchViewModel:new l.default({view:t,layer:n,defaultUpdateOptions:{tool:"reshape",updateOnGraphicClick:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,highlightOptions:{enabled:!1}}}),emptySketchLayer:n,sketchLayer:r}}({pluginState:f,mapProvider:d,eventBus:S}),t=e.sketchViewModel,r=e.sketchLayer,n=e.emptySketchLayer;return d.sketchViewModel=t,d.sketchLayer=r,d.emptySketchLayer=n,S.emit("draw:ready"),function(){d.sketchViewModel=null,d.sketchLayer=null,d.emptySketchLayer=null}}},[a.isMapReady,i.mode]),(0,u.useEffect)(function(){if(P&&d.sketchViewModel){var e=function(e){var t=e.pluginState,r=e.mapProvider,n=e.events,o=e.eventBus,i=e.buttonConfig,a=e.mapColorScheme,c=r.view,u=r.sketchViewModel,l=r.sketchLayer,p=r.emptySketchLayer;if(!u)return null;var f=i.drawDone,y=i.drawCancel,d=t.dispatch,m=t.mode,v=t.feature,S=function(){var e=k(w().m(function e(){var r,n,o,i,c;return w().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n=null===(r=t.feature)||void 0===r||null===(r=r.properties)||void 0===r?void 0:r.id,o=null,i="active"===u.state&&!n,"active"!==u.state||!n){e.n=1;break}return u.cancel(),e.n=1,new Promise(function(e){return setTimeout(e,50)});case 1:if(u.polygonSymbol=b(a),null==l||l.graphics.items.forEach(function(e){var t=h(e.attributes.id,e.geometry.rings,a);e.symbol=t.symbol,n===e.attributes.id&&(o=e)}),!o||i||u.layer!==l){e.n=5;break}return e.p=2,e.n=3,u.update(o,{tool:"reshape",toggleToolOnClick:!1});case 3:e.n=5;break;case 4:e.p=4,"AbortError"!==(c=e.v).name&&console.error("Error updating sketch:",c);case 5:return e.a(2)}},e,null,[[2,4]])}));return function(){return e.apply(this,arguments)}}(),O=function(){var e,t,r=null!==(e=null===(t=l.graphics)||void 0===t||null===(t=t.items)||void 0===t?void 0:t[0])&&void 0!==e?e:null;r&&setTimeout(function(){return u.update(r)},0)},E=function(){return S()},j=function(){var e=k(w().m(function e(){return w().w(function(e){for(;;)switch(e.n){case 0:if(m){e.n=1;break}return e.a(2);case 1:if(!(u.updateGraphics||[]).length){e.n=2;break}return e.a(2);case 2:O();case 3:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();o.on(n.MAP_STYLE_CHANGE,E);var P=u.on("update",function(e){var t,r=null===(t=e.toolEventInfo)||void 0===t?void 0:t.type,n=e.graphics[0];if("move-start"===r&&(u.cancel(),O()),"reshape"===r&&(s.isSimple(n.geometry)||u.undo()),"reshape-stop"===r){var i=g(n);o.emit("draw:update",i),d({type:"SET_FEATURE",payload:{tempFeature:i}})}}),_=c.on("click",j),T=f.onClick,F=y.onClick;return f.onClick=function(){u.cancel(),u.layer=p,d({type:"SET_MODE",payload:null}),d({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),o.emit("draw:done",{newFeature:t.tempFeature})},y.onClick=function(){if(u.cancel(),l.removeAll(),v){var e=h(v.id||v.properties.id,v.geometry.coordinates,a);l.add(e)}u.layer=p,d({type:"SET_MODE",payload:null}),o.emit("draw:cancel")},function(){o.off(n.MAP_STYLE_CHANGE,E),P.remove(),_.remove(),f.onClick=T,y.onClick=F}}({pluginState:f,mapProvider:d,events:v,eventBus:S,buttonConfig:m,mapColorScheme:O});return function(){e()}}},[P,O,f])},buttons:[P({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:function(e){return!e.pluginState.mode},enableWhen:function(e){return!!e.pluginState.tempFeature}},T),P({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:function(e){return!e.pluginState.mode}},T)],api:{newPolygon:function(e,t){var r=e.mapState,n=e.pluginState,o=e.mapProvider,i=e.services,a=n.dispatch,c=o.sketchViewModel,u=o.sketchLayer,l=i.eventBus;c.layer=u;var p=c.on("create",function(e){if("complete"===e.state){e.graphic.attributes={id:t},console.log("create-complete",o.sketchLayer.graphics.items.length),requestAnimationFrame(function(){c.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=g(e.graphic);l.emit("draw:create",r),a({type:"SET_FEATURE",payload:{tempFeature:r}}),p.remove()}});c.polygonSymbol=b(r.mapStyle.mapColorScheme),c.create("polygon"),a({type:"SET_MODE",payload:"new-polygon"})},editFeature:function(e,t){var r=e.pluginState,n=e.mapProvider,o=r.dispatch,i=n.sketchViewModel,a=n.sketchLayer,c=a.graphics.items.find(function(e){return e.attributes.id===t}),u=c.geometry.extent,l=[u.xmin,u.ymin,u.xmax,u.ymax];n.fitToBounds(l),i.layer=a,i.update(c,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),o({type:"SET_FEATURE",payload:{feature:g(c)}}),o({type:"SET_MODE",payload:"edit-feature"})},addFeature:function(e,t){var r=e.pluginState,n=e.mapState,o=e.mapProvider,i=e.services,a=r.dispatch,c=n.mapStyle,u=o.sketchViewModel,l=o.sketchLayer,p=o.emptySketchLayer,s=i.eventBus,f=h(t.id,t.geometry.coordinates,c.mapColorScheme);l.add(f),u.layer=p,a({type:"SET_FEATURE",payload:{feature:t}}),s.emit("draw:add",t)},deleteFeature:function(e,t){var r=e.pluginState,n=e.mapProvider,o=e.services,i=r.dispatch,a=n.sketchViewModel,c=n.sketchLayer,u=n.emptySketchLayer,l=o.eventBus,p=c.graphics.items.find(function(e){return e.attributes.id===t});a.cancel(),c.remove(p),a.layer=u,i({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),l.emit("draw:delete",{featureId:t}),i({type:"SET_MODE",payload:null})}}}}};
@@ -0,0 +1 @@
1
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
@@ -0,0 +1,2 @@
1
+ /*! For license information please see index.js.LICENSE.txt */
2
+ import*as r from"@arcgis/core/Graphic.js";import*as e from"@arcgis/core/geometry/operators/simplifyOperator.js";import*as t from"@arcgis/core/layers/GraphicsLayer.js";import*as o from"@arcgis/core/widgets/Sketch/SketchViewModel.js";import*as n from"react";var i,a,c={"@arcgis/core/Graphic.js"(e,t,o){var n,i;e.exports=(n={default:()=>r.default},i={},o.d(i,n),i)},"@arcgis/core/geometry/operators/simplifyOperator.js"(r,t,o){var n,i;r.exports=(n={isSimple:()=>e.isSimple},i={},o.d(i,n),i)},"@arcgis/core/layers/GraphicsLayer.js"(r,e,o){var n,i;r.exports=(n={default:()=>t.default},i={},o.d(i,n),i)},"@arcgis/core/widgets/Sketch/SketchViewModel.js"(r,e,t){var n,i;r.exports=(n={default:()=>o.default},i={},t.d(i,n),i)},react(r,e,t){var o,i;r.exports=(o={useEffect:()=>n.useEffect},i={},t.d(i,o),i)}},u={};function s(r){var e=u[r];if(void 0!==e)return e.exports;var t=u[r]={exports:{}};return c[r](t,t.exports,s),t.exports}s.m=c,s.d=(r,e)=>{for(var t in e)s.o(e,t)&&!s.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:e[t]})},s.f={},s.e=r=>Promise.all(Object.keys(s.f).reduce((e,t)=>(s.f[t](r,e),e),[])),s.u=r=>"../esm/"+r+".js",s.miniCssF=r=>{},s.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),s.r=r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},(()=>{var r;if("string"==typeof import.meta.url&&(r=import.meta.url),!r)throw new Error("Automatic publicPath is not supported in this browser");r=r.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=r+"../css/"})(),i={index:0},a=r=>{var e,t,{__webpack_esm_ids__:o,__webpack_esm_modules__:n,__webpack_esm_runtime__:a}=r,c=0;for(e in n)s.o(n,e)&&(s.m[e]=n[e]);for(a&&a(s);c<o.length;c++)t=o[c],s.o(i,t)&&i[t]&&i[t][0](),i[o[c]]=0},s.f.j=(r,e)=>{var t=s.o(i,r)?i[r]:void 0;if(0!==t)if(t)e.push(t[1]);else{var o=import("../css/"+s.u(r)).then(a,e=>{throw 0!==i[r]&&(i[r]=void 0),e});o=Promise.race([o,new Promise(e=>t=i[r]=[e])]),e.push(t[1]=o)}};var f={};function p(r){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},p(r)}function l(){var r,e,t="function"==typeof Symbol?Symbol:{},o=t.iterator||"@@iterator",n=t.toStringTag||"@@toStringTag";function i(t,o,n,i){var u=o&&o.prototype instanceof c?o:c,s=Object.create(u.prototype);return y(s,"_invoke",function(t,o,n){var i,c,u,s=0,f=n||[],p=!1,l={p:0,n:0,v:r,a:y,f:y.bind(r,4),d:function(e,t){return i=e,c=0,u=r,l.n=t,a}};function y(t,o){for(c=t,u=o,e=0;!p&&s&&!n&&e<f.length;e++){var n,i=f[e],y=l.p,m=i[2];t>3?(n=m===o)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=r):i[0]<=y&&((n=t<2&&y<i[1])?(c=0,l.v=o,l.n=i[1]):y<m&&(n=t<3||i[0]>o||o>m)&&(i[4]=t,i[5]=o,l.n=m,c=0))}if(n||t>1)return a;throw p=!0,o}return function(n,f,m){if(s>1)throw TypeError("Generator is already running");for(p&&1===f&&y(f,m),c=f,u=m;(e=c<2?r:u)||!p;){i||(c?c<3?(c>1&&(l.n=-1),y(c,u)):l.n=u:l.v=u);try{if(s=2,i){if(c||(n="next"),e=i[n]){if(!(e=e.call(i,u)))throw TypeError("iterator result is not an object");if(!e.done)return e;u=e.value,c<2&&(c=0)}else 1===c&&(e=i.return)&&e.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+n+"' method"),c=1);i=r}else if((e=(p=l.n<0)?u:t.call(o,l))!==a)break}catch(e){i=r,c=1,u=e}finally{s=1}}return{value:e,done:p}}}(t,n,i),!0),s}var a={};function c(){}function u(){}function s(){}e=Object.getPrototypeOf;var f=[][o]?e(e([][o]())):(y(e={},o,function(){return this}),e),p=s.prototype=c.prototype=Object.create(f);function m(r){return Object.setPrototypeOf?Object.setPrototypeOf(r,s):(r.__proto__=s,y(r,n,"GeneratorFunction")),r.prototype=Object.create(p),r}return u.prototype=s,y(p,"constructor",s),y(s,"constructor",u),u.displayName="GeneratorFunction",y(s,n,"GeneratorFunction"),y(p),y(p,n,"Generator"),y(p,o,function(){return this}),y(p,"toString",function(){return"[object Generator]"}),(l=function(){return{w:i,m}})()}function y(r,e,t,o){var n=Object.defineProperty;try{n({},"",{})}catch(r){n=0}y=function(r,e,t,o){function i(e,t){y(r,e,function(r){return this._invoke(e,t,r)})}e?n?n(r,e,{value:t,enumerable:!o,configurable:!o,writable:!o}):r[e]=t:(i("next",0),i("throw",1),i("return",2))},y(r,e,t,o)}function m(r,e,t,o,n,i,a){try{var c=r[i](a),u=c.value}catch(r){return void t(r)}c.done?e(u):Promise.resolve(u).then(o,n)}function b(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(r);e&&(o=o.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),t.push.apply(t,o)}return t}function v(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?b(Object(t),!0).forEach(function(e){d(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):b(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function d(r,e,t){return(e=function(r){var e=function(r){if("object"!=p(r)||!r)return r;var e=r[Symbol.toPrimitive];if(void 0!==e){var t=e.call(r,"string");if("object"!=p(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}(r);return"symbol"==p(e)?e:e+""}(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function h(){var r,e;return v(v({},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),{},{id:"draw",load:(r=l().m(function r(){var e;return l().w(function(r){for(;;)switch(r.n){case 0:return r.n=1,s.e("im-draw-es-plugin").then(s.bind(s,"./plugins/beta/draw-es/src/manifest.js"));case 1:return e=r.v.manifest,r.a(2,e)}},r)}),e=function(){var e=this,t=arguments;return new Promise(function(o,n){var i=r.apply(e,t);function a(r){m(i,o,n,a,c,"next",r)}function c(r){m(i,o,n,a,c,"throw",r)}a(void 0)})},function(){return e.apply(this,arguments)})})}s.d(f,{A:()=>h});const g=f.A;export{g as default};
@@ -0,0 +1 @@
1
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
@@ -1 +1 @@
1
- .touch-vertex-target circle{fill:var(--map-overlay-foreground-color)}.touch-vertex-target path{fill:var(--map-overlay-halo-color)}.im-c-actions .im-c-button-wrapper--draw-done,.im-c-actions .im-c-button-wrapper--draw-menu,.im-c-actions .im-c-button-wrapper--draw-cancel{width:33.33%}.im-o-app--tablet .im-c-actions .im-c-button-wrapper--draw-done,.im-o-app--tablet .im-c-actions .im-c-button-wrapper--draw-menu,.im-o-app--tablet .im-c-actions .im-c-button-wrapper--draw-cancel,.im-o-app--desktop .im-c-actions .im-c-button-wrapper--draw-done,.im-o-app--desktop .im-c-actions .im-c-button-wrapper--draw-menu,.im-o-app--desktop .im-c-actions .im-c-button-wrapper--draw-cancel{width:100px}.im-c-button-wrapper--draw-add-point{position:absolute;bottom:calc(100% + var(--primary-gap))}
1
+ .touch-vertex-target circle{fill:var(--map-overlay-foreground-color)}.touch-vertex-target path{fill:var(--map-overlay-halo-color)}.im-c-actions .im-c-button-wrapper--draw-done,.im-c-actions .im-c-button-wrapper--draw-menu,.im-c-actions .im-c-button-wrapper--draw-cancel{width:33.33%}.im-o-app--tablet .im-c-actions .im-c-button-wrapper--draw-done,.im-o-app--tablet .im-c-actions .im-c-button-wrapper--draw-menu,.im-o-app--tablet .im-c-actions .im-c-button-wrapper--draw-cancel,.im-o-app--desktop .im-c-actions .im-c-button-wrapper--draw-done,.im-o-app--desktop .im-c-actions .im-c-button-wrapper--draw-menu,.im-o-app--desktop .im-c-actions .im-c-button-wrapper--draw-cancel{width:100px}.im-c-button-wrapper--draw-add-point{position:absolute;bottom:calc(100% + var(--primary-gap));z-index:0}