@arcgis/core 4.28.0-next.20230920 → 4.28.0-next.20230921

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 (146) hide show
  1. package/WebScene.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/1cbaba30f55f00f7498b.js +1 -0
  4. package/assets/esri/core/workers/chunks/21a9c8aa2a9e9990df41.js +1 -0
  5. package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.js +1 -0
  6. package/assets/esri/core/workers/chunks/{b428fcb53ecc82b49e66.js → 332689bf60d246485993.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{b558a402e2ce2616cf37.js → 3ca759f72d3bb29e9ea9.js} +22 -22
  8. package/assets/esri/core/workers/chunks/4339ce8aaf87fabb80cc.js +1 -0
  9. package/assets/esri/core/workers/chunks/4369a6c1e0a82ab4db6a.js +1 -0
  10. package/assets/esri/core/workers/chunks/43ba2bacd0f7d19915f7.js +1 -0
  11. package/assets/esri/core/workers/chunks/44b8e75593b7df1843e1.js +1 -0
  12. package/assets/esri/core/workers/chunks/53097659f31750c03a6d.js +1 -0
  13. package/assets/esri/core/workers/chunks/{7c72d5368bb2d7484b9b.js → 580039dd491854ca325c.js} +1 -1
  14. package/assets/esri/core/workers/chunks/59c00d6fba0fd1c03d01.js +1 -0
  15. package/assets/esri/core/workers/chunks/5edb99b58549cd66b394.js +1 -0
  16. package/assets/esri/core/workers/chunks/6203ddf6caad3d356327.js +1 -0
  17. package/assets/esri/core/workers/chunks/652749dc847fcb887234.js +1 -0
  18. package/assets/esri/core/workers/chunks/74d3ecb1a06d9f81e2c5.js +1 -0
  19. package/assets/esri/core/workers/chunks/7ea33aa455c5143affb1.js +1 -0
  20. package/assets/esri/core/workers/chunks/90771b0de3e520a1df9a.js +1 -0
  21. package/assets/esri/core/workers/chunks/a277c980ba8704939688.js +1 -0
  22. package/assets/esri/core/workers/chunks/bbc0dcd316c5598bc9ad.js +1 -0
  23. package/assets/esri/core/workers/chunks/bc1dc6383e60e7e61d50.js +1 -0
  24. package/assets/esri/core/workers/chunks/c4bb67150ccd01ea6014.js +1 -0
  25. package/assets/esri/core/workers/chunks/{aa021bc97b4a18a749dd.js → cad260881653567bc8f9.js} +1 -1
  26. package/assets/esri/core/workers/chunks/cec607d0138351a4952e.js +1 -0
  27. package/assets/esri/core/workers/chunks/{f147269d85adfb4588ed.js → d9061beaa43065316062.js} +1 -1
  28. package/assets/esri/core/workers/chunks/e55f7fc7eff0074ce0fc.js +1 -0
  29. package/assets/esri/core/workers/chunks/{9c40e7ed387071544f8c.js → ed1fbc1bc8d50453e2f5.js} +1 -1
  30. package/assets/esri/core/workers/chunks/eef27d305023034084a4.js +1 -0
  31. package/assets/esri/images/portal/onlinemedialayer16.png +0 -0
  32. package/chunks/LaserlinePath.glsl.js +5 -1
  33. package/core/sql.js +1 -1
  34. package/interfaces.d.ts +1 -17
  35. package/layers/graphics/sources/WFSSourceWorker.js +1 -1
  36. package/layers/mixins/SceneService.js +1 -1
  37. package/layers/save/utils.js +1 -1
  38. package/layers/support/editableLayers.js +1 -1
  39. package/package.json +1 -1
  40. package/portal/PortalItem.js +1 -1
  41. package/rest/geometryService/cut.js +1 -1
  42. package/rest/query/operations/query.js +1 -1
  43. package/rest/versionManagement/deleteVersion.js +1 -1
  44. package/rest/versionManagement/gdbVersion/alterVersion.js +1 -1
  45. package/rest/versionManagement/gdbVersion/post.js +1 -1
  46. package/rest/versionManagement/gdbVersion/reconcile.js +1 -1
  47. package/rest/versionManagement/gdbVersion/serverVersionUtils.js +5 -0
  48. package/support/revision.js +1 -1
  49. package/views/2d/engine/Stage.js +1 -1
  50. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  51. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  52. package/views/3d/analysis/Slice/RotateManipulator.js +1 -1
  53. package/views/3d/environment/LocalAtmosphere.js +1 -1
  54. package/views/3d/interactive/manipulatorUtils.js +1 -1
  55. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  56. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  57. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  58. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  59. package/views/3d/layers/MediaLayerView3D.js +1 -1
  60. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  61. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  62. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  63. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  64. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  65. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  66. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  67. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  68. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  69. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  70. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  71. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  72. package/views/3d/layers/support/overlayImageUtils.js +1 -1
  73. package/views/3d/layers/support/patternUtils.js +1 -1
  74. package/views/3d/support/dito.js +1 -1
  75. package/views/3d/support/engineContent/line.js +1 -1
  76. package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
  77. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  78. package/views/3d/terrain/TerrainRenderer.js +1 -1
  79. package/views/3d/webgl-engine/collections/Component/ComponentIntersectionData.js +1 -1
  80. package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
  81. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +6 -6
  82. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  83. package/views/3d/webgl-engine/lib/Attribute.js +1 -1
  84. package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
  85. package/views/3d/webgl-engine/lib/Camera.js +1 -1
  86. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  87. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  88. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  89. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  90. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  91. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  92. package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
  93. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  94. package/views/3d/webgl-engine/materials/DefaultBufferWriter.js +1 -1
  95. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  96. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  97. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  98. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  99. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  100. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  101. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  102. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  103. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  104. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  105. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  106. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  107. package/views/draw/DrawGraphicTool.js +1 -1
  108. package/views/interactive/keybindings.js +1 -1
  109. package/views/interactive/tooltip/SketchTooltipInfo.js +1 -1
  110. package/views/interactive/tooltip/TooltipEditableField.js +1 -1
  111. package/views/interactive/tooltip/content/Fields.js +5 -0
  112. package/views/interactive/tooltip/content/TooltipContentDrawPoint.js +1 -1
  113. package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
  114. package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
  115. package/webdoc/saveAPIKeyUtils.js +5 -0
  116. package/webdoc/webdocSaveUtils.js +1 -1
  117. package/widgets/BasemapGallery.js +1 -1
  118. package/widgets/BasemapLayerList.js +1 -1
  119. package/widgets/Expand.js +1 -1
  120. package/widgets/Feature/FeatureRelationship.js +1 -1
  121. package/widgets/Fullscreen.js +1 -1
  122. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  123. package/widgets/Swipe.js +1 -1
  124. package/widgets/support/globalCss.js +1 -1
  125. package/assets/esri/core/workers/chunks/034accc7cab6c88a3b31.js +0 -1
  126. package/assets/esri/core/workers/chunks/084a85e2e31b4d5fa924.js +0 -1
  127. package/assets/esri/core/workers/chunks/1a449168d30a688e6128.js +0 -1
  128. package/assets/esri/core/workers/chunks/21f0fafafcd754f5fb88.js +0 -1
  129. package/assets/esri/core/workers/chunks/273167b2dd46e58b8739.js +0 -1
  130. package/assets/esri/core/workers/chunks/2bf58296a6ea4eee960b.js +0 -1
  131. package/assets/esri/core/workers/chunks/3c2c64832fb498bbaa83.js +0 -1
  132. package/assets/esri/core/workers/chunks/4b3a5cc435435c81e6a5.js +0 -1
  133. package/assets/esri/core/workers/chunks/56afd89d08c874f620a1.js +0 -1
  134. package/assets/esri/core/workers/chunks/6108d72faf48a592c8ba.js +0 -1
  135. package/assets/esri/core/workers/chunks/74ddc14e4b576ddbb582.js +0 -1
  136. package/assets/esri/core/workers/chunks/7f680cf24dd97d61bcd2.js +0 -1
  137. package/assets/esri/core/workers/chunks/9b54b5bdb6367c36f6e9.js +0 -1
  138. package/assets/esri/core/workers/chunks/a838dc6653ec29503053.js +0 -1
  139. package/assets/esri/core/workers/chunks/b10a91cae610aba62bf8.js +0 -1
  140. package/assets/esri/core/workers/chunks/b8eb842ea98a9734e161.js +0 -1
  141. package/assets/esri/core/workers/chunks/bbb63392485ed57703e0.js +0 -1
  142. package/assets/esri/core/workers/chunks/bdf13091bd0e1ab0db7e.js +0 -1
  143. package/assets/esri/core/workers/chunks/c88869d2a647c22dc3e6.js +0 -1
  144. package/assets/esri/core/workers/chunks/e54ae2a4281dd58e0707.js +0 -1
  145. package/assets/esri/core/workers/chunks/e5fcfd41f0ec12dcb7f2.js +0 -1
  146. package/assets/esri/core/workers/chunks/f07a0ea10428adecea1a.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{y as e,z as t}from"../../../../../chunks/mat4.js";import{BufferViewVec4u8 as f,BufferViewVec4f as o,BufferViewFloat as r,BufferViewVec2f as s,BufferViewVec2i16 as n,BufferViewVec3f as i}from"../../../../../geometry/support/buffer/BufferView.js";import{assert as c}from"../../lib/Util.js";import{VertexAttribute as l}from"../../lib/VertexAttribute.js";function d(e,t,f,o,r=1){const s=f.typedBuffer,n=f.typedBufferStride,i=e.length;if(o*=n,1===r)for(let c=0;c<i;++c)s[o]=t[e[c]],o+=n;else for(let c=0;c<i;++c){const f=t[e[c]];for(let e=0;e<r;e++)s[o]=f,o+=n}}function u(e,t,f,o){const r=f.typedBuffer,s=f.typedBufferStride,n=e.length;o*=s;for(let i=0;i<n;++i){const f=2*e[i];r[o]=t[f],r[o+1]=t[f+1],o+=s}}function a(e,t,f,o,r){const s=f.typedBuffer,n=f.typedBufferStride,i=e.length;if(o*=n,null==r||1===r)for(let c=0;c<i;++c){const f=3*e[c];s[o]=t[f],s[o+1]=t[f+1],s[o+2]=t[f+2],o+=n}else for(let c=0;c<i;++c){const f=3*e[c];for(let e=0;e<r;++e)s[o]=t[f],s[o+1]=t[f+1],s[o+2]=t[f+2],o+=n}}function p(e,t,f,o,r=1){const s=f.typedBuffer,n=f.typedBufferStride,i=e.length;if(o*=n,1===r)for(let c=0;c<i;++c){const f=4*e[c];s[o]=t[f],s[o+1]=t[f+1],s[o+2]=t[f+2],s[o+3]=t[f+3],o+=n}else for(let c=0;c<i;++c){const f=4*e[c];for(let e=0;e<r;++e)s[o]=t[f],s[o+1]=t[f+1],s[o+2]=t[f+2],s[o+3]=t[f+3],o+=n}}function y(e,t,f){const o=e.typedBuffer,r=e.typedBufferStride;t*=r;for(let s=0;s<f;++s)o[t]=0,o[t+1]=0,o[t+2]=0,o[t+3]=0,t+=r}function B(e,t,f,o){const r=f.typedBuffer,s=f.typedBufferStride,n=e.length;o*=s;for(let i=0;i<n;++i){const f=9*e[i];for(let e=0;e<9;++e)r[o+e]=t[f+e];o+=s}}function g(e,t,f,o){const r=f.typedBuffer,s=f.typedBufferStride,n=e.length;o*=s;for(let i=0;i<n;++i){const f=16*e[i];for(let e=0;e<16;++e)r[o+e]=t[f+e];o+=s}}function b(t,f,o,r,s,n=1){if(!o)return void a(t,f,r,s,n);const i=r.typedBuffer,c=r.typedBufferStride,l=t.length,d=o[0],u=o[1],p=o[2],y=o[4],B=o[5],g=o[6],b=o[8],O=o[9],h=o[10],N=o[12],S=o[13],R=o[14];s*=c;let A=0,E=0,L=0;const z=e(o)?e=>{A=f[e]+N,E=f[e+1]+S,L=f[e+2]+R}:e=>{const t=f[e],o=f[e+1],r=f[e+2];A=d*t+y*o+b*r+N,E=u*t+B*o+O*r+S,L=p*t+g*o+h*r+R};if(1===n)for(let e=0;e<l;++e)z(3*t[e]),i[s]=A,i[s+1]=E,i[s+2]=L,s+=c;else for(let e=0;e<l;++e){z(3*t[e]);for(let e=0;e<n;++e)i[s]=A,i[s+1]=E,i[s+2]=L,s+=c}}function O(f,o,r,s,n,i=1){if(!r)return void a(f,o,s,n,i);const c=r,l=s.typedBuffer,d=s.typedBufferStride,u=f.length,p=c[0],y=c[1],B=c[2],g=c[4],b=c[5],O=c[6],h=c[8],N=c[9],S=c[10],R=!t(c),A=1e-6,E=1-A;n*=d;let L=0,z=0,F=0;const v=e(c)?e=>{L=o[e],z=o[e+1],F=o[e+2]}:e=>{const t=o[e],f=o[e+1],r=o[e+2];L=p*t+g*f+h*r,z=y*t+b*f+N*r,F=B*t+O*f+S*r};if(1===i)if(R)for(let e=0;e<u;++e){v(3*f[e]);const t=L*L+z*z+F*F;if(t<E&&t>A){const e=1/Math.sqrt(t);l[n]=L*e,l[n+1]=z*e,l[n+2]=F*e}else l[n]=L,l[n+1]=z,l[n+2]=F;n+=d}else for(let e=0;e<u;++e)v(3*f[e]),l[n]=L,l[n+1]=z,l[n+2]=F,n+=d;else for(let e=0;e<u;++e){if(v(3*f[e]),R){const e=L*L+z*z+F*F;if(e<E&&e>A){const t=1/Math.sqrt(e);L*=t,z*=t,F*=t}}for(let e=0;e<i;++e)l[n]=L,l[n+1]=z,l[n+2]=F,n+=d}}function h(e,f,o,r,s,n=1){if(!o)return void p(e,f,r,s,n);const i=o,c=r.typedBuffer,l=r.typedBufferStride,d=e.length,u=i[0],a=i[1],y=i[2],B=i[4],g=i[5],b=i[6],O=i[8],h=i[9],N=i[10],S=!t(i),R=1e-6,A=1-R;if(s*=l,1===n)for(let t=0;t<d;++t){const o=4*e[t],r=f[o],n=f[o+1],i=f[o+2],d=f[o+3];let p=u*r+B*n+O*i,E=a*r+g*n+h*i,L=y*r+b*n+N*i;if(S){const e=p*p+E*E+L*L;if(e<A&&e>R){const t=1/Math.sqrt(e);p*=t,E*=t,L*=t}}c[s]=p,c[s+1]=E,c[s+2]=L,c[s+3]=d,s+=l}else for(let t=0;t<d;++t){const o=4*e[t],r=f[o],i=f[o+1],d=f[o+2],p=f[o+3];let E=u*r+B*i+O*d,L=a*r+g*i+h*d,z=y*r+b*i+N*d;if(S){const e=E*E+L*L+z*z;if(e<A&&e>R){const t=1/Math.sqrt(e);E*=t,L*=t,z*=t}}for(let e=0;e<n;++e)c[s]=E,c[s+1]=L,c[s+2]=z,c[s+3]=p,s+=l}}function N(e,t,f,o,r,s=1){const n=o.typedBuffer,i=o.typedBufferStride,c=e.length;if(r*=i,f!==t.length||4!==f)if(1!==s)if(4!==f)for(let l=0;l<c;++l){const f=3*e[l];for(let e=0;e<s;++e)n[r]=t[f],n[r+1]=t[f+1],n[r+2]=t[f+2],n[r+3]=255,r+=i}else for(let l=0;l<c;++l){const f=4*e[l];for(let e=0;e<s;++e)n[r]=t[f],n[r+1]=t[f+1],n[r+2]=t[f+2],n[r+3]=t[f+3],r+=i}else{if(4===f){for(let f=0;f<c;++f){const o=4*e[f];n[r]=t[o],n[r+1]=t[o+1],n[r+2]=t[o+2],n[r+3]=t[o+3],r+=i}return}for(let f=0;f<c;++f){const o=3*e[f];n[r]=t[o],n[r+1]=t[o+1],n[r+2]=t[o+2],n[r+3]=255,r+=i}}else{n[r]=t[0],n[r+1]=t[1],n[r+2]=t[2],n[r+3]=t[3];const e=new Uint32Array(o.typedBuffer.buffer,o.start),f=i/4,l=e[r/=4];r+=f;const d=c*s;for(let t=1;t<d;++t)e[r]=l,r+=f}}function S(e,t,f,o){const r=f.typedBuffer,s=f.typedBufferStride,n=e.length,i=t[0];o*=s;for(let c=0;c<n;++c)r[o]=i,o+=s}function R(e,t,f,o,r=1){const s=t.typedBuffer,n=t.typedBufferStride;if(o*=n,1===r)for(let i=0;i<f;++i)s[o]=e[0],s[o+1]=e[1],s[o+2]=e[2],s[o+3]=e[3],o+=n;else for(let i=0;i<f;++i)for(let t=0;t<r;++t)s[o]=e[0],s[o+1]=e[1],s[o+2]=e[2],s[o+3]=e[3],o+=n}function A(e,t,o,r,s,n){for(const i of t.fields.keys()){const t=e.vertexAttributes.get(i),d=e.indices.get(i);if(t&&d)E(i,t,d,o,r,s,n);else if(i===l.OBJECTANDLAYERIDCOLOR&&null!=e.objectAndLayerIdColor){const t=e.indices.get(l.POSITION);if(c(!!t,`No buffer view for ${i}`),t){const o=t.length,r=s.getField(i,f);R(e.objectAndLayerIdColor,r,o,n)}}}}function E(e,t,d,a,y,B,g){switch(e){case l.POSITION:{c(3===t.size);const f=B.getField(e,i);c(!!f,`No buffer view for ${e}`),f&&b(d,t.data,a,f,g);break}case l.NORMAL:{c(3===t.size);const f=B.getField(e,i);c(!!f,`No buffer view for ${e}`),f&&O(d,t.data,y,f,g);break}case l.NORMALCOMPRESSED:{c(2===t.size);const f=B.getField(e,n);c(!!f,`No buffer view for ${e}`),f&&u(d,t.data,f,g);break}case l.UV0:{c(2===t.size);const f=B.getField(e,s);c(!!f,`No buffer view for ${e}`),f&&u(d,t.data,f,g);break}case l.COLOR:case l.SYMBOLCOLOR:{const o=B.getField(e,f);c(!!o,`No buffer view for ${e}`),c(3===t.size||4===t.size),!o||3!==t.size&&4!==t.size||N(d,t.data,t.size,o,g);break}case l.COLORFEATUREATTRIBUTE:{const f=B.getField(e,r);c(!!f,`No buffer view for ${e}`),c(1===t.size),f&&1===t.size&&S(d,t.data,f,g);break}case l.TANGENT:{c(4===t.size);const f=B.getField(e,o);c(!!f,`No buffer view for ${e}`),f&&h(d,t.data,y,f,g);break}case l.PROFILERIGHT:case l.PROFILEUP:case l.PROFILEVERTEXANDNORMAL:case l.FEATUREVALUE:{c(4===t.size);const f=B.getField(e,o);c(!!f,`No buffer view for ${e}`),f&&p(d,t.data,f,g)}}}export{d as writeBufferFloat,B as writeBufferMat3f,g as writeBufferMat4f,u as writeBufferVec2,a as writeBufferVec3,p as writeBufferVec4,y as writeBufferVec4Zeros,N as writeColor,S as writeColorFeatureAttribute,E as writeDefaultAttribute,A as writeDefaultAttributes,O as writeNormal,R as writeObjectAndLayerIdColor,b as writePosition,h as writeTangent};
5
+ import{y as e,z as t}from"../../../../../chunks/mat4.js";import{BufferViewVec4u8 as f,BufferViewVec4f as o,BufferViewFloat as r,BufferViewVec2f as i,BufferViewVec2i16 as s,BufferViewVec3f as n}from"../../../../../geometry/support/buffer/BufferView.js";import{assert as c}from"../../lib/Util.js";import{VertexAttribute as l}from"../../lib/VertexAttribute.js";function d(e,t,f,o=1){const{data:r,indices:i}=e,s=t.typedBuffer,n=t.typedBufferStride,c=i.length;if(f*=n,1===o)for(let l=0;l<c;++l)s[f]=r[i[l]],f+=n;else for(let l=0;l<c;++l){const e=r[i[l]];for(let t=0;t<o;t++)s[f]=e,f+=n}}function u(e,t,f){const{data:o,indices:r}=e,i=t.typedBuffer,s=t.typedBufferStride,n=r.length;f*=s;for(let c=0;c<n;++c){const e=2*r[c];i[f]=o[e],i[f+1]=o[e+1],f+=s}}function a(e,t,f,o){const{data:r,indices:i}=e,s=t.typedBuffer,n=t.typedBufferStride,c=i.length;if(f*=n,null==o||1===o)for(let l=0;l<c;++l){const e=3*i[l];s[f]=r[e],s[f+1]=r[e+1],s[f+2]=r[e+2],f+=n}else for(let l=0;l<c;++l){const e=3*i[l];for(let t=0;t<o;++t)s[f]=r[e],s[f+1]=r[e+1],s[f+2]=r[e+2],f+=n}}function p(e,t,f,o=1){const{data:r,indices:i}=e,s=t.typedBuffer,n=t.typedBufferStride,c=i.length;if(f*=n,1===o)for(let l=0;l<c;++l){const e=4*i[l];s[f]=r[e],s[f+1]=r[e+1],s[f+2]=r[e+2],s[f+3]=r[e+3],f+=n}else for(let l=0;l<c;++l){const e=4*i[l];for(let t=0;t<o;++t)s[f]=r[e],s[f+1]=r[e+1],s[f+2]=r[e+2],s[f+3]=r[e+3],f+=n}}function y(e,t,f){const o=e.typedBuffer,r=e.typedBufferStride;t*=r;for(let i=0;i<f;++i)o[t]=0,o[t+1]=0,o[t+2]=0,o[t+3]=0,t+=r}function B(e,t,f){const{data:o,indices:r}=e,i=t.typedBuffer,s=t.typedBufferStride,n=r.length;f*=s;for(let c=0;c<n;++c){const e=9*r[c];for(let t=0;t<9;++t)i[f+t]=o[e+t];f+=s}}function g(e,t,f){const{data:o,indices:r}=e,i=t.typedBuffer,s=t.typedBufferStride,n=r.length;f*=s;for(let c=0;c<n;++c){const e=16*r[c];for(let t=0;t<16;++t)i[f+t]=o[e+t];f+=s}}function b(t,f,o,r,i=1){if(!f)return void a(t,o,r,i);const{data:s,indices:n}=t,c=o.typedBuffer,l=o.typedBufferStride,d=n.length,u=f[0],p=f[1],y=f[2],B=f[4],g=f[5],b=f[6],O=f[8],h=f[9],S=f[10],N=f[12],R=f[13],E=f[14];r*=l;let A=0,L=0,z=0;const F=e(f)?e=>{A=s[e]+N,L=s[e+1]+R,z=s[e+2]+E}:e=>{const t=s[e],f=s[e+1],o=s[e+2];A=u*t+B*f+O*o+N,L=p*t+g*f+h*o+R,z=y*t+b*f+S*o+E};if(1===i)for(let e=0;e<d;++e)F(3*n[e]),c[r]=A,c[r+1]=L,c[r+2]=z,r+=l;else for(let e=0;e<d;++e){F(3*n[e]);for(let e=0;e<i;++e)c[r]=A,c[r+1]=L,c[r+2]=z,r+=l}}function O(f,o,r,i,s=1){if(!o)return void a(f,r,i,s);const{data:n,indices:c}=f,l=o,d=r.typedBuffer,u=r.typedBufferStride,p=c.length,y=l[0],B=l[1],g=l[2],b=l[4],O=l[5],h=l[6],S=l[8],N=l[9],R=l[10],E=!t(l),A=1e-6,L=1-A;i*=u;let z=0,F=0,I=0;const T=e(l)?e=>{z=n[e],F=n[e+1],I=n[e+2]}:e=>{const t=n[e],f=n[e+1],o=n[e+2];z=y*t+b*f+S*o,F=B*t+O*f+N*o,I=g*t+h*f+R*o};if(1===s)if(E)for(let e=0;e<p;++e){T(3*c[e]);const t=z*z+F*F+I*I;if(t<L&&t>A){const e=1/Math.sqrt(t);d[i]=z*e,d[i+1]=F*e,d[i+2]=I*e}else d[i]=z,d[i+1]=F,d[i+2]=I;i+=u}else for(let e=0;e<p;++e)T(3*c[e]),d[i]=z,d[i+1]=F,d[i+2]=I,i+=u;else for(let e=0;e<p;++e){if(T(3*c[e]),E){const e=z*z+F*F+I*I;if(e<L&&e>A){const t=1/Math.sqrt(e);z*=t,F*=t,I*=t}}for(let e=0;e<s;++e)d[i]=z,d[i+1]=F,d[i+2]=I,i+=u}}function h(e,f,o,r,i=1){if(!f)return void p(e,o,r,i);const{data:s,indices:n}=e,c=f,l=o.typedBuffer,d=o.typedBufferStride,u=n.length,a=c[0],y=c[1],B=c[2],g=c[4],b=c[5],O=c[6],h=c[8],S=c[9],N=c[10],R=!t(c),E=1e-6,A=1-E;if(r*=d,1===i)for(let t=0;t<u;++t){const e=4*n[t],f=s[e],o=s[e+1],i=s[e+2],c=s[e+3];let u=a*f+g*o+h*i,p=y*f+b*o+S*i,L=B*f+O*o+N*i;if(R){const e=u*u+p*p+L*L;if(e<A&&e>E){const t=1/Math.sqrt(e);u*=t,p*=t,L*=t}}l[r]=u,l[r+1]=p,l[r+2]=L,l[r+3]=c,r+=d}else for(let t=0;t<u;++t){const e=4*n[t],f=s[e],o=s[e+1],c=s[e+2],u=s[e+3];let p=a*f+g*o+h*c,L=y*f+b*o+S*c,z=B*f+O*o+N*c;if(R){const e=p*p+L*L+z*z;if(e<A&&e>E){const t=1/Math.sqrt(e);p*=t,L*=t,z*=t}}for(let t=0;t<i;++t)l[r]=p,l[r+1]=L,l[r+2]=z,l[r+3]=u,r+=d}}function S(e,t,f,o,r=1){const{data:i,indices:s}=e,n=f.typedBuffer,c=f.typedBufferStride,l=s.length;if(o*=c,t!==i.length||4!==t)if(1!==r)if(4!==t)for(let d=0;d<l;++d){const e=3*s[d];for(let t=0;t<r;++t)n[o]=i[e],n[o+1]=i[e+1],n[o+2]=i[e+2],n[o+3]=255,o+=c}else for(let d=0;d<l;++d){const e=4*s[d];for(let t=0;t<r;++t)n[o]=i[e],n[o+1]=i[e+1],n[o+2]=i[e+2],n[o+3]=i[e+3],o+=c}else{if(4===t){for(let e=0;e<l;++e){const t=4*s[e];n[o]=i[t],n[o+1]=i[t+1],n[o+2]=i[t+2],n[o+3]=i[t+3],o+=c}return}for(let e=0;e<l;++e){const t=3*s[e];n[o]=i[t],n[o+1]=i[t+1],n[o+2]=i[t+2],n[o+3]=255,o+=c}}else{n[o]=i[0],n[o+1]=i[1],n[o+2]=i[2],n[o+3]=i[3];const e=new Uint32Array(f.typedBuffer.buffer,f.start),t=c/4,s=e[o/=4];o+=t;const d=l*r;for(let f=1;f<d;++f)e[o]=s,o+=t}}function N(e,t,f){const{data:o,indices:r}=e,i=t.typedBuffer,s=t.typedBufferStride,n=r.length,c=o[0];f*=s;for(let l=0;l<n;++l)i[f]=c,f+=s}function R(e,t,f,o,r=1){const i=t.typedBuffer,s=t.typedBufferStride;if(o*=s,1===r)for(let n=0;n<f;++n)i[o]=e[0],i[o+1]=e[1],i[o+2]=e[2],i[o+3]=e[3],o+=s;else for(let n=0;n<f;++n)for(let t=0;t<r;++t)i[o]=e[0],i[o+1]=e[1],i[o+2]=e[2],i[o+3]=e[3],o+=s}function E(e,t,o,r,i,s){for(const n of t.fields.keys()){const t=e.attributes.get(n),c=t?.indices;if(t&&c)A(n,t,o,r,i,s);else if(n===l.OBJECTANDLAYERIDCOLOR&&null!=e.objectAndLayerIdColor){const t=e.attributes.get(l.POSITION)?.indices;if(t){const o=t.length,r=i.getField(n,f);R(e.objectAndLayerIdColor,r,o,s)}}}}function A(e,t,d,a,y,B){switch(e){case l.POSITION:{c(3===t.size);const f=y.getField(e,n);c(!!f,`No buffer view for ${e}`),f&&b(t,d,f,B);break}case l.NORMAL:{c(3===t.size);const f=y.getField(e,n);c(!!f,`No buffer view for ${e}`),f&&O(t,a,f,B);break}case l.NORMALCOMPRESSED:{c(2===t.size);const f=y.getField(e,s);c(!!f,`No buffer view for ${e}`),f&&u(t,f,B);break}case l.UV0:{c(2===t.size);const f=y.getField(e,i);c(!!f,`No buffer view for ${e}`),f&&u(t,f,B);break}case l.COLOR:case l.SYMBOLCOLOR:{const o=y.getField(e,f);c(!!o,`No buffer view for ${e}`),c(3===t.size||4===t.size),!o||3!==t.size&&4!==t.size||S(t,t.size,o,B);break}case l.COLORFEATUREATTRIBUTE:{const f=y.getField(e,r);c(!!f,`No buffer view for ${e}`),c(1===t.size),f&&1===t.size&&N(t,f,B);break}case l.TANGENT:{c(4===t.size);const f=y.getField(e,o);c(!!f,`No buffer view for ${e}`),f&&h(t,a,f,B);break}case l.PROFILERIGHT:case l.PROFILEUP:case l.PROFILEVERTEXANDNORMAL:case l.FEATUREVALUE:{c(4===t.size);const f=y.getField(e,o);c(!!f,`No buffer view for ${e}`),f&&p(t,f,B)}}}export{d as writeBufferFloat,B as writeBufferMat3f,g as writeBufferMat4f,u as writeBufferVec2,a as writeBufferVec3,p as writeBufferVec4,y as writeBufferVec4Zeros,S as writeColor,N as writeColorFeatureAttribute,A as writeDefaultAttribute,E as writeDefaultAttributes,O as writeNormal,R as writeObjectAndLayerIdColor,b as writePosition,h as writeTangent};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import o from"../../core/Evented.js";import{makeHandle as i}from"../../core/handleUtils.js";import{destroyMaybe as r}from"../../core/maybe.js";import{createLength as n,zeroMeters as l,zeroSquareMeters as a,zeroDegrees as s}from"../../core/quantityUtils.js";import{watch as p,syncAndInitial as c}from"../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as h}from"../../core/unitUtils.js";import{property as u}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as d}from"../../core/accessorSupport/decorators/subclass.js";import m from"../../layers/GraphicsLayer.js";import{getConvertedElevation as y}from"../../support/elevationInfoUtils.js";import{createSquare as g,createRectangle as v,createCircle as f,createEllipse as _,createPolygon as w,createPolyline as O,createMultipoint as G}from"./support/createUtils.js";import{getDrawHelpMessage as x}from"./support/helpMessageUtils.js";import{createViewAlignedCoordinateSystem as T}from"./support/surfaceCoordinateSystems.js";import{InteractiveToolBase as V}from"../interactive/InteractiveToolBase.js";import b from"../interactive/sketch/SketchLabelOptions.js";import I from"../interactive/sketch/SketchTooltipOptions.js";import{intersectAll as S,getDistanceConstraint as j,getOrientationConstraint as C,getElevationConstraint as U}from"../interactive/tooltip/constraintUtils.js";import{DrawPointTooltipInfo as k,DrawPolylineTooltipInfo as M,DrawPolygonTooltipInfo as z,DrawMeshTooltipInfo as P,DrawRectangleTooltipInfo as D,DrawCircleTooltipInfo as E}from"../interactive/tooltip/DrawTooltipInfos.js";import{Tooltip as H}from"../interactive/tooltip/Tooltip.js";import{orientationBetweenPoints as A}from"../support/angularMeasurementUtils.js";import{autoAreaByElevationMode as R}from"../support/automaticAreaMeasurementUtils.js";import{autoLengthByElevationMode as L,autoDirectDistanceByElevationModeBetweenPoints as Z,autoHorizontalDistanceByElevationModeBetweenPoints as N}from"../support/automaticLengthMeasurementUtils.js";import{autorun as q}from"../../core/accessorSupport/trackingUtils.js";class B{constructor(){this.regularVertices=null,this.activeVertex=null,this.full=null,this.outline=null,this.circle=null,this.rectangle=null}}let F=class extends(o.EventedMixin(V)){constructor(e){super(e),this._graphic=null,this._createOperationGeometry=null,this.defaultZ=0,this.geometryType=null,this.hasZ=!0,this.labelOptions=new b,this.geometryToPlace=null,this.mode=null,this.snappingManager=null,this.snapToScene=!1,this.tooltip=null,this.tooltipOptions=new I}initialize(){this.internalGraphicsLayer=new m({listMode:"hide",internal:!0}),this.view.map.layers.add(this.internalGraphicsLayer),this.drawOperation=this.makeDrawOperation();const e=this.tooltipOptions,t=this.view.type;this.tooltipInfos={point:new k({tooltipOptions:e,viewType:t}),polyline:new M({tooltipOptions:e,viewType:t}),polygon:new z({tooltipOptions:e,viewType:t}),mesh:new P({tooltipOptions:e,viewType:t}),rectangle:new D({tooltipOptions:e}),circle:new E({tooltipOptions:e})},this.addHandles([this.drawOperation.on("vertex-add",(e=>this.onVertexAdd(e))),this.drawOperation.on("vertex-remove",(e=>this.onVertexRemove(e))),this.drawOperation.on("vertex-update",(e=>this.onVertexUpdate(e))),this.drawOperation.on("cursor-update",(e=>this.onCursorUpdate(e))),this.drawOperation.on("complete",(e=>this.onComplete(e))),p((()=>this.tooltipOptions.enabled),(e=>{this.tooltip=e?new H({view:this.view,info:this._tooltipInfo}):r(this.tooltip)}),c),q((()=>this._updateTooltipInfo()))]),this.finishToolCreation()}destroy(){this.drawOperation=r(this.drawOperation),this.tooltip=r(this.tooltip),this._destroyAllVisualisations(),this.view.map.remove(this.internalGraphicsLayer),this.internalGraphicsLayer=r(this.internalGraphicsLayer),this._set("view",null)}get _defaultElevation(){return n(this.defaultZ,"meters")}get canRedo(){return this.drawOperation.canRedo}get canUndo(){return this.drawOperation.canUndo}set centered(e){this._set("centered",e),this._updateGraphic()}set enabled(e){this.drawOperation.interactive=e,this._set("enabled",e)}set forceUniformSize(e){this._set("forceUniformSize",e),this._updateGraphic()}get graphic(){return this._graphic}set graphicSymbol(e){this._set("graphicSymbol",e),null!=this._graphic&&(this._graphic.symbol=e)}get updating(){return this.drawOperation?.updating??!1}completeCreateOperation(){this.drawOperation.complete()}onInputEvent(e){const t=this._tooltipInfo;if("key-down"===e.type&&"Tab"===e.key&&t&&this.tooltipOptions.inputEnabled)return t.enterInputMode(),void e.stopPropagation();this.drawOperation.onInputEvent(e)}redo(){this.drawOperation.redo()}reset(){}undo(){this.drawOperation.undo()}_destroyAllVisualisations(){this.removeHandles(K.outline),this.removeHandles(K.regularVertices),this.removeHandles(K.activeVertex),this.removeHandles(J)}_createOrUpdateGraphic(e){if(null!=this._graphic)return this.updateGraphicGeometry(this._graphic,e),this._graphic;const o=this._graphic=new t({...this.graphicProperties,symbol:this.graphicSymbol});return this.updateGraphicGeometry(o,e),this.internalGraphicsLayer.add(o),this.addHandles(this.initializeGraphic(o)),this.notifyChange("graphic"),this.addHandles(i((()=>{this.internalGraphicsLayer.remove(o),r(o),this._graphic===o&&(this._graphic=null)})),J),o}updateGraphicGeometry(e,t){e.geometry=t}_getCreateOperationGeometry(e={operationComplete:!1}){const{drawOperation:t}=this;if(null==t||0===t.numVertices)return null;const{coordinateHelper:o,view:i}=t,r=t.stagedVertex,n=t.committedVertices,l=n.slice(),a=null!=r;a&&l.push(o.pointToArray(r));const s=a?o.pointToArray(r):n.splice(-1)[0],p=l.length,c=i.spatialReference,h="3d"===i.type&&"global"===i.viewingMode,u=new B;switch(this.geometryType){case"point":case"mesh":u.regularVertices=n,u.activeVertex=s,u.full=o.arrayToPoint(l[0]);break;case"multipoint":u.regularVertices=n,u.activeVertex=s,p>0&&(u.full=G(l,c));break;case"polyline":u.regularVertices=n,u.activeVertex=s,p>0&&(u.full=O([l],c,h));break;case"polygon":u.regularVertices=n,u.activeVertex=s,p>0&&(u.full=w([l],c,h,!0));break;case"circle":if(p>0){const t=T(i,l[0]);if(1===p&&e.operationComplete){const e=l[0],o=t.makeMapPoint(e[0]+W*i.resolution,e[1]);u.circle=f([e,o],t,!0),u.full=null!=u.circle?u.circle.geometry:null}else 2===p&&(this.forceUniformSize?(u.circle=f(l,t,this.centered),u.full=null!=u.circle?u.circle.geometry:null):(u.rectangle=_(l,t,this.centered),u.full=u.rectangle.geometry))}break;case"rectangle":if(p>0){const t=T(i,l[0]);if(1===p&&e.operationComplete){const e=l[0],o=t.makeMapPoint(e[0]+W*i.resolution,e[1]);u.rectangle=g([e,o],t,!0),u.full=u.rectangle.geometry}else 2===p&&(u.rectangle=this.forceUniformSize?g(l,t,this.centered):v(l,t,this.centered),u.full=u.rectangle.geometry)}break;default:return null}switch(this.geometryType){case"point":case"multipoint":break;case"polyline":u.outline=p>1?O([l],c,h):null;break;case"polygon":u.outline=p>1?w([l],c,h):null;break;case"circle":case"rectangle":u.outline="polygon"===u.full?.type?w(u.full.rings,c,h):null}return u}initializeGraphic(e){return i()}onComplete(e){this._updateGraphic();let t=null;if(this.drawOperation.isCompleted){const e=this._getCreateOperationGeometry({operationComplete:!0});null!=e&&(t=this._createOrUpdateGraphic(e.full).clone())}this._createOperationGeometry=null,this.emit("complete",{graphic:t,...e})}onCursorUpdate(e){this._updateGraphic(),this.emit("cursor-update",e)}onDeactivate(){this.drawOperation.isCompleted||this.drawOperation.cancel()}onVertexAdd(e){this._updateGraphic(),this._clearConstraints(),this.emit("vertex-add",e)}onVertexRemove(e){this._updateGraphic(),this._clearConstraints(),this.emit("vertex-remove",e)}onVertexUpdate(e){this._updateGraphic(),this.emit("vertex-update",e)}_updateGraphic(){const e=this._getCreateOperationGeometry();this._createOperationGeometry=e,null!=e?(null!=e.outline?this.addHandles(this.onOutlineChanged(e.outline),K.outline):this.removeHandles(K.outline),null!=e.regularVertices?this.addHandles(this.onRegularVerticesChanged(e.regularVertices),K.regularVertices):this.removeHandles(K.regularVertices),null!=e.activeVertex?this.addHandles(this.onActiveVertexChanged(e.activeVertex),K.activeVertex):this.removeHandles(K.activeVertex),null!=e.full?this._createOrUpdateGraphic(e.full):this.removeHandles(J)):this._destroyAllVisualisations()}get _tooltipInfo(){const{drawOperation:e,graphic:t,view:o}=this;if(!e)return null;const i=this.tooltipInfos,r=t?.geometry?.type;switch(this.geometryType){case"point":return"2d"===o.type&&0===this.defaultZ?null:"point"===r?i.point:null;case"polyline":return"polyline"===r?i.polyline:null;case"polygon":return"polygon"===r?i.polygon:null;case"rectangle":return"polygon"===r?i.rectangle:null;case"circle":return"polygon"===r?i.circle:null;case"mesh":return"mesh"===r?i.mesh:null;default:return null}}_updateTooltipInfo(){const{_tooltipInfo:e,tooltip:t}=this;if(e&&t){switch(e.type){case"draw-point":this._updateDrawPointTooltipInfo(e);break;case"draw-polyline":this._updateDrawPolylineTooltipInfo(e);break;case"draw-polygon":this._updateDrawPolygonTooltipInfo(e);break;case"draw-rectangle":this._updateDrawRectangleTooltipInfo(e);break;case"draw-circle":this._updateDrawCircleTooltipInfo(e);break;case"draw-mesh":this.updateDrawMeshTooltipInfo(e)}t.info=e}}_updateDrawPointTooltipInfo(e){e.tooltipOptions=this.tooltipOptions,e.viewType=this.view.type,e.helpMessage=x("point",this.graphic?.geometry),this.updateElevation(e.elevation)}_updateDrawPolylineTooltipInfo(e){const t=this._createOperationGeometry,o=null!=t?t.full:null;if("polyline"!==o?.type)return;const{drawOperation:i,tooltipOptions:r,view:n}=this,{lastVertex:a,stagedVertex:s}=i;this._updatePolylineOrPolygonCommon(e,s);const p=L(o,this._elevationMode);e.totalLength.actual=p??l,e.totalLength.hidden=null==length||!a,e.tooltipOptions=r,e.viewType=n.type,e.helpMessage=x("polyline",o),this.updateElevation(e.elevation)}_updateDrawPolygonTooltipInfo(e){const t=this._createOperationGeometry,o=null!=t?t.full:null;if("polygon"!==o?.type)return;const{drawOperation:i,tooltipOptions:r,view:n}=this,{lastVertex:l}=i;let s=i.stagedVertex;"polygon"===o?.type&&l&&!s&&(s=o.getPoint(0,o.rings[0].length-1)),this._updatePolylineOrPolygonCommon(e,s);const p=R(o,this._elevationMode);e.area.actual=p??a,e.area.hidden=null==p&&!l,e.tooltipOptions=r,e.viewType=n.type,e.helpMessage=x("polygon",o),this.updateElevation(e.elevation)}_updatePolylineOrPolygonCommon(e,t){const{view:o,drawOperation:i}=this,{elevationInfo:r,lastVertex:n}=i;if(!n||!t)return e.distance.hidden=!0,e.orientation.hidden=!0,void(i.constraint=void 0);const a=Z(n,t,this._elevationMode);e.distance.actual=a??l,e.distance.hidden=!1;const p=A(n,t);e.orientation.actual=p??s,e.orientation.hidden=!1,i.constraint=S([j(n,e.distance.committed,o,r),C(n,e.orientation.committed,o,r),U(e.elevation.committed,n.spatialReference)])}updateDrawMeshTooltipInfo(e){}_updateDrawRectangleTooltipInfo(e){e.tooltipOptions=this.tooltipOptions,e.xSize=this._xSize??l,e.ySize=this._ySize??l,e.area=this._fullGeometryArea??a}_updateDrawCircleTooltipInfo(e){const{forceUniformSize:t}=this;e.tooltipOptions=this.tooltipOptions,e.radius=t?this._circleRadius??l:null,e.xSize=t?null:this._xSize??l,e.ySize=t?null:this._ySize??l,e.area=this._fullGeometryArea??a}get _circleRadius(){const e=this._createOperationGeometry;return null!=e&&null!=e.circle&&null!=e.circle.center&&null!=e.circle.edge?N(e.circle.center,e.circle.edge,this._elevationMode):null}get _xSize(){const e=this._createOperationGeometry?.rectangle?.midpoints;return null!=e?N(e.left,e.right,this._elevationMode):null}get _ySize(){const e=this._createOperationGeometry?.rectangle?.midpoints;return null!=e?N(e.top,e.bottom,this._elevationMode):null}get _fullGeometryArea(){const e=this._createOperationGeometry?.full;return"polygon"!==e?.type?null:R(e,this._elevationMode)}updateElevation(e){e.actual=this._vertexTooltipElevation}get _vertexTooltipElevation(){const{tooltipOptions:e,view:t,drawOperation:o}=this;if(null==o)return this._defaultElevation;const i=o.stagedVertex??o.lastVertex;if(null==i||"2d"===t.type)return this._defaultElevation;const r={mode:e.elevation.mode,offset:0},l=(y(t,i,o.elevationInfo,r)??0)*h(i.spatialReference);return n(l,"meters")}get _elevationMode(){return this.drawOperation.isDraped?"on-the-ground":"absolute-height"}_clearConstraints(){for(const[,e]of Object.entries(this.tooltipInfos))e.unlockAllFields()}};e([u()],F.prototype,"_createOperationGeometry",void 0),e([u()],F.prototype,"_defaultElevation",null),e([u({value:!0})],F.prototype,"centered",null),e([u({nonNullable:!0})],F.prototype,"defaultZ",void 0),e([u()],F.prototype,"drawOperation",void 0),e([u({value:!0})],F.prototype,"enabled",null),e([u({value:!0})],F.prototype,"forceUniformSize",null),e([u({constructOnly:!0})],F.prototype,"geometryType",void 0),e([u()],F.prototype,"graphic",null),e([u({constructOnly:!0})],F.prototype,"graphicProperties",void 0),e([u()],F.prototype,"graphicSymbol",null),e([u({constructOnly:!0})],F.prototype,"hasZ",void 0),e([u({constructOnly:!0,type:b})],F.prototype,"labelOptions",void 0),e([u({constructOnly:!0})],F.prototype,"geometryToPlace",void 0),e([u({constructOnly:!0})],F.prototype,"mode",void 0),e([u()],F.prototype,"snappingManager",void 0),e([u()],F.prototype,"snapToScene",void 0),e([u()],F.prototype,"tooltip",void 0),e([u()],F.prototype,"tooltipInfos",void 0),e([u({constructOnly:!0,type:I})],F.prototype,"tooltipOptions",void 0),e([u({readOnly:!0})],F.prototype,"type",void 0),e([u({readOnly:!0})],F.prototype,"updating",null),e([u({constructOnly:!0,nonNullable:!0})],F.prototype,"view",void 0),e([u()],F.prototype,"_tooltipInfo",null),e([u()],F.prototype,"_circleRadius",null),e([u()],F.prototype,"_xSize",null),e([u()],F.prototype,"_ySize",null),e([u()],F.prototype,"_fullGeometryArea",null),e([u()],F.prototype,"_vertexTooltipElevation",null),e([u()],F.prototype,"_elevationMode",null),F=e([d("esri.views.draw.DrawGraphicTool")],F);const J="create-operation-graphic",K={outline:"outline-visual",regularVertices:"regular-vertices-visual",activeVertex:"active-vertex-visual"};function Q(e){switch(e){case"point":case"polyline":case"polygon":case"multipoint":return e;case"circle":case"rectangle":return"segment";case"mesh":return"point"}}const W=48;export{B as CreateOperationGeometry,F as DrawGraphicTool,Q as geometryTypeToDrawOperationGeometryType};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../Graphic.js";import i from"../../core/Evented.js";import{makeHandle as o}from"../../core/handleUtils.js";import{destroyMaybe as r}from"../../core/maybe.js";import{memoize as n}from"../../core/memoize.js";import{createLength as l,zeroMeters as a,zeroSquareMeters as s,zeroDegrees as p}from"../../core/quantityUtils.js";import{watch as c,syncAndInitial as h}from"../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as u}from"../../core/unitUtils.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import y from"../../layers/GraphicsLayer.js";import{getConvertedElevation as g}from"../../support/elevationInfoUtils.js";import{createSquare as v,createRectangle as f,createCircle as _,createEllipse as w,createPolygon as O,createPolyline as x,createMultipoint as G}from"./support/createUtils.js";import{getDrawHelpMessage as V}from"./support/helpMessageUtils.js";import{createViewAlignedCoordinateSystem as T}from"./support/surfaceCoordinateSystems.js";import{InteractiveToolBase as b}from"../interactive/InteractiveToolBase.js";import{tooltipKeys as C}from"../interactive/keybindings.js";import I from"../interactive/sketch/SketchLabelOptions.js";import j from"../interactive/sketch/SketchTooltipOptions.js";import{intersectAll as S,getDistanceConstraint as U,getOrientationConstraint as k,getElevationConstraint as M}from"../interactive/tooltip/constraintUtils.js";import{DrawPointTooltipInfo as P,DrawPolylineTooltipInfo as z,DrawPolygonTooltipInfo as D,DrawMeshTooltipInfo as E,DrawRectangleTooltipInfo as H,DrawCircleTooltipInfo as A}from"../interactive/tooltip/DrawTooltipInfos.js";import{Tooltip as R}from"../interactive/tooltip/Tooltip.js";import{orientationBetweenPoints as L}from"../support/angularMeasurementUtils.js";import{autoAreaByElevationMode as Z}from"../support/automaticAreaMeasurementUtils.js";import{autoLengthByElevationMode as F,autoDirectDistanceByElevationModeBetweenPoints as N,autoHorizontalDistanceByElevationModeBetweenPoints as q}from"../support/automaticLengthMeasurementUtils.js";import{autorun as B}from"../../core/accessorSupport/trackingUtils.js";class J{constructor(){this.regularVertices=null,this.activeVertex=null,this.full=null,this.outline=null,this.circle=null,this.rectangle=null}}let K=class extends(i.EventedMixin(b)){constructor(t){super(t),this._graphic=null,this._createOperationGeometry=null,this.defaultZ=0,this.geometryType=null,this.hasZ=!0,this.labelOptions=new I,this.geometryToPlace=null,this.mode=null,this.snappingManager=null,this.snapToScene=!1,this.tooltip=null,this.tooltipOptions=new j,this._getPointConstraint=n((t=>t)),this._getPolylineOrPolygonConstraint=n(((t,e,i)=>S([t,e,i]))),this._getDistanceConstraint=n(U),this._getOrientationConstraint=n(k),this._getElevationConstraint=n(M)}initialize(){this.internalGraphicsLayer=new y({listMode:"hide",internal:!0}),this.view.map.layers.add(this.internalGraphicsLayer),this.drawOperation=this.makeDrawOperation();const t=this.tooltipOptions,e=this.view.type;this.tooltipInfos={point:new P({tooltipOptions:t,viewType:e}),polyline:new z({tooltipOptions:t,viewType:e}),polygon:new D({tooltipOptions:t,viewType:e}),mesh:new E({tooltipOptions:t,viewType:e}),rectangle:new H({tooltipOptions:t}),circle:new A({tooltipOptions:t})},this.addHandles([this.drawOperation.on("vertex-add",(t=>this.onVertexAdd(t))),this.drawOperation.on("vertex-remove",(t=>this.onVertexRemove(t))),this.drawOperation.on("vertex-update",(t=>this.onVertexUpdate(t))),this.drawOperation.on("cursor-update",(t=>this.onCursorUpdate(t))),this.drawOperation.on("complete",(t=>this.onComplete(t))),c((()=>this.tooltipOptions.enabled),(t=>{this.tooltip=t?new R({view:this.view,info:this._tooltipInfo}):r(this.tooltip)}),h),B((()=>this._updateTooltipInfo()))]),this.finishToolCreation()}destroy(){this.drawOperation=r(this.drawOperation),this.tooltip=r(this.tooltip),this._destroyAllVisualisations(),this.view.map.remove(this.internalGraphicsLayer),this.internalGraphicsLayer=r(this.internalGraphicsLayer),this._set("view",null)}get _defaultElevation(){return l(this.defaultZ,"meters")}get canRedo(){return this.drawOperation.canRedo}get canUndo(){return this.drawOperation.canUndo}set centered(t){this._set("centered",t),this._updateGraphic()}set enabled(t){this.drawOperation.interactive=t,this._set("enabled",t)}set forceUniformSize(t){this._set("forceUniformSize",t),this._updateGraphic()}get graphic(){return this._graphic}set graphicSymbol(t){this._set("graphicSymbol",t),null!=this._graphic&&(this._graphic.symbol=t)}get updating(){return this.drawOperation?.updating??!1}completeCreateOperation(){this.drawOperation.complete()}onInputEvent(t){const e=this._tooltipInfo;if("key-down"===t.type&&t.key===C.enterInputMode&&null!=e&&e.editableFields.length>0&&this.tooltipOptions.inputEnabled)return e.enterInputMode(),void t.stopPropagation();this.drawOperation.onInputEvent(t)}redo(){this.drawOperation.redo()}reset(){}undo(){this.drawOperation.undo()}_destroyAllVisualisations(){this.removeHandles(W.outline),this.removeHandles(W.regularVertices),this.removeHandles(W.activeVertex),this.removeHandles(Q)}_createOrUpdateGraphic(t){if(null!=this._graphic)return this.updateGraphicGeometry(this._graphic,t),this._graphic;const i=this._graphic=new e({...this.graphicProperties,symbol:this.graphicSymbol});return this.updateGraphicGeometry(i,t),this.internalGraphicsLayer.add(i),this.addHandles(this.initializeGraphic(i)),this.notifyChange("graphic"),this.addHandles(o((()=>{this.internalGraphicsLayer.remove(i),r(i),this._graphic===i&&(this._graphic=null)})),Q),i}updateGraphicGeometry(t,e){t.geometry=e}_getCreateOperationGeometry(t={operationComplete:!1}){const{drawOperation:e}=this;if(null==e||0===e.numVertices)return null;const{coordinateHelper:i,view:o}=e,r=e.stagedVertex,n=e.committedVertices,l=n.slice(),a=null!=r;a&&l.push(i.pointToArray(r));const s=a?i.pointToArray(r):n.splice(-1)[0],p=l.length,c=o.spatialReference,h="3d"===o.type&&"global"===o.viewingMode,u=new J;switch(this.geometryType){case"point":case"mesh":u.regularVertices=n,u.activeVertex=s,u.full=i.arrayToPoint(l[0]);break;case"multipoint":u.regularVertices=n,u.activeVertex=s,p>0&&(u.full=G(l,c));break;case"polyline":u.regularVertices=n,u.activeVertex=s,p>0&&(u.full=x([l],c,h));break;case"polygon":u.regularVertices=n,u.activeVertex=s,p>0&&(u.full=O([l],c,h,!0));break;case"circle":if(p>0){const e=T(o,l[0]);if(1===p&&t.operationComplete){const t=l[0],i=e.makeMapPoint(t[0]+Y*o.resolution,t[1]);u.circle=_([t,i],e,!0),u.full=null!=u.circle?u.circle.geometry:null}else 2===p&&(this.forceUniformSize?(u.circle=_(l,e,this.centered),u.full=null!=u.circle?u.circle.geometry:null):(u.rectangle=w(l,e,this.centered),u.full=u.rectangle.geometry))}break;case"rectangle":if(p>0){const e=T(o,l[0]);if(1===p&&t.operationComplete){const t=l[0],i=e.makeMapPoint(t[0]+Y*o.resolution,t[1]);u.rectangle=v([t,i],e,!0),u.full=u.rectangle.geometry}else 2===p&&(u.rectangle=this.forceUniformSize?v(l,e,this.centered):f(l,e,this.centered),u.full=u.rectangle.geometry)}break;default:return null}switch(this.geometryType){case"point":case"multipoint":break;case"polyline":u.outline=p>1?x([l],c,h):null;break;case"polygon":u.outline=p>1?O([l],c,h):null;break;case"circle":case"rectangle":u.outline="polygon"===u.full?.type?O(u.full.rings,c,h):null}return u}initializeGraphic(t){return o()}onComplete(t){this._updateGraphic();let e=null;if(this.drawOperation.isCompleted){const t=this._getCreateOperationGeometry({operationComplete:!0});null!=t&&(e=this._createOrUpdateGraphic(t.full).clone())}this._createOperationGeometry=null,this.emit("complete",{graphic:e,...t})}onCursorUpdate(t){this._updateGraphic(),this.emit("cursor-update",t)}onDeactivate(){this.drawOperation.isCompleted||this.drawOperation.cancel()}onVertexAdd(t){this._updateGraphic(),this._clearConstraints(),this.emit("vertex-add",t)}onVertexRemove(t){this._updateGraphic(),this._clearConstraints(),this.emit("vertex-remove",t)}onVertexUpdate(t){this._updateGraphic(),this.emit("vertex-update",t)}_updateGraphic(){const t=this._getCreateOperationGeometry();this._createOperationGeometry=t,null!=t?(null!=t.outline?this.addHandles(this.onOutlineChanged(t.outline),W.outline):this.removeHandles(W.outline),null!=t.regularVertices?this.addHandles(this.onRegularVerticesChanged(t.regularVertices),W.regularVertices):this.removeHandles(W.regularVertices),null!=t.activeVertex?this.addHandles(this.onActiveVertexChanged(t.activeVertex),W.activeVertex):this.removeHandles(W.activeVertex),null!=t.full?this._createOrUpdateGraphic(t.full):this.removeHandles(Q)):this._destroyAllVisualisations()}get _tooltipInfo(){const{drawOperation:t,graphic:e,view:i}=this;if(!t)return null;const o=this.tooltipInfos,r=e?.geometry?.type;switch(this.geometryType){case"point":return"2d"===i.type&&0===this.defaultZ?null:"point"===r?o.point:null;case"polyline":return"polyline"===r?o.polyline:null;case"polygon":return"polygon"===r?o.polygon:null;case"rectangle":return"polygon"===r?o.rectangle:null;case"circle":return"polygon"===r?o.circle:null;case"mesh":return"mesh"===r?o.mesh:null;default:return null}}_updateTooltipInfo(){const{_tooltipInfo:t,tooltip:e}=this;if(t&&e){switch(t.type){case"draw-point":this._updateDrawPointTooltipInfo(t);break;case"draw-polyline":this._updateDrawPolylineTooltipInfo(t);break;case"draw-polygon":this._updateDrawPolygonTooltipInfo(t);break;case"draw-rectangle":this._updateDrawRectangleTooltipInfo(t);break;case"draw-circle":this._updateDrawCircleTooltipInfo(t);break;case"draw-mesh":this.updateDrawMeshTooltipInfo(t)}e.info=t}}_updateDrawPointTooltipInfo(t){const{drawOperation:e,graphic:i,view:o,tooltipOptions:r}=this,{elevationInfo:n,stagedVertex:l}=e;if(t.tooltipOptions=r,t.viewType=o.type,t.helpMessage=V("point",i?.geometry),this.updateElevation(t.elevation),!l)return void(e.constraint=void 0);const a=e.coordinateHelper.spatialReference;e.constraint=this._getPointConstraint(this._getElevationConstraint(t.elevation.committed,a,o,n))}_updateDrawPolylineTooltipInfo(t){const e=this._createOperationGeometry,i=null!=e?e.full:null;if("polyline"!==i?.type)return;const{drawOperation:o,tooltipOptions:r,view:n}=this,{lastVertex:l,stagedVertex:s}=o;this._updatePolylineOrPolygonCommon(t,s);const p=F(i,this._elevationMode);t.totalLength.actual=p??a,t.totalLength.hidden=null==length||!l,t.tooltipOptions=r,t.viewType=n.type,t.helpMessage=V("polyline",i),this.updateElevation(t.elevation)}_updateDrawPolygonTooltipInfo(t){const e=this._createOperationGeometry,i=null!=e?e.full:null;if("polygon"!==i?.type)return;const{drawOperation:o,tooltipOptions:r,view:n}=this,{lastVertex:l}=o;let a=o.stagedVertex;"polygon"===i?.type&&l&&!a&&(a=i.getPoint(0,i.rings[0].length-1)),this._updatePolylineOrPolygonCommon(t,a);const p=Z(i,this._elevationMode);t.area.actual=p??s,t.area.hidden=null==p&&!l,t.tooltipOptions=r,t.viewType=n.type,t.helpMessage=V("polygon",i),this.updateElevation(t.elevation)}_updatePolylineOrPolygonCommon(t,e){const{view:i,drawOperation:o}=this,{elevationInfo:r,lastVertex:n}=o;if(!n||!e)return t.distance.hidden=!0,t.orientation.hidden=!0,void(o.constraint=void 0);const l=N(n,e,this._elevationMode);t.distance.actual=l??a,t.distance.hidden=!1;const s=L(n,e);t.orientation.actual=s??p,t.orientation.hidden=!1;const c=o.coordinateHelper.spatialReference;o.constraint=this._getPolylineOrPolygonConstraint(this._getDistanceConstraint(n,t.distance.committed,i,r),this._getOrientationConstraint(n,t.orientation.committed,i,r),this._getElevationConstraint(t.elevation.committed,c,i,r))}updateDrawMeshTooltipInfo(t){}_updateDrawRectangleTooltipInfo(t){t.tooltipOptions=this.tooltipOptions,t.xSize=this._xSize??a,t.ySize=this._ySize??a,t.area=this._fullGeometryArea??s}_updateDrawCircleTooltipInfo(t){const{forceUniformSize:e}=this;t.tooltipOptions=this.tooltipOptions,t.radius=e?this._circleRadius??a:null,t.xSize=e?null:this._xSize??a,t.ySize=e?null:this._ySize??a,t.area=this._fullGeometryArea??s}get _circleRadius(){const t=this._createOperationGeometry;return null!=t&&null!=t.circle&&null!=t.circle.center&&null!=t.circle.edge?q(t.circle.center,t.circle.edge,this._elevationMode):null}get _xSize(){const t=this._createOperationGeometry?.rectangle?.midpoints;return null!=t?q(t.left,t.right,this._elevationMode):null}get _ySize(){const t=this._createOperationGeometry?.rectangle?.midpoints;return null!=t?q(t.top,t.bottom,this._elevationMode):null}get _fullGeometryArea(){const t=this._createOperationGeometry?.full;return"polygon"!==t?.type?null:Z(t,this._elevationMode)}updateElevation(t){t.actual=this._vertexTooltipElevation}get _vertexTooltipElevation(){const{tooltipOptions:t,view:e,drawOperation:i}=this;if(null==i)return this._defaultElevation;const o=i.stagedVertex??i.lastVertex;if(null==o||"2d"===e.type)return this._defaultElevation;const r={mode:t.elevation.mode,offset:0},n=(g(e,o,i.elevationInfo,r)??0)*u(o.spatialReference);return l(n,"meters")}get _elevationMode(){return this.drawOperation.isDraped?"on-the-ground":"absolute-height"}_clearConstraints(){for(const[,t]of Object.entries(this.tooltipInfos))t.unlockAllFields()}};t([d()],K.prototype,"_createOperationGeometry",void 0),t([d()],K.prototype,"_defaultElevation",null),t([d({value:!0})],K.prototype,"centered",null),t([d({nonNullable:!0})],K.prototype,"defaultZ",void 0),t([d()],K.prototype,"drawOperation",void 0),t([d({value:!0})],K.prototype,"enabled",null),t([d({value:!0})],K.prototype,"forceUniformSize",null),t([d({constructOnly:!0})],K.prototype,"geometryType",void 0),t([d()],K.prototype,"graphic",null),t([d({constructOnly:!0})],K.prototype,"graphicProperties",void 0),t([d()],K.prototype,"graphicSymbol",null),t([d({constructOnly:!0})],K.prototype,"hasZ",void 0),t([d({constructOnly:!0,type:I})],K.prototype,"labelOptions",void 0),t([d({constructOnly:!0})],K.prototype,"geometryToPlace",void 0),t([d({constructOnly:!0})],K.prototype,"mode",void 0),t([d()],K.prototype,"snappingManager",void 0),t([d()],K.prototype,"snapToScene",void 0),t([d()],K.prototype,"tooltip",void 0),t([d()],K.prototype,"tooltipInfos",void 0),t([d({constructOnly:!0,type:j})],K.prototype,"tooltipOptions",void 0),t([d({readOnly:!0})],K.prototype,"type",void 0),t([d({readOnly:!0})],K.prototype,"updating",null),t([d({constructOnly:!0,nonNullable:!0})],K.prototype,"view",void 0),t([d()],K.prototype,"_tooltipInfo",null),t([d()],K.prototype,"_circleRadius",null),t([d()],K.prototype,"_xSize",null),t([d()],K.prototype,"_ySize",null),t([d()],K.prototype,"_fullGeometryArea",null),t([d()],K.prototype,"_vertexTooltipElevation",null),t([d()],K.prototype,"_elevationMode",null),K=t([m("esri.views.draw.DrawGraphicTool")],K);const Q="create-operation-graphic",W={outline:"outline-visual",regularVertices:"regular-vertices-visual",activeVertex:"active-vertex-visual"};function X(t){switch(t){case"point":case"polyline":case"polygon":case"multipoint":return t;case"circle":case"rectangle":return"segment";case"mesh":return"point"}}const Y=48;export{J as CreateOperationGeometry,K as DrawGraphicTool,X as geometryTypeToDrawOperationGeometryType};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- const e={redo:"r",undo:"z",center:"Alt",constraint:"Shift",cancel:"Escape",delete:["Backspace","Delete"],complete:"Enter",vertexAdd:"f",pan:" "},t={toggle:"Control"},c={commit:"Enter",discard:"Escape",next:"Tab"};export{e as sketchKeys,t as snappingKeys,c as tooltipKeys};
5
+ const e={redo:"r",undo:"z",center:"Alt",constraint:"Shift",cancel:"Escape",delete:["Backspace","Delete"],complete:"Enter",vertexAdd:"f",pan:" "},t={toggle:"Control"},n={enterInputMode:"Tab",commit:"Enter",discard:"Escape",next:"Tab"};export{e as sketchKeys,t as snappingKeys,n as tooltipKeys};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import o from"../../../core/Evented.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as s}from"../../../core/accessorSupport/decorators/subclass.js";let r=class extends o.EventedAccessor{constructor(e){super(e),this._mode="feedback",this.helpMessage=void 0,this.viewType=void 0}get mode(){return this._mode}get allFields(){return[]}enterInputMode(){this._mode="input",this.emit("focus")}exitInputMode(){this._mode="feedback"}unlockAllFields(){this.allFields.forEach((e=>e.unlock()))}};e([t()],r.prototype,"tooltipOptions",void 0),e([t()],r.prototype,"_mode",void 0),e([t()],r.prototype,"mode",null),e([t()],r.prototype,"helpMessage",void 0),e([t()],r.prototype,"viewType",void 0),e([t()],r.prototype,"allFields",null),r=e([s("esri.views.interactive.tooltip.SketchTooltipInfo")],r);export{r as SketchTooltipInfo};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import o from"../../../core/Evented.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as r}from"../../../core/accessorSupport/decorators/subclass.js";let s=class extends o.EventedAccessor{constructor(e){super(e),this._mode="feedback",this.helpMessage=void 0,this.viewType=void 0}get mode(){return this._mode}get allFields(){return[]}get editableFields(){return this.allFields.filter((e=>!e.readOnly))}enterInputMode(){this._mode="input",this.emit("focus")}exitInputMode(){this._mode="feedback"}unlockAllFields(){this.allFields.forEach((e=>e.unlock()))}};e([t()],s.prototype,"tooltipOptions",void 0),e([t()],s.prototype,"_mode",void 0),e([t()],s.prototype,"mode",null),e([t()],s.prototype,"helpMessage",void 0),e([t()],s.prototype,"viewType",void 0),e([t()],s.prototype,"allFields",null),e([t()],s.prototype,"editableFields",null),s=e([r("esri.views.interactive.tooltip.SketchTooltipInfo")],s);export{s as SketchTooltipInfo};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../../chunks/tslib.es6.js";import{property as e}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{tooltipKeys as n}from"../keybindings.js";import{base as o}from"./css.js";import s from"../../../widgets/Widget.js";import{loadCalciteComponents as l}from"../../../widgets/support/componentsUtils.js";import"../../../widgets/support/widgetUtils.js";import{tsx as u}from"../../../widgets/support/jsxFactory.js";const r=`${o}-editable-field`,a={base:r,inputMode:`${r}--input`,locked:`${r}--locked`,title:`${r}__title`,titleContent:`${r}__title__content`,value:`${r}__value`,valueContent:`${r}__value__content`,input:`${r}__input`,inputDisabled:`${r}__input--disabled`,inputReadOnly:`${r}__input--read-only`,inputSuffix:`${r}__input-suffix`,button:`${r}__button`};let c=class extends s{constructor(){super(...arguments),this._input=null,this._afterInputCreate=t=>{this._input=t},this._selectText=()=>{requestAnimationFrame((()=>{this._input?.select()}))},this._onKeyDown=t=>{t.key===n.discard&&this._discard()},this._onInputKeyDown=t=>{switch(t.key){case n.commit:return this._commit({type:"commit-and-exit",allowLockingCurrentValue:!0});case n.next:return t.stopPropagation(),this._commit({type:t.shiftKey?"commit-and-previous":"commit-and-next",allowLockingCurrentValue:!1})}},this._onInput=t=>{this.field.inputValue=t.target.value},this._onLockClick=()=>{const{field:t}=this;t.locked?t.unlock():this._lock()}}loadDependencies(){return l({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}render(){const{mode:t,field:e}=this,i="input"===t,{locked:n}=e;return u("div",{class:this.classes({[a.base]:!0,[a.inputMode]:"input"===t,[a.locked]:n})},u("div",{key:"title",class:a.title},u("div",{key:"title-content",class:a.titleContent},this._title,n&&!i?u("calcite-icon",{key:"icon",icon:"lock",scale:"s"}):null)),u("div",{key:"value",class:a.value},i?this._renderInput():u("span",{key:"formatted-value"},this._feedbackValue)))}get _initialValue(){const{field:t}=this;return null!=t.actual?t.toInputUnits(t.actual,this.context).value:null}get _feedbackValue(){const{context:t,field:e}=this,{actual:i,committed:n,format:o}=e;return null!=n?o(n,t):null!=i?o(i,t):""}get _displayValue(){const{inputValue:t,committed:e}=this.field;return t??this._toString(e?.value??this._initialValue)}get _suffix(){const{suffix:t}=this.field;return"string"==typeof t?t:t(this.context)}get _title(){const{title:t}=this.field;return"string"==typeof t?t:t(this.context)}_renderInput(){const{disabled:t,locked:e,readOnly:i}=this.field;return u("div",{key:"input-container",class:a.valueContent,onkeydown:this._onKeyDown},u("input",{afterCreate:this._afterInputCreate,class:this.classes({[a.input]:!0,[a.inputDisabled]:t,[a.inputReadOnly]:i}),disabled:t||i,onfocus:this._selectText,oninput:this._onInput,onkeydown:this._onInputKeyDown,readOnly:i,type:"text",value:this._displayValue}),u("div",{key:"suffix",class:a.inputSuffix},this._suffix),i?void 0:u("calcite-button",{appearance:"transparent",class:a.button,disabled:t,iconStart:e?"lock":"unlock",kind:"neutral",onclick:this._onLockClick,scale:"s",tabIndex:-1}))}_commit({type:t,allowLockingCurrentValue:e}){const{_input:i,field:n}=this;i&&(n.locked&&""===n.inputValue?n.unlock():(e||null!=n.inputValue)&&this._lock(),this.context.onCommit(i,t))}_discard(){this._input&&(this.field.inputValue=null,this.context.onDiscard(this._input))}_lock(){const{field:t}=this,e=this._parseNumber(t.inputValue),i=null!=e?t.createQuantity(e,this.context):null;t.lock(i)}_parseNumber(t){if(null==t)return null;const e=parseFloat(t);return isNaN(e)||!isFinite(e)?null:e}_toString(t){return null!=t?t.toFixed(3):"0"}};t([e()],c.prototype,"field",void 0),t([e()],c.prototype,"context",void 0),t([e()],c.prototype,"mode",void 0),t([e()],c.prototype,"_initialValue",null),t([e()],c.prototype,"_feedbackValue",null),t([e()],c.prototype,"_input",void 0),t([e()],c.prototype,"_displayValue",null),t([e()],c.prototype,"_suffix",null),t([e()],c.prototype,"_title",null),c=t([i("esri.views.interactive.tooltip.TooltipEditableField")],c);export{c as TooltipEditableField};
5
+ import{_ as t}from"../../../chunks/tslib.es6.js";import{property as e}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{tooltipKeys as n}from"../keybindings.js";import{base as o}from"./css.js";import s from"../../../widgets/Widget.js";import{loadCalciteComponents as l}from"../../../widgets/support/componentsUtils.js";import"../../../widgets/support/widgetUtils.js";import{tsx as u}from"../../../widgets/support/jsxFactory.js";const r=`${o}-editable-field`,a={base:r,inputMode:`${r}--input`,locked:`${r}--locked`,title:`${r}__title`,titleContent:`${r}__title__content`,value:`${r}__value`,valueContent:`${r}__value__content`,input:`${r}__input`,inputDisabled:`${r}__input--disabled`,inputReadOnly:`${r}__input--read-only`,inputSuffix:`${r}__input-suffix`,button:`${r}__button`};let c=class extends s{constructor(){super(...arguments),this._input=null,this._afterInputCreate=t=>{this._input=t},this._selectText=()=>{requestAnimationFrame((()=>{this._input?.select()}))},this._onKeyDown=t=>{t.key===n.discard&&this._discard()},this._onInputKeyDown=t=>{switch(t.key){case n.commit:return this._commit({type:"commit-and-exit",allowLockingCurrentValue:!0});case n.next:return t.stopPropagation(),this._commit({type:t.shiftKey?"commit-and-previous":"commit-and-next",allowLockingCurrentValue:!1})}},this._onInput=t=>{this.field.inputValue=t.target.value},this._onLockClick=()=>{const{field:t}=this;t.locked?t.unlock():this._lock()}}loadDependencies(){return l({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}render(){const{mode:t,field:e}=this,i="input"===t,{locked:n}=e;return u("div",{class:this.classes({[a.base]:!0,[a.inputMode]:"input"===t,[a.locked]:n})},u("div",{key:"title",class:a.title},u("div",{key:"title-content",class:a.titleContent},this._title,n&&!i?u("calcite-icon",{key:"icon",icon:"lock",scale:"s"}):null)),u("div",{key:"value",class:a.value},i?this._renderInput():u("span",{key:"formatted-value"},this._feedbackValue)))}get _initialValue(){const{field:t}=this;return null!=t.actual?t.toInputUnits(t.actual,this.context).value:null}get _feedbackValue(){const{context:t,field:e}=this,{actual:i,committed:n,format:o}=e;return null!=n?o(n,t):null!=i?o(i,t):""}get _displayValue(){const{field:t}=this,{inputValue:e,committed:i}=t;return null!=e?e:null!=i?this._toString(t.toInputUnits(i,this.context).value):this._toString(this._initialValue)}get _suffix(){const{suffix:t}=this.field;return"string"==typeof t?t:t(this.context)}get _title(){const{title:t}=this.field;return"string"==typeof t?t:t(this.context)}_renderInput(){const{disabled:t,locked:e,readOnly:i}=this.field;return u("div",{key:"input-container",class:a.valueContent,onkeydown:this._onKeyDown},u("input",{afterCreate:this._afterInputCreate,class:this.classes({[a.input]:!0,[a.inputDisabled]:t,[a.inputReadOnly]:i}),disabled:t||i,onfocus:this._selectText,oninput:this._onInput,onkeydown:this._onInputKeyDown,readOnly:i,type:"text",value:this._displayValue}),u("div",{key:"suffix",class:a.inputSuffix},this._suffix),i?void 0:u("calcite-button",{appearance:"transparent",class:a.button,disabled:t,iconStart:e?"lock":"unlock",kind:"neutral",onclick:this._onLockClick,scale:"s",tabIndex:-1}))}_commit({type:t,allowLockingCurrentValue:e}){const{_input:i,field:n}=this;i&&(n.locked&&""===n.inputValue?n.unlock():(e||null!=n.inputValue)&&this._lock(),this.context.onCommit(i,t))}_discard(){this._input&&(this.field.inputValue=null,this.context.onDiscard(this._input))}_lock(){const{field:t}=this,e=this._parseNumber(t.inputValue),i=null!=e?t.createQuantity(e,this.context):null;t.lock(i)}_parseNumber(t){if(null==t)return null;const e=parseFloat(t);return isNaN(e)||!isFinite(e)?null:e}_toString(t){return null!=t?t.toFixed(3):"0"}};t([e()],c.prototype,"field",void 0),t([e()],c.prototype,"context",void 0),t([e()],c.prototype,"mode",void 0),t([e()],c.prototype,"_initialValue",null),t([e()],c.prototype,"_feedbackValue",null),t([e()],c.prototype,"_input",void 0),t([e()],c.prototype,"_displayValue",null),t([e()],c.prototype,"_suffix",null),t([e()],c.prototype,"_title",null),c=t([i("esri.views.interactive.tooltip.TooltipEditableField")],c);export{c as TooltipEditableField};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
+ */
5
+ import{TooltipEditableField as o}from"../TooltipEditableField.js";import{tsx as t,tsxFragment as e}from"../../../../widgets/support/jsxFactory.js";function i(i){return t(e,null,i.fields.map((e=>e&&!e.hidden?t(o,{context:i.context,field:e,mode:i.mode,key:e.id}):void 0)))}export{i as Fields};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../../../chunks/tslib.es6.js";import"../../../../core/Logger.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/Error.js";import{subclass as o}from"../../../../core/accessorSupport/decorators/subclass.js";import{content as s}from"../css.js";import{TooltipContentWithHelpMessage as e}from"../TooltipContentWithHelpMessage.js";import{TooltipField as r}from"../TooltipField.js";import{TooltipContent as i}from"./TooltipContent.js";import"../../../../widgets/support/widgetUtils.js";import{tsx as p}from"../../../../widgets/support/jsxFactory.js";const a={base:`${s}--draw-point`};let l=class extends i{render(){const{elevation:t,tooltipOptions:o}=this.info,{visibleElements:s}=o,i=this._messagesTooltip.sketch;return p(e,{className:a.base,helpMessage:this._getHelpMessage()},s.elevation&&p(r,{title:i.elevation,value:this._formatVerticalLength(t.actual)}))}};l=t([o("esri.views.interactive.tooltip.content.TooltipContentDrawPoint")],l);export{l as TooltipContentDrawPoint};
5
+ import{_ as o}from"../../../../chunks/tslib.es6.js";import"../../../../core/Logger.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/Error.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import{content as t}from"../css.js";import{TooltipContentWithHelpMessage as e}from"../TooltipContentWithHelpMessage.js";import{Fields as r}from"./Fields.js";import{TooltipContent as i}from"./TooltipContent.js";import"../../../../widgets/support/widgetUtils.js";import{tsx as p}from"../../../../widgets/support/jsxFactory.js";const n={base:`${t}--draw-point`};let a=class extends i{render(){const{fieldContext:o,info:s}=this,{mode:t,elevation:i,tooltipOptions:a}=s,{visibleElements:m}=a;return p(e,{className:n.base,helpMessage:this._getHelpMessage(),mode:t,onDiscard:this._onDiscard,onkeydown:this._handleTab},p(r,{context:o,mode:t,fields:[m.elevation?i:void 0]}))}};a=o([s("esri.views.interactive.tooltip.content.TooltipContentDrawPoint")],a);export{a as TooltipContentDrawPoint};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../../chunks/tslib.es6.js";import"../../../../core/Logger.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/Error.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";import{content as t}from"../css.js";import{TooltipContentWithHelpMessage as s}from"../TooltipContentWithHelpMessage.js";import{TooltipEditableField as i}from"../TooltipEditableField.js";import{TooltipContent as r}from"./TooltipContent.js";import"../../../../widgets/support/widgetUtils.js";import{tsx as n}from"../../../../widgets/support/jsxFactory.js";const a={base:`${t} ${`${t}--draw-polygon`}`};let p=class extends r{render(){const{fieldContext:o,info:e}=this,{inputEnabled:t,visibleElements:r}=e.tooltipOptions;return n(s,{className:a.base,helpMessage:this._getHelpMessage(),mode:e.mode,onDiscard:this._onDiscard,onkeydown:this._handleTab},[t&&r.orientation?e.orientation:void 0,t&&r.distance?e.distance:void 0,r.elevation&&"2d"!==e.viewType?e.elevation:void 0,r.area?e.area:void 0].map((t=>t&&!t.hidden?n(i,{context:o,field:t,key:t.id,mode:e.mode}):void 0)))}};p=o([e("esri.views.interactive.tooltip.content.TooltipContentDrawPolygon")],p);export{p as TooltipContentDrawPolygon};
5
+ import{_ as o}from"../../../../chunks/tslib.es6.js";import"../../../../core/Logger.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/Error.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";import{content as t}from"../css.js";import{TooltipContentWithHelpMessage as s}from"../TooltipContentWithHelpMessage.js";import{Fields as r}from"./Fields.js";import{TooltipContent as i}from"./TooltipContent.js";import"../../../../widgets/support/widgetUtils.js";import{tsx as n}from"../../../../widgets/support/jsxFactory.js";const a={base:`${t} ${`${t}--draw-polygon`}`};let p=class extends i{render(){const{fieldContext:o,info:e}=this,{area:t,distance:i,elevation:p,mode:c,orientation:l,tooltipOptions:d,viewType:m}=e,{inputEnabled:j,visibleElements:g}=d;return n(s,{className:a.base,helpMessage:this._getHelpMessage(),mode:c,onDiscard:this._onDiscard,onkeydown:this._handleTab},n(r,{context:o,mode:c,fields:[j&&g.orientation?l:void 0,j&&g.distance?i:void 0,g.elevation&&"2d"!==m?p:void 0,g.area?t:void 0]}))}};p=o([e("esri.views.interactive.tooltip.content.TooltipContentDrawPolygon")],p);export{p as TooltipContentDrawPolygon};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../../chunks/tslib.es6.js";import"../../../../core/Logger.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/Error.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";import{content as t}from"../css.js";import{TooltipContentWithHelpMessage as s}from"../TooltipContentWithHelpMessage.js";import{TooltipEditableField as i}from"../TooltipEditableField.js";import{TooltipContent as r}from"./TooltipContent.js";import"../../../../widgets/support/widgetUtils.js";import{tsx as n}from"../../../../widgets/support/jsxFactory.js";const p={base:`${t} ${`${t}--draw-polyline`}`};let a=class extends r{render(){const{info:o,fieldContext:e}=this,{inputEnabled:t,visibleElements:r}=o.tooltipOptions;return n(s,{className:p.base,helpMessage:this._getHelpMessage(),mode:o.mode,onDiscard:this._onDiscard,onkeydown:this._handleTab},[t&&r.orientation?o.orientation:void 0,t&&r.distance?o.distance:void 0,r.elevation&&"2d"!==o.viewType?o.elevation:void 0,r.totalLength?o.totalLength:void 0].map((t=>t&&!t.hidden?n(i,{context:e,field:t,key:t.id,mode:o.mode}):void 0)))}};a=o([e("esri.views.interactive.tooltip.content.TooltipContentDrawPolyline")],a);export{a as TooltipContentDrawPolyline};
5
+ import{_ as o}from"../../../../chunks/tslib.es6.js";import"../../../../core/Logger.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/Error.js";import{subclass as t}from"../../../../core/accessorSupport/decorators/subclass.js";import{content as e}from"../css.js";import{TooltipContentWithHelpMessage as s}from"../TooltipContentWithHelpMessage.js";import{Fields as i}from"./Fields.js";import{TooltipContent as r}from"./TooltipContent.js";import"../../../../widgets/support/widgetUtils.js";import{tsx as n}from"../../../../widgets/support/jsxFactory.js";const p={base:`${e} ${`${e}--draw-polyline`}`};let a=class extends r{render(){const{fieldContext:o,info:t}=this,{distance:e,elevation:r,mode:a,orientation:l,tooltipOptions:c,totalLength:d,viewType:m}=t,{inputEnabled:j,visibleElements:g}=c;return n(s,{className:p.base,helpMessage:this._getHelpMessage(),mode:a,onDiscard:this._onDiscard,onkeydown:this._handleTab},n(i,{context:o,mode:a,fields:[j&&g.orientation?l:void 0,j&&g.distance?e:void 0,g.elevation&&"2d"!==m?r:void 0,g.totalLength?d:void 0]}))}};a=o([t("esri.views.interactive.tooltip.content.TooltipContentDrawPolyline")],a);export{a as TooltipContentDrawPolyline};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
+ */
5
+ import o from"../config.js";import r from"../core/Error.js";import{supportsApiKey as p}from"../support/apiKeyUtils.js";function i(i){if(o.apiKey&&p(i.portal.url))throw new r("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${i.portal.url} when using an api key`)}export{i as validateSaveAPIKey};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import e from"../core/Error.js";import t from"../core/Logger.js";import{MultiOriginJSONSupport as r}from"../core/MultiOriginJSONSupport.js";import{whenOnce as o}from"../core/reactiveUtils.js";import{urlToObject as a,hasSameCanonicalArcGISOnlinePortal as i}from"../core/urlUtils.js";import{updateOrigins as n}from"../core/accessorSupport/originUtils.js";import s from"../geometry/SpatialReference.js";import{equals as l}from"../geometry/support/spatialReferenceUtils.js";import{webMercatorToGeographic as p}from"../geometry/support/webMercatorUtils.js";import{isServerOrServicesAGOLUrl as c}from"../layers/support/arcgisLayerUrl.js";import{isLayerWithFeatureLayerSource as u,isFeatureCollectionLayer as m}from"../layers/support/layerUtils.js";import d from"../portal/Portal.js";import f from"../portal/PortalItem.js";import{TypeKeyword as w,removeTypeKeyword as y,addTypeKeyword as g,hasTypeKeyword as h}from"../portal/support/portalItemUtils.js";import{project as b}from"../rest/geometryService/project.js";import v from"../rest/support/ProjectParameters.js";import{hasDeveloperBasemapLayer as _,findSpatialReference as R,isDeveloperBasemapLayer as P}from"../support/basemapUtils.js";import{saveResources as U}from"./support/saveUtils.js";const S=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map((e=>e.toLowerCase()));async function W(e,t,r){r??={},I(e,t),await o((()=>!t.updatingFromView)),await t.load(),await M(t),await k(t),await O(e,t);const i=t.portalItem,n=a(i.itemUrl),s={origin:"web-map",messages:[],writtenProperties:[],url:n,portal:i.portal||d.getDefault(),portalItem:i,verifyItemRelativeUrls:n?{rootPath:n.path,writtenUrls:[]}:null,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},l=t.write({},s);return await Promise.all(s.resources.pendingOperations),D(e,s,r),await L(t,i),await ue(e,t,i,l,s),await Promise.all([t.updateItemThumbnail(),U(t.resourceReferences,s,null)]),i}async function j(e,t,r,a){a??={};const i=T(e,r);await o((()=>!t.updatingFromView)),await t.load(),await M(t),await k(t),await O(e,t);const n={origin:"web-map",messages:[],writtenProperties:[],url:null,portal:i.portal,portalItem:i,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},s=t.write({},n);await Promise.all(n.resources.pendingOperations),D(e,n,a),await z(t,i);const l=t.getThumbnailState();return await me(e,t,i,s,n,a)&&(t.resourceReferences.portalItem=i),t.restoreThumbnailFromState(l),await Promise.all([t.updateItemThumbnail(),U(t.resourceReferences,n,null)]),i}function I(r,o){if(!o.portalItem)throw t.getLogger(o).error("save: requires the portalItem property to be set"),new e(`${r.name}:portal-item-not-set`,"Portal item to save to has not been set on the WebMap");A(r,o.portalItem)}function A(t,r){if(r.type!==t.itemType)throw new e(`${t.name}:portal-item-wrong-type`,`Portal item needs to have type "${t.itemType}"`)}async function O(t,r){if(!r.basemap?.baseLayers.length)throw new e(`${t.name}:save`,"Map does not have a valid basemap with a base layer.");let a=null;if(await o((()=>{const e=R(r.initialViewProperties,r.basemap);return a=e.spatialReference,!e.updating})),!l(a,r.initialViewProperties.spatialReference))throw new e(`${t.name}:save`,"The spatial reference of the basemap is not compatible with the one from the map.",{expected:r.initialViewProperties.spatialReference,actual:a})}function T(e,t){let r=f.from(t);return r.id&&(r=r.clone(),r.id=null),r.type||(r.type=e.itemType),r.portal||(r.portal=d.getDefault()),A(e,r),r}function M(e){const t=[];return e.basemap&&t.push(e.basemap.load()),e.ground&&t.push(e.ground.load()),Promise.allSettled(t).then((()=>{}))}async function k(e){const t=[];for(const r of e.allLayers)if("beforeSave"in r&&"function"==typeof r.beforeSave){const e=r.beforeSave();e&&t.push(e)}await Promise.allSettled(t)}function D(t,r,o){let a=(r.messages??[]).filter((e=>"error"===e.type)).map((t=>new e(t.name,t.message,t.details)));if(r.blockedRelativeUrls&&(a=a.concat(r.blockedRelativeUrls.map((t=>new e("url:unsupported",`Relative url '${t}' is not supported in Web Map`))))),o.ignoreUnsupported&&(a=a.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name))),a.length>0)throw new e(`${t.name}:save`,"Failed to save webmap due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:a})}async function L(e,t){t.extent=await ne(e.portalItem,e.initialViewProperties.viewpoint.targetGeometry),await Q(e,t)}const E=w.JSAPI,C="CollectorDisabled",V="Collector",G="Data Editing",$="OfflineDisabled",B="Offline",K="Workforce Project",x="Workforce Worker",F="Workforce Dispatcher",N="Offline Map Areas",H="FieldMapsDisabled",J=w.DEVELOPER_BASEMAP,q="UtilityNetwork";async function z(e,t){y(t,C),y(t,H),y(t,w.METADATA),y(t,$),y(t,N),y(t,F),y(t,K),y(t,x),await L(e,t)}async function Q(e,t){g(t,E),await X(e),te(e,t),re(e,t),oe(e,t),ae(e,t),ie(e,t),t.typeKeywords&&(t.typeKeywords=t.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}function X(e){const t=Y(e).map((e=>e.load())).toArray();return Promise.allSettled(t).then((()=>{}))}function Y(e){return e.allLayers.concat(e.allTables)}function Z(e){return Y(e).some((e=>e.loaded&&u(e)&&e.capabilities.operations.supportsEditing&&e.editingEnabled&&("subtype-group"!==e.type||e.sublayers.some((e=>e.editingEnabled)))))}function ee(e){return Y(e).filter((e=>"group"!==e.type)).every((t=>t.loaded&&pe(e,t)))}function te(e,t){h(t,C)||h(t,K)||h(t,x)||h(t,F)||!Z(e)?y(t,V):g(t,V)}function re(e,t){Z(e)?g(t,G):y(t,G)}function oe(e,t){!h(t,$)&&ee(e)?g(t,B):y(t,B)}function ae(e,t){_(e.basemap)?g(t,J):y(t,J)}function ie(e,t){e.utilityNetworks?.length?g(t,q):y(t,q)}async function ne(e,t){const r=t.clone().normalize();let o;if(r.length>1)for(const a of r)o?a.width>o.width&&(o=a):o=a;else o=r[0];return se(e,o)}async function se(e,t){const r=t.spatialReference;if(r.isWGS84)return t.clone();if(r.isWebMercator)return p(t);const{getGeometryServiceURL:o}=await import("../portal/support/geometryServiceUtils.js"),a=await o(e),i=new v;i.geometries=[t],i.outSpatialReference=s.WGS84;return(await b(a,i))[0]}function le(e){return m(e)||"map-notes"===e.type||"route"===e.type}function pe(e,t){return u(t)&&t.capabilities.operations.supportsSync||le(t)&&!t.portalItem||("tile"===t.type||"vector-tile"===t.type)&&(t.capabilities.operations.supportsExportTiles||ce(t)||P(t))&&t.spatialReference.equals(e.initialViewProperties.spatialReference)}function ce(e){return"tile"===e.type&&(c(e.url)&&S.some((t=>e.url?.toLowerCase().includes("/"+t+"/"))))}async function ue(e,t,r,o,a){await r.update({data:o}),we(e,t,r,o,a)}async function me(t,r,o,a,i,n){const s=r.portalItem,l={item:s,authenticated:!(!s?.id||!s.portal.user)},p=o.portal;await p.signIn();const{copyAllowed:c,itemReloaded:u}=await de(l,p);if(l.authenticated||=u,!c)throw new e(`${t.name}:save-as-copy-not-allowed`,"Owner of this map does not allow others to save a copy");const m=await fe(o,l,a,n);return r.portalItem=o,we(t,r,o,a,i),m}async function de(e,t){const{item:r,authenticated:o}=e;return r?.id&&r.typeKeywords?.includes("useOnly")?r.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(o||await r.reload(),{copyAllowed:"admin"===r.itemControl||"update"===r.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}async function fe(e,t,r,o){const a=e.portal,{item:n}=t,{folder:s,copyAllResources:l}=o;let p=!1;if(l&&n?.id&&i(n.portal.url,a.url)){const{total:e}=await n.fetchResources();p=!!e}if(p){const t=await n.copy({copyResources:"all",folder:s});e.id=t.id,e.portal=t.portal;const o=e.toJSON();await e.load(),e.read(o),await e.update({data:r})}else await(a.user?.addItem({item:e,folder:s,data:r}));return p}function we(e,t,o,i,s){r.prototype.read.call(t,{version:i.version,authoringApp:i.authoringApp,authoringAppVersion:i.authoringAppVersion},{origin:e.origin,ignoreDefaults:!0,url:o.itemUrl?a(o.itemUrl):void 0}),n(s),t.resourceInfo=i}export{W as save,j as saveAs};
5
+ import e from"../core/Error.js";import{MultiOriginJSONSupport as t}from"../core/MultiOriginJSONSupport.js";import{whenOnce as r}from"../core/reactiveUtils.js";import{urlToObject as o,hasSameCanonicalArcGISOnlinePortal as a}from"../core/urlUtils.js";import{updateOrigins as i}from"../core/accessorSupport/originUtils.js";import n from"../geometry/SpatialReference.js";import{equals as s}from"../geometry/support/spatialReferenceUtils.js";import{webMercatorToGeographic as l}from"../geometry/support/webMercatorUtils.js";import{isServerOrServicesAGOLUrl as p}from"../layers/support/arcgisLayerUrl.js";import{isLayerWithFeatureLayerSource as c,isFeatureCollectionLayer as u}from"../layers/support/layerUtils.js";import m from"../portal/Portal.js";import d from"../portal/PortalItem.js";import{TypeKeyword as f,removeTypeKeyword as w,addTypeKeyword as y,hasTypeKeyword as g}from"../portal/support/portalItemUtils.js";import{project as h}from"../rest/geometryService/project.js";import b from"../rest/support/ProjectParameters.js";import{hasDeveloperBasemapLayer as v,findSpatialReference as _,isDeveloperBasemapLayer as R}from"../support/basemapUtils.js";import{validateSaveAPIKey as P}from"./saveAPIKeyUtils.js";import{saveResources as U}from"./support/saveUtils.js";const S=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map((e=>e.toLowerCase()));async function W(e,t,a){a??={},I(e,t),await r((()=>!t.updatingFromView)),await t.load(),await M(t),await k(t),await O(e,t);const i=t.portalItem,n=o(i.itemUrl),s={origin:"web-map",messages:[],writtenProperties:[],url:n,portal:i.portal||m.getDefault(),portalItem:i,verifyItemRelativeUrls:n?{rootPath:n.path,writtenUrls:[]}:null,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},l=t.write({},s);return await Promise.all(s.resources.pendingOperations),D(e,s,a),await E(t,i),await ue(e,t,i,l,s),await Promise.all([t.updateItemThumbnail(),U(t.resourceReferences,s,null)]),i}async function j(e,t,o,a){a??={};const i=T(e,o);await r((()=>!t.updatingFromView)),await t.load(),await M(t),await k(t),await O(e,t);const n={origin:"web-map",messages:[],writtenProperties:[],url:null,portal:i.portal,portalItem:i,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},s=t.write({},n);await Promise.all(n.resources.pendingOperations),D(e,n,a),await z(t,i);const l=t.getThumbnailState();return await me(e,t,i,s,n,a)&&(t.resourceReferences.portalItem=i),t.restoreThumbnailFromState(l),await Promise.all([t.updateItemThumbnail(),U(t.resourceReferences,n,null)]),i}function I(t,r){if(!r.portalItem)throw new e(`${t.name}:portal-item-not-set`,"Portal item to save to has not been set on the WebMap");P(r.portalItem),A(t,r.portalItem)}function A(t,r){if(r.type!==t.itemType)throw new e(`${t.name}:portal-item-wrong-type`,`Portal item needs to have type "${t.itemType}"`)}async function O(t,o){if(!o.basemap?.baseLayers.length)throw new e(`${t.name}:save`,"Map does not have a valid basemap with a base layer.");let a=null;if(await r((()=>{const e=_(o.initialViewProperties,o.basemap);return a=e.spatialReference,!e.updating})),!s(a,o.initialViewProperties.spatialReference))throw new e(`${t.name}:save`,"The spatial reference of the basemap is not compatible with the one from the map.",{expected:o.initialViewProperties.spatialReference,actual:a})}function T(e,t){let r=d.from(t);return r.id&&(r=r.clone(),r.id=null),r.type||(r.type=e.itemType),r.portal||(r.portal=m.getDefault()),P(r),A(e,r),r}function M(e){const t=[];return e.basemap&&t.push(e.basemap.load()),e.ground&&t.push(e.ground.load()),Promise.allSettled(t).then((()=>{}))}async function k(e){const t=[];for(const r of e.allLayers)if("beforeSave"in r&&"function"==typeof r.beforeSave){const e=r.beforeSave();e&&t.push(e)}await Promise.allSettled(t)}function D(t,r,o){let a=(r.messages??[]).filter((e=>"error"===e.type)).map((t=>new e(t.name,t.message,t.details)));if(r.blockedRelativeUrls&&(a=a.concat(r.blockedRelativeUrls.map((t=>new e("url:unsupported",`Relative url '${t}' is not supported in Web Map`))))),o.ignoreUnsupported&&(a=a.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name))),a.length>0)throw new e(`${t.name}:save`,"Failed to save webmap due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:a})}async function E(e,t){t.extent=await ne(e.portalItem,e.initialViewProperties.viewpoint.targetGeometry),await Q(e,t)}const C=f.JSAPI,L="CollectorDisabled",V="Collector",G="Data Editing",$="OfflineDisabled",B="Offline",K="Workforce Project",x="Workforce Worker",F="Workforce Dispatcher",N="Offline Map Areas",H="FieldMapsDisabled",J=f.DEVELOPER_BASEMAP,q="UtilityNetwork";async function z(e,t){w(t,L),w(t,H),w(t,f.METADATA),w(t,$),w(t,N),w(t,F),w(t,K),w(t,x),await E(e,t)}async function Q(e,t){y(t,C),await X(e),te(e,t),re(e,t),oe(e,t),ae(e,t),ie(e,t),t.typeKeywords&&(t.typeKeywords=t.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}function X(e){const t=Y(e).map((e=>e.load())).toArray();return Promise.allSettled(t).then((()=>{}))}function Y(e){return e.allLayers.concat(e.allTables)}function Z(e){return Y(e).some((e=>e.loaded&&c(e)&&e.capabilities.operations.supportsEditing&&e.editingEnabled&&("subtype-group"!==e.type||e.sublayers.some((e=>e.editingEnabled)))))}function ee(e){return Y(e).filter((e=>"group"!==e.type)).every((t=>t.loaded&&pe(e,t)))}function te(e,t){g(t,L)||g(t,K)||g(t,x)||g(t,F)||!Z(e)?w(t,V):y(t,V)}function re(e,t){Z(e)?y(t,G):w(t,G)}function oe(e,t){!g(t,$)&&ee(e)?y(t,B):w(t,B)}function ae(e,t){v(e.basemap)?y(t,J):w(t,J)}function ie(e,t){e.utilityNetworks?.length?y(t,q):w(t,q)}async function ne(e,t){const r=t.clone().normalize();let o;if(r.length>1)for(const a of r)o?a.width>o.width&&(o=a):o=a;else o=r[0];return se(e,o)}async function se(e,t){const r=t.spatialReference;if(r.isWGS84)return t.clone();if(r.isWebMercator)return l(t);const{getGeometryServiceURL:o}=await import("../portal/support/geometryServiceUtils.js"),a=await o(e),i=new b;i.geometries=[t],i.outSpatialReference=n.WGS84;return(await h(a,i))[0]}function le(e){return u(e)||"map-notes"===e.type||"route"===e.type}function pe(e,t){return c(t)&&t.capabilities.operations.supportsSync||le(t)&&!t.portalItem||("tile"===t.type||"vector-tile"===t.type)&&(t.capabilities.operations.supportsExportTiles||ce(t)||R(t))&&t.spatialReference.equals(e.initialViewProperties.spatialReference)}function ce(e){return"tile"===e.type&&(p(e.url)&&S.some((t=>e.url?.toLowerCase().includes("/"+t+"/"))))}async function ue(e,t,r,o,a){await r.update({data:o}),we(e,t,r,o,a)}async function me(t,r,o,a,i,n){const s=r.portalItem,l={item:s,authenticated:!(!s?.id||!s.portal.user)},p=o.portal;await p.signIn();const{copyAllowed:c,itemReloaded:u}=await de(l,p);if(l.authenticated||=u,!c)throw new e(`${t.name}:save-as-copy-not-allowed`,"Owner of this map does not allow others to save a copy");const m=await fe(o,l,a,n);return r.portalItem=o,we(t,r,o,a,i),m}async function de(e,t){const{item:r,authenticated:o}=e;return r?.id&&r.typeKeywords?.includes("useOnly")?r.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(o||await r.reload(),{copyAllowed:"admin"===r.itemControl||"update"===r.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}async function fe(e,t,r,o){const i=e.portal,{item:n}=t,{folder:s,copyAllResources:l}=o;let p=!1;if(l&&n?.id&&a(n.portal.url,i.url)){const{total:e}=await n.fetchResources();p=!!e}if(p){const t=await n.copy({copyResources:"all",folder:s});e.id=t.id,e.portal=t.portal;const o=e.toJSON();await e.load(),e.read(o),await e.update({data:r})}else await(i.user?.addItem({item:e,folder:s,data:r}));return p}function we(e,r,a,n,s){t.prototype.read.call(r,{version:n.version,authoringApp:n.authoringApp,authoringAppVersion:n.authoringAppVersion},{origin:e.origin,ignoreDefaults:!0,url:a.itemUrl?o(a.itemUrl):void 0}),i(s),r.resourceInfo=n}export{W as save,j as saveAs};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{getAssetUrl as t}from"../assets.js";import{when as s}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import{getBasemapThumbnailUrl as o,isBasemap3D as r}from"../support/basemapUtils.js";import l from"./Widget.js";import n from"./BasemapGallery/BasemapGalleryViewModel.js";import{css as d}from"./BasemapGallery/css.js";import{loadCalciteComponents as p}from"./support/componentsUtils.js";import{globalCss as c}from"./support/globalCss.js";import{Heading as m}from"./support/Heading.js";import{accessibleHandler as h}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as g}from"./support/jsxFactory.js";import{onResize as v}from"./support/widgetUtils.js";const y={small:200,default:280,wide:420};let w=class extends l{constructor(e,t){super(e,t),this.disabled=!1,this.headingLevel=2,this.iconClass=d.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new n,this._focusBasemapItemEnabled=!1,this._container=null,this._width=0,this._onContainerCreated=e=>{this._container=e}}initialize(){this.addHandles([v((()=>this._container),(({contentRect:e})=>{this._width=e.width})),s((()=>this.source),(()=>this.viewModel.load()),{sync:!0,initial:!0,once:!0})])}loadDependencies(){return p({scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip.js")})}get activeBasemap(){return this.viewModel.activeBasemap}set activeBasemap(e){this.viewModel.activeBasemap=e}get includeCurrentBasemap(){return this.viewModel.includeCurrentBasemap}set includeCurrentBasemap(e){this.viewModel.includeCurrentBasemap=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=this.viewModel.items,a={[d.sourceLoading]:e,[c.disabled]:t},i=this._width;i<=y.small||i>=y.wide?a[d.layoutGrid]=!0:i<y.default&&(a[d.narrowItems]=!0);const o=e?g("div",{class:d.loader,key:"loader"}):null,r=e?null:s.length>0?g("ul",{bind:this,"aria-disabled":this.disabled,"aria-label":this.label,class:d.itemContainer,key:"item-container",onkeydown:this._handleKeyDown,role:"radiogroup"},s.map(((e,t)=>this._renderBasemapGalleryItem(e,t))).toArray()):g("div",{class:c.empty,key:"empty-message"},g(m,{level:this.headingLevel},this.messages.noBasemaps));return g("div",{key:"container",class:this.classes(d.base,c.widget,c.panel,a),afterCreate:this._onContainerCreated},0===this._width?null:[o,r])}_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),o=s.at(i);"ready"===o?.state&&(this.viewModel.activeBasemap=o.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=o(e.basemap)||t("esri/themes/base/images/basemap-toggle-64.svg"),i=e.basemap.title,l=e.basemap.portalItem?.snippet,n=e.error?.message||l||i,{viewModel:{state:p,activeBasemapIndex:m}}=this,h=this.disabled||"disabled"===p,u=m===s,v=u||-1===m&&0===s?0:-1,y="loading"===p,w={[d.selectedItem]:u,[d.itemError]:"error"===e.state},b=`basemapgallery-item-${e.uid}`;return g("li",{"aria-checked":u.toString(),"aria-disabled":h.toString(),"aria-labelledby":b,bind:this,class:this.classes(d.item,w),"data-item":e,key:e.uid,role:"radio",tabIndex:v,title:n,afterUpdate:this._focusBasemapItem,onclick:this._handleClick,onkeydown:this._handleClick},g("img",{alt:"",class:d.itemThumbnail,src:a}),g("div",{key:"content",class:d.itemContent},g("div",{key:"title",class:d.itemTitle},g("span",{id:b},i)),r(e.basemap)?this._render3DTags():null),"loading"===e.state||u&&y?g("calcite-scrim",null,g("span",{key:"loader","aria-hidden":"true",role:"presentation",class:c.loaderAnimation})):null)}_render3DTags(){const{messages:e}=this;return g("div",{key:"tag",class:d.itemTagsContainer},g("calcite-chip",{key:"tag-3d",value:e.tag3D,scale:"s"},this.messages.tag3D),g("calcite-chip",{key:"tag-beta",value:e.tagBeta,scale:"s",appearance:"outline-fill"},this.messages.tagBeta))}};e([a()],w.prototype,"activeBasemap",null),e([a()],w.prototype,"disabled",void 0),e([a()],w.prototype,"headingLevel",void 0),e([a()],w.prototype,"iconClass",void 0),e([a()],w.prototype,"icon",void 0),e([a()],w.prototype,"label",null),e([a(),u("esri/widgets/BasemapGallery/t9n/BasemapGallery")],w.prototype,"messages",void 0),e([a()],w.prototype,"source",null),e([a()],w.prototype,"view",null),e([a()],w.prototype,"viewModel",void 0),e([a()],w.prototype,"_focusBasemapItemEnabled",void 0),e([a()],w.prototype,"_container",void 0),e([a()],w.prototype,"_width",void 0),e([h()],w.prototype,"_handleClick",null),w=e([i("esri.widgets.BasemapGallery")],w);const b=w;export{b as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{getAssetUrl as t}from"../assets.js";import{when as s}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import{getBasemapThumbnailUrl as o,isBasemap3D as r}from"../support/basemapUtils.js";import l from"./Widget.js";import n from"./BasemapGallery/BasemapGalleryViewModel.js";import{css as d}from"./BasemapGallery/css.js";import{loadCalciteComponents as p}from"./support/componentsUtils.js";import{globalCss as c}from"./support/globalCss.js";import{Heading as m}from"./support/Heading.js";import{accessibleHandler as h}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as g}from"./support/jsxFactory.js";import{onResize as v}from"./support/widgetUtils.js";const y={small:200,default:280,wide:420};let w=class extends l{constructor(e,t){super(e,t),this.disabled=!1,this.headingLevel=2,this.iconClass=d.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new n,this._focusBasemapItemEnabled=!1,this._container=null,this._width=0,this._onContainerCreated=e=>{this._container=e}}initialize(){this.addHandles([v((()=>this._container),(({contentRect:e})=>{this._width=e.width})),s((()=>this.source),(()=>this.viewModel.load()),{sync:!0,initial:!0,once:!0})])}loadDependencies(){return p({scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip.js")})}get activeBasemap(){return this.viewModel.activeBasemap}set activeBasemap(e){this.viewModel.activeBasemap=e}get includeCurrentBasemap(){return this.viewModel.includeCurrentBasemap}set includeCurrentBasemap(e){this.viewModel.includeCurrentBasemap=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=this.viewModel.items,a={[d.sourceLoading]:e,[c.disabled]:t},i=this._width;i<=y.small||i>=y.wide?a[d.layoutGrid]=!0:i<y.default&&(a[d.narrowItems]=!0);const o=e?g("div",{class:d.loader,key:"loader"}):null,r=e?null:s.length>0?g("ul",{bind:this,"aria-disabled":this.disabled,"aria-label":this.label,class:d.itemContainer,key:"item-container",onkeydown:this._handleKeyDown,role:"radiogroup"},s.map(((e,t)=>this._renderBasemapGalleryItem(e,t))).toArray()):g("div",{class:c.empty,key:"empty-message"},g(m,{level:this.headingLevel},this.messages.noBasemaps));return g("div",{key:"container",class:this.classes(d.base,c.widget,c.panelHeightOnly,a),afterCreate:this._onContainerCreated},0===this._width?null:[o,r])}_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),o=s.at(i);"ready"===o?.state&&(this.viewModel.activeBasemap=o.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=o(e.basemap)||t("esri/themes/base/images/basemap-toggle-64.svg"),i=e.basemap.title,l=e.basemap.portalItem?.snippet,n=e.error?.message||l||i,{viewModel:{state:p,activeBasemapIndex:m}}=this,h=this.disabled||"disabled"===p,u=m===s,v=u||-1===m&&0===s?0:-1,y="loading"===p,w={[d.selectedItem]:u,[d.itemError]:"error"===e.state},b=`basemapgallery-item-${e.uid}`;return g("li",{"aria-checked":u.toString(),"aria-disabled":h.toString(),"aria-labelledby":b,bind:this,class:this.classes(d.item,w),"data-item":e,key:e.uid,role:"radio",tabIndex:v,title:n,afterUpdate:this._focusBasemapItem,onclick:this._handleClick,onkeydown:this._handleClick},g("img",{alt:"",class:d.itemThumbnail,src:a}),g("div",{key:"content",class:d.itemContent},g("div",{key:"title",class:d.itemTitle},g("span",{id:b},i)),r(e.basemap)?this._render3DTags():null),"loading"===e.state||u&&y?g("calcite-scrim",null,g("span",{key:"loader","aria-hidden":"true",role:"presentation",class:c.loaderAnimation})):null)}_render3DTags(){const{messages:e}=this;return g("div",{key:"tag",class:d.itemTagsContainer},g("calcite-chip",{key:"tag-3d",value:e.tag3D,scale:"s"},this.messages.tag3D),g("calcite-chip",{key:"tag-beta",value:e.tagBeta,scale:"s",appearance:"outline-fill"},this.messages.tagBeta))}};e([a()],w.prototype,"activeBasemap",null),e([a()],w.prototype,"disabled",void 0),e([a()],w.prototype,"headingLevel",void 0),e([a()],w.prototype,"iconClass",void 0),e([a()],w.prototype,"icon",void 0),e([a()],w.prototype,"label",null),e([a(),u("esri/widgets/BasemapGallery/t9n/BasemapGallery")],w.prototype,"messages",void 0),e([a()],w.prototype,"source",null),e([a()],w.prototype,"view",null),e([a()],w.prototype,"viewModel",void 0),e([a()],w.prototype,"_focusBasemapItemEnabled",void 0),e([a()],w.prototype,"_container",void 0),e([a()],w.prototype,"_width",void 0),e([h()],w.prototype,"_handleClick",null),w=e([i("esri.widgets.BasemapGallery")],w);const b=w;export{b as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{watch as s,on as n,initial as r}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./BasemapLayerList/BasemapLayerListViewModel.js";import h from"./LayerList/ListItem.js";import{findSelectedItem as u}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as p,incrementHeadingLevel as _}from"./support/Heading.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{accessibleHandler as y}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import C from"sortablejs";const T=t.ofType(h);function L(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",S="root-layers",$="data-layer-uid",E="layerUid",w="esri-basemap-layer-list",k=`${w}__item`,M=`${w}__list`,B={base:w,widgetIcon:b.layers,newUI:`${w}--new-ui`,titleContainer:`${w}__title-container`,mainHeading:`${w}__main-heading`,editingCard:`${w}__editing-card`,editingInput:`${w}__editing-input`,editingActions:`${w}__editing-actions`,editButton:`${w}__edit-button`,editButtonIcon:`${w}__edit-button-icon`,submitButton:`${w}__submit-button`,cancelButton:`${w}__cancel-button`,noItems:`${w}__no-items`,horizontalRule:`${w}__hr`,list:M,listHeading:`${M}-heading`,listRoot:`${M}--root`,listExclusive:`${M}--exclusive`,listEmpty:`${w}__list--empty`,listEmptyState:`${w}__list-empty-state`,listInherited:`${M}--inherited`,listIndependent:`${M}--independent`,item:k,itemOnlyChild:`${k}--only-child`,itemContent:`${k}-content`,itemMessage:`${k}--has-message`,itemInvisible:`${k}--invisible`,itemInvisibleAtScale:`${k}--invisible-at-scale`,itemChildren:`${k}--has-children`,itemSelectable:`${k}--selectable`,itemContainer:`${k}-container`,actionsMenu:`${k}-actions-menu`,actionsMenuItem:`${k}-actions-menu-item`,actionsMenuItemActive:`${k}-actions-menu-item--active`,actions:`${k}-actions`,actionsList:`${k}-actions-list`,action:`${k}-action`,actionIcon:`${k}-action-icon`,actionImage:`${k}-action-image`,actionTitle:`${k}-action-title`,actionToggle:`${w}__action-toggle`,actionToggleOn:`${w}__action-toggle--on`,label:`${k}-label`,message:`${k}-message`,title:`${k}-title`,statusIndicator:`${w}__status-indicator`,publishing:`${w}__publishing`,updating:`${w}__updating`,connectionStatus:`${w}__connection-status`,connectionStatusConnected:`${w}__connection-status--connected`,toggleVisible:`${k}-toggle`,toggleVisibleIcon:`${k}-toggle-icon`,toggleIcon:`${k}-toggle-icon`,radioIcon:`${k}-radio-icon`,childToggle:`${w}__child-toggle`,childToggleOpen:`${w}__child-toggle--open`,childOpened:`${w}__child-toggle-icon--opened`,childClosed:`${w}__child-toggle-icon--closed`,childClosed_RTL:`${w}__child-toggle-icon--closed-rtl`,sortableChosen:`${w}--chosen`},R={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},O={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function x(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>x(e)))}const j={baseLayers:!0,referenceLayers:!0,statusIndicators:!0,errors:!1};let N=class extends d{constructor(e,t){super(e,t),this._tooltipReferenceMap=new Map,this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this.visibleItems=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=B.widgetIcon,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectedItems=new T,this.style="classic",this.viewModel=new c,this.visibleElements={...j}}initialize(){const{baseItems:e,referenceItems:t}=this;this._setVisibleItems(),this.addHandles([s((()=>this.visibleElements),(()=>{this._itemsChanged(e,R.baseItems),this._itemsChanged(t,R.referenceItems)})),n((()=>this.baseItems),"change",(()=>{this._itemsChanged(e,R.baseItems)})),n((()=>this.referenceItems),"change",(()=>this._itemsChanged(t,R.referenceItems))),s((()=>this.editingEnabled),(()=>this._toggleSorting()),r)])}loadDependencies(){return m({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable(),this._tooltipReferenceMap.clear()}get basemapTitle(){return this.viewModel.basemapTitle}set basemapTitle(e){this.viewModel.basemapTitle=e}get baseListItemCreatedFunction(){return this.viewModel.baseListItemCreatedFunction}set baseListItemCreatedFunction(e){this.viewModel.baseListItemCreatedFunction=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get referenceListItemCreatedFunction(){return this.viewModel.referenceListItemCreatedFunction}set referenceListItemCreatedFunction(e){this.viewModel.referenceListItemCreatedFunction=e}get baseItems(){return this.viewModel.baseItems}get referenceItems(){return this.viewModel.referenceItems}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...j,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[B.newUI]:"modern"===this.style,[g.hidden]:"loading"===e,[g.disabled]:"disabled"===e},i=this._renderItemTooltips(),s=this._renderReferenceSection(),n=this._renderBaseSection(),r=s&&n?v("hr",{class:B.horizontalRule}):null,o=[this._renderTitleContainer(),s,r,n];return v("div",{class:this.classes(B.base,g.anchor,g.panel,t)},[i,o])}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?v("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems?.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:B.editingInput},e.basemapTitle,v("input",{bind:this,class:g.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t??void 0,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}_renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(g.button,g.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}_renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:g.button},e.form.ok)}_renderEditingForm(){return v("div",{class:B.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this._renderEditingInput(),v("div",{class:B.editingActions},this._renderCancelButton(),this._renderSubmitButton())))}_renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(g.heading,B.mainHeading)},e)}_renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:B.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(b.edit,B.editButtonIcon)})):null}_renderTitleContainer(){return v("div",{class:B.titleContainer},this._editingTitle?this._renderEditingForm():this._renderBasemapTitle(),this._renderEditTitleButton())}_renderNoLayersInfo(e,t){return v("div",{key:t,class:B.noItems},e)}_renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(B.list,B.listRoot,B.listIndependent)},e.map((i=>this._renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}_renderBaseHeader(){return v(p,{key:"base-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.baseHeading)}_renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this._renderBaseHeader(),[0===s.length?this._renderNoLayersInfo(t.noBaseLayers,n):null,this._renderList(s,n)]]}_renderReferenceHeader(){return v(p,{key:"reference-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.referenceHeading)}_renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this._renderReferenceHeader(),[0===s.length?this._renderNoLayersInfo(t.noReferenceLayers,n):null,this._renderList(s,n)]]}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,o={[B.childToggleOpen]:e.open},l=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(B.childToggle,o),tabIndex:0,role:"button","aria-controls":t,"aria-label":l,title:l},v("span",{"aria-hidden":"true",class:this.classes(B.childClosed,b.rightTriangleArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childOpened,b.downArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childClosed_RTL,b.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?v("div",{key:"esri-basemap-layer-list__error",class:B.message,role:"alert"},v("span",{"aria-hidden":"true",class:b.noticeTriangle}),this.messages.layerError):e.incompatible?v("div",{key:"esri-basemap-layer-list__incompatible",class:B.message,role:"alert"},v("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:b.noticeTriangle,afterCreate:t=>this._setTooltipReference(t,e)}),this.messages.layerIncompatible):null}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[B.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(B.actionsMenuItem,s),tabIndex:0,role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:b.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this._renderPanelButton(n):null,o=1===i&&this._getSingleActionButton(t),l=o?this._renderAction({item:e,action:o,singleAction:!0}):null,a=!o&&i?this._renderActionsMenuIcon(e,s):null;return a||r||o?v("div",{key:"actions-menu",class:B.actionsMenu},r,l,a):null}_renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=this._hasChildren(e),o=!r&&i&&"group"===e.layer?.type,{exclusive:l,inherited:a}=O,d={[B.listEmpty]:!r,[B.listExclusive]:s===l,[B.listInherited]:s===a,[B.listIndependent]:s!==a&&s!==l};return r||o?r?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(B.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===l?"radiogroup":"group",hidden:!e.open||null},n?.map((t=>this._renderItem({item:t,parent:e}))).toArray()):v("div",{bind:this,key:"list-items",id:t,class:B.listEmptyState},this.messages.noItemsToDisplay):null}_renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,o=`${n}__list`,{panel:l}=e,a=this._filterActions(e.actionsSections),d=this._countActions(a);return[v("div",{key:"list-item-container",class:B.itemContainer},this._renderChildrenToggle(e,o),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,d,r)),this._renderItemMessage(e),d?this._renderActionsSections(e,a,r):null,l&&l.open&&!l.disabled?l.render():null,this._renderChildList(e,o)]}_renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{style:n,id:r,editingEnabled:o,selectedItems:l}=this,a=`${`${r}_${e.uid}`}__title`,d=this._hasMessage(e),c=this._hasChildren(e),h={[B.itemChildren]:c,[B.itemMessage]:!!d,[B.itemInvisible]:"modern"===n&&!e.visible,[B.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[B.itemSelectable]:o};if(o){const n={[$]:e.layer?.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h,{[B.itemOnlyChild]:!!s}),"aria-labelledby":a,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":u(e,l)?"true":"false",role:"option",...n},this._renderItemContent(e,t,a))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h),"aria-labelledby":a},this._renderItemContent(e,t,a))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?v("calcite-icon",{icon:"connected"===t?"check-circle":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:n,updating:r}=e,o=r&&!t,l=!!s;return v("span",{class:this.classes({[B.statusIndicator]:!0,[B.publishing]:n,[B.updating]:o,[B.connectionStatus]:l,[B.connectionStatusConnected]:l&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:B.title},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=O,n=t?.visibilityMode,r="modern"===i,o=n===s,l={[B.toggleVisibleIcon]:r,[B.toggleIcon]:r&&!o,[B.radioIcon]:r&&o,[b.radioChecked]:o&&e,[b.radioUnchecked]:o&&!e,[b.visible]:!o&&e,[b.nonVisible]:!o&&!e};return v("span",{key:"item-toggle-icon",class:this.classes(l),"aria-hidden":"true"})}_renderItemToggle(e,t,i){const{editingEnabled:s,messages:n}=this,{exclusive:r}=O,o=t&&t.visibilityMode,l=o===r?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:B.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",title:n.layerVisibility,role:l,"aria-labelledby":i}:{key:"item-toggle",class:B.toggleVisible},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{editingEnabled:s,style:n,messages:r}=this,{inherited:o,exclusive:l}=O,a=t?.visibilityMode,d=a===l?"radio":"switch",c=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===n?[c,h,u]:[u,c,h],g=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:B.label}:{key:`item-label-with-selection-${e.uid}`,class:B.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":a,tabIndex:0,title:r.layerVisibility,"aria-checked":e.visible?"true":"false",role:d,"aria-labelledby":i},m);return a===o||e.error?v("div",{key:`item-label-container-${e.uid}`,class:B.label},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:n,disabled:r}=e,o=n||t?t:b.defaultAction,l=this._getIconImageStyles(e),a={[B.actionsMenuItemActive]:i&&!r},d={[B.actionImage]:!!l["background-image"],[g.disabledElement]:e.disabled};return o&&(d[o]=!!o),v("div",{"aria-disabled":e.disabled.toString(),key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(B.actionsMenuItem,a),role:"button",tabIndex:e.disabled?void 0:0,title:s,"aria-label":s},v("span",{class:this.classes(d),styles:l}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:B.actionsList},this._renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:B.actions,hidden:!e.actionsOpen||null},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:b.defaultAction,r={[B.actionImage]:!t&&!!s["background-image"],[b.loadingIndicator]:t,[g.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(B.actionIcon,r),styles:s})}_renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:B.actionTitle},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:o}=i,l={[B.actionsMenuItem]:s&&"button"===i.type,[B.action]:n||!s&&"toggle"!==i.type,[B.actionToggle]:!n&&"toggle"===i.type,[B.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[g.disabledElement]:r},a=[this._renderActionIcon(i),this._renderActionTitle(o,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,title:o??void 0,"aria-label":o},a):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,role:"button",title:o??void 0,"aria-label":o},a)}_setVisibleItems(){const{referenceItems:e,baseItems:t,visibleElements:i}=this,s=e.concat(t);this.visibleItems=s?.filter((e=>!e.hidden&&(i.errors||!e.error)))}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;e?.el&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;e?.el&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){e.preventDefault();const t=this._editTitleInput?.value;t?.trim()&&(this.basemapTitle=t),this._toggleEditingTitle()}_itemMovedList(e){const t=H(e.item);if(!t)return;const i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,n=e.newIndex;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,filter:`.${B.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.view?.map?.basemap?.baseLayers:"reference"===e?this.view?.map?.basemap?.referenceLayers:null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=H(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=H(n),o=n.dataset.itemType,{_sortableBaseLayers:l,_sortableReferenceLayers:a,selectedItems:d}=this,c="base"===o?l:"reference"===o?a:null;if(!c||!r)return;const h=u(r,d),m=c.toArray(),g=e.target,p=m.indexOf(g.dataset[E]),{baseItems:_,referenceItems:b}=this.viewModel;if(-1!==p){if("ArrowDown"===s){const e=p+1,t=e>=m.length;if(t&&"reference"===o&&h){const e=_.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"reference"===o){const e=_.at(0);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;return h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if("ArrowUp"===s){const e=p-1,t=e<0;if(t&&"base"===o&&h){if(1===_.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"base"===o){const e=b.at(-1);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.addHandles(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.id,e.title,e.visible,e.value,e.displayValueEnabled,e.max,e.min,e.step]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible,e.value]),(()=>this.scheduleRender()),r)],t)}_renderOnItemChanges(e,t){this.addHandles([s((()=>[e.actionsOpen,e.visible,e.open,e.updating,e.connectionStatus,e.publishing,e.title,e.visibleAtCurrentScale,e.error,e.visibilityMode,e.panel,e.panel?.title,e.panel?.content,e.panel?.className]),(()=>this.scheduleRender()),r),s((()=>[e.hidden,e.error]),(()=>this._setVisibleItems())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.removeHandles(t),this._tooltipReferenceMap.clear(),this._setVisibleItems(),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:""}}_toggleActionsOpen(e){e.stopPropagation();const t=H(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>x(e))),r.forEach((e=>x(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=V(e.currentTarget);t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=U(t),s=H(t);s&&i&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s))}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=H(t);s&&(i===O.exclusive&&s.visible||(s.visible=!s.visible))}_toggleChildrenClick(e){e.stopPropagation();const t=H(e.currentTarget);t&&(t.open=!t.open)}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=H(e.currentTarget);if(!n)return;const r=u(n,i),{length:o}=i;if(!s)return o&&!(r&&1===o)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}get test(){return{visibleItems:this.visibleItems}}};function U(e){return e["data-action"]}function V(e){return e["data-panel"]}function H(e){return e["data-item"]}e([o()],N.prototype,"visibleItems",void 0),e([o()],N.prototype,"basemapTitle",null),e([o()],N.prototype,"baseListItemCreatedFunction",null),e([o()],N.prototype,"editingEnabled",void 0),e([o()],N.prototype,"headingLevel",void 0),e([o()],N.prototype,"iconClass",void 0),e([o()],N.prototype,"label",null),e([o(),f("esri/widgets/BasemapLayerList/t9n/BasemapLayerList")],N.prototype,"messages",void 0),e([o(),f("esri/t9n/common")],N.prototype,"messagesCommon",void 0),e([o()],N.prototype,"multipleSelectionEnabled",void 0),e([o()],N.prototype,"referenceListItemCreatedFunction",null),e([o({readOnly:!0})],N.prototype,"baseItems",null),e([o({readOnly:!0})],N.prototype,"referenceItems",null),e([o()],N.prototype,"selectedItems",void 0),e([o()],N.prototype,"style",void 0),e([o()],N.prototype,"view",null),e([I("trigger-action"),o({type:c})],N.prototype,"viewModel",void 0),e([o()],N.prototype,"visibleElements",void 0),e([l("visibleElements")],N.prototype,"castVisibleElements",null),e([y()],N.prototype,"_toggleActionsOpen",null),e([y()],N.prototype,"_triggerPanel",null),e([y()],N.prototype,"_triggerAction",null),e([y()],N.prototype,"_toggleVisibility",null),e([y()],N.prototype,"_toggleChildrenClick",null),e([y()],N.prototype,"_toggleSelection",null),N=e([a("esri.widgets.BasemapLayerList")],N);const P=N;export{P as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{watch as s,on as n,initial as r}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./BasemapLayerList/BasemapLayerListViewModel.js";import h from"./LayerList/ListItem.js";import{findSelectedItem as u}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as p,incrementHeadingLevel as _}from"./support/Heading.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{accessibleHandler as y}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import C from"sortablejs";const T=t.ofType(h);function L(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",S="root-layers",$="data-layer-uid",E="layerUid",w="esri-basemap-layer-list",k=`${w}__item`,M=`${w}__list`,B={base:w,widgetIcon:b.layers,newUI:`${w}--new-ui`,titleContainer:`${w}__title-container`,mainHeading:`${w}__main-heading`,editingCard:`${w}__editing-card`,editingInput:`${w}__editing-input`,editingActions:`${w}__editing-actions`,editButton:`${w}__edit-button`,editButtonIcon:`${w}__edit-button-icon`,submitButton:`${w}__submit-button`,cancelButton:`${w}__cancel-button`,noItems:`${w}__no-items`,horizontalRule:`${w}__hr`,list:M,listHeading:`${M}-heading`,listRoot:`${M}--root`,listExclusive:`${M}--exclusive`,listEmpty:`${w}__list--empty`,listEmptyState:`${w}__list-empty-state`,listInherited:`${M}--inherited`,listIndependent:`${M}--independent`,item:k,itemOnlyChild:`${k}--only-child`,itemContent:`${k}-content`,itemMessage:`${k}--has-message`,itemInvisible:`${k}--invisible`,itemInvisibleAtScale:`${k}--invisible-at-scale`,itemChildren:`${k}--has-children`,itemSelectable:`${k}--selectable`,itemContainer:`${k}-container`,actionsMenu:`${k}-actions-menu`,actionsMenuItem:`${k}-actions-menu-item`,actionsMenuItemActive:`${k}-actions-menu-item--active`,actions:`${k}-actions`,actionsList:`${k}-actions-list`,action:`${k}-action`,actionIcon:`${k}-action-icon`,actionImage:`${k}-action-image`,actionTitle:`${k}-action-title`,actionToggle:`${w}__action-toggle`,actionToggleOn:`${w}__action-toggle--on`,label:`${k}-label`,message:`${k}-message`,title:`${k}-title`,statusIndicator:`${w}__status-indicator`,publishing:`${w}__publishing`,updating:`${w}__updating`,connectionStatus:`${w}__connection-status`,connectionStatusConnected:`${w}__connection-status--connected`,toggleVisible:`${k}-toggle`,toggleVisibleIcon:`${k}-toggle-icon`,toggleIcon:`${k}-toggle-icon`,radioIcon:`${k}-radio-icon`,childToggle:`${w}__child-toggle`,childToggleOpen:`${w}__child-toggle--open`,childOpened:`${w}__child-toggle-icon--opened`,childClosed:`${w}__child-toggle-icon--closed`,childClosed_RTL:`${w}__child-toggle-icon--closed-rtl`,sortableChosen:`${w}--chosen`},R={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},O={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function x(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>x(e)))}const j={baseLayers:!0,referenceLayers:!0,statusIndicators:!0,errors:!1};let N=class extends d{constructor(e,t){super(e,t),this._tooltipReferenceMap=new Map,this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this.visibleItems=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=B.widgetIcon,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectedItems=new T,this.style="classic",this.viewModel=new c,this.visibleElements={...j}}initialize(){const{baseItems:e,referenceItems:t}=this;this._setVisibleItems(),this.addHandles([s((()=>this.visibleElements),(()=>{this._itemsChanged(e,R.baseItems),this._itemsChanged(t,R.referenceItems)})),n((()=>this.baseItems),"change",(()=>{this._itemsChanged(e,R.baseItems)})),n((()=>this.referenceItems),"change",(()=>this._itemsChanged(t,R.referenceItems))),s((()=>this.editingEnabled),(()=>this._toggleSorting()),r)])}loadDependencies(){return m({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable(),this._tooltipReferenceMap.clear()}get basemapTitle(){return this.viewModel.basemapTitle}set basemapTitle(e){this.viewModel.basemapTitle=e}get baseListItemCreatedFunction(){return this.viewModel.baseListItemCreatedFunction}set baseListItemCreatedFunction(e){this.viewModel.baseListItemCreatedFunction=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get referenceListItemCreatedFunction(){return this.viewModel.referenceListItemCreatedFunction}set referenceListItemCreatedFunction(e){this.viewModel.referenceListItemCreatedFunction=e}get baseItems(){return this.viewModel.baseItems}get referenceItems(){return this.viewModel.referenceItems}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...j,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[B.newUI]:"modern"===this.style,[g.hidden]:"loading"===e,[g.disabled]:"disabled"===e},i=this._renderItemTooltips(),s=this._renderReferenceSection(),n=this._renderBaseSection(),r=s&&n?v("hr",{class:B.horizontalRule}):null,o=[this._renderTitleContainer(),s,r,n];return v("div",{class:this.classes(B.base,g.widget,g.panel,t)},[i,o])}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?v("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems?.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:B.editingInput},e.basemapTitle,v("input",{bind:this,class:g.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t??void 0,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}_renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(g.button,g.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}_renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:g.button},e.form.ok)}_renderEditingForm(){return v("div",{class:B.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this._renderEditingInput(),v("div",{class:B.editingActions},this._renderCancelButton(),this._renderSubmitButton())))}_renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(g.heading,B.mainHeading)},e)}_renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:B.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(b.edit,B.editButtonIcon)})):null}_renderTitleContainer(){return v("div",{class:B.titleContainer},this._editingTitle?this._renderEditingForm():this._renderBasemapTitle(),this._renderEditTitleButton())}_renderNoLayersInfo(e,t){return v("div",{key:t,class:B.noItems},e)}_renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(B.list,B.listRoot,B.listIndependent)},e.map((i=>this._renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}_renderBaseHeader(){return v(p,{key:"base-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.baseHeading)}_renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this._renderBaseHeader(),[0===s.length?this._renderNoLayersInfo(t.noBaseLayers,n):null,this._renderList(s,n)]]}_renderReferenceHeader(){return v(p,{key:"reference-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.referenceHeading)}_renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this._renderReferenceHeader(),[0===s.length?this._renderNoLayersInfo(t.noReferenceLayers,n):null,this._renderList(s,n)]]}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,o={[B.childToggleOpen]:e.open},l=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(B.childToggle,o),tabIndex:0,role:"button","aria-controls":t,"aria-label":l,title:l},v("span",{"aria-hidden":"true",class:this.classes(B.childClosed,b.rightTriangleArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childOpened,b.downArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childClosed_RTL,b.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?v("div",{key:"esri-basemap-layer-list__error",class:B.message,role:"alert"},v("span",{"aria-hidden":"true",class:b.noticeTriangle}),this.messages.layerError):e.incompatible?v("div",{key:"esri-basemap-layer-list__incompatible",class:B.message,role:"alert"},v("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:b.noticeTriangle,afterCreate:t=>this._setTooltipReference(t,e)}),this.messages.layerIncompatible):null}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[B.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(B.actionsMenuItem,s),tabIndex:0,role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:b.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this._renderPanelButton(n):null,o=1===i&&this._getSingleActionButton(t),l=o?this._renderAction({item:e,action:o,singleAction:!0}):null,a=!o&&i?this._renderActionsMenuIcon(e,s):null;return a||r||o?v("div",{key:"actions-menu",class:B.actionsMenu},r,l,a):null}_renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=this._hasChildren(e),o=!r&&i&&"group"===e.layer?.type,{exclusive:l,inherited:a}=O,d={[B.listEmpty]:!r,[B.listExclusive]:s===l,[B.listInherited]:s===a,[B.listIndependent]:s!==a&&s!==l};return r||o?r?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(B.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===l?"radiogroup":"group",hidden:!e.open||null},n?.map((t=>this._renderItem({item:t,parent:e}))).toArray()):v("div",{bind:this,key:"list-items",id:t,class:B.listEmptyState},this.messages.noItemsToDisplay):null}_renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,o=`${n}__list`,{panel:l}=e,a=this._filterActions(e.actionsSections),d=this._countActions(a);return[v("div",{key:"list-item-container",class:B.itemContainer},this._renderChildrenToggle(e,o),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,d,r)),this._renderItemMessage(e),d?this._renderActionsSections(e,a,r):null,l&&l.open&&!l.disabled?l.render():null,this._renderChildList(e,o)]}_renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{style:n,id:r,editingEnabled:o,selectedItems:l}=this,a=`${`${r}_${e.uid}`}__title`,d=this._hasMessage(e),c=this._hasChildren(e),h={[B.itemChildren]:c,[B.itemMessage]:!!d,[B.itemInvisible]:"modern"===n&&!e.visible,[B.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[B.itemSelectable]:o};if(o){const n={[$]:e.layer?.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h,{[B.itemOnlyChild]:!!s}),"aria-labelledby":a,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":u(e,l)?"true":"false",role:"option",...n},this._renderItemContent(e,t,a))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h),"aria-labelledby":a},this._renderItemContent(e,t,a))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?v("calcite-icon",{icon:"connected"===t?"check-circle":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:n,updating:r}=e,o=r&&!t,l=!!s;return v("span",{class:this.classes({[B.statusIndicator]:!0,[B.publishing]:n,[B.updating]:o,[B.connectionStatus]:l,[B.connectionStatusConnected]:l&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:B.title},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=O,n=t?.visibilityMode,r="modern"===i,o=n===s,l={[B.toggleVisibleIcon]:r,[B.toggleIcon]:r&&!o,[B.radioIcon]:r&&o,[b.radioChecked]:o&&e,[b.radioUnchecked]:o&&!e,[b.visible]:!o&&e,[b.nonVisible]:!o&&!e};return v("span",{key:"item-toggle-icon",class:this.classes(l),"aria-hidden":"true"})}_renderItemToggle(e,t,i){const{editingEnabled:s,messages:n}=this,{exclusive:r}=O,o=t&&t.visibilityMode,l=o===r?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:B.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",title:n.layerVisibility,role:l,"aria-labelledby":i}:{key:"item-toggle",class:B.toggleVisible},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{editingEnabled:s,style:n,messages:r}=this,{inherited:o,exclusive:l}=O,a=t?.visibilityMode,d=a===l?"radio":"switch",c=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===n?[c,h,u]:[u,c,h],g=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:B.label}:{key:`item-label-with-selection-${e.uid}`,class:B.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":a,tabIndex:0,title:r.layerVisibility,"aria-checked":e.visible?"true":"false",role:d,"aria-labelledby":i},m);return a===o||e.error?v("div",{key:`item-label-container-${e.uid}`,class:B.label},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:n,disabled:r}=e,o=n||t?t:b.defaultAction,l=this._getIconImageStyles(e),a={[B.actionsMenuItemActive]:i&&!r},d={[B.actionImage]:!!l["background-image"],[g.disabledElement]:e.disabled};return o&&(d[o]=!!o),v("div",{"aria-disabled":e.disabled.toString(),key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(B.actionsMenuItem,a),role:"button",tabIndex:e.disabled?void 0:0,title:s,"aria-label":s},v("span",{class:this.classes(d),styles:l}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:B.actionsList},this._renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:B.actions,hidden:!e.actionsOpen||null},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:b.defaultAction,r={[B.actionImage]:!t&&!!s["background-image"],[b.loadingIndicator]:t,[g.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(B.actionIcon,r),styles:s})}_renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:B.actionTitle},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:o}=i,l={[B.actionsMenuItem]:s&&"button"===i.type,[B.action]:n||!s&&"toggle"!==i.type,[B.actionToggle]:!n&&"toggle"===i.type,[B.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[g.disabledElement]:r},a=[this._renderActionIcon(i),this._renderActionTitle(o,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,title:o??void 0,"aria-label":o},a):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,role:"button",title:o??void 0,"aria-label":o},a)}_setVisibleItems(){const{referenceItems:e,baseItems:t,visibleElements:i}=this,s=e.concat(t);this.visibleItems=s?.filter((e=>!e.hidden&&(i.errors||!e.error)))}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;e?.el&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;e?.el&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){e.preventDefault();const t=this._editTitleInput?.value;t?.trim()&&(this.basemapTitle=t),this._toggleEditingTitle()}_itemMovedList(e){const t=H(e.item);if(!t)return;const i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,n=e.newIndex;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,filter:`.${B.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.view?.map?.basemap?.baseLayers:"reference"===e?this.view?.map?.basemap?.referenceLayers:null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=H(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=H(n),o=n.dataset.itemType,{_sortableBaseLayers:l,_sortableReferenceLayers:a,selectedItems:d}=this,c="base"===o?l:"reference"===o?a:null;if(!c||!r)return;const h=u(r,d),m=c.toArray(),g=e.target,p=m.indexOf(g.dataset[E]),{baseItems:_,referenceItems:b}=this.viewModel;if(-1!==p){if("ArrowDown"===s){const e=p+1,t=e>=m.length;if(t&&"reference"===o&&h){const e=_.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"reference"===o){const e=_.at(0);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;return h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if("ArrowUp"===s){const e=p-1,t=e<0;if(t&&"base"===o&&h){if(1===_.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"base"===o){const e=b.at(-1);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.addHandles(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.id,e.title,e.visible,e.value,e.displayValueEnabled,e.max,e.min,e.step]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible,e.value]),(()=>this.scheduleRender()),r)],t)}_renderOnItemChanges(e,t){this.addHandles([s((()=>[e.actionsOpen,e.visible,e.open,e.updating,e.connectionStatus,e.publishing,e.title,e.visibleAtCurrentScale,e.error,e.visibilityMode,e.panel,e.panel?.title,e.panel?.content,e.panel?.className]),(()=>this.scheduleRender()),r),s((()=>[e.hidden,e.error]),(()=>this._setVisibleItems())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.removeHandles(t),this._tooltipReferenceMap.clear(),this._setVisibleItems(),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:""}}_toggleActionsOpen(e){e.stopPropagation();const t=H(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>x(e))),r.forEach((e=>x(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=V(e.currentTarget);t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=U(t),s=H(t);s&&i&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s))}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=H(t);s&&(i===O.exclusive&&s.visible||(s.visible=!s.visible))}_toggleChildrenClick(e){e.stopPropagation();const t=H(e.currentTarget);t&&(t.open=!t.open)}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=H(e.currentTarget);if(!n)return;const r=u(n,i),{length:o}=i;if(!s)return o&&!(r&&1===o)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}get test(){return{visibleItems:this.visibleItems}}};function U(e){return e["data-action"]}function V(e){return e["data-panel"]}function H(e){return e["data-item"]}e([o()],N.prototype,"visibleItems",void 0),e([o()],N.prototype,"basemapTitle",null),e([o()],N.prototype,"baseListItemCreatedFunction",null),e([o()],N.prototype,"editingEnabled",void 0),e([o()],N.prototype,"headingLevel",void 0),e([o()],N.prototype,"iconClass",void 0),e([o()],N.prototype,"label",null),e([o(),f("esri/widgets/BasemapLayerList/t9n/BasemapLayerList")],N.prototype,"messages",void 0),e([o(),f("esri/t9n/common")],N.prototype,"messagesCommon",void 0),e([o()],N.prototype,"multipleSelectionEnabled",void 0),e([o()],N.prototype,"referenceListItemCreatedFunction",null),e([o({readOnly:!0})],N.prototype,"baseItems",null),e([o({readOnly:!0})],N.prototype,"referenceItems",null),e([o()],N.prototype,"selectedItems",void 0),e([o()],N.prototype,"style",void 0),e([o()],N.prototype,"view",null),e([I("trigger-action"),o({type:c})],N.prototype,"viewModel",void 0),e([o()],N.prototype,"visibleElements",void 0),e([l("visibleElements")],N.prototype,"castVisibleElements",null),e([y()],N.prototype,"_toggleActionsOpen",null),e([y()],N.prototype,"_triggerPanel",null),e([y()],N.prototype,"_triggerAction",null),e([y()],N.prototype,"_toggleVisibility",null),e([y()],N.prototype,"_toggleChildrenClick",null),e([y()],N.prototype,"_toggleSelection",null),N=e([a("esri.widgets.BasemapLayerList")],N);const P=N;export{P as default};
package/widgets/Expand.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import s from"./Expand/ExpandViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{isWidget as d,hasDomNode as l}from"./support/widget.js";import{tsx as p}from"./support/jsxFactory.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{accessibleHandler as u}from"./support/decorators/accessibleHandler.js";const h="esri-expand",m={base:h,modeAuto:`${h}--auto`,modeDrawer:`${h}--drawer`,modeFloating:`${h}--floating`,container:`${h}__container`,containerExpanded:`${h}__container--expanded`,panel:`${h}__panel`,iconExpanded:`${h}__icon--expanded`,iconNumber:`${h}__icon-number`,iconNumberExpanded:`${h}__icon-number--expanded`,content:`${h}__content`,contentExpanded:`${h}__content--expanded`,expandMask:`${h}__mask`,expandMaskExpanded:`${h}__mask--expanded`};let x=class extends n{constructor(e,t){super(e,t),this.closeOnEsc=!0,this.collapseIcon=null,this.collapseTooltip="",this.content="",this.expandTooltip="",this.iconClass=null,this.icon=null,this.iconNumber=0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.viewModel=new s,this._handleKeyDown=e=>{const{closeOnEsc:t,_toggleButtonEl:o,expanded:n}=this;if(!n||!t||e.target===o||"Escape"!==e.key)return;("function"==typeof t?t(e):t)&&(this.expanded=!1,o?.focus())}}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get contentId(){return`${this.id}_controls_content`}get expandTitle(){const{expanded:e,messagesCommon:t,collapseTooltip:o,expandTooltip:n}=this;return(e?o||t?.collapse:n||t?.expand)??""}get autoCollapse(){return this.viewModel.autoCollapse}set autoCollapse(e){this.viewModel.autoCollapse=e}get collapseIconClass(){return i.collapse}set collapseIconClass(e){this._overrideIfSome("collapseIconClass",e)}get expanded(){return this.viewModel.expanded}set expanded(e){this.viewModel.expanded=e}get expandIconClass(){return d(this.content)?this.content.iconClass:i.expand}set expandIconClass(e){this._overrideIfSome("expandIconClass",e)}get expandIcon(){return d(this.content)?this.content.icon:void 0}set expandIcon(e){this._overrideIfSome("expandIcon",e)}get group(){return this.viewModel.group}set group(e){this.viewModel.group=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[m.modeAuto]:"auto"===e,[m.modeDrawer]:"drawer"===e,[m.modeFloating]:"floating"===e};return p("div",{class:this.classes(m.base,a.widget,t),onkeydown:this._handleKeyDown},this._renderMask(),this._renderContainer())}_renderContainer(){const{expanded:e}=this,t={[m.containerExpanded]:e};return p("div",{class:this.classes(m.container,t)},this._renderPanel(),this._renderContent())}_renderMask(){const{expanded:e}=this,t={[m.expandMaskExpanded]:e};return p("div",{bind:this,onclick:this._toggle,class:this.classes(m.expandMask,t)})}_renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?p("span",{key:"expand__icon-number",class:m.iconNumber},t):null}_renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?p("span",{key:"expand__expand-icon-number",class:this.classes(m.iconNumber,m.iconNumberExpanded)},e):null}_renderIcon(){const e=(this.expanded?this.collapseIcon:this.expandIcon)??"";return p("calcite-icon",{key:"icon",icon:e,scale:"s"})}_renderLegacyIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[m.iconExpanded]:o};return null!=t&&(n[t]=!o),null!=e&&(n[e]=e===t||o),p("span",{key:"legacy-icon","aria-hidden":"true",class:this.classes(n)})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.expandTitle)}_renderExpandButton(){const{expanded:e,expandTitle:t,expandIcon:o,collapseIcon:n,contentId:s}=this;return p("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":s,"aria-expanded":e?"true":"false",bind:this,class:a.widgetButton,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:0,title:t},this._renderBadgeNumber(),!e&&null!=o||e&&null!=n?this._renderIcon():this._renderLegacyIcon(),this._renderTitle())}_renderPanel(){return p("div",{class:m.panel},this._renderExpandButton(),this._renderPanelNumber())}_renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[m.contentExpanded]:e},s={id:t,role:"region",class:this.classes(m.content,n)};return"string"==typeof o?p("div",{key:"content__string",innerHTML:o,...s}):d(o)?p("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?p("div",{key:"content__html-element",bind:o,afterCreate:this._attachToNode,...s}):l(o)?p("div",{key:"content__node",bind:o.domNode,afterCreate:this._attachToNode,...s}):null}_toggle(){this.toggle()}_attachToNode(e){const t=this;e.appendChild(t)}_storeToggleButtonEl(e){this._toggleButtonEl=e}};e([t({readOnly:!0})],x.prototype,"contentId",null),e([t({readOnly:!0})],x.prototype,"expandTitle",null),e([t()],x.prototype,"autoCollapse",null),e([t()],x.prototype,"closeOnEsc",void 0),e([t()],x.prototype,"collapseIconClass",null),e([t()],x.prototype,"collapseIcon",void 0),e([t()],x.prototype,"collapseTooltip",void 0),e([t()],x.prototype,"content",void 0),e([t()],x.prototype,"expanded",null),e([t()],x.prototype,"expandIconClass",null),e([t()],x.prototype,"expandIcon",null),e([t()],x.prototype,"expandTooltip",void 0),e([t()],x.prototype,"group",null),e([t()],x.prototype,"iconClass",void 0),e([t()],x.prototype,"icon",void 0),e([t()],x.prototype,"iconNumber",void 0),e([t()],x.prototype,"label",null),e([t(),c("esri/widgets/Expand/t9n/Expand")],x.prototype,"messages",void 0),e([t(),c("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([t()],x.prototype,"mode",void 0),e([t()],x.prototype,"view",null),e([t({type:s})],x.prototype,"viewModel",void 0),e([u()],x.prototype,"_toggle",null),x=e([o("esri.widgets.Expand")],x);const _=x;export{_ as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import s from"./Expand/ExpandViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{isWidget as d,hasDomNode as l}from"./support/widget.js";import{tsx as p}from"./support/jsxFactory.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{accessibleHandler as u}from"./support/decorators/accessibleHandler.js";const h="esri-expand",m={base:h,modeAuto:`${h}--auto`,modeDrawer:`${h}--drawer`,modeFloating:`${h}--floating`,container:`${h}__container`,containerExpanded:`${h}__container--expanded`,panel:`${h}__panel`,icon:"esri-collapse__icon",iconExpanded:`${h}__icon--expanded`,iconNumber:`${h}__icon-number`,iconNumberExpanded:`${h}__icon-number--expanded`,content:`${h}__content`,contentExpanded:`${h}__content--expanded`,expandMask:`${h}__mask`,expandMaskExpanded:`${h}__mask--expanded`};let x=class extends n{constructor(e,t){super(e,t),this.closeOnEsc=!0,this.collapseIcon=null,this.collapseTooltip="",this.content="",this.expandTooltip="",this.iconClass=null,this.icon=null,this.iconNumber=0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.viewModel=new s,this._handleKeyDown=e=>{const{closeOnEsc:t,_toggleButtonEl:o,expanded:n}=this;if(!n||!t||e.target===o||"Escape"!==e.key)return;("function"==typeof t?t(e):t)&&(this.expanded=!1,o?.focus())}}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get contentId(){return`${this.id}_controls_content`}get expandTitle(){const{expanded:e,messagesCommon:t,collapseTooltip:o,expandTooltip:n}=this;return(e?o||t?.collapse:n||t?.expand)??""}get autoCollapse(){return this.viewModel.autoCollapse}set autoCollapse(e){this.viewModel.autoCollapse=e}get collapseIconClass(){return i.collapse}set collapseIconClass(e){this._overrideIfSome("collapseIconClass",e)}get expanded(){return this.viewModel.expanded}set expanded(e){this.viewModel.expanded=e}get expandIconClass(){return d(this.content)?this.content.iconClass:i.expand}set expandIconClass(e){this._overrideIfSome("expandIconClass",e)}get expandIcon(){return d(this.content)?this.content.icon:void 0}set expandIcon(e){this._overrideIfSome("expandIcon",e)}get group(){return this.viewModel.group}set group(e){this.viewModel.group=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[m.modeAuto]:"auto"===e,[m.modeDrawer]:"drawer"===e,[m.modeFloating]:"floating"===e};return p("div",{class:this.classes(m.base,a.widget,t),onkeydown:this._handleKeyDown},this._renderMask(),this._renderContainer())}_renderContainer(){const{expanded:e}=this,t={[m.containerExpanded]:e};return p("div",{class:this.classes(m.container,t)},this._renderPanel(),this._renderContent())}_renderMask(){const{expanded:e}=this,t={[m.expandMaskExpanded]:e};return p("div",{bind:this,onclick:this._toggle,class:this.classes(m.expandMask,t)})}_renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?p("span",{key:"expand__icon-number",class:m.iconNumber},t):null}_renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?p("span",{key:"expand__expand-icon-number",class:this.classes(m.iconNumber,m.iconNumberExpanded)},e):null}_renderIcon(){const e=(this.expanded?this.collapseIcon:this.expandIcon)??"";return p("calcite-icon",{key:"icon",icon:e,scale:"s"})}_renderLegacyIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[m.iconExpanded]:o};return null!=t&&(n[t]=!o),null!=e&&(n[e]=e===t||o),p("span",{key:"legacy-icon","aria-hidden":"true",class:this.classes(m.icon,n)})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.expandTitle)}_renderExpandButton(){const{expanded:e,expandTitle:t,expandIcon:o,collapseIcon:n,contentId:s}=this;return p("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":s,"aria-expanded":e?"true":"false",bind:this,class:a.widgetButton,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:0,title:t},this._renderBadgeNumber(),!e&&null!=o||e&&null!=n?this._renderIcon():this._renderLegacyIcon(),this._renderTitle())}_renderPanel(){return p("div",{class:m.panel},this._renderExpandButton(),this._renderPanelNumber())}_renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[m.contentExpanded]:e},s={id:t,role:"region",class:this.classes(m.content,n)};return"string"==typeof o?p("div",{key:"content__string",innerHTML:o,...s}):d(o)?p("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?p("div",{key:"content__html-element",bind:o,afterCreate:this._attachToNode,...s}):l(o)?p("div",{key:"content__node",bind:o.domNode,afterCreate:this._attachToNode,...s}):null}_toggle(){this.toggle()}_attachToNode(e){const t=this;e.appendChild(t)}_storeToggleButtonEl(e){this._toggleButtonEl=e}};e([t({readOnly:!0})],x.prototype,"contentId",null),e([t({readOnly:!0})],x.prototype,"expandTitle",null),e([t()],x.prototype,"autoCollapse",null),e([t()],x.prototype,"closeOnEsc",void 0),e([t()],x.prototype,"collapseIconClass",null),e([t()],x.prototype,"collapseIcon",void 0),e([t()],x.prototype,"collapseTooltip",void 0),e([t()],x.prototype,"content",void 0),e([t()],x.prototype,"expanded",null),e([t()],x.prototype,"expandIconClass",null),e([t()],x.prototype,"expandIcon",null),e([t()],x.prototype,"expandTooltip",void 0),e([t()],x.prototype,"group",null),e([t()],x.prototype,"iconClass",void 0),e([t()],x.prototype,"icon",void 0),e([t()],x.prototype,"iconNumber",void 0),e([t()],x.prototype,"label",null),e([t(),c("esri/widgets/Expand/t9n/Expand")],x.prototype,"messages",void 0),e([t(),c("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([t()],x.prototype,"mode",void 0),e([t()],x.prototype,"view",null),e([t({type:s})],x.prototype,"viewModel",void 0),e([u()],x.prototype,"_toggle",null),x=e([o("esri.widgets.Expand")],x);const _=x;export{_ as default};