@arcgis/core 4.28.0-next.20230821 → 4.28.0-next.20230822

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 (183) hide show
  1. package/arcade/functions/geomasync.js +1 -1
  2. package/arcade/portalUtils.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/0746319459dbcd3ab6f7.js +1 -0
  5. package/assets/esri/core/workers/chunks/217910f88fe2c03e6bdd.js +1 -0
  6. package/assets/esri/core/workers/chunks/54aaa21144431b29b6ed.js +1 -0
  7. package/assets/esri/core/workers/chunks/{46f6b77e586d78aeb75c.js → 6866dee1c7e2f230ad08.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{d6c96a20e9640b433719.js → 7dad40179a9767ea9087.js} +56 -56
  9. package/assets/esri/core/workers/chunks/{05ab09713d599687afa3.js → c6bd9c400615107591ec.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{4922a0fed7cbc6895882.js → f701a5afa1b730c51a49.js} +1 -1
  11. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ar.json +1 -0
  12. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_bg.json +1 -0
  13. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_bs.json +1 -0
  14. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ca.json +1 -0
  15. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_cs.json +1 -0
  16. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_da.json +1 -0
  17. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_de.json +1 -0
  18. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_el.json +1 -0
  19. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_es.json +1 -0
  20. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_et.json +1 -0
  21. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_fi.json +1 -0
  22. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_fr.json +1 -0
  23. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_he.json +1 -0
  24. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_hr.json +1 -0
  25. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_hu.json +1 -0
  26. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_id.json +1 -0
  27. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_it.json +1 -0
  28. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ja.json +1 -0
  29. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ko.json +1 -0
  30. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_lt.json +1 -0
  31. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_lv.json +1 -0
  32. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_nb.json +1 -0
  33. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_nl.json +1 -0
  34. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_pl.json +1 -0
  35. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_pt-BR.json +1 -0
  36. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_pt-PT.json +1 -0
  37. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ro.json +1 -0
  38. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ru.json +1 -0
  39. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_sk.json +1 -0
  40. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_sl.json +1 -0
  41. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_sr.json +1 -0
  42. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_sv.json +1 -0
  43. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_th.json +1 -0
  44. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_tr.json +1 -0
  45. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_uk.json +1 -0
  46. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_vi.json +1 -0
  47. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_zh-CN.json +1 -0
  48. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_zh-HK.json +1 -0
  49. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_zh-TW.json +1 -0
  50. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  51. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  52. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  53. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  54. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  55. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  56. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  57. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  58. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  59. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  60. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  61. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  62. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  63. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  64. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  65. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  66. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  67. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  68. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  69. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  70. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  71. package/assets/esri/widgets/Editor/t9n/Editor_nb.json +1 -1
  72. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  73. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  74. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  75. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  76. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  77. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  78. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  79. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  80. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  81. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  82. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  83. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  84. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  85. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  86. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  87. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  88. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  89. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ar.json +1 -1
  90. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bg.json +1 -1
  91. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bs.json +1 -1
  92. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ca.json +1 -1
  93. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_cs.json +1 -1
  94. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_da.json +1 -1
  95. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_de.json +1 -1
  96. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_el.json +1 -1
  97. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_es.json +1 -1
  98. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_et.json +1 -1
  99. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fi.json +1 -1
  100. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fr.json +1 -1
  101. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_he.json +1 -1
  102. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hr.json +1 -1
  103. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hu.json +1 -1
  104. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_id.json +1 -1
  105. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_it.json +1 -1
  106. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ja.json +1 -1
  107. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ko.json +1 -1
  108. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lt.json +1 -1
  109. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lv.json +1 -1
  110. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nb.json +1 -1
  111. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nl.json +1 -1
  112. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pl.json +1 -1
  113. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-BR.json +1 -1
  114. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-PT.json +1 -1
  115. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ro.json +1 -1
  116. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ru.json +1 -1
  117. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sk.json +1 -1
  118. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sl.json +1 -1
  119. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sr.json +1 -1
  120. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sv.json +1 -1
  121. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_th.json +1 -1
  122. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_tr.json +1 -1
  123. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_uk.json +1 -1
  124. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_vi.json +1 -1
  125. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-CN.json +1 -1
  126. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-HK.json +1 -1
  127. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-TW.json +1 -1
  128. package/chunks/LineSeries.js +1 -1
  129. package/chunks/Theme.js +1 -1
  130. package/chunks/chartUtilsAm5.js +1 -1
  131. package/layers/support/layerUtils.js +1 -1
  132. package/package.json +1 -1
  133. package/portal/support/utils.js +5 -0
  134. package/smartMapping/popup/support/utils.js +1 -1
  135. package/support/revision.js +1 -1
  136. package/symbols/cim/CIMImageColorSubstitutionHelper.js +1 -1
  137. package/symbols/support/previewSymbol3D.js +1 -1
  138. package/views/3d/analysis/Dimension/DimensionTool.js +1 -1
  139. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  140. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  141. package/views/3d/analysis/images/Factory.js +5 -0
  142. package/views/3d/interactive/Manipulator3D.js +1 -1
  143. package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
  144. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  145. package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
  146. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  147. package/views/3d/layers/I3SMeshView3D.js +1 -1
  148. package/views/3d/layers/MediaLayerView3D.js +1 -1
  149. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  150. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  151. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  152. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  153. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  154. package/views/3d/support/StreamTextureCollection.js +1 -1
  155. package/views/3d/support/TextureCollection.js +1 -1
  156. package/views/3d/support/engineContent/sdfPrimitives.js +1 -1
  157. package/views/3d/webgl-engine/Stage.js +1 -1
  158. package/views/3d/webgl-engine/lib/ContentObject.js +1 -1
  159. package/views/3d/webgl-engine/lib/GLMaterialRepository.js +1 -1
  160. package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
  161. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  162. package/views/3d/webgl-engine/lib/ITexture.js +5 -0
  163. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  164. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  165. package/views/3d/webgl-engine/lib/TextureRepository.js +1 -1
  166. package/views/3d/webgl-engine/parts/Model.js +1 -1
  167. package/views/draw/DrawManipulator.js +1 -1
  168. package/views/interactive/GraphicManipulator.js +1 -1
  169. package/views/interactive/ManipulatorCollection.js +1 -1
  170. package/views/interactive/ToolViewManagerManipulatorState.js +1 -1
  171. package/views/support/layerViewUtils.js +1 -1
  172. package/widgets/Sketch.js +1 -1
  173. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  174. package/widgets/support/Selector2D/selectorUtils.js +1 -1
  175. package/assets/esri/core/workers/chunks/4e39252f40bc57be9d12.js +0 -1
  176. package/assets/esri/core/workers/chunks/c99fa4189a114370b004.js +0 -1
  177. package/assets/esri/core/workers/chunks/ebd006fcd568a7731115.js +0 -1
  178. package/views/3d/analysis/Slice/images/Factory.js +0 -5
  179. /package/assets/esri/views/3d/analysis/{Slice/images → images}/heading-rotate.ts.svg +0 -0
  180. /package/assets/esri/views/3d/analysis/{Slice/images → images}/tilt-rotate.ts.svg +0 -0
  181. /package/views/3d/analysis/{Slice/images → images}/generateTextures.js +0 -0
  182. /package/views/3d/analysis/{Slice/images → images}/heading-rotate-svg.js +0 -0
  183. /package/views/3d/analysis/{Slice/images → images}/tilt-rotate-svg.js +0 -0
@@ -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"../../../../core/has.js";import t from"../../../../core/Error.js";import e from"../../../../core/Evented.js";import{disposeMaybe as r,removeMaybe as a}from"../../../../core/maybe.js";import{throwIfAborted as s,onAbort as i,createAbortError as o}from"../../../../core/promiseUtils.js";import{isArrayBuffer as n,isUint8Array as l}from"../../../../core/typedArrayUtil.js";import{isBlobProtocol as m,isDataProtocol as h}from"../../../../core/urlUtils.js";import{requestImage as p}from"../../../../support/requestImageUtils.js";import{loadImageAsync as d}from"../../../../support/requestUtils.js";import{TextureEncodingMimeType as _}from"./basicInterfaces.js";import{createTextureKTX2 as c,createTextureBasis as u,estimateMemoryKTX2 as g,estimateMemoryBasis as A}from"./BasisUtil.js";import{ContentObject as E}from"./ContentObject.js";import{ContentObjectType as T}from"./ContentObjectType.js";import{createDDSTexture as f}from"./DDSUtil.js";import{assert as D}from"./Util.js";import{TextureWrapMode as x,TextureSamplingMode as y,PixelFormat as F}from"../../../webgl/enums.js";import{Texture as I}from"../../../webgl/Texture.js";import{TextureDescriptor as U}from"../../../webgl/TextureDescriptor.js";class w extends E{constructor(t,r){super(),this._data=t,this.type=T.Texture,this._glTexture=null,this._loadingPromise=null,this._loadingController=null,this.events=new e,this.parameters=r||{},this.parameters.mipmap=!1!==this.parameters.mipmap,this.parameters.noUnpackFlip=this.parameters.noUnpackFlip||!1,this.parameters.preMultiplyAlpha=this.parameters.preMultiplyAlpha||!1,this.parameters.wrap=this.parameters.wrap||{s:x.REPEAT,t:x.REPEAT},this._startPreload(t)}_startPreload(t){null!=t&&(t instanceof HTMLVideoElement?this._startPreloadVideoElement(t):t instanceof HTMLImageElement&&this._startPreloadImageElement(t))}_startPreloadVideoElement(t){if(!(m(t.src)||"auto"===t.preload&&t.crossOrigin)){t.preload="auto",t.crossOrigin="anonymous";const e=!t.paused;if(t.src=t.src,e&&t.autoplay){const e=()=>{t.removeEventListener("canplay",e),t.play()};t.addEventListener("canplay",e)}}}_startPreloadImageElement(t){h(t.src)||m(t.src)||t.crossOrigin||(t.crossOrigin="anonymous",t.src=t.src)}dispose(){this._data=void 0}_createDescriptor(t){const e=new U;return e.wrapMode=this.parameters.wrap??x.REPEAT,e.flipped=!this.parameters.noUnpackFlip,e.samplingMode=this.parameters.mipmap?y.LINEAR_MIPMAP_LINEAR:y.LINEAR,e.hasMipmap=!!this.parameters.mipmap,e.preMultiplyAlpha=!!this.parameters.preMultiplyAlpha,e.maxAnisotropy=this.parameters.maxAnisotropy??(this.parameters.mipmap?t.parameters.maxMaxAnisotropy:1),e}get glTexture(){return this._glTexture}get memoryEstimate(){return this._glTexture?.gpuMemoryUsage||H(this._data,this.parameters)}load(t){if(null!=this._glTexture)return this._glTexture;if(this._loadingPromise)return this._loadingPromise;const e=this._data;return null==e?(this._glTexture=new I(t,this._createDescriptor(t),null),this._glTexture):"string"==typeof e?this._loadFromURL(t,e):e instanceof Image?this._loadFromImageElement(t,e):e instanceof HTMLVideoElement?this._loadFromVideoElement(t,e):e instanceof ImageData||e instanceof HTMLCanvasElement?this._loadFromImage(t,e):(n(e)||l(e))&&this.parameters.encoding===_.DDS_ENCODING?(this._data=void 0,this._loadFromDDSData(t,e)):(n(e)||l(e))&&this.parameters.encoding===_.KTX2_ENCODING?(this._data=void 0,this._loadFromKTX2(t,e)):(n(e)||l(e))&&this.parameters.encoding===_.BASIS_ENCODING?(this._data=void 0,this._loadFromBasis(t,e)):l(e)?this._loadFromPixelData(t,e):n(e)?this._loadFromPixelData(t,new Uint8Array(e)):null}get requiresFrameUpdates(){return this._data instanceof HTMLVideoElement}frameUpdate(t){return this._data instanceof HTMLVideoElement&&null!=this._glTexture?this._data.readyState<C.HAVE_CURRENT_DATA||t===this._data.currentTime?t:(this._glTexture.setData(this._data),this._glTexture.descriptor.hasMipmap&&this._glTexture.generateMipmap(),this.parameters.updateCallback&&this.parameters.updateCallback(),this._data.currentTime):t}_loadFromDDSData(t,e){return this._glTexture=f(t,this._createDescriptor(t),e),this._glTexture}_loadFromKTX2(t,e){return this._loadAsync((()=>c(t,this._createDescriptor(t),e).then((t=>(this._glTexture=t,t)))))}_loadFromBasis(t,e){return this._loadAsync((()=>u(t,this._createDescriptor(t),e).then((t=>(this._glTexture=t,t)))))}_loadFromPixelData(t,e){D(this.parameters.width>0&&this.parameters.height>0);const r=this._createDescriptor(t);return r.pixelFormat=1===this.parameters.components?F.LUMINANCE:3===this.parameters.components?F.RGB:F.RGBA,r.width=this.parameters.width??0,r.height=this.parameters.height??0,this._glTexture=new I(t,r,e),this._glTexture}_loadFromURL(t,e){return this._loadAsync((async r=>{const a=await p(e,{signal:r});return s(r),this._loadFromImage(t,a)}))}_loadFromImageElement(t,e){return e.complete?this._loadFromImage(t,e):this._loadAsync((async r=>{const a=await d(e,e.src,!1,r);return s(r),this._loadFromImage(t,a)}))}_loadFromVideoElement(t,e){return e.readyState>=C.HAVE_CURRENT_DATA?this._loadFromImage(t,e):this._loadFromVideoElementAsync(t,e)}_loadFromVideoElementAsync(e,r){return this._loadAsync((s=>new Promise(((n,l)=>{const m=()=>{r.removeEventListener("loadeddata",h),r.removeEventListener("error",p),a(d)},h=()=>{r.readyState>=C.HAVE_CURRENT_DATA&&(m(),n(this._loadFromImage(e,r)))},p=e=>{m(),l(e||new t("Failed to load video"))};r.addEventListener("loadeddata",h),r.addEventListener("error",p);const d=i(s,(()=>p(o())))}))))}_loadFromImage(t,e){const r=N(e);this.parameters.width=r.width,this.parameters.height=r.height;const a=this._createDescriptor(t);return a.pixelFormat=3===this.parameters.components?F.RGB:F.RGBA,a.width=r.width,a.height=r.height,this._glTexture=new I(t,a,e),this._glTexture}_loadAsync(t){const e=new AbortController;this._loadingController=e;const r=t(e.signal);this._loadingPromise=r;const a=()=>{this._loadingController===e&&(this._loadingController=null),this._loadingPromise===r&&(this._loadingPromise=null)};return r.then(a,a),r}unload(){if(this._glTexture=r(this._glTexture),null!=this._loadingController){const t=this._loadingController;this._loadingController=null,this._loadingPromise=null,t.abort()}this.events.emit("unloaded")}}function H(t,e){if(null==t)return 0;if(n(t)||l(t))return e.encoding===_.KTX2_ENCODING?g(t,!!e.mipmap):e.encoding===_.BASIS_ENCODING?A(t,!!e.mipmap):t.byteLength;const{width:r,height:a}=t instanceof Image||t instanceof ImageData||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement?N(t):e;return(e.mipmap?4/3:1)*r*a*(e.components||4)||0}function N(t){return t instanceof HTMLVideoElement?{width:t.videoWidth,height:t.videoHeight}:t}var C;!function(t){t[t.HAVE_NOTHING=0]="HAVE_NOTHING",t[t.HAVE_METADATA=1]="HAVE_METADATA",t[t.HAVE_CURRENT_DATA=2]="HAVE_CURRENT_DATA",t[t.HAVE_FUTURE_DATA=3]="HAVE_FUTURE_DATA",t[t.HAVE_ENOUGH_DATA=4]="HAVE_ENOUGH_DATA"}(C||(C={}));export{w as Texture};
5
+ import"../../../../core/has.js";import t from"../../../../core/Error.js";import e from"../../../../core/Evented.js";import{disposeMaybe as r,removeMaybe as a}from"../../../../core/maybe.js";import{throwIfAborted as s,onAbort as i,createAbortError as o}from"../../../../core/promiseUtils.js";import{isArrayBuffer as n,isUint8Array as l}from"../../../../core/typedArrayUtil.js";import{isBlobProtocol as m,isDataProtocol as h}from"../../../../core/urlUtils.js";import{requestImage as _}from"../../../../support/requestImageUtils.js";import{loadImageAsync as p}from"../../../../support/requestUtils.js";import{TextureEncodingMimeType as d}from"./basicInterfaces.js";import{createTextureKTX2 as c,createTextureBasis as u,estimateMemoryKTX2 as g,estimateMemoryBasis as A}from"./BasisUtil.js";import{ContentObject as E}from"./ContentObject.js";import{ContentObjectType as T}from"./ContentObjectType.js";import{createDDSTexture as f}from"./DDSUtil.js";import{assert as D}from"./Util.js";import{TextureWrapMode as x,TextureSamplingMode as y,PixelFormat as F}from"../../../webgl/enums.js";import{Texture as I}from"../../../webgl/Texture.js";import{TextureDescriptor as U}from"../../../webgl/TextureDescriptor.js";class w extends E{get parameters(){return this._parameters}constructor(t,r){super(),this._data=t,this.type=T.Texture,this._glTexture=null,this._loadingPromise=null,this._loadingController=null,this.events=new e,this._parameters=r||{},this._parameters.mipmap=!1!==this._parameters.mipmap,this._parameters.noUnpackFlip=this._parameters.noUnpackFlip||!1,this._parameters.preMultiplyAlpha=this._parameters.preMultiplyAlpha||!1,this._parameters.wrap=this._parameters.wrap||{s:x.REPEAT,t:x.REPEAT},this._startPreload(t)}dispose(){this.unload(),this._data=this.frameUpdate=void 0}_startPreload(t){null!=t&&(t instanceof HTMLVideoElement?(this.frameUpdate=e=>this._frameUpdate(t,e),this._startPreloadVideoElement(t)):t instanceof HTMLImageElement&&this._startPreloadImageElement(t))}_startPreloadVideoElement(t){if(!(m(t.src)||"auto"===t.preload&&t.crossOrigin)){t.preload="auto",t.crossOrigin="anonymous";const e=!t.paused;if(t.src=t.src,e&&t.autoplay){const e=()=>{t.removeEventListener("canplay",e),t.play()};t.addEventListener("canplay",e)}}}_startPreloadImageElement(t){h(t.src)||m(t.src)||t.crossOrigin||(t.crossOrigin="anonymous",t.src=t.src)}_createDescriptor(t){const e=new U;return e.wrapMode=this._parameters.wrap??x.REPEAT,e.flipped=!this._parameters.noUnpackFlip,e.samplingMode=this._parameters.mipmap?y.LINEAR_MIPMAP_LINEAR:y.LINEAR,e.hasMipmap=!!this._parameters.mipmap,e.preMultiplyAlpha=!!this._parameters.preMultiplyAlpha,e.maxAnisotropy=this._parameters.maxAnisotropy??(this._parameters.mipmap?t.parameters.maxMaxAnisotropy:1),e}get glTexture(){return this._glTexture}get memoryEstimate(){return this._glTexture?.gpuMemoryUsage||N(this._data,this._parameters)}load(t){if(this._glTexture)return this._glTexture;if(this._loadingPromise)return this._loadingPromise;const e=this._data;return null==e?(this._glTexture=new I(t,this._createDescriptor(t),null),this._glTexture):(this._parameters.reloadable||(this._data=void 0),"string"==typeof e?this._loadFromURL(t,e):e instanceof Image?this._loadFromImageElement(t,e):e instanceof HTMLVideoElement?this._loadFromVideoElement(t,e):e instanceof ImageData||e instanceof HTMLCanvasElement?this._loadFromImage(t,e):(n(e)||l(e))&&this._parameters.encoding===d.DDS_ENCODING?this._loadFromDDSData(t,e):(n(e)||l(e))&&this._parameters.encoding===d.KTX2_ENCODING?this._loadFromKTX2(t,e):(n(e)||l(e))&&this._parameters.encoding===d.BASIS_ENCODING?this._loadFromBasis(t,e):l(e)?this._loadFromPixelData(t,e):n(e)?this._loadFromPixelData(t,new Uint8Array(e)):null)}_frameUpdate(t,e){return null==this._glTexture||t.readyState<H.HAVE_CURRENT_DATA||e===t.currentTime?e:(this._glTexture.setData(t),this._glTexture.descriptor.hasMipmap&&this._glTexture.generateMipmap(),this._parameters.updateCallback&&this._parameters.updateCallback(),t.currentTime)}_loadFromDDSData(t,e){return this._glTexture=f(t,this._createDescriptor(t),e),this._glTexture}_loadFromKTX2(t,e){return this._loadAsync((()=>c(t,this._createDescriptor(t),e).then((t=>(this._glTexture=t,t)))))}_loadFromBasis(t,e){return this._loadAsync((()=>u(t,this._createDescriptor(t),e).then((t=>(this._glTexture=t,t)))))}_loadFromPixelData(t,e){D(this._parameters.width>0&&this._parameters.height>0);const r=this._createDescriptor(t);return r.pixelFormat=1===this._parameters.components?F.LUMINANCE:3===this._parameters.components?F.RGB:F.RGBA,r.width=this._parameters.width??0,r.height=this._parameters.height??0,this._glTexture=new I(t,r,e),this._glTexture}_loadFromURL(t,e){return this._loadAsync((async r=>{const a=await _(e,{signal:r});return s(r),this._loadFromImage(t,a)}))}_loadFromImageElement(t,e){return e.complete?this._loadFromImage(t,e):this._loadAsync((async r=>{const a=await p(e,e.src,!1,r);return s(r),this._loadFromImage(t,a)}))}_loadFromVideoElement(t,e){return e.readyState>=H.HAVE_CURRENT_DATA?this._loadFromImage(t,e):this._loadFromVideoElementAsync(t,e)}_loadFromVideoElementAsync(e,r){return this._loadAsync((s=>new Promise(((n,l)=>{const m=()=>{r.removeEventListener("loadeddata",h),r.removeEventListener("error",_),a(p)},h=()=>{r.readyState>=H.HAVE_CURRENT_DATA&&(m(),n(this._loadFromImage(e,r)))},_=e=>{m(),l(e||new t("Failed to load video"))};r.addEventListener("loadeddata",h),r.addEventListener("error",_);const p=i(s,(()=>_(o())))}))))}_loadFromImage(t,e){const r=C(e);this._parameters.width=r.width,this._parameters.height=r.height;const a=this._createDescriptor(t);return a.pixelFormat=3===this._parameters.components?F.RGB:F.RGBA,a.width=r.width,a.height=r.height,this._glTexture=new I(t,a,e),this._glTexture}_loadAsync(t){const e=new AbortController;this._loadingController=e;const r=t(e.signal);this._loadingPromise=r;const a=()=>{this._loadingController===e&&(this._loadingController=null),this._loadingPromise===r&&(this._loadingPromise=null)};return r.then(a,a),r}unload(){if(this._glTexture=r(this._glTexture),null!=this._loadingController){const t=this._loadingController;this._loadingController=null,this._loadingPromise=null,t.abort()}this.events.emit("unloaded")}}function N(t,e){if(null==t)return 0;if(n(t)||l(t))return e.encoding===d.KTX2_ENCODING?g(t,!!e.mipmap):e.encoding===d.BASIS_ENCODING?A(t,!!e.mipmap):t.byteLength;const{width:r,height:a}=t instanceof Image||t instanceof ImageData||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement?C(t):e;return(e.mipmap?4/3:1)*r*a*(e.components||4)||0}function C(t){return t instanceof HTMLVideoElement?{width:t.videoWidth,height:t.videoHeight}:t}var H;!function(t){t[t.HAVE_NOTHING=0]="HAVE_NOTHING",t[t.HAVE_METADATA=1]="HAVE_METADATA",t[t.HAVE_CURRENT_DATA=2]="HAVE_CURRENT_DATA",t[t.HAVE_FUTURE_DATA=3]="HAVE_FUTURE_DATA",t[t.HAVE_ENOUGH_DATA=4]="HAVE_ENOUGH_DATA"}(H||(H={}));export{w as Texture};
@@ -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/Accessor.js";import r from"../../../../core/Evented.js";import s from"../../../../core/Logger.js";import{isPromiseLike as o,isAbortError as i}from"../../../../core/promiseUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{subclass as u}from"../../../../core/accessorSupport/decorators/subclass.js";import{RenderRequestType as a}from"./basicInterfaces.js";import{ContentObjectType as h}from"./ContentObjectType.js";import{TextureTechnique as p}from"./TextureTechnique.js";import{TextureTechniqueConfiguration as c}from"./TextureTechniqueConfiguration.js";import{assert as l}from"./Util.js";import{TaskPriority as d}from"../../../support/Scheduler.js";let m=class extends t{constructor(e,t,s){super({}),this._stage=e,this._techniqueRepository=t,this._rctx=s,this._textures=new Map,this._loadingCount=0,this._frameUpdates=new Map,this.events=new r,this._frameTask=e.view.resourceController.scheduler.registerTask(d.TEXTURE_UNLOAD)}normalizeCtorArgs(){return{}}destroy(){this._frameTask.remove(),this._stage.forEachOfType(h.Texture,(e=>e.unload()))}get updating(){return this._loadingCount>0||this._frameTask.updating}get textureTechnique(){return null==this._textureTechnique&&(this._textureTechnique=this._techniqueRepository.acquire(p,new c)),this._textureTechnique}acquire(e){const t=this._textures.get(e);return t?(t.ref(),t.loadingPromise??t):this._createNewRef(e)}update(){let e=!1;this._frameUpdates.forEach((t=>{const r=t.texture.frameUpdate(t.previousToken);r>=0&&r!==t.previousToken&&(t.previousToken=r,e=!0)})),e&&this.events.emit("changed",a.BACKGROUND)}_createNewRef(e){const t=this._stage.getObject(e);if(null==t)return l(void 0!==t),null;const r=t.events.on("unloaded",(()=>{r.remove(),this._onTextureUnloaded(e)})),n=new _(e,(()=>{this._frameTask.schedule((()=>{n.isUnreferenced&&t.unload()}))}));return this._textures.set(e,n),n.ref(),null!=t.glTexture?(this._updateGLTexture(n,t.glTexture),t.requiresFrameUpdates&&this._frameUpdates.set(e,{texture:t,previousToken:-1}),n):(this._loadingCount++,n.loadingPromise=this._stage.schedule((()=>{const r=t.load(this._rctx),u=r=>(this._loadingCount--,n.loadingPromise=null,this._updateGLTexture(n,r),t.requiresFrameUpdates&&this._frameUpdates.set(e,{texture:t,previousToken:-1}),n),a=e=>(this._loadingCount--,n.loadingPromise=null,i(e)||s.getLogger(this).error(e),null);return o(r)?r.then(u,a):u(r)})),n.loadingPromise)}_updateGLTexture(e,t){e.glTexture=t,this.events.emit("changed",a.UPDATE)}_onTextureUnloaded(e){this._textures.delete(e),this._frameUpdates.delete(e)}};e([n()],m.prototype,"_loadingCount",void 0),e([n()],m.prototype,"_frameTask",void 0),e([n()],m.prototype,"updating",null),m=e([u("esri.views.3d.webgl-engine.lib.TextureRepository")],m);class _{constructor(e,t){this.id=e,this._release=t,this._refCount=0}get isUnreferenced(){return 0===this._refCount}ref(){++this._refCount}release(){--this._refCount,this._refCount>0||(0!==this._refCount?(s.getLogger("esri.views.3d.webgl-engine.lib.TextureRepository.RefCountedTextureImpl").error("Cannot dereference texture that has no references!"),this._refCount=0):this._release())}}export{m as TextureRepository};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import r from"../../../../core/Evented.js";import s from"../../../../core/Logger.js";import{isPromiseLike as o,isAbortError as i}from"../../../../core/promiseUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{subclass as u}from"../../../../core/accessorSupport/decorators/subclass.js";import{RenderRequestType as a}from"./basicInterfaces.js";import{ContentObjectType as h}from"./ContentObjectType.js";import{isFrameUpdateTexture as p}from"./ITexture.js";import{TextureTechnique as c}from"./TextureTechnique.js";import{TextureTechniqueConfiguration as l}from"./TextureTechniqueConfiguration.js";import{assert as d}from"./Util.js";import{TaskPriority as m}from"../../../support/Scheduler.js";let _=class extends t{constructor(e,t,s){super({}),this._stage=e,this._techniqueRepository=t,this._rctx=s,this._textures=new Map,this._loadingCount=0,this._frameUpdates=new Map,this.events=new r,this._frameTask=e.view.resourceController.scheduler.registerTask(m.TEXTURE_UNLOAD)}normalizeCtorArgs(){return{}}destroy(){this._frameTask.remove(),this._stage.forEachOfType(h.Texture,(e=>e.unload()))}get updating(){return this._loadingCount>0||this._frameTask.updating}get textureTechnique(){return null==this._textureTechnique&&(this._textureTechnique=this._techniqueRepository.acquire(c,new l)),this._textureTechnique}acquire(e){const t=this._textures.get(e);return t?(t.ref(),t.loadingPromise??t):this._createNewRef(e)}update(){let e=!1;this._frameUpdates.forEach((t=>{const r=t.texture.frameUpdate(t.previousToken);r>=0&&r!==t.previousToken&&(t.previousToken=r,e=!0)})),e&&this.events.emit("changed",a.BACKGROUND)}_createNewRef(e){const t=this._stage.getObject(e);if(null==t)return d(void 0!==t),null;const r=t.events.on("unloaded",(()=>{r.remove(),this._onTextureUnloaded(e)})),n=new f(e,(()=>{this._frameTask.schedule((()=>{n.isUnreferenced&&t.unload()}))}));return this._textures.set(e,n),n.ref(),t.glTexture?(this._updateGLTexture(n,t.glTexture),p(t)&&this._frameUpdates.set(e,{texture:t,previousToken:-1}),n):(this._loadingCount++,n.loadingPromise=this._stage.schedule((()=>{const r=t.load(this._rctx),u=r=>(this._loadingCount--,n.loadingPromise=null,this._updateGLTexture(n,r),p(t)&&this._frameUpdates.set(e,{texture:t,previousToken:-1}),n),a=e=>(this._loadingCount--,n.loadingPromise=null,i(e)||s.getLogger(this).error(e),null);return o(r)?r.then(u,a):u(r)})),n.loadingPromise)}_updateGLTexture(e,t){e.glTexture=t,this.events.emit("changed",a.UPDATE)}_onTextureUnloaded(e){this._textures.delete(e),this._frameUpdates.delete(e)}};e([n()],_.prototype,"_loadingCount",void 0),e([n()],_.prototype,"_frameTask",void 0),e([n()],_.prototype,"updating",null),_=e([u("esri.views.3d.webgl-engine.lib.TextureRepository")],_);class f{constructor(e,t){this.id=e,this._release=t,this._refCount=0}get isUnreferenced(){return 0===this._refCount}ref(){++this._refCount}release(){--this._refCount,this._refCount>0||(0!==this._refCount?(s.getLogger("esri.views.3d.webgl-engine.lib.TextureRepository.RefCountedTextureImpl").error("Cannot dereference texture that has no references!"),this._refCount=0):this._release())}}export{_ as TextureRepository};
@@ -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 e from"../../../../core/Accessor.js";import{property as o}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";import{c as n}from"../../../../chunks/mat4f64.js";import{ContentObjectType as i}from"../lib/ContentObjectType.js";import{GridLocalOriginFactory as s}from"../lib/GridLocalOriginFactory.js";import a from"../lib/ModelDirtySet.js";import{RenderGeometry as c}from"../lib/RenderGeometry.js";import{assert as d}from"../lib/Util.js";import{isWebGLLayer as l}from"../lib/WebGLLayer.js";let m=class extends e{constructor(){super(...arguments),this.dirtySet=new a({model:this}),this._content=new Map,this._originFactory=new s(null)}getObject(t){return this._content.get(t)}add(t){const e=t.id;d(!this._content.has(e),"Model/Stage already contains object to be added"),this._content.set(e,t),l(t)&&this.dirtySet.layerAdded(t)}remove(t){d(this._content.has(t.id),"Model/Stage doesn't contain object to be removed"),this._content.delete(t.id),t.unload(),l(t)&&this.dirtySet.layerRemoved(t)}addMany(t){for(const e of t)null!=e&&(d(!this._content.has(e.id),"Model/Stage already contains object to be added"),this._content.set(e.id,e))}removeMany(t){for(const e of t)d(this._content.has(e.id),"Model/Stage doesn't contain object to be removed"),this._content.delete(e.id),e.unload()}has(t){return this._content.has(t.id)}forEachOfType(t,e){this._content.forEach((o=>{o.type===t&&e(o)}))}getRenderGeometry(t,e){const o=new c(e,{castShadow:t.castShadow,objectShaderTransformation:t.shaderTransformation});o.transformation=t.getCombinedStaticTransformation(e,h);const{localOrigin:r}=e;return o.localOrigin=null!=r?r:this._originFactory.getOrigin(o.boundingSphere),o}updateRenderGeometryTransformation(t,e,o){if(null==t)return!1;o.transformation=t.getCombinedStaticTransformation(e,h);const r=this._originFactory.getOrigin(o.boundingSphere);return o.localOrigin!==r}getStats(){const t={},e=Array.from(this._content.values());for(let o=0;o<i.COUNT;++o)t[o]=e.filter((t=>t.type===o)).length;return{contentTypes:t,dirtySet:this.dirtySet.formatDebugInfo()}}get test(){return{content:Array.from(this._content.values())}}};t([o({constructOnly:!0})],m.prototype,"dirtySet",void 0),m=t([r("esri.views.3d.webgl-engine.parts.Model")],m);const h=n();export{m as Model};
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../core/Accessor.js";import{property as o}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";import{c as n}from"../../../../chunks/mat4f64.js";import{ContentObjectType as i}from"../lib/ContentObjectType.js";import{GridLocalOriginFactory as s}from"../lib/GridLocalOriginFactory.js";import a from"../lib/ModelDirtySet.js";import{RenderGeometry as c}from"../lib/RenderGeometry.js";import{assert as d}from"../lib/Util.js";import{isWebGLLayer as l}from"../lib/WebGLLayer.js";let m=class extends e{constructor(){super(...arguments),this.dirtySet=new a({model:this}),this._content=new Map,this._originFactory=new s(null)}getObject(t){return this._content.get(t)}add(t){const e=t.id;d(!this._content.has(e),"Model/Stage already contains object to be added"),this._content.set(e,t),l(t)&&this.dirtySet.layerAdded(t)}remove(t){return!!this._content.has(t.id)&&(this._content.delete(t.id),l(t)&&this.dirtySet.layerRemoved(t),!0)}addMany(t){for(const e of t)null!=e&&(d(!this._content.has(e.id),"Model/Stage already contains object to be added"),this._content.set(e.id,e))}removeMany(t){for(const e of t)d(this._content.has(e.id),"Model/Stage doesn't contain object to be removed"),this._content.delete(e.id)}has(t){return this._content.has(t.id)}forEachOfType(t,e){this._content.forEach((o=>{o.type===t&&e(o)}))}getRenderGeometry(t,e){const o=new c(e,{castShadow:t.castShadow,objectShaderTransformation:t.shaderTransformation});o.transformation=t.getCombinedStaticTransformation(e,h);const{localOrigin:r}=e;return o.localOrigin=null!=r?r:this._originFactory.getOrigin(o.boundingSphere),o}updateRenderGeometryTransformation(t,e,o){if(null==t)return!1;o.transformation=t.getCombinedStaticTransformation(e,h);const r=this._originFactory.getOrigin(o.boundingSphere);return o.localOrigin!==r}getStats(){const t={},e=Array.from(this._content.values());for(let o=0;o<i.COUNT;++o)t[o]=e.filter((t=>t.type===o)).length;return{contentTypes:t,dirtySet:this.dirtySet.formatDebugInfo()}}get test(){return{content:Array.from(this._content.values())}}};t([o({constructOnly:!0})],m.prototype,"dirtySet",void 0),m=t([r("esri.views.3d.webgl-engine.parts.Model")],m);const h=n();export{m as Model};
@@ -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/Evented.js";class t{constructor({grabbableForEvent:t}){this.events=new e,this.interactive=!0,this.selectable=!1,this.cursor=null,this.grabbable=!0,this.grabbableForEvent=t}intersectionDistance(e,t){return 0}attach(){}detach(){}onElevationChange(){}onViewChange(){}}export{t as DrawManipulator};
5
+ import e from"../../core/Evented.js";class t{constructor({grabbableForEvent:t}){this.events=new e,this.interactive=!0,this.selectable=!1,this.cursor=null,this.grabbable=!0,this.consumesClicks=!0,this.grabbableForEvent=t}destroy(){}intersectionDistance(e,t){return 0}attach(){}detach(){}onElevationChange(){}onViewChange(){}}export{t as DrawManipulator};
@@ -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 e from"../../core/Accessor.js";import o from"../../core/Evented.js";import{watch as i,sync as s}from"../../core/reactiveUtils.js";import{screenPointObjectToArray as r,pt2px as l,createScreenPointArray as n}from"../../core/screenUtils.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 c}from"../../core/accessorSupport/decorators/subclass.js";import{k as h}from"../../chunks/vec2.js";import{h as p}from"../../chunks/vec3.js";import{c as u}from"../../chunks/vec3f64.js";import{canProjectWithoutEngine as m,project as y}from"../../geometry/projection.js";import{projectPointToVector as g}from"../../geometry/projection/projectPointToVector.js";import{getGraphicEffectiveElevationMode as b}from"../../support/elevationInfoUtils.js";import{getDefaultSymbol2D as d}from"../../symbols/support/defaults.js";import f from"../../symbols/support/ElevationInfo.js";import{getSymbolInfo as _}from"./support/utils.js";import{intersectsDrapedGeometry as v}from"../support/drapedUtils.js";let S=class extends e{set graphic(t){this._circleCollisionCache=null,this._originalSymbol=t.symbol,this._set("graphic",t),this.attachSymbolChanged()}get elevationInfo(){const{layer:t}=this.graphic,e=t&&"elevationInfo"in t?t.elevationInfo:null,o=b(this.graphic),i=e?e.offset:0;return new f({mode:o,offset:i})}set focusedSymbol(t){t!==this._get("focusedSymbol")&&(this._set("focusedSymbol",t),this._updateGraphicSymbol(),this._circleCollisionCache=null)}grabbableForEvent(){return!0}set grabbing(t){t!==this._get("grabbing")&&(this._set("grabbing",t),this._updateGraphicSymbol())}set hovering(t){t!==this._get("hovering")&&(this._set("hovering",t),this._updateGraphicSymbol())}set selected(t){t!==this._get("selected")&&(this._set("selected",t),this._updateGraphicSymbol(),this.events.emit("select-changed",{action:t?"select":"deselect"}))}get _focused(){return this._get("hovering")||this._get("grabbing")}constructor(t){super(t),this.layer=null,this.interactive=!0,this.selectable=!1,this.grabbable=!0,this.dragging=!1,this.cursor=null,this.events=new o.EventEmitter,this._circleCollisionCache=null,this._graphicSymbolChangedHandle=null,this._originalSymbol=null}destroy(){this.detachSymbolChanged(),this._resetGraphicSymbol(),this._set("view",null)}intersectionDistance(t){const e=this.graphic;if(!1===e.visible)return null;const o=e.geometry;if(null==o)return null;const i=this._get("focusedSymbol"),s=null!=i?i:e.symbol;return"2d"===this.view.type?this._intersectDistance2D(this.view,t,o,s):this._intersectDistance3D(this.view,t,e)}attach(){this.attachSymbolChanged(),null!=this.layer&&this.layer.add(this.graphic)}detach(){this.detachSymbolChanged(),this._resetGraphicSymbol(),null!=this.layer&&this.layer.remove(this.graphic)}attachSymbolChanged(){this.detachSymbolChanged(),this._graphicSymbolChangedHandle=i((()=>this.graphic?.symbol),(t=>{null!=t&&t!==this.focusedSymbol&&t!==this._originalSymbol&&(this._originalSymbol=t,this._focused&&null!=this.focusedSymbol&&(this.graphic.symbol=this.focusedSymbol))}),s)}detachSymbolChanged(){null!=this._graphicSymbolChangedHandle&&(this._graphicSymbolChangedHandle.remove(),this._graphicSymbolChangedHandle=null)}onElevationChange(){}onViewChange(){}_updateGraphicSymbol(){this.graphic.symbol=this._focused&&null!=this.focusedSymbol?this.focusedSymbol:this._originalSymbol}_resetGraphicSymbol(){this.graphic.symbol=this._originalSymbol}_intersectDistance2D(t,e,o,i){if(null==(i=i||d(o)))return null;const s=1;let n=this._circleCollisionCache;if("point"===o.type&&"cim"===i.type&&"CIMPointSymbol"===i.data.symbol?.type&&i.data.symbol.symbolLayers){const{offsetX:l,offsetY:n,size:a}=_(i),c=r(e,j),p=a/2,u=t.toScreen(o),m=u.x+l,y=u.y+n;return h(c,[m,y])<p*p?s:null}if("point"!==o.type||"simple-marker"!==i.type)return v(e,o,t)?s:null;if(null==n||!n.originalPoint.equals(o)){const e=o,s=t.spatialReference;if(m(e.spatialReference,s)){const t=y(e,s);n={originalPoint:e.clone(),mapPoint:t,radiusPx:l(i.size)},this._circleCollisionCache=n}}if(null!=n){const o=r(e,j),a=t.toScreen?.(n.mapPoint);if(!a)return null;const c=n.radiusPx,p=a.x+l(i.xoffset),u=a.y-l(i.yoffset);return h(o,[p,u])<c*c?s:null}return null}_intersectDistance3D(t,e,o){const i=t.toMap(e,{include:[o]});return i&&g(i,C,t.renderSpatialReference)?p(C,t.state.camera.eye):null}};t([a({constructOnly:!0,nonNullable:!0})],S.prototype,"graphic",null),t([a()],S.prototype,"elevationInfo",null),t([a({constructOnly:!0,nonNullable:!0})],S.prototype,"view",void 0),t([a({value:null})],S.prototype,"focusedSymbol",null),t([a({constructOnly:!0})],S.prototype,"layer",void 0),t([a()],S.prototype,"interactive",void 0),t([a()],S.prototype,"selectable",void 0),t([a()],S.prototype,"grabbable",void 0),t([a({value:!1})],S.prototype,"grabbing",null),t([a()],S.prototype,"dragging",void 0),t([a()],S.prototype,"hovering",null),t([a({value:!1})],S.prototype,"selected",null),t([a()],S.prototype,"cursor",void 0),S=t([c("esri.views.interactive.GraphicManipulator")],S);const C=u(),j=n();export{S as GraphicManipulator};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import o from"../../core/Evented.js";import{watch as i,sync as s}from"../../core/reactiveUtils.js";import{screenPointObjectToArray as r,pt2px as l,createScreenPointArray as n}from"../../core/screenUtils.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 c}from"../../core/accessorSupport/decorators/subclass.js";import{k as h}from"../../chunks/vec2.js";import{h as p}from"../../chunks/vec3.js";import{c as u}from"../../chunks/vec3f64.js";import{canProjectWithoutEngine as m,project as y}from"../../geometry/projection.js";import{projectPointToVector as g}from"../../geometry/projection/projectPointToVector.js";import{getGraphicEffectiveElevationMode as b}from"../../support/elevationInfoUtils.js";import{getDefaultSymbol2D as d}from"../../symbols/support/defaults.js";import f from"../../symbols/support/ElevationInfo.js";import{getSymbolInfo as _}from"./support/utils.js";import{intersectsDrapedGeometry as v}from"../support/drapedUtils.js";let S=class extends e{set graphic(t){this._circleCollisionCache=null,this._originalSymbol=t.symbol,this._set("graphic",t),this.attachSymbolChanged()}get elevationInfo(){const{layer:t}=this.graphic,e=t&&"elevationInfo"in t?t.elevationInfo:null,o=b(this.graphic),i=e?e.offset:0;return new f({mode:o,offset:i})}set focusedSymbol(t){t!==this._get("focusedSymbol")&&(this._set("focusedSymbol",t),this._updateGraphicSymbol(),this._circleCollisionCache=null)}grabbableForEvent(){return!0}set grabbing(t){t!==this._get("grabbing")&&(this._set("grabbing",t),this._updateGraphicSymbol())}set hovering(t){t!==this._get("hovering")&&(this._set("hovering",t),this._updateGraphicSymbol())}set selected(t){t!==this._get("selected")&&(this._set("selected",t),this._updateGraphicSymbol(),this.events.emit("select-changed",{action:t?"select":"deselect"}))}get _focused(){return this._get("hovering")||this._get("grabbing")}constructor(t){super(t),this.layer=null,this.interactive=!0,this.selectable=!1,this.grabbable=!0,this.dragging=!1,this.cursor=null,this.consumesClicks=!0,this.events=new o.EventEmitter,this._circleCollisionCache=null,this._graphicSymbolChangedHandle=null,this._originalSymbol=null}destroy(){this.detachSymbolChanged(),this._resetGraphicSymbol(),this._set("view",null)}intersectionDistance(t){const e=this.graphic;if(!1===e.visible)return null;const o=e.geometry;if(null==o)return null;const i=this._get("focusedSymbol"),s=null!=i?i:e.symbol;return"2d"===this.view.type?this._intersectDistance2D(this.view,t,o,s):this._intersectDistance3D(this.view,t,e)}attach(){this.attachSymbolChanged(),null!=this.layer&&this.layer.add(this.graphic)}detach(){this.detachSymbolChanged(),this._resetGraphicSymbol(),null!=this.layer&&this.layer.remove(this.graphic)}attachSymbolChanged(){this.detachSymbolChanged(),this._graphicSymbolChangedHandle=i((()=>this.graphic?.symbol),(t=>{null!=t&&t!==this.focusedSymbol&&t!==this._originalSymbol&&(this._originalSymbol=t,this._focused&&null!=this.focusedSymbol&&(this.graphic.symbol=this.focusedSymbol))}),s)}detachSymbolChanged(){null!=this._graphicSymbolChangedHandle&&(this._graphicSymbolChangedHandle.remove(),this._graphicSymbolChangedHandle=null)}onElevationChange(){}onViewChange(){}_updateGraphicSymbol(){this.graphic.symbol=this._focused&&null!=this.focusedSymbol?this.focusedSymbol:this._originalSymbol}_resetGraphicSymbol(){this.graphic.symbol=this._originalSymbol}_intersectDistance2D(t,e,o,i){if(null==(i=i||d(o)))return null;const s=1;let n=this._circleCollisionCache;if("point"===o.type&&"cim"===i.type&&"CIMPointSymbol"===i.data.symbol?.type&&i.data.symbol.symbolLayers){const{offsetX:l,offsetY:n,size:a}=_(i),c=r(e,j),p=a/2,u=t.toScreen(o),m=u.x+l,y=u.y+n;return h(c,[m,y])<p*p?s:null}if("point"!==o.type||"simple-marker"!==i.type)return v(e,o,t)?s:null;if(null==n||!n.originalPoint.equals(o)){const e=o,s=t.spatialReference;if(m(e.spatialReference,s)){const t=y(e,s);n={originalPoint:e.clone(),mapPoint:t,radiusPx:l(i.size)},this._circleCollisionCache=n}}if(null!=n){const o=r(e,j),a=t.toScreen?.(n.mapPoint);if(!a)return null;const c=n.radiusPx,p=a.x+l(i.xoffset),u=a.y-l(i.yoffset);return h(o,[p,u])<c*c?s:null}return null}_intersectDistance3D(t,e,o){const i=t.toMap(e,{include:[o]});return i&&g(i,C,t.renderSpatialReference)?p(C,t.state.camera.eye):null}};t([a({constructOnly:!0,nonNullable:!0})],S.prototype,"graphic",null),t([a()],S.prototype,"elevationInfo",null),t([a({constructOnly:!0,nonNullable:!0})],S.prototype,"view",void 0),t([a({value:null})],S.prototype,"focusedSymbol",null),t([a({constructOnly:!0})],S.prototype,"layer",void 0),t([a()],S.prototype,"interactive",void 0),t([a()],S.prototype,"selectable",void 0),t([a()],S.prototype,"grabbable",void 0),t([a({value:!1})],S.prototype,"grabbing",null),t([a()],S.prototype,"dragging",void 0),t([a()],S.prototype,"hovering",null),t([a({value:!1})],S.prototype,"selected",null),t([a()],S.prototype,"cursor",void 0),S=t([c("esri.views.interactive.GraphicManipulator")],S);const C=u(),j=n();export{S as GraphicManipulator};
@@ -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 t from"../../core/Collection.js";var a;!function(t){t[t.WhenToolEditable=0]="WhenToolEditable",t[t.WhenToolNotEditable=1]="WhenToolNotEditable",t[t.Always=2]="Always"}(a||(a={}));class i{constructor(){this._isToolEditable=!0,this._manipulators=new t,this._resourceContexts={manipulator3D:{}},this._attached=!1}set isToolEditable(t){this._isToolEditable=t}get length(){return this._manipulators.length}add(t,i=a.WhenToolEditable){this.addMany([t],i)}addMany(t,i=a.WhenToolEditable){for(const a of t){const t={manipulator:a,visibilityPredicate:i,attached:!1};this._manipulators.add(t),this._attached&&this._updateManipulatorAttachment(t)}}remove(t){for(let a=0;a<this._manipulators.length;a++)if(this._manipulators.at(a).manipulator===t){const t=this._manipulators.splice(a,1)[0];this._detachManipulator(t);break}}removeAll(){this._manipulators.forEach((t=>{this._detachManipulator(t)})),this._manipulators.removeAll()}attach(){this._manipulators.forEach((t=>{this._updateManipulatorAttachment(t)})),this._attached=!0}detach(){this._manipulators.forEach((t=>{this._detachManipulator(t)})),this._attached=!1}destroy(){this.detach(),this._manipulators.forEach((({manipulator:t})=>{t.destroy&&t.destroy()})),this._manipulators.destroy(),this._resourceContexts=null}on(t,a){return this._manipulators.on(t,(t=>{a(t)}))}forEach(t){for(const a of this._manipulators.items)t(a)}some(t){return this._manipulators.items.some(t)}toArray(){const t=[];return this.forEach((a=>t.push(a.manipulator))),t}intersect(t,a){let i=null,e=Number.MAX_VALUE;return this._manipulators.forEach((({manipulator:o,attached:s})=>{if(!s||!o.interactive)return;const r=o.intersectionDistance(t,a);null!=r&&r<e&&(e=r,i=o)})),i}_updateManipulatorAttachment(t){this._isManipulatorItemVisible(t)?this._attachManipulator(t):this._detachManipulator(t)}_attachManipulator(t){t.attached||(t.manipulator.attach&&t.manipulator.attach(this._resourceContexts),t.attached=!0)}_detachManipulator(t){if(!t.attached)return;const a=t.manipulator;a.grabbing=!1,a.dragging=!1,a.hovering=!1,a.selected=!1,a.detach&&a.detach(this._resourceContexts),t.attached=!1}_isManipulatorItemVisible(t){return t.visibilityPredicate===a.Always||(this._isToolEditable?t.visibilityPredicate===a.WhenToolEditable:t.visibilityPredicate===a.WhenToolNotEditable)}}export{i as ManipulatorCollection,a as ManipulatorVisibilityPredicate};
5
+ import t from"../../core/Collection.js";var a;!function(t){t[t.WhenToolEditable=0]="WhenToolEditable",t[t.WhenToolNotEditable=1]="WhenToolNotEditable",t[t.Always=2]="Always"}(a||(a={}));class i{constructor(){this._isToolEditable=!0,this._manipulators=new t,this._resourceContexts={manipulator3D:{}},this._attached=!1}set isToolEditable(t){this._isToolEditable=t}get length(){return this._manipulators.length}add(t,i=a.WhenToolEditable){this.addMany([t],i)}addMany(t,i=a.WhenToolEditable){for(const a of t){const t={manipulator:a,visibilityPredicate:i,attached:!1};this._manipulators.add(t),this._attached&&this._updateManipulatorAttachment(t)}}remove(t){for(let a=0;a<this._manipulators.length;a++)if(this._manipulators.at(a).manipulator===t){const t=this._manipulators.splice(a,1)[0];this._detachManipulator(t);break}}removeAll(){this._manipulators.forEach((t=>{this._detachManipulator(t)})),this._manipulators.removeAll()}attach(){this._manipulators.forEach((t=>{this._updateManipulatorAttachment(t)})),this._attached=!0}detach(){this._manipulators.forEach((t=>{this._detachManipulator(t)})),this._attached=!1}destroy(){this.detach(),this._manipulators.forEach((({manipulator:t})=>t.destroy())),this._manipulators.destroy(),this._resourceContexts=null}on(t,a){return this._manipulators.on(t,(t=>{a(t)}))}forEach(t){for(const a of this._manipulators.items)t(a)}some(t){return this._manipulators.items.some(t)}toArray(){const t=[];return this.forEach((a=>t.push(a.manipulator))),t}intersect(t,a){let i=null,e=Number.MAX_VALUE;return this._manipulators.forEach((({manipulator:o,attached:s})=>{if(!s||!o.interactive)return;const r=o.intersectionDistance(t,a);null!=r&&r<e&&(e=r,i=o)})),i}_updateManipulatorAttachment(t){this._isManipulatorItemVisible(t)?this._attachManipulator(t):this._detachManipulator(t)}_attachManipulator(t){t.attached||(t.manipulator.attach&&t.manipulator.attach(this._resourceContexts),t.attached=!0)}_detachManipulator(t){if(!t.attached)return;const a=t.manipulator;a.grabbing=!1,a.dragging=!1,a.hovering=!1,a.selected=!1,a.detach&&a.detach(this._resourceContexts),t.attached=!1}_isManipulatorItemVisible(t){return t.visibilityPredicate===a.Always||(this._isToolEditable?t.visibilityPredicate===a.WhenToolEditable:t.visibilityPredicate===a.WhenToolNotEditable)}}export{i as ManipulatorCollection,a as ManipulatorVisibilityPredicate};
@@ -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{find as t}from"../../core/iteratorUtils.js";import{someMap as e}from"../../core/MapUtils.js";import{clamp as o}from"../../core/mathUtils.js";import{createScreenPoint as r}from"../../core/screenUtils.js";import{areToolManipulatorsEditable as i}from"./interactiveToolUtils.js";import{createScreenPointFromEvent as a}from"../support/screenUtils.js";class n{constructor(){this._pointerLocations=new Map,this._hoveredManipulators=new Map,this._grabbedManipulators=new Map,this._draggedManipulators=new Map,this._stopDrag=!1,this._revertToNullActiveTool=!1,this._cursor=null}get cursor(){return this._cursor}hasFocusedManipulators(){return this._grabbedManipulators.size>0||this._draggedManipulators.size>0}handleInputEvent(t,e){const r=()=>t.stopPropagation();switch(t.type){case"pointer-move":s(t.pointerType)&&this._pointerLocations.set(t.pointerId,{x:t.x,y:t.y,pointerType:t.pointerType});break;case"drag":this._grabbedManipulators.size>0&&(this._stopDrag=!0),this._stopDrag&&(r(),"end"===t.action&&(this._stopDrag=!1));break;case"pointer-down":{if(!l(t))break;const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool);if(null==i)break;const n=i.manipulator,s=i.tool;null==n||null==s||!n.interactive||n.grabbable&&n.grabbableForEvent(t)||!n.grabbing||n.dragging||this._ungrabManipulatorBeforeDragging(n,t,e),null!=n&&null!=s&&n.interactive&&n.grabbable&&n.grabbableForEvent(t)&&!n.grabbing&&(this._grabbedManipulators.set(t.pointerId,{manipulator:n,tool:s,start:o,pointerType:t.pointerType}),1===this._grabbedManipulators.size&&null==e.activeTool&&(this._revertToNullActiveTool=!0,e.setActiveTool(i.tool)),n.grabbing=!0,n.events.emit("grab-changed",{action:"start",pointerType:t.pointerType,screenPoint:o}),r());break}case"pointer-up":this._draggedManipulators.has(t.pointerId)||this._handlePointerEnd(t,e);break;case"pointer-drag":{if(!l(t))break;const i=this._grabbedManipulators.get(t.pointerId),n=i?.manipulator,s=i?.tool;if(null==n||null==s)break;const p=a(t);p.x=o(p.x,0,e.view.width),p.y=o(p.y,0,e.view.height);const u=i.start,c=this._draggedManipulators.get(t.pointerId);switch(t.action){case"start":case"update":"update"!==t.action&&1!==this._grabbedManipulators.size||(n.dragging=!0,c?n.events.emit("drag",{action:"update",start:u,screenPoint:p}):n.events.emit("drag",{action:"start",start:u,screenPoint:p,pointerType:t.pointerType}),this._draggedManipulators.set(t.pointerId,{tool:s,manipulator:n,start:u}));break;case"end":n.dragging=!1,c&&n.events.emit("drag",{action:"end",start:u,screenPoint:p}),this._draggedManipulators.delete(t.pointerId),this._handlePointerEnd(t,e)}r();break}case"immediate-click":{const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool);if(p(t)||e.forEachTool((t=>{if((null==i||i.tool!==t||t.automaticManipulatorSelection)&&t.manipulators){let e=!1;t.manipulators.forEach((({manipulator:t})=>{t.selected&&(t.selected=!1,e=!0)})),e&&t.onManipulatorSelectionChanged&&t.onManipulatorSelectionChanged()}})),null==i)break;const{manipulator:n,tool:s}=i;if(!n.interactive)break;n.selectable&&s.automaticManipulatorSelection&&(n.selected=!n.selected,s.onManipulatorSelectionChanged&&s.onManipulatorSelectionChanged());const l=t.native.shiftKey;n.events.emit("immediate-click",{screenPoint:o,button:t.button,pointerType:t.pointerType,shiftKey:l,stopPropagation:r});break}case"click":{const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool),n=null!=i?i.manipulator:null;if(null==n||!n.interactive)break;const s=t.native.shiftKey;n.events.emit(t.type,{screenPoint:o,button:t.button,pointerType:t.pointerType,shiftKey:s}),r();break}case"double-click":{const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool),n=null!=i?i.manipulator:null;if(null==n||!n.interactive)break;const s=t.native.shiftKey;n.events.emit("double-click",{screenPoint:o,button:t.button,pointerType:t.pointerType,shiftKey:s,stopPropagation:r});break}case"immediate-double-click":{const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool),n=null!=i?i.manipulator:null;if(null==n||!n.interactive)break;const s=t.native.shiftKey;n.events.emit("immediate-double-click",{screenPoint:o,button:t.button,pointerType:t.pointerType,shiftKey:s,stopPropagation:r});break}}this._onFocusChange(e.forEachTool)}_ungrabManipulatorBeforeDragging(t,e,o){t.grabbing=!1,t.events.emit("grab-changed",{action:"end",pointerType:e.pointerType,screenPoint:a(e)}),this._grabbedManipulators.forEach((({manipulator:e},o)=>{e===t&&this._grabbedManipulators.delete(o)})),this._afterManipulatorUngrab(o.setActiveTool)}_handlePointerEnd(t,e){const o=this._grabbedManipulators.get(t.pointerId)?.manipulator;null!=o&&o.grabbing&&(o.grabbing=!1,o.events.emit("grab-changed",{action:"end",pointerType:t.pointerType,screenPoint:a(t)}),this._grabbedManipulators.delete(t.pointerId),this._afterManipulatorUngrab(e.setActiveTool))}_cursorFromMap(t){let o=null;return e(t,(({manipulator:t})=>!(null==t||!t.interactive)&&(t.grabbing&&t.grabCursor?(o=t.grabCursor,!0):!!t.cursor&&(o=t.cursor,!0)))),o}_onFocusChange(t){this._updateCursor(),this._updateFocusedManipulatorTools(t)}_updateCursor(){this._grabbedManipulators.size>0?this._cursor=this._cursorFromMap(this._grabbedManipulators)||"grabbing":this._hoveredManipulators.size>0?this._cursor=this._cursorFromMap(this._hoveredManipulators)||"pointer":this._cursor=null}_updateFocusedManipulatorTools(e){const o=new Set,r=new Set;this._grabbedManipulators.forEach((({tool:t})=>{o.add(t)})),this._hoveredManipulators.forEach((({tool:t})=>{r.add(t)})),e((e=>{e.hasGrabbedManipulators=o.has(e),e.hasHoveredManipulators=r.has(e);const i=this._grabbedManipulators.values(),a=t(i,(({tool:t})=>t===e));e.firstGrabbedManipulator=null!=a?a.manipulator:null}))}clearPointers(t,{forEachTool:e,setActiveTool:o},r=!0,i){const a=(e,o)=>e===t&&(null==i||i===o);this._grabbedManipulators.forEach((({tool:t,manipulator:e,pointerType:o},r)=>{a(t,e)&&(this._grabbedManipulators.delete(r),e.grabbing=!1,e.events.emit("grab-changed",{action:"end",screenPoint:null,pointerType:o}))})),this._draggedManipulators.forEach((({tool:t,manipulator:e},o)=>{a(t,e)&&(this._draggedManipulators.delete(o),e.dragging=!1,e.events.emit("drag",{action:"cancel"}))})),r&&this._hoveredManipulators.forEach((({tool:t,manipulator:e},o)=>{a(t,e)&&(this._hoveredManipulators.delete(o),e.hovering=!1)})),this._afterManipulatorUngrab(o),this._onFocusChange(e)}_intersect(t,e,o){let r=null;return o((o=>{if(null==o.manipulators||!i(o))return!1;const a=o.manipulators.intersect(t,e);return null!=a&&(r={tool:o,manipulator:a},!0)})),r}updateHoveredStateFromKnownPointers(t){this._pointerLocations.forEach(((e,o)=>{this._updateHoveredStateForPointerAtScreenPosition(r(e.x,e.y),o,e.pointerType,t)}))}handleHoverEvent(t,e){"pointer-up"!==t.type&&"immediate-click"!==t.type&&"pointer-move"!==t.type||!s(t.pointerType)||this._updateHoveredStateForPointerAtScreenPosition(a(t),t.pointerId,t.pointerType,e)}_updateHoveredStateForPointerAtScreenPosition(t,e,o,r){let i=this._intersect(t,o,r);const a=this._hoveredManipulators.get(e)?.manipulator;null==i||i.manipulator.interactive||(i=null),null!=i&&a===i.manipulator||(null!=a&&(a.hovering=!1),null!=i?(i.manipulator.hovering=!0,this._hoveredManipulators.set(e,i)):this._hoveredManipulators.delete(e),this._onFocusChange(r))}_afterManipulatorUngrab(t){0===this._grabbedManipulators.size&&this._revertToNullActiveTool&&(t(null),this._revertToNullActiveTool=!1)}}function s(t){return"mouse"===t}function l(t){return"mouse"!==t.pointerType||0===t.button}function p(t){return!!t.native.shiftKey}export{n as ToolViewManagerManipulatorState};
5
+ import{find as t}from"../../core/iteratorUtils.js";import{someMap as e}from"../../core/MapUtils.js";import{clamp as o}from"../../core/mathUtils.js";import{createScreenPoint as r}from"../../core/screenUtils.js";import{areToolManipulatorsEditable as i}from"./interactiveToolUtils.js";import{createScreenPointFromEvent as a}from"../support/screenUtils.js";class n{constructor(){this._pointerLocations=new Map,this._hoveredManipulators=new Map,this._grabbedManipulators=new Map,this._draggedManipulators=new Map,this._stopDrag=!1,this._revertToNullActiveTool=!1,this._cursor=null}get cursor(){return this._cursor}hasFocusedManipulators(){return this._grabbedManipulators.size>0||this._draggedManipulators.size>0}handleInputEvent(t,e){const r=()=>t.stopPropagation();switch(t.type){case"pointer-move":s(t.pointerType)&&this._pointerLocations.set(t.pointerId,{x:t.x,y:t.y,pointerType:t.pointerType});break;case"drag":this._grabbedManipulators.size>0&&(this._stopDrag=!0),this._stopDrag&&(r(),"end"===t.action&&(this._stopDrag=!1));break;case"pointer-down":{if(!l(t))break;const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool);if(null==i)break;const n=i.manipulator,s=i.tool;null==n||null==s||!n.interactive||n.grabbable&&n.grabbableForEvent(t)||!n.grabbing||n.dragging||this._ungrabManipulatorBeforeDragging(n,t,e),null!=n&&null!=s&&n.interactive&&n.grabbable&&n.grabbableForEvent(t)&&!n.grabbing&&(this._grabbedManipulators.set(t.pointerId,{manipulator:n,tool:s,start:o,pointerType:t.pointerType}),1===this._grabbedManipulators.size&&null==e.activeTool&&(this._revertToNullActiveTool=!0,e.setActiveTool(i.tool)),n.grabbing=!0,n.events.emit("grab-changed",{action:"start",pointerType:t.pointerType,screenPoint:o}),r());break}case"pointer-up":this._draggedManipulators.has(t.pointerId)||this._handlePointerEnd(t,e);break;case"pointer-drag":{if(!l(t))break;const i=this._grabbedManipulators.get(t.pointerId),n=i?.manipulator,s=i?.tool;if(null==n||null==s)break;const p=a(t);p.x=o(p.x,0,e.view.width),p.y=o(p.y,0,e.view.height);const u=i.start,c=this._draggedManipulators.get(t.pointerId);switch(t.action){case"start":case"update":"update"!==t.action&&1!==this._grabbedManipulators.size||(n.dragging=!0,c?n.events.emit("drag",{action:"update",start:u,screenPoint:p}):n.events.emit("drag",{action:"start",start:u,screenPoint:p,pointerType:t.pointerType}),this._draggedManipulators.set(t.pointerId,{tool:s,manipulator:n,start:u}));break;case"end":n.dragging=!1,c&&n.events.emit("drag",{action:"end",start:u,screenPoint:p}),this._draggedManipulators.delete(t.pointerId),this._handlePointerEnd(t,e)}r();break}case"immediate-click":{const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool);if(p(t)||e.forEachTool((t=>{if((null==i||i.tool!==t||t.automaticManipulatorSelection)&&t.manipulators){let e=!1;t.manipulators.forEach((({manipulator:t})=>{t.selected&&(t.selected=!1,e=!0)})),e&&t.onManipulatorSelectionChanged&&t.onManipulatorSelectionChanged()}})),null==i)break;const{manipulator:n,tool:s}=i;if(!n.interactive)break;n.selectable&&s.automaticManipulatorSelection&&(n.selected=!n.selected,s.onManipulatorSelectionChanged&&s.onManipulatorSelectionChanged());const l=t.native.shiftKey;n.events.emit("immediate-click",{screenPoint:o,button:t.button,pointerType:t.pointerType,shiftKey:l,stopPropagation:r}),u(n,r);break}case"click":{const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool),n=i?.manipulator;if(null==n||!n.interactive)break;const s=t.native.shiftKey;n.events.emit(t.type,{screenPoint:o,button:t.button,pointerType:t.pointerType,shiftKey:s}),r();break}case"double-click":{const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool),n=null!=i?i.manipulator:null;if(null==n||!n.interactive)break;const s=t.native.shiftKey;n.events.emit("double-click",{screenPoint:o,button:t.button,pointerType:t.pointerType,shiftKey:s,stopPropagation:r}),u(n,r);break}case"immediate-double-click":{const o=a(t),i=this._intersect(o,t.pointerType,e.forEachTool),n=null!=i?i.manipulator:null;if(null==n||!n.interactive)break;const s=t.native.shiftKey;n.events.emit("immediate-double-click",{screenPoint:o,button:t.button,pointerType:t.pointerType,shiftKey:s,stopPropagation:r}),u(n,r);break}}this._onFocusChange(e.forEachTool)}_ungrabManipulatorBeforeDragging(t,e,o){t.grabbing=!1,t.events.emit("grab-changed",{action:"end",pointerType:e.pointerType,screenPoint:a(e)}),this._grabbedManipulators.forEach((({manipulator:e},o)=>{e===t&&this._grabbedManipulators.delete(o)})),this._afterManipulatorUngrab(o.setActiveTool)}_handlePointerEnd(t,e){const o=this._grabbedManipulators.get(t.pointerId)?.manipulator;null!=o&&o.grabbing&&(o.grabbing=!1,o.events.emit("grab-changed",{action:"end",pointerType:t.pointerType,screenPoint:a(t)}),this._grabbedManipulators.delete(t.pointerId),this._afterManipulatorUngrab(e.setActiveTool))}_cursorFromMap(t){let o=null;return e(t,(({manipulator:t})=>!(null==t||!t.interactive)&&(t.grabbing&&t.grabCursor?(o=t.grabCursor,!0):!!t.cursor&&(o=t.cursor,!0)))),o}_onFocusChange(t){this._updateCursor(),this._updateFocusedManipulatorTools(t)}_updateCursor(){this._grabbedManipulators.size>0?this._cursor=this._cursorFromMap(this._grabbedManipulators)||"grabbing":this._hoveredManipulators.size>0?this._cursor=this._cursorFromMap(this._hoveredManipulators)||"pointer":this._cursor=null}_updateFocusedManipulatorTools(e){const o=new Set,r=new Set;this._grabbedManipulators.forEach((({tool:t})=>{o.add(t)})),this._hoveredManipulators.forEach((({tool:t})=>{r.add(t)})),e((e=>{e.hasGrabbedManipulators=o.has(e),e.hasHoveredManipulators=r.has(e);const i=this._grabbedManipulators.values(),a=t(i,(({tool:t})=>t===e));e.firstGrabbedManipulator=null!=a?a.manipulator:null}))}clearPointers(t,{forEachTool:e,setActiveTool:o},r=!0,i){const a=(e,o)=>e===t&&(null==i||i===o);this._grabbedManipulators.forEach((({tool:t,manipulator:e,pointerType:o},r)=>{a(t,e)&&(this._grabbedManipulators.delete(r),e.grabbing=!1,e.events.emit("grab-changed",{action:"end",screenPoint:null,pointerType:o}))})),this._draggedManipulators.forEach((({tool:t,manipulator:e},o)=>{a(t,e)&&(this._draggedManipulators.delete(o),e.dragging=!1,e.events.emit("drag",{action:"cancel"}))})),r&&this._hoveredManipulators.forEach((({tool:t,manipulator:e},o)=>{a(t,e)&&(this._hoveredManipulators.delete(o),e.hovering=!1)})),this._afterManipulatorUngrab(o),this._onFocusChange(e)}_intersect(t,e,o){let r=null;return o((o=>{if(null==o.manipulators||!i(o))return!1;const a=o.manipulators.intersect(t,e);return null!=a&&(r={tool:o,manipulator:a},!0)})),r}updateHoveredStateFromKnownPointers(t){this._pointerLocations.forEach(((e,o)=>{this._updateHoveredStateForPointerAtScreenPosition(r(e.x,e.y),o,e.pointerType,t)}))}handleHoverEvent(t,e){"pointer-up"!==t.type&&"immediate-click"!==t.type&&"pointer-move"!==t.type||!s(t.pointerType)||this._updateHoveredStateForPointerAtScreenPosition(a(t),t.pointerId,t.pointerType,e)}_updateHoveredStateForPointerAtScreenPosition(t,e,o,r){let i=this._intersect(t,o,r);const a=this._hoveredManipulators.get(e)?.manipulator;null==i||i.manipulator.interactive||(i=null),null!=i&&a===i.manipulator||(null!=a&&(a.hovering=!1),null!=i?(i.manipulator.hovering=!0,this._hoveredManipulators.set(e,i)):this._hoveredManipulators.delete(e),this._onFocusChange(r))}_afterManipulatorUngrab(t){0===this._grabbedManipulators.size&&this._revertToNullActiveTool&&(t(null),this._revertToNullActiveTool=!1)}}function s(t){return"mouse"===t}function l(t){return"mouse"!==t.pointerType||0===t.button}function p(t){return!!t.native.shiftKey}function u(t,e){t?.consumesClicks&&e()}export{n as ToolViewManagerManipulatorState};
@@ -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
- function n(n){return n&&"function"==typeof n.highlight}function e(n){return n&&"function"==typeof n.maskOccludee}function t(n,e,t){return null==n||n>t&&(0===e||n<e)}function c(n,e){return null!=n&&n>0||null!=e&&e>0}function u(n){const e=n.effectiveScaleRange;return{minScale:e?.minScale??0,maxScale:e?.maxScale??0}}export{u as extractSafeScaleBounds,n as highlightsSupported,c as isScaleRangeActive,e as occludeesSupported,t as scaleBoundsPredicate};
5
+ function n(n){return n&&"function"==typeof n.highlight}function e(n){return n&&"function"==typeof n.maskOccludee}function t(n,e,t){return null==n||n>t&&(0===e||n<e)}function u(n,e){return null!=n&&n>0||null!=e&&e>0}function c(n){const e=n.effectiveScaleRange;return{minScale:e?.minScale??0,maxScale:e?.maxScale??0}}function i(n){return null!=n&&"object"==typeof n&&"createQuery"in n&&"queryFeatures"in n&&"layer"in n&&"view"in n}export{c as extractSafeScaleBounds,n as highlightsSupported,u as isScaleRangeActive,i as isSelectableLayerView2D,e as occludeesSupported,t as scaleBoundsPredicate};
package/widgets/Sketch.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"../intl.js";import{handlesGroup as t}from"../core/handleUtils.js";import{removeMaybe as o,destroyMaybe as i}from"../core/maybe.js";import{watch as s,syncAndInitial as n,when as l}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import p from"./Widget.js";import u from"./Sketch/SketchViewModel.js";import{loadCalciteComponents as d}from"./support/componentsUtils.js";import h from"./support/SelectionToolbar.js";import v from"./support/SnappingControls.js";import{isRTL as g}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{vmEvent as b}from"./support/decorators/vmEvent.js";import{tsx as _}from"./support/jsxFactory.js";import{substitute as f}from"../intl/substitute.js";const w="esri-sketch",y={base:w,verticalLayout:`${w}--vertical`,panel:`${w}__panel`,infoPanel:`${w}__info-panel`,section:`${w}__section`,toolSection:`${w}__tool-section`,infoSection:`${w}__info-section`,infoCountSection:`${w}__info-count-section`,menuContainer:`${w}__menu-container`,menuHeader:`${w}__menu-header`,menuTitle:`${w}__menu-title`,featureCountBadge:`${w}__feature-count-badge`,featureCountText:`${w}__feature-count-text`,featureCountNumber:`${w}__feature-count-number`,actionToggle:`${w}__action-toggle`,actionToggleOn:`${w}__action-toggle--on`,actionTitle:`${w}__item-action-title`,actionIcon:`${w}__item-action-icon`,disabled:"esri-disabled",esriWidget:"esri-widget",rotating:"esri-rotating",widgetIcon:"esri-icon-edit"},C={createTools:{point:!0,polyline:!0,polygon:!0,rectangle:!0,circle:!0},selectionTools:{"rectangle-selection":!0,"lasso-selection":!0},undoRedoMenu:!0,settingsMenu:!0,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},duplicateButton:!0};let T=class extends p{constructor(e,t){super(e,t),this._activeCreateOptions=null,this._menuOpen=!1,this._selectionToolbar=null,this._snappingControls=null,this._viewModelHandlesGroup=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.creationMode="continuous",this.iconClass=y.widgetIcon,this.icon=null,this.layout="horizontal",this.messages=null,this.visibleElements={...C},this._activateCreateTool=this._activateCreateTool.bind(this),this.viewModel=e?.viewModel||new u}initialize(){const{layer:e,view:i}=this,{selectionTools:a}=this.visibleElements,r=new h({view:"2d"===i?.type?i:null,sources:e?[e]:null,visibleElements:{lassoTool:!!a?.["lasso-selection"],rectangleTool:!!a?.["rectangle-selection"]}});this.addHandles([s((()=>this.viewModel),(e=>{this._viewModelHandlesGroup=o(this._viewModelHandlesGroup),e&&(this._viewModelHandlesGroup=t([e.on("create",(e=>{this.scheduleRender(),this._onCreateOperation(e)})),e.on("update",(()=>this.scheduleRender())),e.on("delete",(e=>this.emit("delete",e))),e.on("undo",(()=>this.scheduleRender())),e.on("redo",(()=>this.scheduleRender())),s((()=>e.layer),(e=>{this._selectionToolbar&&(this._selectionToolbar.layers=e?[e]:null)})),s((()=>e.view),(e=>{this._selectionToolbar&&(this._selectionToolbar.view="2d"===e?.type?e:null),this._setUpSnappingControls()})),s((()=>e.state),(()=>this.notifyChange("state")))]))}),n),l((()=>r.activeToolInfo),(()=>this.viewModel.cancel())),r.on("complete",(e=>this._onSelectionOperationComplete(e)))]),this._selectionToolbar=r,this._setUpSnappingControls()}loadDependencies(){return d({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}destroy(){this._selectionToolbar?.destroy(),this._viewModelHandlesGroup=o(this._viewModelHandlesGroup),this._snappingControls=i(this._snappingControls)}get activeTool(){const e=this._selectionToolbar?.activeToolInfo;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}return this.viewModel.activeTool}get createGraphic(){return this.viewModel.createGraphic}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(e){this.viewModel.defaultCreateOptions=e}get defaultUpdateOptions(){return this.viewModel.defaultUpdateOptions}set defaultUpdateOptions(e){this.viewModel.defaultUpdateOptions=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get state(){return this._selectionToolbar?.activeToolInfo?"active":this.viewModel.state}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get updateGraphics(){return this.viewModel.updateGraphics}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set viewModel(e){const t=this._get("viewModel");e!==t&&(t&&i(t),this._set("viewModel",e))}castVisibleElements(e){const t={...C,...e,createTools:{...C.createTools,...e?.createTools},selectionTools:{...C.selectionTools,...e?.selectionTools},snappingControlsElements:{...C.snappingControlsElements,...e?.snappingControlsElements}};return null!=this._snappingControls&&(this._snappingControls.visibleElements=t.snappingControlsElements),null!=this._selectionToolbar&&(this._selectionToolbar.visibleElements={lassoTool:!!t.selectionTools?.["lasso-selection"],rectangleTool:!!t.selectionTools?.["rectangle-selection"]}),t}get _effectiveAvailableCreateTools(){const{availableCreateTools:e,visibleElements:t}=this;return e?.filter((e=>!!t.createTools?.[e]))}create(e,t){this._activeCreateOptions=t||null,this.viewModel.create(e,t)}update(e,t){return this.viewModel.update(e,t)}complete(){this.viewModel.complete()}cancel(){this._selectionToolbar?.cancel(),this.viewModel.cancel()}undo(){this.viewModel.undo(),this.view?.focus()}redo(){this.viewModel.redo(),this.view?.focus()}delete(){this.viewModel.delete()}duplicate(){return this.viewModel.duplicate()}render(){const{label:e,layout:t,viewModel:{state:o}}=this;return _("div",{"aria-label":e,class:this.classes(y.base,y.esriWidget,{[y.disabled]:"disabled"===o,[y.verticalLayout]:"vertical"===t})},_("div",{role:"toolbar",class:y.panel},this.renderTopPanelContents()),_("div",{class:this.classes(y.panel,y.infoPanel)},this.renderInfoPanelContents()))}renderTopPanelContents(){const e=this.classes(y.section,y.toolSection),{_effectiveAvailableCreateTools:t,visibleElements:o,viewModel:i}=this;return[i.updateOnGraphicClick||this._selectionToolbar?.visibleToolCount?_("div",{role:"menu",key:"selection-button-container",class:e},this.renderDefaultSelectionButton(),this.renderSelectionToolbar()):null,t?.length?_("div",{role:"menu",class:e},this.renderDrawButtons()):null,o.undoRedoMenu?_("div",{role:"menu",key:"undo-redo-menu-button-container",class:e},this.renderUndoRedoMenuButtons()):null,o.settingsMenu?_("div",{key:"settings-menu-button-container",class:y.section},this.renderSettingsMenuButton()):null]}renderInfoPanelContents(){return this._menuOpen?this.renderSettingsMenu():this.updateGraphics.length?[_("div",{class:this.classes(y.section,y.infoSection,y.infoCountSection),key:"feature-count-container"},this.renderFeatureCount()),_("div",{class:this.classes(y.section,y.infoSection),key:"delete-button-container"},this.renderDuplicateButton(),this.renderDeleteButton())]:void 0}renderSettingsMenu(){const{settings:e}=this.messages;return[_("div",{role:"menu",class:y.menuContainer,key:"settings-menu-container"},_("header",{class:y.menuHeader,key:"settings-menu-header"},_("span",{class:y.menuTitle},e)),this.renderSnappingControls())]}renderSnappingControls(){const{snappingControls:e}=this.visibleElements;if(null!=this._snappingControls&&e)return this._snappingControls.render()}renderFeatureCount(){const{layout:e,messages:t,updateGraphics:{length:o}}=this,i=f(t.selectedCount,{count:o});return _("div",{class:y.featureCountBadge,"aria-label":i},_("span",{class:y.featureCountNumber},"vertical"===e?o:i))}renderDuplicateButton(){if(!this.visibleElements.duplicateButton)return;const e=this.messages,t=this.updateGraphics.length>1?e.duplicateFeatures:e.duplicateFeature;return _("calcite-action",{bind:this,label:t,onclick:this._onDuplicateSelect,scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"copy"}))}renderDeleteButton(){const e=this.messages,t=this.updateGraphics.length>1?e.deleteFeatures:e.deleteFeature;return _("calcite-action",{bind:this,label:t,onclick:this.delete,scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"trash"}))}renderDefaultSelectionButton(){if(!this.viewModel.updateOnGraphicClick)return;const e=this.messages.selectFeature;return _("calcite-action",{active:"ready"===this.state,bind:this,label:e,onclick:this._activateDefaultSelectTool,scale:"s",text:e,title:e},_("calcite-icon",{scale:"s",icon:"cursor"}))}renderSelectionToolbar(){if("2d"===this.view?.type&&this._selectionToolbar)return this._selectionToolbar.render()}renderDrawButtons(){return this._effectiveAvailableCreateTools?.map((e=>{switch(e){case"point":return this.renderPointButton();case"polyline":return this.renderPolylineButton();case"polygon":return this.renderPolygonButton();case"rectangle":return this.renderRectangleButton();case"circle":return this.renderCircleButton();default:return}}))}renderPointButton(){const e="point",t=this.messages.drawPoint;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"pin"}))}renderPolygonButton(){const e="polygon",t=this.messages.drawPolygon;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"polygon"}))}renderPolylineButton(){const e="polyline",t=this.messages.drawPolyline;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"line"}))}renderCircleButton(){const e="circle",t=this.messages.drawCircle;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"circle"}))}renderRectangleButton(){const e="rectangle",t=this.messages.drawRectangle;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"rectangle"}))}renderUndoRedoMenuButtons(){return[this.renderUndoButton(),this.renderRedoButton()]}renderUndoButton(){const e=this.messages.undo;return _("calcite-action",{disabled:!this.viewModel.canUndo(),bind:this,label:e,onclick:this.undo,scale:"s",text:e,title:e},_("calcite-icon",{scale:"s",icon:g(this.container)?"redo":"undo"}))}renderRedoButton(){const e=this.messages.redo;return _("calcite-action",{disabled:!this.viewModel.canRedo(),bind:this,label:e,onclick:this.redo,scale:"s",text:e,title:e},_("calcite-icon",{scale:"s",icon:g(this.container)?"undo":"redo"}))}renderSettingsMenuButton(){const e=this.messages.settings;return _("calcite-action",{active:this._menuOpen,bind:this,label:e,onclick:this._toggleMenu,scale:"s",text:e,title:e},_("calcite-icon",{scale:"s",icon:"gear"}))}_activateCreateTool(e){this.activeTool!==e?(this._selectionToolbar?.cancel(),this.create(e)):this.cancel()}_onCreateOperation(e){if("complete"!==e.state)return;const{creationMode:t}=this,{type:o}=e;if("create"===o){const{tool:o,graphic:i}=e,s=this._activeCreateOptions;this._activeCreateOptions=null,"continuous"===t?this.create(o,s):"update"===t&&this.update([i])}}_toggleMenu(){this._menuOpen=!this._menuOpen,this.scheduleRender()}_onDuplicateSelect(){const e=this.duplicate(),t=this.viewModel.activeTool;"transform"!==t&&"reshape"!==t||this.update(e,{tool:t})}_onSelectionOperationComplete(e){const{viewModel:{defaultUpdateOptions:t}}=this,{selection:o}=e;if(!e.aborted&&o.length){const e=t.tool,i=o.length>1&&"reshape"===e?"transform":e;this.update(o,{...t,tool:i})}this.notifyChange("state")}_activateDefaultSelectTool(){this.cancel(),this.view?.focus()}_setUpSnappingControls(){const{snappingOptions:e,view:t}=this;if(this._snappingControls=i(this._snappingControls),!e||!t)return;const o=new v({snappingOptions:e,view:t,visibleElements:this.visibleElements.snappingControlsElements});this._snappingControls=o}};e([a()],T.prototype,"activeTool",null),e([a({cast:e=>{if(!e||!e.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle"]);return e.filter((e=>t.has(e)))}})],T.prototype,"availableCreateTools",void 0),e([a({readOnly:!0})],T.prototype,"createGraphic",null),e([a()],T.prototype,"creationMode",void 0),e([a()],T.prototype,"defaultCreateOptions",null),e([a()],T.prototype,"defaultUpdateOptions",null),e([a()],T.prototype,"iconClass",void 0),e([a()],T.prototype,"icon",void 0),e([a()],T.prototype,"label",null),e([a()],T.prototype,"labelOptions",null),e([a()],T.prototype,"layer",null),e([a({type:["horizontal","vertical"]})],T.prototype,"layout",void 0),e([a(),m("esri/widgets/Sketch/t9n/Sketch")],T.prototype,"messages",void 0),e([a()],T.prototype,"snappingOptions",null),e([a()],T.prototype,"state",null),e([a()],T.prototype,"tooltipOptions",null),e([a({readOnly:!0})],T.prototype,"updateGraphics",null),e([a()],T.prototype,"view",null),e([a(),b(["create","update","undo","redo"])],T.prototype,"viewModel",null),e([a()],T.prototype,"visibleElements",void 0),e([r("visibleElements")],T.prototype,"castVisibleElements",null),e([a()],T.prototype,"_effectiveAvailableCreateTools",null),T=e([c("esri.widgets.Sketch")],T);const M=T;export{M as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{handlesGroup as t}from"../core/handleUtils.js";import{removeMaybe as o,destroyMaybe as i}from"../core/maybe.js";import{watch as s,syncAndInitial as n,when as l}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import p from"./Widget.js";import u from"./Sketch/SketchViewModel.js";import{loadCalciteComponents as d}from"./support/componentsUtils.js";import h from"./support/SelectionToolbar.js";import v from"./support/SnappingControls.js";import{isRTL as g}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{vmEvent as b}from"./support/decorators/vmEvent.js";import{tsx as _}from"./support/jsxFactory.js";import{substitute as f}from"../intl/substitute.js";const w="esri-sketch",C={base:w,verticalLayout:`${w}--vertical`,panel:`${w}__panel`,infoPanel:`${w}__info-panel`,section:`${w}__section`,toolSection:`${w}__tool-section`,infoSection:`${w}__info-section`,infoCountSection:`${w}__info-count-section`,menuContainer:`${w}__menu-container`,menuHeader:`${w}__menu-header`,menuTitle:`${w}__menu-title`,featureCountBadge:`${w}__feature-count-badge`,featureCountText:`${w}__feature-count-text`,featureCountNumber:`${w}__feature-count-number`,actionToggle:`${w}__action-toggle`,actionToggleOn:`${w}__action-toggle--on`,actionTitle:`${w}__item-action-title`,actionIcon:`${w}__item-action-icon`,disabled:"esri-disabled",esriWidget:"esri-widget",rotating:"esri-rotating",widgetIcon:"esri-icon-edit"},y={createTools:{point:!0,polyline:!0,polygon:!0,rectangle:!0,circle:!0},selectionTools:{"rectangle-selection":!0,"lasso-selection":!0},undoRedoMenu:!0,settingsMenu:!0,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},duplicateButton:!0};let T=class extends p{constructor(e,t){super(e,t),this._activeCreateOptions=null,this._menuOpen=!1,this._selectionToolbar=null,this._snappingControls=null,this._viewModelHandlesGroup=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.creationMode="continuous",this.iconClass=C.widgetIcon,this.icon=null,this.layout="horizontal",this.messages=null,this.visibleElements={...y},this._activateCreateTool=this._activateCreateTool.bind(this),this.viewModel=e?.viewModel||new u}initialize(){const{layer:e,view:i}=this,{selectionTools:a}=this.visibleElements,r=new h({view:"2d"===i?.type?i:null,sources:e?[e]:null,visibleElements:{lassoTool:!!a?.["lasso-selection"],rectangleTool:!!a?.["rectangle-selection"]}});this.addHandles([s((()=>this.viewModel),(e=>{this._viewModelHandlesGroup=o(this._viewModelHandlesGroup),e&&(this._viewModelHandlesGroup=t([e.on("create",(e=>{this.scheduleRender(),this._onCreateOperation(e)})),e.on("update",(()=>this.scheduleRender())),e.on("delete",(e=>this.emit("delete",e))),e.on("undo",(()=>this.scheduleRender())),e.on("redo",(()=>this.scheduleRender())),s((()=>e.layer),(e=>{this._selectionToolbar&&(this._selectionToolbar.sources=e?[e]:null)})),s((()=>e.view),(e=>{this._selectionToolbar&&(this._selectionToolbar.view="2d"===e?.type?e:null),this._setUpSnappingControls()})),s((()=>e.state),(()=>this.notifyChange("state")))]))}),n),l((()=>r.activeToolInfo),(()=>this.viewModel.cancel())),r.on("complete",(e=>this._onSelectionOperationComplete(e)))]),this._selectionToolbar=r,this._setUpSnappingControls()}loadDependencies(){return d({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}destroy(){this._selectionToolbar?.destroy(),this._viewModelHandlesGroup=o(this._viewModelHandlesGroup),this._snappingControls=i(this._snappingControls)}get activeTool(){const e=this._selectionToolbar?.activeToolInfo;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}return this.viewModel.activeTool}get createGraphic(){return this.viewModel.createGraphic}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(e){this.viewModel.defaultCreateOptions=e}get defaultUpdateOptions(){return this.viewModel.defaultUpdateOptions}set defaultUpdateOptions(e){this.viewModel.defaultUpdateOptions=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get state(){return this._selectionToolbar?.activeToolInfo?"active":this.viewModel.state}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get updateGraphics(){return this.viewModel.updateGraphics}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set viewModel(e){const t=this._get("viewModel");e!==t&&(t&&i(t),this._set("viewModel",e))}castVisibleElements(e){const t={...y,...e,createTools:{...y.createTools,...e?.createTools},selectionTools:{...y.selectionTools,...e?.selectionTools},snappingControlsElements:{...y.snappingControlsElements,...e?.snappingControlsElements}};return null!=this._snappingControls&&(this._snappingControls.visibleElements=t.snappingControlsElements),null!=this._selectionToolbar&&(this._selectionToolbar.visibleElements={lassoTool:!!t.selectionTools?.["lasso-selection"],rectangleTool:!!t.selectionTools?.["rectangle-selection"]}),t}get _effectiveAvailableCreateTools(){const{availableCreateTools:e,visibleElements:t}=this;return e?.filter((e=>!!t.createTools?.[e]))}create(e,t){this._activeCreateOptions=t||null,this.viewModel.create(e,t)}update(e,t){return this.viewModel.update(e,t)}complete(){this.viewModel.complete()}cancel(){this._selectionToolbar?.cancel(),this.viewModel.cancel()}undo(){this.viewModel.undo(),this.view?.focus()}redo(){this.viewModel.redo(),this.view?.focus()}delete(){this.viewModel.delete()}duplicate(){return this.viewModel.duplicate()}render(){const{label:e,layout:t,viewModel:{state:o}}=this;return _("div",{"aria-label":e,class:this.classes(C.base,C.esriWidget,{[C.disabled]:"disabled"===o,[C.verticalLayout]:"vertical"===t})},_("div",{role:"toolbar",class:C.panel},this.renderTopPanelContents()),_("div",{class:this.classes(C.panel,C.infoPanel)},this.renderInfoPanelContents()))}renderTopPanelContents(){const e=this.classes(C.section,C.toolSection),{_effectiveAvailableCreateTools:t,visibleElements:o,viewModel:i}=this;return[i.updateOnGraphicClick||this._selectionToolbar?.visibleToolCount?_("div",{role:"menu",key:"selection-button-container",class:e},this.renderDefaultSelectionButton(),this.renderSelectionToolbar()):null,t?.length?_("div",{role:"menu",class:e},this.renderDrawButtons()):null,o.undoRedoMenu?_("div",{role:"menu",key:"undo-redo-menu-button-container",class:e},this.renderUndoRedoMenuButtons()):null,o.settingsMenu?_("div",{key:"settings-menu-button-container",class:C.section},this.renderSettingsMenuButton()):null]}renderInfoPanelContents(){return this._menuOpen?this.renderSettingsMenu():this.updateGraphics.length?[_("div",{class:this.classes(C.section,C.infoSection,C.infoCountSection),key:"feature-count-container"},this.renderFeatureCount()),_("div",{class:this.classes(C.section,C.infoSection),key:"delete-button-container"},this.renderDuplicateButton(),this.renderDeleteButton())]:void 0}renderSettingsMenu(){const{settings:e}=this.messages;return[_("div",{role:"menu",class:C.menuContainer,key:"settings-menu-container"},_("header",{class:C.menuHeader,key:"settings-menu-header"},_("span",{class:C.menuTitle},e)),this.renderSnappingControls())]}renderSnappingControls(){const{snappingControls:e}=this.visibleElements;if(null!=this._snappingControls&&e)return this._snappingControls.render()}renderFeatureCount(){const{layout:e,messages:t,updateGraphics:{length:o}}=this,i=f(t.selectedCount,{count:o});return _("div",{class:C.featureCountBadge,"aria-label":i},_("span",{class:C.featureCountNumber},"vertical"===e?o:i))}renderDuplicateButton(){if(!this.visibleElements.duplicateButton)return;const e=this.messages,t=this.updateGraphics.length>1?e.duplicateFeatures:e.duplicateFeature;return _("calcite-action",{bind:this,label:t,onclick:this._onDuplicateSelect,scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"copy"}))}renderDeleteButton(){const e=this.messages,t=this.updateGraphics.length>1?e.deleteFeatures:e.deleteFeature;return _("calcite-action",{bind:this,label:t,onclick:this.delete,scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"trash"}))}renderDefaultSelectionButton(){if(!this.viewModel.updateOnGraphicClick)return;const e=this.messages.selectFeature;return _("calcite-action",{active:"ready"===this.state,bind:this,label:e,onclick:this._activateDefaultSelectTool,scale:"s",text:e,title:e},_("calcite-icon",{scale:"s",icon:"cursor"}))}renderSelectionToolbar(){if("2d"===this.view?.type&&this._selectionToolbar)return this._selectionToolbar.render()}renderDrawButtons(){return this._effectiveAvailableCreateTools?.map((e=>{switch(e){case"point":return this.renderPointButton();case"polyline":return this.renderPolylineButton();case"polygon":return this.renderPolygonButton();case"rectangle":return this.renderRectangleButton();case"circle":return this.renderCircleButton();default:return}}))}renderPointButton(){const e="point",t=this.messages.drawPoint;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"pin"}))}renderPolygonButton(){const e="polygon",t=this.messages.drawPolygon;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"polygon"}))}renderPolylineButton(){const e="polyline",t=this.messages.drawPolyline;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"line"}))}renderCircleButton(){const e="circle",t=this.messages.drawCircle;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"circle"}))}renderRectangleButton(){const e="rectangle",t=this.messages.drawRectangle;return _("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},_("calcite-icon",{scale:"s",icon:"rectangle"}))}renderUndoRedoMenuButtons(){return[this.renderUndoButton(),this.renderRedoButton()]}renderUndoButton(){const e=this.messages.undo;return _("calcite-action",{disabled:!this.viewModel.canUndo(),bind:this,label:e,onclick:this.undo,scale:"s",text:e,title:e},_("calcite-icon",{scale:"s",icon:g(this.container)?"redo":"undo"}))}renderRedoButton(){const e=this.messages.redo;return _("calcite-action",{disabled:!this.viewModel.canRedo(),bind:this,label:e,onclick:this.redo,scale:"s",text:e,title:e},_("calcite-icon",{scale:"s",icon:g(this.container)?"undo":"redo"}))}renderSettingsMenuButton(){const e=this.messages.settings;return _("calcite-action",{active:this._menuOpen,bind:this,label:e,onclick:this._toggleMenu,scale:"s",text:e,title:e},_("calcite-icon",{scale:"s",icon:"gear"}))}_activateCreateTool(e){this.activeTool!==e?(this._selectionToolbar?.cancel(),this.create(e)):this.cancel()}_onCreateOperation(e){if("complete"!==e.state)return;const{creationMode:t}=this,{type:o}=e;if("create"===o){const{tool:o,graphic:i}=e,s=this._activeCreateOptions;this._activeCreateOptions=null,"continuous"===t?this.create(o,s):"update"===t&&this.update([i])}}_toggleMenu(){this._menuOpen=!this._menuOpen,this.scheduleRender()}_onDuplicateSelect(){const e=this.duplicate(),t=this.viewModel.activeTool;"transform"!==t&&"reshape"!==t||this.update(e,{tool:t})}_onSelectionOperationComplete(e){const{viewModel:{defaultUpdateOptions:t}}=this,{selection:o}=e;if(!e.aborted&&o.length){const e=t.tool,i=o.length>1&&"reshape"===e?"transform":e;this.update(o,{...t,tool:i})}this.notifyChange("state")}_activateDefaultSelectTool(){this.cancel(),this.view?.focus()}_setUpSnappingControls(){const{snappingOptions:e,view:t}=this;if(this._snappingControls=i(this._snappingControls),!e||!t)return;const o=new v({snappingOptions:e,view:t,visibleElements:this.visibleElements.snappingControlsElements});this._snappingControls=o}};e([a()],T.prototype,"activeTool",null),e([a({cast:e=>{if(!e||!e.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle"]);return e.filter((e=>t.has(e)))}})],T.prototype,"availableCreateTools",void 0),e([a({readOnly:!0})],T.prototype,"createGraphic",null),e([a()],T.prototype,"creationMode",void 0),e([a()],T.prototype,"defaultCreateOptions",null),e([a()],T.prototype,"defaultUpdateOptions",null),e([a()],T.prototype,"iconClass",void 0),e([a()],T.prototype,"icon",void 0),e([a()],T.prototype,"label",null),e([a()],T.prototype,"labelOptions",null),e([a()],T.prototype,"layer",null),e([a({type:["horizontal","vertical"]})],T.prototype,"layout",void 0),e([a(),m("esri/widgets/Sketch/t9n/Sketch")],T.prototype,"messages",void 0),e([a()],T.prototype,"snappingOptions",null),e([a()],T.prototype,"state",null),e([a()],T.prototype,"tooltipOptions",null),e([a({readOnly:!0})],T.prototype,"updateGraphics",null),e([a()],T.prototype,"view",null),e([a(),b(["create","update","undo","redo"])],T.prototype,"viewModel",null),e([a()],T.prototype,"visibleElements",void 0),e([r("visibleElements")],T.prototype,"castVisibleElements",null),e([a()],T.prototype,"_effectiveAvailableCreateTools",null),T=e([c("esri.widgets.Sketch")],T);const M=T;export{M 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{deprecatedProperty as t}from"../../../core/deprecate.js";import o from"../../../core/Evented.js";import{handlesGroup as s}from"../../../core/handleUtils.js";import r from"../../../core/Logger.js";import{removeMaybe as i}from"../../../core/maybe.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{isFeatureLayer as c}from"../../../layers/support/layerUtils.js";import{findLayerView as l}from"../../../views/draw/support/layerUtils.js";import p from"../Selector2D.js";let u=class extends o.EventedAccessor{constructor(e){super(e),this._operationHandlesGroup=null,this.activeOperation=null,this.selector=new p,this.sources=null}destroy(){this._operationHandlesGroup=i(this._operationHandlesGroup),this.selector.destroy()}get _sources(){const{sources:e,view:t}=this;return t&&e?.length?e.map((e=>{const o=c(e)?l(t,e):void 0;return o||e})):[]}get layers(){return t(r.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.sources}set layers(e){t(r.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.sources=e}get state(){return this.activeOperation?"active":this.view?.ready&&this._sources.length?"ready":"disabled"}set view(e){this.selector.view=e,this._set("view",e)}async selectionFrom(e,t){const{_sources:o}=this;return this.view&&o.length?this.selector.selectionFrom({geometry:e,selectionOptions:t,sources:o}):[]}cancel(){"active"===this.state&&(this.activeOperation?.cancel(),this._set("activeOperation",null))}activate(e){const{_sources:t,state:o}=this;if("disabled"===o||!t?.length)return;"active"===o&&this.cancel();const r=this.selector.draw({sources:t,operationOptions:e});return this._operationHandlesGroup=s([r.once("complete",(e=>this._onOperationComplete(e))),r.on("selection-change",(e=>this._onOperationSelectionChange(e)))]),this._set("activeOperation",r),r}_onOperationSelectionChange(e){this.emit("selection-change",e)}_onOperationComplete(e){this._operationHandlesGroup=i(this._operationHandlesGroup),this._set("activeOperation",null),this.emit("complete",e)}};e([n()],u.prototype,"_sources",null),e([n({readOnly:!0})],u.prototype,"activeOperation",void 0),e([n()],u.prototype,"layers",null),e([n({readOnly:!0})],u.prototype,"selector",void 0),e([n()],u.prototype,"sources",void 0),e([n({readOnly:!0})],u.prototype,"state",null),e([n()],u.prototype,"view",null),u=e([a("esri.widgets.support.SelectionToolbar.SelectionToolbarViewModel")],u);const h=u;export{h as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{deprecatedProperty as t}from"../../../core/deprecate.js";import o from"../../../core/Evented.js";import{handlesGroup as r}from"../../../core/handleUtils.js";import s from"../../../core/Logger.js";import{removeMaybe as i}from"../../../core/maybe.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{isKnowledgeGraphLayer as c}from"../../../layers/support/layerUtils.js";import{findLayerView as l}from"../../../views/draw/support/layerUtils.js";import{isSelectableLayerView2D as p}from"../../../views/support/layerViewUtils.js";import u from"../Selector2D.js";let h=class extends o.EventedAccessor{constructor(e){super(e),this._operationHandlesGroup=null,this.activeOperation=null,this.selector=new u,this.sources=null}destroy(){this._operationHandlesGroup=i(this._operationHandlesGroup),this.selector.destroy()}get _sources(){const{sources:e,view:t}=this;return t&&e?.length?e.flatMap((e=>{if(p(e))return e;if(c(e)){const o=e.layers||[],r=o.map((e=>{const o=l(t,e)||void 0;return p(o)?o:e}));return r.length?r.toArray():o.length?o.toArray():e}const o=l(t,e)||void 0;return p(o)?o:e})):[]}get layers(){return t(s.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.sources}set layers(e){t(s.getLogger(this),"layers",{replacement:"Use SelectionToolbar.sources instead."}),this.sources=e}get state(){return this.activeOperation?"active":this.view?.ready&&this._sources.length?"ready":"disabled"}set view(e){this.selector.view=e,this._set("view",e)}async selectionFrom(e,t){const{_sources:o}=this;return this.view&&o.length?this.selector.selectionFrom({geometry:e,selectionOptions:t,sources:o}):[]}cancel(){"active"===this.state&&(this.activeOperation?.cancel(),this._set("activeOperation",null))}activate(e){const{_sources:t,state:o}=this;if("disabled"===o||!t?.length)return;"active"===o&&this.cancel();const s=this.selector.draw({sources:t,operationOptions:e});return this._operationHandlesGroup=r([s.once("complete",(e=>this._onOperationComplete(e))),s.on("selection-change",(e=>this._onOperationSelectionChange(e)))]),this._set("activeOperation",s),s}_onOperationSelectionChange(e){this.emit("selection-change",e)}_onOperationComplete(e){this._operationHandlesGroup=i(this._operationHandlesGroup),this._set("activeOperation",null),this.emit("complete",e)}};e([n()],h.prototype,"_sources",null),e([n({readOnly:!0})],h.prototype,"activeOperation",void 0),e([n()],h.prototype,"layers",null),e([n({readOnly:!0})],h.prototype,"selector",void 0),e([n()],h.prototype,"sources",void 0),e([n({readOnly:!0})],h.prototype,"state",null),e([n()],h.prototype,"view",null),h=e([a("esri.widgets.support.SelectionToolbar.SelectionToolbarViewModel")],h);const m=h;export{m 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{whenOrAbort as e,ignoreAbortErrors as r}from"../../../core/promiseUtils.js";import{getDisplayFieldName as t}from"../../../layers/support/fieldUtils.js";import{isFeatureLayer as s,isMapNotesLayer as n,isGraphicsLayer as a}from"../../../layers/support/layerUtils.js";import{calculateTolerance as i}from"../../../renderers/support/clickToleranceUtils.js";import{createQueryGeometry as o}from"../../../views/support/drapedUtils.js";async function l(){return import("../../../geometry/geometryEngineJSON.js")}async function c(){return l().then((({contains:e,intersects:r,overlaps:t,simplify:s})=>({contains:e,intersects:r,overlaps:t,simplify:s})))}async function u(r){const{currentSelection:t,options:s,selector:n,signal:a,sources:i,view:o}=r;if(!i?.length)return{added:[],removed:[]};const{featureLayers:l,featureLayerViews:c,graphicsLayers:u}=p(i),g=(await e(Promise.all([d(n,l,o,a),y(n,u,s,o),f(n,c,o,a)]),a)).flat();if(!t)return{added:g,removed:[]};const v=g.filter((e=>m(t.toArray(),e))),h=t.filter((e=>m(g,e))).toArray();return t.removeMany(h),t.addMany(v),{added:v,removed:h}}const y=async(e,r,t,s)=>F({candidates:r.flatMap((e=>e.graphics.toArray()))??[],selector:e,options:t,view:s}),d=async(e,t,s,n)=>{const a=await r(v({selector:e,signal:n,layers:t,view:s}));return a?a.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)):[]},f=async(e,t,s,n)=>{const a=await r(g({selector:e,signal:n,layerViews:t,view:s}));return a?a.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)):[]};function p(e){const r=[],t=[],i=[];return e.forEach((e=>{s(e)?r.push(e):n(e)&&e.sublayers?.length?i.push(...e.sublayers.toArray()):a(e)?i.push(e):"layer"in e&&s(e.layer)&&t.push(e)})),{featureLayers:r,featureLayerViews:t,graphicsLayers:i}}function m(e,r){const t=e.includes(r),s=r.getObjectId(),n=null!=s,a=e.some((e=>{const t=r.layer===e.layer,a=n&&e.getObjectId()===s,i=r.uid===e.uid;return t&&(a||i)}));return!t&&!a}async function g(r){const{layerViews:t,selector:s,signal:n,view:a}=r;return e(Promise.allSettled(t.map((async e=>{const r=e.createQuery(),t=e.layer,{outFields:i,geometry:o}=h(s,t,a);return r.outFields=i,r.geometry=o,r.returnGeometry=!0,r.outSpatialReference=a.spatialReference,e.queryFeatures(r,{signal:n}).then((({features:e})=>e))}))),n)}async function v(r){const{layers:t,selector:s,signal:n,view:a}=r;return e(Promise.allSettled(t.map((async e=>e.queryFeatures(w(e.createQuery(),s,e,a),{signal:n}).then((({features:e})=>e))))),n)}function h(e,r,s){const n="displayField"in r?r.displayField:null,a=t({displayField:n,fields:r.fields}),l=[r.objectIdField];null!=a&&r.fieldsIndex.has(a)&&l.push(a);const c="renderer"in r?i({renderer:r.renderer}):0;return{geometry:"point"===e.type?o(e,c,s):e,outFields:l}}function w(e,r,t,s){const{outFields:n,geometry:a}=h(r,t,s);return e.outFields=n,e.geometry=a,e.returnGeometry=!0,e.outSpatialReference=s.spatialReference,e}async function F(e){const{selector:r,candidates:t,options:s,view:n}=e;if(!t?.length||!r||!s)return[];const{overlaps:a,intersects:i,contains:o}=s,{spatialReference:l}=n,u=r,y=await c();return t.filter((e=>{const r=e.geometry,t=a&&y.overlaps(l,u,r),s=i&&y.intersects(l,u,r),n=o&&y.contains(l,u,r);return t||s||n}))}export{c as getGeometryEngineOperations,h as getQueryOptionsFromLayer,g as getSelectionFromFeatureLayerViews,v as getSelectionFromFeatureLayers,u as getSelectionFromGeometry,F as getSelectionFromGeometryEngine,l as importGeometryEngine};
5
+ import{whenOrAbort as e,ignoreAbortErrors as r}from"../../../core/promiseUtils.js";import{getDisplayFieldName as t}from"../../../layers/support/fieldUtils.js";import{isFeatureLayer as s,isKnowledgeGraphLayer as n,isMapNotesLayer as a,isGraphicsLayer as i}from"../../../layers/support/layerUtils.js";import{calculateTolerance as o}from"../../../renderers/support/clickToleranceUtils.js";import{createQueryGeometry as l}from"../../../views/support/drapedUtils.js";import{isSelectableLayerView2D as c}from"../../../views/support/layerViewUtils.js";async function u(){return import("../../../geometry/geometryEngineJSON.js")}async function y(){return u().then((({contains:e,intersects:r,overlaps:t,simplify:s})=>({contains:e,intersects:r,overlaps:t,simplify:s})))}async function p(r){const{currentSelection:t,options:s,selector:n,signal:a,sources:i,view:o}=r;if(!i?.length)return{added:[],removed:[]};const{layers:l,layerViews:c,graphicsLayers:u}=g(i),y=(await e(Promise.all([f(n,l,o,a),m(n,c,o,a),d(n,u,s,o)]),a)).flat();if(!t)return{added:y,removed:[]};const p=y.filter((e=>v(t.toArray(),e))),h=t.filter((e=>v(y,e))).toArray();return t.removeMany(h),t.addMany(p),{added:p,removed:h}}const d=async(e,r,t,s)=>S({candidates:r.flatMap((e=>e.graphics.toArray()))??[],selector:e,options:t,view:s}),f=async(e,t,s,n)=>{const a=await r(w({selector:e,signal:n,layers:t,view:s}));return a?a.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)):[]},m=async(e,t,s,n)=>{const a=await r(h({selector:e,signal:n,layerViews:t,view:s}));return a?a.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)):[]};function g(e){const r=[],t=[],o=[];return e.forEach((e=>{s(e)?r.push(e):n(e)&&e.layers?.length?r.push(...e.layers.toArray()):a(e)&&e.sublayers?.length?o.push(...e.sublayers.toArray()):i(e)?o.push(e):c(e)&&t.push(e)})),{layers:r,layerViews:t,graphicsLayers:o}}function v(e,r){const t=e.includes(r),s=r.getObjectId(),n=null!=s,a=e.some((e=>{const t=r.layer===e.layer,a=n&&e.getObjectId()===s,i=r.uid===e.uid;return t&&(a||i)}));return!t&&!a}async function h(r){const{layerViews:t,selector:s,signal:n,view:a}=r;return e(Promise.allSettled(t.map((async e=>{const r=e.createQuery(),{outFields:t,geometry:i}=F(s,e.layer,a);return r.outFields=t,r.geometry=i,r.returnGeometry=!0,r.outSpatialReference=a.spatialReference,e.queryFeatures(r,{signal:n}).then((({features:e})=>e))}))),n)}async function w(r){const{layers:t,selector:s,signal:n,view:a}=r;return e(Promise.allSettled(t.map((async e=>e.queryFeatures(j(e.createQuery(),s,e,a),{signal:n}).then((({features:e})=>e))))),n)}function F(e,r,s){const n="displayField"in r?r.displayField:null,a=t({displayField:n,fields:r.fields}),i=[r.objectIdField];null!=a&&r.fieldsIndex.has(a)&&i.push(a);const c="renderer"in r?o({renderer:r.renderer}):0;return{geometry:"point"===e.type?l(e,c,s):e,outFields:i}}function j(e,r,t,s){const{outFields:n,geometry:a}=F(r,t,s);return e.outFields=n,e.geometry=a,e.returnGeometry=!0,e.outSpatialReference=s.spatialReference,e}async function S(e){const{selector:r,candidates:t,options:s,view:n}=e;if(!t?.length||!r||!s)return[];const{overlaps:a,intersects:i,contains:o}=s,{spatialReference:l}=n,c=r,u=await y();return t.filter((e=>{const r=e.geometry,t=a&&u.overlaps(l,c,r),s=i&&u.intersects(l,c,r),n=o&&u.contains(l,c,r);return t||s||n}))}export{y as getGeometryEngineOperations,F as getQueryOptionsFromLayer,h as getSelectionFromFeatureLayerViews,w as getSelectionFromFeatureLayers,p as getSelectionFromGeometry,S as getSelectionFromGeometryEngine,u as importGeometryEngine};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2906,661,5234,9880],{66748:(n,t,e)=>{e.r(t),e.d(t,{registerFunctions:()=>I});var r=e(40330),a=e(28228),o=e(33586),i=e(27535),s=e(77286),u=e(61363),c=e(26520),l=e(71201),f=e(67900),d=e(6570),h=e(9361),m=e(8667),y=e(65091),g=e(94139),w=e(38913),p=e(58901),Z=e(33955),v=e(48522);function F(n){return 0===r.i8.indexOf("4.")?w.Z.fromExtent(n):new w.Z({spatialReference:n.spatialReference,rings:[[[n.xmin,n.ymin],[n.xmin,n.ymax],[n.xmax,n.ymax],[n.xmax,n.ymin],[n.xmin,n.ymin]]]})}function D(n,t,e){if((0,u.C)(n,2,2,t,e),n[0]instanceof h.Z&&n[1]instanceof h.Z);else if(n[0]instanceof h.Z&&null===n[1]);else if(n[1]instanceof h.Z&&null===n[0]);else if(null!==n[0]||null!==n[1])throw new i.aV(t,i.rH.InvalidParameter,e)}async function A(n,t){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let e=1;(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid)&&(e=(0,l._R)(n.spatialReference)/(0,f.c9)(n.spatialReference));let r=0;if("polyline"===n.type)for(const t of n.paths)for(let n=1;n<t.length;n++)r+=(0,l.AW)(t[n],t[n-1],e);else if("polygon"===n.type)for(const t of n.rings){for(let n=1;n<t.length;n++)r+=(0,l.AW)(t[n],t[n-1],e);(t[0][0]!==t[t.length-1][0]||t[0][1]!==t[t.length-1][1]||void 0!==t[0][2]&&t[0][2]!==t[t.length-1][2])&&(r+=(0,l.AW)(t[0],t[t.length-1],e))}else"extent"===n.type&&(r+=2*(0,l.AW)([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],e),r+=2*(0,l.AW)([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],e),r*=2,r+=4*Math.abs((0,u.F)(n.zmax,0)*e-(0,u.F)(n.zmin,0)*e));const a=new p.Z({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return(0,m.sz)(a,t)}function I(n){"async"===n.mode&&(n.functions.disjoint=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null===a[0]||null===a[1]||(0,m.ED)(a[0],a[1]))))},n.functions.intersects=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null!==a[0]&&null!==a[1]&&(0,m.kK)(a[0],a[1]))))},n.functions.touches=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null!==a[0]&&null!==a[1]&&(0,m.W4)(a[0],a[1]))))},n.functions.crosses=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null!==a[0]&&null!==a[1]&&(0,m.jU)(a[0],a[1]))))},n.functions.within=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null!==a[0]&&null!==a[1]&&(0,m.uh)(a[0],a[1]))))},n.functions.contains=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null!==a[0]&&null!==a[1]&&(0,m.r3)(a[0],a[1]))))},n.functions.overlaps=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null!==a[0]&&null!==a[1]&&(0,m.Nm)(a[0],a[1]))))},n.functions.equals=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>((0,u.C)(a,2,2,t,e),a[0]===a[1]||(a[0]instanceof h.Z&&a[1]instanceof h.Z?(0,m.fS)(a[0],a[1]):!(!(0,u.k)(a[0])||!(0,u.k)(a[1]))&&a[0].equals(a[1])))))},n.functions.relate=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,3,3,t,e),a[0]instanceof h.Z&&a[1]instanceof h.Z)return(0,m.LV)(a[0],a[1],(0,u.j)(a[2]));if(a[0]instanceof h.Z&&null===a[1])return!1;if(a[1]instanceof h.Z&&null===a[0])return!1;if(null===a[0]&&null===a[1])return!1;throw new i.aV(t,i.rH.InvalidParameter,e)}))},n.functions.intersection=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null===a[0]||null===a[1]?null:(0,m.wf)(a[0],a[1]))))},n.functions.union=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{const o=[];if(0===(a=(0,u.D)(a)).length)throw new i.aV(t,i.rH.WrongNumberOfParameters,e);if(1===a.length)if((0,u.m)(a[0])){const n=(0,u.D)(a[0]);for(let r=0;r<n.length;r++)if(null!==n[r]){if(!(n[r]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);o.push(n[r])}}else{if(!(0,u.o)(a[0])){if(a[0]instanceof h.Z)return(0,u.y)((0,s.r1)(a[0]),t.spatialReference);if(null===a[0])return null;throw new i.aV(t,i.rH.InvalidParameter,e)}{const n=(0,u.D)(a[0].toArray());for(let r=0;r<n.length;r++)if(null!==n[r]){if(!(n[r]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);o.push(n[r])}}}else for(let n=0;n<a.length;n++)if(null!==a[n]){if(!(a[n]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);o.push(a[n])}return 0===o.length?null:(0,m.G0)(o)}))},n.functions.difference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null!==a[0]&&null===a[1]?(0,s.r1)(a[0]):null===a[0]?null:(0,m.e5)(a[0],a[1]))))},n.functions.symmetricdifference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>(D(a=(0,u.D)(a),t,e),null===a[0]&&null===a[1]?null:null===a[0]?(0,s.r1)(a[1]):null===a[1]?(0,s.r1)(a[0]):(0,m.Sp)(a[0],a[1]))))},n.functions.clip=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,2,t,e),!(a[1]instanceof d.Z)&&null!==a[1])throw new i.aV(t,i.rH.InvalidParameter,e);if(null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return null===a[1]?null:(0,m.oq)(a[0],a[1])}))},n.functions.cut=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,2,t,e),!(a[1]instanceof p.Z)&&null!==a[1])throw new i.aV(t,i.rH.InvalidParameter,e);if(null===a[0])return[];if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return null===a[1]?[(0,s.r1)(a[0])]:(0,m.z7)(a[0],a[1])}))},n.functions.area=function(t,e){return n.standardFunctionAsync(t,e,(async(n,r,a)=>{if((0,u.C)(a,1,2,t,e),null===(a=(0,u.D)(a))[0])return 0;if((0,u.r)(a[0])){const n=await a[0].sumArea((0,s.EI)((0,u.F)(a[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new i.aV(t,i.rH.Cancelled,e);return n}if((0,u.m)(a[0])||(0,u.o)(a[0])){const n=(0,u.E)(a[0],t.spatialReference);return null===n?0:(0,m.CJ)(n,(0,s.EI)((0,u.F)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.CJ)(a[0],(0,s.EI)((0,u.F)(a[1],-1)))}))},n.functions.areageodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,r,a)=>{if((0,u.C)(a,1,2,t,e),null===(a=(0,u.D)(a))[0])return 0;if((0,u.r)(a[0])){const n=await a[0].sumArea((0,s.EI)((0,u.F)(a[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new i.aV(t,i.rH.Cancelled,e);return n}if((0,u.m)(a[0])||(0,u.o)(a[0])){const n=(0,u.E)(a[0],t.spatialReference);return null===n?0:(0,m.Y4)(n,(0,s.EI)((0,u.F)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.Y4)(a[0],(0,s.EI)((0,u.F)(a[1],-1)))}))},n.functions.length=function(t,e){return n.standardFunctionAsync(t,e,(async(n,r,a)=>{if((0,u.C)(a,1,2,t,e),null===(a=(0,u.D)(a))[0])return 0;if((0,u.r)(a[0])){const n=await a[0].sumLength((0,s.Lz)((0,u.F)(a[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new i.aV(t,i.rH.Cancelled,e);return n}if((0,u.m)(a[0])||(0,u.o)(a[0])){const n=(0,u.G)(a[0],t.spatialReference);return null===n?0:(0,m.sz)(n,(0,s.Lz)((0,u.F)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.sz)(a[0],(0,s.Lz)((0,u.F)(a[1],-1)))}))},n.functions.length3d=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if((0,u.C)(a,1,2,t,e),null===(a=(0,u.D)(a))[0])return 0;if((0,u.m)(a[0])||(0,u.o)(a[0])){const n=(0,u.G)(a[0],t.spatialReference);return null===n?0:!0===n.hasZ?A(n,(0,s.Lz)((0,u.F)(a[1],-1))):(0,m.sz)(n,(0,s.Lz)((0,u.F)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return!0===a[0].hasZ?A(a[0],(0,s.Lz)((0,u.F)(a[1],-1))):(0,m.sz)(a[0],(0,s.Lz)((0,u.F)(a[1],-1)))}))},n.functions.lengthgeodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,r,a)=>{if((0,u.C)(a,1,2,t,e),null===(a=(0,u.D)(a))[0])return 0;if((0,u.r)(a[0])){const n=await a[0].sumLength((0,s.Lz)((0,u.F)(a[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new i.aV(t,i.rH.Cancelled,e);return n}if((0,u.m)(a[0])||(0,u.o)(a[0])){const n=(0,u.G)(a[0],t.spatialReference);return null===n?0:(0,m.kQ)(n,(0,s.Lz)((0,u.F)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.kQ)(a[0],(0,s.Lz)((0,u.F)(a[1],-1)))}))},n.functions.distance=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{a=(0,u.D)(a),(0,u.C)(a,2,3,t,e);let o=a[0];((0,u.m)(a[0])||(0,u.o)(a[0]))&&(o=(0,u.H)(a[0],t.spatialReference));let c=a[1];if(((0,u.m)(a[1])||(0,u.o)(a[1]))&&(c=(0,u.H)(a[1],t.spatialReference)),!(o instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);if(!(c instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.TE)(o,c,(0,s.Lz)((0,u.F)(a[2],-1)))}))},n.functions.distancegeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{a=(0,u.D)(a),(0,u.C)(a,2,3,t,e);const o=a[0],c=a[1];if(!(o instanceof g.Z))throw new i.aV(t,i.rH.InvalidParameter,e);if(!(c instanceof g.Z))throw new i.aV(t,i.rH.InvalidParameter,e);const l=new p.Z({paths:[],spatialReference:o.spatialReference});return l.addPath([o,c]),(0,m.kQ)(l,(0,s.Lz)((0,u.F)(a[2],-1)))}))},n.functions.densify=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,3,t,e),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);const o=(0,u.g)(a[1]);if(isNaN(o))throw new i.aV(t,i.rH.InvalidParameter,e);if(o<=0)throw new i.aV(t,i.rH.InvalidParameter,e);return a[0]instanceof w.Z||a[0]instanceof p.Z?(0,m.Cz)(a[0],o,(0,s.Lz)((0,u.F)(a[2],-1))):a[0]instanceof d.Z?(0,m.Cz)(F(a[0]),o,(0,s.Lz)((0,u.F)(a[2],-1))):a[0]}))},n.functions.densifygeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,3,t,e),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);const o=(0,u.g)(a[1]);if(isNaN(o))throw new i.aV(t,i.rH.InvalidParameter,e);if(o<=0)throw new i.aV(t,i.rH.InvalidParameter,e);return a[0]instanceof w.Z||a[0]instanceof p.Z?(0,m.j2)(a[0],o,(0,s.Lz)((0,u.F)(a[2],-1))):a[0]instanceof d.Z?(0,m.j2)(F(a[0]),o,(0,s.Lz)((0,u.F)(a[2],-1))):a[0]}))},n.functions.generalize=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,4,t,e),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);const o=(0,u.g)(a[1]);if(isNaN(o))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.D$)(a[0],o,(0,u.h)((0,u.F)(a[2],!0)),(0,s.Lz)((0,u.F)(a[3],-1)))}))},n.functions.buffer=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,3,t,e),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);const o=(0,u.g)(a[1]);if(isNaN(o))throw new i.aV(t,i.rH.InvalidParameter,e);return 0===o?(0,s.r1)(a[0]):(0,m.f3)(a[0],o,(0,s.Lz)((0,u.F)(a[2],-1)))}))},n.functions.buffergeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,3,t,e),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);const o=(0,u.g)(a[1]);if(isNaN(o))throw new i.aV(t,i.rH.InvalidParameter,e);return 0===o?(0,s.r1)(a[0]):(0,m.rd)(a[0],o,(0,s.Lz)((0,u.F)(a[2],-1)))}))},n.functions.offset=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,6,t,e),null===a[0])return null;if(!(a[0]instanceof w.Z||a[0]instanceof p.Z))throw new i.aV(t,i.rH.InvalidParameter,e);const o=(0,u.g)(a[1]);if(isNaN(o))throw new i.aV(t,i.rH.InvalidParameter,e);const c=(0,u.g)((0,u.F)(a[4],10));if(isNaN(c))throw new i.aV(t,i.rH.InvalidParameter,e);const l=(0,u.g)((0,u.F)(a[5],0));if(isNaN(l))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.cv)(a[0],o,(0,s.Lz)((0,u.F)(a[2],-1)),(0,u.j)((0,u.F)(a[3],"round")).toLowerCase(),c,l)}))},n.functions.rotate=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{a=(0,u.D)(a),(0,u.C)(a,2,3,t,e);let o=a[0];if(null===o)return null;if(!(o instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);o instanceof d.Z&&(o=w.Z.fromExtent(o));const s=(0,u.g)(a[1]);if(isNaN(s))throw new i.aV(t,i.rH.InvalidParameter,e);const c=(0,u.F)(a[2],null);if(null===c)return(0,m.U1)(o,s);if(c instanceof g.Z)return(0,m.U1)(o,s,c);throw new i.aV(t,i.rH.InvalidParameter,e)}))},n.functions.centroid=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,1,1,t,e),null===a[0])return null;let o=a[0];if(((0,u.m)(a[0])||(0,u.o)(a[0]))&&(o=(0,u.H)(a[0],t.spatialReference)),null===o)return null;if(!(o instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return o instanceof g.Z?(0,u.y)((0,s.r1)(a[0]),t.spatialReference):o instanceof w.Z?o.centroid:o instanceof p.Z?(0,l.s9)(o):o instanceof y.Z?(0,l.Ay)(o):o instanceof d.Z?o.center:null}))},n.functions.multiparttosinglepart=function(t,e){return n.standardFunctionAsync(t,e,(async(n,r,a)=>{a=(0,u.D)(a),(0,u.C)(a,1,1,t,e);const o=[];if(null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);if(a[0]instanceof g.Z)return[(0,u.y)((0,s.r1)(a[0]),t.spatialReference)];if(a[0]instanceof d.Z)return[(0,u.y)((0,s.r1)(a[0]),t.spatialReference)];const c=await(0,m.og)(a[0]);if(c instanceof w.Z){const n=[],t=[];for(let e=0;e<c.rings.length;e++)if(c.isClockwise(c.rings[e])){const t=(0,Z.im)({rings:[c.rings[e]],hasZ:!0===c.hasZ,hazM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(t)}else t.push({ring:c.rings[e],pt:c.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(c instanceof p.Z){const n=[];for(let t=0;t<c.paths.length;t++){const e=(0,Z.im)({paths:[c.paths[t]],hasZ:!0===c.hasZ,hazM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(e)}return n}if(a[0]instanceof y.Z){const n=(0,u.y)((0,s.r1)(a[0]),t.spatialReference);for(let t=0;t<n.points.length;t++)o.push(n.getPoint(t));return o}return null}))},n.functions.issimple=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,1,1,t,e),null===a[0])return!0;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.Gg)(a[0])}))},n.functions.simplify=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,1,1,t,e),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.og)(a[0])}))},n.functions.convexhull=function(t,e){return n.standardFunctionAsync(t,e,((n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,1,1,t,e),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new i.aV(t,i.rH.InvalidParameter,e);return(0,m.JI)(a[0])}))},n.functions.getuser=function(t,e){return n.standardFunctionAsync(t,e,(async(n,r,s)=>{(0,u.C)(s,0,2,t,e);let l=(0,u.F)(s[1],""),f=!0===l;if(l=!0===l||!1===l?"":(0,u.j)(l),0===s.length||s[0]instanceof a.Z){let n=null;n=t.services&&t.services.portal?t.services.portal:v.Z.getDefault(),s.length>0&&(n=(0,c._)(s[0],n));const e=await(0,c.q)(n,l,f);if(e){const n=JSON.parse(JSON.stringify(e));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return o.Z.convertObjectToArcadeDictionary(n,(0,u.J)(t))}return null}let d=null;if((0,u.r)(s[0])&&(d=s[0]),d){if(f=!1,l)return null;await d.load();const n=await d.getOwningSystemUrl();if(!n){if(!l){const n=await d.getIdentityUser();return n?o.Z.convertObjectToArcadeDictionary({username:n},(0,u.J)(t)):null}return null}let e=null;e=t.services&&t.services.portal?t.services.portal:v.Z.getDefault(),e=(0,c._)(new a.Z(n),e);const r=await(0,c.q)(e,l,f);if(r){const n=JSON.parse(JSON.stringify(r));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return o.Z.convertObjectToArcadeDictionary(n,(0,u.J)(t))}return null}throw new i.aV(t,i.rH.InvalidParameter,e)}))}),n.functions.nearestcoordinate=function(t,e){return n.standardFunctionAsync(t,e,(async(n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,2,t,e),!(a[0]instanceof h.Z||null===a[0]))throw new i.aV(t,i.rH.InvalidParameter,e);if(!(a[1]instanceof g.Z||null===a[1]))throw new i.aV(t,i.rH.InvalidParameter,e);if(null===a[0]||null===a[1])return null;const s=await(0,m.FH)(a[0],a[1]);return null===s?null:o.Z.convertObjectToArcadeDictionary({coordinate:s.coordinate,distance:s.distance},(0,u.J)(t),!1,!0)}))},n.functions.nearestvertex=function(t,e){return n.standardFunctionAsync(t,e,(async(n,r,a)=>{if(a=(0,u.D)(a),(0,u.C)(a,2,2,t,e),!(a[0]instanceof h.Z||null===a[0]))throw new i.aV(t,i.rH.InvalidParameter,e);if(!(a[1]instanceof g.Z||null===a[1]))throw new i.aV(t,i.rH.InvalidParameter,e);if(null===a[0]||null===a[1])return null;const s=await(0,m._L)(a[0],a[1]);return null===s?null:o.Z.convertObjectToArcadeDictionary({coordinate:s.coordinate,distance:s.distance},(0,u.J)(t),!1,!0)}))}}},26520:(n,t,e)=>{e.d(t,{_:()=>i,q:()=>s});var r=e(40330),a=e(3172),o=e(48522);function i(n,t){return null===n?t:new o.Z({url:n.field("url")})}async function s(n,t,e){const o=r.id?.findCredential(n.restUrl);if(!o)return null;if("loaded"===n.loadStatus&&""===t&&n.user&&n.user.sourceJSON&&!1===e)return n.user.sourceJSON;if(""===t){const t=await(0,a.Z)(n.restUrl+"/community/self",{responseType:"json",query:{f:"json",...!1===e?{}:{returnUserLicenseTypeExtensions:!0}}});if(t.data){const n=t.data;if(n&&n.username)return n}return null}const i=await(0,a.Z)(n.restUrl+"/community/users/"+t,{responseType:"json",query:{f:"json"}});if(i.data){const n=i.data;return n.error?null:n}return null}},99880:(n,t,e)=>{e.d(t,{V:()=>u});var r=e(68773),a=(e(3172),e(20102)),o=e(92604),i=e(17452);const s=o.Z.getLogger("esri.assets");function u(n){if(!r.default.assetsPath)throw s.errorOnce("The API assets location needs to be set using config.assetsPath. More information: https://arcg.is/1OzLe50"),new a.Z("assets:path-not-set","config.assetsPath is not set");return(0,i.v_)(r.default.assetsPath,n)}},10661:(n,t,e)=>{e.d(t,{s:()=>a});var r=e(42100);class a extends r.s{notify(){const n=this._observers;if(n&&n.length>0){const t=n.slice();for(const n of t)n.onInvalidated(),n.onCommitted()}}}},8667:(n,t,e)=>{e.d(t,{CJ:()=>M,Cz:()=>k,D$:()=>R,ED:()=>v,FH:()=>T,G0:()=>C,Gg:()=>A,JI:()=>H,LV:()=>D,Nm:()=>F,Sp:()=>V,TE:()=>y,U1:()=>N,W4:()=>p,Y4:()=>E,_L:()=>x,cv:()=>S,e5:()=>P,f3:()=>z,fS:()=>g,j2:()=>O,jU:()=>m,kK:()=>w,kQ:()=>J,og:()=>I,oq:()=>f,r3:()=>h,rd:()=>b,sz:()=>_,uh:()=>Z,wf:()=>L,z7:()=>d}),e(66577);var r=e(56569),a=e(94139),o=e(33955);function i(n){return Array.isArray(n)?n[0]?.spatialReference:n?.spatialReference}function s(n){return n?Array.isArray(n)?n.map(s):n.toJSON?n.toJSON():n:n}function u(n){return Array.isArray(n)?n.map((n=>(0,o.im)(n))):(0,o.im)(n)}let c;async function l(n,t){return(await async function(){return c||(c=(0,r.bA)("geometryEngineWorker",{strategy:"distributed"})),c}()).invoke("executeGEOperation",{operation:n,parameters:s(t)})}async function f(n,t){return u(await l("clip",[i(n),n,t]))}async function d(n,t){return u(await l("cut",[i(n),n,t]))}function h(n,t){return l("contains",[i(n),n,t])}function m(n,t){return l("crosses",[i(n),n,t])}function y(n,t,e){return l("distance",[i(n),n,t,e])}function g(n,t){return l("equals",[i(n),n,t])}function w(n,t){return l("intersects",[i(n),n,t])}function p(n,t){return l("touches",[i(n),n,t])}function Z(n,t){return l("within",[i(n),n,t])}function v(n,t){return l("disjoint",[i(n),n,t])}function F(n,t){return l("overlaps",[i(n),n,t])}function D(n,t,e){return l("relate",[i(n),n,t,e])}function A(n){return l("isSimple",[i(n),n])}async function I(n){return u(await l("simplify",[i(n),n]))}async function H(n,t=!1){return u(await l("convexHull",[i(n),n,t]))}async function P(n,t){return u(await l("difference",[i(n),n,t]))}async function V(n,t){return u(await l("symmetricDifference",[i(n),n,t]))}async function L(n,t){return u(await l("intersect",[i(n),n,t]))}async function C(n,t=null){const e=function(n,t){let e;return Array.isArray(n)?e=n:(e=[],e.push(n),null!=t&&e.push(t)),e}(n,t);return u(await l("union",[i(e),e]))}async function S(n,t,e,r,a,o){return u(await l("offset",[i(n),n,t,e,r,a,o]))}async function z(n,t,e,r=!1){const a=[i(n),n,t,e,r];return u(await l("buffer",a))}async function b(n,t,e,r,a,o){const s=[i(n),n,t,e,r,a,o];return u(await l("geodesicBuffer",s))}async function T(n,t,e=!0){const r=await l("nearestCoordinate",[i(n),n,t,e]);return{...r,coordinate:a.Z.fromJSON(r.coordinate)}}async function x(n,t){const e=await l("nearestVertex",[i(n),n,t]);return{...e,coordinate:a.Z.fromJSON(e.coordinate)}}async function N(n,t,e){if(null==n)throw new j;const r=n.spatialReference;if(null==(e=e??function(n){return"xmin"in n?n.center:"x"in n?n:n.extent?.center}(n)))throw new j;const a=n.constructor.fromJSON(await l("rotate",[r,n,t,e]));return a.spatialReference=r,a}async function R(n,t,e,r){return u(await l("generalize",[i(n),n,t,e,r]))}async function k(n,t,e){return u(await l("densify",[i(n),n,t,e]))}async function O(n,t,e,r=0){return u(await l("geodesicDensify",[i(n),n,t,e,r]))}function M(n,t){return l("planarArea",[i(n),n,t])}function _(n,t){return l("planarLength",[i(n),n,t])}function E(n,t,e){return l("geodesicArea",[i(n),n,t,e])}function J(n,t,e){return l("geodesicLength",[i(n),n,t,e])}class j extends Error{constructor(){super("Illegal Argument Exception")}}},90344:(n,t,e)=>{e.d(t,{LJ:()=>I,Xr:()=>w,Ze:()=>F,f1:()=>V,i$:()=>H,o8:()=>A,p6:()=>D});var r=e(35454),a=e(70171),o=e(17126);const i={year:void 0,month:void 0,day:void 0,weekday:void 0},s={hour:void 0,minute:void 0,second:void 0},u=Intl.DateTimeFormat().resolvedOptions().timeZone,c={timeZone:"UTC"},l={year:"numeric",month:"numeric",day:"numeric"},f={year:"numeric",month:"long",day:"numeric"},d={year:"numeric",month:"short",day:"numeric"},h={year:"numeric",month:"long",weekday:"long",day:"numeric"},m={hour:"numeric",minute:"numeric"},y={...m,second:"numeric"},g={"short-date":l,"short-date-short-time":{...l,...m},"short-date-short-time-24":{...l,...m,hour12:!1},"short-date-long-time":{...l,...y},"short-date-long-time-24":{...l,...y,hour12:!1},"short-date-le":l,"short-date-le-short-time":{...l,...m},"short-date-le-short-time-24":{...l,...m,hour12:!1},"short-date-le-long-time":{...l,...y},"short-date-le-long-time-24":{...l,...y,hour12:!1},"long-month-day-year":f,"long-month-day-year-short-time":{...f,...m},"long-month-day-year-short-time-24":{...f,...m,hour12:!1},"long-month-day-year-long-time":{...f,...y},"long-month-day-year-long-time-24":{...f,...y,hour12:!1},"day-short-month-year":d,"day-short-month-year-short-time":{...d,...m},"day-short-month-year-short-time-24":{...d,...m,hour12:!1},"day-short-month-year-long-time":{...d,...y},"day-short-month-year-long-time-24":{...d,...y,hour12:!1},"long-date":h,"long-date-short-time":{...h,...m},"long-date-short-time-24":{...h,...m,hour12:!1},"long-date-long-time":{...h,...y},"long-date-long-time-24":{...h,...y,hour12:!1},"long-month-year":{month:"long",year:"numeric"},"short-month-year":{month:"short",year:"numeric"},year:{year:"numeric"},"short-time":m,"long-time":y},w=(0,r.w)()({shortDate:"short-date",shortDateShortTime:"short-date-short-time",shortDateShortTime24:"short-date-short-time-24",shortDateLongTime:"short-date-long-time",shortDateLongTime24:"short-date-long-time-24",shortDateLE:"short-date-le",shortDateLEShortTime:"short-date-le-short-time",shortDateLEShortTime24:"short-date-le-short-time-24",shortDateLELongTime:"short-date-le-long-time",shortDateLELongTime24:"short-date-le-long-time-24",longMonthDayYear:"long-month-day-year",longMonthDayYearShortTime:"long-month-day-year-short-time",longMonthDayYearShortTime24:"long-month-day-year-short-time-24",longMonthDayYearLongTime:"long-month-day-year-long-time",longMonthDayYearLongTime24:"long-month-day-year-long-time-24",dayShortMonthYear:"day-short-month-year",dayShortMonthYearShortTime:"day-short-month-year-short-time",dayShortMonthYearShortTime24:"day-short-month-year-short-time-24",dayShortMonthYearLongTime:"day-short-month-year-long-time",dayShortMonthYearLongTime24:"day-short-month-year-long-time-24",longDate:"long-date",longDateShortTime:"long-date-short-time",longDateShortTime24:"long-date-short-time-24",longDateLongTime:"long-date-long-time",longDateLongTime24:"long-date-long-time-24",longMonthYear:"long-month-year",shortMonthYear:"short-month-year",year:"year"}),p={ar:"ar-u-nu-latn-ca-gregory"};let Z=new WeakMap;const v=g["short-date-short-time"];function F(n){return g[n]}function D(n,t=v){return function(n){let t=Z.get(n);if(!t){const e=(0,a.Kd)(),r=p[e]||e,o=P(n);t=new Intl.DateTimeFormat(r,o),Z.set(n,t)}return t}(t).format(n)}function A(n,t=v){return D(new Date(n),{...t,...c,...s})}function I(n,t=v){return D(new Date(`1970-01-01T${n}Z`),{...t,...c,...i})}function H(n,t=v){const e=o.ou.fromISO(n,{setZone:!0}),r=(0,a.Kd)(),i=p[r]??r,s=P(t);return e.toLocaleString(s,{locale:i})}function P(n){const t=V(n.timeZone??"system");return{...n,timeZone:t}}function V(n){switch(n){case"system":return u;case"unknown":return"UTC";default:return n}}(0,a.Ze)((()=>{Z=new WeakMap}))},94443:(n,t,e)=>{e.d(t,{ME:()=>m,Su:()=>y,tz:()=>h});var r=e(20102),a=e(50758),o=e(95330),i=e(70171);const s=/^([a-z]{2})(?:[-_]([A-Za-z]{2}))?$/,u={ar:!0,bg:!0,bs:!0,ca:!0,cs:!0,da:!0,de:!0,el:!0,en:!0,es:!0,et:!0,fi:!0,fr:!0,he:!0,hr:!0,hu:!0,id:!0,it:!0,ja:!0,ko:!0,lt:!0,lv:!0,nb:!0,nl:!0,pl:!0,"pt-BR":!0,"pt-PT":!0,ro:!0,ru:!0,sk:!0,sl:!0,sr:!0,sv:!0,th:!0,tr:!0,uk:!0,vi:!0,"zh-CN":!0,"zh-HK":!0,"zh-TW":!0};function c(n){return n in u}Object.keys(u);const l=[],f=new Map;function d(n){for(const t of f.keys())g(n.pattern,t)&&f.delete(t)}function h(n){return l.includes(n)||(d(n),l.unshift(n)),(0,a.kB)((()=>{const t=l.indexOf(n);t>-1&&(l.splice(t,1),d(n))}))}async function m(n){const t=(0,i.Kd)();f.has(n)||f.set(n,async function(n,t){const e=[];for(const r of l)if(g(r.pattern,n))try{return await r.fetchMessageBundle(n,t)}catch(n){e.push(n)}if(e.length)throw new r.Z("intl:message-bundle-error",`Errors occurred while loading "${n}"`,{errors:e});throw new r.Z("intl:no-message-bundle-loader",`No loader found for message bundle "${n}"`)}(n,t));const e=f.get(n);return e&&await w.add(e),e}function y(n){if(!s.test(n))return null;const t=s.exec(n);if(null===t)return null;const[,e,r]=t,a=e+(r?"-"+r.toUpperCase():"");return c(a)?a:c(e)?e:null}function g(n,t){return"string"==typeof n?t.startsWith(n):n.test(t)}(0,i.Ze)((()=>{f.clear()}));const w=new class{constructor(){this._numLoading=0,this._dfd=null}async waitForAll(){this._dfd&&await this._dfd.promise}add(n){return this._increase(),n.then((()=>this._decrease()),(()=>this._decrease())),this.waitForAll()}_increase(){this._numLoading++,this._dfd||(this._dfd=(0,o.hh)())}_decrease(){this._numLoading=Math.max(this._numLoading-1,0),this._dfd&&0===this._numLoading&&(this._dfd.resolve(),this._dfd=null)}}},18848:(n,t,e)=>{e.d(t,{sh:()=>s,uf:()=>u});var r=e(70171);const a={ar:"ar-u-nu-latn"};let o=new WeakMap,i={};function s(n={}){const t={};return null!=n.digitSeparator&&(t.useGrouping=n.digitSeparator),null!=n.places&&(t.minimumFractionDigits=t.maximumFractionDigits=n.places),t}function u(n,t){return Object.is(n,-0)&&(n=0),function(n){const t=n||i;if(!o.has(t)){const e=(0,r.Kd)(),i=a[(0,r.Kd)()]||e;o.set(t,new Intl.NumberFormat(i,n))}return o.get(t)}(t).format(n)}(0,r.Ze)((()=>{o=new WeakMap,i={}}))}}]);