@arcgis/core 4.26.0-next.20230221 → 4.26.1

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 (92) hide show
  1. package/arcade/Feature.js +1 -1
  2. package/arcade/arcadeTimeUtils.js +1 -1
  3. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  4. package/arcade/treeAnalysis.js +1 -1
  5. package/assets/esri/core/workers/RemoteClient.js +1 -1
  6. package/assets/esri/core/workers/chunks/009cd8f27d2357ec9317.js +1 -0
  7. package/assets/esri/core/workers/chunks/03081e28fe59ba2e8040.js +1 -0
  8. package/assets/esri/core/workers/chunks/{985ffb4dfa8e598c94b5.js → 0d0bca75414f15371baf.js} +1 -1
  9. package/assets/esri/core/workers/chunks/17ce4b146825adcca307.js +1 -0
  10. package/assets/esri/core/workers/chunks/186f2d0c94fa1eca4959.js +1 -0
  11. package/assets/esri/core/workers/chunks/1fd48420dfbbfdb3b051.js +1 -0
  12. package/assets/esri/core/workers/chunks/226bfa115acb8542f21c.js +1 -0
  13. package/assets/esri/core/workers/chunks/253a3e9ce0521a005134.js +1 -0
  14. package/assets/esri/core/workers/chunks/{25abc848a128b24ff66e.js → 3808f33563757fad703d.js} +1 -1
  15. package/assets/esri/core/workers/chunks/38ebf5d20576609566f9.js +1 -0
  16. package/assets/esri/core/workers/chunks/4125b10b1d009f35e75e.js +1 -0
  17. package/assets/esri/core/workers/chunks/48d35993b6ffb76e56e9.js +1 -0
  18. package/assets/esri/core/workers/chunks/5022862c5658e7bb0e04.js +1 -0
  19. package/assets/esri/core/workers/chunks/55782608bee89fa0d6e1.js +1 -0
  20. package/assets/esri/core/workers/chunks/5598996bcf60741aa734.js +1 -0
  21. package/assets/esri/core/workers/chunks/592e9834aa896cdd0e86.js +1 -0
  22. package/assets/esri/core/workers/chunks/5a5e4983c526bf08c7f1.js +1 -0
  23. package/assets/esri/core/workers/chunks/{a6d34147e7dbb1e4609c.js → 5f8acce073b8da5ac6ae.js} +1 -1
  24. package/assets/esri/core/workers/chunks/611c27efa10e4e04d8b6.js +1 -0
  25. package/assets/esri/core/workers/chunks/6ecf0bb8e16159160cde.js +1 -0
  26. package/assets/esri/core/workers/chunks/81949c9d14a8d75c45b6.js +1 -0
  27. package/assets/esri/core/workers/chunks/843a8b87ebecc246598a.js +1 -0
  28. package/assets/esri/core/workers/chunks/84c0a8d41eec91bb5142.js +1 -0
  29. package/assets/esri/core/workers/chunks/85c6a2c7239d0cf73a44.js +1 -0
  30. package/assets/esri/core/workers/chunks/8f3262f33d635cf9f046.js +1 -0
  31. package/assets/esri/core/workers/chunks/9054fd0707a15d037bb9.js +1 -0
  32. package/assets/esri/core/workers/chunks/{c6265aea465769ff758b.js → 995ea389fb778b25d927.js} +1 -1
  33. package/assets/esri/core/workers/chunks/a2e5b67c1c65a93f3c75.js +1 -0
  34. package/assets/esri/core/workers/chunks/a6e57062917ce1a0afa9.js +1 -0
  35. package/assets/esri/core/workers/chunks/b8b6df646ecf5482c5b4.js +1 -0
  36. package/assets/esri/core/workers/chunks/bcdd71e7475777f0f1bb.js +1 -0
  37. package/assets/esri/core/workers/chunks/{97ba79f9bceb42405573.js → bce1d4d6449a646834a1.js} +1 -1
  38. package/assets/esri/core/workers/chunks/c999e9dd748ae449d66e.js +1 -0
  39. package/assets/esri/core/workers/chunks/cb177fb86cf8cec95e87.js +1 -0
  40. package/assets/esri/core/workers/chunks/{3c557a5728c76843561f.js → d3498d28fd01a0ad3899.js} +1 -1
  41. package/assets/esri/core/workers/chunks/dd698ada6b7c03cfd25c.js +1 -0
  42. package/assets/esri/core/workers/chunks/e26acb83eae5eec87ca1.js +1 -0
  43. package/assets/esri/core/workers/chunks/eca1b840c009e5477b80.js +1 -0
  44. package/assets/esri/core/workers/chunks/fbe981e42e92a32d922d.js +1 -0
  45. package/config.js +1 -1
  46. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  47. package/layers/support/layerUtils.js +1 -1
  48. package/layers/support/lazyLayerLoader.js +1 -1
  49. package/package.json +1 -1
  50. package/smartMapping/heuristics/clusterMinSize.js +1 -1
  51. package/support/revision.js +1 -1
  52. package/views/2d/interactive/editingTools/ControlPointsTransformTool.js +1 -1
  53. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  54. package/views/2d/layers/features/sources/BaseFeatureSource.js +1 -1
  55. package/views/2d/layers/features/sources/DataTileSource.js +1 -1
  56. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  57. package/views/layers/ImageryTileLayerView.js +1 -1
  58. package/widgets/Editor.js +1 -1
  59. package/assets/esri/core/workers/chunks/03a811b5a912d83792dd.js +0 -1
  60. package/assets/esri/core/workers/chunks/173febea598431b4e444.js +0 -1
  61. package/assets/esri/core/workers/chunks/1aff09c90f287eeba408.js +0 -1
  62. package/assets/esri/core/workers/chunks/1faf0e2aeabe003e2f64.js +0 -1
  63. package/assets/esri/core/workers/chunks/29662688eedc6df54d4b.js +0 -1
  64. package/assets/esri/core/workers/chunks/2b94b1bc4634f0518890.js +0 -1
  65. package/assets/esri/core/workers/chunks/3664d97f0c2819690cf9.js +0 -1
  66. package/assets/esri/core/workers/chunks/37893e24e4eead6dcec9.js +0 -1
  67. package/assets/esri/core/workers/chunks/3d457f987e2089d67e89.js +0 -1
  68. package/assets/esri/core/workers/chunks/41d25407888326c91566.js +0 -1
  69. package/assets/esri/core/workers/chunks/4503194b1b1d8908a386.js +0 -1
  70. package/assets/esri/core/workers/chunks/4a264b7cfd0a4bc62be9.js +0 -1
  71. package/assets/esri/core/workers/chunks/4cddaa79af86b0981baa.js +0 -1
  72. package/assets/esri/core/workers/chunks/52a06c5eb51ea1d79000.js +0 -1
  73. package/assets/esri/core/workers/chunks/582d12138e6eea62d6fe.js +0 -1
  74. package/assets/esri/core/workers/chunks/5b2bd5829b3831bf9bce.js +0 -1
  75. package/assets/esri/core/workers/chunks/5d946cee3dc0e7311f98.js +0 -1
  76. package/assets/esri/core/workers/chunks/5e9869849d999aac5756.js +0 -1
  77. package/assets/esri/core/workers/chunks/69c89c01783250811b56.js +0 -1
  78. package/assets/esri/core/workers/chunks/72c827a5388a4b1112e3.js +0 -1
  79. package/assets/esri/core/workers/chunks/7db8a429ef7bf11c5bb6.js +0 -1
  80. package/assets/esri/core/workers/chunks/8d52093b6c4bfd087a12.js +0 -1
  81. package/assets/esri/core/workers/chunks/9b449a036598479ad0b0.js +0 -1
  82. package/assets/esri/core/workers/chunks/9c67598554e0d2b2c14a.js +0 -1
  83. package/assets/esri/core/workers/chunks/9f8aad19c5973e201604.js +0 -1
  84. package/assets/esri/core/workers/chunks/9ff12db2f3dcd5749053.js +0 -1
  85. package/assets/esri/core/workers/chunks/a0e3b837262d6d64f605.js +0 -1
  86. package/assets/esri/core/workers/chunks/a213fb1cd2b5da2b7027.js +0 -1
  87. package/assets/esri/core/workers/chunks/a7d2caa47df34a66445a.js +0 -1
  88. package/assets/esri/core/workers/chunks/bb6e4affafef9855b8fd.js +0 -1
  89. package/assets/esri/core/workers/chunks/bd711b7229aa5cfa063b.js +0 -1
  90. package/assets/esri/core/workers/chunks/e384e1daec50f8cdcdd1.js +0 -1
  91. package/assets/esri/core/workers/chunks/eccc725bc3f8047171f7.js +0 -1
  92. package/assets/esri/core/workers/chunks/f7ed302a233d4cfb9060.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.26/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../../request.js";import t from"../../../../../core/Error.js";import has from"../../../../../core/has.js";import r from"../../../../../core/Logger.js";import{isSome as s,unwrapOr as i,isNone as a}from"../../../../../core/maybe.js";import{throwIfAborted as o,isAbortError as n}from"../../../../../core/promiseUtils.js";import{createSourceAdapter as u}from"../controllers/support/sourceAdapters.js";import{DataTileSource as c}from"./DataTileSource.js";import{QueueProcessor as l}from"../../../../support/QueueProcessor.js";const d=4;class p extends c{constructor(e){super(e),this.type="feature",this.mode="on-demand",this._adapter=u(e.serviceInfo),this._queue=new l({concurrency:8,process:async e=>{if(o(e),s(e.tile)){const t=e.tile.key.id,{signal:r}=e,s=has("esri-tiles-debug")?{tile:t.replace(/\//g,"."),depth:e.depth}:void 0,i=await this._adapter.executeQuery(e.query,{signal:r,query:{...s,...this._schema?.customParameters,_ts:this._lastForcedAdminEdit}});return i.level=e.tile.key.level,i}return this._adapter.executeQuery(e.query,{...e,query:this._schema?.customParameters})}}),this._patchQueue=new l({concurrency:8,process:async e=>{if(o(e),s(e.tile)){const t=e.tile.key.id,{signal:r}=e,s=has("esri-tiles-debug")?{tile:t.replace(/\//g,"."),depth:e.depth}:void 0,i=await this._adapter.executeQuery(e.query,{signal:r,query:{...s,...this._schema?.customParameters,_ts:this._lastForcedAdminEdit}});return i.level=e.tile.key.level,i}return this._adapter.executeQuery(e.query,{...e,query:this._schema?.customParameters})}})}destroy(){super.destroy(),this._adapter.destroy(),this._queue.destroy(),this._patchQueue.destroy()}get updating(){return!!this._queue.length||Array.from(this._subscriptions.values()).some((e=>!e.done))}get maxRecordCountFactor(){const{query:e}=this._serviceInfo.capabilities;return e.supportsMaxRecordCountFactor?d:null}get maxPageSize(){const{query:e}=this._serviceInfo.capabilities;return(e.maxRecordCount??8e3)*i(this.maxRecordCountFactor,1)}get pageSize(){return Math.min(8e3,this.maxPageSize)}enableEvent(e,t){}subscribe(e,s){super.subscribe(e,s);const i=this._subscriptions.get(e.id);this._fetchDataTile(e).catch((s=>{n(s)||r.getLogger("esri.views.2d.layers.features.sources.BaseFeatureSource").error(new t("mapview-query-error","Encountered error when fetching tile",{tile:e,error:s}))})).then((()=>i.end()))}unsubscribe(e){super.unsubscribe(e)}readers(e){return this._subscriptions.get(e).readers()}async query(e,t={}){const r=t.query??{};return this._adapter.executeQuery(e,{...t,query:{...r,...this._schema?.customParameters}})}async queryLastEditDate(){const t=this._serviceInfo.source,r={...t.query,f:"json"};return(await e(t.path,{query:r,responseType:"json"})).data.editingInfo.lastEditDate}createTileQuery(e,t={}){const r=this._serviceInfo.geometryType,s=this.createQuery(t);s.quantizationParameters=t.quantizationParameters??e.getQuantizationParameters(),s.resultType="tile",s.geometry=e.extent,this._serviceInfo.capabilities.query.supportsQuantization?"esriGeometryPolyline"===r&&(s.maxAllowableOffset=e.resolution*has("feature-polyline-generalization-factor")):"esriGeometryPolyline"!==r&&"esriGeometryPolygon"!==r||(s.maxAllowableOffset=e.resolution,"esriGeometryPolyline"===r&&(s.maxAllowableOffset*=has("feature-polyline-generalization-factor")));const i=this._serviceInfo.capabilities.query;return s.defaultSpatialReferenceEnabled=i.supportsDefaultSpatialReference,s.compactGeometryEnabled=i.supportsCompactGeometry,s}async _executePatchQuery(e,t,r,i){const a=t.clone();a.outFields=[this._serviceInfo.objectIdField,...r],a.returnCentroid=!1,a.returnGeometry=!1;const o=s(a.start)?a.start/8e3:0,n=i.signal;return this._patchQueue.push({tile:e,query:a,signal:n,depth:o})}async _resend(e,t){const{query:r,message:i}=e,n=s(r.outFields)?r.outFields:[],u=this._queryInfo.outFields,c=u.filter((e=>!n.includes(e)));if(a(i.addOrUpdate))this._onMessage({...i,type:"append"});else if(c.length)try{const e=this._subscriptions.get(i.id).tile,s=await this._executePatchQuery(e,r,c,t);o(t),r.outFields=u,i.addOrUpdate.joinAttributes(s),this._onMessage({...i,end:i.end,type:"append"})}catch(l){}else this._onMessage({...i,type:"append"})}async _resendSubscription(e){if(has("esri-2d-update-debug")&&console.debug(e.tile.id,"Resend Subscription"),e.empty)return this._onMessage({id:e.tile.id,addOrUpdate:null,end:!1,type:"append"});const t=e.signal;for(const r of e.requests.done)await this._resend(r,{signal:t});return s(e.edits)?this._onMessage(e.edits):void 0}async resend(){const e=Array.from(this._subscriptions.values());await Promise.all(e.map((e=>this._resendSubscription(e))))}}export{p as BaseFeatureSource};
5
+ import e from"../../../../../request.js";import t from"../../../../../core/Error.js";import has from"../../../../../core/has.js";import r from"../../../../../core/Logger.js";import{isSome as s,unwrapOr as i,isNone as a}from"../../../../../core/maybe.js";import{throwIfAborted as o,isAbortError as n}from"../../../../../core/promiseUtils.js";import{createSourceAdapter as u}from"../controllers/support/sourceAdapters.js";import{DataTileSource as c}from"./DataTileSource.js";import{QueueProcessor as l}from"../../../../support/QueueProcessor.js";const p=4;class d extends c{constructor(e){super(e),this.type="feature",this.mode="on-demand",this._adapter=u(e.serviceInfo),this._queue=new l({concurrency:8,process:async e=>{if(o(e),s(e.tile)){const t=e.tile.key.id,{signal:r}=e,s=has("esri-tiles-debug")?{tile:t.replace(/\//g,"."),depth:e.depth}:void 0,i=await this._adapter.executeQuery(e.query,{signal:r,query:{...s,...this._schema?.customParameters}});return i.level=e.tile.key.level,i}return this._adapter.executeQuery(e.query,{...e,query:this._schema?.customParameters})}}),this._patchQueue=new l({concurrency:8,process:async e=>{if(o(e),s(e.tile)){const t=e.tile.key.id,{signal:r}=e,s=has("esri-tiles-debug")?{tile:t.replace(/\//g,"."),depth:e.depth}:void 0,i=await this._adapter.executeQuery(e.query,{signal:r,query:{...s,...this._schema?.customParameters}});return i.level=e.tile.key.level,i}return this._adapter.executeQuery(e.query,{...e,query:this._schema?.customParameters})}})}destroy(){super.destroy(),this._adapter.destroy(),this._queue.destroy(),this._patchQueue.destroy()}get updating(){return!!this._queue.length||Array.from(this._subscriptions.values()).some((e=>!e.done))}get maxRecordCountFactor(){const{query:e}=this._serviceInfo.capabilities;return e.supportsMaxRecordCountFactor?p:null}get maxPageSize(){const{query:e}=this._serviceInfo.capabilities;return(e.maxRecordCount??8e3)*i(this.maxRecordCountFactor,1)}get pageSize(){return Math.min(8e3,this.maxPageSize)}enableEvent(e,t){}subscribe(e,s){super.subscribe(e,s);const i=this._subscriptions.get(e.id);this._fetchDataTile(e).catch((s=>{n(s)||r.getLogger("esri.views.2d.layers.features.sources.BaseFeatureSource").error(new t("mapview-query-error","Encountered error when fetching tile",{tile:e,error:s}))})).then((()=>i.end()))}unsubscribe(e){super.unsubscribe(e)}readers(e){return this._subscriptions.get(e).readers()}async query(e,t={}){const r=t.query??{};return this._adapter.executeQuery(e,{...t,query:{...r,...this._schema?.customParameters}})}async queryLastEditDate(){const t=this._serviceInfo.source,r={...t.query,f:"json"};return(await e(t.path,{query:r,responseType:"json"})).data.editingInfo.lastEditDate}createTileQuery(e,t={}){const r=this._serviceInfo.geometryType,s=this.createQuery(t);s.quantizationParameters=t.quantizationParameters??e.getQuantizationParameters(),s.resultType="tile",s.geometry=e.extent,this._serviceInfo.capabilities.query.supportsQuantization?"esriGeometryPolyline"===r&&(s.maxAllowableOffset=e.resolution*has("feature-polyline-generalization-factor")):"esriGeometryPolyline"!==r&&"esriGeometryPolygon"!==r||(s.maxAllowableOffset=e.resolution,"esriGeometryPolyline"===r&&(s.maxAllowableOffset*=has("feature-polyline-generalization-factor")));const i=this._serviceInfo.capabilities.query;return s.defaultSpatialReferenceEnabled=i.supportsDefaultSpatialReference,s.compactGeometryEnabled=i.supportsCompactGeometry,s}async _executePatchQuery(e,t,r,i){const a=t.clone();a.outFields=[this._serviceInfo.objectIdField,...r],a.returnCentroid=!1,a.returnGeometry=!1;const o=s(a.start)?a.start/8e3:0,n=i.signal;return this._patchQueue.push({tile:e,query:a,signal:n,depth:o})}async _resend(e,t){const{query:r,message:i}=e,n=s(r.outFields)?r.outFields:[],u=this._queryInfo.outFields,c=u.filter((e=>!n.includes(e)));if(a(i.addOrUpdate))this._onMessage({...i,type:"append"});else if(c.length)try{const e=this._subscriptions.get(i.id).tile,s=await this._executePatchQuery(e,r,c,t);o(t),r.outFields=u,i.addOrUpdate.joinAttributes(s),this._onMessage({...i,end:i.end,type:"append"})}catch(l){}else this._onMessage({...i,type:"append"})}async _resendSubscription(e){if(has("esri-2d-update-debug")&&console.debug(e.tile.id,"Resend Subscription"),e.empty)return this._onMessage({id:e.tile.id,addOrUpdate:null,end:!1,type:"append"});const t=e.signal;for(const r of e.requests.done)await this._resend(r,{signal:t});return s(e.edits)?this._onMessage(e.edits):void 0}async resend(){const e=Array.from(this._subscriptions.values());await Promise.all(e.map((e=>this._resendSubscription(e))))}}export{d as BaseFeatureSource};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.26/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../../TimeExtent.js";import t from"../../../../../core/Accessor.js";import s from"../../../../../core/Evented.js";import has from"../../../../../core/has.js";import{isSome as i}from"../../../../../core/maybe.js";import{createResolver as r,ignoreAbortErrors as o,eachAlwaysValues as n,eachAlways as c}from"../../../../../core/promiseUtils.js";import{diff as u,hasDiff as d,hasDiffAny as a}from"../../../../../core/accessorSupport/diffUtils.js";import h from"../../../../../rest/support/Query.js";import{DataTileSubscription as p}from"./DataTileSubscription.js";import{UpdateToken as l}from"../support/UpdateToken.js";function m(e,t){const s=new Set;return e&&e.forEach((e=>s.add(e))),t&&t.forEach((e=>s.add(e))),s.has("*")?["*"]:Array.from(s)}class f extends t{constructor(e){super(),this.events=new s,this._resolver=r(),this._didEdit=!1,this._subscriptions=new Map,this._outSR=e.outSR,this._serviceInfo=e.serviceInfo,this._onTileUpdateMessage=e.onMessage}async _onMessage(e){const t=this._subscriptions.get(e.id);if(!t)return;const s={...e,remove:e.remove??[],status:e.status??l.empty()};return o(this._onTileUpdateMessage(s,t.options))}update(t,s){const i=s.fields.length;s.outFields=m(this._schema?.outFields,s.outFields),s.outFields=s.outFields.length>=.75*i?["*"]:s.outFields,s.outFields.sort();const r=u(this._schema,s);if(!r)return;has("esri-2d-update-debug")&&console.debug("Applying Update - Source:",r);const o="orderByFields"in this._serviceInfo&&this._serviceInfo.orderByFields?this._serviceInfo.orderByFields:this._serviceInfo.objectIdField+" ASC",n={returnCentroid:"esriGeometryPolygon"===this._serviceInfo.geometryType,returnGeometry:!0,timeReferenceUnknownClient:"stream"!==this._serviceInfo.type&&this._serviceInfo.timeReferenceUnknownClient,outFields:s.outFields,outSpatialReference:this._outSR,orderByFields:[o],where:s.definitionExpression||"1=1",gdbVersion:s.gdbVersion,historicMoment:s.historicMoment,timeExtent:s.timeExtent?e.fromJSON(s.timeExtent):null},c=this._schema&&d(r,"outFields");this._schema&&a(r,["timeExtent","definitionExpression","gdbVersion","historicMoment","customParameters"])&&(t.why.mesh.push("Layer filter and/or custom parameters changed"),t.why.source.push("Layer filter and/or custom parameters changed"),t.mesh=!0,t.source=!0,t.queryFilter=!0),c&&(t.why.source.push("Layer required fields changed"),t.source=!0),u(n,this._queryInfo)&&(this._queryInfo=n),this._schema=s,this._resolver.resolve()}whenInitialized(){return this._resolver.promise}async applyUpdate(e){if(e.queryFilter||e.source&&this._didEdit)return this.refresh(e.version),void(this._didEdit=!1);this._subscriptions.forEach((t=>t.applyUpdate(e))),await this.resend()}refresh(e,t){for(const s of this._tiles())this.unsubscribe(s),this.subscribe(s,e)}subscribe(e,t){const s=new p(e,t);this._subscriptions.set(e.id,s)}unsubscribe(e){const t=this.getSubscription(e.id);i(t)&&t.abort(),this._subscriptions.delete(e.id)}createQuery(e={}){const t=this._queryInfo.historicMoment?new Date(this._queryInfo.historicMoment):null;return new h({...this._queryInfo,historicMoment:t,...e})}getSubscription(e){return this._subscriptions.has(e)?this._subscriptions.get(e):null}async queryLastEditDate(){throw new Error("Service does not support query type")}async query(e,t){throw new Error("Service does not support query")}*_tiles(){const e=Array.from(this._subscriptions.values());for(const t of e)yield t.tile}_updateLastForcedAdminEdit(){if("stream"!==this._serviceInfo.type){const{capabilities:e,effectiveCapabilities:t}=this._serviceInfo,s=!e.operations?.supportsEditing&&t.operations?.supportsEditing;this._lastForcedAdminEdit=s?Date.now():void 0}}async edit(e,t){this._updateLastForcedAdminEdit();const s=Array.from(this._subscriptions.values()),i=s.map((({tile:e})=>e));for(const r of s)r.removeIds(t);if(e.length){const s=i.map((t=>{const s=this.createTileQuery(t);return s.objectIds=e,{tile:t,query:s}})).map((async({tile:e,query:t})=>({tile:e,result:await this.query(t,{query:{tile:has("esri-tiles-debug")?e.id.replace(/\//g,"."):void 0,_ts:this._lastForcedAdminEdit}}),query:t}))),r=(await n(s)).map((async({tile:s,result:i})=>{if(!i.hasFeatures&&!t.length&&!e.length)return;const r=this._subscriptions.get(s.key.id);r&&r.edit(i,e)}));await c(r)}this._didEdit=!0}}export{f as DataTileSource};
5
+ import e from"../../../../../TimeExtent.js";import s from"../../../../../core/Accessor.js";import t from"../../../../../core/Evented.js";import has from"../../../../../core/has.js";import{isSome as i}from"../../../../../core/maybe.js";import{createResolver as r,ignoreAbortErrors as o,eachAlwaysValues as n,eachAlways as c}from"../../../../../core/promiseUtils.js";import{diff as u,hasDiff as h,hasDiffAny as a}from"../../../../../core/accessorSupport/diffUtils.js";import d from"../../../../../rest/support/Query.js";import{DataTileSubscription as p}from"./DataTileSubscription.js";import{UpdateToken as l}from"../support/UpdateToken.js";function m(e,s){const t=new Set;return e&&e.forEach((e=>t.add(e))),s&&s.forEach((e=>t.add(e))),t.has("*")?["*"]:Array.from(t)}class f extends s{constructor(e){super(),this.events=new t,this._resolver=r(),this._didEdit=!1,this._subscriptions=new Map,this._outSR=e.outSR,this._serviceInfo=e.serviceInfo,this._onTileUpdateMessage=e.onMessage}async _onMessage(e){const s=this._subscriptions.get(e.id);if(!s)return;const t={...e,remove:e.remove??[],status:e.status??l.empty()};return o(this._onTileUpdateMessage(t,s.options))}update(s,t){const i=t.fields.length;t.outFields=m(this._schema?.outFields,t.outFields),t.outFields=t.outFields.length>=.75*i?["*"]:t.outFields,t.outFields.sort();const r=u(this._schema,t);if(!r)return;has("esri-2d-update-debug")&&console.debug("Applying Update - Source:",r);const o="orderByFields"in this._serviceInfo&&this._serviceInfo.orderByFields?this._serviceInfo.orderByFields:this._serviceInfo.objectIdField+" ASC",n={returnCentroid:"esriGeometryPolygon"===this._serviceInfo.geometryType,returnGeometry:!0,timeReferenceUnknownClient:"stream"!==this._serviceInfo.type&&this._serviceInfo.timeReferenceUnknownClient,outFields:t.outFields,outSpatialReference:this._outSR,orderByFields:[o],where:t.definitionExpression||"1=1",gdbVersion:t.gdbVersion,historicMoment:t.historicMoment,timeExtent:t.timeExtent?e.fromJSON(t.timeExtent):null},c=this._schema&&h(r,"outFields");this._schema&&a(r,["timeExtent","definitionExpression","gdbVersion","historicMoment","customParameters"])&&(s.why.mesh.push("Layer filter and/or custom parameters changed"),s.why.source.push("Layer filter and/or custom parameters changed"),s.mesh=!0,s.source=!0,s.queryFilter=!0),c&&(s.why.source.push("Layer required fields changed"),s.source=!0),u(n,this._queryInfo)&&(this._queryInfo=n),this._schema=t,this._resolver.resolve()}whenInitialized(){return this._resolver.promise}async applyUpdate(e){if(e.queryFilter||e.source&&this._didEdit)return this.refresh(e.version),void(this._didEdit=!1);this._subscriptions.forEach((s=>s.applyUpdate(e))),await this.resend()}refresh(e,s){for(const t of this._tiles())this.unsubscribe(t),this.subscribe(t,e)}subscribe(e,s){const t=new p(e,s);this._subscriptions.set(e.id,t)}unsubscribe(e){const s=this.getSubscription(e.id);i(s)&&s.abort(),this._subscriptions.delete(e.id)}createQuery(e={}){const s=this._queryInfo.historicMoment?new Date(this._queryInfo.historicMoment):null;return new d({...this._queryInfo,historicMoment:s,...e})}getSubscription(e){return this._subscriptions.has(e)?this._subscriptions.get(e):null}async queryLastEditDate(){throw new Error("Service does not support query type")}async query(e,s){throw new Error("Service does not support query")}*_tiles(){const e=Array.from(this._subscriptions.values());for(const s of e)yield s.tile}async edit(e,s){const t=Array.from(this._subscriptions.values()),i=t.map((({tile:e})=>e));for(const r of t)r.removeIds(s);if(e.length){const t=i.map((s=>{const t=this.createTileQuery(s);return t.objectIds=e,{tile:s,query:t}})).map((async({tile:e,query:s})=>({tile:e,result:await this.query(s,{query:{tile:has("esri-tiles-debug")?e.id.replace(/\//g,"."):void 0}}),query:s}))),r=(await n(t)).map((async({tile:t,result:i})=>{if(!i.hasFeatures&&!s.length&&!e.length)return;const r=this._subscriptions.get(t.key.id);r&&r.edit(i,e)}));await c(r)}this._didEdit=!0}}export{f as DataTileSource};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.26/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import{isSome as r}from"../../../../core/maybe.js";import{property as t}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import{RasterTileContainer as i}from"../../engine/imagery/RasterTileContainer.js";import{BaseImageryTileSubView2D as o}from"./BaseImageryTileSubView2D.js";import{canUseMajorityInterpolationOnDataSource as a}from"../support/util.js";let n=class extends o{constructor(){super(...arguments),this.type="raster"}attach(){super.attach(),this.container=new i(this._tileInfoView),this.container.isCustomTilingScheme=this._isCustomTilingScheme,this.updateRasterFunctionParameters()}detach(){super.detach(),this.container.removeAllChildren(),this.container=null}canUseWebGLForProcessing(){return this.useWebGLForProcessing&&this.layer.symbolizer.canRenderInWebGL&&!("majority"===this.layer.interpolation&&a(this.layer))}fetchTile(e,r){return this.layer.fetchTile(e.level,e.row,e.col,r)}updateRasterFunctionParameters(){const{raster:e,type:r}=this.layer,{container:t}=this;if("Function"!==e.datasetFormat||"wcs"===r)return t.rasterFunctionChain=null,t.children.forEach((e=>{const{bitmap:r}=e;r&&(r.suspended=!0,r.processed=!1,r.projected&&(r.invalidateTexture(),r.rasterTexture=null))})),void(this._rasterFunctionState="na");const{rasterFunction:s,primaryRasters:i}=e,o=s.supportsGPU&&(!i||i.rasters.length<=1),a=o?s.getFlatWebGLFunctionChain():null,{renderer:n}=this.layer,l=!o||!a?.functions.length||"raster-stretch"===n.type&&n.dynamicRangeAdjustment||!this.canUseWebGLForProcessing();t.rasterFunctionChain=l?null:a,t.children.forEach((e=>{const{bitmap:r}=e;r&&(r.suspended=!0,r.processed=!1,r.processedTexture=null)})),this._rasterFunctionState=null==s?"na":t.rasterFunctionChain?"gpu":"cpu"}async updateTileSource(e,t){const s=this._getBandIds(),i=this._getLayerInterpolation(),o=this.canUseWebGLForProcessing(),{source:a,globalSymbolizerParams:n,suspended:l,coords:c,resolution:u}=t,p=this.layerView.hasTilingEffects?n:t.symbolizerParams,{bitmap:d}=e;if([d.x,d.y]=c,d.resolution=u,a&&r(a)&&r(a.pixelBlock)){const e={extent:a.extent,pixelBlock:a.pixelBlock};if(d.rawPixelData=e,o)d.source=a.pixelBlock,d.isRendereredSource=!1;else{const r=await this.layer.applyRenderer(e,"stretch"===n?.type?n:void 0);d.source=r,d.isRendereredSource=!0}d.symbolizerParameters=o?p:null,o?d.transformGrid||(d.transformGrid=a.transformGrid):d.transformGrid=null}else{const e=this.createEmptyTilePixelBlock();d.source=e,d.symbolizerParameters=o?p:null,d.transformGrid=null}d.bandIds=o?s:null,d.width=this._tileInfoView.tileInfo.size[0],d.height=this._tileInfoView.tileInfo.size[1],d.interpolation=i,d.suspended=l,d.invalidateTexture()}async updateTileSymbolizerParameters(e,t){const{local:s,global:i}=t,o=this._getBandIds(),a=this._getLayerInterpolation(),n=this.canUseWebGLForProcessing(),{bitmap:l}=e,{rawPixelData:c}=l;!n&&r(c)?(l.source=await this.layer.applyRenderer(c,"stretch"===i?.type?i:void 0),l.isRendereredSource=!0):(l.isRendereredSource&&r(c)&&(l.source=c.pixelBlock),l.isRendereredSource=!1),l.symbolizerParameters=n?this.layerView.hasTilingEffects?i:s:null,l.bandIds=n?o:null,l.interpolation=a,l.suspended=!1}_getLayerInterpolation(){const e=this.layer.renderer.type;if("raster-colormap"===e||"unique-value"===e||"class-breaks"===e)return"nearest";const{interpolation:r}=this.layer,{renderer:t}=this.layer;return"raster-stretch"===t.type&&null!=t.colorRamp?"bilinear"===r||"cubic"===r?"bilinear":"nearest":r}};e([t()],n.prototype,"container",void 0),e([t()],n.prototype,"layer",void 0),e([t()],n.prototype,"type",void 0),n=e([s("esri.views.2d.layers.imagery.ImageryTileView2D")],n);const l=n;export{l as default};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import{isSome as r}from"../../../../core/maybe.js";import{property as t}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import{RasterTileContainer as i}from"../../engine/imagery/RasterTileContainer.js";import{BaseImageryTileSubView2D as o}from"./BaseImageryTileSubView2D.js";import{canUseMajorityInterpolationOnDataSource as a}from"../support/util.js";let n=class extends o{constructor(){super(...arguments),this.type="raster"}attach(){super.attach(),this.container=new i(this._tileInfoView),this.container.isCustomTilingScheme=this._isCustomTilingScheme,this.updateRasterFunctionParameters()}detach(){super.detach(),this.container.removeAllChildren(),this.container=null}canUseWebGLForProcessing(){return this.useWebGLForProcessing&&this.layer.symbolizer.canRenderInWebGL&&!("majority"===this.layer.interpolation&&a(this.layer))}fetchTile(e,r){return this.layer.fetchTile(e.level,e.row,e.col,r)}updateRasterFunctionParameters(){const{raster:e,type:r}=this.layer,{container:t}=this;if("Function"!==e.datasetFormat||"wcs"===r)return t.rasterFunctionChain=null,t.children.forEach((e=>{const{bitmap:r}=e;r&&(r.suspended=!0,r.processed=!1,r.projected&&(r.invalidateTexture(),r.rasterTexture=null))})),void(this._rasterFunctionState="na");const s=this._rasterFunctionState,{rasterFunction:i,primaryRasters:o}=e,a=i.supportsGPU&&(!o||o.rasters.length<=1),n=a?i.getFlatWebGLFunctionChain():null,{renderer:l}=this.layer,c=!a||!n?.functions.length||"raster-stretch"===l.type&&l.dynamicRangeAdjustment||!this.canUseWebGLForProcessing();t.rasterFunctionChain=c?null:n;const u=null==i?"na":t.rasterFunctionChain?"gpu":"cpu";t.children.forEach((e=>{const{bitmap:r}=e;r&&(r.suspended=s!==u,r.processed=!1,r.processedTexture=null)})),this._rasterFunctionState=u}async updateTileSource(e,t){const s=this._getBandIds(),i=this._getLayerInterpolation(),o=this.canUseWebGLForProcessing(),{source:a,globalSymbolizerParams:n,suspended:l,coords:c,resolution:u}=t,p=this.layerView.hasTilingEffects?n:t.symbolizerParams,{bitmap:d}=e;if([d.x,d.y]=c,d.resolution=u,a&&r(a)&&r(a.pixelBlock)){const e={extent:a.extent,pixelBlock:a.pixelBlock};if(d.rawPixelData=e,o)d.source=a.pixelBlock,d.isRendereredSource=!1;else{const r=await this.layer.applyRenderer(e,"stretch"===n?.type?n:void 0);d.source=r,d.isRendereredSource=!0}d.symbolizerParameters=o?p:null,o?d.transformGrid||(d.transformGrid=a.transformGrid):d.transformGrid=null}else{const e=this.createEmptyTilePixelBlock();d.source=e,d.symbolizerParameters=o?p:null,d.transformGrid=null}d.bandIds=o?s:null,d.width=this._tileInfoView.tileInfo.size[0],d.height=this._tileInfoView.tileInfo.size[1],d.interpolation=i,d.suspended=l,d.invalidateTexture()}async updateTileSymbolizerParameters(e,t){const{local:s,global:i}=t,o=this._getBandIds(),a=this._getLayerInterpolation(),n=this.canUseWebGLForProcessing(),{bitmap:l}=e,{rawPixelData:c}=l;!n&&r(c)?(l.source=await this.layer.applyRenderer(c,"stretch"===i?.type?i:void 0),l.isRendereredSource=!0):(l.isRendereredSource&&r(c)&&(l.source=c.pixelBlock),l.isRendereredSource=!1),l.symbolizerParameters=n?this.layerView.hasTilingEffects?i:s:null,l.bandIds=n?o:null,l.interpolation=a,l.suspended=!1}_getLayerInterpolation(){const e=this.layer.renderer.type;if("raster-colormap"===e||"unique-value"===e||"class-breaks"===e)return"nearest";const{interpolation:r}=this.layer,{renderer:t}=this.layer;return"raster-stretch"===t.type&&null!=t.colorRamp?"bilinear"===r||"cubic"===r?"bilinear":"nearest":r}};e([t()],n.prototype,"container",void 0),e([t()],n.prototype,"layer",void 0),e([t()],n.prototype,"type",void 0),n=e([s("esri.views.2d.layers.imagery.ImageryTileView2D")],n);const l=n;export{l as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.26/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import r from"../../core/Error.js";import{unwrap as o,isNone as s,isSome as i}from"../../core/maybe.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{combinedViewLayerTimeExtentProperty as l}from"../../layers/support/commonProperties.js";import{getDefaultDatumTransformationForDataset as p,projectExtent as u}from"../../layers/support/rasterFunctions/rasterProjectionHelper.js";import{getFetchPopupTemplate as c}from"./support/popupUtils.js";const f=f=>{let m=class extends f{constructor(){super(...arguments),this._rasterFieldPrefix="Raster.",this.layer=null,this.view=null,this.tileInfo=null}get fullExtent(){return this._getfullExtent()}_getfullExtent(){return this.projectFullExtent(this.view.spatialReference)}get hasTilingEffects(){return this.layer.renderer&&"dynamicRangeAdjustment"in this.layer.renderer&&this.layer.renderer.dynamicRangeAdjustment}get datumTransformation(){return p(o(this.layer.fullExtent),this.view.spatialReference,!0)}supportsSpatialReference(e){return!!this.projectFullExtent(e)}projectFullExtent(e){const t=o(this.layer.fullExtent),r=p(t,e,!1);return u(t,e,r)}async fetchPopupFeatures(e,o){const{layer:a}=this;if(!e)throw new r("imageryTileLayerView:fetchPopupFeatures","Nothing to fetch without area",{layer:a});const{popupEnabled:n}=a,l=c(a,o);if(!n||s(l))throw new r("imageryTileLayerView:fetchPopupFeatures","Missing required popupTemplate or popupEnabled",{popupEnabled:n,popupTemplate:l});const p=[],{value:u,magdirValue:f}=await a.identify(e,{timeExtent:this.timeExtent});let m="";if(u&&u.length){m="imagery-tile"===a.type&&a.hasStandardTime()&&null!=u[0]?u.map((e=>a.getStandardTimeValue(e))).join(", "):u.join(", ");const e={ObjectId:0};e["Raster.ServicePixelValue"]=m;const r=a.rasterInfo.attributeTable;if(i(r)){const{fields:t,features:o}=r,s=t.find((({name:e})=>"value"===e.toLowerCase())),i=s?o.find((e=>String(e.attributes[s.name])===m)):null;if(i)for(const r in i.attributes)if(i.attributes.hasOwnProperty(r)){e[this._rasterFieldPrefix+r]=i.attributes[r]}}const o=a.rasterInfo.dataType;"vector-magdir"!==o&&"vector-uv"!==o||(e["Raster.Magnitude"]=f?.[0],e["Raster.Direction"]=f?.[1]);const s=new t(this.fullExtent.clone(),null,e);s.layer=a,s.sourceLayer=s.layer,p.push(s)}return p}};return e([a()],m.prototype,"layer",void 0),e([a(l)],m.prototype,"timeExtent",void 0),e([a()],m.prototype,"view",void 0),e([a()],m.prototype,"fullExtent",null),e([a()],m.prototype,"tileInfo",void 0),e([a({readOnly:!0})],m.prototype,"hasTilingEffects",null),m=e([n("esri.views.layers.ImageryTileLayerView")],m),m};export{f as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import r from"../../core/Error.js";import{unwrap as o,isNone as s,isSome as i}from"../../core/maybe.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{combinedViewLayerTimeExtentProperty as l}from"../../layers/support/commonProperties.js";import{getDefaultDatumTransformationForDataset as p,projectExtent as u}from"../../layers/support/rasterFunctions/rasterProjectionHelper.js";import{getFetchPopupTemplate as c}from"./support/popupUtils.js";const f=f=>{let m=class extends f{constructor(){super(...arguments),this._rasterFieldPrefix="Raster.",this.layer=null,this.view=null,this.tileInfo=null}get fullExtent(){return this._getfullExtent()}_getfullExtent(){return this.projectFullExtent(this.view.spatialReference)}get hasTilingEffects(){return this.layer.renderer&&"dynamicRangeAdjustment"in this.layer.renderer&&this.layer.renderer.dynamicRangeAdjustment}get datumTransformation(){return p(o(this.layer.fullExtent),this.view.spatialReference,!0)}supportsSpatialReference(e){return!!this.projectFullExtent(e)}projectFullExtent(e){const t=o(this.layer.fullExtent),r=p(t,e,!1);return u(t,e,r)}async fetchPopupFeatures(e,o){const{layer:a}=this;if(!e)throw new r("imageryTileLayerView:fetchPopupFeatures","Nothing to fetch without area",{layer:a});const{popupEnabled:n}=a,l=c(a,o);if(!n||s(l))throw new r("imageryTileLayerView:fetchPopupFeatures","Missing required popupTemplate or popupEnabled",{popupEnabled:n,popupTemplate:l});const p=[],{value:u,magdirValue:f}=await a.identify(e,{timeExtent:this.timeExtent});let m="";if(u&&u.length){m="imagery-tile"===a.type&&a.hasStandardTime()&&null!=u[0]?u.map((e=>a.getStandardTimeValue(e))).join(", "):u.join(", ");const e={ObjectId:0};e["Raster.ServicePixelValue"]=m;const r=a.rasterInfo.attributeTable;if(i(r)){const{fields:t,features:o}=r,s=t.find((({name:e})=>"value"===e.toLowerCase())),i=s?o.find((e=>String(e.attributes[s.name])===m)):null;if(i)for(const r in i.attributes)if(i.attributes.hasOwnProperty(r)){e[this._rasterFieldPrefix+r]=i.attributes[r]}}const o=a.rasterInfo.dataType;"vector-magdir"!==o&&"vector-uv"!==o||(e["Raster.Magnitude"]=f?.[0],e["Raster.Direction"]=f?.[1]);const s=new t(this.fullExtent.clone(),null,e);s.layer=a,s.sourceLayer=s.layer,p.push(s)}return p}};return e([a()],m.prototype,"layer",void 0),e([a(l)],m.prototype,"timeExtent",void 0),e([a()],m.prototype,"view",void 0),e([a()],m.prototype,"fullExtent",null),e([a()],m.prototype,"tileInfo",void 0),e([a({readOnly:!0})],m.prototype,"hasTilingEffects",null),e([a()],m.prototype,"datumTransformation",null),m=e([n("esri.views.layers.ImageryTileLayerView")],m),m};export{f as default};
package/widgets/Editor.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.26/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{HandleOwnerMixin as t}from"../core/HandleOwner.js";import s from"../core/Logger.js";import{isSome as i}from"../core/maybe.js";import{createDeferred as a}from"../core/promiseUtils.js";import{watch as o,on as n,when as r,initial as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import{subclass as p}from"../core/accessorSupport/decorators/subclass.js";import{getDisplayFieldName as m}from"../layers/support/fieldUtils.js";import h from"./Attachments.js";import u from"./FeatureForm.js";import g from"./FeatureTemplates.js";import _ from"./Spinner.js";import w from"./Widget.js";import{workflowDeprecation as f}from"./Editor/deprecationUtils.js";import v from"./Editor/EditorViewModel.js";import{ItemList as k}from"./FeatureTemplates/ItemList.js";import{Heading as y,incrementHeadingLevel as b}from"./support/Heading.js";import A from"./support/SnappingControls.js";import{accessibleHandler as M}from"./support/decorators/accessibleHandler.js";import{messageBundle as C}from"./support/decorators/messageBundle.js";import{vmEvent as F}from"./support/decorators/vmEvent.js";import{tsx as W}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import{SketchTooltipControls as T}from"./support/SketchTooltipControls/SketchTooltipControls.js";import{substitute as E}from"../intl/substitute.js";const S="esri-editor",j=`${S}__panel`,L=`${S}__prompt`,P={base:`${S} esri-widget esri-widget--panel`,message:`${S}__message`,actions:`${S}__actions`,helpMessage:`${S}__help-message`,progressBar:`${S}__progress-bar`,panelToolbar:`${j}-toolbar`,panelContent:`${j}-content`,panelContentMessage:`${j}-content__message`,panelContentSection:`${j}-content__section`,panelContentSectionGroup:`${j}-content__section__group`,panelContentScrimContainer:`${j}-content__scrim-container`,settingsContainer:`${S}__settings`,updateFeaturesActionButtons:`${S}__update-features-action-buttons`,updateFeaturesActionButtonsButton:`${S}__update-features-action-buttons--button`,featureTemplatesContainer:`${S}__feature-templates-container`,ownerAdminNotice:`${S}__owner-admin-notice`,promptContainer:L,promptHeader:`${L}__header`,promptHeading:`${L}__header__heading`,promptMessage:`${L}__message`,promptDivider:`${L}__divider`,promptActions:`${L}__actions`,warningIcon:"esri-icon-notice-triangle",widgetIcon:"esri-icon-edit"},B={undoRedoButtons:!1,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},sketchTooltipControls:!0};function U(e){e.focus()}const I="esri.widgets.Editor",$=s.getLogger(I);let O=class extends(t(w)){constructor(e,t){super(e,t),this._featureForm=new u,this._attachments=new h({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new g({enableListScroll:!1}),this._filterText="",this._prompt=null,this._spinner=new _,this.useDeprecatedCreateWorkflow=!1,this.headingLevel=4,this.iconClass=P.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new v,this.visibleElements={...B},this.EditorPanel=({handleBack:e,heading:t,headingLevel:s,key:i},...a)=>{const{messagesCommon:o,viewModel:n,visibleElements:r}=this,l=n.sketchViewModel,c=n.syncing||this._attachments.submitting;return W("calcite-flow-item",{closable:!1,heading:t,headingLevel:s,key:i,loading:c,onCalciteFlowItemBack:e??void 0},W("div",{key:"panel-toolbar",class:P.panelToolbar},this._renderSettings(),r.undoRedoButtons&&[W("calcite-button",{key:"undo-button",label:o.undo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"undo",scale:"l",disabled:!l.canUndo(),onclick:l.undo.bind(l)},o.undo),W("calcite-button",{key:"redo-button",label:o.redo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"redo",scale:"l",disabled:!l.canRedo(),onclick:l.redo.bind(l)},o.redo)]),...a)},this._showDiscardWarning=()=>{const{messages:e}=this,t="create"===this.activeWorkflow?.type,s=a();return this._prompt={title:e[t?"cancelAddTitle":"cancelEditTitle"],message:e[t?"cancelAddWarningMessage":"cancelEditWarningMessage"],context:"danger",actions:{primary:{label:e[t?"discardFeature":"discardEdits"],action:()=>{s.resolve(),this._clearPrompt()}},secondary:{label:e[t?"continueAdding":"continueEditing"],action:()=>{s.reject(),this._clearPrompt()}}}},s.promise},this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.previous(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null},this._onBack=this._onBack.bind(this),this._onSave=this._onSave.bind(this),this._onDelete=this._onDelete.bind(this),this._onToggleUpdateWorkflow=this._onToggleUpdateWorkflow.bind(this),this._onAttachmentAdd=this._onAttachmentAdd.bind(this),this._onAttachmentUpdate=this._onAttachmentUpdate.bind(this),this._onAttachmentDelete=this._onAttachmentDelete.bind(this)}initialize(){const e=()=>this.scheduleRender();this.addHandles([o((()=>b(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),l),n((()=>this.viewModel.featureTemplatesViewModel),"select",(async({item:e,oldItem:t})=>{this.viewModel.activeWorkflow&&await this.viewModel.cancelWorkflow(),e&&e.id!==t?.id&&(this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(e):this.startCreateFeaturesWorkflowAtFeatureCreation(e))})),o((()=>this.viewModel.selectedTemplateItem),(e=>this._featureTemplates.select(e,!1))),n((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{const{messages:t,messagesCommon:s}=this;this._prompt={title:t.cancelRequestTitle,message:t.cancelRequestWarningMessage,context:"danger",actions:{primary:{label:s.form.yes,action:()=>{e.allow(),this._clearPrompt()}},secondary:{label:s.form.no,action:()=>{e.deny(),this._clearPrompt()}}}}})),o((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardPrompt=this._showDiscardWarning}),l),o((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),l),n((()=>this.viewModel?.sketchViewModel),"create",e),r((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),l),r((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),r((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:i,cancel:a}]=e;this._prompt={title:t.errorWarningTitle,message:E(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{i(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{a(),this._clearPrompt()}}}}})),o((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),o((()=>[this._attachments?.selectedFile,this._attachments?.submitting]),e),o((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e)),n((()=>this.view),"key-down",(e=>{"Escape"===e.key&&this.viewModel.back()}))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-accordion-item.js"),import("@esri/calcite-components/dist/components/calcite-accordion.js"),import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-flow-item.js"),import("@esri/calcite-components/dist/components/calcite-flow.js"),import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-list-item.js"),import("@esri/calcite-components/dist/components/calcite-list.js"),import("@esri/calcite-components/dist/components/calcite-notice.js"),import("@esri/calcite-components/dist/components/calcite-scrim.js")])}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger",type:"primary"}}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...B,...e,snappingControlsElements:{...B.snappingControlsElements,...e?.snappingControlsElements}}}startCreateWorkflowAtFeatureTypeSelection(){return f($,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return f($,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return f($,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this;if(!e)return W("div",{class:P.base});const{state:t}=e;return W("div",{class:P.base},W("calcite-flow",null,e.pageStack.map((e=>this._renderPage(e,t))),this._renderPage(e.page,t)),this._renderPrompt())}_renderPage(e,t){switch(e){case"disabled":break;case"ready":return this._renderLanding(t);case"awaiting-feature-creation-info":return this._renderTemplates(t);case"creating-features":case"editing-new-feature":case"editing-existing-feature":return this._renderAttributeEditing(t);case"awaiting-update-feature-candidate":return this._renderFeatureList(t);case"adding-attachment":return this._renderAttachmentAdding(t);case"editing-attachment":return this._renderAttachmentEditing(t)}return W("div",null)}_renderTemplates(e){const{EditorPanel:t,headingLevel:s,messages:i,_onBack:a}=this;return W(t,{active:this._isPanelActive(e),key:"templates-panel",handleBack:a,heading:i.selectTemplate,headingLevel:s},W("div",{class:P.panelContent},this._featureTemplates.render()))}_renderAttributeEditing(e){const{activeWorkflow:t,EditorPanel:s,messages:i,messagesCommon:a,headingLevel:o,_onBack:n,viewModel:r}=this;if(!t)return null;const l=t.type,c=r.featureFormViewModel,d="update"===l&&!t.data.edits.modified||r.syncing||c.updating,p="update"===l?i.editFeature:i.createFeatures,m="update"===l?a.update:a.create,h="create-features"===l&&"create-new"===t.createFeatureState,u="create-features"===l?t.numPendingFeatures:0,g=u>1?E(i.createFeaturesTemplate,{numFeatures:u}):m,_=t.shouldShowAttachments,w=c.inputFields.every((e=>!e.visible))&&!_?this._renderMessage(E(i.clickToFinishTemplate,{button:m})):W("div",{key:"panel-content-section",class:P.panelContentSection},this._renderOwnerAdminNoticeIfApplicable(t),W("div",{class:P.panelContentSectionGroup},this._featureForm.render(),_&&W("div",{key:"attachments"},W(y,{level:b(o)},i.attachments),this._attachments.render())));return W(s,{active:this._isPanelActive(e),key:"attribute-editing-panel",heading:p,headingLevel:o,handleBack:n},W("div",{key:"panel-content",class:this.classes(P.panelContent,{[P.panelContentScrimContainer]:h})},w,h&&W("calcite-scrim",null)),this._renderFooterActions([{clickHandler:this._onSave,disabled:d,label:g,type:"primary"},r.shouldShowDeleteButton?{...this._deleteButtonCommonInfo,clickHandler:this._onDelete,disabled:r.syncing,label:a.delete}:null]))}_renderOwnerAdminNoticeIfApplicable(e){if(e?.reliesOnOwnerAdminPrivileges)return W("calcite-notice",{open:!0,icon:!0,kind:"info",scale:"s",class:P.ownerAdminNotice},W("div",{slot:"message"},this.messages.ownerAdminNotice))}_renderAttachmentAdding(e){const{_attachments:t,EditorPanel:s,_onBack:i,headingLevel:a,messages:o,messagesCommon:n}=this;return W(s,{active:this._isPanelActive(e),key:"attachment-adding-panel",heading:o.addAttachment,headingLevel:a,handleBack:i},W("div",{class:P.panelContent},t.render()),this._renderFooterActions([{label:t.submitting?n.cancel:n.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentAdd}]))}_renderAttachmentEditing(e){const{_attachments:t,EditorPanel:s,_onBack:i,activeWorkflow:a,headingLevel:o,messages:n,messagesCommon:r}=this;return a?W(s,{active:this._isPanelActive(e),key:"attachment-editing-panel",heading:n.editAttachment,headingLevel:o,handleBack:i},W("div",{class:P.panelContent},t.render()),a.shouldAllowAttachmentEditing?this._renderFooterActions([{label:r.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,clickHandler:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]):void 0):null}_renderMessage(e){return W("div",{key:"panel-content-message",class:P.panelContentMessage},e)}_renderFooterActions(e){return W("div",{key:"footer-actions",slot:"footer",class:P.actions},e.filter(i).map((({type:e,disabled:t,class:s,clickHandler:i,label:a,...o},n)=>W("calcite-button",{key:`action-${n}`,slot:"footer-actions",class:s,disabled:t??!1,onclick:i,width:"full",...o},a))))}_renderPrompt(){const e=this._prompt;if(!e)return null;const{title:t,message:s,context:i,actions:a}=e,o=a.secondary;let n;switch(i){case"danger":n="danger";break;case"info":n="brand";break;default:n="neutral"}const r=W("calcite-button",{afterCreate:U,appearance:"solid",key:"prompt-primary-button",kind:n,onclick:a.primary.action,scale:"m",width:o?"half":"full"},a.primary.label),l=o&&W("calcite-button",{appearance:"outline",key:"prompt-secondary-button",kind:n,onclick:o.action,scale:"m",width:"half"},o.label);return W("calcite-scrim",null,W("div",{class:`${P.promptContainer}--${i}`},W("div",{class:P.promptHeader},W("calcite-icon",{icon:"exclamation-mark-triangle"}),W(y,{class:P.promptHeading,level:this.headingLevel},t)),W("div",{class:P.promptMessage},s),W("div",{class:P.promptDivider}),W("div",{class:P.promptActions},l,r)))}_renderLanding(e){const{EditorPanel:t,headingLevel:s,messages:i,viewModel:a}=this,{canUpdate:o}=a,n=this._featureTemplates.viewModel.numberOfFeatureTemplates,r=!o&&0===n;return W(t,{active:this._isPanelActive(e),key:"landing-panel",heading:i.widgetLabel,headingLevel:s},W("div",{class:P.panelContent},o&&W("div",{key:"edit-actions",class:P.panelContentSection},this._renderUpdateActions(e)),n>0&&W("div",{key:"create-actions",class:P.panelContentSection},this._renderCreateActions()),r&&W("div",{key:"no-content",class:P.panelContentMessage},i.noEditableLayers)),this._renderFooterHelpMessages())}_renderFooterHelpMessages(){const{activeWorkflow:e,messages:t,view:s}=this,i=e?.helpMessage,a=i?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[i]:null;return a?W("div",{key:"footer-actions",slot:"footer",class:P.helpMessage},a):null}_renderUpdateActions(e){const{messages:t,messagesCommon:s}=this;return W("div",{key:"update-actions"},W(y,{level:b(this.headingLevel)},t.editFeatures),W("calcite-list",{selectionMode:"single",selectionAppearance:"border"},W("calcite-list-item",{selected:"awaiting-feature-to-update"===e,label:s.select,onCalciteListItemSelect:this._onToggleUpdateWorkflow},W("calcite-icon",{icon:"cursor",slot:"content-start"}))))}_renderCreateActions(){const{_featureTemplates:e,headingLevel:t,messages:s}=this;return W("div",{key:"create-actions"},W(y,{level:b(t)},s.createFeatures),W("div",{key:"templates",class:P.featureTemplatesContainer},e.render()))}_renderFeatureList(e){const{EditorPanel:t,_onBack:s,headingLevel:a,messages:o,messagesTemplates:n,viewModel:{activeWorkflow:r,editableItems:l}}=this;if("update"!==r?.type)return null;const c=r.data.candidates,d=E(o.multipleFeaturesTemplate,{total:c.length}),p=new Map;let m=0;c.map((e=>({label:this._getLabel(e),id:e.attributes[e.layer.objectIdField],data:e}))).filter((e=>{const{label:t,data:s}=e,i=this._filterText.toLowerCase(),{title:a}=s.layer,o=l.find((e=>e.layer===s.layer));if(!o)return null;const{attachmentsOnUpdateEnabled:n,supports:r}=o;return(r.includes("update")||r.includes("delete")||n)&&(!i||t?.toLowerCase().includes(i)||a?.toLowerCase().includes(i))})).filter(i).forEach((e=>{m++;const t=e.data.layer;p.has(t)?p.get(t)?.items.push(e):p.set(t,{id:`${t.id}`,label:t.title??"",items:[e]})}));const h=l.toArray().map((({layer:e})=>p.get(e))).filter(i),u=m>10||this._filterText.length>0;return W(t,{active:this._isPanelActive(e),key:"feature-list",heading:d,headingLevel:a,handleBack:s},W("div",{class:P.panelContent},W("div",{class:P.panelContentSection},k({id:this.id,enableListScroll:!1,filterEnabled:u,filterText:this._filterText,items:h,messages:{filterPlaceholder:n.filterPlaceholder,noItems:n.noItems,noMatches:n.noMatches},onItemMouseEnter:e=>this.viewModel.selectFeature(e.data),onItemMouseLeave:()=>this.viewModel.selectFeature(null),onItemSelect:e=>this.viewModel.selectFeature(e.data,!0),onFilterChange:e=>this._filterText=e}))))}_isPanelActive(e){return this.viewModel.state===e}_renderSettings(){const e=this.visibleElements,t=e.snappingControls,s=e.sketchTooltipControls;return t||s?W("calcite-accordion",{class:P.settingsContainer,appearance:"transparent"},W("calcite-accordion-item",{heading:this.messagesCommon?.settings,iconStart:"gear"},s&&W(T,{tooltipOptions:this.tooltipOptions}),t&&W(A,{snappingOptions:this.snappingOptions,view:this.view,visibleElements:e.snappingControlsElements,afterCreate:e=>e.layerListOpen=!1}))):null}_getLabel(e){const t=e.layer;if(!t)return null;const{objectIdField:s}=t,{attributes:i}=e,a=m(t);return a&&i[a]&&`${i[a]}`||E(this.messages.untitledFeatureTemplate,{id:i[s]})}_onSave(){this.viewModel.save()}_onDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}}async _onToggleUpdateWorkflow(){const{viewModel:e}=this;e.canUpdate&&(e.activeWorkflow&&"awaiting-feature-to-update"===e.state?await e.cancelWorkflow():await e.startUpdateWorkflowAtFeatureSelection())}async _onBack(e){return e?.stopPropagation(),this.viewModel.back()}_onAttachmentAdd(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.previous()):this._attachments.addAttachment().then((()=>e.previous())))}_onAttachmentUpdate(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.previous()):this._attachments.updateAttachment().then((()=>e.previous())))}_onAttachmentDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}}};e([c()],O.prototype,"_featureForm",void 0),e([c()],O.prototype,"_attachments",void 0),e([c()],O.prototype,"_featureTemplates",void 0),e([c()],O.prototype,"_filterText",void 0),e([c()],O.prototype,"_prompt",void 0),e([c()],O.prototype,"_spinner",void 0),e([c()],O.prototype,"_deleteButtonCommonInfo",null),e([c({readOnly:!0})],O.prototype,"activeWorkflow",null),e([c()],O.prototype,"allowedWorkflows",null),e([c()],O.prototype,"useDeprecatedCreateWorkflow",void 0),e([c()],O.prototype,"headingLevel",void 0),e([c()],O.prototype,"iconClass",void 0),e([c()],O.prototype,"label",null),e([c()],O.prototype,"labelOptions",null),e([c()],O.prototype,"layerInfos",null),e([c(),C("esri/widgets/Editor/t9n/Editor")],O.prototype,"messages",void 0),e([c(),C("esri/t9n/common")],O.prototype,"messagesCommon",void 0),e([c(),C("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],O.prototype,"messagesTemplates",void 0),e([c()],O.prototype,"snappingOptions",null),e([c()],O.prototype,"tooltipOptions",null),e([c()],O.prototype,"supportingWidgetDefaults",void 0),e([c()],O.prototype,"view",null),e([c(),F(["workflow-cancel","workflow-commit"])],O.prototype,"viewModel",void 0),e([c()],O.prototype,"visibleElements",void 0),e([d("visibleElements")],O.prototype,"castVisibleElements",null),e([M()],O.prototype,"_onSave",null),e([M()],O.prototype,"_onDelete",null),e([M()],O.prototype,"_onToggleUpdateWorkflow",null),e([M()],O.prototype,"_onBack",null),e([M()],O.prototype,"_onAttachmentAdd",null),e([M()],O.prototype,"_onAttachmentUpdate",null),e([M()],O.prototype,"_onAttachmentDelete",null),O=e([p(I)],O);const D=O;export{D as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{HandleOwnerMixin as t}from"../core/HandleOwner.js";import s from"../core/Logger.js";import{isSome as i}from"../core/maybe.js";import{createDeferred as a}from"../core/promiseUtils.js";import{watch as o,on as n,when as r,initial as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import{subclass as p}from"../core/accessorSupport/decorators/subclass.js";import{getDisplayFieldName as m}from"../layers/support/fieldUtils.js";import h from"./Attachments.js";import u from"./FeatureForm.js";import g from"./FeatureTemplates.js";import _ from"./Spinner.js";import w from"./Widget.js";import{workflowDeprecation as f}from"./Editor/deprecationUtils.js";import v from"./Editor/EditorViewModel.js";import{ItemList as k}from"./FeatureTemplates/ItemList.js";import{Heading as y,incrementHeadingLevel as b}from"./support/Heading.js";import A from"./support/SnappingControls.js";import{accessibleHandler as M}from"./support/decorators/accessibleHandler.js";import{messageBundle as C}from"./support/decorators/messageBundle.js";import{vmEvent as F}from"./support/decorators/vmEvent.js";import{tsx as W}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import{SketchTooltipControls as T}from"./support/SketchTooltipControls/SketchTooltipControls.js";import{substitute as E}from"../intl/substitute.js";const S="esri-editor",j=`${S}__panel`,L=`${S}__prompt`,P={base:`${S} esri-widget esri-widget--panel`,message:`${S}__message`,actions:`${S}__actions`,helpMessage:`${S}__help-message`,progressBar:`${S}__progress-bar`,panelToolbar:`${j}-toolbar`,panelContent:`${j}-content`,panelContentMessage:`${j}-content__message`,panelContentSection:`${j}-content__section`,panelContentSectionGroup:`${j}-content__section__group`,panelContentScrimContainer:`${j}-content__scrim-container`,settingsContainer:`${S}__settings`,updateFeaturesActionButtons:`${S}__update-features-action-buttons`,updateFeaturesActionButtonsButton:`${S}__update-features-action-buttons--button`,featureTemplatesContainer:`${S}__feature-templates-container`,ownerAdminNotice:`${S}__owner-admin-notice`,promptContainer:L,promptHeader:`${L}__header`,promptHeading:`${L}__header__heading`,promptMessage:`${L}__message`,promptDivider:`${L}__divider`,promptActions:`${L}__actions`,warningIcon:"esri-icon-notice-triangle",widgetIcon:"esri-icon-edit"},B={undoRedoButtons:!1,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},sketchTooltipControls:!0};function U(e){e.focus()}const I="esri.widgets.Editor",$=s.getLogger(I);let O=class extends(t(w)){constructor(e,t){super(e,t),this._featureForm=new u,this._attachments=new h({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new g({enableListScroll:!1}),this._filterText="",this._prompt=null,this._spinner=new _,this.useDeprecatedCreateWorkflow=!1,this.headingLevel=4,this.iconClass=P.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new v,this.visibleElements={...B},this.EditorPanel=({handleBack:e,heading:t,headingLevel:s,key:i},...a)=>{const{messagesCommon:o,viewModel:n,visibleElements:r}=this,l=n.sketchViewModel,c=n.syncing||this._attachments.submitting;return W("calcite-flow-item",{closable:!1,heading:t,headingLevel:s,key:i,loading:c,onCalciteFlowItemBack:e??void 0},W("div",{key:"panel-toolbar",class:P.panelToolbar},this._renderSettings(),r.undoRedoButtons&&[W("calcite-button",{key:"undo-button",label:o.undo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"undo",scale:"l",disabled:!l.canUndo(),onclick:l.undo.bind(l)},o.undo),W("calcite-button",{key:"redo-button",label:o.redo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"redo",scale:"l",disabled:!l.canRedo(),onclick:l.redo.bind(l)},o.redo)]),...a)},this._showDiscardWarning=()=>{const{messages:e}=this,t="create"===this.activeWorkflow?.type,s=a();return this._prompt={title:e[t?"cancelAddTitle":"cancelEditTitle"],message:e[t?"cancelAddWarningMessage":"cancelEditWarningMessage"],context:"danger",actions:{primary:{label:e[t?"discardFeature":"discardEdits"],action:()=>{s.resolve(),this._clearPrompt()}},secondary:{label:e[t?"continueAdding":"continueEditing"],action:()=>{s.reject(),this._clearPrompt()}}}},s.promise},this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.previous(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null},this._onBack=this._onBack.bind(this),this._onSave=this._onSave.bind(this),this._onDelete=this._onDelete.bind(this),this._onToggleUpdateWorkflow=this._onToggleUpdateWorkflow.bind(this),this._onAttachmentAdd=this._onAttachmentAdd.bind(this),this._onAttachmentUpdate=this._onAttachmentUpdate.bind(this),this._onAttachmentDelete=this._onAttachmentDelete.bind(this)}initialize(){const e=()=>this.scheduleRender();this.addHandles([o((()=>b(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),l),n((()=>this.viewModel.featureTemplatesViewModel),"select",(async({item:e,oldItem:t})=>{this.viewModel.activeWorkflow&&await this.viewModel.cancelWorkflow(),e&&e.id!==t?.id&&(this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(e):this.startCreateFeaturesWorkflowAtFeatureCreation(e))})),o((()=>this.viewModel.selectedTemplateItem),(e=>this._featureTemplates.select(e,!1))),n((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{const{messages:t,messagesCommon:s}=this;this._prompt={title:t.cancelRequestTitle,message:t.cancelRequestWarningMessage,context:"danger",actions:{primary:{label:s.form.yes,action:()=>{e.allow(),this._clearPrompt()}},secondary:{label:s.form.no,action:()=>{e.deny(),this._clearPrompt()}}}}})),o((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardPrompt=this._showDiscardWarning}),l),o((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),l),n((()=>this.viewModel?.sketchViewModel),"create",e),r((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),l),r((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),r((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:i,cancel:a}]=e;this._prompt={title:t.errorWarningTitle,message:E(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{i(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{a(),this._clearPrompt()}}}}})),o((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),o((()=>[this._attachments?.selectedFile,this._attachments?.submitting]),e),o((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e)),n((()=>this.view),"key-down",(e=>{"Escape"===e.key&&this.viewModel.back()}))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-accordion-item.js"),import("@esri/calcite-components/dist/components/calcite-accordion.js"),import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-flow-item.js"),import("@esri/calcite-components/dist/components/calcite-flow.js"),import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-list-item.js"),import("@esri/calcite-components/dist/components/calcite-list.js"),import("@esri/calcite-components/dist/components/calcite-notice.js"),import("@esri/calcite-components/dist/components/calcite-scrim.js")])}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger",type:"primary"}}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...B,...e,snappingControlsElements:{...B.snappingControlsElements,...e?.snappingControlsElements}}}startCreateWorkflowAtFeatureTypeSelection(){return f($,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return f($,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return f($,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this;if(!e)return W("div",{class:P.base});const{state:t}=e;return W("div",{class:P.base},W("calcite-flow",null,e.pageStack.map((e=>this._renderPage(e,t))),this._renderPage(e.page,t)),this._renderPrompt())}_renderPage(e,t){switch(e){case"disabled":break;case"ready":return this._renderLanding(t);case"awaiting-feature-creation-info":return this._renderTemplates(t);case"creating-features":case"editing-new-feature":case"editing-existing-feature":return this._renderAttributeEditing(t);case"awaiting-update-feature-candidate":return this._renderFeatureList(t);case"adding-attachment":return this._renderAttachmentAdding(t);case"editing-attachment":return this._renderAttachmentEditing(t)}return W("div",null)}_renderTemplates(e){const{EditorPanel:t,headingLevel:s,messages:i,_onBack:a}=this;return W(t,{active:this._isPanelActive(e),key:"templates-panel",handleBack:a,heading:i.selectTemplate,headingLevel:s},W("div",{class:P.panelContent},this._featureTemplates.render()))}_renderAttributeEditing(e){const{activeWorkflow:t,EditorPanel:s,messages:i,messagesCommon:a,headingLevel:o,_onBack:n,viewModel:r}=this;if(!t)return null;const l=t.type,c=r.featureFormViewModel,d="update"===l&&!t.data.edits.modified||r.syncing||c.updating,p="update"===l?i.editFeature:i.createFeatures,m="update"===l?a.update:a.create,h="create-features"===l&&"create-new"===t.createFeatureState,u="create-features"===l?t.numPendingFeatures:0,g=u>1?E(i.createFeaturesTemplate,{numFeatures:u}):m,_=t.shouldShowAttachments,w=c.inputFields.every((e=>!e.visible))&&!_?this._renderMessage(E(i.clickToFinishTemplate,{button:m})):W("div",{key:"panel-content-section",class:P.panelContentSection},this._renderOwnerAdminNoticeIfApplicable(t),W("div",{class:P.panelContentSectionGroup},this._featureForm.render(),_&&W("div",{key:"attachments"},W(y,{level:b(o)},i.attachments),this._attachments.render())));return W(s,{active:this._isPanelActive(e),key:"attribute-editing-panel",heading:p,headingLevel:o,handleBack:n},W("div",{key:"panel-content",class:this.classes(P.panelContent,{[P.panelContentScrimContainer]:h})},w,h&&W("calcite-scrim",null)),this._renderFooterActions([{clickHandler:this._onSave,disabled:d,label:g,type:"primary"},r.shouldShowDeleteButton?{...this._deleteButtonCommonInfo,clickHandler:this._onDelete,disabled:r.syncing,label:a.delete}:null]))}_renderOwnerAdminNoticeIfApplicable(e){if(e?.reliesOnOwnerAdminPrivileges)return W("calcite-notice",{open:!0,kind:"info",scale:"s",class:P.ownerAdminNotice},W("div",{slot:"message"},this.messages.ownerAdminNotice))}_renderAttachmentAdding(e){const{_attachments:t,EditorPanel:s,_onBack:i,headingLevel:a,messages:o,messagesCommon:n}=this;return W(s,{active:this._isPanelActive(e),key:"attachment-adding-panel",heading:o.addAttachment,headingLevel:a,handleBack:i},W("div",{class:P.panelContent},t.render()),this._renderFooterActions([{label:t.submitting?n.cancel:n.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentAdd}]))}_renderAttachmentEditing(e){const{_attachments:t,EditorPanel:s,_onBack:i,activeWorkflow:a,headingLevel:o,messages:n,messagesCommon:r}=this;return a?W(s,{active:this._isPanelActive(e),key:"attachment-editing-panel",heading:n.editAttachment,headingLevel:o,handleBack:i},W("div",{class:P.panelContent},t.render()),a.shouldAllowAttachmentEditing?this._renderFooterActions([{label:r.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,clickHandler:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]):void 0):null}_renderMessage(e){return W("div",{key:"panel-content-message",class:P.panelContentMessage},e)}_renderFooterActions(e){return W("div",{key:"footer-actions",slot:"footer",class:P.actions},e.filter(i).map((({type:e,disabled:t,class:s,clickHandler:i,label:a,...o},n)=>W("calcite-button",{key:`action-${n}`,slot:"footer-actions",class:s,disabled:t??!1,onclick:i,width:"full",...o},a))))}_renderPrompt(){const e=this._prompt;if(!e)return null;const{title:t,message:s,context:i,actions:a}=e,o=a.secondary;let n;switch(i){case"danger":n="danger";break;case"info":n="brand";break;default:n="neutral"}const r=W("calcite-button",{afterCreate:U,appearance:"solid",key:"prompt-primary-button",kind:n,onclick:a.primary.action,scale:"m",width:o?"half":"full"},a.primary.label),l=o&&W("calcite-button",{appearance:"outline",key:"prompt-secondary-button",kind:n,onclick:o.action,scale:"m",width:"half"},o.label);return W("calcite-scrim",null,W("div",{class:`${P.promptContainer}--${i}`},W("div",{class:P.promptHeader},W("calcite-icon",{icon:"exclamation-mark-triangle"}),W(y,{class:P.promptHeading,level:this.headingLevel},t)),W("div",{class:P.promptMessage},s),W("div",{class:P.promptDivider}),W("div",{class:P.promptActions},l,r)))}_renderLanding(e){const{EditorPanel:t,headingLevel:s,messages:i,viewModel:a}=this,{canUpdate:o}=a,n=this._featureTemplates.viewModel.numberOfFeatureTemplates,r=!o&&0===n;return W(t,{active:this._isPanelActive(e),key:"landing-panel",heading:i.widgetLabel,headingLevel:s},W("div",{class:P.panelContent},o&&W("div",{key:"edit-actions",class:P.panelContentSection},this._renderUpdateActions(e)),n>0&&W("div",{key:"create-actions",class:P.panelContentSection},this._renderCreateActions()),r&&W("div",{key:"no-content",class:P.panelContentMessage},i.noEditableLayers)),this._renderFooterHelpMessages())}_renderFooterHelpMessages(){const{activeWorkflow:e,messages:t,view:s}=this,i=e?.helpMessage,a=i?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[i]:null;return a?W("div",{key:"footer-actions",slot:"footer",class:P.helpMessage},a):null}_renderUpdateActions(e){const{messages:t,messagesCommon:s}=this;return W("div",{key:"update-actions"},W(y,{level:b(this.headingLevel)},t.editFeatures),W("calcite-list",{selectionMode:"single",selectionAppearance:"border"},W("calcite-list-item",{selected:"awaiting-feature-to-update"===e,label:s.select,onCalciteListItemSelect:this._onToggleUpdateWorkflow},W("calcite-icon",{icon:"cursor",slot:"content-start"}))))}_renderCreateActions(){const{_featureTemplates:e,headingLevel:t,messages:s}=this;return W("div",{key:"create-actions"},W(y,{level:b(t)},s.createFeatures),W("div",{key:"templates",class:P.featureTemplatesContainer},e.render()))}_renderFeatureList(e){const{EditorPanel:t,_onBack:s,headingLevel:a,messages:o,messagesTemplates:n,viewModel:{activeWorkflow:r,editableItems:l}}=this;if("update"!==r?.type)return null;const c=r.data.candidates,d=E(o.multipleFeaturesTemplate,{total:c.length}),p=new Map;let m=0;c.map((e=>({label:this._getLabel(e),id:e.attributes[e.layer.objectIdField],data:e}))).filter((e=>{const{label:t,data:s}=e,i=this._filterText.toLowerCase(),{title:a}=s.layer,o=l.find((e=>e.layer===s.layer));if(!o)return null;const{attachmentsOnUpdateEnabled:n,supports:r}=o;return(r.includes("update")||r.includes("delete")||n)&&(!i||t?.toLowerCase().includes(i)||a?.toLowerCase().includes(i))})).filter(i).forEach((e=>{m++;const t=e.data.layer;p.has(t)?p.get(t)?.items.push(e):p.set(t,{id:`${t.id}`,label:t.title??"",items:[e]})}));const h=l.toArray().map((({layer:e})=>p.get(e))).filter(i),u=m>10||this._filterText.length>0;return W(t,{active:this._isPanelActive(e),key:"feature-list",heading:d,headingLevel:a,handleBack:s},W("div",{class:P.panelContent},W("div",{class:P.panelContentSection},k({id:this.id,enableListScroll:!1,filterEnabled:u,filterText:this._filterText,items:h,messages:{filterPlaceholder:n.filterPlaceholder,noItems:n.noItems,noMatches:n.noMatches},onItemMouseEnter:e=>this.viewModel.selectFeature(e.data),onItemMouseLeave:()=>this.viewModel.selectFeature(null),onItemSelect:e=>this.viewModel.selectFeature(e.data,!0),onFilterChange:e=>this._filterText=e}))))}_isPanelActive(e){return this.viewModel.state===e}_renderSettings(){const e=this.visibleElements,t=e.snappingControls,s=e.sketchTooltipControls;return t||s?W("calcite-accordion",{class:P.settingsContainer,appearance:"transparent"},W("calcite-accordion-item",{heading:this.messagesCommon?.settings,iconStart:"gear"},s&&W(T,{tooltipOptions:this.tooltipOptions}),t&&W(A,{snappingOptions:this.snappingOptions,view:this.view,visibleElements:e.snappingControlsElements,afterCreate:e=>e.layerListOpen=!1}))):null}_getLabel(e){const t=e.layer;if(!t)return null;const{objectIdField:s}=t,{attributes:i}=e,a=m(t);return a&&i[a]&&`${i[a]}`||E(this.messages.untitledFeatureTemplate,{id:i[s]})}_onSave(){this.viewModel.save()}_onDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}}async _onToggleUpdateWorkflow(){const{viewModel:e}=this;e.canUpdate&&(e.activeWorkflow&&"awaiting-feature-to-update"===e.state?await e.cancelWorkflow():await e.startUpdateWorkflowAtFeatureSelection())}async _onBack(e){return e?.stopPropagation(),this.viewModel.back()}_onAttachmentAdd(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.previous()):this._attachments.addAttachment().then((()=>e.previous())))}_onAttachmentUpdate(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.previous()):this._attachments.updateAttachment().then((()=>e.previous())))}_onAttachmentDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}}};e([c()],O.prototype,"_featureForm",void 0),e([c()],O.prototype,"_attachments",void 0),e([c()],O.prototype,"_featureTemplates",void 0),e([c()],O.prototype,"_filterText",void 0),e([c()],O.prototype,"_prompt",void 0),e([c()],O.prototype,"_spinner",void 0),e([c()],O.prototype,"_deleteButtonCommonInfo",null),e([c({readOnly:!0})],O.prototype,"activeWorkflow",null),e([c()],O.prototype,"allowedWorkflows",null),e([c()],O.prototype,"useDeprecatedCreateWorkflow",void 0),e([c()],O.prototype,"headingLevel",void 0),e([c()],O.prototype,"iconClass",void 0),e([c()],O.prototype,"label",null),e([c()],O.prototype,"labelOptions",null),e([c()],O.prototype,"layerInfos",null),e([c(),C("esri/widgets/Editor/t9n/Editor")],O.prototype,"messages",void 0),e([c(),C("esri/t9n/common")],O.prototype,"messagesCommon",void 0),e([c(),C("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],O.prototype,"messagesTemplates",void 0),e([c()],O.prototype,"snappingOptions",null),e([c()],O.prototype,"tooltipOptions",null),e([c()],O.prototype,"supportingWidgetDefaults",void 0),e([c()],O.prototype,"view",null),e([c(),F(["workflow-cancel","workflow-commit"])],O.prototype,"viewModel",void 0),e([c()],O.prototype,"visibleElements",void 0),e([d("visibleElements")],O.prototype,"castVisibleElements",null),e([M()],O.prototype,"_onSave",null),e([M()],O.prototype,"_onDelete",null),e([M()],O.prototype,"_onToggleUpdateWorkflow",null),e([M()],O.prototype,"_onBack",null),e([M()],O.prototype,"_onAttachmentAdd",null),e([M()],O.prototype,"_onAttachmentUpdate",null),e([M()],O.prototype,"_onAttachmentDelete",null),O=e([p(I)],O);const D=O;export{D as default};