@defra/interactive-map 0.0.48-fmp-2 → 0.0.49-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/dist/css/index.css +1 -1
- package/dist/esm/im-core.js +1 -1
- package/dist/umd/im-core.js +1 -1
- package/package.json +1 -1
- package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
- package/plugins/beta/draw-es/src/graphic.js +1 -0
- package/plugins/datasets/dist/esm/esriLayerAdapter.js +1 -1
- package/plugins/datasets/dist/umd/im-datasets-esri-adapter.js +1 -1
- package/plugins/datasets/src/adapters/esri/esriLayerAdapter.js +19 -1
- package/plugins/datasets/src/adapters/esri/esriLayerAdapter.test.js +48 -0
- package/plugins/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js +8 -8
- package/plugins/datasets/src/reducers/__data__/demoDatasets.js +3 -3
- package/src/App/hooks/useLayoutMeasurements.js +28 -19
- package/src/App/hooks/useLayoutMeasurements.test.js +33 -5
- package/src/App/layout/layout.module.scss +10 -2
package/package.json
CHANGED
|
@@ -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_SHOW_HINT:"app:showhint",APP_DISMISS_HINT:"app:dismisshint",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_SPATIAL_LIST:"map:setspatiallist",MAP_SET_SPATIAL_LIST_SUPPRESSED:"map:setspatiallistsuppressed",MAP_SET_ACTIVE_ITEM:"map:setactiveitem",MAP_SELECT_ITEM:"map:selectitem",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 E(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 g(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))}}var h=(e,t)=>{var{top:r,right:a,bottom:o,left:n}=e.padding,i=e.extent.clone(),{resolution:p}=e;i.xmin-=n*p,i.xmax+=a*p,i.ymin-=o*p,i.ymax+=r*p;var l={top:0,right:0,bottom:0,left:0};e.padding=l,e.extent=i,t({type:"SET_SAFE_ZONE_INSET",payload:{safeZoneInset:l,syncMapPadding:!1}})};function f(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 P(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?f(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):f(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var _={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},S={reducer:{initialState:{mode:null,feature:null,featureId:null,tempFeature:null},actions:{SET_MODE:(e,t)=>{var r=t?e.featureId:null;return l(l({},e),{},{featureId:r,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}),SET_FEATURE_ID:(e,t)=>l(l({},e),{},{featureId:t})}},InitComponent:e=>{var i,p,l,s,{appState:u,mapState:d,pluginConfig:m,pluginState:y,services:h,mapProvider:f,buttonConfig:P}=e,{eventBus:_}=h,{mapColorScheme:S}=d.mapStyle||{},A=null===(i=null===(p=m.includeModes)||void 0===p?void 0:p.includes(u.mode))||void 0===i||i,O=null!==(l=null===(s=m.excludeModes)||void 0===s?void 0:s.includes(u.mode))&&void 0!==l&&l,b=d.isMapReady&&A&&!O;t(()=>{if(b&&!f.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:f});return f.sketchViewModel=e,f.sketchLayer=t,f.emptySketchLayer=o,_.emit("draw:ready"),()=>{f.sketchViewModel=null,f.sketchLayer=null,f.emptySketchLayer=null}}},[d.isMapReady,u.mode]),t(()=>{if(b&&f.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:h,mode:f,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=E(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)}}(),S=()=>{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)},A=()=>_(),O=e=>{if(e){var t=g(e);i.emit("draw:updated",t),h({type:"SET_FEATURE",payload:{tempFeature:t}})}},b=function(){var e=o(function*(){f&&((s.updateGraphics||[]).length||S())});return function(){return e.apply(this,arguments)}}(),T=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&&O(r)}});return function(t){return e.apply(this,arguments)}}(),w=function(){var e=o(function*(e){var t,r=null==e||null===(t=e.graphics)||void 0===t?void 0:t[0];O(r)});return function(t){return e.apply(this,arguments)}}(),M=e=>{var r=E(e.id||e.properties.id||t.featureId,e.geometry.coordinates,l);r&&u.add(r)};i.on(a.MAP_STYLE_CHANGE,A);var k=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(),S()),"reshape-stop"===r&&(n.isSimple(a.geometry)&&1===a.geometry.rings.length||s.undo()),"reshape-stop"!==r&&"vertex-remove"!==r||O(a)}),D=c.on("click",b),L=s.on("create",T),C=s.on("undo",w),j=m.onClick,I=y.onClick;return m.onClick=()=>{var e;null!=s&&null!==(e=s.layer)&&void 0!==e&&null!==(e=e.graphics)&&void 0!==e&&null!==(e=e.items)&&void 0!==e&&e.length||M(t.tempFeature),s.cancel(),s.layer=d,h({type:"SET_MODE",payload:null}),h({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),i.emit("draw:done",{newFeature:t.tempFeature})},y.onClick=()=>{s.cancel(),u.removeAll(),P&&M(P),s.layer=d,h({type:"SET_MODE",payload:null}),i.emit("draw:cancelled")},()=>{i.off(a.MAP_STYLE_CHANGE,A),k.remove(),D.remove(),L.remove(),C.remove(),m.onClick=j,y.onClick=I}}({pluginState:y,mapProvider:f,events:c,eventBus:_,buttonConfig:P,mapColorScheme:S});return()=>{e()}}},[b,S,y])},buttons:[P({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({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},_)],api:{newPolygon:(e,t)=>{var{appState:r,mapState:a,pluginState:o,mapProvider:n,services:i}=e,{dispatch:p}=o,{sketchViewModel:l,sketchLayer:c,view:s}=n,{eventBus:u}=i;l.layer=c,h(s,r.dispatch);var d=l.on("create",e=>{if("complete"===e.state){e.graphic.attributes={id:t},requestAnimationFrame(()=>{l.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=g(e.graphic);u.emit("draw:created",r),p({type:"SET_FEATURE",payload:{tempFeature:r}}),d.remove()}});l.polygonSymbol=v(a.mapStyle.mapColorScheme),l.create("polygon"),p({type:"SET_MODE",payload:"new-polygon"}),p({type:"SET_FEATURE_ID",payload:t})},editFeature:(e,t)=>{var{appState:r,pluginState:a,mapProvider:o}=e,{dispatch:n}=a,{sketchViewModel:i,sketchLayer:p,view:l}=o,c=p.graphics.items.find(e=>e.attributes.id===t),s=c.geometry.extent.clone();h(l,r.dispatch),s.expand(2),l.goTo(s),i.layer=p,i.update(c,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),n({type:"SET_FEATURE",payload:{feature:g(c)}}),n({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=E(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{S 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_SHOW_HINT:"app:showhint",APP_DISMISS_HINT:"app:dismisshint",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_SPATIAL_LIST:"map:setspatiallist",MAP_SET_SPATIAL_LIST_SUPPRESSED:"map:setspatiallistsuppressed",MAP_SET_ACTIVE_ITEM:"map:setactiveitem",MAP_SELECT_ITEM:"map:selectitem",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],style:"none",outline:{color:"dark"===e?"#ffffff":"#d4351c",width:2}}}function E(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 g(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))}}var h=(e,t)=>{var{top:r,right:a,bottom:o,left:n}=e.padding,i=e.extent.clone(),{resolution:p}=e;i.xmin-=n*p,i.xmax+=a*p,i.ymin-=o*p,i.ymax+=r*p;var l={top:0,right:0,bottom:0,left:0};e.padding=l,e.extent=i,t({type:"SET_SAFE_ZONE_INSET",payload:{safeZoneInset:l,syncMapPadding:!1}})};function f(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 P(t){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?f(Object(a),!0).forEach(function(r){e(t,r,a[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):f(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}var _={mobile:{slot:"actions",showLabel:!0},tablet:{slot:"actions",showLabel:!0},desktop:{slot:"actions",showLabel:!0}},S={reducer:{initialState:{mode:null,feature:null,featureId:null,tempFeature:null},actions:{SET_MODE:(e,t)=>{var r=t?e.featureId:null;return l(l({},e),{},{featureId:r,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}),SET_FEATURE_ID:(e,t)=>l(l({},e),{},{featureId:t})}},InitComponent:e=>{var i,p,l,s,{appState:u,mapState:d,pluginConfig:m,pluginState:y,services:h,mapProvider:f,buttonConfig:P}=e,{eventBus:_}=h,{mapColorScheme:S}=d.mapStyle||{},A=null===(i=null===(p=m.includeModes)||void 0===p?void 0:p.includes(u.mode))||void 0===i||i,O=null!==(l=null===(s=m.excludeModes)||void 0===s?void 0:s.includes(u.mode))&&void 0!==l&&l,b=d.isMapReady&&A&&!O;t(()=>{if(b&&!f.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:f});return f.sketchViewModel=e,f.sketchLayer=t,f.emptySketchLayer=o,_.emit("draw:ready"),()=>{f.sketchViewModel=null,f.sketchLayer=null,f.emptySketchLayer=null}}},[d.isMapReady,u.mode]),t(()=>{if(b&&f.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:h,mode:f,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=E(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)}}(),S=()=>{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)},A=()=>_(),O=e=>{if(e){var t=g(e);i.emit("draw:updated",t),h({type:"SET_FEATURE",payload:{tempFeature:t}})}},b=function(){var e=o(function*(){f&&((s.updateGraphics||[]).length||S())});return function(){return e.apply(this,arguments)}}(),T=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&&O(r)}});return function(t){return e.apply(this,arguments)}}(),w=function(){var e=o(function*(e){var t,r=null==e||null===(t=e.graphics)||void 0===t?void 0:t[0];O(r)});return function(t){return e.apply(this,arguments)}}(),M=e=>{var r=E(e.id||e.properties.id||t.featureId,e.geometry.coordinates,l);r&&u.add(r)};i.on(a.MAP_STYLE_CHANGE,A);var k=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(),S()),"reshape-stop"===r&&(n.isSimple(a.geometry)&&1===a.geometry.rings.length||s.undo()),"reshape-stop"!==r&&"vertex-remove"!==r||O(a)}),D=c.on("click",b),L=s.on("create",T),C=s.on("undo",w),j=m.onClick,I=y.onClick;return m.onClick=()=>{var e;null!=s&&null!==(e=s.layer)&&void 0!==e&&null!==(e=e.graphics)&&void 0!==e&&null!==(e=e.items)&&void 0!==e&&e.length||M(t.tempFeature),s.cancel(),s.layer=d,h({type:"SET_MODE",payload:null}),h({type:"SET_FEATURE",payload:{feature:null,tempFeature:null}}),i.emit("draw:done",{newFeature:t.tempFeature})},y.onClick=()=>{s.cancel(),u.removeAll(),P&&M(P),s.layer=d,h({type:"SET_MODE",payload:null}),i.emit("draw:cancelled")},()=>{i.off(a.MAP_STYLE_CHANGE,A),k.remove(),D.remove(),L.remove(),C.remove(),m.onClick=j,y.onClick=I}}({pluginState:y,mapProvider:f,events:c,eventBus:_,buttonConfig:P,mapColorScheme:S});return()=>{e()}}},[b,S,y])},buttons:[P({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({id:"drawCancel",label:"Cancel",variant:"tertiary",hiddenWhen:e=>{var{pluginState:t}=e;return!t.mode}},_)],api:{newPolygon:(e,t)=>{var{appState:r,mapState:a,pluginState:o,mapProvider:n,services:i}=e,{dispatch:p}=o,{sketchViewModel:l,sketchLayer:c,view:s}=n,{eventBus:u}=i;l.layer=c,h(s,r.dispatch);var d=l.on("create",e=>{if("complete"===e.state){e.graphic.attributes={id:t},requestAnimationFrame(()=>{l.update(e.graphic,{tool:"reshape",toggleToolOnClick:!1})});var r=g(e.graphic);u.emit("draw:created",r),p({type:"SET_FEATURE",payload:{tempFeature:r}}),d.remove()}});l.polygonSymbol=v(a.mapStyle.mapColorScheme),l.create("polygon"),p({type:"SET_MODE",payload:"new-polygon"}),p({type:"SET_FEATURE_ID",payload:t})},editFeature:(e,t)=>{var{appState:r,pluginState:a,mapProvider:o}=e,{dispatch:n}=a,{sketchViewModel:i,sketchLayer:p,view:l}=o,c=p.graphics.items.find(e=>e.attributes.id===t),s=c.geometry.extent.clone();h(l,r.dispatch),s.expand(2),l.goTo(s),i.layer=p,i.update(c,{tool:"reshape",toggleToolOnClick:!1,enableRotation:!1,enableScaling:!1}),n({type:"SET_FEATURE",payload:{feature:g(c)}}),n({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=E(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{S as manifest};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/asyncToGenerator";import r from"@arcgis/core/layers/VectorTileLayer.js";import i from"@arcgis/core/layers/FeatureLayer.js";import
|
|
1
|
+
import e from"@babel/runtime/helpers/asyncToGenerator";import r from"@arcgis/core/layers/VectorTileLayer.js";import i from"@arcgis/core/layers/FeatureLayer.js";import a from"@arcgis/core/layers/GroupLayer.js";import{g as t,L as s}from"./im-datasets-ml-adapter.js";import{D as l,d as o,l as y}from"./im-datasets-plugin.js";import"@babel/runtime/helpers/defineProperty";import"preact/compat";import"preact/jsx-runtime";class n extends l{applyLayerPaintProperties(e){var{mapStyle:r}=o;return this.hasStroke&&(e["line-color"]=t(this.style.stroke,r.id)),this.hasFill&&(e["fill-color"]=t(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,i,a;if("FeatureService"===this.type){var s=(null===(e=this._datasetDefinition.style)||void 0===e?void 0:e.renderer)||(null===(r=this.parent)||void 0===r?void 0:r.renderer);if(s){var{mapStyle:l}=o,y=structuredClone(s);return null!==(i=y.symbol)&&void 0!==i&&i.color&&(y.symbol.color=t(y.symbol.color,l.id)),null!==(a=y.symbol)&&void 0!==a&&null!==(a=a.outline)&&void 0!==a&&a.color&&(y.symbol.outline.color=t(y.symbol.outline.color,l.id)),y}}}}var p=e=>{var r;if("baseLayer"===e.id)return-1/0;if(e.id.includes("ketchLayer"))return 1/0;var i="group"===e.type?null===(r=e.layers)||void 0===r||null===(r=r.items)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.id:e.id;return o._orderedDatasets.indexOf(i)};class d extends s{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 n(e)}init(){var r=this;return e(function*(){var i=o.topLevelDatasets(),a=function(){var i=e(function*(e){return r._addLayers(e).then(()=>{var i,a=r._mapVisibilityLayers[e.id];null===(i=e.sublayers)||void 0===i||i.forEach(e=>{"visible"===e.visibility&&r._applyStyleLayerPaintProperties(e,a)}),r.applyDatasetVisibility(e.id)})});return function(e){return i.apply(this,arguments)}}();for(var t of i)"visible"===t.visibility&&(yield a(t));for(var s of(r._reorderLayers(),i))"visible"!==s.visibility&&(yield a(s));yield r.onMapStyleChange(),yield r.applyGlobalOpacity(),yield Promise.all(i.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?void 0:e.items;null!=r&&r.length&&([...r.filter(e=>{var r;return"group"!==(null===(r=e.parent)||void 0===r?void 0:r.type)})].sort((e,r)=>p(e)-p(r)).forEach((e,r)=>this._map.reorder(e,r)),this._reorderGroupLayers())}_reorderGroupLayers(){Object.values(this._groupLayers).forEach(e=>{var r;[...(null==e||null===(r=e.allLayers)||void 0===r?void 0:r.items)||[]].filter(Boolean).sort((e,r)=>p(e)-p(r)).forEach((r,i)=>{var a;return null==e||null===(a=e.reorder)||void 0===a?void 0:a.call(e,r,i)})})}_addGroupLayer(e){if(!this._groupLayers[e]){var r=new a({id:e,opacity:1,visible:!0});this._groupLayers[e]=r,this._map.add(r)}return this._groupLayers[e]}_addFeatureLayers(r){var a=this;return e(function*(){var e=new i({id:r.id,url:r.tiles,renderer:r.renderer,opacity:1,visible:!1});a._mapVisibilityLayers[r.id]=e,a._mapOpacityLayers[r.id]=e;try{return a._map.add(e),e.when()}catch(e){y.error("Error adding FeatureLayer for dataset ".concat(r.id,":"),e)}return null})()}_addLayers(i){var a=this;return e(function*(){var{type:e,esriGroupId:t,tiles:s}=i;if(!s)return null;if("FeatureService"===e)return a._addFeatureLayers(i);var l=t?a._addGroupLayer(t):a._map,o=new r({id:i.id,url:i.tiles,opacity:1,visible:!1});return a._mapVisibilityLayers[i.id]=o,a._mapOpacityLayers[i.id]=t?l:o,l.add(o),o.when()})()}addDataset(r){var i=this;return e(function*(){var e=o.getDataset(r);if(e){yield i._addLayers(e);var{parentId:a}=e,t=i._mapVisibilityLayers[a||r];i._reorderLayers(),i.applyDatasetOpacity(r),i._applyStyleLayerPaintProperties(e,t),i.applyDatasetVisibility(r)}else y.warn("addDataset called, but Dataset with id ".concat(r," not found in registry"))})()}removeDataset(r){var i=this;return e(function*(){var e=o.getDataset(r);if(e){var{esriGroupId:a}=e,t=i._mapVisibilityLayers[r],s=a?i._groupLayers[a]:null,l=s||i._map;t&&(l.remove(t),delete i._mapVisibilityLayers[r],delete i._mapOpacityLayers[r]),0===(null==s?void 0:s.layers.length)&&(i._map.remove(s),delete i._groupLayers[a])}})()}_applyRegistryDatasetVisibility(e){var{id:r,isSublayer:i,parentId:a}=e,t="visible"===e.visibility,s=this._mapVisibilityLayers[i?a:r];s&&(i?this._applyStyleLayerVisibility(e,s):(t&&e.sublayers.forEach(e=>this._applyStyleLayerVisibility(e,s)),s.visible=t))}applyDatasetVisibility(r){var i=this;return e(function*(){var e=o.getDataset(r);e&&i._applyRegistryDatasetVisibility(e)})()}applyGlobalVisibility(){var r=this;return e(function*(){o.forEachDataset(e=>r._applyRegistryDatasetVisibility(e))})()}applyDatasetOpacity(r){var i=this;return e(function*(){var e=i._mapOpacityLayers[r],a=o.getDataset(r);e&&a&&(e.opacity=a.opacity)})()}applyGlobalOpacity(){var r=this;return e(function*(){Object.entries(r._mapOpacityLayers).forEach(e=>{var[r,i]=e,a=o.getDataset(r);a&&(i.opacity=a.opacity)})})()}_applyStyleLayerVisibility(e,r){var{esriStyleLayerId:i}=e;i&&r&&this.ready.then(()=>{r.setStyleLayerVisibility(i,e.visibility)})}_applyStyleLayerPaintProperties(e,r){var{esriStyleLayerId:i,useServerStyle:a}=e;if(!a&&i&&r){var t=r.getPaintProperties(i);t&&r.setPaintProperties(i,e.applyLayerPaintProperties(t))}}onMapStyleChange(){var r=this;return e(function*(){o.forEach(e=>{var{id:i,isSublayer:a,parent:t}=e,s=r._mapVisibilityLayers[a?t.id:i];s&&("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,i=new Array(e),a=0;a<e;a++)i[a]=r[a];console.log("TODO: applyFeatureFilter",i)})()}setData(){var r=arguments;return e(function*(){for(var e=r.length,i=new Array(e),a=0;a<e;a++)i[a]=r[a];console.log("TODO: setData",i)})()}applyStyle(){var r=arguments;return e(function*(){for(var e=r.length,i=new Array(e),a=0;a<e;a++)i[a]=r[a];console.log("TODO: applyStyle",i)})()}}export{d as default};
|