@defra/interactive-map 0.0.36-alpha → 0.0.37-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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/interactive-map",
3
- "version": "0.0.36-alpha",
3
+ "version": "0.0.37-alpha",
4
4
  "description": "An accessible map component",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +1 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import{useEffect as t}from"preact/compat";import r from"@arcgis/core/widgets/Sketch/SketchViewModel.js";import a from"@arcgis/core/layers/GraphicsLayer.js";import o from"@babel/runtime/helpers/asyncToGenerator";import*as n from"@arcgis/core/geometry/operators/simplifyOperator.js";import i from"@arcgis/core/Graphic.js";function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function l(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?p(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):p(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var c={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"},s="[interactive-map]",u=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return console.warn(s,...t)},d=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return console.error(s,...t)};function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function y(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?m(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):m(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}function v(e){return{type:"simple-fill",color:[0,120,255,.2],outline:{color:"dark"===e?"#ffffff":"#d4351c",width:2}}}function f(e,t,r){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{simplify:o=!0,allowHoles:p=!1}=a,l=new i({geometry:{type:"polygon",rings:t,spatialReference:27700},attributes:{id:e},symbol:v(r)});return o||!1===p?((e,t)=>{var{simplify:r=!0,allowHoles:a=!1}=t;return!r||n.isSimple(e.geometry)||(u("Feature geometry is not simple, attempting to simplify"),e.geometry=n.execute(e.geometry),n.isSimple(e.geometry))?!1===a&&(null==e?void 0:e.geometry.rings.length)>1?(d("Feature contains multiple polygons, which are not supported."),null):e:(d("Failed to simplify geometry, cannot add feature"),null)})(l,a):l}function E(e){if(null==e||!e.geometry)throw new Error("Invalid graphic");var{geometry:t,attributes:r={}}=e;switch(t.type){case"point":return{type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:y({},r)};case"polyline":return{type:"Feature",geometry:{type:"LineString",coordinates:t.paths[0]},properties:y({},r)};case"polygon":return{type:"Feature",geometry:{type:"Polygon",coordinates:t.rings},properties:y({},r)};default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function h(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?g(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):g(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var P={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},_={reducer:{initialState:{mode:null,feature:null,tempFeature:null},actions:{SET_MODE:(e,t)=>l(l({},e),{},{mode:t}),SET_FEATURE:(e,t)=>l(l({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature})}},InitComponent:e=>{var i,p,l,s,{appState:u,mapState:d,pluginConfig:m,pluginState:y,services:g,mapProvider:h,buttonConfig:P}=e,{eventBus:_}=g,{mapColorScheme:A}=d.mapStyle||{},O=null===(i=null===(p=m.includeModes)||void 0===p?void 0:p.includes(u.mode))||void 0===i||i,S=null!==(l=null===(s=m.excludeModes)||void 0===s?void 0:s.includes(u.mode))&&void 0!==l&&l,b=d.isMapReady&&O&&!S;t(()=>{if(b&&!h.sketchViewModel){var{sketchViewModel:e,sketchLayer:t,emptySketchLayer:o}=(e=>{var{mapProvider:t}=e,{view:o}=t,n=new a({id:"sketchLayer"});o.map.add(n);var i=new a({id:"emptySketchLayer"});return o.map.add(i),{sketchViewModel:new r({view:o,layer:i,defaultUpdateOptions:{tool:"reshape",updateOnGraphicClick:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,highlightOptions:{enabled:!1}}}),emptySketchLayer:i,sketchLayer:n}})({mapProvider:h});return h.sketchViewModel=e,h.sketchLayer=t,h.emptySketchLayer=o,_.emit("draw:ready"),()=>{h.sketchViewModel=null,h.sketchLayer=null,h.emptySketchLayer=null}}},[d.isMapReady,u.mode]),t(()=>{if(b&&h.sketchViewModel){var e=function(e){var{pluginState:t,mapProvider:r,events:a,eventBus:i,buttonConfig:p,mapColorScheme:l}=e,{view:c,sketchViewModel:s,sketchLayer:u,emptySketchLayer:d}=r;if(!s)return null;var{drawDone:m,drawCancel:y}=p,{dispatch:g,mode:h,feature:P}=t,_=function(){var e=o(function*(){var e,r=null===(e=t.feature)||void 0===e||null===(e=e.properties)||void 0===e?void 0:e.id,a=null,o="active"===s.state&&!r;if("active"===s.state&&r&&(s.cancel(),yield new Promise(e=>setTimeout(e,50))),s.polygonSymbol=v(l),null==u||u.graphics.items.forEach(e=>{var t=f(e.attributes.id,e.geometry.rings,l);t&&(e.symbol=t.symbol),r===e.attributes.id&&(a=e)}),a&&!o&&s.layer===u)try{yield s.update(a,{tool:"reshape",toggleToolOnClick:!1})}catch(e){"AbortError"!==e.name&&console.error("Error updating sketch:",e)}});return function(){return e.apply(this,arguments)}}(),A=()=>{var e,t,r=null!==(e=null===(t=u.graphics)||void 0===t||null===(t=t.items)||void 0===t?void 0:t[0])&&void 0!==e?e:null;r&&setTimeout(()=>s.update(r),0)},O=()=>_(),S=e=>{if(e){var t=E(e);i.emit("draw:updated",t),g({type:"SET_FEATURE",payload:{tempFeature:t}})}},b=function(){var e=o(function*(){h&&((s.updateGraphics||[]).length||A())});return function(){return e.apply(this,arguments)}}(),w=function(){var e=o(function*(e){var{toolEventInfo:t}=e,r=null==e?void 0:e.graphic;if(r&&"vertex-add"===(null==t?void 0:t.type)){var a,o,n=null===(a=r.geometry)||void 0===a?void 0:a.rings;(null==n?void 0:n.length)>1?setTimeout(()=>s.undo(),0):(null==n||null===(o=n[0])||void 0===o?void 0:o.length)>3&&S(r)}});return function(t){return e.apply(this,arguments)}}(),T=function(){var e=o(function*(e){var t,r=null==e||null===(t=e.graphics)||void 0===t?void 0:t[0];S(r)});return function(t){return e.apply(this,arguments)}}();i.on(a.MAP_STYLE_CHANGE,O);var M=s.on("update",e=>{var t,r=null===(t=e.toolEventInfo)||void 0===t?void 0:t.type,a=e.graphics[0];"move-start"===r&&(s.cancel(),A()),"reshape"===r&&(n.isSimple(a.geometry)&&1===a.geometry.rings.length||s.undo()),"reshape-stop"!==r&&"vertex-remove"!==r||S(a)}),k=c.on("click",b),D=s.on("create",w),L=s.on("undo",T),C=m.onClick,j=y.onClick;return m.onClick=()=>{s.cancel(),s.layer=d,g({type:"SET_MODE",payload:null}),g({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),i.emit("draw:done",{newFeature:t.tempFeature})},y.onClick=()=>{if(s.cancel(),u.removeAll(),P){var e=f(P.id||P.properties.id,P.geometry.coordinates,l);e&&u.add(e)}s.layer=d,g({type:"SET_MODE",payload:null}),i.emit("draw:cancelled")},()=>{i.off(a.MAP_STYLE_CHANGE,O),M.remove(),k.remove(),D.remove(),L.remove(),m.onClick=C,y.onClick=j}}({pluginState:y,mapProvider:h,events:c,eventBus:_,buttonConfig:P,mapColorScheme:A});return()=>{e()}}},[b,A,y])},buttons:[h({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode},enableWhen:e=>{var{pluginState:t}=e;return!!t.tempFeature}},P),h({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},P)],api:{newPolygon:(e,t)=>{var{mapState:r,pluginState:a,mapProvider:o,services:n}=e,{dispatch:i}=a,{sketchViewModel:p,sketchLayer:l}=o,{eventBus:c}=n;p.layer=l;var s=p.on("create",e=>{if("complete"===e.state){e.graphic.attributes={id:t},requestAnimationFrame(()=>{p.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=E(e.graphic);c.emit("draw:created",r),i({type:"SET_FEATURE",payload:{tempFeature:r}}),s.remove()}});p.polygonSymbol=v(r.mapStyle.mapColorScheme),p.create("polygon"),i({type:"SET_MODE",payload:"new-polygon"})},editFeature:(e,t)=>{var{pluginState:r,mapProvider:a}=e,{dispatch:o}=r,{sketchViewModel:n,sketchLayer:i}=a,p=i.graphics.items.find(e=>e.attributes.id===t),l=p.geometry.extent,c=[l.xmin,l.ymin,l.xmax,l.ymax];a.fitToBounds(c),n.layer=i,n.update(p,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),o({type:"SET_FEATURE",payload:{feature:E(p)}}),o({type:"SET_MODE",payload:"edit-feature"})},addFeature:function(e,t){var{pluginState:r,mapState:a,mapProvider:o,services:n}=e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:p}=r,{mapStyle:l}=a,{sketchViewModel:c,sketchLayer:s,emptySketchLayer:u}=o,{eventBus:d}=n,m=f(t.id,t.geometry.coordinates,l.mapColorScheme,i),y={success:!0};return m?(s.add(m),c.layer=u,p({type:"SET_FEATURE",payload:{feature:t}}),d.emit("draw:add",t),y):(y.success=!1,y)},deleteFeature:(e,t)=>{var{pluginState:r,mapProvider:a,services:o}=e,{dispatch:n}=r,{sketchViewModel:i,sketchLayer:p,emptySketchLayer:l}=a,{eventBus:c}=o,s=p.graphics.items.find(e=>e.attributes.id===t);i.cancel(),p.remove(s),i.layer=l,n({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),c.emit("draw:delete",{featureId:t}),n({type:"SET_MODE",payload:null})}}};export{_ as manifest};
1
+ import e from"@babel/runtime/helpers/defineProperty";import{useEffect as t}from"preact/compat";import r from"@arcgis/core/widgets/Sketch/SketchViewModel.js";import a from"@arcgis/core/layers/GraphicsLayer.js";import o from"@babel/runtime/helpers/asyncToGenerator";import*as n from"@arcgis/core/geometry/operators/simplifyOperator.js";import i from"@arcgis/core/Graphic.js";function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function l(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?p(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):p(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var c={APP_ADD_MARKER:"app:addmarker",APP_UPDATE_MARKER:"app:updatemarker",APP_REMOVE_MARKER:"app:removemarker",APP_SET_MODE:"app:setmode",APP_REVERT_MODE:"app:revertmode",APP_ADD_BUTTON:"app:addbutton",APP_TOGGLE_BUTTON_STATE:"app:togglebuttonstate",APP_ADD_PANEL:"app:addpanel",APP_REMOVE_PANEL:"app:removepanel",APP_SHOW_PANEL:"app:showpanel",APP_HIDE_PANEL:"app:hidepanel",APP_ADD_CONTROL:"app:addcontrol",APP_READY:"app:ready",APP_OPENED:"app:opened",APP_CLOSED:"app:closed",APP_FULLSCREEN_CHANGE:"app:fullscreenchange",APP_PANEL_OPENED:"app:panelopened",APP_PANEL_CLOSED:"app:panelclosed",MAP_SET_STYLE:"map:setstyle",MAP_SET_SIZE:"map:setsize",MAP_SET_FEATURES:"map:setfeatures",MAP_SET_ACTIVE_FEATURE:"map:setactivefeature",MAP_SELECT_FEATURE:"map:selectfeature",MAP_SET_PIXEL_RATIO:"map:setpixelratio",MAP_FIT_TO_BOUNDS:"map:fittobounds",MAP_SET_VIEW:"map:setview",MAP_INIT_MAP_STYLES:"map:initmapstyles",MAP_STYLE_CHANGE:"map:stylechange",MAP_LOADED:"map:loaded",MAP_READY:"map:ready",MAP_SIZE_CHANGE:"map:sizechange",MAP_FIRST_IDLE:"map:firstidle",MAP_MOVE_START:"map:movestart",MAP_MOVE:"map:move",MAP_MOVE_END:"map:moveend",MAP_STATE_UPDATED:"map:stateupdated",MAP_DATA_CHANGE:"map:datachange",MAP_RENDER:"map:render",MAP_CLICK:"map:click",MAP_DESTROY:"map:destroy"},s="[interactive-map]",u=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return console.warn(s,...t)},d=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return console.error(s,...t)};function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function y(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?m(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):m(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}function v(e){return{type:"simple-fill",color:[0,120,255,.2],outline:{color:"dark"===e?"#ffffff":"#d4351c",width:2}}}function f(e,t,r){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{simplify:o=!0,allowHoles:p=!1}=a,l=new i({geometry:{type:"polygon",rings:t,spatialReference:27700},attributes:{id:e},symbol:v(r)});return o||!1===p?((e,t)=>{var{simplify:r=!0,allowHoles:a=!1}=t;return!r||n.isSimple(e.geometry)||(u("Feature geometry is not simple, attempting to simplify"),e.geometry=n.execute(e.geometry),n.isSimple(e.geometry))?!1===a&&(null==e?void 0:e.geometry.rings.length)>1?(d("Feature contains multiple polygons, which are not supported."),null):e:(d("Failed to simplify geometry, cannot add feature"),null)})(l,a):l}function E(e){if(null==e||!e.geometry)throw new Error("Invalid graphic");var{geometry:t,attributes:r={}}=e;switch(t.type){case"point":return{type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:y({},r)};case"polyline":return{type:"Feature",geometry:{type:"LineString",coordinates:t.paths[0]},properties:y({},r)};case"polygon":return{type:"Feature",geometry:{type:"Polygon",coordinates:t.rings},properties:y({},r)};default:throw new Error("Unsupported geometry type: ".concat(t.type))}}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function h(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?g(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):g(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var P={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},_={reducer:{initialState:{mode:null,feature:null,tempFeature:null},actions:{SET_MODE:(e,t)=>l(l({},e),{},{mode:t}),SET_FEATURE:(e,t)=>l(l({},e),{},{feature:void 0===t.feature?e.feature:t.feature,tempFeature:void 0===t.tempFeature?e.tempFeature:t.tempFeature})}},InitComponent:e=>{var i,p,l,s,{appState:u,mapState:d,pluginConfig:m,pluginState:y,services:g,mapProvider:h,buttonConfig:P}=e,{eventBus:_}=g,{mapColorScheme:A}=d.mapStyle||{},O=null===(i=null===(p=m.includeModes)||void 0===p?void 0:p.includes(u.mode))||void 0===i||i,S=null!==(l=null===(s=m.excludeModes)||void 0===s?void 0:s.includes(u.mode))&&void 0!==l&&l,b=d.isMapReady&&O&&!S;t(()=>{if(b&&!h.sketchViewModel){var{sketchViewModel:e,sketchLayer:t,emptySketchLayer:o}=(e=>{var{mapProvider:t}=e,{view:o}=t,n=new a({id:"sketchLayer"});o.map.add(n);var i=new a({id:"emptySketchLayer"});return o.map.add(i),{sketchViewModel:new r({view:o,layer:i,defaultUpdateOptions:{tool:"reshape",updateOnGraphicClick:!1,multipleSelectionEnabled:!1,toggleToolOnClick:!1,highlightOptions:{enabled:!1}}}),emptySketchLayer:i,sketchLayer:n}})({mapProvider:h});return h.sketchViewModel=e,h.sketchLayer=t,h.emptySketchLayer=o,_.emit("draw:ready"),()=>{h.sketchViewModel=null,h.sketchLayer=null,h.emptySketchLayer=null}}},[d.isMapReady,u.mode]),t(()=>{if(b&&h.sketchViewModel){var e=function(e){var{pluginState:t,mapProvider:r,events:a,eventBus:i,buttonConfig:p,mapColorScheme:l}=e,{view:c,sketchViewModel:s,sketchLayer:u,emptySketchLayer:d}=r;if(!s)return null;var{drawDone:m,drawCancel:y}=p,{dispatch:g,mode:h,feature:P}=t,_=function(){var e=o(function*(){var e,r=null===(e=t.feature)||void 0===e||null===(e=e.properties)||void 0===e?void 0:e.id,a=null,o="active"===s.state&&!r;if("active"===s.state&&r&&(s.cancel(),yield new Promise(e=>setTimeout(e,50))),s.polygonSymbol=v(l),null==u||u.graphics.items.forEach(e=>{var t=f(e.attributes.id,e.geometry.rings,l);t&&(e.symbol=t.symbol),r===e.attributes.id&&(a=e)}),a&&!o&&s.layer===u)try{yield s.update(a,{tool:"reshape",toggleToolOnClick:!1})}catch(e){"AbortError"!==e.name&&console.error("Error updating sketch:",e)}});return function(){return e.apply(this,arguments)}}(),A=()=>{var e,t,r=null!==(e=null===(t=u.graphics)||void 0===t||null===(t=t.items)||void 0===t?void 0:t[0])&&void 0!==e?e:null;r&&setTimeout(()=>s.update(r),0)},O=()=>_(),S=e=>{if(e){var t=E(e);i.emit("draw:updated",t),g({type:"SET_FEATURE",payload:{tempFeature:t}})}},b=function(){var e=o(function*(){h&&((s.updateGraphics||[]).length||A())});return function(){return e.apply(this,arguments)}}(),w=function(){var e=o(function*(e){var{toolEventInfo:t}=e,r=null==e?void 0:e.graphic;if(r&&"vertex-add"===(null==t?void 0:t.type)){var a,o,n=null===(a=r.geometry)||void 0===a?void 0:a.rings;(null==n?void 0:n.length)>1?setTimeout(()=>s.undo(),0):(null==n||null===(o=n[0])||void 0===o?void 0:o.length)>3&&S(r)}});return function(t){return e.apply(this,arguments)}}(),T=function(){var e=o(function*(e){var t,r=null==e||null===(t=e.graphics)||void 0===t?void 0:t[0];S(r)});return function(t){return e.apply(this,arguments)}}();i.on(a.MAP_STYLE_CHANGE,O);var M=s.on("update",e=>{var t,r=null===(t=e.toolEventInfo)||void 0===t?void 0:t.type,a=e.graphics[0];"move-start"===r&&(s.cancel(),A()),"reshape-stop"===r&&(n.isSimple(a.geometry)&&1===a.geometry.rings.length||s.undo()),"reshape-stop"!==r&&"vertex-remove"!==r||S(a)}),k=c.on("click",b),D=s.on("create",w),L=s.on("undo",T),C=m.onClick,j=y.onClick;return m.onClick=()=>{s.cancel(),s.layer=d,g({type:"SET_MODE",payload:null}),g({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),i.emit("draw:done",{newFeature:t.tempFeature})},y.onClick=()=>{if(s.cancel(),u.removeAll(),P){var e=f(P.id||P.properties.id,P.geometry.coordinates,l);e&&u.add(e)}s.layer=d,g({type:"SET_MODE",payload:null}),i.emit("draw:cancelled")},()=>{i.off(a.MAP_STYLE_CHANGE,O),M.remove(),k.remove(),D.remove(),L.remove(),m.onClick=C,y.onClick=j}}({pluginState:y,mapProvider:h,events:c,eventBus:_,buttonConfig:P,mapColorScheme:A});return()=>{e()}}},[b,A,y])},buttons:[h({id:"drawDone",label:"Done",variant:"primary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode},enableWhen:e=>{var{pluginState:t}=e;return!!t.tempFeature}},P),h({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},P)],api:{newPolygon:(e,t)=>{var{mapState:r,pluginState:a,mapProvider:o,services:n}=e,{dispatch:i}=a,{sketchViewModel:p,sketchLayer:l}=o,{eventBus:c}=n;p.layer=l;var s=p.on("create",e=>{if("complete"===e.state){e.graphic.attributes={id:t},requestAnimationFrame(()=>{p.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=E(e.graphic);c.emit("draw:created",r),i({type:"SET_FEATURE",payload:{tempFeature:r}}),s.remove()}});p.polygonSymbol=v(r.mapStyle.mapColorScheme),p.create("polygon"),i({type:"SET_MODE",payload:"new-polygon"})},editFeature:(e,t)=>{var{pluginState:r,mapProvider:a}=e,{dispatch:o}=r,{sketchViewModel:n,sketchLayer:i}=a,p=i.graphics.items.find(e=>e.attributes.id===t),l=p.geometry.extent,c=[l.xmin,l.ymin,l.xmax,l.ymax];a.fitToBounds(c),n.layer=i,n.update(p,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),o({type:"SET_FEATURE",payload:{feature:E(p)}}),o({type:"SET_MODE",payload:"edit-feature"})},addFeature:function(e,t){var{pluginState:r,mapState:a,mapProvider:o,services:n}=e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{dispatch:p}=r,{mapStyle:l}=a,{sketchViewModel:c,sketchLayer:s,emptySketchLayer:u}=o,{eventBus:d}=n,m=f(t.id,t.geometry.coordinates,l.mapColorScheme,i),y={success:!0};return m?(s.add(m),c.layer=u,p({type:"SET_FEATURE",payload:{feature:t}}),d.emit("draw:add",t),y):(y.success=!1,y)},deleteFeature:(e,t)=>{var{pluginState:r,mapProvider:a,services:o}=e,{dispatch:n}=r,{sketchViewModel:i,sketchLayer:p,emptySketchLayer:l}=a,{eventBus:c}=o,s=p.graphics.items.find(e=>e.attributes.id===t);i.cancel(),p.remove(s),i.layer=l,n({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),c.emit("draw:delete",{featureId:t}),n({type:"SET_MODE",payload:null})}}};export{_ as manifest};
@@ -91,7 +91,7 @@ export function attachEvents ({ pluginState, mapProvider, events, eventBus, butt
91
91
 
92
92
  // Prevent self-intersect
93
93
  // TODO - refactor this when rings and/or multipolygons are supported
94
- if (toolInfoType === 'reshape') {
94
+ if (toolInfoType === 'reshape-stop') {
95
95
  const isSimple = simplifyOperator.isSimple(graphic.geometry) && graphic.geometry.rings.length === 1
96
96
  if (!isSimple) {
97
97
  sketchViewModel.undo()
@@ -1 +1 @@
1
- import e from"@babel/runtime/helpers/asyncToGenerator";import r from"@arcgis/core/layers/VectorTileLayer.js";import a from"@arcgis/core/layers/FeatureLayer.js";import t from"@arcgis/core/layers/GroupLayer.js";import{L as i}from"./im-datasets-ml-adapter.js";import{D as s,d as l,a as y,l as o}from"./im-datasets-plugin.js";import"@babel/runtime/helpers/defineProperty";import"preact/compat";import"preact/jsx-runtime";class p extends s{applyLayerPaintProperties(e){var{mapStyle:r}=l;return this.hasStroke&&(e["line-color"]=y(this.style.stroke,r.id)),this.hasFill&&(e["fill-color"]=y(this.style.fill,r.id)),e}get esriGroupId(){var e;return void 0===this._datasetDefinition.esriGroupId?null===(e=this.parent)||void 0===e?void 0:e.esriGroupId:this._datasetDefinition.esriGroupId}get useServerStyle(){return Boolean(this._datasetDefinition.esriUseServerStyle)}get renderer(){var e,r,a,t;if("FeatureService"===this.type){var i=(null===(e=this._datasetDefinition.style)||void 0===e?void 0:e.renderer)||(null===(r=this.parent)||void 0===r?void 0:r.renderer);if(i){var{mapStyle:s}=l,o=JSON.parse(JSON.stringify(i));return null!==(a=o.symbol)&&void 0!==a&&a.color&&(o.symbol.color=y(o.symbol.color,s.id)),null!==(t=o.symbol)&&void 0!==t&&null!==(t=t.outline)&&void 0!==t&&t.color&&(o.symbol.outline.color=y(o.symbol.outline.color,s.id)),o}}}}class n extends i{constructor(e){super(),this.ready=new Promise(e=>{this.resolveReady=e}),this._mapProvider=e,this._map=e.map,this._mapVisibilityLayers={},this._mapOpacityLayers={},this._groupLayers={}}createDataset(e){return new p(e)}init(){var r=this;return e(function*(){var e=l.topLevelDatasets();for(var a of e)yield r._addLayers(a);yield r.onMapStyleChange(),yield r.applyGlobalOpacity(),yield Promise.all(e.map(e=>r.applyDatasetVisibility(e.id))),r.resolveReady()})()}_addGroupLayer(e){if(!this._groupLayers[e]){var r=new t({id:e,opacity:1,visible:!0});this._groupLayers[e]=r,this._map.add(r)}return this._groupLayers[e]}_addFeatureLayers(r){var t=this;return e(function*(){var e=new a({id:r.id,url:r.tiles,renderer:r.renderer,opacity:1,visible:!1});t._mapVisibilityLayers[r.id]=e,t._mapOpacityLayers[r.id]=e;try{return t._map.add(e),e.when()}catch(e){o.error("Error adding FeatureLayer for dataset ".concat(r.id,":"),e)}return null})()}_addLayers(a){var t=this;return e(function*(){var{type:e,esriGroupId:i,tiles:s}=a;if(s){if("FeatureService"===e)return t._addFeatureLayers(a);var l=i?t._addGroupLayer(i):t._map,y=new r({id:a.id,url:a.tiles,opacity:1,visible:!1});return t._mapVisibilityLayers[a.id]=y,t._mapOpacityLayers[a.id]=i?l:y,l.add(y),y.when()}})()}addDataset(r){var a=this;return e(function*(){var e=l.getDataset(r);if(e){yield a._addLayers(e);var{parentId:t}=e,i=a._mapVisibilityLayers[t||r];a.applyDatasetOpacity(r),a._applyStyleLayerPaintProperties(e,i),a.applyDatasetVisibility(r)}else o.warn("addDataset called, but Dataset with id ".concat(r," not found in registry"))})()}removeDataset(r){var a=this;return e(function*(){var e=l.getDataset(r);if(e){var{esriGroupId:t}=e,i=a._mapVisibilityLayers[r],s=t?a._groupLayers[t]:null,y=s||a._map;i&&(y.remove(i),delete a._mapVisibilityLayers[r],delete a._mapOpacityLayers[r]),0===(null==s?void 0:s.layers.length)&&(a._map.remove(s),delete a._groupLayers[t])}})()}_applyRegistryDatasetVisibility(e){var{id:r,isSublayer:a,parentId:t}=e,i="visible"===e.visibility,s=this._mapVisibilityLayers[a?t:r];s&&(a?this._applyStyleLayerVisibility(e,s):(i&&e.sublayers.forEach(e=>this._applyStyleLayerVisibility(e,s)),s.visible=i))}applyDatasetVisibility(r){var a=this;return e(function*(){var e=l.getDataset(r);e&&a._applyRegistryDatasetVisibility(e)})()}applyGlobalVisibility(){var r=this;return e(function*(){l.forEachDataset(e=>r._applyRegistryDatasetVisibility(e))})()}applyDatasetOpacity(r){var a=this;return e(function*(){var e=a._mapOpacityLayers[r],t=l.getDataset(r);e&&t&&(e.opacity=t.opacity)})()}applyGlobalOpacity(){var r=this;return e(function*(){Object.entries(r._mapOpacityLayers).forEach(e=>{var[r,a]=e,t=l.getDataset(r);t&&(a.opacity=t.opacity)})})()}_applyStyleLayerVisibility(e,r){var{esriStyleLayerId:a}=e;a&&r&&this.ready.then(()=>{r.setStyleLayerVisibility(a,e.visibility)})}_applyStyleLayerPaintProperties(e,r){var{esriStyleLayerId:a,useServerStyle:t}=e;if(!t&&a&&r){var i=r.getPaintProperties(a);i&&(e.applyLayerPaintProperties(i),r.setPaintProperties(a,e.applyLayerPaintProperties(i)))}}onMapStyleChange(){var r=this;return e(function*(){l.forEach(e=>{var{id:a,isSublayer:t,parent:i}=e,s=r._mapVisibilityLayers[t?i.id:a];"FeatureService"===e.type?s.renderer=e.renderer:(r._applyStyleLayerVisibility(e,s),r._applyStyleLayerPaintProperties(e,s))})})()}onMapSizeChange(){return e(function*(){})()}applyFeatureFilter(){var r=arguments;return e(function*(){for(var e=r.length,a=new Array(e),t=0;t<e;t++)a[t]=r[t];console.log("TODO: applyFeatureFilter",a)})()}setData(){var r=arguments;return e(function*(){for(var e=r.length,a=new Array(e),t=0;t<e;t++)a[t]=r[t];console.log("TODO: setData",a)})()}applyStyle(){var r=arguments;return e(function*(){for(var e=r.length,a=new Array(e),t=0;t<e;t++)a[t]=r[t];console.log("TODO: applyStyle",a)})()}}export{n as default};
1
+ import e from"@babel/runtime/helpers/asyncToGenerator";import r from"@arcgis/core/layers/VectorTileLayer.js";import a from"@arcgis/core/layers/FeatureLayer.js";import i from"@arcgis/core/layers/GroupLayer.js";import{L as t}from"./im-datasets-ml-adapter.js";import{D as s,d as l,a as y,l as o}from"./im-datasets-plugin.js";import"@babel/runtime/helpers/defineProperty";import"preact/compat";import"preact/jsx-runtime";class p extends s{applyLayerPaintProperties(e){var{mapStyle:r}=l;return this.hasStroke&&(e["line-color"]=y(this.style.stroke,r.id)),this.hasFill&&(e["fill-color"]=y(this.style.fill,r.id)),e}get esriGroupId(){var e;return void 0===this._datasetDefinition.esriGroupId?null===(e=this.parent)||void 0===e?void 0:e.esriGroupId:this._datasetDefinition.esriGroupId}get useServerStyle(){return Boolean(this._datasetDefinition.esriUseServerStyle)}get renderer(){var e,r,a,i;if("FeatureService"===this.type){var t=(null===(e=this._datasetDefinition.style)||void 0===e?void 0:e.renderer)||(null===(r=this.parent)||void 0===r?void 0:r.renderer);if(t){var{mapStyle:s}=l,o=JSON.parse(JSON.stringify(t));return null!==(a=o.symbol)&&void 0!==a&&a.color&&(o.symbol.color=y(o.symbol.color,s.id)),null!==(i=o.symbol)&&void 0!==i&&null!==(i=i.outline)&&void 0!==i&&i.color&&(o.symbol.outline.color=y(o.symbol.outline.color,s.id)),o}}}}class n extends t{constructor(e){super(),this.ready=new Promise(e=>{this.resolveReady=e}),this._mapProvider=e,this._map=e.map,this._mapVisibilityLayers={},this._mapOpacityLayers={},this._groupLayers={}}createDataset(e){return new p(e)}init(){var r=this;return e(function*(){var e=l.topLevelDatasets();for(var a of e)yield r._addLayers(a);yield r.onMapStyleChange(),yield r.applyGlobalOpacity(),yield Promise.all(e.map(e=>r.applyDatasetVisibility(e.id))),r._reorderLayers(),r.resolveReady()})()}_reorderLayers(){var e,r=null===(e=this._map)||void 0===e||null===(e=e.allLayers)||void 0===e||null===(e=e.items)||void 0===e?void 0:e.length;r&&this._map.allLayers.items.filter(e=>e.id.includes("ketchLayer")).forEach(e=>this._map.reorder(e,r))}_addGroupLayer(e){if(!this._groupLayers[e]){var r=new i({id:e,opacity:1,visible:!0});this._groupLayers[e]=r,this._map.add(r)}return this._groupLayers[e]}_addFeatureLayers(r){var i=this;return e(function*(){var e=new a({id:r.id,url:r.tiles,renderer:r.renderer,opacity:1,visible:!1});i._mapVisibilityLayers[r.id]=e,i._mapOpacityLayers[r.id]=e;try{return i._map.add(e),e.when()}catch(e){o.error("Error adding FeatureLayer for dataset ".concat(r.id,":"),e)}return null})()}_addLayers(a){var i=this;return e(function*(){var{type:e,esriGroupId:t,tiles:s}=a;if(s){if("FeatureService"===e)return i._addFeatureLayers(a);var l=t?i._addGroupLayer(t):i._map,y=new r({id:a.id,url:a.tiles,opacity:1,visible:!1});return i._mapVisibilityLayers[a.id]=y,i._mapOpacityLayers[a.id]=t?l:y,l.add(y),y.when()}})()}addDataset(r){var a=this;return e(function*(){var e=l.getDataset(r);if(e){yield a._addLayers(e);var{parentId:i}=e,t=a._mapVisibilityLayers[i||r];a._reorderLayers(),a.applyDatasetOpacity(r),a._applyStyleLayerPaintProperties(e,t),a.applyDatasetVisibility(r)}else o.warn("addDataset called, but Dataset with id ".concat(r," not found in registry"))})()}removeDataset(r){var a=this;return e(function*(){var e=l.getDataset(r);if(e){var{esriGroupId:i}=e,t=a._mapVisibilityLayers[r],s=i?a._groupLayers[i]:null,y=s||a._map;t&&(y.remove(t),delete a._mapVisibilityLayers[r],delete a._mapOpacityLayers[r]),0===(null==s?void 0:s.layers.length)&&(a._map.remove(s),delete a._groupLayers[i])}})()}_applyRegistryDatasetVisibility(e){var{id:r,isSublayer:a,parentId:i}=e,t="visible"===e.visibility,s=this._mapVisibilityLayers[a?i:r];s&&(a?this._applyStyleLayerVisibility(e,s):(t&&e.sublayers.forEach(e=>this._applyStyleLayerVisibility(e,s)),s.visible=t))}applyDatasetVisibility(r){var a=this;return e(function*(){var e=l.getDataset(r);e&&a._applyRegistryDatasetVisibility(e)})()}applyGlobalVisibility(){var r=this;return e(function*(){l.forEachDataset(e=>r._applyRegistryDatasetVisibility(e))})()}applyDatasetOpacity(r){var a=this;return e(function*(){var e=a._mapOpacityLayers[r],i=l.getDataset(r);e&&i&&(e.opacity=i.opacity)})()}applyGlobalOpacity(){var r=this;return e(function*(){Object.entries(r._mapOpacityLayers).forEach(e=>{var[r,a]=e,i=l.getDataset(r);i&&(a.opacity=i.opacity)})})()}_applyStyleLayerVisibility(e,r){var{esriStyleLayerId:a}=e;a&&r&&this.ready.then(()=>{r.setStyleLayerVisibility(a,e.visibility)})}_applyStyleLayerPaintProperties(e,r){var{esriStyleLayerId:a,useServerStyle:i}=e;if(!i&&a&&r){var t=r.getPaintProperties(a);t&&(e.applyLayerPaintProperties(t),r.setPaintProperties(a,e.applyLayerPaintProperties(t)))}}onMapStyleChange(){var r=this;return e(function*(){l.forEach(e=>{var{id:a,isSublayer:i,parent:t}=e,s=r._mapVisibilityLayers[i?t.id:a];"FeatureService"===e.type?s.renderer=e.renderer:(r._applyStyleLayerVisibility(e,s),r._applyStyleLayerPaintProperties(e,s))})})()}onMapSizeChange(){return e(function*(){})()}applyFeatureFilter(){var r=arguments;return e(function*(){for(var e=r.length,a=new Array(e),i=0;i<e;i++)a[i]=r[i];console.log("TODO: applyFeatureFilter",a)})()}setData(){var r=arguments;return e(function*(){for(var e=r.length,a=new Array(e),i=0;i<e;i++)a[i]=r[i];console.log("TODO: setData",a)})()}applyStyle(){var r=arguments;return e(function*(){for(var e=r.length,a=new Array(e),i=0;i<e;i++)a[i]=r[i];console.log("TODO: applyStyle",a)})()}}export{n as default};