@arcgis/core 5.0.0-next.41 → 5.0.0-next.43

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 (122) hide show
  1. package/arcade/featureset/sources/FeatureLayerOGC.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/00ff4ca88c9d291d82c3.js +1 -0
  4. package/assets/esri/core/workers/chunks/04a0685ee53ef74883aa.js +1 -0
  5. package/assets/esri/core/workers/chunks/{c320a29df40e85fb4a8e.js → 15a0750c10b510564a42.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{816227de5bd42b437df4.js → 233f9eb617f3d72995b5.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{fb9643b74cf35221ff98.js → 249504f7d356be80d214.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{9d95f38da21f97214f83.js → 324d66962aeec17d3e28.js} +10 -10
  9. package/assets/esri/core/workers/chunks/385cfd3087f00dbd1146.js +1 -0
  10. package/assets/esri/core/workers/chunks/{4f4d51181ae7db9fbe6d.js → 4404b6f931f681cca342.js} +1 -1
  11. package/assets/esri/core/workers/chunks/555a0ea44ba77819d493.js +1 -0
  12. package/assets/esri/core/workers/chunks/6e8925412fb90f88d688.js +1 -0
  13. package/assets/esri/core/workers/chunks/83da9ee6544ee9d3c124.js +1 -0
  14. package/assets/esri/core/workers/chunks/{da517b4b07d4d27ce94c.js → 8e26831f71634288f834.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{c367c7e553be3682f2db.js → 93c5f097bb7b380bb175.js} +1 -1
  16. package/assets/esri/core/workers/chunks/9c7682b300b877f60095.js +1 -0
  17. package/assets/esri/core/workers/chunks/{f3b3b193959db809c8c6.js → ab520fd1ae917daf07d8.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{2c9865e34f32fb5683e5.js → af8d6e6949930d0e6c7b.js} +1 -1
  19. package/assets/esri/core/workers/chunks/c9942ca57f542582ab4d.js +1 -0
  20. package/assets/esri/core/workers/chunks/d5fd6d0eaf96edfab123.js +1 -0
  21. package/assets/esri/core/workers/chunks/da2ba40bc017bff0fe49.js +1 -0
  22. package/assets/esri/core/workers/chunks/e5a6a646f27715152714.js +1 -0
  23. package/assets/esri/core/workers/chunks/e8a9971c8354569cb81d.js +1 -0
  24. package/assets/esri/core/workers/chunks/ed550bf27f2bbf8d30fa.js +1 -0
  25. package/assets/esri/core/workers/chunks/ee186ddbb1eb5144a790.js +1 -0
  26. package/assets/esri/core/workers/chunks/{1357cc637524cd254974.js → ffcdc7ae03b0570e0db8.js} +1 -1
  27. package/assets/esri/themes/base/widgets/_Attribution.scss +1 -1
  28. package/assets/esri/themes/dark/main.css +1 -1
  29. package/assets/esri/themes/light/main.css +1 -1
  30. package/assets/esri/themes/light/view.css +1 -1
  31. package/config.js +1 -1
  32. package/core/PooledArray.js +1 -1
  33. package/geometry/FlatGeometry.js +1 -1
  34. package/geometry/support/MeshMaterialMetallicRoughness.js +1 -1
  35. package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
  36. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  37. package/interfaces.d.ts +31 -35
  38. package/kernel.js +1 -1
  39. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  40. package/layers/graphics/sources/support/clientSideDefaults.js +1 -1
  41. package/package.json +1 -1
  42. package/support/revision.js +1 -1
  43. package/symbols/LabelSymbol3D.js +1 -1
  44. package/symbols/MeshSymbol3D.js +1 -1
  45. package/views/2d/ViewStateManager.js +1 -1
  46. package/views/2d/engine/webgl/cpuMapped/MappedMesh.js +1 -1
  47. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  48. package/views/2d/engine/webgl/textureUtils.js +1 -1
  49. package/views/2d/layers/CatalogDynamicGroupLayerView2D.js +1 -1
  50. package/views/2d/layers/CatalogFootprintLayerView2D.js +1 -1
  51. package/views/2d/layers/CatalogLayerView2D.js +1 -1
  52. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  53. package/views/2d/layers/MediaLayerView2D.js +1 -1
  54. package/views/2d/layers/TileLayerView2D.js +1 -1
  55. package/views/3d/glTF/LoaderResult.js +1 -1
  56. package/views/3d/glTF/internal/Resource.js +1 -1
  57. package/views/3d/glTF/loader.js +1 -1
  58. package/views/3d/layers/CatalogDynamicGroupLayerView3D.js +1 -1
  59. package/views/3d/layers/CatalogFootprintLayerView3D.js +1 -1
  60. package/views/3d/layers/CatalogLayerView3D.js +1 -1
  61. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  62. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  63. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  64. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  65. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  66. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  67. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  68. package/views/3d/layers/i3s/I3SGraphicsMap.js +1 -1
  69. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  70. package/views/3d/support/buffer/glUtil.js +1 -1
  71. package/views/3d/support/gaussianSplatting/GaussianSplatFadeTexture.js +1 -1
  72. package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
  73. package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
  74. package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +1 -1
  75. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBuffer.glsl.js +10 -10
  76. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  77. package/views/3d/webgl-engine/lib/edgeRendering/edgeProcessing.js +1 -1
  78. package/views/3d/webgl-engine/materials/DefaultLayouts.js +1 -1
  79. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  80. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  81. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  82. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +9 -9
  83. package/views/SceneView.js +1 -1
  84. package/views/VideoView.js +1 -1
  85. package/views/View2D.js +1 -1
  86. package/views/layers/BuildingComponentSublayerView.js +1 -1
  87. package/views/layers/CatalogDynamicGroupLayerView.js +1 -1
  88. package/views/layers/CatalogFootprintLayerView.js +1 -1
  89. package/views/layers/CatalogLayerView.js +1 -1
  90. package/views/layers/FeatureLayerView.js +1 -1
  91. package/views/layers/HighlightLayerViewMixin.d.ts +2 -2
  92. package/views/layers/HighlightLayerViewMixin.js +5 -0
  93. package/views/layers/ImageryTileLayerView.js +1 -1
  94. package/views/layers/ImageryTileLayerViewMixin.js +5 -0
  95. package/views/layers/OGCFeatureLayerView.js +1 -1
  96. package/views/layers/SceneLayerView.js +1 -1
  97. package/views/layers/StreamLayerView.js +1 -1
  98. package/views/webgl/ShaderBuilder.js +1 -1
  99. package/views/webgl/Util.js +1 -1
  100. package/views/webgl/VertexElementDescriptor.js +1 -1
  101. package/webscene/support/SlideEnvironment.js +1 -1
  102. package/widgets/AreaMeasurement2D.js +1 -1
  103. package/widgets/AreaMeasurement3D.js +1 -1
  104. package/widgets/Attachments.js +1 -1
  105. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  106. package/widgets/BasemapGallery.js +1 -1
  107. package/widgets/Editor.js +1 -1
  108. package/widgets/VersionManagement/VersionManagementViewModel.js +1 -1
  109. package/assets/esri/core/workers/chunks/0a5427127634738aa239.js +0 -1
  110. package/assets/esri/core/workers/chunks/110429583b28c28c36ee.js +0 -1
  111. package/assets/esri/core/workers/chunks/145c6a7cdcc9893efb27.js +0 -1
  112. package/assets/esri/core/workers/chunks/1bacdd17e199e22b5cd1.js +0 -1
  113. package/assets/esri/core/workers/chunks/1d566539ff6fb6ac798c.js +0 -1
  114. package/assets/esri/core/workers/chunks/5dc0d853c21ccb6054c7.js +0 -1
  115. package/assets/esri/core/workers/chunks/613cbac9cb925cd20b48.js +0 -1
  116. package/assets/esri/core/workers/chunks/800c91302eaad7f00877.js +0 -1
  117. package/assets/esri/core/workers/chunks/926c2a0e21b7aa1a86e4.js +0 -1
  118. package/assets/esri/core/workers/chunks/c4de24582c29fda5a033.js +0 -1
  119. package/assets/esri/core/workers/chunks/d786b17cc9062b1450ac.js +0 -1
  120. package/assets/esri/core/workers/chunks/d9958654c6438f28237b.js +0 -1
  121. package/assets/esri/core/workers/chunks/e6fa6f9c278589c8a713.js +0 -1
  122. package/assets/esri/core/workers/chunks/e7f4d135ef9665de1468.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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";import"../../core/has.js";import t from"../../core/Logger.js";const r=()=>t.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class n{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class s extends n{constructor(){super(...arguments),this.vertex=new u,this.fragment=new u,this.attributes=new c,this.varyings=new h,this.outputs=new m}get fragmentUniforms(){return this.fragment.uniforms.entries}get attributeNames(){return this.attributes.names}get builder(){return this}generate(e,t=!1){const r=this.attributes.generateSource(e),n=this.varyings.generateSource(e),s="vertex"===e?this.vertex:this.fragment,i=s.uniforms.generateSource(),a=s.code.generateSource(),o=s.main.generateSource(t),u=this.debugName?`// ${this.debugName}\n`:"",c="vertex"===e?_:d,h=s.constants.generateSource(),m=this.outputs.generateSource(e);return`#version 300 es\n${u}\n${c}\n${h.join("\n")}\n${i.join("\n")}\n${r.join("\n")}\n${n.join("\n")}\n${m.join("\n")}\n${a.join("\n")}\n${o.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return t=>{for(let s=0;s<n;++s)r[s](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return(t,s)=>{for(let i=0;i<n;++i)r[i](e,t,s)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return(t,s,i)=>{for(let a=0;a<n;++a)r[a](e,i,t,s)}}}class i{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(t){if(null!=t){if(this._entries.has(t.name)&&!this._entries.get(t.name).equals(t))throw new e("shaderbuilder:duplicate-uniform",`Duplicate uniform name ${t.name} for different uniform type`);this._entries.set(t.name,t)}else r().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map(({name:e,arraySize:t,type:r})=>null!=t?`uniform ${r} ${e}[${t}];`:`uniform ${r} ${e};`)}get entries(){return Array.from(this._entries.values())}}class a{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(t){if(this._bodies.length>0)return[`void main() {\n ${this._bodies.join("\n")||""} \n}`];if(t)throw new e("shaderbuilder:missing-main","Shader does not contain main function body.");return[]}}class o{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){return this._entries}}class u extends n{constructor(){super(...arguments),this.uniforms=new i(this),this.main=new a(this),this.code=new o(this),this.constants=new l(this)}get builder(){return this}}class c{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map(e=>`in ${e[1]} ${e[0]};`)}get names(){return this._entries.map(([e])=>e)}}class h{constructor(){this._entries=new Map}add(e,t,n){this._entries.has(e)?r().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:n?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach((r,n)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("int"===r.type?"flat ":"")+("vertex"===e?"out":"in")+` ${r.type} ${n};`)),t}}class m{constructor(){this._entries=new Map}add(e,t,n=0){const s=this._entries.get(n);s?.name!==e||s?.type!==t?this._entries.set(n,{name:e,type:t}):r().warn(`Fragment shader output location ${n} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:m.DEFAULT_NAME,type:m.DEFAULT_TYPE});const t=new Array;return this._entries.forEach((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`)),t}}class l{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let n="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":n=l._numberToFloatStr(r);break;case"int":n=l._numberToIntStr(r);break;case"bool":n=r.toString();break;case"vec2":n=`vec2(${l._numberToFloatStr(r[0])}, ${l._numberToFloatStr(r[1])})`;break;case"vec3":n=`vec3(${l._numberToFloatStr(r[0])}, ${l._numberToFloatStr(r[1])}, ${l._numberToFloatStr(r[2])})`;break;case"vec4":n=`vec4(${l._numberToFloatStr(r[0])}, ${l._numberToFloatStr(r[1])}, ${l._numberToFloatStr(r[2])}, ${l._numberToFloatStr(r[3])})`;break;case"ivec2":n=`ivec2(${l._numberToIntStr(r[0])}, ${l._numberToIntStr(r[1])})`;break;case"ivec3":n=`ivec3(${l._numberToIntStr(r[0])}, ${l._numberToIntStr(r[1])}, ${l._numberToIntStr(r[2])})`;break;case"ivec4":n=`ivec4(${l._numberToIntStr(r[0])}, ${l._numberToIntStr(r[1])}, ${l._numberToIntStr(r[2])}, ${l._numberToIntStr(r[3])})`;break;case"uvec2":n=`uvec2(${l._numberToIntStr(r[0])}, ${l._numberToIntStr(r[1])})`;break;case"uvec3":n=`uvec3(${l._numberToIntStr(r[0])}, ${l._numberToIntStr(r[1])}, ${l._numberToIntStr(r[2])})`;break;case"uvec4":n=`uvec4(${l._numberToIntStr(r[0])}, ${l._numberToIntStr(r[1])}, ${l._numberToIntStr(r[2])}, ${l._numberToIntStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":n=`${t}(${Array.prototype.map.call(r,e=>l._numberToFloatStr(e)).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${n};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const d="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n precision mediump sampler2DShadow;\n#endif",_="precision highp float;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n\n\n invariant gl_Position;\n ";export{o as Code,n as Includes,a as Main,s as ShaderBuilder,u as Stage,i as Uniforms};
5
+ import e from"../../core/Error.js";import"../../core/has.js";import t from"../../core/Logger.js";const r=()=>t.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class n{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class s extends n{constructor(){super(...arguments),this.vertex=new u,this.fragment=new u,this.attributes=new c,this.varyings=new h,this.outputs=new m}get fragmentUniforms(){return this.fragment.uniforms.entries}get attributeNames(){return this.attributes.names}get builder(){return this}generate(e,t=!1){const r=this.attributes.generateSource(e),n=this.varyings.generateSource(e),s="vertex"===e?this.vertex:this.fragment,i=s.uniforms.generateSource(),a=s.code.generateSource(),o=s.main.generateSource(t),u=this.debugName?`// ${this.debugName}\n`:"",c="vertex"===e?_:l,h=s.constants.generateSource(),m=this.outputs.generateSource(e);return`#version 300 es\n${u}\n${c}\n${h.join("\n")}\n${i.join("\n")}\n${r.join("\n")}\n${n.join("\n")}\n${m.join("\n")}\n${a.join("\n")}\n${o.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return t=>{for(let s=0;s<n;++s)r[s](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return(t,s)=>{for(let i=0;i<n;++i)r[i](e,t,s)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return(t,s,i)=>{for(let a=0;a<n;++a)r[a](e,i,t,s)}}}class i{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(t){if(null!=t){if(this._entries.has(t.name)&&!this._entries.get(t.name).equals(t))throw new e("shaderbuilder:duplicate-uniform",`Duplicate uniform name ${t.name} for different uniform type`);this._entries.set(t.name,t)}else r().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map(({name:e,arraySize:t,type:r})=>null!=t?`uniform ${r} ${e}[${t}];`:`uniform ${r} ${e};`)}get entries(){return Array.from(this._entries.values())}}class a{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(t){if(this._bodies.length>0)return[`void main() {\n ${this._bodies.join("\n")||""} \n}`];if(t)throw new e("shaderbuilder:missing-main","Shader does not contain main function body.");return[]}}class o{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){return this._entries}}class u extends n{constructor(){super(...arguments),this.uniforms=new i(this),this.main=new a(this),this.code=new o(this),this.constants=new d(this)}get builder(){return this}}class c{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map(e=>`in ${e[1]} ${e[0]};`)}get names(){return this._entries.map(([e])=>e)}}class h{constructor(){this._entries=new Map}add(e,t,n){this._entries.has(e)?r().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:n?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach((r,n)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("int"===r.type?"flat ":"")+("vertex"===e?"out":"in")+` ${r.type} ${n};`)),t}}class m{constructor(){this._entries=new Map}add(e,t,n=0){const s=this._entries.get(n);s?.name!==e||s?.type!==t?this._entries.set(n,{name:e,type:t}):r().warn(`Fragment shader output location ${n} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:m.DEFAULT_NAME,type:m.DEFAULT_TYPE});const t=new Array;return this._entries.forEach((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`)),t}}class d{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let n="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":n=d._numberToFloatStr(r);break;case"int":n=d._numberToIntStr(r);break;case"uint":n=d._numberToUintStr(r);break;case"bool":n=r.toString();break;case"vec2":n=`vec2(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])})`;break;case"vec3":n=`vec3(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])}, ${d._numberToFloatStr(r[2])})`;break;case"vec4":n=`vec4(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])}, ${d._numberToFloatStr(r[2])}, ${d._numberToFloatStr(r[3])})`;break;case"ivec2":n=`ivec2(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])})`;break;case"ivec3":n=`ivec3(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])}, ${d._numberToIntStr(r[2])})`;break;case"ivec4":n=`ivec4(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])}, ${d._numberToIntStr(r[2])}, ${d._numberToIntStr(r[3])})`;break;case"uvec2":n=`uvec2(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])})`;break;case"uvec3":n=`uvec3(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])}, ${d._numberToUintStr(r[2])})`;break;case"uvec4":n=`uvec4(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])}, ${d._numberToUintStr(r[2])}, ${d._numberToUintStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":n=`${t}(${Array.prototype.map.call(r,e=>d._numberToFloatStr(e)).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${n};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToUintStr(e){return`${e.toFixed(0)}u`}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const l="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n precision mediump sampler2DShadow;\n#endif",_="precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n\n\n invariant gl_Position;\n ";export{o as Code,n as Includes,a as Main,s as ShaderBuilder,u as Stage,i as Uniforms};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../core/has.js";import{webglDebugEnabled as e,getErrorMessage as s}from"./checkWebGLError.js";import{CompressedTextureFormat as c,SizedPixelFormat as a,SizedDepthStencilFormat as r,SizedDepthFormat as t}from"./enums.js";function R(c,a,r,t=0){const R=c.gl;c.bindBuffer(r);for(const n of r.layout){const r=a.get(n.name);if(null==r){console.warn(`There is no location for vertex attribute '${n.name}' defined.`);continue}const _=t*n.stride;if(n.count<=4)R.vertexAttribPointer(r,n.count,n.type,n.normalized,n.stride,n.offset+_),R.enableVertexAttribArray(r),n.divisor>0&&R.vertexAttribDivisor(r,n.divisor);else if(9===n.count)for(let e=0;e<3;e++)R.vertexAttribPointer(r+e,3,n.type,n.normalized,n.stride,n.offset+12*e+_),R.enableVertexAttribArray(r+e),n.divisor>0&&R.vertexAttribDivisor(r+e,n.divisor);else if(16===n.count)for(let e=0;e<4;e++)R.vertexAttribPointer(r+e,4,n.type,n.normalized,n.stride,n.offset+16*e+_),R.enableVertexAttribArray(r+e),n.divisor>0&&R.vertexAttribDivisor(r+e,n.divisor);else console.error("Unsupported vertex attribute element count: "+n.count);if(e()){const e=s(c.gl);e&&console.error(`Unable to bind vertex attribute "${n.name}" with baseInstanceOffset ${_}:`,e,n)}}}function n(e){switch(e){case 6406:case 6409:case 6403:case 36244:case 6402:case 34041:return 1;case 6410:case 33319:case 33320:return 2;case 6407:case 36248:return 3;case 6408:case 36249:return 4}return 0}function _(e){switch(e){case 6406:case 6409:case 6403:case 36244:case a.R8:case a.R8I:case a.R8UI:case a.R8_SNORM:case 36168:return 1;case 6410:case 33319:case 33320:case a.RGBA4:case a.R16F:case a.R16I:case a.R16UI:case a.RG8:case a.RG8I:case a.RG8UI:case a.RG8_SNORM:case a.RGB565:case a.RGB5_A1:case t.DEPTH_COMPONENT16:return 2;case 6407:case 36248:case a.RGB8:case a.RGB8I:case a.RGB8UI:case a.RGB8_SNORM:case a.SRGB8:case t.DEPTH_COMPONENT24:return 3;case 6408:case 36249:case a.RGBA8:case a.R32F:case a.R11F_G11F_B10F:case a.RG16F:case a.R32I:case a.R32UI:case a.RG16I:case a.RG16UI:case a.RGBA8I:case a.RGBA8UI:case a.RGBA8_SNORM:case a.SRGB8_ALPHA8:case a.RGB9_E5:case a.RGB10_A2UI:case a.RGB10_A2:case t.DEPTH_COMPONENT32F:case r.DEPTH24_STENCIL8:return 4;case r.DEPTH32F_STENCIL8:return 5;case a.RGB16F:case a.RGB16I:case a.RGB16UI:return 6;case a.RG32F:case a.RG32I:case a.RG32UI:case a.RGBA16F:case a.RGBA16I:case a.RGBA16UI:return 8;case a.RGB32F:case a.RGB32I:case a.RGB32UI:return 12;case a.RGBA32F:case a.RGBA32I:case a.RGBA32UI:return 16;case c.COMPRESSED_RGB_S3TC_DXT1_EXT:case c.COMPRESSED_RGBA_S3TC_DXT1_EXT:return.5;case c.COMPRESSED_RGBA_S3TC_DXT3_EXT:case c.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case c.COMPRESSED_R11_EAC:case c.COMPRESSED_SIGNED_R11_EAC:case c.COMPRESSED_RGB8_ETC2:case c.COMPRESSED_SRGB8_ETC2:case c.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case c.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return.5;case c.COMPRESSED_RG11_EAC:case c.COMPRESSED_SIGNED_RG11_EAC:case c.COMPRESSED_RGBA8_ETC2_EAC:case c.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}export{R as bindVertexBufferLayout,_ as getFormatBytesPerElement,n as getFormatComponents};
5
+ import"../../core/has.js";import{webglDebugEnabled as e,getErrorMessage as s}from"./checkWebGLError.js";import{CompressedTextureFormat as c,SizedPixelFormat as a,SizedDepthStencilFormat as r,SizedDepthFormat as t,DataType as R}from"./enums.js";const n=new Set([R.BYTE,R.SHORT,R.INT,R.UNSIGNED_BYTE,R.UNSIGNED_SHORT,R.UNSIGNED_INT]);function i(c,a,r,t=0){const R=c.gl;c.bindBuffer(r);for(const i of r.layout){const r=a.get(i.name);if(null==r){console.warn(`There is no location for vertex attribute '${i.name}' defined.`);continue}const o=t*i.stride;if(i.count<=4)i.integer&&n.has(i.type)?R.vertexAttribIPointer(r,i.count,i.type,i.stride,i.offset+o):R.vertexAttribPointer(r,i.count,i.type,i.normalized,i.stride,i.offset+o),R.enableVertexAttribArray(r),i.divisor>0&&R.vertexAttribDivisor(r,i.divisor);else if(9===i.count)for(let e=0;e<3;e++)R.vertexAttribPointer(r+e,3,i.type,i.normalized,i.stride,i.offset+12*e+o),R.enableVertexAttribArray(r+e),i.divisor>0&&R.vertexAttribDivisor(r+e,i.divisor);else if(16===i.count)for(let e=0;e<4;e++)R.vertexAttribPointer(r+e,4,i.type,i.normalized,i.stride,i.offset+16*e+o),R.enableVertexAttribArray(r+e),i.divisor>0&&R.vertexAttribDivisor(r+e,i.divisor);else console.error("Unsupported vertex attribute element count: "+i.count);if(e()){const e=s(c.gl);e&&console.error(`Unable to bind vertex attribute "${i.name}" with baseInstanceOffset ${o}:`,e,i)}}}function o(e){switch(e){case 6406:case 6409:case 6403:case 36244:case 6402:case 34041:return 1;case 6410:case 33319:case 33320:return 2;case 6407:case 36248:return 3;case 6408:case 36249:return 4}return 0}function _(e){switch(e){case 6406:case 6409:case 6403:case 36244:case a.R8:case a.R8I:case a.R8UI:case a.R8_SNORM:case 36168:return 1;case 6410:case 33319:case 33320:case a.RGBA4:case a.R16F:case a.R16I:case a.R16UI:case a.RG8:case a.RG8I:case a.RG8UI:case a.RG8_SNORM:case a.RGB565:case a.RGB5_A1:case t.DEPTH_COMPONENT16:return 2;case 6407:case 36248:case a.RGB8:case a.RGB8I:case a.RGB8UI:case a.RGB8_SNORM:case a.SRGB8:case t.DEPTH_COMPONENT24:return 3;case 6408:case 36249:case a.RGBA8:case a.R32F:case a.R11F_G11F_B10F:case a.RG16F:case a.R32I:case a.R32UI:case a.RG16I:case a.RG16UI:case a.RGBA8I:case a.RGBA8UI:case a.RGBA8_SNORM:case a.SRGB8_ALPHA8:case a.RGB9_E5:case a.RGB10_A2UI:case a.RGB10_A2:case t.DEPTH_COMPONENT32F:case r.DEPTH24_STENCIL8:return 4;case r.DEPTH32F_STENCIL8:return 5;case a.RGB16F:case a.RGB16I:case a.RGB16UI:return 6;case a.RG32F:case a.RG32I:case a.RG32UI:case a.RGBA16F:case a.RGBA16I:case a.RGBA16UI:return 8;case a.RGB32F:case a.RGB32I:case a.RGB32UI:return 12;case a.RGBA32F:case a.RGBA32I:case a.RGBA32UI:return 16;case c.COMPRESSED_RGB_S3TC_DXT1_EXT:case c.COMPRESSED_RGBA_S3TC_DXT1_EXT:return.5;case c.COMPRESSED_RGBA_S3TC_DXT3_EXT:case c.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case c.COMPRESSED_R11_EAC:case c.COMPRESSED_SIGNED_R11_EAC:case c.COMPRESSED_RGB8_ETC2:case c.COMPRESSED_SRGB8_ETC2:case c.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case c.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return.5;case c.COMPRESSED_RG11_EAC:case c.COMPRESSED_SIGNED_RG11_EAC:case c.COMPRESSED_RGBA8_ETC2_EAC:case c.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}export{i as bindVertexBufferLayout,_ as getFormatBytesPerElement,o as getFormatComponents};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- class t{constructor(t,s,i,h,o,e=!1,r=0){this.name=t,this.count=s,this.type=i,this.offset=h,this.stride=o,this.normalized=e,this.divisor=r}}export{t as VertexElementDescriptor};
5
+ class t{constructor(t,s,i,e,h,o=!1,r=0,n=!1){this.name=t,this.count=s,this.type=i,this.offset=e,this.stride=h,this.normalized=o,this.divisor=r,this.integer=n}}export{t as VertexElementDescriptor};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as r}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as o}from"../../core/JSONSupport.js";import{property as t,subclass as i}from"../../core/accessorSupport/decorators.js";import s from"../../views/3d/environment/SunnyWeather.js";import{weatherTypes as n}from"../../views/3d/environment/weather.js";import{lightingTypes as p}from"../lightingTypes.js";import m from"../SunLighting.js";let c=class extends(e(o)){constructor(){super(...arguments),this.lighting=new m,this.weather=new s}};r([t({types:p,json:{write:!0}})],c.prototype,"lighting",void 0),r([t({types:n,json:{write:!0}})],c.prototype,"weather",void 0),c=r([i("esri.webscene.support.SlideEnvironment")],c);export{c as SlideEnvironment};
5
+ import{__decorate as e}from"tslib";import{ClonableMixin as r}from"../../core/Clonable.js";import{JSONSupport as o}from"../../core/JSONSupport.js";import{property as t,subclass as i}from"../../core/accessorSupport/decorators.js";import s from"../../views/3d/environment/SunnyWeather.js";import{weatherTypes as n}from"../../views/3d/environment/weather.js";import{lightingTypes as p}from"../lightingTypes.js";import m from"../SunLighting.js";let l=class extends(r(o)){constructor(){super(...arguments),this.lighting=new m,this.weather=new s}};e([t({types:{...p,defaultKeyValue:"sun"},json:{write:!0}})],l.prototype,"lighting",void 0),e([t({types:n,json:{write:!0}})],l.prototype,"weather",void 0),l=e([i("esri.webscene.support.SlideEnvironment")],l);export{l as SlideEnvironment};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s,subclass as i}from"../core/accessorSupport/decorators.js";import o from"./Widget.js";import n from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{globalCss as r}from"./support/globalCss.js";import{MeasurementWidgetContent as a}from"./support/MeasurementWidgetContent.js";import{messageBundle as l,tsx as p}from"./support/widget.js";const u="esri-area-measurement-2d",m={base:u,newMeasurementButton:`${u}__clear-button`};let v=class extends o{constructor(e,t){super(e,t),this.messages=null,this.messagesUnits=null,this.messagesCommon=null,this.viewModel=new n}get active(){return this.viewModel.active}get icon(){return"measure-area"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}render(){const{messages:e,messagesCommon:s,messagesUnits:i,unit:o,unitOptions:n,viewModel:l,visible:u}=this,{active:v,measurementLabel:d,state:g,supported:w}=l;return p("div",{"aria-label":e.widgetLabel,class:this.classes(m.base,r.widget,r.panel),key:this,role:"region"},u?p(a,{active:v,measurementItems:[{key:"area",title:i?.measures.area,value:d?.area},{key:"perimeter",title:e.perimeter,value:d?.perimeter}],messages:{...e,notApplicable:s.notApplicable},newMeasurementButtonClass:m.newMeasurementButton,state:g,supported:w,unit:o,unitOptions:n,onNewMeasurementClick:()=>{t(l.start())},onUnitChange:e=>{this.unit=e}}):null)}};e([s({readOnly:!0})],v.prototype,"active",null),e([s()],v.prototype,"icon",null),e([s()],v.prototype,"label",null),e([s(),l("esri/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D")],v.prototype,"messages",void 0),e([s(),l("esri/core/t9n/Units")],v.prototype,"messagesUnits",void 0),e([s(),l("esri/t9n/common")],v.prototype,"messagesCommon",void 0),e([s()],v.prototype,"snappingOptions",null),e([s()],v.prototype,"uiStrings",void 0),e([s()],v.prototype,"unit",null),e([s()],v.prototype,"unitOptions",null),e([s()],v.prototype,"view",null),e([s({type:n})],v.prototype,"viewModel",void 0),e([s({type:Boolean})],v.prototype,"visible",null),v=e([i("esri.widgets.AreaMeasurement2D")],v);const d=v;export{d as default};
5
+ import{__decorate as e}from"tslib";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s,subclass as i}from"../core/accessorSupport/decorators.js";import o from"../views/interactive/snapping/SnappingOptions.js";import n from"./Widget.js";import r from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{globalCss as p}from"./support/globalCss.js";import{MeasurementWidgetContent as a}from"./support/MeasurementWidgetContent.js";import{messageBundle as l,tsx as u}from"./support/widget.js";const m="esri-area-measurement-2d",v={base:m,newMeasurementButton:`${m}__clear-button`};let d=class extends n{constructor(e,t){super(e,t),this.messages=null,this.messagesUnits=null,this.messagesCommon=null,this.viewModel=new r}get active(){return this.viewModel.active}get icon(){return"measure-area"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}render(){const{messages:e,messagesCommon:s,messagesUnits:i,unit:o,unitOptions:n,viewModel:r,visible:l}=this,{active:m,measurementLabel:d,state:g,supported:w}=r;return u("div",{"aria-label":e.widgetLabel,class:this.classes(v.base,p.widget,p.panel),key:this,role:"region"},l?u(a,{active:m,measurementItems:[{key:"area",title:i?.measures.area,value:d?.area},{key:"perimeter",title:e.perimeter,value:d?.perimeter}],messages:{...e,notApplicable:s.notApplicable},newMeasurementButtonClass:v.newMeasurementButton,state:g,supported:w,unit:o,unitOptions:n,onNewMeasurementClick:()=>{t(r.start())},onUnitChange:e=>{this.unit=e}}):null)}};e([s({readOnly:!0})],d.prototype,"active",null),e([s()],d.prototype,"icon",null),e([s()],d.prototype,"label",null),e([s(),l("esri/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D")],d.prototype,"messages",void 0),e([s(),l("esri/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([s(),l("esri/t9n/common")],d.prototype,"messagesCommon",void 0),e([s({type:o})],d.prototype,"snappingOptions",null),e([s()],d.prototype,"uiStrings",void 0),e([s()],d.prototype,"unit",null),e([s()],d.prototype,"unitOptions",null),e([s()],d.prototype,"view",null),e([s({type:r})],d.prototype,"viewModel",void 0),e([s({type:Boolean})],d.prototype,"visible",null),d=e([i("esri.widgets.AreaMeasurement2D")],d);const g=d;export{g 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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{deprecateWidget as t}from"../core/deprecate.js";import s from"../core/Logger.js";import{ignoreAbortErrors as i}from"../core/promiseUtils.js";import{property as o,subclass as r}from"../core/accessorSupport/decorators.js";import n from"./Widget.js";import a from"./AreaMeasurement3D/AreaMeasurement3DViewModel.js";import{globalCss as l}from"./support/globalCss.js";import{MeasurementWidgetContent as u}from"./support/MeasurementWidgetContent.js";import{messageBundle as p,tsx as m}from"./support/widget.js";const d="esri-area-measurement-3d",v={base:d,newMeasurementButton:`${d}__clear-button`};let g=class extends n{constructor(e,i){super(e,i),this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.viewModel=new a({isDefaultViewModel:!0}),t(s.getLogger(this),"Area Measurement 3D","arcgis-area-measurement-3d",{version:"4.33"})}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get icon(){return"measure-area"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}render(){const{messages:e,messagesCommon:t,messagesUnits:s,unit:o,unitOptions:r,viewModel:n}=this,{active:a,measurement:p,state:d,supported:g}=n;return m("div",{"aria-label":this.messages.widgetLabel,class:this.classes(v.base,l.widget,l.panel),key:this,role:"presentation"},this.visible?m(u,{active:a,measurementItems:[{key:"direct",title:s.measures.area,value:c(p?.area)},{key:"perimeter",title:e.perimeterLength,value:c(p?.perimeterLength)}],messages:{...e,notApplicable:t.notApplicable},newMeasurementButtonClass:v.newMeasurementButton,state:d,supported:g,unit:o,unitOptions:r,onNewMeasurementClick:()=>{i(this.viewModel.start())},onUnitChange:e=>{this.unit=e}}):null)}};function c(e){return"available"===e?.state?e.text:null}e([o()],g.prototype,"view",null),e([o()],g.prototype,"visible",null),e([o()],g.prototype,"active",null),e([o({nonNullable:!0})],g.prototype,"analysis",null),e([o()],g.prototype,"icon",null),e([o()],g.prototype,"label",null),e([o(),p("esri/widgets/AreaMeasurement3D/t9n/AreaMeasurement3D")],g.prototype,"messages",void 0),e([o(),p("esri/t9n/common")],g.prototype,"messagesCommon",void 0),e([o(),p("esri/core/t9n/Units")],g.prototype,"messagesUnits",void 0),e([o()],g.prototype,"uiStrings",void 0),e([o({type:a})],g.prototype,"viewModel",void 0),e([o()],g.prototype,"unitOptions",null),e([o()],g.prototype,"unit",null),g=e([r("esri.widgets.AreaMeasurement3D")],g);const w=g;export{w as default};
5
+ import{__decorate as e}from"tslib";import t from"../analysis/AreaMeasurementAnalysis.js";import{deprecateWidget as s}from"../core/deprecate.js";import i from"../core/Logger.js";import{ignoreAbortErrors as r}from"../core/promiseUtils.js";import{property as o,subclass as n}from"../core/accessorSupport/decorators.js";import a from"./Widget.js";import l from"./AreaMeasurement3D/AreaMeasurement3DViewModel.js";import{globalCss as u}from"./support/globalCss.js";import{MeasurementWidgetContent as m}from"./support/MeasurementWidgetContent.js";import{messageBundle as p,tsx as d}from"./support/widget.js";const v="esri-area-measurement-3d",g={base:v,newMeasurementButton:`${v}__clear-button`};let c=class extends a{constructor(e,t){super(e,t),this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.viewModel=new l({isDefaultViewModel:!0}),s(i.getLogger(this),"Area Measurement 3D","arcgis-area-measurement-3d",{version:"4.33"})}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get icon(){return"measure-area"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}render(){const{messages:e,messagesCommon:t,messagesUnits:s,unit:i,unitOptions:o,viewModel:n}=this,{active:a,measurement:l,state:p,supported:v}=n;return d("div",{"aria-label":this.messages.widgetLabel,class:this.classes(g.base,u.widget,u.panel),key:this,role:"presentation"},this.visible?d(m,{active:a,measurementItems:[{key:"direct",title:s.measures.area,value:w(l?.area)},{key:"perimeter",title:e.perimeterLength,value:w(l?.perimeterLength)}],messages:{...e,notApplicable:t.notApplicable},newMeasurementButtonClass:g.newMeasurementButton,state:p,supported:v,unit:i,unitOptions:o,onNewMeasurementClick:()=>{r(this.viewModel.start())},onUnitChange:e=>{this.unit=e}}):null)}};function w(e){return"available"===e?.state?e.text:null}e([o()],c.prototype,"view",null),e([o()],c.prototype,"visible",null),e([o()],c.prototype,"active",null),e([o({type:t,nonNullable:!0})],c.prototype,"analysis",null),e([o()],c.prototype,"icon",null),e([o()],c.prototype,"label",null),e([o(),p("esri/widgets/AreaMeasurement3D/t9n/AreaMeasurement3D")],c.prototype,"messages",void 0),e([o(),p("esri/t9n/common")],c.prototype,"messagesCommon",void 0),e([o(),p("esri/core/t9n/Units")],c.prototype,"messagesUnits",void 0),e([o()],c.prototype,"uiStrings",void 0),e([o({type:l})],c.prototype,"viewModel",void 0),e([o()],c.prototype,"unitOptions",null),e([o()],c.prototype,"unit",null),c=e([n("esri.widgets.AreaMeasurement3D")],c);const h=c;export{h 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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../core/Error.js";import{on as s,watch as i,initial as a}from"../core/reactiveUtils.js";import{formatFileSize as n}from"../core/unitFormatUtils.js";import{property as l,cast as r,subclass as o}from"../core/accessorSupport/decorators.js";import d from"./Widget.js";import m from"./Attachments/AttachmentsViewModel.js";import{getIconPath as c,isSupportedImage as h}from"./Attachments/support/attachmentUtils.js";import{loadCalciteComponents as u}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{tsx as _,isRTL as g,messageBundle as v}from"./support/widget.js";import{discardNode as f,storeNode as y}from"./support/widgetUtils.js";const w={addButton:!0,addSubmitButton:!0,cancelAddButton:!0,cancelUpdateButton:!0,deleteButton:!0,errorMessage:!0,progressBar:!0,updateButton:!0},A="esri-attachments",M={base:A,loaderContainer:`${A}__loader-container`,loader:`${A}__loader`,container:`${A}__container`,containerList:`${A}__container--list`,containerPreview:`${A}__container--preview`,actions:`${A}__actions`,deleteButton:`${A}__delete-button`,addAttachmentButton:`${A}__add-attachment-button`,errorMessage:`${A}__error-message`,items:`${A}__items`,item:`${A}__item`,itemButton:`${A}__item-button`,itemMask:`${A}__item-mask`,itemMaskIcon:`${A}__item-mask--icon`,itemImage:`${A}__image`,itemImageResizable:`${A}__image--resizable`,itemLabel:`${A}__label`,itemFilename:`${A}__filename`,itemChevronIcon:`${A}__item-chevron-icon`,itemLink:`${A}__item-link`,itemLinkOverlay:`${A}__item-link-overlay`,itemLinkOverlayIcon:`${A}__item-link-overlay-icon`,itemAddIcon:`${A}__item-add-icon`,formNode:`${A}__form-node`,fileFieldset:`${A}__file-fieldset`,fileLabel:`${A}__file-label`,fileName:`${A}__file-name`,fileInput:`${A}__file-input`,metadata:`${A}__metadata`,metadataFieldset:`${A}__metadata-fieldset`,progressBar:`${A}__progress-bar`},F=window.CSS;let k=class extends d{constructor(e,t){super(e,t),this.displayType="auto",this.messages=null,this.messagesUnits=null,this.selectedFile=null,this.submitting=!1,this.viewModel=null,this.visibleElements={...w},this._supportsImageOrientation=F&&F.supports&&F.supports("image-orientation","from-image"),this._addAttachmentForm=null,this._updateAttachmentForm=null}normalizeCtorArgs(e){return e?.viewModel||(e={viewModel:new m,...e}),e}initialize(){this.addHandles([s(()=>this.viewModel?.attachmentInfos,"change",()=>this.scheduleRender()),s(()=>this.viewModel?.fileInfos,"change",()=>this.scheduleRender()),i(()=>this.viewModel?.mode,()=>this._modeChanged(),a)])}loadDependencies(){return u({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon")})}get capabilities(){return this.viewModel.capabilities}set capabilities(e){this.viewModel.capabilities=e}get effectiveDisplayType(){const{displayType:e}=this;return e&&"auto"!==e?e:this.viewModel.supportsResizeAttachments?"preview":"list"}get attachmentKeywords(){return this.viewModel.attachmentKeywords}set attachmentKeywords(e){this.viewModel.attachmentKeywords=e}get attachmentTypes(){return this.viewModel.attachmentTypes}set attachmentTypes(e){this.viewModel.attachmentTypes=e}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get icon(){return"attachment"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}castVisibleElements(e){return{...w,...e}}addAttachment(){const{_addAttachmentForm:e,viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.addAttachment(e).then(e=>(this._set("submitting",!1),this._set("error",null),s.mode="view",e)).catch(e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:add-attachment",this.messages.addErrorMessage,e)),e})}deleteAttachment(e){const{viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.deleteAttachment(e).then(e=>(this._set("submitting",!1),this._set("error",null),s.mode="view",e)).catch(e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:delete-attachment",this.messages.deleteErrorMessage,e)),e})}updateAttachment(){const{viewModel:e}=this,{_updateAttachmentForm:s}=this;return this._set("submitting",!0),this._set("error",null),e.updateAttachment(s).then(t=>(this._set("submitting",!1),this._set("error",null),e.mode="view",t)).catch(e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:update-attachment",this.messages.updateErrorMessage,e)),e})}addFile(){const e=this.viewModel.addFile(this.selectedFile,this._addAttachmentForm);return this.viewModel.mode="view",e}updateFile(){const{viewModel:e}=this,t=e.updateFile(this.selectedFile,this._updateAttachmentForm,e.activeFileInfo);return e.mode="view",t}deleteFile(e){const t=this.viewModel.deleteFile(e||this.viewModel.activeFileInfo?.file);return this.viewModel.mode="view",t}render(){const{submitting:e,viewModel:t}=this,{state:s}=t;return _("div",{class:this.classes(M.base,p.widget)},e?this._renderProgressBar():null,"loading"===s?this._renderLoading():this._renderAttachments(),this._renderErrorMessage())}_renderErrorMessage(){const{error:e,visibleElements:t}=this;return e&&t.errorMessage?_("div",{class:M.errorMessage,key:"error-message"},e.message):null}_renderAttachments(){const{activeFileInfo:e,mode:t,activeAttachmentInfo:s}=this.viewModel;return"add"===t?this._renderAddForm():"edit"===t?this._renderDetailsForm(s||e):this._renderAttachmentContainer()}_renderLoading(){return _("div",{class:M.loaderContainer,key:"loader"},_("div",{class:M.loader}))}_renderProgressBar(){return this.visibleElements.progressBar?_("div",{class:M.progressBar,key:"progress-bar"}):null}_renderAddForm(){const{submitting:e,selectedFile:t}=this,s=e||!t,i=this.visibleElements.cancelAddButton?_("button",{bind:this,class:this.classes(p.button,p.buttonTertiary,p.buttonSmall,p.buttonHalf,e&&p.buttonDisabled),disabled:e,onclick:this._cancelForm,type:"button"},this.messages.cancel):null,a=this.visibleElements.addSubmitButton?_("button",{class:this.classes(p.button,p.buttonSecondary,p.buttonSmall,p.buttonHalf,{[p.buttonDisabled]:s}),disabled:s,type:"submit"},this.messages.add):null,n=t?_("span",{class:M.fileName,key:"file-name"},t.name):null,l=_("form",{afterCreate:y,afterRemoved:f,bind:this,"data-node-ref":"_addAttachmentForm",onsubmit:this._submitAddAttachment},_("fieldset",{class:M.fileFieldset},n,_("label",{class:this.classes(M.fileLabel,p.button,p.buttonSecondary)},t?this.messages.changeFile:this.messages.selectFile,_("input",{bind:this,class:M.fileInput,name:"attachment",onchange:this._handleFileInputChange,type:"file"}))),a,i);return _("div",{class:M.formNode,key:"add-form-container"},l)}_renderDetailsForm(e){const{visibleElements:t,viewModel:s,selectedFile:i,submitting:a}=this,{capabilities:l}=s,r=a||!i;let o,d,m,c;i?(o=i.type,d=i.name,m=i.size):e&&"file"in e?(o=e.file.type,d=e.file.name,m=e.file.size):e&&"contentType"in e&&(o=e.contentType,d=e.name,m=e.size,c=e.url);const h=l.editing&&l.operations?.delete&&t.deleteButton?_("button",{bind:this,class:this.classes(p.button,p.buttonSmall,p.buttonTertiary,M.deleteButton,{[p.buttonDisabled]:a}),disabled:a,key:"delete-button",onclick:t=>this._submitDeleteAttachment(t,e),type:"button"},this.messages.delete):void 0,u=l.editing&&l.operations?.update&&t.updateButton?_("button",{class:this.classes(p.button,p.buttonSmall,p.buttonThird,{[p.buttonDisabled]:r}),disabled:r,key:"update-button",type:"submit"},this.messages.update):void 0,b=this.visibleElements.cancelUpdateButton?_("button",{bind:this,class:this.classes(p.button,p.buttonSmall,p.buttonTertiary,p.buttonThird,{[p.buttonDisabled]:a}),disabled:a,key:"cancel-button",onclick:this._cancelForm,type:"button"},this.messages.cancel):void 0,g=l.editing&&l.operations?.update?_("fieldset",{class:M.fileFieldset,key:"file"},_("span",{class:M.fileName,key:"file-name"},d),_("label",{class:this.classes(M.fileLabel,p.button,p.buttonSecondary)},this.messages.changeFile,_("input",{bind:this,class:M.fileInput,name:"attachment",onchange:this._handleFileInputChange,type:"file"}))):void 0,v=_("fieldset",{class:M.metadataFieldset,key:"size"},_("label",null,n(this.messagesUnits,m??0))),w=_("fieldset",{class:M.metadataFieldset,key:"content-type"},_("label",null,o)),A=null!=c?_("a",{class:M.itemLink,href:c,rel:"noreferrer",target:"_blank"},this._renderImageMask(e,400),_("div",{class:M.itemLinkOverlay},_("span",{class:M.itemLinkOverlayIcon},_("calcite-icon",{icon:"launch"})))):this._renderImageMask(e,400),F=_("form",{afterCreate:y,afterRemoved:f,bind:this,"data-node-ref":"_updateAttachmentForm",onsubmit:t=>this._submitUpdateAttachment(t,e)},_("div",{class:M.metadata},v,w),g,_("div",{class:M.actions},h,b,u));return _("div",{class:M.formNode,key:"edit-form-container"},A,F)}_renderImageMask(e,t){return e?"file"in e?this._renderGenericImageMask(e.file.name,e.file.type):this._renderImageMaskForAttachment(e,t):null}_renderGenericImageMask(e,t){const{supportsResizeAttachments:s}=this.viewModel,i=c(t),a={[M.itemImageResizable]:s};return _("div",{class:this.classes(M.itemMaskIcon,M.itemMask),key:i},_("img",{alt:e,class:this.classes(a,M.itemImage),src:i,title:e}))}_renderImageMaskForAttachment(e,t){const{supportsResizeAttachments:s}=this.viewModel;if(!e)return null;const{contentType:i,name:a,size:n,url:l}=e;if(!s||!h(i))return this._renderGenericImageMask(a,i);const r=this._getCSSTransform(e),o=r?{transform:r,"image-orientation":"none"}:{},d=`${l}${l?.includes("?")?"&":"?"}w=${t}&s=${n}`,m={[M.itemImageResizable]:s};return _("div",{class:this.classes(M.itemMask),key:d},_("img",{alt:a,class:this.classes(m,M.itemImage),src:d,styles:o,title:a}))}_renderFile(e){const{file:t}=e;return _("li",{class:M.item,key:t},_("button",{"aria-label":this.messages.attachmentDetails,bind:this,class:M.itemButton,key:"details-button",onclick:()=>this._startEditFile(e),title:this.messages.attachmentDetails,type:"button"},this._renderImageMask(e),_("label",{class:M.itemLabel},_("span",{class:M.itemFilename},t.name||this.messages.noTitle),_("span",{"aria-hidden":"true",class:this.classes(M.itemChevronIcon,g(this.container)?b.left:b.right)}))))}_renderAttachmentInfo({attachmentInfo:e,displayType:t}){const{viewModel:s,effectiveDisplayType:i}=this,{capabilities:a,supportsResizeAttachments:n}=s,{contentType:l,name:r,url:o}=e,d=this._renderImageMask(e,"list"===t?48:400),m=a.editing?_("span",{"aria-hidden":"true",class:this.classes(M.itemChevronIcon,g(this.container)?b.left:b.right)}):null,c=[d,"preview"===i&&n&&h(l)?null:_("label",{class:M.itemLabel},_("span",{class:M.itemFilename},r||this.messages.noTitle),m)],u=a.editing?_("button",{"aria-label":this.messages.attachmentDetails,bind:this,class:M.itemButton,"data-attachment-info-id":e.id,key:"details-button",onclick:()=>this._startEditAttachment(e),title:this.messages.attachmentDetails,type:"button"},c):_("a",{class:M.itemButton,href:o??void 0,key:"details-link",rel:"noreferrer",target:"_blank"},c);return _("li",{class:M.item,key:e},u)}_renderAttachmentContainer(){const{effectiveDisplayType:e,viewModel:t,visibleElements:s}=this,{attachmentInfos:i,capabilities:a,fileInfos:n}=t,l=!!i?.length,r=!!n?.length,o={[M.containerList]:"preview"!==e,[M.containerPreview]:"preview"===e},d=a.editing&&a.operations?.add&&s.addButton?_("button",{bind:this,class:this.classes(p.button,p.buttonTertiary,M.addAttachmentButton),onclick:()=>this._startAddAttachment(),type:"button"},_("span",{"aria-hidden":"true",class:this.classes(M.itemAddIcon,b.plus)}),this.messages.add):void 0,m=l?_("ul",{class:M.items,key:"attachments-list"},i.toArray().map(t=>this._renderAttachmentInfo({attachmentInfo:t,displayType:e}))):void 0,c=r?_("ul",{class:M.items,key:"file-list"},n.toArray().map(e=>this._renderFile(e))):void 0,h=r||l?void 0:_("div",{class:p.empty},this.messages.noAttachments);return _("div",{class:this.classes(M.container,o),key:"attachments-container"},m,c,h,d)}_modeChanged(){this._set("error",null),this._set("selectedFile",null)}_handleFileInputChange(e){const t=e.target,s=t.files?.item(0);this._set("selectedFile",s)}_submitDeleteAttachment(e,t){e.preventDefault(),t&&("file"in t?this.deleteFile(t.file):t&&this.deleteAttachment(t))}_submitAddAttachment(e){e.preventDefault(),this.viewModel.filesEnabled?this.addFile():this.addAttachment()}_submitUpdateAttachment(e,t){e.preventDefault(),t&&"file"in t?this.updateFile():this.updateAttachment()}_startEditAttachment(e){const{viewModel:t}=this;t.activeFileInfo=null,t.activeAttachmentInfo=e,t.mode="edit"}_startEditFile(e){const{viewModel:t}=this;t.activeAttachmentInfo=null,t.activeFileInfo=e,t.mode="edit"}_startAddAttachment(){this.viewModel.mode="add"}_cancelForm(e){e.preventDefault(),this.viewModel.mode="view"}_getCSSTransform(e){const{orientationInfo:t}=e;return!this._supportsImageOrientation&&t?[t.rotation?`rotate(${t.rotation}deg)`:"",t.mirrored?"scaleX(-1)":""].join(" "):""}};e([l()],k.prototype,"capabilities",null),e([l()],k.prototype,"displayType",void 0),e([l({readOnly:!0})],k.prototype,"effectiveDisplayType",null),e([l()],k.prototype,"attachmentKeywords",null),e([l()],k.prototype,"attachmentTypes",null),e([l()],k.prototype,"graphic",null),e([l()],k.prototype,"icon",null),e([l()],k.prototype,"label",null),e([l(),v("esri/widgets/Attachments/t9n/Attachments")],k.prototype,"messages",void 0),e([l(),v("esri/core/t9n/Units")],k.prototype,"messagesUnits",void 0),e([l({readOnly:!0})],k.prototype,"selectedFile",void 0),e([l({readOnly:!0})],k.prototype,"submitting",void 0),e([l({readOnly:!0})],k.prototype,"error",void 0),e([l({type:m})],k.prototype,"viewModel",void 0),e([l()],k.prototype,"visibleElements",void 0),e([r("visibleElements")],k.prototype,"castVisibleElements",null),k=e([o("esri.widgets.Attachments")],k);export{k as default};
5
+ import{__decorate as e}from"tslib";import t from"../Graphic.js";import s from"../core/Error.js";import{on as i,watch as a,initial as n}from"../core/reactiveUtils.js";import{formatFileSize as l}from"../core/unitFormatUtils.js";import{property as r,cast as o,subclass as d}from"../core/accessorSupport/decorators.js";import m from"./Widget.js";import c from"./Attachments/AttachmentsViewModel.js";import{getIconPath as h,isSupportedImage as u}from"./Attachments/support/attachmentUtils.js";import{loadCalciteComponents as p}from"./support/componentsUtils.js";import{globalCss as b}from"./support/globalCss.js";import{legacyIcon as _}from"./support/legacyIcon.js";import{tsx as g,isRTL as v,messageBundle as f}from"./support/widget.js";import{discardNode as y,storeNode as w}from"./support/widgetUtils.js";const A={addButton:!0,addSubmitButton:!0,cancelAddButton:!0,cancelUpdateButton:!0,deleteButton:!0,errorMessage:!0,progressBar:!0,updateButton:!0},M="esri-attachments",F={base:M,loaderContainer:`${M}__loader-container`,loader:`${M}__loader`,container:`${M}__container`,containerList:`${M}__container--list`,containerPreview:`${M}__container--preview`,actions:`${M}__actions`,deleteButton:`${M}__delete-button`,addAttachmentButton:`${M}__add-attachment-button`,errorMessage:`${M}__error-message`,items:`${M}__items`,item:`${M}__item`,itemButton:`${M}__item-button`,itemMask:`${M}__item-mask`,itemMaskIcon:`${M}__item-mask--icon`,itemImage:`${M}__image`,itemImageResizable:`${M}__image--resizable`,itemLabel:`${M}__label`,itemFilename:`${M}__filename`,itemChevronIcon:`${M}__item-chevron-icon`,itemLink:`${M}__item-link`,itemLinkOverlay:`${M}__item-link-overlay`,itemLinkOverlayIcon:`${M}__item-link-overlay-icon`,itemAddIcon:`${M}__item-add-icon`,formNode:`${M}__form-node`,fileFieldset:`${M}__file-fieldset`,fileLabel:`${M}__file-label`,fileName:`${M}__file-name`,fileInput:`${M}__file-input`,metadata:`${M}__metadata`,metadataFieldset:`${M}__metadata-fieldset`,progressBar:`${M}__progress-bar`},k=window.CSS;let I=class extends m{constructor(e,t){super(e,t),this.displayType="auto",this.messages=null,this.messagesUnits=null,this.selectedFile=null,this.submitting=!1,this.viewModel=null,this.visibleElements={...A},this._supportsImageOrientation=k&&k.supports&&k.supports("image-orientation","from-image"),this._addAttachmentForm=null,this._updateAttachmentForm=null}normalizeCtorArgs(e){return e?.viewModel||(e={viewModel:new c,...e}),e}initialize(){this.addHandles([i(()=>this.viewModel?.attachmentInfos,"change",()=>this.scheduleRender()),i(()=>this.viewModel?.fileInfos,"change",()=>this.scheduleRender()),a(()=>this.viewModel?.mode,()=>this._modeChanged(),n)])}loadDependencies(){return p({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon")})}get capabilities(){return this.viewModel.capabilities}set capabilities(e){this.viewModel.capabilities=e}get effectiveDisplayType(){const{displayType:e}=this;return e&&"auto"!==e?e:this.viewModel.supportsResizeAttachments?"preview":"list"}get attachmentKeywords(){return this.viewModel.attachmentKeywords}set attachmentKeywords(e){this.viewModel.attachmentKeywords=e}get attachmentTypes(){return this.viewModel.attachmentTypes}set attachmentTypes(e){this.viewModel.attachmentTypes=e}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get icon(){return"attachment"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}castVisibleElements(e){return{...A,...e}}addAttachment(){const{_addAttachmentForm:e,viewModel:t}=this;return this._set("submitting",!0),this._set("error",null),t.addAttachment(e).then(e=>(this._set("submitting",!1),this._set("error",null),t.mode="view",e)).catch(e=>{throw this._set("submitting",!1),this._set("error",new s("attachments:add-attachment",this.messages.addErrorMessage,e)),e})}deleteAttachment(e){const{viewModel:t}=this;return this._set("submitting",!0),this._set("error",null),t.deleteAttachment(e).then(e=>(this._set("submitting",!1),this._set("error",null),t.mode="view",e)).catch(e=>{throw this._set("submitting",!1),this._set("error",new s("attachments:delete-attachment",this.messages.deleteErrorMessage,e)),e})}updateAttachment(){const{viewModel:e}=this,{_updateAttachmentForm:t}=this;return this._set("submitting",!0),this._set("error",null),e.updateAttachment(t).then(t=>(this._set("submitting",!1),this._set("error",null),e.mode="view",t)).catch(e=>{throw this._set("submitting",!1),this._set("error",new s("attachments:update-attachment",this.messages.updateErrorMessage,e)),e})}addFile(){const e=this.viewModel.addFile(this.selectedFile,this._addAttachmentForm);return this.viewModel.mode="view",e}updateFile(){const{viewModel:e}=this,t=e.updateFile(this.selectedFile,this._updateAttachmentForm,e.activeFileInfo);return e.mode="view",t}deleteFile(e){const t=this.viewModel.deleteFile(e||this.viewModel.activeFileInfo?.file);return this.viewModel.mode="view",t}render(){const{submitting:e,viewModel:t}=this,{state:s}=t;return g("div",{class:this.classes(F.base,b.widget)},e?this._renderProgressBar():null,"loading"===s?this._renderLoading():this._renderAttachments(),this._renderErrorMessage())}_renderErrorMessage(){const{error:e,visibleElements:t}=this;return e&&t.errorMessage?g("div",{class:F.errorMessage,key:"error-message"},e.message):null}_renderAttachments(){const{activeFileInfo:e,mode:t,activeAttachmentInfo:s}=this.viewModel;return"add"===t?this._renderAddForm():"edit"===t?this._renderDetailsForm(s||e):this._renderAttachmentContainer()}_renderLoading(){return g("div",{class:F.loaderContainer,key:"loader"},g("div",{class:F.loader}))}_renderProgressBar(){return this.visibleElements.progressBar?g("div",{class:F.progressBar,key:"progress-bar"}):null}_renderAddForm(){const{submitting:e,selectedFile:t}=this,s=e||!t,i=this.visibleElements.cancelAddButton?g("button",{bind:this,class:this.classes(b.button,b.buttonTertiary,b.buttonSmall,b.buttonHalf,e&&b.buttonDisabled),disabled:e,onclick:this._cancelForm,type:"button"},this.messages.cancel):null,a=this.visibleElements.addSubmitButton?g("button",{class:this.classes(b.button,b.buttonSecondary,b.buttonSmall,b.buttonHalf,{[b.buttonDisabled]:s}),disabled:s,type:"submit"},this.messages.add):null,n=t?g("span",{class:F.fileName,key:"file-name"},t.name):null,l=g("form",{afterCreate:w,afterRemoved:y,bind:this,"data-node-ref":"_addAttachmentForm",onsubmit:this._submitAddAttachment},g("fieldset",{class:F.fileFieldset},n,g("label",{class:this.classes(F.fileLabel,b.button,b.buttonSecondary)},t?this.messages.changeFile:this.messages.selectFile,g("input",{bind:this,class:F.fileInput,name:"attachment",onchange:this._handleFileInputChange,type:"file"}))),a,i);return g("div",{class:F.formNode,key:"add-form-container"},l)}_renderDetailsForm(e){const{visibleElements:t,viewModel:s,selectedFile:i,submitting:a}=this,{capabilities:n}=s,r=a||!i;let o,d,m,c;i?(o=i.type,d=i.name,m=i.size):e&&"file"in e?(o=e.file.type,d=e.file.name,m=e.file.size):e&&"contentType"in e&&(o=e.contentType,d=e.name,m=e.size,c=e.url);const h=n.editing&&n.operations?.delete&&t.deleteButton?g("button",{bind:this,class:this.classes(b.button,b.buttonSmall,b.buttonTertiary,F.deleteButton,{[b.buttonDisabled]:a}),disabled:a,key:"delete-button",onclick:t=>this._submitDeleteAttachment(t,e),type:"button"},this.messages.delete):void 0,u=n.editing&&n.operations?.update&&t.updateButton?g("button",{class:this.classes(b.button,b.buttonSmall,b.buttonThird,{[b.buttonDisabled]:r}),disabled:r,key:"update-button",type:"submit"},this.messages.update):void 0,p=this.visibleElements.cancelUpdateButton?g("button",{bind:this,class:this.classes(b.button,b.buttonSmall,b.buttonTertiary,b.buttonThird,{[b.buttonDisabled]:a}),disabled:a,key:"cancel-button",onclick:this._cancelForm,type:"button"},this.messages.cancel):void 0,_=n.editing&&n.operations?.update?g("fieldset",{class:F.fileFieldset,key:"file"},g("span",{class:F.fileName,key:"file-name"},d),g("label",{class:this.classes(F.fileLabel,b.button,b.buttonSecondary)},this.messages.changeFile,g("input",{bind:this,class:F.fileInput,name:"attachment",onchange:this._handleFileInputChange,type:"file"}))):void 0,v=g("fieldset",{class:F.metadataFieldset,key:"size"},g("label",null,l(this.messagesUnits,m??0))),f=g("fieldset",{class:F.metadataFieldset,key:"content-type"},g("label",null,o)),A=null!=c?g("a",{class:F.itemLink,href:c,rel:"noreferrer",target:"_blank"},this._renderImageMask(e,400),g("div",{class:F.itemLinkOverlay},g("span",{class:F.itemLinkOverlayIcon},g("calcite-icon",{icon:"launch"})))):this._renderImageMask(e,400),M=g("form",{afterCreate:w,afterRemoved:y,bind:this,"data-node-ref":"_updateAttachmentForm",onsubmit:t=>this._submitUpdateAttachment(t,e)},g("div",{class:F.metadata},v,f),_,g("div",{class:F.actions},h,p,u));return g("div",{class:F.formNode,key:"edit-form-container"},A,M)}_renderImageMask(e,t){return e?"file"in e?this._renderGenericImageMask(e.file.name,e.file.type):this._renderImageMaskForAttachment(e,t):null}_renderGenericImageMask(e,t){const{supportsResizeAttachments:s}=this.viewModel,i=h(t),a={[F.itemImageResizable]:s};return g("div",{class:this.classes(F.itemMaskIcon,F.itemMask),key:i},g("img",{alt:e,class:this.classes(a,F.itemImage),src:i,title:e}))}_renderImageMaskForAttachment(e,t){const{supportsResizeAttachments:s}=this.viewModel;if(!e)return null;const{contentType:i,name:a,size:n,url:l}=e;if(!s||!u(i))return this._renderGenericImageMask(a,i);const r=this._getCSSTransform(e),o=r?{transform:r,"image-orientation":"none"}:{},d=`${l}${l?.includes("?")?"&":"?"}w=${t}&s=${n}`,m={[F.itemImageResizable]:s};return g("div",{class:this.classes(F.itemMask),key:d},g("img",{alt:a,class:this.classes(m,F.itemImage),src:d,styles:o,title:a}))}_renderFile(e){const{file:t}=e;return g("li",{class:F.item,key:t},g("button",{"aria-label":this.messages.attachmentDetails,bind:this,class:F.itemButton,key:"details-button",onclick:()=>this._startEditFile(e),title:this.messages.attachmentDetails,type:"button"},this._renderImageMask(e),g("label",{class:F.itemLabel},g("span",{class:F.itemFilename},t.name||this.messages.noTitle),g("span",{"aria-hidden":"true",class:this.classes(F.itemChevronIcon,v(this.container)?_.left:_.right)}))))}_renderAttachmentInfo({attachmentInfo:e,displayType:t}){const{viewModel:s,effectiveDisplayType:i}=this,{capabilities:a,supportsResizeAttachments:n}=s,{contentType:l,name:r,url:o}=e,d=this._renderImageMask(e,"list"===t?48:400),m=a.editing?g("span",{"aria-hidden":"true",class:this.classes(F.itemChevronIcon,v(this.container)?_.left:_.right)}):null,c=[d,"preview"===i&&n&&u(l)?null:g("label",{class:F.itemLabel},g("span",{class:F.itemFilename},r||this.messages.noTitle),m)],h=a.editing?g("button",{"aria-label":this.messages.attachmentDetails,bind:this,class:F.itemButton,"data-attachment-info-id":e.id,key:"details-button",onclick:()=>this._startEditAttachment(e),title:this.messages.attachmentDetails,type:"button"},c):g("a",{class:F.itemButton,href:o??void 0,key:"details-link",rel:"noreferrer",target:"_blank"},c);return g("li",{class:F.item,key:e},h)}_renderAttachmentContainer(){const{effectiveDisplayType:e,viewModel:t,visibleElements:s}=this,{attachmentInfos:i,capabilities:a,fileInfos:n}=t,l=!!i?.length,r=!!n?.length,o={[F.containerList]:"preview"!==e,[F.containerPreview]:"preview"===e},d=a.editing&&a.operations?.add&&s.addButton?g("button",{bind:this,class:this.classes(b.button,b.buttonTertiary,F.addAttachmentButton),onclick:()=>this._startAddAttachment(),type:"button"},g("span",{"aria-hidden":"true",class:this.classes(F.itemAddIcon,_.plus)}),this.messages.add):void 0,m=l?g("ul",{class:F.items,key:"attachments-list"},i.toArray().map(t=>this._renderAttachmentInfo({attachmentInfo:t,displayType:e}))):void 0,c=r?g("ul",{class:F.items,key:"file-list"},n.toArray().map(e=>this._renderFile(e))):void 0,h=r||l?void 0:g("div",{class:b.empty},this.messages.noAttachments);return g("div",{class:this.classes(F.container,o),key:"attachments-container"},m,c,h,d)}_modeChanged(){this._set("error",null),this._set("selectedFile",null)}_handleFileInputChange(e){const t=e.target,s=t.files?.item(0);this._set("selectedFile",s)}_submitDeleteAttachment(e,t){e.preventDefault(),t&&("file"in t?this.deleteFile(t.file):t&&this.deleteAttachment(t))}_submitAddAttachment(e){e.preventDefault(),this.viewModel.filesEnabled?this.addFile():this.addAttachment()}_submitUpdateAttachment(e,t){e.preventDefault(),t&&"file"in t?this.updateFile():this.updateAttachment()}_startEditAttachment(e){const{viewModel:t}=this;t.activeFileInfo=null,t.activeAttachmentInfo=e,t.mode="edit"}_startEditFile(e){const{viewModel:t}=this;t.activeAttachmentInfo=null,t.activeFileInfo=e,t.mode="edit"}_startAddAttachment(){this.viewModel.mode="add"}_cancelForm(e){e.preventDefault(),this.viewModel.mode="view"}_getCSSTransform(e){const{orientationInfo:t}=e;return!this._supportsImageOrientation&&t?[t.rotation?`rotate(${t.rotation}deg)`:"",t.mirrored?"scaleX(-1)":""].join(" "):""}};e([r()],I.prototype,"capabilities",null),e([r()],I.prototype,"displayType",void 0),e([r({readOnly:!0})],I.prototype,"effectiveDisplayType",null),e([r()],I.prototype,"attachmentKeywords",null),e([r()],I.prototype,"attachmentTypes",null),e([r({type:t})],I.prototype,"graphic",null),e([r()],I.prototype,"icon",null),e([r()],I.prototype,"label",null),e([r(),f("esri/widgets/Attachments/t9n/Attachments")],I.prototype,"messages",void 0),e([r(),f("esri/core/t9n/Units")],I.prototype,"messagesUnits",void 0),e([r({readOnly:!0})],I.prototype,"selectedFile",void 0),e([r({readOnly:!0})],I.prototype,"submitting",void 0),e([r({readOnly:!0})],I.prototype,"error",void 0),e([r({type:c})],I.prototype,"viewModel",void 0),e([r()],I.prototype,"visibleElements",void 0),e([o("visibleElements")],I.prototype,"castVisibleElements",null),I=e([d("esri.widgets.Attachments")],I);export{I 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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import{Loadable as i,isLoadable as s}from"../../core/Loadable.js";import{watch as a,on as r,when as o}from"../../core/reactiveUtils.js";import{property as n,cast as p,subclass as c}from"../../core/accessorSupport/decorators.js";import{canProjectWithoutEngine as m,isLoaded as l,load as u}from"../../geometry/projectionUtils.js";import{equals as d}from"../../geometry/support/spatialReferenceUtils.js";import{isLinkChartView as h}from"../../linkChart/utils.js";import{basemapEnsureType as y}from"../../support/basemapEnsureType.js";import{contentEquals as f}from"../../support/basemapUtils.js";import{default3DCompatibility as v,default2DCompatibility as b}from"./support/basemapCompatibilityUtils.js";import w from"./support/BasemapGalleryItem.js";import g from"./support/LocalBasemapsSource.js";import B from"./support/PortalBasemapsSource.js";const j=t.ofType(w);function _(e){return e&&"esri.portal.Portal"===e.declaredClass}function I(e){return e&&!(e instanceof B)&&(!!e.portal||!!e.query)}function R(e){return e&&"basemaps"in e&&"state"in e&&"refresh"in e}let E=class extends i{constructor(e){super(e),this._loadingProjectionEngine=!1,this.items=new j,this.source=new B,this.view=null}initialize(){const e=()=>this._recreateItems();this.addHandles([a(()=>"ready"===this.state?this.compatibilityFunction:null,()=>this._updateItems()),r(()=>this.source?.basemaps,"change",e,{onListenerAdd:e}),o(()=>this.view,()=>{this.source instanceof B&&(this.source.viewType=this.view?.type)},{once:!0})])}destroy(){const e=this.source.basemaps.find(e=>e===this.activeBasemap);e&&this.source.basemaps.remove(e),this.source?.destroy()}get activeBasemap(){return this.view?.map?.basemap??null}set activeBasemap(e){const t=this.view;if(!t?.map)return;if(!(e=y(e))||!t.ready)return t.map.basemap=e,void this._clearOverride("activeBasemap");const i=e.spatialReference||this.items?.find(t=>this.basemapEquals(e,t.basemap))?.spatialReference;if(i&&"spatialReferenceLocked"in t&&!t.spatialReferenceLocked){const s=t.spatialReference;if(null!=i&&!d(s,i)&&!m(t.spatialReference,i)&&!l())return this._override("activeBasemap",e),this._loadingProjectionEngine=!0,void u().then(()=>{this._get("activeBasemap")===e&&(t.map.basemap=e,t.spatialReference=i,this._clearOverride("activeBasemap"))},()=>{}).then(()=>{this._loadingProjectionEngine=!1});t.map.basemap=e,this._clearOverride("activeBasemap"),null==i||d(t.spatialReference,i)||(t.spatialReference=i)}else t.map.basemap=e,this._clearOverride("activeBasemap")}get activeBasemapIndex(){const{state:e,activeBasemap:t}=this;return"ready"!==e?-1:this._findBasemapIndex(t)}get compatibilityFunction(){return"3d"===this.view?.type?v:b}set compatibilityFunction(e){this._overrideIfSome("compatibilityFunction",e)}castSource(e){return Array.isArray(e)||t.isCollection(e)?new g({basemaps:Array.isArray(e)?new t(e):e}):_(e)?new B({portal:e}):I(e)?new B(e):R(e)?e:null}get state(){return this.view?.ready&&this.source?h(this.view)&&!this.view.inGeographicLayout?"unsupported":this._loadingProjectionEngine?"loading":"ready":"disabled"}basemapEquals(e,t){return f(e,t)}refresh(){this._recreateItems()}load(){return this.loadSource()}loadSource(e){return this.addResolvingPromise(s(this.source)?this.source.load(e):null),Promise.resolve(this)}_findBasemapIndex(e){const{items:t}=this,i=t.findIndex(t=>t.basemap===e);return-1===i?t.findIndex(t=>this.basemapEquals(t.basemap,e)):i}_recreateItems(){const e=this.source?.basemaps??[],{view:t,compatibilityFunction:i}=this,s=new Map(this.items.map(e=>[e.basemap,e])),a=e.map(e=>{const a=s.get(e);return a?(s.delete(e),a):new w({basemap:e,compatibilityFunction:i,view:t})});this.items.removeAll(),this.items.addMany(a),s.forEach(e=>e.destroy())}_updateItems(){for(const e of this.items)e.compatibilityFunction=this.compatibilityFunction,e.view=this.view}};e([n()],E.prototype,"_loadingProjectionEngine",void 0),e([n()],E.prototype,"activeBasemap",null),e([n({readOnly:!0})],E.prototype,"activeBasemapIndex",null),e([n()],E.prototype,"compatibilityFunction",null),e([n({readOnly:!0,type:j})],E.prototype,"items",void 0),e([n()],E.prototype,"source",void 0),e([p("source")],E.prototype,"castSource",null),e([n({readOnly:!0})],E.prototype,"state",null),e([n()],E.prototype,"view",void 0),E=e([c("esri.widgets.BasemapGallery.BasemapGalleryViewModel")],E);const F=E;export{F as default};
5
+ import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import{Loadable as i,isLoadable as s}from"../../core/Loadable.js";import{watch as a,on as r,when as o}from"../../core/reactiveUtils.js";import{property as n,subclass as p}from"../../core/accessorSupport/decorators.js";import{canProjectWithoutEngine as c,isLoaded as m,load as l}from"../../geometry/projectionUtils.js";import{equals as u}from"../../geometry/support/spatialReferenceUtils.js";import{isLinkChartView as d}from"../../linkChart/utils.js";import{basemapEnsureType as h}from"../../support/basemapEnsureType.js";import{contentEquals as f}from"../../support/basemapUtils.js";import{default3DCompatibility as y,default2DCompatibility as v}from"./support/basemapCompatibilityUtils.js";import b from"./support/BasemapGalleryItem.js";import g from"./support/LocalBasemapsSource.js";import w from"./support/PortalBasemapsSource.js";const _=t.ofType(b);function B(e){return e&&"esri.portal.Portal"===e.declaredClass}function j(e){return e&&!(e instanceof w)&&(!!e.portal||!!e.query)}function I(e){return e&&"basemaps"in e&&"state"in e&&"refresh"in e}let R=class extends i{constructor(e){super(e),this._loadingProjectionEngine=!1,this.items=new _,this.view=null,this.source=new w}initialize(){const e=()=>this._recreateItems();this.addHandles([a(()=>"ready"===this.state?this.compatibilityFunction:null,()=>this._updateItems()),r(()=>this.source?.basemaps,"change",e,{onListenerAdd:e}),o(()=>this.view,()=>{this.source instanceof w&&(this.source.viewType=this.view?.type)},{once:!0})])}destroy(){const e=this.source.basemaps.find(e=>e===this.activeBasemap);e&&this.source.basemaps.remove(e),this.source?.destroy()}get activeBasemap(){return this.view?.map?.basemap??null}set activeBasemap(e){const t=this.view;if(!t?.map)return;if(!(e=h(e))||!t.ready)return t.map.basemap=e,void this._clearOverride("activeBasemap");const i=e.spatialReference||this.items?.find(t=>this.basemapEquals(e,t.basemap))?.spatialReference;if(i&&"spatialReferenceLocked"in t&&!t.spatialReferenceLocked){const s=t.spatialReference;if(null!=i&&!u(s,i)&&!c(t.spatialReference,i)&&!m())return this._override("activeBasemap",e),this._loadingProjectionEngine=!0,void l().then(()=>{this._get("activeBasemap")===e&&(t.map.basemap=e,t.spatialReference=i,this._clearOverride("activeBasemap"))},()=>{}).then(()=>{this._loadingProjectionEngine=!1});t.map.basemap=e,this._clearOverride("activeBasemap"),null==i||u(t.spatialReference,i)||(t.spatialReference=i)}else t.map.basemap=e,this._clearOverride("activeBasemap")}get activeBasemapIndex(){const{state:e,activeBasemap:t}=this;return"ready"!==e?-1:this._findBasemapIndex(t)}get compatibilityFunction(){return"3d"===this.view?.type?y:v}set compatibilityFunction(e){this._overrideIfSome("compatibilityFunction",e)}get source(){return this._get("source")}set source(e){(Array.isArray(e)||t.isCollection(e))&&(e=new g({basemaps:Array.isArray(e)?new t(e):e})),B(e)&&(e=new w({portal:e})),j(e)&&(e=new w(e)),I(e)||(e=null),this._set("source",e)}get state(){return this.view?.ready&&this.source?d(this.view)&&!this.view.inGeographicLayout?"unsupported":this._loadingProjectionEngine?"loading":"ready":"disabled"}basemapEquals(e,t){return f(e,t)}refresh(){this._recreateItems()}load(){return this.loadSource()}loadSource(e){return this.addResolvingPromise(s(this.source)?this.source.load(e):null),Promise.resolve(this)}_findBasemapIndex(e){const{items:t}=this,i=t.findIndex(t=>t.basemap===e);return-1===i?t.findIndex(t=>this.basemapEquals(t.basemap,e)):i}_recreateItems(){const e=this.source?.basemaps??[],{view:t,compatibilityFunction:i}=this,s=new Map(this.items.map(e=>[e.basemap,e])),a=e.map(e=>{const a=s.get(e);return a?(s.delete(e),a):new b({basemap:e,compatibilityFunction:i,view:t})});this.items.removeAll(),this.items.addMany(a),s.forEach(e=>e.destroy())}_updateItems(){for(const e of this.items)e.compatibilityFunction=this.compatibilityFunction,e.view=this.view}};e([n()],R.prototype,"_loadingProjectionEngine",void 0),e([n()],R.prototype,"activeBasemap",null),e([n({readOnly:!0})],R.prototype,"activeBasemapIndex",null),e([n()],R.prototype,"compatibilityFunction",null),e([n({readOnly:!0,type:_})],R.prototype,"items",void 0),e([n()],R.prototype,"source",null),e([n({readOnly:!0})],R.prototype,"state",null),e([n()],R.prototype,"view",void 0),R=e([p("esri.widgets.BasemapGallery.BasemapGalleryViewModel")],R);const E=R;export{E 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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{getAssetUrl as t}from"../assets.js";import{deprecateWidget as s}from"../core/deprecate.js";import a from"../core/Logger.js";import{when as i}from"../core/reactiveUtils.js";import{property as r,subclass as o}from"../core/accessorSupport/decorators.js";import{getBasemapThumbnailUrl as l,isBasemap3D as n,isBasemapInBeta as d}from"../support/basemapUtils.js";import m from"./Widget.js";import p from"./BasemapGallery/BasemapGalleryViewModel.js";import{css as c}from"./BasemapGallery/css.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as u}from"./support/Heading.js";import{messageBundle as v,accessibleHandler as b,tsx as y}from"./support/widget.js";let w=class extends m{constructor(e,t){super(e,t),this.disabled=!1,this.headingLevel=2,this.messages=null,this.viewModel=new p,this._focusBasemapItemEnabled=!1,s(a.getLogger(this),"Basemap Gallery","arcgis-basemap-gallery",{version:"4.32"})}initialize(){this.addHandles(i(()=>this.source,()=>this.viewModel.loadSource(),{sync:!0,initial:!0}))}loadDependencies(){return h({scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip")})}get activeBasemap(){return this.viewModel.activeBasemap}set activeBasemap(e){this.viewModel.activeBasemap=e}get icon(){return"basemap"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get source(){return this.viewModel.source}set source(e){this.viewModel.source=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e="loading"===this.source.state,t=this.disabled||"disabled"===this.viewModel.state,s={[c.sourceLoading]:e,[g.disabled]:t};return y("div",{class:this.classes(c.base,g.widget,g.panel,s),key:"container"},this._getContext())}_getContext(){if("unsupported"===this.viewModel.state)return y("div",{class:g.empty,key:"empty-message"},y(u,{level:this.headingLevel},this.messages.unsupported));if("loading"===this.source.state)return y("div",{class:c.loader,key:"loader"});const e=this.viewModel.items;return e.length>0?y("ul",{"aria-disabled":this.disabled,"aria-label":this.label,bind:this,class:c.itemContainer,key:"item-container",onkeydown:this._handleKeyDown,role:"radiogroup"},e.map((e,t)=>this._renderBasemapGalleryItem(e,t)).toArray()):y("div",{class:g.empty,key:"empty-message"},y(u,{level:this.headingLevel},this.messages.noBasemaps))}_getRoundRobinIndex(e,t){return(e+t)%t}_handleKeyDown(e){const{key:t}=e;if(!["ArrowUp","ArrowDown","ArrowRight","ArrowLeft"].includes(t))return;e.preventDefault();const{items:s,activeBasemapIndex:a}=this.viewModel,i="ArrowUp"===t||"ArrowLeft"===t?this._getRoundRobinIndex(Math.max(a-1,-1),s.length):this._getRoundRobinIndex(a+1,s.length),r=s.at(i);"ready"===r?.state&&(this.viewModel.activeBasemap=r.basemap),this._focusBasemapItemEnabled=!0}_focusBasemapItem(e){this._focusBasemapItemEnabled&&0===e.tabIndex&&(e.focus(),this._focusBasemapItemEnabled=!1)}_handleClick(e){const t=e.currentTarget["data-item"];"ready"===t.state&&(this.viewModel.activeBasemap=t.basemap)}_renderBasemapGalleryItem(e,s){const a=l(e.basemap)||t("esri/themes/base/images/basemap-toggle-64.svg"),i=e.basemap.title,r=e.basemap.portalItem?.snippet,o=e.error?.message||r||i,{viewModel:{state:d,activeBasemapIndex:m}}=this,p=this.disabled||"disabled"===d,h=m===s,u=h||-1===m&&0===s?0:-1,v="loading"===d,b={[c.selectedItem]:h,[c.itemError]:"error"===e.state},w=`basemapgallery-item-${e.uid}`;return y("li",{afterUpdate:this._focusBasemapItem,"aria-checked":h.toString(),"aria-disabled":p.toString(),"aria-labelledby":w,bind:this,class:this.classes(c.item,b),"data-item":e,key:e.uid,onclick:this._handleClick,onkeydown:this._handleClick,role:"radio",tabIndex:u,title:o},y("img",{alt:"",class:c.itemThumbnail,src:a}),y("div",{class:c.itemContent,key:"content"},y("div",{class:c.itemTitle,key:"title"},y("span",{id:w},i)),n(e.basemap)?this._renderTags(e.basemap):null),"loading"===e.state||h&&v?y("calcite-scrim",null,y("span",{"aria-hidden":"true",class:g.loaderAnimation,key:"loader",role:"presentation"})):null)}_renderTags(e){return y("div",{class:c.itemTagsContainer,key:"tag"},this._render3DTag(),d(e)?this._renderBetaTag():null)}_render3DTag(){const{messages:e}=this;return y("calcite-chip",{key:"tag-3d",label:e.tag3D,scale:"s"},this.messages.tag3D)}_renderBetaTag(){const{messages:e}=this;return y("calcite-chip",{appearance:"outline-fill",key:"tag-beta",label:e.tagBeta,scale:"s"},this.messages.tagBeta)}};e([r()],w.prototype,"activeBasemap",null),e([r()],w.prototype,"disabled",void 0),e([r()],w.prototype,"headingLevel",void 0),e([r()],w.prototype,"icon",null),e([r()],w.prototype,"label",null),e([r(),v("esri/widgets/BasemapGallery/t9n/BasemapGallery")],w.prototype,"messages",void 0),e([r()],w.prototype,"source",null),e([r()],w.prototype,"view",null),e([r()],w.prototype,"viewModel",void 0),e([r()],w.prototype,"_focusBasemapItemEnabled",void 0),e([b()],w.prototype,"_handleClick",null),w=e([o("esri.widgets.BasemapGallery")],w);const f=w;export{f as default};
5
+ import{__decorate as e}from"tslib";import{getAssetUrl as t}from"../assets.js";import{deprecateWidget as s}from"../core/deprecate.js";import a from"../core/Logger.js";import{when as i}from"../core/reactiveUtils.js";import{property as r,subclass as o}from"../core/accessorSupport/decorators.js";import{getBasemapThumbnailUrl as l,isBasemap3D as n,isBasemapInBeta as d}from"../support/basemapUtils.js";import m from"./Widget.js";import p from"./BasemapGallery/BasemapGalleryViewModel.js";import{css as c}from"./BasemapGallery/css.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as u}from"./support/Heading.js";import{messageBundle as v,accessibleHandler as b,tsx as y}from"./support/widget.js";let w=class extends m{constructor(e,t){super(e,t),this.disabled=!1,this.headingLevel=2,this.messages=null,this.viewModel=new p,this._focusBasemapItemEnabled=!1,s(a.getLogger(this),"Basemap Gallery","arcgis-basemap-gallery",{version:"4.32"})}initialize(){this.addHandles(i(()=>this.source,()=>this.viewModel.loadSource(),{sync:!0,initial:!0}))}loadDependencies(){return h({scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip")})}get activeBasemap(){return this.viewModel.activeBasemap}set activeBasemap(e){this.viewModel.activeBasemap=e}get icon(){return"basemap"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get source(){return this.viewModel.source}set source(e){this.viewModel.source=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e="loading"===this.source.state,t=this.disabled||"disabled"===this.viewModel.state,s={[c.sourceLoading]:e,[g.disabled]:t};return y("div",{class:this.classes(c.base,g.widget,g.panel,s),key:"container"},this._getContext())}_getContext(){if("unsupported"===this.viewModel.state)return y("div",{class:g.empty,key:"empty-message"},y(u,{level:this.headingLevel},this.messages.unsupported));if("loading"===this.source.state)return y("div",{class:c.loader,key:"loader"});const e=this.viewModel.items;return e.length>0?y("ul",{"aria-disabled":this.disabled,"aria-label":this.label,bind:this,class:c.itemContainer,key:"item-container",onkeydown:this._handleKeyDown,role:"radiogroup"},e.map((e,t)=>this._renderBasemapGalleryItem(e,t)).toArray()):y("div",{class:g.empty,key:"empty-message"},y(u,{level:this.headingLevel},this.messages.noBasemaps))}_getRoundRobinIndex(e,t){return(e+t)%t}_handleKeyDown(e){const{key:t}=e;if(!["ArrowUp","ArrowDown","ArrowRight","ArrowLeft"].includes(t))return;e.preventDefault();const{items:s,activeBasemapIndex:a}=this.viewModel,i="ArrowUp"===t||"ArrowLeft"===t?this._getRoundRobinIndex(Math.max(a-1,-1),s.length):this._getRoundRobinIndex(a+1,s.length),r=s.at(i);"ready"===r?.state&&(this.viewModel.activeBasemap=r.basemap),this._focusBasemapItemEnabled=!0}_focusBasemapItem(e){this._focusBasemapItemEnabled&&0===e.tabIndex&&(e.focus(),this._focusBasemapItemEnabled=!1)}_handleClick(e){const t=e.currentTarget["data-item"];"ready"===t.state&&(this.viewModel.activeBasemap=t.basemap)}_renderBasemapGalleryItem(e,s){const a=l(e.basemap)||t("esri/themes/base/images/basemap-toggle-64.svg"),i=e.basemap.title,r=e.basemap.portalItem?.snippet,o=e.error?.message||r||i,{viewModel:{state:d,activeBasemapIndex:m}}=this,p=this.disabled||"disabled"===d,h=m===s,u=h||-1===m&&0===s?0:-1,v="loading"===d,b={[c.selectedItem]:h,[c.itemError]:"error"===e.state},w=`basemapgallery-item-${e.uid}`;return y("li",{afterUpdate:this._focusBasemapItem,"aria-checked":h.toString(),"aria-disabled":p.toString(),"aria-labelledby":w,bind:this,class:this.classes(c.item,b),"data-item":e,key:e.uid,onclick:this._handleClick,onkeydown:this._handleClick,role:"radio",tabIndex:u,title:o},y("img",{alt:"",class:c.itemThumbnail,src:a}),y("div",{class:c.itemContent,key:"content"},y("div",{class:c.itemTitle,key:"title"},y("span",{id:w},i)),n(e.basemap)?this._renderTags(e.basemap):null),"loading"===e.state||h&&v?y("calcite-scrim",null,y("span",{"aria-hidden":"true",class:g.loaderAnimation,key:"loader",role:"presentation"})):null)}_renderTags(e){return y("div",{class:c.itemTagsContainer,key:"tag"},this._render3DTag(),d(e)?this._renderBetaTag():null)}_render3DTag(){const{messages:e}=this;return y("calcite-chip",{key:"tag-3d",label:e.tag3D,scale:"s"},this.messages.tag3D)}_renderBetaTag(){const{messages:e}=this;return y("calcite-chip",{appearance:"outline-fill",key:"tag-beta",label:e.tagBeta,scale:"s"},this.messages.tagBeta)}};e([r()],w.prototype,"activeBasemap",null),e([r()],w.prototype,"disabled",void 0),e([r()],w.prototype,"headingLevel",void 0),e([r()],w.prototype,"icon",null),e([r()],w.prototype,"label",null),e([r(),v("esri/widgets/BasemapGallery/t9n/BasemapGallery")],w.prototype,"messages",void 0),e([r()],w.prototype,"source",null),e([r()],w.prototype,"view",null),e([r({type:p})],w.prototype,"viewModel",void 0),e([r()],w.prototype,"_focusBasemapItemEnabled",void 0),e([b()],w.prototype,"_handleClick",null),w=e([o("esri.widgets.BasemapGallery")],w);const f=w;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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{deprecatedFunction as i}from"../core/deprecate.js";import s from"../core/Logger.js";import{destroyMaybe as o,abortMaybe as r,mappedFind as a}from"../core/maybe.js";import{createResolver as n}from"../core/promiseUtils.js";import{watch as l,on as c,when as d,initial as h}from"../core/reactiveUtils.js";import{property as m,subclass as p}from"../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../core/support/UpdatingHandles.js";import g from"../views/interactive/sketch/SketchValueOptions.js";import w from"./Attachments.js";import _ from"./BatchAttributeForm.js";import v from"./FeatureForm.js";import f from"./FeatureTemplates.js";import b from"./Spinner.js";import y from"./Widget.js";import{VisibleElements as k}from"./BatchAttributeForm/VisibleElements.js";import{css as F}from"./Editor/css.js";import M from"./Editor/EditorViewModel.js";import{isModelUpload as A}from"./Editor/modelUploadUtils.js";import T from"./Editor/VisibleElements.js";import{isFeatureFormViewModel as S,isUpdateWorkflow as C,isUpdateFeaturesWorkflow as L,isUpdateFeatureWorkflow as E,isBatchAttributeFormViewModel as W,findEditorItemForLayer as P}from"./Editor/workflowUtils.js";import{loadCreateFeaturesPanelContentComponents as I,CreateFeaturesPanelContent as j}from"./Editor/components/CreateFeaturesPanelContent.js";import{loadFeatureListComponents as U,FeatureList as V}from"./Editor/components/FeatureList.js";import{loadFooterActionsComponents as D,FooterActions as x}from"./Editor/components/FooterActions.js";import{loadNoticesComponents as B,Notice as O}from"./Editor/components/Notices.js";import{loadPanelContentComponents as N,PanelContent as H,PanelContentSection as G,PanelContentMessage as z}from"./Editor/components/PanelContent.js";import{PanelToolbar as R,loadPanelToolbarComponents as q}from"./Editor/components/PanelToolbar.js";import{loadPromptComponents as K,Prompt as Z}from"./Editor/components/Prompt.js";import{loadUpdateFeaturePanelContentComponents as $,UpdateFeaturePanelContent as J}from"./Editor/components/UpdateFeaturePanelContent.js";import{loadUploadDetailsComponents as Q,UploadDetails as X}from"./Editor/components/UploadDetails.js";import{CreateToolVisibilityMap as Y}from"./Sketch/CreateToolVisibilityMap.js";import{SelectionToolVisibilityMap as ee}from"./Sketch/SelectionToolVisibilityMap.js";import{VisibleElements as te}from"./Sketch/VisibleElements.js";import{loadCalciteComponents as ie}from"./support/componentsUtils.js";import{globalCss as se}from"./support/globalCss.js";import{incrementHeadingLevel as oe,Heading as re}from"./support/Heading.js";import{renderItem as ae}from"./support/ItemList.js";import{connectDelayedLoading as ne}from"./support/loaderUtils.js";import le from"./support/SelectionList.js";import ce from"./support/SelectionToolbar.js";import{messageBundle as de,vmEvent as he,tsx as me}from"./support/widget.js";import{isLayerItem as pe}from"./support/SelectionList/selectionListUtils.js";import ue from"./support/SelectionList/VisibleElements.js";import ge from"./support/SelectionToolbar/VisibleElements.js";const we=Symbol("sketch-setup-handles");let _e=class extends y{constructor(e,i){super(e,i),this._batchAttributeForm=new _({visibleElements:new k({loadingIndicator:!1})}),this._featureForm=new v,this._sketchToolbar=null,this._attachments=new w({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._associationItemList=null,this._associationSettings=null,this._featureTemplates=new f({enableListScroll:!1,renderItemContentEnd:e=>e.supportsUpload?me("calcite-icon",{class:F.templateItemContentEnd,icon:"upload-to",key:"upload-icon"}):null,renderItemLabel:e=>e.label,renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new b,this._loading=!1,this._selectionList=new le({displayMode:"layer",itemActionConfigs:this._selectionListItemActionConfigs,onListItemSelect:({item:e})=>this._onSelectionListItemSelect(e),visibleElements:new ue({header:!1})}),this._selectionToolbar=new ce({visibleElements:new ge({chip:!1})}),this._updatingHandles=new u,this.headingLevel=4,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.messagesFeature=null,this.supportingWidgetDefaults=null,this.viewModel=new M,this.visibleElements=new T,this._renderAttachments=()=>this._attachments.render(),this._renderFeatureForm=()=>this._featureForm.render(),this._renderBatchAttributeForm=()=>this._batchAttributeForm.render(),this._renderFeatureTemplates=()=>this._featureTemplates.render(),this._renderSelectionList=()=>this._selectionList.render(),this._renderSelectionToolbar=()=>this._selectionToolbar.render(),this._renderSketch=()=>this._sketchToolbar?me("div",{class:F.sketchContainer,key:"editor-sketch-container"},this._sketchToolbar?.render()):void 0,this._renderSelectIcon=()=>me("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({heading:e,key:t,selected:i},...s)=>{const{visibleElements:o}=this;return me("calcite-flow-item",{closable:!1,heading:e,headingLevel:this.headingLevel,key:t,loading:this._loading,selected:i,onCalciteFlowItemBack:this._onBack},o.settingsMenu?me(R,{editorViewModel:this.viewModel,messagesCommon:this.messagesCommon,visibleElements:o}):null,...s)},this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this,i={title:e.cancelEditTitle,message:e.cancelEditWarningMessage,yesLabel:e.discardEdits,noLabel:e.continueEditing};return"create-features"===t?.type&&A(t.data.creationInfo)?this._showPromptAndWait("success"===t.data.upload?.state?e.modelUploads.cancelPlacementPrompt:e.modelUploads.cancelUploadPrompt):"update"===t?.type&&S(t.formViewModel)&&t.formViewModel.activeAssociation?this._showPromptAndWait({...i,message:e.cancelAssociationEditWarning}):this._showPromptAndWait(i)},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPromptAndWait({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._showPrompt=e=>{this._prompt?.cancel?.(),this._prompt=e},this._clearPrompt=()=>{this._prompt=null},this._onSave=()=>{this.viewModel.saveWorkflow()},this._onMerge=()=>{const{activeWorkflow:e}=this.viewModel;if(C(e)){const t=e.activeWorkflow;L(t)&&e.startMergingFeatures(t.viewGraphics,{initialFeatures:t.data.initialFeatures})}},this._onSplit=()=>{const{activeWorkflow:e}=this.viewModel;if(C(e)){const t=e.activeWorkflow;if(E(t)){const i=t.viewGraphic;i&&e.startSplittingFeature(i,{initialFeature:t.data.edits.initialFeature??i})}}},this._onDelete=()=>{const e=this.viewModel.activeFeatureCount,i=e>1?this.messages.multiFeature:this.messages.singleFeature;this._showPrompt({title:i.deleteWarningTitle,message:i.deleteWarningMessage,context:"danger",actions:{primary:{label:t(i.delete,{count:e}),action:()=>{this.deleteFeatures(),this._clearPrompt()}},secondary:{label:i.keep,action:this._clearPrompt}}})},this._onDeleteAssociation=()=>{const{messages:e,messagesCommon:t}=this;this._showPrompt({title:e.deleteAssociationTitle,message:e.deleteAssociationMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteAssociationFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepAssociation,action:this._clearPrompt}}})},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onBack=e=>(e?.stopPropagation(),this.viewModel.back()),this._onAttachmentAdd=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type||"update"===e.type&&"create-features"===e.activeWorkflow?.type?(this._attachments.addFile(),e.back()):this._attachments.addAttachment().then(()=>e.back()))},this._onAttachmentUpdate=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.back()):this._attachments.updateAttachment().then(()=>e.back()))},this._onAttachmentDelete=()=>{const{messages:e,messagesCommon:t}=this;this._showPrompt({title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}})},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.back(),this._clearPrompt())},this._onAttachmentsError=e=>{this._showPrompt({title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}})}}initialize(){this._featureForm.showPrompt=this._showPrompt,this._featureForm.clearPrompt=this._clearPrompt,this.addHandles([l(()=>oe(this.headingLevel),e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e},h),c(()=>this.viewModel.activeWorkflow,"cancel-request",({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then(t=>t?e.allow():e.deny())}),d(()=>this.viewModel.formViewModel,e=>{W(e)?this._batchAttributeForm.viewModel=e:this._featureForm.viewModel=e},h),d(()=>this.viewModel.utilityNetworkAssociationAddAssociationViewModel,e=>{this._associationItemList?this._associationItemList.viewModel=e:this._updatingHandles.addPromise(this._initializeAssociationItemList(e))},h),d(()=>this.viewModel.utilityNetworkAssociationAddAssociationViewModel?.association,()=>{this._setUpAssociationSettings()}),l(()=>[this.viewModel,this.viewModel?.attachmentsViewModel,this.viewModel?.featureTemplatesViewModel,this.viewModel?.spinnerViewModel,this.viewModel?.selectionListViewModel,this.viewModel?.selectionToolbarViewModel],([e,t,i,s,o,r])=>{this._attachments.viewModel=t,this._featureTemplates.viewModel=i,this._spinner.viewModel=s,this._selectionList.viewModel=o,this._selectionToolbar.viewModel=r,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt},h),l(()=>this.view,(e,t)=>{const i=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,i),e?.ui.add(this._spinner,{key:i,position:"manual"}),this._associationItemList&&(this._associationItemList.view=e)},h),l(()=>[this.supportingWidgetDefaults,this.viewModel.sketchViewModel],([e])=>{e&&(this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel?.set(e.sketch))},h),d(()=>this._attachments?.error,e=>this._onAttachmentsError(e)),d(()=>this._selectionListItemActionConfigs,()=>{this._selectionList.itemActionConfigs=this._selectionListItemActionConfigs}),d(()=>this.viewModel?.failures,e=>{const{messages:i}=this,[{error:s,retry:o,cancel:r}]=e;this._showPrompt({title:i.errorWarningTitle,message:t(i.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:i.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:i.ignore,action:()=>{r(),this._clearPrompt()}}}})}),l(()=>this.viewModel?.state,e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}}),l(()=>this.viewModel.featureFormDisabled,e=>this._featureForm.disabled=e),l(()=>this.visibleElements.sketch,()=>this._setupSketch(),h),l(()=>this.visibleElements.zoomToButton,e=>this._selectionList.visibleElements.zoomToButton=e,h),ne({getLoading:()=>{const{viewModel:e}=this;return e.syncing||e.updating||this._attachments.submitting||this._updatingHandles.updating},setEffectiveLoading:e=>{this._loading=e}})])}destroy(){this._associationItemList?.destroy(),this._associationSettings?.destroy(),this._selectionList.destroy(),this._selectionToolbar.destroy(),this._attachments.destroy(),this._batchAttributeForm.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy(),this._spinner.destroy(),this._sketchToolbar=o(this._sketchToolbar),this._sketchImportAbortController=r(this._sketchImportAbortController)}loadDependencies(){return Promise.all([ie({flow:()=>import("@esri/calcite-components/dist/components/calcite-flow"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),list:()=>import("@esri/calcite-components/dist/components/calcite-list")}),I(),U(),D(),B(),N(),q(),K(),$(),Q()])}get _hasInvalidBatchSelection(){return this._hasSelectionFromMultipleLayers||this._selectionCountExceedsMaximum||0===this._selectionList.visibleFeatureCount}get _hasSelectionFromMultipleLayers(){return this._selectionList.visibleLayerCount>1}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger"}}get _selectionCountExceedsMaximum(){const e=this._batchAttributeForm.maximumFeatureCount,{activeLayerItem:t,effectiveCount:i,filterText:s,visibleFeatureCount:o}=this._selectionList;return null!=s&&""!==s?o>e:t?t.total>e:i>e}get _selectionListItemActionConfigs(){const{messages:e,visibleElements:t}=this,i=t?.mergeButton??!0;return[{label:e?.batchEditing?.editThisFeature,icon:"edit-attributes",type:"feature",callback:({item:e})=>this._onSelectionListMenuItemSelect(e,"update")},{label:e?.batchEditing.editTheseFeatures,icon:"edit-attributes",type:"layer",callback:({item:e})=>this._onSelectionListMenuItemSelect(e,"update")},{label:e?.batchEditing.mergeTheseFeatures,icon:"merge",type:"layer",hidden:!i||(({item:e})=>{if(!pe(e))return!0;const t=P(this.viewModel.editorItems,e.layer);return!t?.supportsMergeFeaturesWorkflow||e.visibleTotal<2}),callback:({item:e})=>this._onSelectionListMenuItemSelect(e,"merge")}]}get _visibleSelectionCount(){const{activeLayerItem:e,effectiveCount:t,filterText:i,visibleFeatureCount:s}=this._selectionList;return null!=i&&""!==i?s:e?e.total:t}get activeWorkflow(){return this.viewModel.activeWorkflow}get effectiveSelectionManager(){return this.viewModel.effectiveSelectionManager}get hideTemplatesForInactiveLayers(){return this.viewModel.hideTemplatesForInactiveLayers}set hideTemplatesForInactiveLayers(e){this.viewModel.hideTemplatesForInactiveLayers=e}get icon(){return"pencil"}set icon(e){this._overrideIfSome("icon",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 valueOptions(){return this.viewModel.valueOptions}set valueOptions(e){this.viewModel.valueOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureEdit(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureEdit(e)}startMergeFeaturesWorkflow(e,t={}){return this.viewModel.startMergeFeaturesWorkflow(e,t)}startSplitFeatureWorkflow(e,t={}){return this.viewModel.startSplitFeatureWorkflow(e,t)}async startUpdateFeaturesWorkflow(e){return this.viewModel.startUpdateFeaturesWorkflow(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}startUpdateWorkflowWithActiveSelection(){return this.viewModel.startUpdateWorkflowWithActiveSelection()}deleteFeatureFromWorkflow(){return i(s.getLogger(this),"Editor.deleteFeatureFromWorkflow is deprecated. Use Editor.deleteFeatures instead.",{version:"4.33",replacement:"Editor.deleteFeatures",warnOnce:!0}),this.deleteFeatures()}async deleteFeatures(){await this.viewModel.deleteFeatures()}deleteAssociationFromWorkflow(){return this.viewModel.deleteAssociationFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{visibleElements:e,viewModel:t}=this,i=this.classes(F.base,se.widget,se.panel);if(!t)return me("div",{class:i,key:"empty"});const{pageStack:s}=t,o=s.length-1,r=s.map((e,t)=>this._renderPage(e,t===o));return me("div",{class:i,key:"base"},e.flow?me("calcite-flow",{inert:!!this._prompt,key:"flow"},r):r,this._prompt?me(Z,{...this._prompt,headingLevel:this.headingLevel}):void 0)}_renderPage(e,t){const i={selected:t};switch(e){case"disabled":break;case"ready":return this._renderReady(i);case"viewing-selection-list":return this._renderSelectionListPage(i);case"awaiting-feature-creation-info":return this._renderAwaitingFeatureCreationInfo(i);case"creating-features-upload-details":return this._renderUploadDetails(i);case"creating-features":return this._renderCreatingFeatures(i);case"editing-existing-feature":case"editing-features":case"editing-attributes":case"choosing-key-feature":return this._renderUpdateFeature(i);case"awaiting-update-feature-candidate":return this._renderFeatureList(i);case"adding-attachment":return this._renderAttachmentAdding(i);case"editing-attachment":return this._renderAttachmentEditing(i);case"viewing-associated-layers":case"viewing-associated-features":return this._renderViewAssociatedLayers(i);case"add-association-select-layer":case"add-association-select-feature":return this._renderSelectFeature(i);case"add-association-create-association":return this._renderAddAssociation(i);case"drawing-splitter-geometry":return this._renderDrawingSplitGeometry(i);case"reviewing-features":return this._renderReviewingSplitFeatures(i)}return me("div",{key:"empty-page"})}_renderAwaitingFeatureCreationInfo(e){const{EditorPanel:t,messages:i}=this;return me(t,{heading:i.selectTemplate,key:"templates-panel",...e},me(H,{key:"feature-templates"},me(G,null,this._renderFeatureTemplates())))}_renderUploadDetails(e){const{EditorPanel:t,activeWorkflow:i,messages:s}=this;if("create-features"!==i?.type)return null;const o=i.data.upload;return o?me(t,{heading:s.createFeatures,key:"upload-details-panel",...e},me(X,{helpMessage:this._helpMessage,messages:s,upload:o})):null}_renderCreatingFeatures(e){const{EditorPanel:t,activeWorkflow:i,messages:s,messagesCommon:o,headingLevel:r,viewModel:a}=this;if(!i)return null;const n="create-features"===i.type&&i.numPendingFeatures>0||"update"===i.type&&"create-features"===i?.activeWorkflow?.type&&i.activeWorkflow?.numPendingFeatures>0;return me(t,{heading:s.createFeatures,key:"create-features-panel",...e},n?me(J,{editorViewModel:a,headingLevel:r,messages:s,messagesCommon:o,renderAttachments:this._renderAttachments,renderBatchAttributeForm:this._renderBatchAttributeForm,renderFeatureForm:this._renderFeatureForm,renderSketchToolbar:this._renderSketch,visibleElements:this.visibleElements,onDelete:this._onDelete,onDeleteAssociation:this._onDeleteAssociation,onSave:this._onSave}):me(j,{helpMessage:this._helpMessage,renderSketchToolbar:this._renderSketch}))}_renderUpdateFeature(e){const{EditorPanel:t,messages:i,messagesCommon:s,headingLevel:o,viewModel:r}=this,a=r.activeFeatureCount>1?i.multiFeature.editPanelTitle:i.singleFeature.editPanelTitle;return me(t,{heading:a,key:"update-feature-panel",...e},me(J,{editorViewModel:r,headingLevel:o,messages:i,messagesCommon:s,renderAttachments:this._renderAttachments,renderBatchAttributeForm:this._renderBatchAttributeForm,renderFeatureForm:this._renderFeatureForm,visibleElements:this.visibleElements,onDelete:this._onDelete,onDeleteAssociation:this._onDeleteAssociation,onMerge:this._onMerge,onSave:this._onSave,onSplit:this._onSplit}))}_renderDrawingSplitGeometry(e){const{EditorPanel:t}=this;return me(t,{heading:this.messages.splitFeature,key:"draw-split-geometry-panel",...e},me(j,{helpMessage:this._helpMessage,noticeMessage:this._noticeMessage,renderSketchToolbar:this._renderSketch}))}_renderReviewingSplitFeatures(e){const{EditorPanel:t,messages:i,messagesCommon:s,headingLevel:o,viewModel:r}=this;return me(t,{heading:i.splitFeature,key:"review-split-features-panel",...e},me(J,{editorViewModel:r,headingLevel:o,messages:i,messagesCommon:s,renderAttachments:this._renderAttachments,renderBatchAttributeForm:this._renderBatchAttributeForm,renderFeatureForm:this._renderFeatureForm,visibleElements:this.visibleElements,onSave:this._onSave}))}_getAssociationTypeTitle(e){const{messages:t}=this;if(!e)return t.singleFeature.editPanelTitle;if(e.title)return e.title;const{messagesFeature:i}=this;switch(e.type){case"attachment":return i.associationsAttachments;case"connectivity":return i.associationsConnectivity;case"structure":return i.associationsStructure;case"content":return i.associationsContents;case"container":return i.associationsContainer}}_getAddAssociationTypeTitle(e){const{messages:t}=this;if(!e)return t.singleFeature.editPanelTitle;const i=t.associations;switch(e.type){case"attachment":return i.addAttachment;case"connectivity":return i.addConnectivity;case"structure":return i.addStructure;case"content":return i.addContent;case"container":return i.addContainer}}async _initializeAssociationItemList(e){const t=(await import("./FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationItemList.js")).default;this._associationItemList=new t({view:this.view,viewModel:e})}async _initializeAssociationSettings(){const e=new(0,(await import("./FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationSettings.js")).default);return this._associationSettings=e,e}_renderViewAssociatedLayers(e){const{EditorPanel:t,messages:i,messagesCommon:s,headingLevel:o,viewModel:r}=this,a=r.featureFormViewModel?.activeAssociationInput?.activeAssociationType,n=this._getAssociationTypeTitle(a);return me(t,{heading:n,key:"viewing-associated-layers-panel",...e},me(J,{editorViewModel:r,headingLevel:o,messages:i,messagesCommon:s,renderAttachments:this._renderAttachments,renderBatchAttributeForm:this._renderBatchAttributeForm,renderFeatureForm:this._renderFeatureForm,renderSketchToolbar:this._renderSketch,visibleElements:this.visibleElements,onDelete:this._onDelete,onDeleteAssociation:this._onDeleteAssociation,onSave:this._onSave}))}_renderSelectFeature(e){const{_associationItemList:t,EditorPanel:i,viewModel:s,messagesCommon:o}=this,r=s.utilityNetworkAssociationAddAssociationViewModel,a=this._getAddAssociationTypeTitle(r?.associationType),n="ready"!==r?.state||this.viewModel.featureFormDisabled;return t?me(i,{heading:a,key:"add-association-select-feature",...e},me(H,{key:"select-feature"},me(G,null,t.render())),me(x,{buttons:[t.filterOptionsVisible?{appearance:"solid",label:o.apply,disabled:n,onClick:()=>t.applyFilterOptions(),type:"button"}:void 0,{appearance:"outline",label:o.cancel,disabled:n,onClick:()=>{"update"===s.activeWorkflow?.type&&(r?.reset(),s.activeWorkflow.cancelActiveWorkflow())},type:"button"}]})):me(i,{heading:a,key:"add-association-select-feature",...e})}async _setUpAssociationSettings(){const{viewModel:e}=this,t=this._associationSettings??await this._updatingHandles.addPromise(this._initializeAssociationSettings()),i=e.utilityNetworkAssociationAddAssociationViewModel,s="update"===e.activeWorkflow?.type?e.activeWorkflow:null,o=s?s.activeWorkflow:null,r="add-association"===o?.type?o.sourceFeatureItem:null,a=i?.selectedFeature,n=i?.association,l=i?.utilityNetwork;r&&a&&n&&l&&(t.sourceFeature=r,t.targetFeature=a,t.association=n,t.utilityNetwork=l)}_renderAddAssociation(e){const{_associationSettings:t,EditorPanel:i,viewModel:s,messagesCommon:o}=this;if(!t)return null;const r=s.utilityNetworkAssociationAddAssociationViewModel,a=this._getAddAssociationTypeTitle(r?.associationType),n="ready"!==r?.state;return me(i,{heading:a,key:"add-association",...e},me(H,{key:"add-association-content"},me(G,null,t.render())),me(x,{buttons:[{label:o.add,disabled:n||!r.canAddAssociation,onClick:()=>this._onSave(),type:"button"},{appearance:"outline",label:o.cancel,disabled:n,onClick:()=>{"update"===s.activeWorkflow?.type&&s.activeWorkflow.cancelActiveWorkflow()},type:"button"}]}))}_renderCustomTemplateGroupContent(e){const{messages:t,viewModel:i}=this,s=a(e.group.items,e=>i.itemHasInvalidFormTemplate(e)?t.formFieldCreateError:void 0);return s?me(O,{kind:"warning",message:s}):null}_renderAttachmentAdding(e){const{EditorPanel:t,_attachments:i,messages:s,messagesCommon:o}=this;return me(t,{heading:s.addAttachment,key:"attachment-adding-panel",...e},me(H,{key:"attachments"},this._renderAttachments()),me(x,{buttons:[{label:i.submitting?o.cancel:o.add,disabled:i.submitting||!i.selectedFile,onClick:this._onAttachmentAdd,type:"button"}]}))}_renderSelectionListPage(e){const{_hasSelectionFromMultipleLayers:i,_hasInvalidBatchSelection:s,_selectionCountExceedsMaximum:o,_selectionList:r,_visibleSelectionCount:a,messages:n,EditorPanel:l}=this,{batchUpdateActions:c}=this.visibleElements,{maxVisibleFeatureCountPerLayer:d}=r;return me(l,{heading:n.widgetLabel,key:"selection-list-panel",...e},this.visibleElements.selectionToolbar&&"3d"!==this.view?.type?me("div",{class:F.selectionToolbarContainer},this._renderSelectionToolbar()):void 0,me(H,{key:"selection-list"},me(G,null,this._renderSelectionList())),me(x,{buttons:[c?{label:t(n.batchEditing.editCount,{count:a}),disabled:s,onClick:()=>this.startUpdateWorkflowWithActiveSelection(),type:"button"}:void 0],notice:c&&i?{text:n.batchEditing.selectOneLayer,icon:"information"}:c&&o?{text:t(this.messages.multiFeature.formFailedToLoadTooManyFeatures,{num:d}),icon:"information"}:void 0}))}_renderAttachmentEditing(e){const{EditorPanel:t,_attachments:i,activeWorkflow:s,messages:o,messagesCommon:r}=this;return s?me(t,{heading:o.editAttachment,key:"attachment-editing-panel",...e},me(H,{key:"attachments"},this._renderAttachments()),s.shouldAllowAttachmentEditing?me(x,{buttons:[{label:r.update,disabled:i.submitting||!i.selectedFile,onClick:this._onAttachmentUpdate,type:"button"},{...this._deleteButtonCommonInfo,onClick:this._onAttachmentDelete,disabled:i.submitting,label:r.delete,type:"button"}]}):void 0):null}_renderReady(e){const{EditorPanel:t,messages:i,viewModel:s,visibleElements:o}=this,r=this._helpMessage;return me(t,{heading:i.widgetLabel,key:"landing-panel",...e},me(H,{key:"landing-content"},s.editorItems.length?[o.editFeaturesSection?me(G,{key:"edit-actions"},this._renderUpdateActions()):null,o.createFeaturesSection&&s.canCreateVisible?me(G,{key:"create-actions"},this._renderCreateActions()):null]:me(z,{key:"no-content"},i.noEditableLayers)),r?me("div",{class:F.helpMessage,key:"footer-actions",slot:"footer"},r):void 0)}get _helpMessage(){return this.getHelpMessageString(this.activeWorkflow?.helpMessage)}get _noticeMessage(){return this.getHelpMessageString(this.activeWorkflow?.noticeMessage)}_renderUpdateActions(){const{messages:e,messagesCommon:t,viewModel:i}=this,s={id:"select",label:t.select};return me("div",{class:F.updateActions,key:"update-actions"},me(re,{level:oe(this.headingLevel)},e.editFeatures),this.visibleElements.selectionToolbar&&"3d"!==this.view?.type?me("div",{class:F.selectionToolbarContainer},this._renderSelectionToolbar()):me("calcite-list",{class:F.updateActionsList,label:e.editFeaturesList,selectionAppearance:"border",selectionMode:"single"},ae({disabled:!i.canUpdateVisible,grouped:!1,item:s,selectedItem:"awaiting-feature-to-update"===i.activeWorkflow?.stepId?s:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){return me("div",{key:"create-actions"},me(re,{level:oe(this.headingLevel)},this.messages.createFeatures),me("div",{class:F.featureTemplatesContainer,key:"templates"},this._renderFeatureTemplates()))}_renderFeatureList(e){const{EditorPanel:i,viewModel:s}=this,{activeWorkflow:o}=s;if("update"!==o?.type)return null;const r=o.data.candidates,a=t(this.messages.multipleFeaturesTemplate,{total:r.length});return me(i,{heading:a,key:"feature-list",...e},me(V,{editorItems:s.editorItems,editorMessages:this.messages,filterText:this._filterText,id:this.id,messagesTemplates:this.messagesTemplates,workflow:o,onFilterTextChange:e=>this._filterText=e,onSelectFeature:(e,t)=>s.selectFeature(e,t),onZoomTo:e=>s.zoomTo(e)}))}_showPromptAndWait({title:e,message:t,yesLabel:i,noLabel:s}){const o=n(),{view:r}=this,a=r?.focused;return this._showPrompt({title:e,message:t,context:"danger",actions:{primary:{label:i,action:()=>o.resolve(!0)},secondary:{label:s,action:()=>o.resolve(!1)}}}),o.promise.finally(()=>{this._clearPrompt(),a&&r?.focus()})}async _onSelectionListItemSelect(e){await this.viewModel.onSelectionListItemSelect(e)}async _onSelectionListMenuItemSelect(e,t){await this.viewModel.onSelectionListMenuItemSelect(e,t)}async _setupSketch(){if(!!!this.visibleElements.sketch)return this._sketchImportAbortController=r(this._sketchImportAbortController),this._sketchToolbar=o(this._sketchToolbar),void this.removeHandles(we);if(this._sketchImportAbortController)return;const e=new AbortController;this._sketchImportAbortController=e;const t=await import("./Sketch.js");if(!e.signal.aborted)try{this._sketchToolbar=new t.default({toolbarKind:"docked",contextualToolLocation:"inline-end",scale:"s",visibleElements:new te({deleteButton:!1,settingsMenu:!1,directionModePicker:!1,selectionCountLabel:!1,duplicateButton:!1,createTools:new Y({freehandPolygon:!0,freehandPolyline:!0}),selectionTools:new ee({"lasso-selection":!1,"rectangle-selection":!1})})}),this.addHandles([l(()=>{const e=this.viewModel.activeLeafWorkflow;return e&&"availableCreateTools"in e?e.availableCreateTools:null},e=>{this._sketchToolbar&&(this._sketchToolbar.availableCreateTools=e)},h),l(()=>this.visibleElements.undoRedoButtons,e=>{this._sketchToolbar&&(this._sketchToolbar.visibleElements.undoRedoMenu=e)},h),d(()=>this.viewModel?.sketchViewModel,e=>{this._sketchToolbar&&(this._sketchToolbar.viewModel=e)},h)],we)}finally{this._sketchImportAbortController=null}}getHelpMessageString(e){const{messages:t,view:i}=this;return e?t["3d"===i?.type?"helpMessages3d":"helpMessages2d"]?.[e]:void 0}get test(){return{sketch:this._sketchToolbar,showPrompt:this._showPromptAndWait.bind(this)}}};e([m()],_e.prototype,"_batchAttributeForm",void 0),e([m()],_e.prototype,"_featureForm",void 0),e([m()],_e.prototype,"_sketchToolbar",void 0),e([m()],_e.prototype,"_attachments",void 0),e([m()],_e.prototype,"_associationItemList",void 0),e([m()],_e.prototype,"_associationSettings",void 0),e([m()],_e.prototype,"_featureTemplates",void 0),e([m()],_e.prototype,"_filterText",void 0),e([m()],_e.prototype,"_hasInvalidBatchSelection",null),e([m()],_e.prototype,"_hasSelectionFromMultipleLayers",null),e([m()],_e.prototype,"_prompt",void 0),e([m()],_e.prototype,"_spinner",void 0),e([m()],_e.prototype,"_deleteButtonCommonInfo",null),e([m()],_e.prototype,"_loading",void 0),e([m()],_e.prototype,"_selectionCountExceedsMaximum",null),e([m()],_e.prototype,"_selectionList",void 0),e([m()],_e.prototype,"_selectionListItemActionConfigs",null),e([m()],_e.prototype,"_selectionToolbar",void 0),e([m()],_e.prototype,"_visibleSelectionCount",null),e([m({readOnly:!0})],_e.prototype,"activeWorkflow",null),e([m()],_e.prototype,"effectiveSelectionManager",null),e([m()],_e.prototype,"headingLevel",void 0),e([m()],_e.prototype,"hideTemplatesForInactiveLayers",null),e([m()],_e.prototype,"icon",null),e([m()],_e.prototype,"label",null),e([m()],_e.prototype,"labelOptions",null),e([m()],_e.prototype,"layerInfos",null),e([m(),de("esri/widgets/Editor/t9n/Editor")],_e.prototype,"messages",void 0),e([m(),de("esri/t9n/common")],_e.prototype,"messagesCommon",void 0),e([m(),de("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],_e.prototype,"messagesTemplates",void 0),e([m(),de("esri/widgets/Feature/t9n/Feature")],_e.prototype,"messagesFeature",void 0),e([m()],_e.prototype,"snappingOptions",null),e([m()],_e.prototype,"tooltipOptions",null),e([m()],_e.prototype,"supportingWidgetDefaults",void 0),e([m({type:g,nonNullable:!0})],_e.prototype,"valueOptions",null),e([m()],_e.prototype,"view",null),e([m(),he(["sketch-create","sketch-delete","sketch-update","workflow-cancel","workflow-commit"])],_e.prototype,"viewModel",void 0),e([m({type:T,nonNullable:!0})],_e.prototype,"visibleElements",void 0),e([m()],_e.prototype,"_helpMessage",null),e([m()],_e.prototype,"_noticeMessage",null),_e=e([p("esri.widgets.Editor")],_e);const ve=_e;export{ve as default};
5
+ import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{deprecatedFunction as i}from"../core/deprecate.js";import s from"../core/Logger.js";import{destroyMaybe as o,abortMaybe as r,mappedFind as a}from"../core/maybe.js";import{createResolver as n}from"../core/promiseUtils.js";import{watch as l,on as c,when as d,initial as h}from"../core/reactiveUtils.js";import{property as m,subclass as p}from"../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../core/support/UpdatingHandles.js";import g from"../views/interactive/sketch/SketchValueOptions.js";import w from"./Attachments.js";import _ from"./BatchAttributeForm.js";import v from"./FeatureForm.js";import f from"./FeatureTemplates.js";import b from"./Spinner.js";import y from"./Widget.js";import{VisibleElements as k}from"./BatchAttributeForm/VisibleElements.js";import{css as F}from"./Editor/css.js";import M from"./Editor/EditorViewModel.js";import{isModelUpload as A}from"./Editor/modelUploadUtils.js";import T from"./Editor/VisibleElements.js";import{isFeatureFormViewModel as S,isUpdateWorkflow as C,isUpdateFeaturesWorkflow as L,isUpdateFeatureWorkflow as E,isBatchAttributeFormViewModel as W,findEditorItemForLayer as P}from"./Editor/workflowUtils.js";import{loadCreateFeaturesPanelContentComponents as I,CreateFeaturesPanelContent as j}from"./Editor/components/CreateFeaturesPanelContent.js";import{loadFeatureListComponents as U,FeatureList as V}from"./Editor/components/FeatureList.js";import{loadFooterActionsComponents as D,FooterActions as x}from"./Editor/components/FooterActions.js";import{loadNoticesComponents as B,Notice as O}from"./Editor/components/Notices.js";import{loadPanelContentComponents as N,PanelContent as H,PanelContentSection as G,PanelContentMessage as z}from"./Editor/components/PanelContent.js";import{PanelToolbar as R,loadPanelToolbarComponents as q}from"./Editor/components/PanelToolbar.js";import{loadPromptComponents as K,Prompt as Z}from"./Editor/components/Prompt.js";import{loadUpdateFeaturePanelContentComponents as $,UpdateFeaturePanelContent as J}from"./Editor/components/UpdateFeaturePanelContent.js";import{loadUploadDetailsComponents as Q,UploadDetails as X}from"./Editor/components/UploadDetails.js";import{CreateToolVisibilityMap as Y}from"./Sketch/CreateToolVisibilityMap.js";import{SelectionToolVisibilityMap as ee}from"./Sketch/SelectionToolVisibilityMap.js";import{VisibleElements as te}from"./Sketch/VisibleElements.js";import{loadCalciteComponents as ie}from"./support/componentsUtils.js";import{globalCss as se}from"./support/globalCss.js";import{incrementHeadingLevel as oe,Heading as re}from"./support/Heading.js";import{renderItem as ae}from"./support/ItemList.js";import{connectDelayedLoading as ne}from"./support/loaderUtils.js";import le from"./support/SelectionList.js";import ce from"./support/SelectionToolbar.js";import{messageBundle as de,vmEvent as he,tsx as me}from"./support/widget.js";import{isLayerItem as pe}from"./support/SelectionList/selectionListUtils.js";import ue from"./support/SelectionList/VisibleElements.js";import ge from"./support/SelectionToolbar/VisibleElements.js";const we=Symbol("sketch-setup-handles");let _e=class extends y{constructor(e,i){super(e,i),this._batchAttributeForm=new _({visibleElements:new k({loadingIndicator:!1})}),this._featureForm=new v,this._sketchToolbar=null,this._attachments=new w({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._associationItemList=null,this._associationSettings=null,this._featureTemplates=new f({enableListScroll:!1,renderItemContentEnd:e=>e.supportsUpload?me("calcite-icon",{class:F.templateItemContentEnd,icon:"upload-to",key:"upload-icon"}):null,renderItemLabel:e=>e.label,renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new b,this._loading=!1,this._selectionList=new le({displayMode:"layer",itemActionConfigs:this._selectionListItemActionConfigs,onListItemSelect:({item:e})=>this._onSelectionListItemSelect(e),visibleElements:new ue({header:!1})}),this._selectionToolbar=new ce({visibleElements:new ge({chip:!1})}),this._updatingHandles=new u,this.headingLevel=4,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.messagesFeature=null,this.supportingWidgetDefaults=null,this.viewModel=new M,this.visibleElements=new T,this._renderAttachments=()=>this._attachments.render(),this._renderFeatureForm=()=>this._featureForm.render(),this._renderBatchAttributeForm=()=>this._batchAttributeForm.render(),this._renderFeatureTemplates=()=>this._featureTemplates.render(),this._renderSelectionList=()=>this._selectionList.render(),this._renderSelectionToolbar=()=>this._selectionToolbar.render(),this._renderSketch=()=>this._sketchToolbar?me("div",{class:F.sketchContainer,key:"editor-sketch-container"},this._sketchToolbar?.render()):void 0,this._renderSelectIcon=()=>me("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({heading:e,key:t,selected:i},...s)=>{const{visibleElements:o}=this;return me("calcite-flow-item",{closable:!1,heading:e,headingLevel:this.headingLevel,key:t,loading:this._loading,selected:i,onCalciteFlowItemBack:this._onBack},o.settingsMenu?me(R,{editorViewModel:this.viewModel,messagesCommon:this.messagesCommon,visibleElements:o}):null,...s)},this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this,i={title:e.cancelEditTitle,message:e.cancelEditWarningMessage,yesLabel:e.discardEdits,noLabel:e.continueEditing};return"create-features"===t?.type&&A(t.data.creationInfo)?this._showPromptAndWait("success"===t.data.upload?.state?e.modelUploads.cancelPlacementPrompt:e.modelUploads.cancelUploadPrompt):"update"===t?.type&&S(t.formViewModel)&&t.formViewModel.activeAssociation?this._showPromptAndWait({...i,message:e.cancelAssociationEditWarning}):this._showPromptAndWait(i)},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPromptAndWait({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._showPrompt=e=>{this._prompt?.cancel?.(),this._prompt=e},this._clearPrompt=()=>{this._prompt=null},this._onSave=()=>{this.viewModel.saveWorkflow()},this._onMerge=()=>{const{activeWorkflow:e}=this.viewModel;if(C(e)){const t=e.activeWorkflow;L(t)&&e.startMergingFeatures(t.viewGraphics,{initialFeatures:t.data.initialFeatures})}},this._onSplit=()=>{const{activeWorkflow:e}=this.viewModel;if(C(e)){const t=e.activeWorkflow;if(E(t)){const i=t.viewGraphic;i&&e.startSplittingFeature(i,{initialFeature:t.data.edits.initialFeature??i})}}},this._onDelete=()=>{const e=this.viewModel.activeFeatureCount,i=e>1?this.messages.multiFeature:this.messages.singleFeature;this._showPrompt({title:i.deleteWarningTitle,message:i.deleteWarningMessage,context:"danger",actions:{primary:{label:t(i.delete,{count:e}),action:()=>{this.deleteFeatures(),this._clearPrompt()}},secondary:{label:i.keep,action:this._clearPrompt}}})},this._onDeleteAssociation=()=>{const{messages:e,messagesCommon:t}=this;this._showPrompt({title:e.deleteAssociationTitle,message:e.deleteAssociationMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteAssociationFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepAssociation,action:this._clearPrompt}}})},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onBack=e=>(e?.stopPropagation(),this.viewModel.back()),this._onAttachmentAdd=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type||"update"===e.type&&"create-features"===e.activeWorkflow?.type?(this._attachments.addFile(),e.back()):this._attachments.addAttachment().then(()=>e.back()))},this._onAttachmentUpdate=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.back()):this._attachments.updateAttachment().then(()=>e.back()))},this._onAttachmentDelete=()=>{const{messages:e,messagesCommon:t}=this;this._showPrompt({title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}})},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.back(),this._clearPrompt())},this._onAttachmentsError=e=>{this._showPrompt({title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}})}}initialize(){this._featureForm.showPrompt=this._showPrompt,this._featureForm.clearPrompt=this._clearPrompt,this.addHandles([l(()=>oe(this.headingLevel),e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e},h),c(()=>this.viewModel.activeWorkflow,"cancel-request",({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then(t=>t?e.allow():e.deny())}),d(()=>this.viewModel.formViewModel,e=>{W(e)?this._batchAttributeForm.viewModel=e:this._featureForm.viewModel=e},h),d(()=>this.viewModel.utilityNetworkAssociationAddAssociationViewModel,e=>{this._associationItemList?this._associationItemList.viewModel=e:this._updatingHandles.addPromise(this._initializeAssociationItemList(e))},h),d(()=>this.viewModel.utilityNetworkAssociationAddAssociationViewModel?.association,()=>{this._setUpAssociationSettings()}),l(()=>[this.viewModel,this.viewModel?.attachmentsViewModel,this.viewModel?.featureTemplatesViewModel,this.viewModel?.spinnerViewModel,this.viewModel?.selectionListViewModel,this.viewModel?.selectionToolbarViewModel],([e,t,i,s,o,r])=>{this._attachments.viewModel=t,this._featureTemplates.viewModel=i,this._spinner.viewModel=s,this._selectionList.viewModel=o,this._selectionToolbar.viewModel=r,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt},h),l(()=>this.view,(e,t)=>{const i=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,i),e?.ui.add(this._spinner,{key:i,position:"manual"}),this._associationItemList&&(this._associationItemList.view=e)},h),l(()=>[this.supportingWidgetDefaults,this.viewModel.sketchViewModel],([e])=>{e&&(e.attachments&&this._attachments.set(e.attachments),e.featureForm&&this._featureForm.set(e.featureForm),e.featureTemplates&&this._featureTemplates.set(e.featureTemplates),e.selectionToolbar&&this._selectionToolbar.set(e.selectionToolbar),e.sketch&&this.viewModel.sketchViewModel?.set(e.sketch))},h),d(()=>this._attachments?.error,e=>this._onAttachmentsError(e)),d(()=>this._selectionListItemActionConfigs,()=>{this._selectionList.itemActionConfigs=this._selectionListItemActionConfigs}),d(()=>this.viewModel?.failures,e=>{const{messages:i}=this,[{error:s,retry:o,cancel:r}]=e;this._showPrompt({title:i.errorWarningTitle,message:t(i.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:i.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:i.ignore,action:()=>{r(),this._clearPrompt()}}}})}),l(()=>this.viewModel?.state,e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}}),l(()=>this.viewModel.featureFormDisabled,e=>this._featureForm.disabled=e),l(()=>this.visibleElements.sketch,()=>this._setupSketch(),h),l(()=>this.visibleElements.zoomToButton,e=>this._selectionList.visibleElements.zoomToButton=e,h),ne({getLoading:()=>{const{viewModel:e}=this;return e.syncing||e.updating||this._attachments.submitting||this._updatingHandles.updating},setEffectiveLoading:e=>{this._loading=e}})])}destroy(){this._associationItemList?.destroy(),this._associationSettings?.destroy(),this._selectionList.destroy(),this._selectionToolbar.destroy(),this._attachments.destroy(),this._batchAttributeForm.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy(),this._spinner.destroy(),this._sketchToolbar=o(this._sketchToolbar),this._sketchImportAbortController=r(this._sketchImportAbortController)}loadDependencies(){return Promise.all([ie({flow:()=>import("@esri/calcite-components/dist/components/calcite-flow"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),list:()=>import("@esri/calcite-components/dist/components/calcite-list")}),I(),U(),D(),B(),N(),q(),K(),$(),Q()])}get _hasInvalidBatchSelection(){return this._hasSelectionFromMultipleLayers||this._selectionCountExceedsMaximum||0===this._selectionList.visibleFeatureCount}get _hasSelectionFromMultipleLayers(){return this._selectionList.visibleLayerCount>1}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger"}}get _selectionCountExceedsMaximum(){const e=this._batchAttributeForm.maximumFeatureCount,{activeLayerItem:t,effectiveCount:i,filterText:s,visibleFeatureCount:o}=this._selectionList;return null!=s&&""!==s?o>e:t?t.total>e:i>e}get _selectionListItemActionConfigs(){const{messages:e,visibleElements:t}=this,i=t?.mergeButton??!0;return[{label:e?.batchEditing?.editThisFeature,icon:"edit-attributes",type:"feature",callback:({item:e})=>this._onSelectionListMenuItemSelect(e,"update")},{label:e?.batchEditing.editTheseFeatures,icon:"edit-attributes",type:"layer",callback:({item:e})=>this._onSelectionListMenuItemSelect(e,"update")},{label:e?.batchEditing.mergeTheseFeatures,icon:"merge",type:"layer",hidden:!i||(({item:e})=>{if(!pe(e))return!0;const t=P(this.viewModel.editorItems,e.layer);return!t?.supportsMergeFeaturesWorkflow||e.visibleTotal<2}),callback:({item:e})=>this._onSelectionListMenuItemSelect(e,"merge")}]}get _visibleSelectionCount(){const{activeLayerItem:e,effectiveCount:t,filterText:i,visibleFeatureCount:s}=this._selectionList;return null!=i&&""!==i?s:e?e.total:t}get activeWorkflow(){return this.viewModel.activeWorkflow}get effectiveSelectionManager(){return this.viewModel.effectiveSelectionManager}get hideTemplatesForInactiveLayers(){return this.viewModel.hideTemplatesForInactiveLayers}set hideTemplatesForInactiveLayers(e){this.viewModel.hideTemplatesForInactiveLayers=e}get icon(){return"pencil"}set icon(e){this._overrideIfSome("icon",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 valueOptions(){return this.viewModel.valueOptions}set valueOptions(e){this.viewModel.valueOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureEdit(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureEdit(e)}startMergeFeaturesWorkflow(e,t={}){return this.viewModel.startMergeFeaturesWorkflow(e,t)}startSplitFeatureWorkflow(e,t={}){return this.viewModel.startSplitFeatureWorkflow(e,t)}async startUpdateFeaturesWorkflow(e){return this.viewModel.startUpdateFeaturesWorkflow(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}startUpdateWorkflowWithActiveSelection(){return this.viewModel.startUpdateWorkflowWithActiveSelection()}deleteFeatureFromWorkflow(){return i(s.getLogger(this),"Editor.deleteFeatureFromWorkflow is deprecated. Use Editor.deleteFeatures instead.",{version:"4.33",replacement:"Editor.deleteFeatures",warnOnce:!0}),this.deleteFeatures()}async deleteFeatures(){await this.viewModel.deleteFeatures()}deleteAssociationFromWorkflow(){return this.viewModel.deleteAssociationFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{visibleElements:e,viewModel:t}=this,i=this.classes(F.base,se.widget,se.panel);if(!t)return me("div",{class:i,key:"empty"});const{pageStack:s}=t,o=s.length-1,r=s.map((e,t)=>this._renderPage(e,t===o));return me("div",{class:i,key:"base"},e.flow?me("calcite-flow",{inert:!!this._prompt,key:"flow"},r):r,this._prompt?me(Z,{...this._prompt,headingLevel:this.headingLevel}):void 0)}_renderPage(e,t){const i={selected:t};switch(e){case"disabled":break;case"ready":return this._renderReady(i);case"viewing-selection-list":return this._renderSelectionListPage(i);case"awaiting-feature-creation-info":return this._renderAwaitingFeatureCreationInfo(i);case"creating-features-upload-details":return this._renderUploadDetails(i);case"creating-features":return this._renderCreatingFeatures(i);case"editing-existing-feature":case"editing-features":case"editing-attributes":case"choosing-key-feature":return this._renderUpdateFeature(i);case"awaiting-update-feature-candidate":return this._renderFeatureList(i);case"adding-attachment":return this._renderAttachmentAdding(i);case"editing-attachment":return this._renderAttachmentEditing(i);case"viewing-associated-layers":case"viewing-associated-features":return this._renderViewAssociatedLayers(i);case"add-association-select-layer":case"add-association-select-feature":return this._renderSelectFeature(i);case"add-association-create-association":return this._renderAddAssociation(i);case"drawing-splitter-geometry":return this._renderDrawingSplitGeometry(i);case"reviewing-features":return this._renderReviewingSplitFeatures(i)}return me("div",{key:"empty-page"})}_renderAwaitingFeatureCreationInfo(e){const{EditorPanel:t,messages:i}=this;return me(t,{heading:i.selectTemplate,key:"templates-panel",...e},me(H,{key:"feature-templates"},me(G,null,this._renderFeatureTemplates())))}_renderUploadDetails(e){const{EditorPanel:t,activeWorkflow:i,messages:s}=this;if("create-features"!==i?.type)return null;const o=i.data.upload;return o?me(t,{heading:s.createFeatures,key:"upload-details-panel",...e},me(X,{helpMessage:this._helpMessage,messages:s,upload:o})):null}_renderCreatingFeatures(e){const{EditorPanel:t,activeWorkflow:i,messages:s,messagesCommon:o,headingLevel:r,viewModel:a}=this;if(!i)return null;const n="create-features"===i.type&&i.numPendingFeatures>0||"update"===i.type&&"create-features"===i?.activeWorkflow?.type&&i.activeWorkflow?.numPendingFeatures>0;return me(t,{heading:s.createFeatures,key:"create-features-panel",...e},n?me(J,{editorViewModel:a,headingLevel:r,messages:s,messagesCommon:o,renderAttachments:this._renderAttachments,renderBatchAttributeForm:this._renderBatchAttributeForm,renderFeatureForm:this._renderFeatureForm,renderSketchToolbar:this._renderSketch,visibleElements:this.visibleElements,onDelete:this._onDelete,onDeleteAssociation:this._onDeleteAssociation,onSave:this._onSave}):me(j,{helpMessage:this._helpMessage,renderSketchToolbar:this._renderSketch}))}_renderUpdateFeature(e){const{EditorPanel:t,messages:i,messagesCommon:s,headingLevel:o,viewModel:r}=this,a=r.activeFeatureCount>1?i.multiFeature.editPanelTitle:i.singleFeature.editPanelTitle;return me(t,{heading:a,key:"update-feature-panel",...e},me(J,{editorViewModel:r,headingLevel:o,messages:i,messagesCommon:s,renderAttachments:this._renderAttachments,renderBatchAttributeForm:this._renderBatchAttributeForm,renderFeatureForm:this._renderFeatureForm,visibleElements:this.visibleElements,onDelete:this._onDelete,onDeleteAssociation:this._onDeleteAssociation,onMerge:this._onMerge,onSave:this._onSave,onSplit:this._onSplit}))}_renderDrawingSplitGeometry(e){const{EditorPanel:t}=this;return me(t,{heading:this.messages.splitFeature,key:"draw-split-geometry-panel",...e},me(j,{helpMessage:this._helpMessage,noticeMessage:this._noticeMessage,renderSketchToolbar:this._renderSketch}))}_renderReviewingSplitFeatures(e){const{EditorPanel:t,messages:i,messagesCommon:s,headingLevel:o,viewModel:r}=this;return me(t,{heading:i.splitFeature,key:"review-split-features-panel",...e},me(J,{editorViewModel:r,headingLevel:o,messages:i,messagesCommon:s,renderAttachments:this._renderAttachments,renderBatchAttributeForm:this._renderBatchAttributeForm,renderFeatureForm:this._renderFeatureForm,visibleElements:this.visibleElements,onSave:this._onSave}))}_getAssociationTypeTitle(e){const{messages:t}=this;if(!e)return t.singleFeature.editPanelTitle;if(e.title)return e.title;const{messagesFeature:i}=this;switch(e.type){case"attachment":return i.associationsAttachments;case"connectivity":return i.associationsConnectivity;case"structure":return i.associationsStructure;case"content":return i.associationsContents;case"container":return i.associationsContainer}}_getAddAssociationTypeTitle(e){const{messages:t}=this;if(!e)return t.singleFeature.editPanelTitle;const i=t.associations;switch(e.type){case"attachment":return i.addAttachment;case"connectivity":return i.addConnectivity;case"structure":return i.addStructure;case"content":return i.addContent;case"container":return i.addContainer}}async _initializeAssociationItemList(e){const t=(await import("./FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationItemList.js")).default;this._associationItemList=new t({view:this.view,viewModel:e})}async _initializeAssociationSettings(){const e=new(0,(await import("./FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationSettings.js")).default);return this._associationSettings=e,e}_renderViewAssociatedLayers(e){const{EditorPanel:t,messages:i,messagesCommon:s,headingLevel:o,viewModel:r}=this,a=r.featureFormViewModel?.activeAssociationInput?.activeAssociationType,n=this._getAssociationTypeTitle(a);return me(t,{heading:n,key:"viewing-associated-layers-panel",...e},me(J,{editorViewModel:r,headingLevel:o,messages:i,messagesCommon:s,renderAttachments:this._renderAttachments,renderBatchAttributeForm:this._renderBatchAttributeForm,renderFeatureForm:this._renderFeatureForm,renderSketchToolbar:this._renderSketch,visibleElements:this.visibleElements,onDelete:this._onDelete,onDeleteAssociation:this._onDeleteAssociation,onSave:this._onSave}))}_renderSelectFeature(e){const{_associationItemList:t,EditorPanel:i,viewModel:s,messagesCommon:o}=this,r=s.utilityNetworkAssociationAddAssociationViewModel,a=this._getAddAssociationTypeTitle(r?.associationType),n="ready"!==r?.state||this.viewModel.featureFormDisabled;return t?me(i,{heading:a,key:"add-association-select-feature",...e},me(H,{key:"select-feature"},me(G,null,t.render())),me(x,{buttons:[t.filterOptionsVisible?{appearance:"solid",label:o.apply,disabled:n,onClick:()=>t.applyFilterOptions(),type:"button"}:void 0,{appearance:"outline",label:o.cancel,disabled:n,onClick:()=>{"update"===s.activeWorkflow?.type&&(r?.reset(),s.activeWorkflow.cancelActiveWorkflow())},type:"button"}]})):me(i,{heading:a,key:"add-association-select-feature",...e})}async _setUpAssociationSettings(){const{viewModel:e}=this,t=this._associationSettings??await this._updatingHandles.addPromise(this._initializeAssociationSettings()),i=e.utilityNetworkAssociationAddAssociationViewModel,s="update"===e.activeWorkflow?.type?e.activeWorkflow:null,o=s?s.activeWorkflow:null,r="add-association"===o?.type?o.sourceFeatureItem:null,a=i?.selectedFeature,n=i?.association,l=i?.utilityNetwork;r&&a&&n&&l&&(t.sourceFeature=r,t.targetFeature=a,t.association=n,t.utilityNetwork=l)}_renderAddAssociation(e){const{_associationSettings:t,EditorPanel:i,viewModel:s,messagesCommon:o}=this;if(!t)return null;const r=s.utilityNetworkAssociationAddAssociationViewModel,a=this._getAddAssociationTypeTitle(r?.associationType),n="ready"!==r?.state;return me(i,{heading:a,key:"add-association",...e},me(H,{key:"add-association-content"},me(G,null,t.render())),me(x,{buttons:[{label:o.add,disabled:n||!r.canAddAssociation,onClick:()=>this._onSave(),type:"button"},{appearance:"outline",label:o.cancel,disabled:n,onClick:()=>{"update"===s.activeWorkflow?.type&&s.activeWorkflow.cancelActiveWorkflow()},type:"button"}]}))}_renderCustomTemplateGroupContent(e){const{messages:t,viewModel:i}=this,s=a(e.group.items,e=>i.itemHasInvalidFormTemplate(e)?t.formFieldCreateError:void 0);return s?me(O,{kind:"warning",message:s}):null}_renderAttachmentAdding(e){const{EditorPanel:t,_attachments:i,messages:s,messagesCommon:o}=this;return me(t,{heading:s.addAttachment,key:"attachment-adding-panel",...e},me(H,{key:"attachments"},this._renderAttachments()),me(x,{buttons:[{label:i.submitting?o.cancel:o.add,disabled:i.submitting||!i.selectedFile,onClick:this._onAttachmentAdd,type:"button"}]}))}_renderSelectionListPage(e){const{_hasSelectionFromMultipleLayers:i,_hasInvalidBatchSelection:s,_selectionCountExceedsMaximum:o,_selectionList:r,_visibleSelectionCount:a,messages:n,EditorPanel:l}=this,{batchUpdateActions:c}=this.visibleElements,{maxVisibleFeatureCountPerLayer:d}=r;return me(l,{heading:n.widgetLabel,key:"selection-list-panel",...e},this.visibleElements.selectionToolbar&&"3d"!==this.view?.type?me("div",{class:F.selectionToolbarContainer},this._renderSelectionToolbar()):void 0,me(H,{key:"selection-list"},me(G,null,this._renderSelectionList())),me(x,{buttons:[c?{label:t(n.batchEditing.editCount,{count:a}),disabled:s,onClick:()=>this.startUpdateWorkflowWithActiveSelection(),type:"button"}:void 0],notice:c&&i?{text:n.batchEditing.selectOneLayer,icon:"information"}:c&&o?{text:t(this.messages.multiFeature.formFailedToLoadTooManyFeatures,{num:d}),icon:"information"}:void 0}))}_renderAttachmentEditing(e){const{EditorPanel:t,_attachments:i,activeWorkflow:s,messages:o,messagesCommon:r}=this;return s?me(t,{heading:o.editAttachment,key:"attachment-editing-panel",...e},me(H,{key:"attachments"},this._renderAttachments()),s.shouldAllowAttachmentEditing?me(x,{buttons:[{label:r.update,disabled:i.submitting||!i.selectedFile,onClick:this._onAttachmentUpdate,type:"button"},{...this._deleteButtonCommonInfo,onClick:this._onAttachmentDelete,disabled:i.submitting,label:r.delete,type:"button"}]}):void 0):null}_renderReady(e){const{EditorPanel:t,messages:i,viewModel:s,visibleElements:o}=this,r=this._helpMessage;return me(t,{heading:i.widgetLabel,key:"landing-panel",...e},me(H,{key:"landing-content"},s.editorItems.length?[o.editFeaturesSection?me(G,{key:"edit-actions"},this._renderUpdateActions()):null,o.createFeaturesSection&&s.canCreateVisible?me(G,{key:"create-actions"},this._renderCreateActions()):null]:me(z,{key:"no-content"},i.noEditableLayers)),r?me("div",{class:F.helpMessage,key:"footer-actions",slot:"footer"},r):void 0)}get _helpMessage(){return this.getHelpMessageString(this.activeWorkflow?.helpMessage)}get _noticeMessage(){return this.getHelpMessageString(this.activeWorkflow?.noticeMessage)}_renderUpdateActions(){const{messages:e,messagesCommon:t,viewModel:i}=this,s={id:"select",label:t.select};return me("div",{class:F.updateActions,key:"update-actions"},me(re,{level:oe(this.headingLevel)},e.editFeatures),this.visibleElements.selectionToolbar&&"3d"!==this.view?.type?me("div",{class:F.selectionToolbarContainer},this._renderSelectionToolbar()):me("calcite-list",{class:F.updateActionsList,label:e.editFeaturesList,selectionAppearance:"border",selectionMode:"single"},ae({disabled:!i.canUpdateVisible,grouped:!1,item:s,selectedItem:"awaiting-feature-to-update"===i.activeWorkflow?.stepId?s:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){return me("div",{key:"create-actions"},me(re,{level:oe(this.headingLevel)},this.messages.createFeatures),me("div",{class:F.featureTemplatesContainer,key:"templates"},this._renderFeatureTemplates()))}_renderFeatureList(e){const{EditorPanel:i,viewModel:s}=this,{activeWorkflow:o}=s;if("update"!==o?.type)return null;const r=o.data.candidates,a=t(this.messages.multipleFeaturesTemplate,{total:r.length});return me(i,{heading:a,key:"feature-list",...e},me(V,{editorItems:s.editorItems,editorMessages:this.messages,filterText:this._filterText,id:this.id,messagesTemplates:this.messagesTemplates,workflow:o,onFilterTextChange:e=>this._filterText=e,onSelectFeature:(e,t)=>s.selectFeature(e,t),onZoomTo:e=>s.zoomTo(e)}))}_showPromptAndWait({title:e,message:t,yesLabel:i,noLabel:s}){const o=n(),{view:r}=this,a=r?.focused;return this._showPrompt({title:e,message:t,context:"danger",actions:{primary:{label:i,action:()=>o.resolve(!0)},secondary:{label:s,action:()=>o.resolve(!1)}}}),o.promise.finally(()=>{this._clearPrompt(),a&&r?.focus()})}async _onSelectionListItemSelect(e){await this.viewModel.onSelectionListItemSelect(e)}async _onSelectionListMenuItemSelect(e,t){await this.viewModel.onSelectionListMenuItemSelect(e,t)}async _setupSketch(){if(!!!this.visibleElements.sketch)return this._sketchImportAbortController=r(this._sketchImportAbortController),this._sketchToolbar=o(this._sketchToolbar),void this.removeHandles(we);if(this._sketchImportAbortController)return;const e=new AbortController;this._sketchImportAbortController=e;const t=await import("./Sketch.js");if(!e.signal.aborted)try{this._sketchToolbar=new t.default({toolbarKind:"docked",contextualToolLocation:"inline-end",scale:"s",visibleElements:new te({deleteButton:!1,settingsMenu:!1,directionModePicker:!1,selectionCountLabel:!1,duplicateButton:!1,createTools:new Y({freehandPolygon:!0,freehandPolyline:!0}),selectionTools:new ee({"lasso-selection":!1,"rectangle-selection":!1})})}),this.addHandles([l(()=>{const e=this.viewModel.activeLeafWorkflow;return e&&"availableCreateTools"in e?e.availableCreateTools:null},e=>{this._sketchToolbar&&(this._sketchToolbar.availableCreateTools=e)},h),l(()=>this.visibleElements.undoRedoButtons,e=>{this._sketchToolbar&&(this._sketchToolbar.visibleElements.undoRedoMenu=e)},h),d(()=>this.viewModel?.sketchViewModel,e=>{this._sketchToolbar&&(this._sketchToolbar.viewModel=e)},h)],we)}finally{this._sketchImportAbortController=null}}getHelpMessageString(e){const{messages:t,view:i}=this;return e?t["3d"===i?.type?"helpMessages3d":"helpMessages2d"]?.[e]:void 0}get test(){return{sketch:this._sketchToolbar,showPrompt:this._showPromptAndWait.bind(this)}}};e([m()],_e.prototype,"_batchAttributeForm",void 0),e([m()],_e.prototype,"_featureForm",void 0),e([m()],_e.prototype,"_sketchToolbar",void 0),e([m()],_e.prototype,"_attachments",void 0),e([m()],_e.prototype,"_associationItemList",void 0),e([m()],_e.prototype,"_associationSettings",void 0),e([m()],_e.prototype,"_featureTemplates",void 0),e([m()],_e.prototype,"_filterText",void 0),e([m()],_e.prototype,"_hasInvalidBatchSelection",null),e([m()],_e.prototype,"_hasSelectionFromMultipleLayers",null),e([m()],_e.prototype,"_prompt",void 0),e([m()],_e.prototype,"_spinner",void 0),e([m()],_e.prototype,"_deleteButtonCommonInfo",null),e([m()],_e.prototype,"_loading",void 0),e([m()],_e.prototype,"_selectionCountExceedsMaximum",null),e([m()],_e.prototype,"_selectionList",void 0),e([m()],_e.prototype,"_selectionListItemActionConfigs",null),e([m()],_e.prototype,"_selectionToolbar",void 0),e([m()],_e.prototype,"_visibleSelectionCount",null),e([m({readOnly:!0})],_e.prototype,"activeWorkflow",null),e([m()],_e.prototype,"effectiveSelectionManager",null),e([m()],_e.prototype,"headingLevel",void 0),e([m()],_e.prototype,"hideTemplatesForInactiveLayers",null),e([m()],_e.prototype,"icon",null),e([m()],_e.prototype,"label",null),e([m()],_e.prototype,"labelOptions",null),e([m()],_e.prototype,"layerInfos",null),e([m(),de("esri/widgets/Editor/t9n/Editor")],_e.prototype,"messages",void 0),e([m(),de("esri/t9n/common")],_e.prototype,"messagesCommon",void 0),e([m(),de("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],_e.prototype,"messagesTemplates",void 0),e([m(),de("esri/widgets/Feature/t9n/Feature")],_e.prototype,"messagesFeature",void 0),e([m()],_e.prototype,"snappingOptions",null),e([m()],_e.prototype,"tooltipOptions",null),e([m()],_e.prototype,"supportingWidgetDefaults",void 0),e([m({type:g,nonNullable:!0})],_e.prototype,"valueOptions",null),e([m()],_e.prototype,"view",null),e([m(),he(["sketch-create","sketch-delete","sketch-update","workflow-cancel","workflow-commit"])],_e.prototype,"viewModel",void 0),e([m({type:T,nonNullable:!0})],_e.prototype,"visibleElements",void 0),e([m()],_e.prototype,"_helpMessage",null),e([m()],_e.prototype,"_noticeMessage",null),_e=e([p("esri.widgets.Editor")],_e);const ve=_e;export{ve 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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import r from"../../core/Accessor.js";import o from"../../core/Collection.js";import{deprecatedModule as t}from"../../core/deprecate.js";import i from"../../core/Error.js";import s from"../../core/Logger.js";import{watch as n,on as a}from"../../core/reactiveUtils.js";import{removeTrailingSlash as d}from"../../core/urlUtils.js";import{property as l,subclass as u}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as h}from"../../core/support/UpdatingHandles.js";import{getOwningPortalUrl as p}from"../../layers/support/layerUtils.js";import v from"../../portal/Portal.js";import{hasPrivilege as m}from"../../portal/support/utils.js";import g from"../../rest/featureService/FeatureService.js";import{createFeatureServices as c}from"../../rest/featureService/utils.js";import{getVersioningStates as w}from"../../versionManagement/utils.js";import f from"../../versionManagement/VersioningState.js";import _ from"../../versionManagement/VersionManagementService.js";import{createVersionAdapters as E}from"../../versionManagement/versionAdapters/utils.js";t(s.getLogger("esri.widgets.verisonManagement.VersionManagementViewModel"),"VersionManagementViewModel",{replacement:"Use esri/versionManagement/VersionManager instead",version:"5.0",warnOnce:!0});let L=class extends r{constructor(e){super(e),this._portalLookup=new Map,this._updatingHandlesLoad=new h,this._updatingHandlesExecute=new h,this.executionError=void 0,this.featureServiceLookup=new Map,this.loadError=void 0,this.serverVersionLookup=new Map,this.serviceNameLookup=new Map,this.userLookup=new Map,this.versionAdministratorLookup=new Map,this.versioningStateLookup=new Map,this.view=null,this.versioningStates=null}initialize(){this._viewChangeHandle(),this.addHandles([n(()=>this.view,()=>{this._resetAllLookupProperties(),this._viewChangeHandle()}),n(()=>this.versioningStates,()=>{this._resetVersioningLookupProperties(),this._setVersioningStatesLookups()})])}destroy(){this._updatingHandlesLoad.destroy(),this._updatingHandlesExecute.destroy()}get state(){return this._updatingHandlesLoad.updating?"loading":this.loadError?"disabled":this._updatingHandlesExecute.updating?"executing":this.executionError?"failed":"ready"}async alterVersion(e){return this._updatingHandlesExecute.addPromise(this._alterVersionInternal(e))}async changeVersion(e,r,o){return this._updatingHandlesExecute.addPromise(this._changeVersionInternal(e,r,o))}async createVersion(e){return this._updatingHandlesExecute.addPromise(this._createVersionInternal(e))}async deleteVersion(e,r,o){return this._updatingHandlesExecute.addPromise(this._deleteVersionInternal(e,r,o))}async getVersionInfos(e){return this._updatingHandlesExecute.addPromise(this._getVersionInfosInternal(e))}async _alterVersionInternal(e){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const r=this.versioningStateLookup.get(e.featureServerUrl);if(!r)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");if(!this.serverVersionLookup.has(e.featureServerUrl)||this.serverVersionLookup.get(e.featureServerUrl)<=11.1)throw this._logError("version-management-view-model:execution-error","no-valid-enterprise-version"),new i("version-management-view-model:execution-error",this.executionError??"");const{featureServerUrl:o,versionIdentifier:t,...s}=e,n=await r.alterVersion(t,s).catch(e=>{throw this._logExecutionError(e),e});return await this.getVersionInfos(o),n}async _changeVersionInternal(e,r,o){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const t=this.versioningStateLookup.get(e);if(!t)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");const s={name:r,guid:o};return await t.changeVersion(s).catch(e=>{throw this._logExecutionError(e),e})}_updateVersionableItems(e){this._updatingHandlesLoad.addPromise((async()=>{E(e.added).forEach(e=>{const r=e.featureServiceUrl,o=this.versioningStateLookup.get(r);o&&(o.versionableItems.find(r=>r.versionableItem===e.versionableItem)||o.versionableItems.add(e))});E(e.removed).forEach(e=>{const{allLayers:r,allTables:o}=this.view.map,t=e.featureServiceUrl,i=this.versioningStateLookup.get(t);if(!i)return void this._logError("version-management-view-model:execution-error","no-version-management-service-found");const s=e=>("feature"===e.type||"subtype-group"===e.type)&&(e.url?.includes(t)??!1);[...r.filter(s),...o.filter(s)].length||(this.featureServiceLookup.delete(t),this.serviceNameLookup.delete(t),this.versioningStateLookup.delete(t),this.versioningStates.remove(i));const n=i.versionableItems.find(r=>r.versionableItem===e.versionableItem);n&&i.versionableItems.remove(n)})})())}async _createVersionInternal(e){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const r=e.featureServerUrl,o=this.versioningStateLookup.get(r);if(!o)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");const t=this.userLookup.get(r).toUpperCase(),s=this._isEmptyString(e.ownerName)?t:e.ownerName?.trim().toUpperCase();if(s!==t&&this.serverVersionLookup.get(r)<=11.1)throw this._logError("version-management-view-model:execution-error","versioning-api-error"),new i("version-management-view-model:execution-error",this.executionError??"");let n=await(this.versioningStateLookup.get(r)?.getVersionInfos());if("SDE"===s?.toUpperCase()&&"DEFAULT"===e.versionName.toUpperCase()||n?.find(r=>r.versionIdentifier.name.toUpperCase()===(s+"."+e.versionName).toUpperCase()||r.versionIdentifier.name.toUpperCase()===(t+"."+e.versionName).toUpperCase()))throw this._logError("version-management-view-model:execution-error","no-valid-version-name"),new i("version-management-view-model:execution-error",this.executionError??"");const a=await o.versionManagementService.createVersion({versionName:e.versionName,access:s!==t?"public":e.access,description:e.description}).catch(e=>{throw this._logExecutionError(e),e});if(s!==t){const{guid:o,name:i}=a.versionIdentifier,n={featureServerUrl:r,versionIdentifier:{guid:o,name:i},access:e.access,ownerName:s};await this.alterVersion(n)||this.deleteVersion(r,t+"."+e.versionName,a.versionIdentifier.guid)}return await this.getVersionInfos(r),n=await(this.versioningStateLookup.get(r)?.getVersionInfos()),n?.find(e=>e.versionIdentifier.guid===a.versionIdentifier.guid)}async _deleteVersionInternal(e,r,o){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const t=this.versioningStateLookup.get(e);if(!t)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");if(this.serverVersionLookup.get(e)<=11.1)throw this._logError("version-management-view-model:execution-error","versioning-api-error"),new i("version-management-view-model:execution-error",this.executionError??"");const s={name:r,guid:o};return await t.deleteVersion(s).catch(e=>{throw this._logExecutionError(e),new i("version-management-view-model:execution-error",this.executionError??"")})}async _getVersionInfosInternal(e){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const r=this.featureServiceLookup.get(e)?.featureService;if(!r)throw this._logError("version-management-view-model:execution-error","no-feature-service-found"),new i("version-management-view-model:execution-error",this.executionError??"");r.loaded||await r.load().catch(e=>{throw this._logExecutionError(e),e});const o=r.url;this.serverVersionLookup.set(o,r.sourceJSON?.currentVersion??0);const t=this.userLookup.get(e);this._portalLookup.get(e)&&t?this.versionAdministratorLookup.set(o,await m(this._portalLookup.get(e),t,"features:user:manageVersions")):this.versionAdministratorLookup.set(o,!1);const s=this.versioningStateLookup.get(e);if(!s)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");s.loaded||await s.load().catch(e=>{throw this._logExecutionError(e),e});return await s.getVersionInfos(!0).catch(e=>{throw this._logExecutionError(e),e})}_isEmptyString(e){return!e||0===e.trim().length}_logError(e,r){switch(s.getLogger(this).error(new i(e,r??"")),e){case"version-management-view-model:load-error":this._setLoadError(r);break;case"version-management-view-model:execution-error":this._setExecutionError(r)}}_logExecutionError(e){this._logError("version-management-view-model:execution-error",e.message)}async _viewChangeHandle(){this._updatingHandlesLoad.addPromise((async()=>{if(this._setLoadError(),!this.view)return void this._setLoadError("no-view-property");if(this.view&&"2d"!==this.view.type)return void this._logError("version-management-view-model:load-error","sceneView-not-supported");this.removeHandles("map-change-handle"),this.addHandles([n(()=>this.view?.map,()=>{this._resetAllLookupProperties(),this._mapChangeHandle(this.versioningStates)})],"map-change-handle");const e=await this._getVersioningStates();await this._mapChangeHandle(e)})())}async _mapChangeHandle(e){this._updatingHandlesLoad.addPromise((async()=>{this._setLoadError(),this.removeHandles("map-layers-tables-change-handle"),this.addHandles([a(()=>this.view?.map.allLayers,"change",e=>{(e.added.some(({type:e})=>"feature"===e)||e.removed.some(({type:e})=>"feature"===e)||e.added.some(({type:e})=>"subtype-group"===e)||e.removed.some(({type:e})=>"subtype-group"===e))&&(this._resetServiceRelatedLookupProperties(),this._propertiesChangeInternal(this.versioningStates),this._updateVersionableItems(e))}),a(()=>this.view?.map.allTables,"change",e=>{(e.added.some(({type:e})=>"feature"===e)||e.removed.some(({type:e})=>"feature"===e)||e.added.some(({type:e})=>"subtype-group"===e)||e.removed.some(({type:e})=>"subtype-group"===e))&&(this._resetServiceRelatedLookupProperties(),this._propertiesChangeInternal(this.versioningStates),this._updateVersionableItems(e))})],"map-layers-tables-change-handle"),await this._propertiesChangeInternal(e)})())}async _propertiesChangeInternal(e){this._updatingHandlesLoad.addPromise((async()=>{const r=e=>"feature"===e.type||"subtype-group"===e.type,{allLayers:o,allTables:t}=this.view.map;if(this._setLoadError(),this.featureServiceLookup=c([...o.filter(r),...t.filter(r)]),this.featureServiceLookup.size){this._updateFeatureServiceLookup(e),this.serviceNameLookup=new Map;for(const e of this.featureServiceLookup.values()){const{featureService:r,featureService:{url:o}}=e;if(!this.serviceNameLookup.has(o)){if(r.loaded||await r.load().catch(e=>{s.getLogger(this).error(e)}),!r.versionManagementServiceUrl){this.featureServiceLookup.delete(o);continue}const e=await p(o),t=new v({authMode:"immediate",url:e});await t.load().catch(e=>{s.getLogger(this).error(e)});const i=t.user?.username;if(!r.loaded||!t.loaded||!i)continue;this.serviceNameLookup.set(d(o),o.split("/").at(-2)),this.userLookup.set(o,i),this._portalLookup.set(o,t)}}e.forEach(e=>this._handleVersioningStateLookupUpdate(e)),await this._updateVersioningStates(e),this.versioningStates=e}else this._logError("version-management-view-model:load-error","no-feature-services")})())}_updateFeatureServiceLookup(e){for(const r of e){const e=r.featureServiceUrl;if(!this.featureServiceLookup.has(e)){const o=new g({url:e}),t=r.versionableItems.toArray().flatMap(e=>"network"===e.type?null:e.versionableItem).filter(e=>!!e);this.featureServiceLookup.set(e,{featureService:o,layers:t})}}}async _updateVersioningStates(e){for(const r of this.featureServiceLookup.values()){const t=r.featureService;if(!t.versionManagementServiceUrl)continue;if(!e.find(e=>e.featureServiceUrl===t.url)&&t.versionManagementServiceUrl){const i=new o(E(r.layers)),s=new f({versionManagementService:new _({url:t.versionManagementServiceUrl}),versionableItems:i});e.add(s),this._handleVersioningStateLookupUpdate(s)}await this.getVersionInfos(t.url)}}async _getVersioningStates(){return this.versioningStates&&this.versioningStates.length?this.versioningStates:this.view?await w(this.view,!1):(this._logError("version-management-view-model:load-error","no-view-property"),new o)}_handleVersioningStateLookupUpdate(e){this.versioningStateLookup.set(e.featureServiceUrl,e)}async _setVersioningStatesLookups(){this._updatingHandlesLoad.addPromise((async()=>{this.versioningStates&&(this._updateFeatureServiceLookup(this.versioningStates),this.versioningStates.forEach(e=>this._handleVersioningStateLookupUpdate(e)),await this._updateVersioningStates(this.versioningStates))})())}_resetVersioningLookupProperties(){this.versioningStateLookup=new Map}_resetAllLookupProperties(){this._portalLookup=new Map,this.serverVersionLookup=new Map,this.userLookup=new Map,this.versioningStates=new o,this._resetVersioningLookupProperties(),this._resetServiceRelatedLookupProperties()}_resetServiceRelatedLookupProperties(){this.featureServiceLookup=new Map,this.serviceNameLookup=new Map}_setExecutionError(e){this._set("executionError",e)}_setLoadError(e){this._set("loadError",e)}};e([l()],L.prototype,"_portalLookup",void 0),e([l({readOnly:!0})],L.prototype,"executionError",void 0),e([l()],L.prototype,"featureServiceLookup",void 0),e([l({readOnly:!0})],L.prototype,"loadError",void 0),e([l()],L.prototype,"serverVersionLookup",void 0),e([l()],L.prototype,"serviceNameLookup",void 0),e([l({readOnly:!0})],L.prototype,"state",null),e([l()],L.prototype,"userLookup",void 0),e([l()],L.prototype,"versionAdministratorLookup",void 0),e([l()],L.prototype,"versioningStateLookup",void 0),e([l()],L.prototype,"view",void 0),e([l()],L.prototype,"versioningStates",void 0),L=e([u("esri.widgets.VersionManagement.VersionManagementViewModel")],L);const S=L;export{S as default};
5
+ import{__decorate as e}from"tslib";import r from"../../core/Accessor.js";import o from"../../core/Collection.js";import{deprecatedModule as t}from"../../core/deprecate.js";import i from"../../core/Error.js";import s from"../../core/Logger.js";import{watch as n,on as a}from"../../core/reactiveUtils.js";import{removeTrailingSlash as d}from"../../core/urlUtils.js";import{property as l,subclass as u}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as h}from"../../core/support/UpdatingHandles.js";import{getOwningPortalUrl as p}from"../../layers/support/layerUtils.js";import v from"../../portal/Portal.js";import{hasPrivilege as m}from"../../portal/support/utils.js";import g from"../../rest/featureService/FeatureService.js";import{createFeatureServices as c}from"../../rest/featureService/utils.js";import{getVersioningStates as w}from"../../versionManagement/utils.js";import f from"../../versionManagement/VersioningState.js";import _ from"../../versionManagement/VersionManagementService.js";import{createVersionAdapters as E}from"../../versionManagement/versionAdapters/utils.js";t(s.getLogger("esri.widgets.versionManagement.VersionManagementViewModel"),"VersionManagementViewModel",{replacement:"Use esri/versionManagement/VersionManager instead",version:"5.0",warnOnce:!0});let L=class extends r{constructor(e){super(e),this._portalLookup=new Map,this._updatingHandlesLoad=new h,this._updatingHandlesExecute=new h,this.executionError=void 0,this.featureServiceLookup=new Map,this.loadError=void 0,this.serverVersionLookup=new Map,this.serviceNameLookup=new Map,this.userLookup=new Map,this.versionAdministratorLookup=new Map,this.versioningStateLookup=new Map,this.view=null,this.versioningStates=null}initialize(){this._viewChangeHandle(),this.addHandles([n(()=>this.view,()=>{this._resetAllLookupProperties(),this._viewChangeHandle()}),n(()=>this.versioningStates,()=>{this._resetVersioningLookupProperties(),this._setVersioningStatesLookups()})])}destroy(){this._updatingHandlesLoad.destroy(),this._updatingHandlesExecute.destroy()}get state(){return this._updatingHandlesLoad.updating?"loading":this.loadError?"disabled":this._updatingHandlesExecute.updating?"executing":this.executionError?"failed":"ready"}async alterVersion(e){return this._updatingHandlesExecute.addPromise(this._alterVersionInternal(e))}async changeVersion(e,r,o){return this._updatingHandlesExecute.addPromise(this._changeVersionInternal(e,r,o))}async createVersion(e){return this._updatingHandlesExecute.addPromise(this._createVersionInternal(e))}async deleteVersion(e,r,o){return this._updatingHandlesExecute.addPromise(this._deleteVersionInternal(e,r,o))}async getVersionInfos(e){return this._updatingHandlesExecute.addPromise(this._getVersionInfosInternal(e))}async _alterVersionInternal(e){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const r=this.versioningStateLookup.get(e.featureServerUrl);if(!r)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");if(!this.serverVersionLookup.has(e.featureServerUrl)||this.serverVersionLookup.get(e.featureServerUrl)<=11.1)throw this._logError("version-management-view-model:execution-error","no-valid-enterprise-version"),new i("version-management-view-model:execution-error",this.executionError??"");const{featureServerUrl:o,versionIdentifier:t,...s}=e,n=await r.alterVersion(t,s).catch(e=>{throw this._logExecutionError(e),e});return await this.getVersionInfos(o),n}async _changeVersionInternal(e,r,o){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const t=this.versioningStateLookup.get(e);if(!t)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");const s={name:r,guid:o};return await t.changeVersion(s).catch(e=>{throw this._logExecutionError(e),e})}_updateVersionableItems(e){this._updatingHandlesLoad.addPromise((async()=>{E(e.added).forEach(e=>{const r=e.featureServiceUrl,o=this.versioningStateLookup.get(r);o&&(o.versionableItems.find(r=>r.versionableItem===e.versionableItem)||o.versionableItems.add(e))});E(e.removed).forEach(e=>{const{allLayers:r,allTables:o}=this.view.map,t=e.featureServiceUrl,i=this.versioningStateLookup.get(t);if(!i)return void this._logError("version-management-view-model:execution-error","no-version-management-service-found");const s=e=>("feature"===e.type||"subtype-group"===e.type)&&(e.url?.includes(t)??!1);[...r.filter(s),...o.filter(s)].length||(this.featureServiceLookup.delete(t),this.serviceNameLookup.delete(t),this.versioningStateLookup.delete(t),this.versioningStates.remove(i));const n=i.versionableItems.find(r=>r.versionableItem===e.versionableItem);n&&i.versionableItems.remove(n)})})())}async _createVersionInternal(e){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const r=e.featureServerUrl,o=this.versioningStateLookup.get(r);if(!o)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");const t=this.userLookup.get(r).toUpperCase(),s=this._isEmptyString(e.ownerName)?t:e.ownerName?.trim().toUpperCase();if(s!==t&&this.serverVersionLookup.get(r)<=11.1)throw this._logError("version-management-view-model:execution-error","versioning-api-error"),new i("version-management-view-model:execution-error",this.executionError??"");let n=await(this.versioningStateLookup.get(r)?.getVersionInfos());if("SDE"===s?.toUpperCase()&&"DEFAULT"===e.versionName.toUpperCase()||n?.find(r=>r.versionIdentifier.name.toUpperCase()===(s+"."+e.versionName).toUpperCase()||r.versionIdentifier.name.toUpperCase()===(t+"."+e.versionName).toUpperCase()))throw this._logError("version-management-view-model:execution-error","no-valid-version-name"),new i("version-management-view-model:execution-error",this.executionError??"");const a=await o.versionManagementService.createVersion({versionName:e.versionName,access:s!==t?"public":e.access,description:e.description}).catch(e=>{throw this._logExecutionError(e),e});if(s!==t){const{guid:o,name:i}=a.versionIdentifier,n={featureServerUrl:r,versionIdentifier:{guid:o,name:i},access:e.access,ownerName:s};await this.alterVersion(n)||this.deleteVersion(r,t+"."+e.versionName,a.versionIdentifier.guid)}return await this.getVersionInfos(r),n=await(this.versioningStateLookup.get(r)?.getVersionInfos()),n?.find(e=>e.versionIdentifier.guid===a.versionIdentifier.guid)}async _deleteVersionInternal(e,r,o){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const t=this.versioningStateLookup.get(e);if(!t)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");if(this.serverVersionLookup.get(e)<=11.1)throw this._logError("version-management-view-model:execution-error","versioning-api-error"),new i("version-management-view-model:execution-error",this.executionError??"");const s={name:r,guid:o};return await t.deleteVersion(s).catch(e=>{throw this._logExecutionError(e),new i("version-management-view-model:execution-error",this.executionError??"")})}async _getVersionInfosInternal(e){if("disabled"===this.state)throw this._logError("version-management-view-model:load-error",this.loadError),new i("version-management-view-model:load-error",this.loadError??"");this._setExecutionError();const r=this.featureServiceLookup.get(e)?.featureService;if(!r)throw this._logError("version-management-view-model:execution-error","no-feature-service-found"),new i("version-management-view-model:execution-error",this.executionError??"");r.loaded||await r.load().catch(e=>{throw this._logExecutionError(e),e});const o=r.url;this.serverVersionLookup.set(o,r.sourceJSON?.currentVersion??0);const t=this.userLookup.get(e);this._portalLookup.get(e)&&t?this.versionAdministratorLookup.set(o,await m(this._portalLookup.get(e),t,"features:user:manageVersions")):this.versionAdministratorLookup.set(o,!1);const s=this.versioningStateLookup.get(e);if(!s)throw this._logError("version-management-view-model:execution-error","no-versioning-state-found"),new i("version-management-view-model:execution-error",this.executionError??"");s.loaded||await s.load().catch(e=>{throw this._logExecutionError(e),e});return await s.getVersionInfos(!0).catch(e=>{throw this._logExecutionError(e),e})}_isEmptyString(e){return!e||0===e.trim().length}_logError(e,r){switch(s.getLogger(this).error(new i(e,r??"")),e){case"version-management-view-model:load-error":this._setLoadError(r);break;case"version-management-view-model:execution-error":this._setExecutionError(r)}}_logExecutionError(e){this._logError("version-management-view-model:execution-error",e.message)}async _viewChangeHandle(){this._updatingHandlesLoad.addPromise((async()=>{if(this._setLoadError(),!this.view)return void this._setLoadError("no-view-property");if(this.view&&"2d"!==this.view.type)return void this._logError("version-management-view-model:load-error","sceneView-not-supported");this.removeHandles("map-change-handle"),this.addHandles([n(()=>this.view?.map,()=>{this._resetAllLookupProperties(),this._mapChangeHandle(this.versioningStates)})],"map-change-handle");const e=await this._getVersioningStates();await this._mapChangeHandle(e)})())}async _mapChangeHandle(e){this._updatingHandlesLoad.addPromise((async()=>{this._setLoadError(),this.removeHandles("map-layers-tables-change-handle"),this.addHandles([a(()=>this.view?.map.allLayers,"change",e=>{(e.added.some(({type:e})=>"feature"===e)||e.removed.some(({type:e})=>"feature"===e)||e.added.some(({type:e})=>"subtype-group"===e)||e.removed.some(({type:e})=>"subtype-group"===e))&&(this._resetServiceRelatedLookupProperties(),this._propertiesChangeInternal(this.versioningStates),this._updateVersionableItems(e))}),a(()=>this.view?.map.allTables,"change",e=>{(e.added.some(({type:e})=>"feature"===e)||e.removed.some(({type:e})=>"feature"===e)||e.added.some(({type:e})=>"subtype-group"===e)||e.removed.some(({type:e})=>"subtype-group"===e))&&(this._resetServiceRelatedLookupProperties(),this._propertiesChangeInternal(this.versioningStates),this._updateVersionableItems(e))})],"map-layers-tables-change-handle"),await this._propertiesChangeInternal(e)})())}async _propertiesChangeInternal(e){this._updatingHandlesLoad.addPromise((async()=>{const r=e=>"feature"===e.type||"subtype-group"===e.type,{allLayers:o,allTables:t}=this.view.map;if(this._setLoadError(),this.featureServiceLookup=c([...o.filter(r),...t.filter(r)]),this.featureServiceLookup.size){this._updateFeatureServiceLookup(e),this.serviceNameLookup=new Map;for(const e of this.featureServiceLookup.values()){const{featureService:r,featureService:{url:o}}=e;if(!this.serviceNameLookup.has(o)){if(r.loaded||await r.load().catch(e=>{s.getLogger(this).error(e)}),!r.versionManagementServiceUrl){this.featureServiceLookup.delete(o);continue}const e=await p(o),t=new v({authMode:"immediate",url:e});await t.load().catch(e=>{s.getLogger(this).error(e)});const i=t.user?.username;if(!r.loaded||!t.loaded||!i)continue;this.serviceNameLookup.set(d(o),o.split("/").at(-2)),this.userLookup.set(o,i),this._portalLookup.set(o,t)}}e.forEach(e=>this._handleVersioningStateLookupUpdate(e)),await this._updateVersioningStates(e),this.versioningStates=e}else this._logError("version-management-view-model:load-error","no-feature-services")})())}_updateFeatureServiceLookup(e){for(const r of e){const e=r.featureServiceUrl;if(!this.featureServiceLookup.has(e)){const o=new g({url:e}),t=r.versionableItems.toArray().flatMap(e=>"network"===e.type?null:e.versionableItem).filter(e=>!!e);this.featureServiceLookup.set(e,{featureService:o,layers:t})}}}async _updateVersioningStates(e){for(const r of this.featureServiceLookup.values()){const t=r.featureService;if(!t.versionManagementServiceUrl)continue;if(!e.find(e=>e.featureServiceUrl===t.url)&&t.versionManagementServiceUrl){const i=new o(E(r.layers)),s=new f({versionManagementService:new _({url:t.versionManagementServiceUrl}),versionableItems:i});e.add(s),this._handleVersioningStateLookupUpdate(s)}await this.getVersionInfos(t.url)}}async _getVersioningStates(){return this.versioningStates&&this.versioningStates.length?this.versioningStates:this.view?await w(this.view,!1):(this._logError("version-management-view-model:load-error","no-view-property"),new o)}_handleVersioningStateLookupUpdate(e){this.versioningStateLookup.set(e.featureServiceUrl,e)}async _setVersioningStatesLookups(){this._updatingHandlesLoad.addPromise((async()=>{this.versioningStates&&(this._updateFeatureServiceLookup(this.versioningStates),this.versioningStates.forEach(e=>this._handleVersioningStateLookupUpdate(e)),await this._updateVersioningStates(this.versioningStates))})())}_resetVersioningLookupProperties(){this.versioningStateLookup=new Map}_resetAllLookupProperties(){this._portalLookup=new Map,this.serverVersionLookup=new Map,this.userLookup=new Map,this.versioningStates=new o,this._resetVersioningLookupProperties(),this._resetServiceRelatedLookupProperties()}_resetServiceRelatedLookupProperties(){this.featureServiceLookup=new Map,this.serviceNameLookup=new Map}_setExecutionError(e){this._set("executionError",e)}_setLoadError(e){this._set("loadError",e)}};e([l()],L.prototype,"_portalLookup",void 0),e([l({readOnly:!0})],L.prototype,"executionError",void 0),e([l()],L.prototype,"featureServiceLookup",void 0),e([l({readOnly:!0})],L.prototype,"loadError",void 0),e([l()],L.prototype,"serverVersionLookup",void 0),e([l()],L.prototype,"serviceNameLookup",void 0),e([l({readOnly:!0})],L.prototype,"state",null),e([l()],L.prototype,"userLookup",void 0),e([l()],L.prototype,"versionAdministratorLookup",void 0),e([l()],L.prototype,"versioningStateLookup",void 0),e([l()],L.prototype,"view",void 0),e([l()],L.prototype,"versioningStates",void 0),L=e([u("esri.widgets.VersionManagement.VersionManagementViewModel")],L);const S=L;export{S as default};