@arcgis/core 4.33.0-next.20250504 → 4.33.0-next.20250506

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 (227) hide show
  1. package/applications/Components/analysisUtils.d.ts +3 -0
  2. package/applications/Components/analysisUtils.js +5 -0
  3. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +2 -0
  4. package/applications/KnowledgeStudio/generalSharedKgUtils.js +1 -1
  5. package/assets/esri/core/workers/RemoteClient.js +1 -1
  6. package/assets/esri/core/workers/chunks/29d267b1515c0c2c198a.js +319 -0
  7. package/assets/esri/core/workers/chunks/{d3b0117ad9232e36f785.js → 41cf7d6af26bbe4b3bd5.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{867c6c5b2ee1db977c99.js → 4d7cdce2dac3c74465cc.js} +1 -1
  9. package/assets/esri/core/workers/chunks/62d1e6e7d8685ffc152f.js +1 -0
  10. package/assets/esri/core/workers/chunks/{a6b14665a46c2af5ac11.js → 6d63f884a0775bc66ade.js} +1 -1
  11. package/assets/esri/core/workers/chunks/6eddd5d6b16723a1eeeb.js +1 -0
  12. package/assets/esri/core/workers/chunks/6f261d7593b12fd57b39.js +1 -0
  13. package/assets/esri/core/workers/chunks/7c2ec96749972e0b8a13.js +1 -0
  14. package/assets/esri/core/workers/chunks/{569e9ec636199d1f1744.js → 8551a7b308e700e44a98.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{9d32f41f8f69b8a507c3.js → 8906c3558788153c2645.js} +1 -1
  16. package/assets/esri/core/workers/chunks/897322485e9f04f198ac.js +1 -0
  17. package/assets/esri/core/workers/chunks/a2fd2ea1d0a77d5f3043.js +1 -0
  18. package/assets/esri/core/workers/chunks/{066844a51cd22cbef0e6.js → a683653e4c7f80c62b85.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{c9a2c4fd169b943db4b4.js → ba38736bcc2d389ce75e.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{5c2299f22a69e58cc4dd.js → c62fb93927ebf1c9f368.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{173737c60fa54f7d82bb.js → ca4ced7f468395135247.js} +1 -1
  22. package/assets/esri/core/workers/chunks/cc3ce7cb701c27d0e2d2.js +1 -0
  23. package/assets/esri/core/workers/chunks/{73bca519c93920bc8c9f.js → daedb62b73b747a3a746.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{974742af7beb000c4b4a.js → eb296f38d2448cd65a91.js} +1 -1
  25. package/assets/esri/core/workers/chunks/f3ebd22454c63895f32c.js +1 -0
  26. package/assets/esri/core/workers/chunks/{210e057fe5e66abea984.js → fd21970e55d9569b6ed1.js} +1 -1
  27. package/assets/esri/themes/base/widgets/_ShadowCast.scss +34 -14
  28. package/assets/esri/themes/dark/main.css +1 -1
  29. package/assets/esri/themes/light/main.css +1 -1
  30. package/assets/esri/themes/light/view.css +1 -1
  31. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  32. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  33. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  34. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  35. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  36. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  37. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  38. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  39. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  40. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  41. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  42. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  43. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  44. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  45. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  46. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  47. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  48. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  49. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  50. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  51. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  52. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  53. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  54. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  55. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  56. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  57. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  58. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  59. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  60. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  61. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  62. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  63. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  64. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  65. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  66. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  67. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  68. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  69. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  70. package/assets/esri/widgets/ShadowCast/t9n/ShadowCast.json +1 -1
  71. package/assets/esri/widgets/ShadowCast/t9n/ShadowCast_en.json +1 -1
  72. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ar.json +1 -1
  73. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_bg.json +1 -1
  74. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_bs.json +1 -1
  75. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ca.json +1 -1
  76. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_cs.json +1 -1
  77. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_da.json +1 -1
  78. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_de.json +1 -1
  79. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_el.json +1 -1
  80. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_es.json +1 -1
  81. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_et.json +1 -1
  82. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_fi.json +1 -1
  83. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_fr.json +1 -1
  84. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_he.json +1 -1
  85. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_hr.json +1 -1
  86. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_hu.json +1 -1
  87. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_id.json +1 -1
  88. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_it.json +1 -1
  89. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ja.json +1 -1
  90. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ko.json +1 -1
  91. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_lt.json +1 -1
  92. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_lv.json +1 -1
  93. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_nl.json +1 -1
  94. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_no.json +1 -1
  95. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_pl.json +1 -1
  96. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_pt-BR.json +1 -1
  97. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_pt-PT.json +1 -1
  98. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ro.json +1 -1
  99. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ru.json +1 -1
  100. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_sk.json +1 -1
  101. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_sl.json +1 -1
  102. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_sr.json +1 -1
  103. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_sv.json +1 -1
  104. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_th.json +1 -1
  105. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_tr.json +1 -1
  106. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_uk.json +1 -1
  107. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_vi.json +1 -1
  108. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_zh-CN.json +1 -1
  109. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_zh-HK.json +1 -1
  110. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_zh-TW.json +1 -1
  111. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_ar.json +1 -1
  112. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_bg.json +1 -1
  113. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_bs.json +1 -1
  114. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_ca.json +1 -1
  115. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_cs.json +1 -1
  116. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_da.json +1 -1
  117. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_de.json +1 -1
  118. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_el.json +1 -1
  119. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_es.json +1 -1
  120. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_et.json +1 -1
  121. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_fi.json +1 -1
  122. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_fr.json +1 -1
  123. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_he.json +1 -1
  124. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_hr.json +1 -1
  125. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_hu.json +1 -1
  126. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_id.json +1 -1
  127. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_it.json +1 -1
  128. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_ja.json +1 -1
  129. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_ko.json +1 -1
  130. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_lt.json +1 -1
  131. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_lv.json +1 -1
  132. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_nl.json +1 -1
  133. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_no.json +1 -1
  134. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_pl.json +1 -1
  135. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_pt-BR.json +1 -1
  136. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_pt-PT.json +1 -1
  137. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_ro.json +1 -1
  138. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_ru.json +1 -1
  139. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_sk.json +1 -1
  140. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_sl.json +1 -1
  141. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_sr.json +1 -1
  142. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_sv.json +1 -1
  143. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_th.json +1 -1
  144. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_tr.json +1 -1
  145. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_uk.json +1 -1
  146. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_vi.json +1 -1
  147. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_zh-CN.json +1 -1
  148. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_zh-HK.json +1 -1
  149. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_zh-TW.json +1 -1
  150. package/core/has.js +1 -1
  151. package/core/sql/WhereGrammar.js +1 -1
  152. package/core/workers/workerFactory.js +1 -1
  153. package/editing/sharedTemplates/SharedTemplateProvider.js +1 -1
  154. package/geometry/support/aaBoundingRect.js +1 -1
  155. package/interfaces.d.ts +71 -52
  156. package/layers/FeatureLayer.js +1 -1
  157. package/layers/effects/parser.js +1 -1
  158. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  159. package/layers/graphics/sources/support/QueryTask.js +1 -1
  160. package/package.json +1 -1
  161. package/rest/query/executeForIds.js +1 -1
  162. package/rest/query/executeQueryJSON.js +1 -1
  163. package/rest/query/operations/query.js +1 -1
  164. package/smartMapping/raster/support/utils.d.ts +2 -2
  165. package/support/basemapUtils.js +1 -1
  166. package/support/featureFlags.js +1 -1
  167. package/support/revision.js +1 -1
  168. package/symbols/cim/cimAnalyzer.js +1 -1
  169. package/symbols/cim/constants.js +1 -1
  170. package/views/2d/engine/flow/dataUtils.js +1 -1
  171. package/views/2d/engine/flow/utils.js +1 -1
  172. package/views/2d/engine/webgl/shaderGraph/techniques/createGraphicSymbolMeshSchemas.js +1 -1
  173. package/views/2d/layers/MediaLayerView2D.js +1 -1
  174. package/views/2d/layers/TileLayerView2D.js +1 -1
  175. package/views/2d/layers/features/Processor.js +1 -1
  176. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  177. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  178. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  179. package/views/2d/layers/features/layerAdapters/featureServiceUtils.js +1 -1
  180. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  181. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  182. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  183. package/views/2d/layers/features/sources/strategies/PagedTileLoadStrategy.js +1 -1
  184. package/views/2d/layers/features/sources/strategies/SnapshotLoadStrategy.js +1 -1
  185. package/views/3d/analysis/AnalysisView3D.js +1 -1
  186. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  187. package/views/3d/layers/FlowSubView3D.js +1 -1
  188. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  189. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  190. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  191. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  192. package/views/3d/layers/RouteLayerView3D.js +1 -1
  193. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  194. package/views/3d/layers/SubView3D.js +1 -1
  195. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  196. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  197. package/views/3d/support/flow/StreamlinesResources3D.js +5 -0
  198. package/views/3d/support/flow/StreamlinesStyle3D.js +5 -0
  199. package/views/3d/support/flow/geometryUtils.js +5 -0
  200. package/views/3d/support/flow/loadUtils.js +5 -0
  201. package/views/3d/terrain/Tile.js +1 -1
  202. package/views/3d/terrain/tileUtils.js +1 -1
  203. package/views/VideoView.js +1 -1
  204. package/views/support/LayerLayerViewInfo.js +1 -1
  205. package/views/support/LayerViewManager.js +1 -1
  206. package/views/support/layerViewUtils.js +1 -1
  207. package/widgets/ShadowCast/ShadowCastVisibleElements.js +1 -1
  208. package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
  209. package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
  210. package/widgets/ShadowCast/components/ThresholdConfigurator.js +1 -1
  211. package/widgets/ShadowCast/css.js +1 -1
  212. package/widgets/ShadowCast.js +1 -1
  213. package/widgets/support/AnalysisViewModel.js +1 -1
  214. package/widgets/support/ColorPicker.js +1 -1
  215. package/widgets/support/TimezonePicker.js +1 -1
  216. package/assets/esri/core/workers/chunks/1ca7e0d519ecbfe6976f.js +0 -319
  217. package/assets/esri/core/workers/chunks/2433b22749a088735262.js +0 -1
  218. package/assets/esri/core/workers/chunks/278280121528fa1059de.js +0 -1
  219. package/assets/esri/core/workers/chunks/57fd5a52be41ddd6a11b.js +0 -1
  220. package/assets/esri/core/workers/chunks/710e03feaa25e357f17a.js +0 -1
  221. package/assets/esri/core/workers/chunks/8ddf1b85cff90c34f3e3.js +0 -1
  222. package/assets/esri/core/workers/chunks/b28b699de6deb7e9fa53.js +0 -1
  223. package/assets/esri/core/workers/chunks/c87e2a63b96e0da77dfe.js +0 -1
  224. package/assets/esri/core/workers/chunks/ec778cc7a55068f51937.js +0 -1
  225. package/layers/knowledgeGraph/supportUtils.d.ts +0 -4
  226. package/widgets/ShadowCast/components/Label.js +0 -5
  227. package/widgets/ShadowCast/components/LabeledColorPicker.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{clamp as e}from"../../../core/mathUtils.js";import{abortMaybe as t}from"../../../core/maybe.js";import i from"../../../core/ObjectPool.js";import{d as s,k as n,f as r,h as a,g as l,l as o,c as h}from"../../../chunks/vec32.js";import{create as d,unitZ as u}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../geometry/ellipsoidUtils.js";import{create as g,equals as p}from"../../../geometry/support/aaBoundingRect.js";import{c as f,a as _}from"../../../chunks/sphere.js";import{isGroupLayer as m}from"../../../layers/support/layerUtils.js";import{ElevationBounds as y}from"./ElevationBounds.js";import{ElevationTileAgent as M,isElevationTileAgent as A}from"./ElevationTileAgent.js";import{TextureUpdate as v}from"./interfaces.js";import{LayerClasses as T,LayerClass as E}from"./LayerClass.js";import{MapTileAgent as D,isMapTileAgent as I}from"./MapTileAgent.js";import{NeighborIndex as L}from"./NeighborIndex.js";import{maxPatchTesselation as x}from"./TerrainConst.js";import{isVectorTile as S,isTileTexture as O,isRasterTile as N,isImageWithType as b}from"./TerrainData.js";import{weakAssert as U,isBlendableLayerView as j,oppositeCorner as P,internalAssert as B,enableTerrainInternalChecks as C,neighborEdgeIndices as R,oppositeEdge as w,neighborCornerIndices as V,isNorth as G,isSouth as q,isWest as F,isEast as H,almostEquals as W,enableWaterproofTests as k,isWestCorner as X,isNorthCorner as Y}from"./terrainUtils.js";import{tileAgentDone as z}from"./TileAgent.js";import{TileFrustumVisibility as J}from"./TileFrustumVisibility.js";import{TilePerLayerInfo as $}from"./TilePerLayerInfo.js";import{TileUpdate as Q}from"./TileUpdate.js";import{fallsWithinLayerView as K}from"./tileUtils.js";const Z=.1;class ee{constructor(){this._lij=[0,0,0],this._children=[null,null,null,null],this._pendingUpdates=0,this.renderData=null,this._dirty=!0,this._previouslyRendered=!1,this.extent=g(),this._elevationBoundsMin=NaN,this._elevationBoundsMax=0,this.layerInfo=[[],[]],this.extentInRadians=g(),this.centerAtSeaLevel=d(),this._center=[d(),f(),d()],this.up=u(),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._maxTesselation=0,this._usedMemory=0,this._rasterTileMemory=0,this._vectorTileMemory=0,this._mapDataRefCount=0,this.screenDepth=0,this.renderOrder=0,this._edgeLen=0,this._edgeLen2=0,this._curvatureHeight=0,this.onCompressionFinished=()=>{this.setPendingUpdate(Q.TEXTURE_NOFADING),this.setMemoryDirty()},this.extentMidX=0,this.extentMidY=0,this.distanceToPOI=-1,this._lastPOI=d(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0}get lij(){return this._lij}get spatialReference(){return this._surface.spatialReference??this._surface.tilingScheme.spatialReference}get elevationLevelDelta(){return this._surface.getElevationLevelDelta(this.level)}static prune(){se.prune(0),ne.prune(0),$.prune()}get _cached(){return!this.leaf&&this._mapDataRefCount<=0}get withinClippingArea(){return this._withinClippingArea}get intersectsClippingArea(){return this._intersectsClippingArea}get clippingArea(){return this._clippingArea}get parent(){return this._parent}get children(){return this._children}get surface(){return this._surface}get elevationBoundsMin(){return this._elevationBoundsMin}get elevationBoundsMax(){return this._elevationBoundsMax}get level(){return this._lij[0]}get key(){return`${this._lij[0]}/${this._lij[1]}/${this._lij[2]}`}get edgeLen(){return this._edgeLen}get radius(){return this._center[ae.MIDDLE][3]}get visible(){return this._dirty&&this.computeVisibility(),this._visible}get frustumVisibility(){return this._dirty&&this.computeVisibility(),this._frustumVisibility}computeVisibility(){this._dirty=!1;const e=this.parent,t=e?.frustumVisibility??J.INTERSECTS;this._frustumVisibility=t===J.INSIDE?J.INSIDE:t===J.OUTSIDE?J.OUTSIDE:this._calculateFrustumVisibility(this.surface.frustum);const i=this._frustumVisibility!==J.OUTSIDE&&this._intersectsClippingArea;i!==this._visible&&(this._visible=i,this._surface.emit("tiles-visibility-changed"),this._surface.renderer.setDirty(),this.updateAgentSuspension())}get _loadable(){return this.visible||this._surface.view.state.fixedContentCamera}get rendered(){const e=!!this.renderData;return e!==this._previouslyRendered&&(this._surface.emit("tiles-visibility-changed"),this._previouslyRendered=e,this._surface.renderer.setDirty()),e}init(e,t,i,s,n){this._lij[0]=e,this._lij[1]=t,this._lij[2]=i,this.ellipsoid=c(n.tilingScheme.spatialReference),n.tilingScheme.getExtent(e,t,i,this.extent),n.tilingScheme.convertExtentToRadians(this.extent,this.extentInRadians),this.extentMidX=.5*(this.extent[0]+this.extent[2]),this.extentMidY=.5*(this.extent[1]+this.extent[3]),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._clippingArea=null,this._mapDataRefCount=0,n.upsampleMapCache.pop(this.key),this._edgeLen=0,this._edgeLen2=0,this._center[ae.MIDDLE][3]=0,this.elevationLevel=e,s&&!Number.isNaN(s.elevationBoundsMin)?(this._elevationBoundsMin=s.elevationBoundsMin,this._elevationBoundsMax=s.elevationBoundsMax):(this._elevationBoundsMin=0,this._elevationBoundsMax=0),this._pendingUpdates=0,this.renderData=null,this.screenDepth=0,this._visible=!1,this._previouslyRendered=!1,this._parent=s,this.clearChildren(),this._surface=n,this.updateVisibility(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0;for(const r of T){const e=n.numLayers(r),t=this.layerInfo[r];for(const i of t)i.release();t.length=e;for(let i=0;i<e;i++)t[i]=$.acquire(this._surface.upsampleInfoPool),r===E.ELEVATION&&this.findElevationBoundsForLayer(i,-1)}this.computeElevationBounds(),this._maxTesselation=Math.min(n.tilingScheme.pixelSize,x)}dispose(){null!=this._surface&&(U(!this.renderData,"tile.renderData was not unloaded"),this._surface.upsampleMapCache.pop(this.key),this.layerInfo.forEach((e=>{e.forEach((e=>e.release())),e.length=0})),this._surface=this._parent=null,this.clearChildren(),this.setMemoryDirty())}refMapData(){++this._mapDataRefCount,this._cached||this._surface.upsampleMapCache.pop(this.key)}unrefMapData(){--this._mapDataRefCount,this._cached&&this.cachedMemory>0&&this._surface.upsampleMapCache.put(this.key,this)}setMemoryDirty(){this._usedMemory=0}get usedMemory(){return this._ensureUsedMemory()+(this._cached?0:this._mapTileMemory)}get cachedMemory(){return this._ensureUsedMemory(),null==this._surface?this.usedMemory:this._cached?this._mapTileMemory:0}get _mapTileMemory(){return this._rasterTileMemory+this._vectorTileMemory}get _cpuImageMemorySize(){const e=4,t=this._surface.tilingScheme.pixelSize;return t*t*e}_ensureUsedMemory(){if(this._usedMemory>0)return this._vectorTileMemory=this.layerInfo[E.MAP].reduce(((e,{data:t})=>e+(S(t)?t.usedMemoryPerReference:0)),0),this._usedMemory;this._usedMemory=this._baseUsedMemory,this._rasterTileMemory=0,this._vectorTileMemory=0;for(const{data:e}of this.layerInfo[E.MAP])S(e)?this._vectorTileMemory+=e.usedMemoryPerReference:this._rasterTileMemory+=this.getTerrainDataMemory(e);for(const e of this.layerInfo[E.ELEVATION])this._usedMemory+=e.data?this._cpuImageMemorySize:0;return this.renderData&&(this._usedMemory+=this.renderData.estimatedGeometryMemoryUsage,this._rasterTileMemory+=this.renderData.texture?.cachedMemory??0),this._cached&&this._surface.upsampleMapCache.updateSize(this.key,this),this._usedMemory}getUsedMemoryForLayer(e,t){const i=this.layerInfo[e][t];return i?.data?e===E.MAP?this._cached?0:this.getTerrainDataMemory(i.data):e===E.ELEVATION?this._cpuImageMemorySize:0:0}getTerrainDataMemory(e){return O(e)?e.texture.usedMemory:N(e)?e.memoryUsage:S(e)?e.usedMemoryPerReference:b(e)||e instanceof HTMLImageElement?this._cpuImageMemorySize:0}updateScreenDepth(e){const t=this._center[ae.MIDDLE],i=e,s=t[0],n=t[1],r=t[2],a=i[2]*s+i[6]*n+i[10]*r+i[14];this.screenDepth=a<0?0:a/(i[3]*s+i[7]*n+i[11]*r+i[15])}shouldSplit(e,t,i){if(!this.visible)return Q.NONE;if(e.frustum&&(!this._intersectsClippingArea||this._calculateFrustumVisibility(e.frustum)===J.OUTSIDE))return Q.NONE;const h=this.level;s(ce,_(this._center[ae.MIDDLE]),t);let d=n(ce),u=ce,c=_(this._center[ae.MIDDLE]);s(ge,this._center[ae.TOP],t);const g=n(ge);g<d&&(d=g,u=ge,c=this._center[ae.TOP]),s(pe,this._center[ae.BOTTOM],t);const p=n(pe);if(p<d&&(d=p,u=pe,c=this._center[ae.BOTTOM]),this._edgeLen2>d&&h<e.maxLod)return Q.SPLIT;const f=Math.sqrt(d),m=e.fovX*f*2,y=this._edgeLen/m,M=()=>{if(h<e.maxLod)return this.elevationLevel=h,Q.NONE;const t=h+Math.ceil(-Math.log2(e.relativeWidthLimit/y));return t!==this.elevationLevel?(this.elevationLevel=t,Q.ELEVATION):Q.NONE},A=null!=i?i-h:1/0;if(A<=.5)return M();const v=r(this.up,ce),T=this._elevationBoundsMax-this._elevationBoundsMin,E=T/this.edgeLen;if(e.aboveGround&&v>0&&E<.001){if(v/f-Math.sin(this._curvatureHeight/(this.edgeLen*Math.SQRT1_2)*Math.PI)-E>0)return Q.NONE}const D=null!=i?3-Math.min(A,2):1;if(y*D<e.relativeWidthLimit||h>=e.maxLod)return M();if(h<7)return Q.SPLIT;a(fe,this.up,v),s(fe,fe,u);const I=n(fe);if(I<=this.radius*this.radius)return Q.SPLIT;a(fe,fe,this.radius/Math.sqrt(I)),l(fe,fe,c),s(fe,t,fe);const L=Math.min(1,(Math.abs(r(fe,this.up))+.5*T+this._curvatureHeight)/o(fe)),x=Z/e.angledSplitBias,S=e.fovY*f*2;return L*(this._edgeLen/S*D)<x*e.relativeHeightLimit?Q.NONE:Q.SPLIT}createChildren(){const e=this._children,t=this.lij[0]+1,i=2*this.lij[1],s=2*this.lij[2];return e[0]=this.surface.createTile(t,i,s,this),e[1]=this.surface.createTile(t,i,s+1,this),e[2]=this.surface.createTile(t,i+1,s,this),e[3]=this.surface.createTile(t,i+1,s+1,this),e}clearChildren(){this._children[0]=this._children[1]=this._children[2]=this._children[3]=null}get loaded(){return this.renderData?.hasGeometry??!1}load(){this.refMapData();for(const e of T)this._createOrUpdateAgents(0,e);this.surface.renderer.loadTile(this)}unload(){this.renderData&&this.unrefMapData(),this.surface.renderer.unloadTile(this);for(const e of T){const t=this.layerInfo[e];for(const e of t)e.loadingAgent&&e.loadingAgent!==z&&(ie(e.loadingAgent),e.loadingAgent=null),e.pendingUpdates=0}this.resetPendingUpdate(Q.GEOMETRY),this.resetPendingUpdate(Q.TEXTURE_NOFADING),this.resetPendingUpdate(Q.TEXTURE_FADING)}unloadMapData(){const e=this.layerInfo[E.MAP];for(const t of e)t.loadingAgent&&t.loadingAgent!==z&&(ie(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0,t.invalidateSourceData();this.renderData&&this.renderData.releaseTexture(),this.setMemoryDirty()}updateClippingStatus(e){if(p(e,this._clippingArea))return!1;const t=this._intersectsClippingArea,i=this._withinClippingArea;null!=e?(this._intersectsClippingArea=this.intersectsExtent(e),this._withinClippingArea=this._isWithinExtent(e)):(this._intersectsClippingArea=!0,this._withinClippingArea=!0),this._clippingArea=e,this.updateVisibility();const s=i&&this._withinClippingArea,n=!(i||t||this._withinClippingArea||this._intersectsClippingArea);return!this.renderData||s||n||this.setPendingUpdate(Q.GEOMETRY),!0}updateVisibility(){this._dirty=!0,this._surface.setTileTreeDirty()}getLayerInfo(e,t){return this.layerInfo[t][e]}hasLayerData(e,t){const i=this.layerInfo[t][e];return!(!i?.data||i.dataInvalidated)}get updating(){if(this.hasPendingUpdates)return!0;for(const e of T){const t=this.layerInfo[e];for(const e of t)if(e.loadingAgent&&e.loadingAgent!==z&&e.loadingAgent.updating)return!0}return!1}_isSuspended(e){return!!this.hasPendingUpdate(Q.SPLIT)||e!==E.ELEVATION&&!this._loadable}get hasPendingUpdates(){return 0!==this._pendingUpdates}hasPendingUpdate(e){return(this._pendingUpdates&e)===e}setPendingUpdate(e){const t=this._pendingUpdates;return this._pendingUpdates|=e,e===Q.SPLIT||e===Q.MERGE?this._surface.setTileTreeDirty():this._surface.requestUpdate(),t!==this._pendingUpdates}resetPendingUpdate(e){return!!this.hasPendingUpdate(e)&&(this._pendingUpdates&=~e,!0)}requestLayerData(e,i,s){const n=this.layerInfo[i][e];if(n.waitingAgents.has(s))return console.warn("agent already requested this piece of map data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),i,e),!0;if(n.waitingAgents.push(s),n.data&&!n.dataInvalidated){console.warn("agent requested existing data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),i,e);const t=S(n.data);return s.dataArrived(this,t),!0}if(n.requestPromise)return!0;t(n.requestAbort),n.requestAbort=new AbortController;const r=this._surface.requestTileData(this,e,i,n.requestAbort);if(!r)return n.requestAbort=null,!1;const a=()=>{n.requestPromise===r&&(n.requestPromise=null,n.requestAbort=null)};return n.requestPromise=r,r.then(a,a),!0}get leaf(){return null==this._children[0]}hasLij(e){return this._lij[0]===e[0]&&this._lij[1]===e[1]&&this._lij[2]===e[2]}findByLij(e){if(this.hasLij(e))return this;const t=this._children;if(!t[0])return null;return t[0].findByLij(e)||t[1].findByLij(e)||t[2].findByLij(e)||t[3].findByLij(e)}distanceToSquared(e){return n(s(fe,_(this._center[ae.MIDDLE]),e))}containsPoint(e){const t=this.extent;return e[0]>=t[0]&&e[1]>=t[1]&&e[0]<=t[2]&&e[1]<=t[3]}containsPointXY(e,t){const i=this.extent;return e>=i[0]&&t>=i[1]&&e<=i[2]&&t<=i[3]}unrequestLayerData(e,t,i){const s=this.layerInfo[t][e],n=s.waitingAgents,r=null!=n.removeUnordered(i);U(r,"agent has not requested this piece of map data"),n.length<1&&(s.abortRequest(),this.setMemoryDirty())}dataArrived(e,t,i){const s=S(i),n=this.layerInfo[t][e];n.data=i,n.dataInvalidated=!1,n.waitingAgents.forAll((e=>e.dataArrived(this,s))),n.waitingAgents.clear(),this.setMemoryDirty()}dataMissing(e,t){const i=this.layerInfo[t][e];i.dataMissing=!0,i.waitingAgents.forAll((e=>e.dataMissing())),i.waitingAgents.clear(),this.setMemoryDirty()}updateRenderData(e,t,i){switch(i&&this.forEachLoadedNeighbor((i=>i.updateRenderData(e,t))),e){case E.MAP:return this._updateTexture(t);case E.ELEVATION:return this._updateGeometry()}}_updateTexture(e){this.renderData&&(this.resetPendingUpdate(e===v.FADING?Q.TEXTURE_NOFADING:Q.TEXTURE_FADING),this.setPendingUpdate(e===v.FADING?Q.TEXTURE_FADING:Q.TEXTURE_NOFADING))}_updateGeometry(){this.setPendingUpdate(Q.GEOMETRY);for(const e of this.layerInfo[E.ELEVATION])e.pendingUpdates|=Q.GEOMETRY}invalidateLayerData(e,t){this.layerInfo[t][e].invalidateSourceData(),this.restartAgents(t)}computeElevationBounds(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax;let i=1/0,s=-1/0;const n=this.layerInfo[E.ELEVATION];let r=!0;for(const a of n)null!=a.elevationBounds&&(i=Math.min(i,a.elevationBounds.min),s=Math.max(s,a.elevationBounds.max),a.elevationBounds.hasNoDataValues||(r=!1));r&&(i=Math.min(i,0),s=Math.max(s,0)),e===i&&t===s||(this._elevationBoundsMin=i,this._elevationBoundsMax=s,this.updateRadiusAndCenter(),this._surface.setTileTreeDirty())}_updateCenter(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax,i=.5*(e+t),s=this._center;a(fe,this.up,i),l(_(s[ae.MIDDLE]),this.centerAtSeaLevel,fe),a(fe,this.up,e),l(s[ae.TOP],this.centerAtSeaLevel,fe),a(fe,this.up,t),l(s[ae.BOTTOM],this.centerAtSeaLevel,fe)}findElevationBoundsForLayer(e,t){const i=this.layerInfo[E.ELEVATION][e],s=this.elevationLevelDelta,n=Math.max(this.elevationLevel-s,0),r=i.elevationBounds;if(null!=r&&r.level>=t&&r.level<=n)return;const a=this._surface.layerViewByIndex(e,E.ELEVATION);if(!K(this,a))return;const l=re;let o=!1;const h=i.data;if(h&&h.level<=n){const e=i.data;l.min=e.samplerData.data.minValue,l.max=e.samplerData.data.maxValue,l.hasNoDataValues=e.samplerData.data.hasNoDataValues,l.level=this.level,o=!0}else{let t,i,r=0;for(let a=this._parent;a&&(!i||r<s)&&(r=this.elevationLevel-a.level,t=i||t,i=a.layerInfo[E.ELEVATION][e].data,!(!i&&t&&a.level<=n));a=a.parent);i=i||t,i&&(i.computeMinMaxValue(this._lij[0],this._lij[1],this._lij[2],l),l.min!==1/0&&(l.level=i.level,o=!0))}o&&(null==i.elevationBounds&&(i.elevationBounds=new y),i.elevationBounds.copyFrom(l))}modifyLayers(e,t,i){const s=this.layerInfo[i];for(const a of s)a.loadingAgent&&a.loadingAgent!==z&&(ie(a.loadingAgent),a.loadingAgent=null),a.waitingAgents.clear();for(let a=0;a<s.length;++a)void 0===e[a]&&s[a].release();const n=new Array(...s),r=t.length;s.length=r;for(let a=0;a<r;a++){const e=t[a];s[a]=e>-1?n[e]:$.acquire(this._surface.upsampleInfoPool)}this.setMemoryDirty()}restartAgents(e){this.renderData&&(this._createOrUpdateAgents(0,e),this.updateRenderData(e,v.FADING))}updateAgents(e){if(this.renderData){const t=this.layerInfo[e];for(const e of t)e.loadingAgent===z&&(e.loadingAgent=null);this._createOrUpdateAgents(0,e)}}updateAgentSuspension(){for(const e of T){const t=this._isSuspended(e);for(const i of this.layerInfo[e])i.loadingAgent&&i.loadingAgent!==z&&(i.loadingAgent.setSuspension(t),i.loadingAgent===z&&this.updateRenderData(e,v.FADING))}}removeLayerAgent(e,t){const i=this.layerInfo[t][e];i.loadingAgent&&i.loadingAgent!==z&&i.loadingAgent.dispose(),i.loadingAgent=null}agentDone(e,t){const i=this.layerInfo[t][e];i.loadingAgent=z,i.data||null!=i.upsampleInfo||this._createOrUpdateAgents(e+1,t)}_hasBlendableAncestor(e){return"normal"!==e.blendMode||m(e.parent)&&this._hasBlendableAncestor(e.parent)}_hasBlendModes(e,t,i){for(let s=e;s<t;++s){const e=this._surface.layerViewByIndex(s,i);if(j(e)&&"normal"!==e?.layer?.blendMode||m(e?.layer?.parent)&&this._hasBlendableAncestor(e?.layer?.parent))return!0}return!1}_createOrUpdateAgents(e,t){const i=this.layerInfo[t];if(0===i.length)return;const s=this._isSuspended(t);for(let n=e;n<i.length;++n){const r=i[n],a=this._surface.layerViewByIndex(n,t);let l=!1;if(r.loadingAgent?K(this,a)?(r.loadingAgent!==z&&r.loadingAgent.setSuspension(s),r.loadingAgent!==z&&(l=r.loadingAgent.update())):r.dispose():K(this,a)&&(r.loadingAgent=te(this,n,t,s),l=r.loadingAgent.startLoading(),l?r.loadingAgent===z&&this.setPendingUpdate(Q.GEOMETRY):(ie(r.loadingAgent),r.loadingAgent=z)),r.loadingAgent===z&&this.updateRenderData(t,v.FADING),!this._hasBlendModes(e,i.length,t)&&l&&a.isOpaque)return}}_isWithinExtent(e){const t=this.extent;return t[0]>=e[0]&&e[2]>=t[2]&&t[1]>=e[1]&&e[3]>=t[3]}intersectsExtent(e){const t=this.extent;return t[2]>=e[0]&&e[2]>=t[0]&&t[3]>=e[1]&&e[3]>=t[1]}getElevationVerticesPerSide(t){const i=this.elevationLevel-this.level,s=Math.max(this.level-t,this.elevationLevelDelta-i),n=e(1+(this._maxTesselation>>s),2,this._maxTesselation+1),r=this.minimumVerticesPerSide;return Math.max(n,r)}_findLIJ(e,t){if(!e)return null;const i=this.surface.rootTiles;if(null!=i)for(const s of i)if(le(s,e)){let i=s,n=e[0]-i.level-1;for(;n>=0&&!i.leaf&&!t(i);){const t=e[1]>>n&1,s=e[2]>>n&1;i=i.children[2*t+s],n--}return t(i)?i:null}return null}findNeighborTile(e,t){const i=this._lij,s=this._getNeighborLIJ(i,e);return s?oe(i,s)?t(this)?this:null:this._findLIJ(s,t):null}findCorner(e,t){const i=e===L.NORTH_EAST?1:e===L.NORTH_WEST?0:e===L.SOUTH_WEST?2:3;let s=this;for(;s.children[0]&&(!t||!t(s));)s=s.children[i];return s}findNeighborCornerTileExact(e,t){return this.findNeighborTile(e,(e=>t(e)||e.level===this.level))?.findCorner(P(e),t)||null}forAllSubtreeOnSide(e,t){const i=e===L.NORTH?[0,1]:e===L.NORTH_EAST?[1]:e===L.EAST?[1,3]:e===L.SOUTH_EAST?[3]:e===L.SOUTH?[2,3]:e===L.SOUTH_WEST?[2]:e===L.WEST?[0,2]:[0],s=e=>{const n=e.children;!t(e)&&n[0]&&i.forEach((e=>s(n[e])))};s(this)}getNeighborEdgeStartVertexIndex(e,t){if(!t)return 0;const i=this.level-t.level;if(B(!C||i>=0),0===i)return 0;const s=2**i,n=!(1&~e),r=n?0:1,a=t.lij[r+1]*s,l=this._lij[r+1],o=l-a,h=n?s-1-o:o;return C&&(B(a<=l&&l<a+s),B(0<=h&&h<s)),h}forEachLoadedNeighbor(e){const t=this.level,i=e=>e.level===t||e.loaded;R.forEach((t=>{const s=this.findNeighborTile(t,i);null!=s&&s!==this&&s.forAllSubtreeOnSide(w(t),(i=>!!i.loaded&&(e(i,t),!0)))})),V.forEach((t=>{const s=this.findNeighborTile(t,i)?.findCorner(P(t),(e=>e.loaded));B(!s||he(this,s,t)),s?.loaded&&e(s,t)}))}_getNeighborLIJ(e,t){const i=G(t)?-1:q(t)?1:0,s=F(t)?-1:H(t)?1:0,n=[e[0],e[1]+i,e[2]+s];return n[1]<0?null:this.surface.isGlobal?this._wrapLIJ(n):n[2]<0?null:n}_wrapLIJ(e){return!e||e[1]<0||e[1]>=2**e[0]?null:this.surface.wrapEastWest(e)}isEdgeNeighbor(e,t){if(null==e)return!1;if(0===this.level&&0===e.level){if(this._eastEnd&&e._westEnd&&t===L.EAST)return!0;if(this._westEnd&&e._eastEnd&&t===L.WEST)return!0}const i=Math.max(1e-6*(this.extent[2]-this.extent[0]),1);switch(t){case L.NORTH:return W(this.extent[3],e.extent[1],i);case L.SOUTH:return W(this.extent[1],e.extent[3],i);case L.EAST:return W(this.extent[2],e.extent[0],i)||W(this.extent[2],-e.extent[0],i);case L.WEST:return W(this.extent[0],e.extent[2],i)||W(this.extent[0],-e.extent[2],i)}}get _eastEnd(){return this._lij[2]===this.surface.lijEastEnd(this.level)-1}get _westEnd(){return 0===this._lij[2]}checkGeometryWaterproofness(){k&&(B(this.loaded),this.renderData?.checkGeometryWaterproofness())}shouldHaveNeighbor(e){const t=this.extent,i=this.surface.rootTilesExtent,s=.25*(t[2]-t[0]);if(G(e)&&t[3]+s>=i[3])return!1;if(q(e)&&t[1]-s<=i[1])return!1;const n=this.surface.isGlobal;return!(!n&&F(e)&&t[0]-s<=i[0])&&!(!n&&H(e)&&t[2]+s>=i[2])}updateDistanceToPOI(e){const t=this._lastPOI;if(this.distanceToPOI>=0&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return;h(this._lastPOI,e);const i=this._center[ae.MIDDLE],s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];this.distanceToPOI=s*s+n*n+r*r}}function te(e,t,i,s){const n=i===E.ELEVATION?ne.acquire():se.acquire();return n.init(e,t,i,s),n}function ie(e){e.dispose(),A(e)?ne.release(e):I(e)&&se.release(e)}const se=new i(D),ne=new i(M),re=new y;var ae;function le(e,t){const i=e.lij,s=t[0]-i[0];return!(s<0)&&(t[1]>>s===i[1]&&t[2]>>s===i[2])}function oe(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function he(e,t,i){return null!=e&&null!=t&&t!==e&&(e.level>=t.level?de(e,t,i):de(t,e,P(i)))}function de(e,t,i){B(e.level>=t.level);const s=X(i),n=Y(i),r=e.extent,a=t.extent,l=[s?r[0]:r[2],n?r[3]:r[1]],o=[s?a[2]:a[0],n?a[1]:a[3]],h=1e-5*(r[2]-r[0]),d=W(l[0],o[0],h)||e.surface.isGlobal&&W(l[0],-o[0],h),u=W(l[1],o[1],h);if(d&&u)return!0;if(e.level===t.level)return B(!1),!1;if(!d&&!u)return B(!1),!1;const c=d?ue(a[1],a[3],r[1],r[3],h):ue(a[0],a[2],r[0],r[2],h);return B(c),c}function ue(e,t,i,s,n){return e-n<=i&&i<=s&&s<=t+n}!function(e){e[e.TOP=0]="TOP",e[e.MIDDLE=1]="MIDDLE",e[e.BOTTOM=2]="BOTTOM"}(ae||(ae={}));const ce=d(),ge=d(),pe=d(),fe=d();export{ae as CenterPosition,ee as Tile,he as isCornerNeighbor,oe as lijEquals};
5
+ import{clamp as e}from"../../../core/mathUtils.js";import{abortMaybe as t}from"../../../core/maybe.js";import i from"../../../core/ObjectPool.js";import{d as s,k as n,f as r,h as a,g as l,l as o,c as h}from"../../../chunks/vec32.js";import{create as d,unitZ as u}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../geometry/ellipsoidUtils.js";import{create as g,equals as p}from"../../../geometry/support/aaBoundingRect.js";import{c as f,a as _}from"../../../chunks/sphere.js";import{isGroupLayer as m}from"../../../layers/support/layerUtils.js";import{ElevationBounds as y}from"./ElevationBounds.js";import{ElevationTileAgent as M,isElevationTileAgent as A}from"./ElevationTileAgent.js";import{TextureUpdate as v}from"./interfaces.js";import{LayerClasses as T,LayerClass as E}from"./LayerClass.js";import{MapTileAgent as D,isMapTileAgent as I}from"./MapTileAgent.js";import{NeighborIndex as L}from"./NeighborIndex.js";import{maxPatchTesselation as x}from"./TerrainConst.js";import{isVectorTile as S,isTileTexture as O,isRasterTile as N,isImageWithType as b}from"./TerrainData.js";import{weakAssert as U,isBlendableLayerView as j,oppositeCorner as P,internalAssert as B,enableTerrainInternalChecks as C,neighborEdgeIndices as R,oppositeEdge as w,neighborCornerIndices as V,isNorth as G,isSouth as q,isWest as F,isEast as H,almostEquals as W,enableWaterproofTests as k,isWestCorner as X,isNorthCorner as Y}from"./terrainUtils.js";import{tileAgentDone as z}from"./TileAgent.js";import{TileFrustumVisibility as J}from"./TileFrustumVisibility.js";import{TilePerLayerInfo as $}from"./TilePerLayerInfo.js";import{TileUpdate as Q}from"./TileUpdate.js";import{fallsWithinLayerView as K}from"./tileUtils.js";const Z=.1;class ee{constructor(){this._lij=[0,0,0],this._children=[null,null,null,null],this._pendingUpdates=0,this._dirty=!0,this._previouslyRendered=!1,this.extent=g(),this._elevationBoundsMin=NaN,this._elevationBoundsMax=0,this.layerInfo=[[],[]],this.extentInRadians=g(),this.centerAtSeaLevel=d(),this._center=[d(),f(),d()],this.up=u(),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._maxTesselation=0,this._usedMemory=0,this._rasterTileMemory=0,this._vectorTileMemory=0,this._mapDataRefCount=0,this.screenDepth=0,this.renderOrder=0,this._edgeLen=0,this._edgeLen2=0,this._curvatureHeight=0,this.onCompressionFinished=()=>{this.setPendingUpdate(Q.TEXTURE_NOFADING),this.setMemoryDirty()},this.extentMidX=0,this.extentMidY=0,this.distanceToPOI=-1,this._lastPOI=d(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0}get lij(){return this._lij}get spatialReference(){return this._surface.spatialReference??this._surface.tilingScheme.spatialReference}get elevationLevelDelta(){return this._surface.getElevationLevelDelta(this.level)}static prune(){se.prune(0),ne.prune(0),$.prune()}get _cached(){return!this.leaf&&this._mapDataRefCount<=0}get withinClippingArea(){return this._withinClippingArea}get intersectsClippingArea(){return this._intersectsClippingArea}get clippingArea(){return this._clippingArea}get parent(){return this._parent}get children(){return this._children}get surface(){return this._surface}get elevationBoundsMin(){return this._elevationBoundsMin}get elevationBoundsMax(){return this._elevationBoundsMax}get level(){return this._lij[0]}get key(){return`${this._lij[0]}/${this._lij[1]}/${this._lij[2]}`}get edgeLen(){return this._edgeLen}get radius(){return this._center[ae.MIDDLE][3]}get visible(){return this._dirty&&this.computeVisibility(),this._visible}get frustumVisibility(){return this._dirty&&this.computeVisibility(),this._frustumVisibility}computeVisibility(){this._dirty=!1;const e=this.parent,t=e?.frustumVisibility??J.INTERSECTS;this._frustumVisibility=t===J.INSIDE?J.INSIDE:t===J.OUTSIDE?J.OUTSIDE:this._calculateFrustumVisibility(this.surface.frustum);const i=this._frustumVisibility!==J.OUTSIDE&&this._intersectsClippingArea;i!==this._visible&&(this._visible=i,this._surface.emit("tiles-visibility-changed"),this._surface.renderer.setDirty(),this.updateAgentSuspension())}get _loadable(){return this.visible||this._surface.view.state.fixedContentCamera}get rendered(){const e=!!this.renderData;return e!==this._previouslyRendered&&(this._surface.emit("tiles-visibility-changed"),this._previouslyRendered=e,this._surface.renderer.setDirty()),e}init(e,t,i,s,n){this._lij[0]=e,this._lij[1]=t,this._lij[2]=i,this.ellipsoid=c(n.tilingScheme.spatialReference),n.tilingScheme.getExtent(e,t,i,this.extent),n.tilingScheme.convertExtentToRadians(this.extent,this.extentInRadians),this.extentMidX=.5*(this.extent[0]+this.extent[2]),this.extentMidY=.5*(this.extent[1]+this.extent[3]),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._clippingArea=null,this._mapDataRefCount=0,n.upsampleMapCache.pop(this.key),this._edgeLen=0,this._edgeLen2=0,this._center[ae.MIDDLE][3]=0,this.elevationLevel=e,s&&!Number.isNaN(s.elevationBoundsMin)?(this._elevationBoundsMin=s.elevationBoundsMin,this._elevationBoundsMax=s.elevationBoundsMax):(this._elevationBoundsMin=0,this._elevationBoundsMax=0),this._pendingUpdates=0,this.renderData=null,this.screenDepth=0,this._visible=!1,this._previouslyRendered=!1,this._parent=s,this.clearChildren(),this._surface=n,this.updateVisibility(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0;for(const r of T){const e=n.numLayers(r),t=this.layerInfo[r];for(const i of t)i.release();t.length=e;for(let i=0;i<e;i++)t[i]=$.acquire(this._surface.upsampleInfoPool),r===E.ELEVATION&&this.findElevationBoundsForLayer(i,-1)}this.computeElevationBounds(),this._maxTesselation=Math.min(n.tilingScheme.pixelSize,x)}dispose(){null!=this._surface&&(U(!this.renderData,"tile.renderData was not unloaded"),this._surface.upsampleMapCache.pop(this.key),this.layerInfo.forEach((e=>{e.forEach((e=>e.release())),e.length=0})),this._surface=this._parent=null,this.clearChildren(),this.setMemoryDirty())}refMapData(){++this._mapDataRefCount,this._cached||this._surface.upsampleMapCache.pop(this.key)}unrefMapData(){--this._mapDataRefCount,this._cached&&this.cachedMemory>0&&this._surface.upsampleMapCache.put(this.key,this)}setMemoryDirty(){this._usedMemory=0}get usedMemory(){return this._ensureUsedMemory()+(this._cached?0:this._mapTileMemory)}get cachedMemory(){return this._ensureUsedMemory(),null==this._surface?this.usedMemory:this._cached?this._mapTileMemory:0}get _mapTileMemory(){return this._rasterTileMemory+this._vectorTileMemory}get _cpuImageMemorySize(){const e=4,t=this._surface.tilingScheme.pixelSize;return t*t*e}_ensureUsedMemory(){if(this._usedMemory>0)return this._vectorTileMemory=this.layerInfo[E.MAP].reduce(((e,{data:t})=>e+(S(t)?t.usedMemoryPerReference:0)),0),this._usedMemory;this._usedMemory=this._baseUsedMemory,this._rasterTileMemory=0,this._vectorTileMemory=0;for(const{data:e}of this.layerInfo[E.MAP])S(e)?this._vectorTileMemory+=e.usedMemoryPerReference:this._rasterTileMemory+=this.getTerrainDataMemory(e);for(const e of this.layerInfo[E.ELEVATION])this._usedMemory+=e.data?this._cpuImageMemorySize:0;return this.renderData&&(this._usedMemory+=this.renderData.estimatedGeometryMemoryUsage,this._rasterTileMemory+=this.renderData.texture?.cachedMemory??0),this._cached&&this._surface.upsampleMapCache.updateSize(this.key,this),this._usedMemory}getUsedMemoryForLayer(e,t){const i=this.layerInfo[e][t];return i?.data?e===E.MAP?this._cached?0:this.getTerrainDataMemory(i.data):e===E.ELEVATION?this._cpuImageMemorySize:0:0}getTerrainDataMemory(e){return O(e)?e.texture.usedMemory:N(e)?e.memoryUsage:S(e)?e.usedMemoryPerReference:b(e)||e instanceof HTMLImageElement?this._cpuImageMemorySize:0}updateScreenDepth(e){const t=this._center[ae.MIDDLE],i=e,s=t[0],n=t[1],r=t[2],a=i[2]*s+i[6]*n+i[10]*r+i[14];this.screenDepth=a<0?0:a/(i[3]*s+i[7]*n+i[11]*r+i[15])}shouldSplit(e,t,i){if(!this.visible)return Q.NONE;if(e.frustum&&(!this._intersectsClippingArea||this._calculateFrustumVisibility(e.frustum)===J.OUTSIDE))return Q.NONE;const h=this.level;s(ce,_(this._center[ae.MIDDLE]),t);let d=n(ce),u=ce,c=_(this._center[ae.MIDDLE]);s(ge,this._center[ae.TOP],t);const g=n(ge);g<d&&(d=g,u=ge,c=this._center[ae.TOP]),s(pe,this._center[ae.BOTTOM],t);const p=n(pe);if(p<d&&(d=p,u=pe,c=this._center[ae.BOTTOM]),this._edgeLen2>d&&h<e.maxLod)return Q.SPLIT;const f=Math.sqrt(d),m=e.fovX*f*2,y=this._edgeLen/m,M=()=>{if(h<e.maxLod)return this.elevationLevel=h,Q.NONE;const t=h+Math.ceil(-Math.log2(e.relativeWidthLimit/y));return t!==this.elevationLevel?(this.elevationLevel=t,Q.ELEVATION):Q.NONE},A=null!=i?i-h:1/0;if(A<=.5)return M();const v=r(this.up,ce),T=this._elevationBoundsMax-this._elevationBoundsMin,E=T/this.edgeLen;if(e.aboveGround&&v>0&&E<.001){if(v/f-Math.sin(this._curvatureHeight/(this.edgeLen*Math.SQRT1_2)*Math.PI)-E>0)return Q.NONE}const D=null!=i?3-Math.min(A,2):1;if(y*D<e.relativeWidthLimit||h>=e.maxLod)return M();if(h<7)return Q.SPLIT;a(fe,this.up,v),s(fe,fe,u);const I=n(fe);if(I<=this.radius*this.radius)return Q.SPLIT;a(fe,fe,this.radius/Math.sqrt(I)),l(fe,fe,c),s(fe,t,fe);const L=Math.min(1,(Math.abs(r(fe,this.up))+.5*T+this._curvatureHeight)/o(fe)),x=Z/e.angledSplitBias,S=e.fovY*f*2;return L*(this._edgeLen/S*D)<x*e.relativeHeightLimit?Q.NONE:Q.SPLIT}createChildren(){const e=this._children,t=this.lij[0]+1,i=2*this.lij[1],s=2*this.lij[2];return e[0]=this.surface.createTile(t,i,s,this),e[1]=this.surface.createTile(t,i,s+1,this),e[2]=this.surface.createTile(t,i+1,s,this),e[3]=this.surface.createTile(t,i+1,s+1,this),e}clearChildren(){this._children[0]=this._children[1]=this._children[2]=this._children[3]=null}get loaded(){return this.renderData?.hasGeometry??!1}load(){this.refMapData();for(const e of T)this._createOrUpdateAgents(0,e);this.surface.renderer.loadTile(this)}unload(){this.renderData&&this.unrefMapData(),this.surface.renderer.unloadTile(this);for(const e of T){const t=this.layerInfo[e];for(const e of t)e.loadingAgent&&e.loadingAgent!==z&&(ie(e.loadingAgent),e.loadingAgent=null),e.pendingUpdates=0}this.resetPendingUpdate(Q.GEOMETRY),this.resetPendingUpdate(Q.TEXTURE_NOFADING),this.resetPendingUpdate(Q.TEXTURE_FADING)}unloadMapData(){const e=this.layerInfo[E.MAP];for(const t of e)t.loadingAgent&&t.loadingAgent!==z&&(ie(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0,t.invalidateSourceData();this.renderData&&this.renderData.releaseTexture(),this.setMemoryDirty()}updateClippingStatus(e){if(p(e,this._clippingArea))return!1;const t=this._intersectsClippingArea,i=this._withinClippingArea;null!=e?(this._intersectsClippingArea=this.intersectsExtent(e),this._withinClippingArea=this._isWithinExtent(e)):(this._intersectsClippingArea=!0,this._withinClippingArea=!0),this._clippingArea=e,this.updateVisibility();const s=i&&this._withinClippingArea,n=!(i||t||this._withinClippingArea||this._intersectsClippingArea);return!this.renderData||s||n||this.setPendingUpdate(Q.GEOMETRY),!0}updateVisibility(){this._dirty=!0,this._surface.setTileTreeDirty()}getLayerInfo(e,t){return this.layerInfo[t][e]}hasLayerData(e,t){const i=this.layerInfo[t][e];return!(!i?.data||i.dataInvalidated)}get updating(){if(this.hasPendingUpdates)return!0;for(const e of T){const t=this.layerInfo[e];for(const e of t)if(e.loadingAgent&&e.loadingAgent!==z&&e.loadingAgent.updating)return!0}return!1}_isSuspended(e){return!!this.hasPendingUpdate(Q.SPLIT)||e!==E.ELEVATION&&!this._loadable}get hasPendingUpdates(){return 0!==this._pendingUpdates}hasPendingUpdate(e){return(this._pendingUpdates&e)===e}setPendingUpdate(e){const t=this._pendingUpdates;return this._pendingUpdates|=e,e===Q.SPLIT||e===Q.MERGE?this._surface.setTileTreeDirty():this._surface.requestUpdate(),t!==this._pendingUpdates}resetPendingUpdate(e){return!!this.hasPendingUpdate(e)&&(this._pendingUpdates&=~e,!0)}requestLayerData(e,i,s){const n=this.layerInfo[i][e];if(n.waitingAgents.has(s))return console.warn("agent already requested this piece of map data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),i,e),!0;if(n.waitingAgents.push(s),n.data&&!n.dataInvalidated){console.warn("agent requested existing data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),i,e);const t=S(n.data);return s.dataArrived(this,t),!0}if(n.requestPromise)return!0;t(n.requestAbort),n.requestAbort=new AbortController;const r=this._surface.requestTileData(this,e,i,n.requestAbort);if(!r)return n.requestAbort=null,!1;const a=()=>{n.requestPromise===r&&(n.requestPromise=null,n.requestAbort=null)};return n.requestPromise=r,r.then(a,a),!0}get leaf(){return null==this._children[0]}hasLij(e){return this._lij[0]===e[0]&&this._lij[1]===e[1]&&this._lij[2]===e[2]}findByLij(e){if(this.hasLij(e))return this;const t=this._children;if(!t[0])return null;return t[0].findByLij(e)||t[1].findByLij(e)||t[2].findByLij(e)||t[3].findByLij(e)}distanceToSquared(e){return n(s(fe,_(this._center[ae.MIDDLE]),e))}containsPoint(e){const t=this.extent;return e[0]>=t[0]&&e[1]>=t[1]&&e[0]<=t[2]&&e[1]<=t[3]}containsPointXY(e,t){const i=this.extent;return e>=i[0]&&t>=i[1]&&e<=i[2]&&t<=i[3]}unrequestLayerData(e,t,i){const s=this.layerInfo[t][e],n=s.waitingAgents,r=null!=n.removeUnordered(i);U(r,"agent has not requested this piece of map data"),n.length<1&&(s.abortRequest(),this.setMemoryDirty())}dataArrived(e,t,i){const s=S(i),n=this.layerInfo[t][e];n.data=i,n.dataInvalidated=!1,n.waitingAgents.forAll((e=>e.dataArrived(this,s))),n.waitingAgents.clear(),this.setMemoryDirty()}dataMissing(e,t){const i=this.layerInfo[t][e];i.dataMissing=!0,i.waitingAgents.forAll((e=>e.dataMissing())),i.waitingAgents.clear(),this.setMemoryDirty()}updateRenderData(e,t,i){switch(i&&this.forEachLoadedNeighbor((i=>i.updateRenderData(e,t))),e){case E.MAP:return this._updateTexture(t);case E.ELEVATION:return this._updateGeometry()}}_updateTexture(e){this.renderData&&(this.resetPendingUpdate(e===v.FADING?Q.TEXTURE_NOFADING:Q.TEXTURE_FADING),this.setPendingUpdate(e===v.FADING?Q.TEXTURE_FADING:Q.TEXTURE_NOFADING))}_updateGeometry(){this.setPendingUpdate(Q.GEOMETRY);for(const e of this.layerInfo[E.ELEVATION])e.pendingUpdates|=Q.GEOMETRY}invalidateLayerData(e,t){this.layerInfo[t][e].invalidateSourceData(),this.restartAgents(t)}computeElevationBounds(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax;let i=1/0,s=-1/0;const n=this.layerInfo[E.ELEVATION];let r=!0;for(const a of n)null!=a.elevationBounds&&(i=Math.min(i,a.elevationBounds.min),s=Math.max(s,a.elevationBounds.max),a.elevationBounds.hasNoDataValues||(r=!1));r&&(i=Math.min(i,0),s=Math.max(s,0)),e===i&&t===s||(this._elevationBoundsMin=i,this._elevationBoundsMax=s,this.updateRadiusAndCenter(),this._surface.setTileTreeDirty())}_updateCenter(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax,i=.5*(e+t),s=this._center;a(fe,this.up,i),l(_(s[ae.MIDDLE]),this.centerAtSeaLevel,fe),a(fe,this.up,e),l(s[ae.TOP],this.centerAtSeaLevel,fe),a(fe,this.up,t),l(s[ae.BOTTOM],this.centerAtSeaLevel,fe)}findElevationBoundsForLayer(e,t){const i=this.layerInfo[E.ELEVATION][e],s=this.elevationLevelDelta,n=Math.max(this.elevationLevel-s,0),r=i.elevationBounds;if(null!=r&&r.level>=t&&r.level<=n)return;const a=this._surface.layerViewByIndex(e,E.ELEVATION);if(!K(this,a))return;const l=re;let o=!1;const h=i.data;if(h&&h.level<=n){const e=i.data;l.min=e.samplerData.data.minValue,l.max=e.samplerData.data.maxValue,l.hasNoDataValues=e.samplerData.data.hasNoDataValues,l.level=this.level,o=!0}else{let t,i,r=0;for(let a=this._parent;a&&(!i||r<s)&&(r=this.elevationLevel-a.level,t=i||t,i=a.layerInfo[E.ELEVATION][e].data,!(!i&&t&&a.level<=n));a=a.parent);i=i||t,i&&(i.computeMinMaxValue(this._lij[0],this._lij[1],this._lij[2],l),l.min!==1/0&&(l.level=i.level,o=!0))}o&&(null==i.elevationBounds&&(i.elevationBounds=new y),i.elevationBounds.copyFrom(l))}modifyLayers(e,t,i){const s=this.layerInfo[i];for(const a of s)a.loadingAgent&&a.loadingAgent!==z&&(ie(a.loadingAgent),a.loadingAgent=null),a.waitingAgents.clear();for(let a=0;a<s.length;++a)void 0===e[a]&&s[a].release();const n=new Array(...s),r=t.length;s.length=r;for(let a=0;a<r;a++){const e=t[a];s[a]=e>-1?n[e]:$.acquire(this._surface.upsampleInfoPool)}this.setMemoryDirty()}restartAgents(e){this.renderData&&(this._createOrUpdateAgents(0,e),this.updateRenderData(e,v.FADING))}updateAgents(e){if(this.renderData){const t=this.layerInfo[e];for(const e of t)e.loadingAgent===z&&(e.loadingAgent=null);this._createOrUpdateAgents(0,e)}}updateAgentSuspension(){for(const e of T){const t=this._isSuspended(e);for(const i of this.layerInfo[e])i.loadingAgent&&i.loadingAgent!==z&&(i.loadingAgent.setSuspension(t),i.loadingAgent===z&&this.updateRenderData(e,v.FADING))}}removeLayerAgent(e,t){const i=this.layerInfo[t][e];i.loadingAgent&&i.loadingAgent!==z&&i.loadingAgent.dispose(),i.loadingAgent=null}agentDone(e,t){const i=this.layerInfo[t][e];i.loadingAgent=z,i.data||null!=i.upsampleInfo||this._createOrUpdateAgents(e+1,t)}_hasBlendableAncestor(e){return"normal"!==e.blendMode||m(e.parent)&&this._hasBlendableAncestor(e.parent)}_hasBlendModes(e,t,i){for(let s=e;s<t;++s){const e=this._surface.layerViewByIndex(s,i);if(j(e)&&"normal"!==e?.layer?.blendMode||m(e?.layer?.parent)&&this._hasBlendableAncestor(e?.layer?.parent))return!0}return!1}_createOrUpdateAgents(e,t){const i=this.layerInfo[t];if(0===i.length)return;const s=this._isSuspended(t);for(let n=e;n<i.length;++n){const r=i[n],a=this._surface.layerViewByIndex(n,t);let l=!1;if(r.loadingAgent?K(this,a)?(r.loadingAgent!==z&&r.loadingAgent.setSuspension(s),r.loadingAgent!==z&&(l=r.loadingAgent.update())):r.dispose():K(this,a)&&(r.loadingAgent=te(this,n,t,s),l=r.loadingAgent.startLoading(),l?r.loadingAgent===z&&this.setPendingUpdate(Q.GEOMETRY):(ie(r.loadingAgent),r.loadingAgent=z)),r.loadingAgent===z&&this.updateRenderData(t,v.FADING),!this._hasBlendModes(e,i.length,t)&&l&&a.isOpaque)return}}_isWithinExtent(e){const t=this.extent;return t[0]>=e[0]&&e[2]>=t[2]&&t[1]>=e[1]&&e[3]>=t[3]}intersectsExtent(e){const t=this.extent;return t[2]>=e[0]&&e[2]>=t[0]&&t[3]>=e[1]&&e[3]>=t[1]}getElevationVerticesPerSide(t){const i=this.elevationLevel-this.level,s=Math.max(this.level-t,this.elevationLevelDelta-i),n=e(1+(this._maxTesselation>>s),2,this._maxTesselation+1),r=this.minimumVerticesPerSide;return Math.max(n,r)}_findLIJ(e,t){if(!e)return null;const i=this.surface.rootTiles;if(null!=i)for(const s of i)if(le(s,e)){let i=s,n=e[0]-i.level-1;for(;n>=0&&!i.leaf&&!t(i);){const t=e[1]>>n&1,s=e[2]>>n&1;i=i.children[2*t+s],n--}return t(i)?i:null}return null}findNeighborTile(e,t){const i=this._lij,s=this._getNeighborLIJ(i,e);return s?oe(i,s)?t(this)?this:null:this._findLIJ(s,t):null}findCorner(e,t){const i=e===L.NORTH_EAST?1:e===L.NORTH_WEST?0:e===L.SOUTH_WEST?2:3;let s=this;for(;s.children[0]&&(!t||!t(s));)s=s.children[i];return s}findNeighborCornerTileExact(e,t){return this.findNeighborTile(e,(e=>t(e)||e.level===this.level))?.findCorner(P(e),t)||null}forAllSubtreeOnSide(e,t){const i=e===L.NORTH?[0,1]:e===L.NORTH_EAST?[1]:e===L.EAST?[1,3]:e===L.SOUTH_EAST?[3]:e===L.SOUTH?[2,3]:e===L.SOUTH_WEST?[2]:e===L.WEST?[0,2]:[0],s=e=>{const n=e.children;!t(e)&&n[0]&&i.forEach((e=>s(n[e])))};s(this)}getNeighborEdgeStartVertexIndex(e,t){if(!t)return 0;const i=this.level-t.level;if(B(!C||i>=0),0===i)return 0;const s=2**i,n=!(1&~e),r=n?0:1,a=t.lij[r+1]*s,l=this._lij[r+1],o=l-a,h=n?s-1-o:o;return C&&(B(a<=l&&l<a+s),B(0<=h&&h<s)),h}forEachLoadedNeighbor(e){const t=this.level,i=e=>e.level===t||e.loaded;R.forEach((t=>{const s=this.findNeighborTile(t,i);null!=s&&s!==this&&s.forAllSubtreeOnSide(w(t),(i=>!!i.loaded&&(e(i,t),!0)))})),V.forEach((t=>{const s=this.findNeighborTile(t,i)?.findCorner(P(t),(e=>e.loaded));B(!s||he(this,s,t)),s?.loaded&&e(s,t)}))}_getNeighborLIJ(e,t){const i=G(t)?-1:q(t)?1:0,s=F(t)?-1:H(t)?1:0,n=[e[0],e[1]+i,e[2]+s];return n[1]<0?null:this.surface.isGlobal?this._wrapLIJ(n):n[2]<0?null:n}_wrapLIJ(e){return!e||e[1]<0||e[1]>=2**e[0]?null:this.surface.wrapEastWest(e)}isEdgeNeighbor(e,t){if(null==e)return!1;if(0===this.level&&0===e.level){if(this._eastEnd&&e._westEnd&&t===L.EAST)return!0;if(this._westEnd&&e._eastEnd&&t===L.WEST)return!0}const i=Math.max(1e-6*(this.extent[2]-this.extent[0]),1);switch(t){case L.NORTH:return W(this.extent[3],e.extent[1],i);case L.SOUTH:return W(this.extent[1],e.extent[3],i);case L.EAST:return W(this.extent[2],e.extent[0],i)||W(this.extent[2],-e.extent[0],i);case L.WEST:return W(this.extent[0],e.extent[2],i)||W(this.extent[0],-e.extent[2],i)}}get _eastEnd(){return this._lij[2]===this.surface.lijEastEnd(this.level)-1}get _westEnd(){return 0===this._lij[2]}checkGeometryWaterproofness(){k&&(B(this.loaded),this.renderData?.checkGeometryWaterproofness())}shouldHaveNeighbor(e){const t=this.extent,i=this.surface.rootTilesExtent,s=.25*(t[2]-t[0]);if(G(e)&&t[3]+s>=i[3])return!1;if(q(e)&&t[1]-s<=i[1])return!1;const n=this.surface.isGlobal;return!(!n&&F(e)&&t[0]-s<=i[0])&&!(!n&&H(e)&&t[2]+s>=i[2])}updateDistanceToPOI(e){const t=this._lastPOI;if(this.distanceToPOI>=0&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return;h(this._lastPOI,e);const i=this._center[ae.MIDDLE],s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];this.distanceToPOI=s*s+n*n+r*r}}function te(e,t,i,s){const n=i===E.ELEVATION?ne.acquire():se.acquire();return n.init(e,t,i,s),n}function ie(e){e.dispose(),A(e)?ne.release(e):I(e)&&se.release(e)}const se=new i(D),ne=new i(M),re=new y;var ae;function le(e,t){const i=e.lij,s=t[0]-i[0];return!(s<0)&&(t[1]>>s===i[1]&&t[2]>>s===i[2])}function oe(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function he(e,t,i){return null!=e&&null!=t&&t!==e&&(e.level>=t.level?de(e,t,i):de(t,e,P(i)))}function de(e,t,i){B(e.level>=t.level);const s=X(i),n=Y(i),r=e.extent,a=t.extent,l=[s?r[0]:r[2],n?r[3]:r[1]],o=[s?a[2]:a[0],n?a[1]:a[3]],h=1e-5*(r[2]-r[0]),d=W(l[0],o[0],h)||e.surface.isGlobal&&W(l[0],-o[0],h),u=W(l[1],o[1],h);if(d&&u)return!0;if(e.level===t.level)return B(!1),!1;if(!d&&!u)return B(!1),!1;const c=d?ue(a[1],a[3],r[1],r[3],h):ue(a[0],a[2],r[0],r[2],h);return B(c),c}function ue(e,t,i,s,n){return e-n<=i&&i<=s&&s<=t+n}!function(e){e[e.TOP=0]="TOP",e[e.MIDDLE=1]="MIDDLE",e[e.BOTTOM=2]="BOTTOM"}(ae||(ae={}));const ce=d(),ge=d(),pe=d(),fe=d();export{ae as CenterPosition,ee as Tile,he as isCornerNeighbor,oe as lijEquals};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../../core/PooledArray.js";import{RenderOrder as e}from"./RenderOrder.js";import{isImageryTileLayerView as n}from"./terrainUtils.js";class r{constructor(){this._queue=new t,this.remove=()=>{}}get done(){return 0===this._queue.length&&(!this._last||this._last.leaf)}resetOne(t){this._queue.clear(),this._queue.push(t),this._last=void 0}reset(t=null){this._queue.clear(),null!=t&&this._queue.pushArray(t),this._last=void 0}skipSubtree(){this._last=void 0}next(){const t=this._last?.children;return t?.[0]&&this._queue.pushArray(t),this._last=this._queue.pop(),this._last}}class i{constructor(){this._q=new t}get done(){return 0===this._q.length}reset(t){if(this._q.clear(),null!=t){this._q.pushArray(t);for(let t=0;t<this._q.length;++t){const e=this._q.data[t];e.leaf||this._q.pushArray(e.children)}}}next(){return this._q.pop()}}function l(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)s(t[n],e);else s(t,e)}function s(t,e){if(e(t),!t.leaf)for(const n of t.children)s(n,e)}function o(t,e){if(null==e)return!1;const n=u(e);if(null==n?.fullExtent)return!1;const r=n.fullExtent,i=t.extent;if(r.xmin>i[2]||r.ymin>i[3]||r.xmax<i[0]||r.ymax<i[1])return!1;const l=t.surface.tilingScheme.levels[t.level].scale,s=n.minScale;if(s>0&&l>1.00000001*s)return!1;const o=n.maxScale;return!(o>0&&l<.99999999*o)}function u(t){return n(t)?{fullExtent:t.fullExtent,minScale:t.layer.minScale,maxScale:t.layer.maxScale}:t.layer}function c(t){return!n(t)&&t.layer&&"tilemapCache"in t.layer?t.layer.tilemapCache:null}function a(t,e){const n=t.lij,r=e.lij;return n[0]-r[0]||n[1]-r[1]||n[2]-r[2]}function f(t,n,r=null){null==r||0===r.length?t===e.BACK_TO_FRONT?n.sort(h):n.sort(p):n.sort(((e,n)=>m(e,n,t,r)))}function h(t,e){const n=e.screenDepth-t.screenDepth;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function p(t,e){const n=t.screenDepth-e.screenDepth;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function _(t,e,n){const r=t.screenDepth,i=e.screenDepth;return r<i?-n:r>i?n:a(t,e)}function m(t,e,n,r){return d(t,r)===d(e,r)?_(t,e,n):t?n:-n}function d(t,e){for(const n of e)if(t.intersectsExtent(n))return!0;return!1}function q(t,e){const n=t.distanceToPOI-e.distanceToPOI;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function x(t,e){const n=t.length;for(let r=0;r<n;++r){t.at(r).updateDistanceToPOI(e)}t.sort(q)}function y(t,e,n){let r=1,i=0,l=0;for(;t!==e;)if(r*=.5,i*=.5,l*=.5,1&t.lij[2]&&(i+=.5),1&t.lij[1]||(l+=.5),null==(t=t.parent))throw new Error("tile was not a descendant of upsampleTile");n.init(e,i,l,r)}function j(t){for(let e=0;e<t.length;e++){const n=t[e],r=n.parent;if(r)for(let t=0;t<4;t++){const e=r.children[t];if(e&&e!==n)return!0}}return!1}function g(t,e){if(!t||!e||t[0]===e[0])return!1;const n=t[0]<e[0],r=n?t:e,i=n?e:t,l=1<<i[0]-r[0];return Math.floor(i[1]/l)===r[1]&&Math.floor(i[2]/l)===r[2]}export{i as IteratorPostorder,r as IteratorPreorder,_ as compareTiles,a as compareTilesByLij,m as compareTilesWithStencil,y as computeUpsampleInfo,o as fallsWithinLayerView,c as getTileMapCache,j as hasLoadableSiblings,f as sortTiles,x as sortTilesByPOI,g as tilesAreRelated,l as traverseTilesPreorder};
5
+ import t from"../../../core/PooledArray.js";import{RenderOrder as e}from"./RenderOrder.js";import{isImageryTileLayerView as n}from"./terrainUtils.js";class r{constructor(){this._queue=new t,this.remove=()=>{}}get done(){return 0===this._queue.length&&(!this._last||this._last.leaf)}resetOne(t){this._queue.clear(),this._queue.push(t),this._last=void 0}reset(t=null){this._queue.clear(),null!=t&&this._queue.pushArray(t),this._last=void 0}skipSubtree(){this._last=void 0}next(){const t=this._last?.children;return t?.[0]&&this._queue.pushArray(t),this._last=this._queue.pop(),this._last}}class i{constructor(){this._q=new t}get done(){return 0===this._q.length}reset(t){if(this._q.clear(),null!=t){this._q.pushArray(t);for(let t=0;t<this._q.length;++t){const e=this._q.data[t];e.leaf||this._q.pushArray(e.children)}}}next(){return this._q.pop()}}function l(t,e,n=()=>!0){if(Array.isArray(t))for(let r=0;r<t.length;r++)s(t[r],e,n);else s(t,e,n)}function s(t,e,n=()=>!0){if(e(t),!t.leaf&&n(t))for(const r of t.children)s(r,e)}function o(t,e){if(null==e)return!1;const n=u(e);if(null==n?.fullExtent)return!1;const r=n.fullExtent,i=t.extent;if(r.xmin>i[2]||r.ymin>i[3]||r.xmax<i[0]||r.ymax<i[1])return!1;const l=t.surface.tilingScheme.levels[t.level].scale,s=n.minScale;if(s>0&&l>1.00000001*s)return!1;const o=n.maxScale;return!(o>0&&l<.99999999*o)}function u(t){return n(t)?{fullExtent:t.fullExtent,minScale:t.layer.minScale,maxScale:t.layer.maxScale}:t.layer}function c(t){return!n(t)&&t.layer&&"tilemapCache"in t.layer?t.layer.tilemapCache:null}function a(t,e){const n=t.lij,r=e.lij;return n[0]-r[0]||n[1]-r[1]||n[2]-r[2]}function f(t,n,r=null){null==r||0===r.length?t===e.BACK_TO_FRONT?n.sort(h):n.sort(p):n.sort(((e,n)=>m(e,n,t,r)))}function h(t,e){const n=e.screenDepth-t.screenDepth;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function p(t,e){const n=t.screenDepth-e.screenDepth;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function _(t,e,n){const r=t.screenDepth,i=e.screenDepth;return r<i?-n:r>i?n:a(t,e)}function m(t,e,n,r){return d(t,r)===d(e,r)?_(t,e,n):t?n:-n}function d(t,e){for(const n of e)if(t.intersectsExtent(n))return!0;return!1}function q(t,e){const n=t.distanceToPOI-e.distanceToPOI;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function x(t,e){const n=t.length;for(let r=0;r<n;++r){t.at(r).updateDistanceToPOI(e)}t.sort(q)}function y(t,e,n){let r=1,i=0,l=0;for(;t!==e;)if(r*=.5,i*=.5,l*=.5,1&t.lij[2]&&(i+=.5),1&t.lij[1]||(l+=.5),null==(t=t.parent))throw new Error("tile was not a descendant of upsampleTile");n.init(e,i,l,r)}function j(t){for(let e=0;e<t.length;e++){const n=t[e],r=n.parent;if(r)for(let t=0;t<4;t++){const e=r.children[t];if(e&&e!==n)return!0}}return!1}function g(t,e){if(!t||!e||t[0]===e[0])return!1;const n=t[0]<e[0],r=n?t:e,i=n?e:t,l=1<<i[0]-r[0];return Math.floor(i[1]/l)===r[1]&&Math.floor(i[2]/l)===r[2]}export{i as IteratorPostorder,r as IteratorPreorder,_ as compareTiles,a as compareTilesByLij,m as compareTilesWithStencil,y as computeUpsampleInfo,o as fallsWithinLayerView,c as getTileMapCache,j as hasLoadableSiblings,f as sortTiles,x as sortTilesByPOI,g as tilesAreRelated,l as traverseTilesPreorder};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../Color.js";import i from"../Viewpoint.js";import s from"../core/Accessor.js";import r from"../core/Evented.js";import{destroyMaybe as o}from"../core/maybe.js";import n from"../core/Promise.js";import{watch as a,whenOnce as m,initial as p,syncAndInitial as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import{ensureClass as g}from"../core/accessorSupport/ensureType.js";import f from"../geometry/Extent.js";import j from"../geometry/Point.js";import y from"../geometry/SpatialReference.js";import u from"../layers/support/ExtentAndRotationGeoreference.js";import{MediaElementView as w}from"../layers/support/MediaElementView.js";import b from"../layers/support/TileInfo.js";import v from"../layers/support/VideoElement.js";import{DOMContainer as M}from"./DOMContainer.js";import{Viewport2DMixin as _}from"./Viewport2DMixin.js";import x from"./2d/AnimationManager.js";import C from"./2d/MapViewConstraints.js";import"../core/Error.js";import"../core/scheduling.js";import"../core/Logger.js";import"../core/accessorSupport/tracking/Flags.js";import"../core/colorUtils.js";import"../config.js";import"../symbols/cim/defaultCIMValues.js";import"../symbols/cim/enums.js";import"../core/floatRGBA.js";import"../geometry/Geometry.js";import"../geometry/Multipoint.js";import"../geometry/Polygon.js";import"../geometry/Polyline.js";import"./2d/engine/webgl/definitions.js";import"./2d/engine/webgl/animations/instructions.js";import"../core/mathUtils.js";import"../symbols/Font.js";import"../core/ObjectPool.js";import"../geometry/support/Axis.js";import"../geometry/support/spatialReferenceUtils.js";import"../geometry/support/TileClipper.js";import"../symbols/cim/effects/EffectAddControlPoints.js";import"../symbols/cim/effects/EffectArrow.js";import"../symbols/cim/effects/EffectBuffer.js";import"../symbols/cim/effects/EffectControlMeasureLine.js";import"../symbols/cim/effects/EffectCut.js";import"../symbols/cim/effects/EffectDashes.js";import"../symbols/cim/effects/EffectDonut.js";import"../symbols/cim/effects/EffectEnclosingPolygon.js";import"../symbols/cim/effects/EffectJog.js";import"../symbols/cim/effects/EffectMove.js";import"../symbols/cim/effects/EffectOffset.js";import"../symbols/cim/effects/EffectRadial.js";import"../symbols/cim/effects/EffectReverse.js";import"../symbols/cim/effects/EffectRotate.js";import"../symbols/cim/effects/EffectScale.js";import"../symbols/cim/effects/EffectSuppress.js";import"../symbols/cim/effects/EffectTaperedPolygon.js";import"../symbols/cim/effects/EffectWave.js";import"../symbols/cim/placements/PlacementAlongLineSameSize.js";import"../symbols/cim/placements/PlacementAtExtremities.js";import"../symbols/cim/placements/PlacementAtRatioPositions.js";import"../symbols/cim/placements/PlacementInsidePolygon.js";import"../symbols/cim/placements/PlacementOnLine.js";import"../symbols/cim/placements/PlacementOnVertices.js";import"../symbols/cim/placements/PlacementPolygonCenter.js";import"../core/libs/gl-matrix-2/factories/vec2f32.js";import"./2d/engine/webgl/alignmentUtils.js";import"../symbols/support/defaults.js";import"../symbols/cim/OverrideHelper.js";import"../layers/effects/EffectView.js";import"./2d/engine/transitions/FadeTransition.js";import"./2d/engine/webgl/enums.js";import"../core/libs/gl-matrix-2/factories/vec4f32.js";import"./webgl/enums.js";import"./2d/engine/webgl/shaders/BackgroundPrograms.js";import"./webgl/checkWebGLError.js";import"./2d/engine/webgl/DefaultVertexAttributeLayouts.js";import"./2d/engine/webgl/AFeatureTile.js";import"./2d/engine/webgl/DisplayEntity.js";import"./2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"./2d/engine/webgl/cpuMapped/MappedMesh.js";import"./2d/engine/webgl/number.js";import"./2d/engine/webgl/shaders/TileInfoPrograms.js";import"./webgl/Texture.js";import"./webgl/FBOAttachmentType.js";import"./2d/engine/vectorTiles/style/StyleDefinition.js";import"./2d/engine/vectorTiles/enums.js";import"./2d/engine/webgl/shaders/BitBlitPrograms.js";import"../request.js";import"../core/urlUtils.js";import"../core/pbf.js";import"./2d/engine/webgl/shaders/StencilPrograms.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueType.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js";import"./2d/engine/webgl/shaders/HighlightPrograms.js";import"./webgl/FramebufferObject.js";import"./2d/engine/webgl/meshing/SimpleMesh.js";import"./2d/engine/webgl/PooledUint32Array.js";import"./2d/engine/webgl/Profiler.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/constants.js";import"./2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js";import"../geometry/support/aaBoundingBox.js";import"./2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js";import"../arcade/ArcadeDate.js";import"../intl/locale.js";import"luxon";import"../core/sql/UnknownTimeZone.js";import"../layers/support/fieldUtils.js";import"../time/constants.js";import"./2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js";import"./webgl/renderState.js";import"./3d/webgl-engine/core/shaderModules/glsl.js";import"./webgl/testSVGPremultipliedAlpha.js";import"./2d/LabelManager.js";import"./2d/layers/graphics/GraphicsView2D.js";import"../chunks/earcut.js";import"../core/libs/gl-matrix-2/factories/vec3f32.js";import"../geometry/support/normalizeUtilsCommon.js";import"../geometry/support/Ellipsoid.js";import"../kernel.js";import"./2d/layers/support/util.js";import G from"./2d/navigation/MapViewNavigation.js";import"../core/asyncUtils.js";import"../core/support/UpdatingHandles.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../core/unitUtils.js";import"../geometry/ellipsoidUtils.js";import"../chunks/pe.js";import"../geometry/projection/projectors.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../geometry/support/geodesicConstants.js";import{ViewStateManager as S}from"./2d/ViewStateManager.js";import E from"./2d/engine/webgl/Overlay.js";import P from"./2d/engine/webgl/OverlayContainer.js";import q from"./navigation/Navigation.js";import V from"./ui/DefaultUI.js";import R from"./ui/2d/DefaultUI2D.js";const T=new t("#000");let O;async function W(){const[,{Stage:e}]=await Promise.all([import("./2d/webglDeps.js"),import("./2d/mapViewDeps.js")]);O=e}const k=.01;let z=class extends s{};z=e([h("esri.views.VideoView.Base")],z);let A=class extends(_(M(r.EventedMixin(n.EsriPromiseMixin(z))))){constructor(e){super(e),this._isValid=!1,this.stage=null,this.layer=null,this.navigation=new q,this.ready=!1,this.spatialReference=new y({wkid:0}),this.stateManager=new S({constraints:new C({view:this,minScale:1,maxScale:k})}),this.type="2d",this.ui=new R,this.view2dType="video",this.addHandles([a((()=>this.preconditionsReady),(e=>e?this._startup():this._teardown())),a((()=>this.layer),(()=>this.addResolvingPromise(m((()=>this.ready)))),p),a((()=>[this.layer?.effect,this._overlayContainer,this.effect]),(()=>{this._overlayContainer&&(this._overlayContainer.effect=this.effect??this.layer?.effect??null)}),l),a((()=>this.videoSize),(([e,t])=>{this._extent&&e&&t&&(this._extent.xmax=e,this._extent.ymax=t)}))])}initialize(){this.addResolvingPromise(W().then((()=>(this._isValid=!0,m((()=>this.ready))))))}destroy(){this._teardown(),this.removeAllHandles(),this._set("preconditionsReady",!1),this.frameTask=o(this.frameTask),this.goToManager.destroy(),this.inputManager.destroy(),this._set("inputManager",null)}get constraintsInfo(){return{lods:null,spatialReference:this.spatialReference}}get effect(){return this.layer?.effect}set effect(e){this._override("effect",e)}get preconditionsReady(){return!(!this._isValid||0===this.width||0===this.height||0===this.videoSize[0]||0===this.videoSize[1])}get rendering(){return this.stage?.renderRequested??!1}get scale(){return this.stateManager?.scale??0}set scale(e){this.stateManager&&(this.stateManager.scale=e)}get videoSize(){if(!this.layer?.videoWidth||!this.layer?.videoHeight)return[0,0];const[e,t]=this.size,i=(this.layer?.videoWidth||0)/(this.layer?.videoHeight||0),s=t*i,r=e/i;return e/t>=1?i>=1?s<=e?[s,t]:[e,r]:r<=t?[e,r]:[s,t]:i>=1?r<=t?[e,r]:[s,t]:s<=e?[s,t]:[e,r]}_startup(){if(!this.layer)return;const e=this._getViewpoint();this.stateManager.startup(e,this.size,e.targetGeometry.spatialReference),this.stage=new O(this.surface,{renderingOptions:this.renderingOptions,backgroundColor:T}),this._prepareStage(this.stage);const t=new x({view:this});this._set("animationManager",t);const i=new G({view:this,animationManager:t});this._set("mapViewNavigation",i),this._updateConstraints(),this.frameTask.start(),this._set("ready",!0)}_teardown(){this.stage.destroy(),this.stage=null,this._videoElementView=null,this._overlayContainer.removeAllChildren(),this._overlayContainer=null,this.removeHandles("video-view"),this._set("ready",!1),this.stateManager.teardown(),this.frameTask.stop(),this.stationaryManager.clear()}_getViewpoint(){return new i({targetGeometry:new j({x:this.videoSize[0]/2,y:this.videoSize[1]/2,spatialReference:this.spatialReference}),scale:1})}_prepareStage(e){this.addHandles([a((()=>this.stationary),(t=>e.stationary=t),l),a((()=>this.state.id),(()=>e.state=this.state),l),a((()=>this.renderingOptions),(t=>e.renderingOptions=t),l)],"video-view"),this._extent=new f({xmin:0,ymin:0,xmax:this.videoSize[0],ymax:this.videoSize[1],spatialReference:{wkid:0}}),this._videoElementView=new w({element:new v({video:this.layer?.videoElement,georeference:new u({extent:this._extent}),autoplay:!1}),spatialReference:this.spatialReference});const t=new E(this._videoElementView);this._overlayContainer=new P,this._overlayContainer.addChild(t),this.stage.addChild(this._overlayContainer)}_updateConstraints(){this._updateZoomConstraints(),this._updatePanConstraints()}_updateZoomConstraints(){const e=this.videoSize,t=Math.max(e[0]/this.size[0],e[1]/this.size[1]),i=[];for(let r=t;r>k;r/=2)i.push(r);i.push(k);const{lods:s}=b.create({scales:i});this.constraints.set({lods:s,minScale:t})}_updatePanConstraints(){const e=e=>{if(!e.targetGeometry)return e;const[t,i]=this.videoSize,s=t*e.scale/2,r=i*e.scale/2,o=e.targetGeometry.clone();return o.x=Math.max(s,Math.min(t-s,o.x)),o.y=Math.max(r,Math.min(i-r,o.y)),e.targetGeometry=o,e};this.constraints.customConstraints.add({constrain:e,applyPanConstraint:e})}};e([c()],A.prototype,"_overlayContainer",void 0),e([c()],A.prototype,"_isValid",void 0),e([c()],A.prototype,"constraintsInfo",null),e([c()],A.prototype,"effect",null),e([c()],A.prototype,"layer",void 0),e([c({type:q,nonNullable:!0})],A.prototype,"navigation",void 0),e([c({readOnly:!0})],A.prototype,"preconditionsReady",null),e([c({readOnly:!0})],A.prototype,"ready",void 0),e([c({readOnly:!0})],A.prototype,"rendering",null),e([c()],A.prototype,"scale",null),e([c()],A.prototype,"spatialReference",void 0),e([c()],A.prototype,"stateManager",void 0),e([c()],A.prototype,"type",void 0),e([c(),d((e=>e instanceof V?e:g(R,e)))],A.prototype,"ui",void 0),e([c({readOnly:!0})],A.prototype,"videoSize",null),e([c({readOnly:!0})],A.prototype,"view2dType",void 0),A=e([h("esri.views.VideoView")],A);const D=A;export{D as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../Color.js";import i from"../Viewpoint.js";import s from"../core/Accessor.js";import r from"../core/Evented.js";import{destroyMaybe as o}from"../core/maybe.js";import n from"../core/Promise.js";import{watch as a,whenOnce as m,initial as p,syncAndInitial as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import{ensureClass as g}from"../core/accessorSupport/ensureType.js";import f from"../geometry/Extent.js";import j from"../geometry/Point.js";import y from"../geometry/SpatialReference.js";import u from"../layers/support/ExtentAndRotationGeoreference.js";import{MediaElementView as w}from"../layers/support/MediaElementView.js";import b from"../layers/support/TileInfo.js";import v from"../layers/support/VideoElement.js";import{DOMContainer as M}from"./DOMContainer.js";import{Viewport2DMixin as _}from"./Viewport2DMixin.js";import x from"./2d/AnimationManager.js";import C from"./2d/MapViewConstraints.js";import"../core/Error.js";import"../core/scheduling.js";import"../core/Logger.js";import"../core/accessorSupport/tracking/Flags.js";import"../core/colorUtils.js";import"../config.js";import"../symbols/cim/defaultCIMValues.js";import"../symbols/cim/enums.js";import"../core/floatRGBA.js";import"../geometry/Geometry.js";import"../geometry/Multipoint.js";import"../geometry/Polygon.js";import"../geometry/Polyline.js";import"./2d/engine/webgl/definitions.js";import"./2d/engine/webgl/animations/instructions.js";import"../core/mathUtils.js";import"../symbols/Font.js";import"../core/ObjectPool.js";import"../geometry/support/Axis.js";import"../geometry/support/spatialReferenceUtils.js";import"../geometry/support/TileClipper.js";import"../symbols/cim/effects/EffectAddControlPoints.js";import"../symbols/cim/effects/EffectArrow.js";import"../symbols/cim/effects/EffectBuffer.js";import"../symbols/cim/effects/EffectControlMeasureLine.js";import"../symbols/cim/effects/EffectCut.js";import"../symbols/cim/effects/EffectDashes.js";import"../symbols/cim/effects/EffectDonut.js";import"../symbols/cim/effects/EffectEnclosingPolygon.js";import"../symbols/cim/effects/EffectJog.js";import"../symbols/cim/effects/EffectMove.js";import"../symbols/cim/effects/EffectOffset.js";import"../symbols/cim/effects/EffectRadial.js";import"../symbols/cim/effects/EffectReverse.js";import"../symbols/cim/effects/EffectRotate.js";import"../symbols/cim/effects/EffectScale.js";import"../symbols/cim/effects/EffectSuppress.js";import"../symbols/cim/effects/EffectTaperedPolygon.js";import"../symbols/cim/effects/EffectWave.js";import"../symbols/cim/placements/PlacementAlongLineSameSize.js";import"../symbols/cim/placements/PlacementAtExtremities.js";import"../symbols/cim/placements/PlacementAtRatioPositions.js";import"../symbols/cim/placements/PlacementInsidePolygon.js";import"../symbols/cim/placements/PlacementOnLine.js";import"../symbols/cim/placements/PlacementOnVertices.js";import"../symbols/cim/placements/PlacementPolygonCenter.js";import"../symbols/cim/constants.js";import"../core/libs/gl-matrix-2/factories/vec2f32.js";import"./2d/engine/webgl/alignmentUtils.js";import"../symbols/support/defaults.js";import"../symbols/cim/OverrideHelper.js";import"../layers/effects/EffectView.js";import"./2d/engine/transitions/FadeTransition.js";import"./2d/engine/webgl/enums.js";import"../core/libs/gl-matrix-2/factories/vec4f32.js";import"./webgl/enums.js";import"./2d/engine/webgl/shaders/BackgroundPrograms.js";import"./webgl/checkWebGLError.js";import"./2d/engine/webgl/DefaultVertexAttributeLayouts.js";import"./2d/engine/webgl/AFeatureTile.js";import"./2d/engine/webgl/DisplayEntity.js";import"./2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"./2d/engine/webgl/cpuMapped/MappedMesh.js";import"./2d/engine/webgl/number.js";import"./2d/engine/webgl/shaders/TileInfoPrograms.js";import"./webgl/Texture.js";import"./webgl/FBOAttachmentType.js";import"./2d/engine/vectorTiles/style/StyleDefinition.js";import"./2d/engine/vectorTiles/enums.js";import"./2d/engine/webgl/shaders/BitBlitPrograms.js";import"../request.js";import"../core/urlUtils.js";import"../core/pbf.js";import"./2d/engine/webgl/shaders/StencilPrograms.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueType.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js";import"./2d/engine/webgl/shaders/HighlightPrograms.js";import"./webgl/FramebufferObject.js";import"./2d/engine/webgl/meshing/SimpleMesh.js";import"./2d/engine/webgl/PooledUint32Array.js";import"./2d/engine/webgl/Profiler.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/constants.js";import"./2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js";import"../geometry/support/aaBoundingBox.js";import"./2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js";import"../arcade/ArcadeDate.js";import"../intl/locale.js";import"luxon";import"../core/sql/UnknownTimeZone.js";import"../layers/support/fieldUtils.js";import"../time/constants.js";import"./2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js";import"./webgl/renderState.js";import"./3d/webgl-engine/core/shaderModules/glsl.js";import"./webgl/testSVGPremultipliedAlpha.js";import"./2d/LabelManager.js";import"./2d/layers/graphics/GraphicsView2D.js";import"../chunks/earcut.js";import"../core/libs/gl-matrix-2/factories/vec3f32.js";import"../geometry/support/normalizeUtilsCommon.js";import"../geometry/support/Ellipsoid.js";import"../kernel.js";import"./2d/layers/support/util.js";import G from"./2d/navigation/MapViewNavigation.js";import"../core/asyncUtils.js";import"../core/support/UpdatingHandles.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../core/unitUtils.js";import"../geometry/ellipsoidUtils.js";import"../chunks/pe.js";import"../geometry/projection/projectors.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../geometry/support/geodesicConstants.js";import{ViewStateManager as S}from"./2d/ViewStateManager.js";import E from"./2d/engine/webgl/Overlay.js";import P from"./2d/engine/webgl/OverlayContainer.js";import q from"./navigation/Navigation.js";import V from"./ui/DefaultUI.js";import R from"./ui/2d/DefaultUI2D.js";const T=new t("#000");let O;async function W(){const[,{Stage:e}]=await Promise.all([import("./2d/webglDeps.js"),import("./2d/mapViewDeps.js")]);O=e}const k=.01;let z=class extends s{};z=e([h("esri.views.VideoView.Base")],z);let A=class extends(_(M(r.EventedMixin(n.EsriPromiseMixin(z))))){constructor(e){super(e),this._isValid=!1,this.stage=null,this.layer=null,this.navigation=new q,this.ready=!1,this.spatialReference=new y({wkid:0}),this.stateManager=new S({constraints:new C({view:this,minScale:1,maxScale:k})}),this.type="2d",this.ui=new R,this.view2dType="video",this.addHandles([a((()=>this.preconditionsReady),(e=>e?this._startup():this._teardown())),a((()=>this.layer),(()=>this.addResolvingPromise(m((()=>this.ready)))),p),a((()=>[this.layer?.effect,this._overlayContainer,this.effect]),(()=>{this._overlayContainer&&(this._overlayContainer.effect=this.effect??this.layer?.effect??null)}),l),a((()=>this.videoSize),(([e,t])=>{this._extent&&e&&t&&(this._extent.xmax=e,this._extent.ymax=t)}))])}initialize(){this.addResolvingPromise(W().then((()=>(this._isValid=!0,m((()=>this.ready))))))}destroy(){this._teardown(),this.removeAllHandles(),this._set("preconditionsReady",!1),this.frameTask=o(this.frameTask),this.goToManager.destroy(),this.inputManager.destroy(),this._set("inputManager",null)}get constraintsInfo(){return{lods:null,spatialReference:this.spatialReference}}get effect(){return this.layer?.effect}set effect(e){this._override("effect",e)}get preconditionsReady(){return!(!this._isValid||0===this.width||0===this.height||0===this.videoSize[0]||0===this.videoSize[1])}get rendering(){return this.stage?.renderRequested??!1}get scale(){return this.stateManager?.scale??0}set scale(e){this.stateManager&&(this.stateManager.scale=e)}get videoSize(){if(!this.layer?.videoWidth||!this.layer?.videoHeight)return[0,0];const[e,t]=this.size,i=(this.layer?.videoWidth||0)/(this.layer?.videoHeight||0),s=t*i,r=e/i;return e/t>=1?i>=1?s<=e?[s,t]:[e,r]:r<=t?[e,r]:[s,t]:i>=1?r<=t?[e,r]:[s,t]:s<=e?[s,t]:[e,r]}_startup(){if(!this.layer)return;const e=this._getViewpoint();this.stateManager.startup(e,this.size,e.targetGeometry.spatialReference),this.stage=new O(this.surface,{renderingOptions:this.renderingOptions,backgroundColor:T}),this._prepareStage(this.stage);const t=new x({view:this});this._set("animationManager",t);const i=new G({view:this,animationManager:t});this._set("mapViewNavigation",i),this._updateConstraints(),this.frameTask.start(),this._set("ready",!0)}_teardown(){this.stage.destroy(),this.stage=null,this._videoElementView=null,this._overlayContainer.removeAllChildren(),this._overlayContainer=null,this.removeHandles("video-view"),this._set("ready",!1),this.stateManager.teardown(),this.frameTask.stop(),this.stationaryManager.clear()}_getViewpoint(){return new i({targetGeometry:new j({x:this.videoSize[0]/2,y:this.videoSize[1]/2,spatialReference:this.spatialReference}),scale:1})}_prepareStage(e){this.addHandles([a((()=>this.stationary),(t=>e.stationary=t),l),a((()=>this.state.id),(()=>e.state=this.state),l),a((()=>this.renderingOptions),(t=>e.renderingOptions=t),l)],"video-view"),this._extent=new f({xmin:0,ymin:0,xmax:this.videoSize[0],ymax:this.videoSize[1],spatialReference:{wkid:0}}),this._videoElementView=new w({element:new v({video:this.layer?.videoElement,georeference:new u({extent:this._extent}),autoplay:!1}),spatialReference:this.spatialReference});const t=new E(this._videoElementView);this._overlayContainer=new P,this._overlayContainer.addChild(t),this.stage.addChild(this._overlayContainer)}_updateConstraints(){this._updateZoomConstraints(),this._updatePanConstraints()}_updateZoomConstraints(){const e=this.videoSize,t=Math.max(e[0]/this.size[0],e[1]/this.size[1]),i=[];for(let r=t;r>k;r/=2)i.push(r);i.push(k);const{lods:s}=b.create({scales:i});this.constraints.set({lods:s,minScale:t})}_updatePanConstraints(){const e=e=>{if(!e.targetGeometry)return e;const[t,i]=this.videoSize,s=t*e.scale/2,r=i*e.scale/2,o=e.targetGeometry.clone();return o.x=Math.max(s,Math.min(t-s,o.x)),o.y=Math.max(r,Math.min(i-r,o.y)),e.targetGeometry=o,e};this.constraints.customConstraints.add({constrain:e,applyPanConstraint:e})}};e([c()],A.prototype,"_overlayContainer",void 0),e([c()],A.prototype,"_isValid",void 0),e([c()],A.prototype,"constraintsInfo",null),e([c()],A.prototype,"effect",null),e([c()],A.prototype,"layer",void 0),e([c({type:q,nonNullable:!0})],A.prototype,"navigation",void 0),e([c({readOnly:!0})],A.prototype,"preconditionsReady",null),e([c({readOnly:!0})],A.prototype,"ready",void 0),e([c({readOnly:!0})],A.prototype,"rendering",null),e([c()],A.prototype,"scale",null),e([c()],A.prototype,"spatialReference",void 0),e([c()],A.prototype,"stateManager",void 0),e([c()],A.prototype,"type",void 0),e([c(),d((e=>e instanceof V?e:g(R,e)))],A.prototype,"ui",void 0),e([c({readOnly:!0})],A.prototype,"videoSize",null),e([c({readOnly:!0})],A.prototype,"view2dType",void 0),A=e([h("esri.views.VideoView")],A);const D=A;export{D 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.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";import{removeMaybe as r}from"../../core/maybe.js";import{createResolver as t,onAbort as i,throwIfAborted as l,createAbortError as a}from"../../core/promiseUtils.js";import s from"../../layers/Layer.js";function o(e){return"tryRecycleWith"in e}class n{constructor(r,l,a){this.layer=r,this.view=l,this.layerViewImporter=a,this._controller=new AbortController,this._deferred=t(),this._started=!1,this.done=!1,this.promise=this._deferred.promise,i(this._controller.signal,(()=>{const t=new e("cancelled:layerview-create","layerview creation cancelled",{layer:r});this._deferred.reject(t)}))}tryRecycle(e){if(!this.done||!this.layerView||!o(this.layerView))return null;const r=this.layer.type,t=this._controller.signal;for(let s=0;s<e.length;s++){const o=e[s];if(o.type!==r)continue;const n=this.layerView.tryRecycleWith(o,{signal:t});if(n){e.splice(s,1),this.layer=o;const r=this.layerView,t=r.view;return this.promise=Promise.race([n.then((()=>(l(this._controller.signal),o.emit("layerview-destroy",{view:t,layerView:r}),t.emit("layerview-destroy",{view:t,layerView:r}),o.emit("layerview-create",{view:t,layerView:r}),t.emit("layerview-create",{view:t,layerView:r}),r))),new Promise(((e,r)=>i(this._controller.signal,(()=>r(a())))))]),this.promise}}return null}destroy(){this._controller.abort();const{layerView:e}=this;if(e){const{layer:r,view:t}=this;r.emit("layerview-destroy",{view:t,layerView:e}),t.emit("layerview-destroy",{layer:r,layerView:e})}this.done=!0,this.layer=null,this.layerView=null,this.view=null,this.layerViewImporter=null,this._map=null}async start(){if(this._started)return;this._started=!0;const{_controller:{signal:t},layer:a,view:s}=this;this._map=s.map;try{let n,w;if(await a.load({signal:t}),a.prefetchResources&&await a.prefetchResources({signal:t}),y(a))n=await a.createLayerView(s,{signal:t});else{if(!this.layerViewImporter.hasLayerViewModule(a))throw new e("layer:view-not-supported","No layerview implementation was found");const r=await this.layerViewImporter.importLayerView(a);l(t),n="default"in r?new r.default({layer:a,view:s}):new r({layer:a,view:s})}const c=()=>{w=r(w),n.destroyed||n.destroy(),n.layer=null,n.parent=null,n.view=null,this.done=!0};w=i(t,c),l(t);try{await n.when()}catch(o){throw c(),o}const h=this._map?.allLayers?.includes(a);if(!h)return c(),void this._deferred.reject(new e("view:no-layerview-for-layer","The layer has been removed from the map",{layer:a}));this.layerView=n,a.emit("layerview-create",{view:s,layerView:n}),s.emit("layerview-create",{layer:a,layerView:n}),this.done=!0,this._deferred.resolve(n)}catch(o){a.emit("layerview-create-error",{view:s,error:o}),s.emit("layerview-create-error",{layer:a,error:o}),this.done=!0,this._deferred.reject(new e("layerview:create-error","layerview creation failed",{layer:a,error:o}))}}}function y(e){return e.createLayerView!==s.prototype.createLayerView}export{n as LayerLayerViewInfo};
5
+ import e from"../../core/Error.js";import{removeMaybe as r}from"../../core/maybe.js";import{createResolver as t,onAbort as i,throwIfAborted as l,createAbortError as a}from"../../core/promiseUtils.js";import s from"../../layers/Layer.js";function o(e){return"tryRecycleWith"in e}class n{constructor(r,l,a){this.layer=r,this.view=l,this.layerViewImporter=a,this._controller=new AbortController,this._deferred=t(),this._started=!1,this.done=!1,this.promise=this._deferred.promise,i(this._controller.signal,(()=>{const t=new e("cancelled:layerview-create","layerview creation cancelled",{layer:r});this._deferred.reject(t)}))}tryRecycle(e){if(!this.done||!this.layerView||!o(this.layerView))return null;const r=this.layer.type,t=this._controller.signal;for(let s=0;s<e.length;s++){const o=e[s];if(o.type!==r)continue;const n=this.layerView.tryRecycleWith(o,{signal:t});if(n){e.splice(s,1),this.layer=o;const r=this.layerView,t=r.view;return this.promise=Promise.race([n.then((()=>(l(this._controller.signal),o.emit("layerview-destroy",{view:t,layerView:r}),t.emit("layerview-destroy",{view:t,layerView:r}),o.emit("layerview-create",{view:t,layerView:r}),t.emit("layerview-create",{view:t,layerView:r}),r))),new Promise(((e,r)=>i(this._controller.signal,(()=>r(a())))))]),this.promise}}return null}destroy(){this._controller.abort();const{layerView:e}=this;if(e){const{layer:r,view:t}=this;r.emit("layerview-destroy",{view:t,layerView:e}),t.emit("layerview-destroy",{layer:r,layerView:e})}this.done=!0,this.layer=null,this.layerView=null,this.view=null,this.layerViewImporter=null,this._map=null}async start(){const{view:t}=this;if(this._started||!t.map)return;this._started=!0;const{_controller:{signal:a},layer:s}=this;this._map=t.map;try{let n,w;if(await s.load({signal:a}),s.prefetchResources&&await s.prefetchResources({signal:a}),y(s))n=await s.createLayerView(t,{signal:a});else{if(!this.layerViewImporter.hasLayerViewModule(s))throw new e("layer:view-not-supported","No layerview implementation was found");const r=await this.layerViewImporter.importLayerView(s);l(a),n="default"in r?new r.default({layer:s,view:t}):new r({layer:s,view:t})}const c=()=>{w=r(w),n.destroyed||n.destroy(),n.layer=null,n.parent=null,n.view=null,this.done=!0};w=i(a,c),l(a);try{await n.when()}catch(o){throw c(),o}const h=this._map?.allLayers?.includes(s);if(!h)return c(),void this._deferred.reject(new e("view:no-layerview-for-layer","The layer has been removed from the map",{layer:s}));this.layerView=n,s.emit("layerview-create",{view:t,layerView:n}),t.emit("layerview-create",{layer:s,layerView:n}),this.done=!0,this._deferred.resolve(n)}catch(o){s.emit("layerview-create-error",{view:t,error:o}),t.emit("layerview-create-error",{layer:s,error:o}),this.done=!0,this._deferred.reject(new e("layerview:create-error","layerview creation failed",{layer:s,error:o}))}}}function y(e){return e.createLayerView!==s.prototype.createLayerView}export{n as LayerLayerViewInfo};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import r from"../../core/Accessor.js";import i from"../../core/Error.js";import t from"../../core/Logger.js";import{someMap as s}from"../../core/MapUtils.js";import{createResolver as o,createAbortError as a,isAbortError as n}from"../../core/promiseUtils.js";import{on as l,watch as h,syncAndInitial as y}from"../../core/reactiveUtils.js";import{schedule as p}from"../../core/scheduling.js";import{property as c}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as d}from"../../core/accessorSupport/decorators/subclass.js";import{get as w}from"../../core/accessorSupport/get.js";import{UpdatingHandles as f}from"../../core/support/UpdatingHandles.js";import{destroyMap as m}from"../../support/collectionUtils.js";import{LayerLayerViewInfo as u}from"./LayerLayerViewInfo.js";function g(e){return null!=e&&"object"==typeof e&&"layerViews"in e}let _=class extends r{constructor(e){super(e),this._layerLayerViewInfoMap=new Map,this._recyclingInfoMap=new Map,this._watchUpdatingTracking=new f,this.supportsGround=!0,this._preloadLayerViewModules=()=>{const e=this.view.map?.allLayers;if(e)for(const r of e)this.layerViewImporter.hasLayerViewModule(r)&&this.layerViewImporter.importLayerView(r)},this._reschedule=()=>this.destroyed?Promise.reject():(null==this._workPromise&&(this._workPromise=o(),this._workPromise.promise.catch((()=>{}))),this.removeHandles("reschedule"),this.addHandles(p(this._doWork),"reschedule"),this._workPromise.promise),this._doWork=()=>{if(this.destroyed)return;const e=this.view.map;if(this._map!==e&&(this.clear(),this._map=e),null==this._workPromise)return void this.notifyChange("updating");this.removeHandles("reschedule"),this.removeHandles("collection-change");const r=new Set,i=[],t=this.view.ready,s=e=>{if(null!=e)for(const o of e)if(o){r.add(o);const e=this._layerLayerViewInfoMap.get(o);e&&t?e.start():e||this._recyclingInfoMap.has(o)||i.push(o),"layers"in o&&o.layers&&s(o.layers)}};for(const a of this._rootCollectionNames)s(w(this,a));for(const[a,n]of this._layerLayerViewInfoMap)if(!r.has(a)){this._layerLayerViewInfoMap.delete(n.layer);const e=n.tryRecycle(i);e?(this.notifyChange("updating"),this._recyclingInfoMap.set(n.layer,n),e.then((()=>{this.notifyChange("updating"),this._recyclingInfoMap.delete(n.layer),this._layerLayerViewInfoMap.set(n.layer,n),this._reschedule()})).catch((()=>{this.notifyChange("updating"),this._recyclingInfoMap.delete(n.layer),n.destroy(),this._reschedule()}))):n.destroy()}for(const[a,n]of this._recyclingInfoMap)r.has(a)||(this.notifyChange("updating"),this._recyclingInfoMap.delete(n.layer),n.destroy());for(const a of i)this._createLayerView(a);this._refreshCollections();const o=[e?.ground?.layers,e?.basemap?.baseLayers,e?.basemap?.referenceLayers,e?.layers].filter((e=>!!e));r.forEach((e=>"layers"in e&&o.push(e.layers))),this.addHandles(o.map((e=>this._watchUpdatingTracking.addOnCollectionChange((()=>e),this._reschedule))),"collection-change"),this._workPromise.resolve(),this._workPromise=null}}initialize(){this.addHandles([l((()=>this.view?.map?.allLayers),"change",this._preloadLayerViewModules,{onListenerAdd:this._preloadLayerViewModules}),h((()=>{const e=this.view,r=e?.map;return[r?.basemap,r?.ground,r?.layers,e?.ready]}),(()=>this._reschedule()),y)]),this._preloadLayerViewModules(),this._reschedule()}destroy(){this.clear(),m(this._recyclingInfoMap),m(this._layerLayerViewInfoMap),this._watchUpdatingTracking.destroy(),this._map=null,null!=this._workPromise&&(this._workPromise.reject(a()),this._workPromise=null)}get _layersToLayerViews(){const e=[["view.map.basemap.baseLayers","view.basemapView.baseLayerViews"],["view.map.layers","view.layerViews"],["view.map.basemap.referenceLayers","view.basemapView.referenceLayerViews"]];return this.supportsGround&&e.push(["view.map.ground.layers","view.groundView.layerViews"]),new Map(e)}get _rootCollectionNames(){return Array.from(this._layersToLayerViews.keys())}get updating(){return null!=this._workPromise||this._watchUpdatingTracking.updating||s(this._layerLayerViewInfoMap,(e=>!e.done))||this._recyclingInfoMap.size>0}get updatingRemaining(){let e=0;for(const r of this._layerLayerViewInfoMap.values())r.done||++e;return e}clear(){this.destroyed||(m(this._layerLayerViewInfoMap),this._refreshCollections())}async whenLayerView(e){if(await this._reschedule(),!this._layerLayerViewInfoMap.has(e)){if(this._recyclingInfoMap.has(e))return this._recyclingInfoMap.get(e).promise;throw new i("view:no-layerview-for-layer","No layerview has been found for the layer",{layer:e})}return this._layerLayerViewInfoMap.get(e).promise}isCreatingLayerViewsForLayer(e,r){this.commitProperty("updatingRemaining");const i=this._layerLayerViewInfoMap.get(e);if(!i?.done)return!0;const t=i.layerView;return!(!t||!r||t.parent===r)||!!(i.done&&t&&"layers"in e&&e.layers?.length)&&e.layers.some((e=>this.isCreatingLayerViewsForLayer(e,t)))}_refreshCollections(){for(const[e,r]of this._layersToLayerViews)this._populateLayerViewsOwners(w(this,e),w(this,r),this.view);this.notifyChange("updating"),this.notifyChange("updatingRemaining")}_populateLayerViewsOwners(e,r,i){if(!e||!r)return void(r&&r.removeAll());let t=0;for(const s of e){const e=this._layerLayerViewInfoMap.get(s);if(!e?.layerView)continue;const o=e.layerView;o.layer=s,o.parent=i,r.at(t)!==o&&r.splice(t,0,o),"layers"in s&&g(o)&&this._populateLayerViewsOwners(s.layers,o.layerViews,o),t+=1}t<r.length&&r.splice(t)}_createLayerView(e){e.load().catch((()=>{})),this.layerViewImporter.hasLayerViewModule(e)&&this.layerViewImporter.importLayerView(e);const r=new u(e,this.view,this.layerViewImporter);r.promise.then((()=>this._refreshCollections()),(r=>{r&&(n(r)||"cancelled:layerview-create"===r.name)||t.getLogger(this).error(`Failed to create layerview for layer title:'${e.title??"no title"}', id:'${e.id??"no id"}' of type '${e.type}'.`,{layer:e,error:r}),this._refreshCollections()})),this._layerLayerViewInfoMap.set(e,r),this.view.ready&&r.start(),this.notifyChange("updating"),this.notifyChange("updatingRemaining")}};e([c()],_.prototype,"_workPromise",void 0),e([c({readOnly:!0})],_.prototype,"_watchUpdatingTracking",void 0),e([c({readOnly:!0})],_.prototype,"_layersToLayerViews",null),e([c({readOnly:!0})],_.prototype,"_rootCollectionNames",null),e([c()],_.prototype,"layerViewImporter",void 0),e([c()],_.prototype,"supportsGround",void 0),e([c({readOnly:!0})],_.prototype,"updating",null),e([c({readOnly:!0})],_.prototype,"updatingRemaining",null),e([c({constructOnly:!0})],_.prototype,"view",void 0),_=e([d("esri.views.support.LayerViewManager")],_);const V=_;export{V as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import r from"../../core/Accessor.js";import i from"../../core/Error.js";import t from"../../core/Logger.js";import{someMap as s}from"../../core/MapUtils.js";import{createResolver as o,createAbortError as a,isAbortError as n}from"../../core/promiseUtils.js";import{on as l,watch as h,syncAndInitial as y}from"../../core/reactiveUtils.js";import{schedule as p}from"../../core/scheduling.js";import{property as c}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as d}from"../../core/accessorSupport/decorators/subclass.js";import{get as w}from"../../core/accessorSupport/get.js";import{UpdatingHandles as f}from"../../core/support/UpdatingHandles.js";import{destroyMap as m}from"../../support/collectionUtils.js";import{LayerLayerViewInfo as u}from"./LayerLayerViewInfo.js";function g(e){return null!=e&&"object"==typeof e&&"layerViews"in e}let _=class extends r{constructor(e){super(e),this._layerLayerViewInfoMap=new Map,this._recyclingInfoMap=new Map,this._watchUpdatingTracking=new f,this.supportsGround=!0,this._preloadLayerViewModules=()=>{const e=this.view.map?.allLayers;if(e)for(const r of e)this.layerViewImporter.hasLayerViewModule(r)&&this.layerViewImporter.importLayerView(r)},this._reschedule=()=>this.destroyed?Promise.reject():(null==this._workPromise&&(this._workPromise=o(),this._workPromise.promise.catch((()=>{}))),this.removeHandles("reschedule"),this.addHandles(p(this._doWork),"reschedule"),this._workPromise.promise),this._doWork=()=>{const e=this.view.map;if(this.destroyed||!e)return void this.clear();if(this._map!==e&&(this.clear(),this._map=e),null==this._workPromise)return void this.notifyChange("updating");this.removeHandles("reschedule"),this.removeHandles("collection-change");const r=new Set,i=[],t=this.view.ready,s=e=>{if(null!=e)for(const o of e)if(o){r.add(o);const e=this._layerLayerViewInfoMap.get(o);e&&t?e.start():e||this._recyclingInfoMap.has(o)||i.push(o),"layers"in o&&o.layers&&s(o.layers)}};for(const a of this._rootCollectionNames)s(w(this,a));for(const[a,n]of this._layerLayerViewInfoMap)if(!r.has(a)){this._layerLayerViewInfoMap.delete(n.layer);const e=n.tryRecycle(i);e?(this.notifyChange("updating"),this._recyclingInfoMap.set(n.layer,n),e.then((()=>{this.notifyChange("updating"),this._recyclingInfoMap.delete(n.layer),this._layerLayerViewInfoMap.set(n.layer,n),this._reschedule()})).catch((()=>{this.notifyChange("updating"),this._recyclingInfoMap.delete(n.layer),n.destroy(),this._reschedule()}))):n.destroy()}for(const[a,n]of this._recyclingInfoMap)r.has(a)||(this.notifyChange("updating"),this._recyclingInfoMap.delete(n.layer),n.destroy());for(const a of i)this._createLayerView(a);this._refreshCollections();const o=[e?.ground?.layers,e?.basemap?.baseLayers,e?.basemap?.referenceLayers,e?.layers].filter((e=>!!e));r.forEach((e=>"layers"in e&&o.push(e.layers))),this.addHandles(o.map((e=>this._watchUpdatingTracking.addOnCollectionChange((()=>e),this._reschedule))),"collection-change"),this._workPromise.resolve(),this._workPromise=null}}initialize(){this.addHandles([l((()=>this.view?.map?.allLayers),"change",this._preloadLayerViewModules,{onListenerAdd:this._preloadLayerViewModules}),h((()=>{const e=this.view,r=e?.map;return[r?.basemap,r?.ground,r?.layers,e?.ready]}),(()=>this._reschedule()),y)]),this._preloadLayerViewModules(),this._reschedule()}destroy(){this.clear(),m(this._recyclingInfoMap),m(this._layerLayerViewInfoMap),this._watchUpdatingTracking.destroy(),this._map=null,null!=this._workPromise&&(this._workPromise.reject(a()),this._workPromise=null)}get _layersToLayerViews(){const e=[["view.map.basemap.baseLayers","view.basemapView.baseLayerViews"],["view.map.layers","view.layerViews"],["view.map.basemap.referenceLayers","view.basemapView.referenceLayerViews"]];return this.supportsGround&&e.push(["view.map.ground.layers","view.groundView.layerViews"]),new Map(e)}get _rootCollectionNames(){return Array.from(this._layersToLayerViews.keys())}get updating(){return null!=this._workPromise||this._watchUpdatingTracking.updating||s(this._layerLayerViewInfoMap,(e=>!e.done))||this._recyclingInfoMap.size>0}get updatingRemaining(){let e=0;for(const r of this._layerLayerViewInfoMap.values())r.done||++e;return e}clear(){this.destroyed||(m(this._layerLayerViewInfoMap),this._refreshCollections())}async whenLayerView(e){if(await this._reschedule(),!this._layerLayerViewInfoMap.has(e)){if(this._recyclingInfoMap.has(e))return this._recyclingInfoMap.get(e).promise;throw new i("view:no-layerview-for-layer","No layerview has been found for the layer",{layer:e})}return this._layerLayerViewInfoMap.get(e).promise}isCreatingLayerViewsForLayer(e,r){this.commitProperty("updatingRemaining");const i=this._layerLayerViewInfoMap.get(e);if(!i?.done)return!0;const t=i.layerView;return!(!t||!r||t.parent===r)||!!(i.done&&t&&"layers"in e&&e.layers?.length)&&e.layers.some((e=>this.isCreatingLayerViewsForLayer(e,t)))}_refreshCollections(){for(const[e,r]of this._layersToLayerViews)this._populateLayerViewsOwners(w(this,e),w(this,r),this.view);this.notifyChange("updating"),this.notifyChange("updatingRemaining")}_populateLayerViewsOwners(e,r,i){if(!e||!r)return void(r&&r.removeAll());let t=0;for(const s of e){const e=this._layerLayerViewInfoMap.get(s);if(!e?.layerView)continue;const o=e.layerView;o.layer=s,o.parent=i,r.at(t)!==o&&r.splice(t,0,o),"layers"in s&&g(o)&&this._populateLayerViewsOwners(s.layers,o.layerViews,o),t+=1}t<r.length&&r.splice(t)}_createLayerView(e){e.load().catch((()=>{})),this.layerViewImporter.hasLayerViewModule(e)&&this.layerViewImporter.importLayerView(e);const r=new u(e,this.view,this.layerViewImporter);r.promise.then((()=>this._refreshCollections()),(r=>{r&&(n(r)||"cancelled:layerview-create"===r.name)||t.getLogger(this).error(`Failed to create layerview for layer title:'${e.title??"no title"}', id:'${e.id??"no id"}' of type '${e.type}'.`,{layer:e,error:r}),this._refreshCollections()})),this._layerLayerViewInfoMap.set(e,r),this.view.ready&&r.start(),this.notifyChange("updating"),this.notifyChange("updatingRemaining")}};e([c()],_.prototype,"_workPromise",void 0),e([c({readOnly:!0})],_.prototype,"_watchUpdatingTracking",void 0),e([c({readOnly:!0})],_.prototype,"_layersToLayerViews",null),e([c({readOnly:!0})],_.prototype,"_rootCollectionNames",null),e([c()],_.prototype,"layerViewImporter",void 0),e([c()],_.prototype,"supportsGround",void 0),e([c({readOnly:!0})],_.prototype,"updating",null),e([c({readOnly:!0})],_.prototype,"updatingRemaining",null),e([c({constructOnly:!0})],_.prototype,"view",void 0),_=e([d("esri.views.support.LayerViewManager")],_);const V=_;export{V 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.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";function n(e){return e&&"function"==typeof e.highlight}function t(e){return e&&"function"==typeof e.maskOccludee}function i(e,n,t){return null==e||e>=t&&(0===n||e<=n)}function r(e,n){if(n&&e){const{minScale:t,maxScale:r}=e;if(c(t,r))return i(n,t,r)}return!0}function c(e,n){return null!=e&&e>0||null!=n&&n>0}function u(e){return!e?.minScale||!e.maxScale||e.minScale>=e.maxScale}function o(e){return null!=e&&"object"==typeof e&&"createQuery"in e&&"queryFeatures"in e&&"layer"in e&&"view"in e}function l(n,t,i){return new e("layerview:spatial-reference-incompatible",`The spatial reference of this ${n}${t?`(wkid:${t})`:""} is incompatible with the spatial reference of the view${i?`(wkid:${i})`:""}.`,{})}export{n as highlightsSupported,r as isInEffectiveScaleRange,c as isScaleRangeActive,o as isSelectableLayerView2D,t as occludeesSupported,i as scaleBoundsPredicate,l as spatialReferenceIncompatibleError,u as validateScaleRange};
5
+ import e from"../../core/Error.js";import has from"../../core/has.js";function n(e){return e&&"function"==typeof e.highlight}function r(e){return e&&"function"==typeof e.maskOccludee}function t(e,n,r){return null==e||e>=r&&(0===n||e<=n)}function i(e,n){if(n&&e){const{minScale:r,maxScale:i}=e;if(c(r,i))return t(n,r,i)}return!0}function c(e,n){return null!=e&&e>0||null!=n&&n>0}function a(e){return!e?.minScale||!e.maxScale||e.minScale>=e.maxScale}const o=!has("disable-feature:layer-based-scale-ranges");function u(e){return null!=e&&"object"==typeof e&&"createQuery"in e&&"queryFeatures"in e&&"layer"in e&&"view"in e}function l(n,r,t){return new e("layerview:spatial-reference-incompatible",`The spatial reference of this ${n}${r?`(wkid:${r})`:""} is incompatible with the spatial reference of the view${t?`(wkid:${t})`:""}.`,{})}export{o as hasLayerBasedScaleRanges,n as highlightsSupported,i as isInEffectiveScaleRange,c as isScaleRangeActive,u as isSelectableLayerView2D,r as occludeesSupported,t as scaleBoundsPredicate,l as spatialReferenceIncompatibleError,a as validateScaleRange};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as e}from"../../core/accessorSupport/decorators/subclass.js";let s=class extends t{constructor(){super(...arguments),this.timeRangeSlider=!0,this.timezone=!0,this.datePicker=!0,this.visualizationOptions=!0,this.colorPicker=!0,this.tooltip=!0}};o([r()],s.prototype,"timeRangeSlider",void 0),o([r()],s.prototype,"timezone",void 0),o([r()],s.prototype,"datePicker",void 0),o([r()],s.prototype,"visualizationOptions",void 0),o([r()],s.prototype,"colorPicker",void 0),o([r()],s.prototype,"tooltip",void 0),s=o([e("esri.widgets.ShadowCast.ShadowCastVisibleElements")],s);const i=s;export{i as default};
5
+ import{_ as o}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";let s=class extends t{constructor(){super(...arguments),this.timeRangeSlider=!0,this.timezone=!0,this.datePicker=!0,this.visualizationOptions=!0,this.colorPicker=!0,this.tooltip=!0,this.thresholdContext=!0,this.thresholdContextToggle=!0,this.thresholdContextTimeInterval=!0,this.thresholdContextColor=!0}};o([e()],s.prototype,"timeRangeSlider",void 0),o([e()],s.prototype,"timezone",void 0),o([e()],s.prototype,"datePicker",void 0),o([e()],s.prototype,"visualizationOptions",void 0),o([e()],s.prototype,"colorPicker",void 0),o([e()],s.prototype,"tooltip",void 0),o([e()],s.prototype,"thresholdContext",void 0),o([e()],s.prototype,"thresholdContextToggle",void 0),o([e()],s.prototype,"thresholdContextTimeInterval",void 0),o([e()],s.prototype,"thresholdContextColor",void 0),s=o([r("esri.widgets.ShadowCast.ShadowCastVisibleElements")],s);const i=s;export{i as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../chunks/tslib.es6.js";import{generateUUID as e}from"../../../core/uuid.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as s}from"../../../core/accessorSupport/decorators/subclass.js";import{formatDuration as r}from"../../../intl/duration.js";import i from"../../Widget.js";import{discreteConfiguratorCss as c}from"../css.js";import{Label as l}from"./Label.js";import{LabeledColorPicker as n}from"./LabeledColorPicker.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as p}from"../../support/decorators/messageBundle.js";import{tsx as m}from"../../support/jsxFactory.js";let d=class extends i{constructor(o){super(o),this.colorPickerVisible=!0,this._selectId=`select-${e()}`,this._colorPickerId=`color-picker-${e()}`,this._onColorChange=o=>{this.options.color=o}}loadDependencies(){return a({label:()=>import("@esri/calcite-components/dist/components/calcite-label"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}render(){const o=this._messages.discrete,e=o.intervalLabel,{color:t,interval:s,intervalOptions:i}=this.options;return m("div",{class:c.base},m(l,{for:this._selectId,label:e},m("calcite-select",{bind:this,id:this._selectId,label:e,onCalciteSelectChange:this._onIntervalChange},i.toArray().map((o=>m("calcite-option",{key:o,selected:o===s,value:String(o)},r(o)))))),this.colorPickerVisible?m(n,{id:this._colorPickerId,label:o.colorLabel,value:t,onChange:this._onColorChange}):null)}_onIntervalChange(o){const e=parseInt(o.currentTarget.selectedOption?.value,10);Number.isFinite(e)&&(this.options.interval=e)}};o([t()],d.prototype,"options",void 0),o([t()],d.prototype,"colorPickerVisible",void 0),o([t(),p("esri/widgets/ShadowCast/t9n/ShadowCast")],d.prototype,"_messages",void 0),d=o([s("esri.widgets.ShadowCast.components.DiscreteConfigurator")],d);export{d as DiscreteConfigurator};
5
+ import{_ as o}from"../../../chunks/tslib.es6.js";import{generateUUID as e}from"../../../core/uuid.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as s}from"../../../core/accessorSupport/decorators/subclass.js";import{formatDuration as i}from"../../../intl/duration.js";import r from"../../Widget.js";import{discreteConfiguratorCss as c}from"../css.js";import{ColorPicker as l}from"../../support/ColorPicker.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as n}from"../../support/decorators/messageBundle.js";import{tsx as p}from"../../support/jsxFactory.js";let m=class extends r{constructor(o){super(o),this.colorPickerVisible=!0,this.timeIntervalVisible=!0,this.colorPickerLabel=void 0,this._selectId=`select-${e()}`,this._colorPickerId=`color-picker-${e()}`,this._onColorChange=o=>{this.options.color=o}}loadDependencies(){return a({label:()=>import("@esri/calcite-components/dist/components/calcite-label"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}render(){const o=this._messages.discrete,e=o.intervalLabel,{color:t,interval:s,intervalOptions:r}=this.options,{colorPickerLabel:a}=this;return p("div",{class:c.base},this.timeIntervalVisible?p("calcite-label",{for:this._selectId,key:this._selectId,scale:"s"},e,p("calcite-select",{bind:this,id:this._selectId,label:e,scale:"s",onCalciteSelectChange:this._onIntervalChange},r.toArray().map((o=>p("calcite-option",{key:o,selected:o===s,value:String(o)},i(o)))))):null,this.colorPickerVisible?p("calcite-label",{for:this._colorPickerId,key:this._colorPickerId,layout:"inline",scale:"s"},p(l,{id:this._colorPickerId,value:t,onChange:this._onColorChange}),a??o.colorLabel):null)}_onIntervalChange(o){const e=parseInt(o.currentTarget.selectedOption?.value,10);Number.isFinite(e)&&(this.options.interval=e)}};o([t()],m.prototype,"options",void 0),o([t()],m.prototype,"colorPickerVisible",void 0),o([t()],m.prototype,"timeIntervalVisible",void 0),o([t()],m.prototype,"colorPickerLabel",void 0),o([t(),n("esri/widgets/ShadowCast/t9n/ShadowCast")],m.prototype,"_messages",void 0),m=o([s("esri.widgets.ShadowCast.components.DiscreteConfigurator")],m);export{m as DiscreteConfigurator};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../chunks/tslib.es6.js";import{generateUUID as t}from"../../../core/uuid.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as e}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{durationConfiguratorCss as i}from"../css.js";import{DurationMode as c}from"../DurationMode.js";import{Label as l}from"./Label.js";import{LabeledColorPicker as n}from"./LabeledColorPicker.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as p}from"../../support/decorators/messageBundle.js";import{tsx as m}from"../../support/jsxFactory.js";let u=class extends r{constructor(o){super(o),this.colorPickerVisible=!0,this._modeSelectorId=`mode-selector-${t()}`,this._colorPickerId=`color-picker-${t()}`,this._onColorChange=o=>{this.options.color=o},this._setContinuous=()=>{this.options.mode=c.Continuous},this._setHourly=()=>{this.options.mode=c.Hourly}}loadDependencies(){return a({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),label:()=>import("@esri/calcite-components/dist/components/calcite-label")})}render(){const o=this._messages.duration,{color:t,mode:s}=this.options;return m("div",{class:i.base},m(l,{for:this._modeSelectorId,label:o.modeLabel},m("div",{class:i.radioGroup},m(d,{active:s===c.Continuous,label:o.continuousLabel,onclick:this._setContinuous}),m(d,{active:s===c.Hourly,label:o.hourlyLabel,onclick:this._setHourly}))),this.colorPickerVisible?m(n,{id:this._colorPickerId,label:o.colorLabel,value:t,onChange:this._onColorChange}):null)}};function d({active:o,label:t,...s}){return m("calcite-button",{alignment:"center",appearance:o?"solid":"outline",scale:"s",width:"full",...s},t)}o([s()],u.prototype,"options",void 0),o([s()],u.prototype,"colorPickerVisible",void 0),o([s(),p("esri/widgets/ShadowCast/t9n/ShadowCast")],u.prototype,"_messages",void 0),u=o([e("esri.widgets.ShadowCast.components.DurationConfigurator")],u);export{u as DurationConfigurator};
5
+ import{_ as o}from"../../../chunks/tslib.es6.js";import{generateUUID as t}from"../../../core/uuid.js";import{property as e}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as s}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{durationConfiguratorCss as i}from"../css.js";import{DurationMode as c}from"../DurationMode.js";import{ColorPicker as l}from"../../support/ColorPicker.js";import{loadCalciteComponents as n}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as a}from"../../support/decorators/messageBundle.js";import{tsx as p}from"../../support/jsxFactory.js";let m=class extends r{constructor(o){super(o),this.colorPickerVisible=!0,this._modeSelectorId=`mode-selector-${t()}`,this._colorPickerId=`color-picker-${t()}`,this._onColorChange=o=>{this.options.color=o},this._setContinuous=()=>{this.options.mode=c.Continuous},this._setHourly=()=>{this.options.mode=c.Hourly}}loadDependencies(){return n({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),label:()=>import("@esri/calcite-components/dist/components/calcite-label")})}render(){const o=this._messages.duration,{color:t,mode:e}=this.options;return p("div",{class:i.base},p("calcite-label",{for:this._modeSelectorId,key:this._modeSelectorId,scale:"s"},o.modeLabel,p("div",{class:i.radioGroup},p(u,{active:e===c.Continuous,label:o.continuousLabel,onclick:this._setContinuous}),p(u,{active:e===c.Hourly,label:o.hourlyLabel,onclick:this._setHourly}))),this.colorPickerVisible?p("calcite-label",{for:this._colorPickerId,key:this._colorPickerId,layout:"inline",scale:"s"},p(l,{id:this._colorPickerId,value:t,onChange:this._onColorChange}),o.colorLabel):null)}};function u({active:o,label:t,...e}){return p("calcite-button",{alignment:"center",appearance:o?"solid":"outline",scale:"s",width:"full",...e},t)}o([e()],m.prototype,"options",void 0),o([e()],m.prototype,"colorPickerVisible",void 0),o([e(),a("esri/widgets/ShadowCast/t9n/ShadowCast")],m.prototype,"_messages",void 0),m=o([s("esri.widgets.ShadowCast.components.DurationConfigurator")],m);export{m as DurationConfigurator};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../chunks/tslib.es6.js";import"../../../core/has.js";import{destroyMaybe as e}from"../../../core/maybe.js";import{watch as s,syncAndInitial as r}from"../../../core/reactiveUtils.js";import{convertTime as t}from"../../../core/timeUtils.js";import{generateUUID as i}from"../../../core/uuid.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{formatNumber as m}from"../../../intl/number.js";import c from"../../Slider.js";import n from"../../Widget.js";import{thresholdConfiguratorCss as p}from"../css.js";import{Label as u}from"./Label.js";import{LabeledColorPicker as d}from"./LabeledColorPicker.js";import{loadCalciteComponents as h}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as v}from"../../support/decorators/messageBundle.js";import{tsx as b}from"../../support/jsxFactory.js";let j=class extends n{constructor(o){super(o),this.colorPickerVisible=!0,this._valueSliderId=`value-slider-${i()}`,this._colorPickerId=`color-picker-${i()}`,this._valueSlider=new c({visibleElements:{labels:!1,rangeLabels:!1},steps:t(30,"minutes","milliseconds"),labelFormatFunction:(o,e)=>{const s=t(o,"milliseconds","hours");return"tick"===e?m(s,{maximumFractionDigits:0}):""}}),this._onColorChange=o=>{this.options.color=o}}initialize(){const o=({value:o})=>{this.options.value=o};this.addHandles([s((()=>{const{value:o,minValue:e,maxValue:s}=this.options;return{value:o,minValue:e,maxValue:s}}),(({value:o,minValue:e,maxValue:s})=>{const r=this._valueSlider;r.min=e,r.max=s,r.values=[o];const i=s-e,l=Math.floor(t(i,"milliseconds","hours"));r.tickConfigs=[{mode:"count",values:2*l+1,labelsVisible:!1},{mode:"count",values:l+1,labelsVisible:!0}]}),r),this._valueSlider.on("thumb-change",o),this._valueSlider.on("thumb-drag",o)])}loadDependencies(){return h({label:()=>import("@esri/calcite-components/dist/components/calcite-label")})}destroy(){this._valueSlider=e(this._valueSlider)}render(){const o=this._messages.threshold,{color:e}=this.options;return b("div",{class:p.base},b(u,{class:p.valueLabel,for:this._valueSliderId,label:o.valueLabel},this._valueSlider.render()),this.colorPickerVisible?b(d,{id:this._colorPickerId,label:o.colorLabel,value:e,onChange:this._onColorChange}):null)}get testData(){}};o([l()],j.prototype,"options",void 0),o([l()],j.prototype,"colorPickerVisible",void 0),o([l()],j.prototype,"testData",null),o([l()],j.prototype,"_valueSlider",void 0),o([l(),v("esri/widgets/ShadowCast/t9n/ShadowCast")],j.prototype,"_messages",void 0),j=o([a("esri.widgets.ShadowCast.components.ThresholdConfigurator")],j);export{j as ThresholdConfigurator};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../core/has.js";import{destroyMaybe as t}from"../../../core/maybe.js";import{watch as i,syncAndInitial as o}from"../../../core/reactiveUtils.js";import{convertTime as s}from"../../../core/timeUtils.js";import{generateUUID as r}from"../../../core/uuid.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as c}from"../../../core/accessorSupport/decorators/subclass.js";import{formatNumber as a}from"../../../intl/number.js";import n from"../../Slider.js";import d from"../../Widget.js";import{thresholdConfiguratorCss as h}from"../css.js";import{DiscreteConfigurator as p}from"./DiscreteConfigurator.js";import{ColorPicker as m}from"../../support/ColorPicker.js";import{loadCalciteComponents as u}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as b}from"../../support/decorators/messageBundle.js";import{tsx as v}from"../../support/jsxFactory.js";let g=class extends d{constructor(e){super(e),this.colorPickerVisible=!0,this.contextVisible=!0,this.contextToggleVisible=!0,this.contextTimeIntervalVisible=!0,this.contextColorPickerVisible=!0,this._valueSliderId=`value-slider-${r()}`,this._colorPickerId=`color-picker-${r()}`,this._discreteSwitchId=`discrete-switch-${r()}`,this._valueSlider=new n({visibleElements:{labels:!1,rangeLabels:!1},steps:s(30,"minutes","milliseconds"),labelFormatFunction:(e,t)=>{const i=s(e,"milliseconds","hours");return"tick"===t?a(i,{maximumFractionDigits:0}):""}}),this._onColorChange=e=>{this.options.color=e},this._onDiscreteEnabledChange=()=>{this.options.contextEnabled=this._discreteBlockSwitch.checked}}initialize(){const e=({value:e})=>{this.options.value=e};this.addHandles([i((()=>{const{value:e,minValue:t,maxValue:i}=this.options;return{value:e,minValue:t,maxValue:i}}),(({value:e,minValue:t,maxValue:i})=>{const o=this._valueSlider;o.min=t,o.max=i,o.values=[e];const r=i-t,l=Math.floor(s(r,"milliseconds","hours"));o.tickConfigs=[{mode:"count",values:2*l+1,labelsVisible:!1},{mode:"count",values:l+1,labelsVisible:!0}]}),o),this._valueSlider.on("thumb-change",e),this._valueSlider.on("thumb-drag",e)])}loadDependencies(){return u({label:()=>import("@esri/calcite-components/dist/components/calcite-label"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch")})}destroy(){this._valueSlider=t(this._valueSlider)}render(){const e=this._messages.threshold,{color:t}=this.options;return v("div",{class:h.base},v("calcite-label",{class:h.valueLabel,for:this._valueSliderId,key:this._valueSliderId,scale:"s"},e.valueLabel,this._valueSlider.render()),this.colorPickerVisible?v("calcite-label",{for:this._colorPickerId,key:this._colorPickerId,layout:"inline",scale:"s"},v(m,{id:this._colorPickerId,value:t,onChange:this._onColorChange}),e.colorLabel):null,this.contextVisible?this._renderDiscrete():null)}get testData(){}_renderDiscrete(){const{_messages:{threshold:e},options:{contextEnabled:t},contextToggleVisible:i}=this;return i||t?v("div",{class:h.discreteBlock},v("calcite-label",{classes:{[h.discreteLabel]:!0,expanded:t},for:this._discreteSwitchId,layout:i?"inline-space-between":"default",scale:"s"},v("span",null,e.discreteLabel),i?v("calcite-switch",{afterCreate:e=>this._discreteBlockSwitch=e,bind:this,checked:t,id:this._discreteSwitchId,scale:"s",onCalciteSwitchChange:this._onDiscreteEnabledChange}):null),t?this._renderDiscreteConfigurator():null):null}_renderDiscreteConfigurator(){const{threshold:e}=this._messages,{contextColorPickerVisible:t,contextTimeIntervalVisible:i,options:{contextOptions:o}}=this;return v(p,{colorPickerLabel:e.discreteColorLabel,colorPickerVisible:t,options:o,timeIntervalVisible:i})}};e([l()],g.prototype,"options",void 0),e([l()],g.prototype,"colorPickerVisible",void 0),e([l()],g.prototype,"contextVisible",void 0),e([l()],g.prototype,"contextToggleVisible",void 0),e([l()],g.prototype,"contextTimeIntervalVisible",void 0),e([l()],g.prototype,"contextColorPickerVisible",void 0),e([l()],g.prototype,"testData",null),e([l()],g.prototype,"_valueSlider",void 0),e([l(),b("esri/widgets/ShadowCast/t9n/ShadowCast")],g.prototype,"_messages",void 0),g=e([c("esri.widgets.ShadowCast.components.ThresholdConfigurator")],g);export{g as ThresholdConfigurator};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- const i="esri-shadow-cast",e={base:i,timeRange:`${i}__time-range`,timeRangeIndicator:`${i}__time-range__indicator`,datePickerContainer:`${i}__date-picker-container`,datePicker:`${i}__date-picker`,visualization:`${i}__visualization`,visualizationSelect:`${i}__visualization__select`,visualizationConfigHidden:`${i}__visualization__config--hidden`},a=`${i}__label`,_=`${i}__threshold-config`,t={base:_,valueLabel:`${_}__value-label`},n=`${i}__duration-config`,o={base:n,radioGroup:`${n}__radio-group`},r=`${i}__discrete-config`,c={base:r},s=`${i}__tooltip`,l={base:s,content:`${s}__content`};export{i as base,e as css,r as discreteConfiguratorBase,c as discreteConfiguratorCss,n as durationConfiguratorBase,o as durationConfiguratorCss,a as label,_ as thresholdConfiguratorBase,t as thresholdConfiguratorCss,s as tooltipBase,l as tooltipCss};
5
+ const e="esri-shadow-cast",i={base:e,timeRange:`${e}__time-range`,timeRangeIndicator:`${e}__time-range__indicator`,datePickerContainer:`${e}__date-picker-container`,datePicker:`${e}__date-picker`,visualization:`${e}__visualization`,visualizationSelect:`${e}__visualization__select`,visualizationConfigHidden:`${e}__visualization__config--hidden`},a=`${e}__label`,_=`${e}__threshold-config`,t={base:_,valueLabel:`${_}__value-label`,discreteBlock:`${_}__discrete-block`,discreteLabel:`${_}__discrete-label`},o=`${e}__duration-config`,n={base:o,radioGroup:`${o}__radio-group`},c=`${e}__discrete-config`,r={base:c},l=`${e}__tooltip`,s={base:l,content:`${l}__content`};export{e as base,i as css,c as discreteConfiguratorBase,r as discreteConfiguratorCss,o as durationConfiguratorBase,n as durationConfiguratorCss,a as label,_ as thresholdConfiguratorBase,t as thresholdConfiguratorCss,l as tooltipBase,s as tooltipCss};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import"../core/has.js";import{destroyMaybe as i}from"../core/maybe.js";import{watch as t,syncAndInitial as o}from"../core/reactiveUtils.js";import{convertTime as s}from"../core/timeUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import{substitute as a}from"../intl/substitute.js";import n from"./Slider.js";import d from"./Widget.js";import{css as c}from"./ShadowCast/css.js";import{ShadowCastState as m}from"./ShadowCast/ShadowCastState.js";import p from"./ShadowCast/ShadowCastViewModel.js";import h from"./ShadowCast/ShadowCastVisibleElements.js";import{ShadowVisualizationType as u}from"./ShadowCast/ShadowVisualizationType.js";import{DiscreteConfigurator as v}from"./ShadowCast/components/DiscreteConfigurator.js";import{DurationConfigurator as w}from"./ShadowCast/components/DurationConfigurator.js";import{ShadowTooltip as f}from"./ShadowCast/components/ShadowTooltip.js";import{ThresholdConfigurator as g}from"./ShadowCast/components/ThresholdConfigurator.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{globalCss as S}from"./support/globalCss.js";import{Heading as y}from"./support/Heading.js";import{timeStringFormattingOptions as _,formatSliderLabel as C,onPrimaryTickCreated as k,onSecondaryTickCreated as M,adjustTimeSliderForLocale as j}from"./support/timeWidgetUtils.js";import{TimezonePicker as T}from"./support/TimezonePicker.js";import"./support/widgetUtils.js";import{messageBundle as D}from"./support/decorators/messageBundle.js";import{tsx as z}from"./support/jsxFactory.js";import{onLocaleChange as V}from"../intl/locale.js";import{formatDate as O}from"../intl/date.js";var P;!function(e){e.Slider="slider"}(P||(P={}));const E={labelFormatFunction:C,min:0,max:1439,steps:15,rangeLabelInputsEnabled:!1,visibleElements:{labels:!1,rangeLabels:!1},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:(e,i,t)=>k({tickElement:i,labelElement:t})},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:(e,i)=>M({tickElement:i})}]};let R=class extends d{constructor(e,i){super(e,i),this.viewModel=null,this.headingLevel=4,this.visibleElements=new h,this._defaultViewModel=null,this._timeSlider=new n({...E,container:document.createElement("div")}),this._tooltip=null,this._onTimezoneChange=e=>{this.viewModel.utcOffset=e},this._onDateChange=e=>{const i=e.currentTarget.valueAsDate;this.viewModel.date=Array.isArray(i)?i[0]:i},e?.viewModel||(this._defaultViewModel=new p({view:e?.view}),this.viewModel=this._defaultViewModel)}initialize(){this.addHandles([t((()=>({viewModel:this.viewModel,slider:this._timeSlider})),(e=>this._connectTimeSlider(e)),o),t((()=>({container:this.view?.surface,viewModel:this.viewModel,tooltipVisible:this.visibleElements.tooltip})),(({container:e,viewModel:t,tooltipVisible:o})=>{this._tooltip=i(this._tooltip),null!=e&&o&&(this._tooltip=new f({viewModel:t,container:e}))}),o),t((()=>({viewModel:this.viewModel,visible:this.visible})),(({viewModel:e,visible:i})=>e.setRunning(i)),o)])}destroy(){this._timeSlider=i(this._timeSlider),this._tooltip=i(this._tooltip),null!=this._defaultViewModel&&this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}loadDependencies(){return b({"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}render(){const{visibleElements:e,viewModel:i}=this,t=i.state===m.Disabled;return z("div",{class:this.classes(c.base,S.widget,S.panel,{[S.widgetDisabled]:t}),key:this},this._renderTimeRangeSection(),e.visualizationOptions?this._renderVisualizationOptionsSection():null)}get view(){return this.viewModel?.view}set view(e){this.viewModel&&(this.viewModel.view=e)}get icon(){return"measure-building-height-shadow"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get testData(){}_connectTimeSlider({viewModel:e,slider:i}){if(this.removeHandles(P.Slider),null==i)return;const l=e=>s(e,"milliseconds","minutes"),r=e=>s(e,"minutes","milliseconds"),a=({index:i,value:t})=>{0===i?e.startTimeOfDay=r(t):e.endTimeOfDay=r(t)},n=()=>j(i.domNode);n(),this.addHandles([t((()=>[e.startTimeOfDay,e.endTimeOfDay]),(e=>{i.values=e.map(l)}),o),i.on("thumb-change",a),i.on("thumb-drag",a),i.on("segment-drag",(()=>{[e.startTimeOfDay,e.endTimeOfDay]=i.values.map(r)})),V(n)],P.Slider)}_renderTimeRangeSection(){const{visibleElements:e}=this;return e.timeRangeSlider||e.datePicker?z("section",{class:c.timeRange,key:"time-range"},z(y,{level:this.headingLevel},this.messages.timeLabel),e.timeRangeSlider?this._renderTimeRange():null,e.datePicker?this._renderDatePicker():null):null}_renderTimeRange(){const{messages:e,viewModel:i,visibleElements:t}=this,{startTimeOfDay:o,endTimeOfDay:s}=i,[l,r]=[o,s].map((e=>O(new Date(e),_)));return[z("div",{class:c.timeRangeIndicator,key:"time-range-indicator"},a(e.timeRange,{start:l,end:r}),t.timezone?z(T,{disabled:this._timeSlider?.disabled,value:i.utcOffset,onChange:this._onTimezoneChange}):null),z("div",{afterCreate:this._timeSliderContainerAfterCreate,afterRemoved:this._timeSliderContainerAfterRemoved,bind:this,key:"time-slider-container"})]}_timeSliderContainerAfterCreate(e){const i=this._timeSlider?.container;i&&e.appendChild(i)}_timeSliderContainerAfterRemoved(e){const i=this._timeSlider?.container;i&&e.removeChild(i)}_renderDatePicker(){return z("div",{class:c.datePickerContainer,key:c.datePickerContainer},z("calcite-input-date-picker",{class:c.datePicker,"data-testid":"date-picker",key:c.datePicker,overlayPositioning:"fixed",placement:"bottom",valueAsDate:this.viewModel.date,onCalciteInputDatePickerChange:this._onDateChange}))}_renderVisualizationOptionsSection(){const{headingLevel:e,messages:i,viewModel:t,visibleElements:o}=this,s=o.colorPicker,l=e=>this.classes(t.visualizationType===e?null:c.visualizationConfigHidden);return z("section",{class:c.visualization,key:"visualization"},z(y,{level:e},i.visualizationLabel),this._renderVisualizationSelect(),z("div",{class:l(u.Threshold),key:"threshold-configurator"},z(g,{colorPickerVisible:s,options:t.thresholdOptions})),z("div",{class:l(u.Duration),key:"duration-configurator"},z(w,{colorPickerVisible:s,options:t.durationOptions})),z("div",{class:l(u.Discrete),key:"discrete-configurator"},z(v,{colorPickerVisible:s,options:t.discreteOptions})))}_renderVisualizationSelect(){const e=this.messages,i=this.viewModel.visualizationType;return z("calcite-select",{bind:this,class:c.visualizationSelect,key:"visualization-select",label:e.visualizationLabel,onCalciteSelectChange:this._onVisualizationTypeChange},[{type:u.Threshold,label:e.threshold.label},{type:u.Duration,label:e.duration.label},{type:u.Discrete,label:e.discrete.label}].map((({type:e,label:t})=>z("calcite-option",{selected:e===i,value:e},t))))}_onVisualizationTypeChange(e){const i=e.currentTarget.selectedOption?.value;this.viewModel.visualizationType=i??u.Threshold}};e([l()],R.prototype,"viewModel",void 0),e([l()],R.prototype,"view",null),e([l()],R.prototype,"headingLevel",void 0),e([l()],R.prototype,"icon",null),e([l()],R.prototype,"label",null),e([l({type:h,nonNullable:!0})],R.prototype,"visibleElements",void 0),e([l(),D("esri/widgets/ShadowCast/t9n/ShadowCast")],R.prototype,"messages",void 0),e([l()],R.prototype,"_defaultViewModel",void 0),e([l()],R.prototype,"_timeSlider",void 0),e([l()],R.prototype,"_tooltip",void 0),R=e([r("esri.widgets.ShadowCast")],R);const L=R;export{L as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import"../core/has.js";import{destroyMaybe as i}from"../core/maybe.js";import{watch as t,syncAndInitial as o}from"../core/reactiveUtils.js";import{convertTime as s}from"../core/timeUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import{substitute as a}from"../intl/substitute.js";import n from"./Slider.js";import d from"./Widget.js";import{css as c}from"./ShadowCast/css.js";import{ShadowCastState as m}from"./ShadowCast/ShadowCastState.js";import p from"./ShadowCast/ShadowCastViewModel.js";import h from"./ShadowCast/ShadowCastVisibleElements.js";import{ShadowVisualizationType as u}from"./ShadowCast/ShadowVisualizationType.js";import{DiscreteConfigurator as v}from"./ShadowCast/components/DiscreteConfigurator.js";import{DurationConfigurator as g}from"./ShadowCast/components/DurationConfigurator.js";import{ShadowTooltip as w}from"./ShadowCast/components/ShadowTooltip.js";import{ThresholdConfigurator as f}from"./ShadowCast/components/ThresholdConfigurator.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{globalCss as C}from"./support/globalCss.js";import{Heading as S}from"./support/Heading.js";import{timeStringFormattingOptions as y,formatSliderLabel as _,onPrimaryTickCreated as k,onSecondaryTickCreated as M,adjustTimeSliderForLocale as T}from"./support/timeWidgetUtils.js";import{TimezonePicker as j}from"./support/TimezonePicker.js";import"./support/widgetUtils.js";import{messageBundle as D}from"./support/decorators/messageBundle.js";import{tsx as V}from"./support/jsxFactory.js";import{onLocaleChange as z}from"../intl/locale.js";import{formatDate as O}from"../intl/date.js";var P;!function(e){e.Slider="slider"}(P||(P={}));const x={labelFormatFunction:_,min:0,max:1439,steps:15,rangeLabelInputsEnabled:!1,visibleElements:{labels:!1,rangeLabels:!1},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:(e,i,t)=>k({tickElement:i,labelElement:t})},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:(e,i)=>M({tickElement:i})}]};let E=class extends d{constructor(e,i){super(e,i),this.viewModel=null,this.headingLevel=4,this.visibleElements=new h,this._defaultViewModel=null,this._timeSlider=new n({...x,container:document.createElement("div")}),this._tooltip=null,this._onTimezoneChange=e=>{this.viewModel.utcOffset=e},this._onDateChange=e=>{const i=e.currentTarget.valueAsDate;this.viewModel.date=Array.isArray(i)?i[0]:i},e?.viewModel||(this._defaultViewModel=new p({view:e?.view}),this.viewModel=this._defaultViewModel)}initialize(){this.addHandles([t((()=>({viewModel:this.viewModel,slider:this._timeSlider})),(e=>this._connectTimeSlider(e)),o),t((()=>({container:this.view?.surface,viewModel:this.viewModel,tooltipVisible:this.visibleElements.tooltip})),(({container:e,viewModel:t,tooltipVisible:o})=>{this._tooltip=i(this._tooltip),null!=e&&o&&(this._tooltip=new w({viewModel:t,container:e}))}),o),t((()=>({viewModel:this.viewModel,visible:this.visible})),(({viewModel:e,visible:i})=>e.setRunning(i)),o)])}destroy(){this._timeSlider=i(this._timeSlider),this._tooltip=i(this._tooltip),null!=this._defaultViewModel&&this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}loadDependencies(){return b({"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}render(){const{visibleElements:e,viewModel:i}=this,t=i.state===m.Disabled;return V("div",{class:this.classes(c.base,C.widget,C.panel,{[C.widgetDisabled]:t}),key:this},this._renderTimeRangeSection(),e.visualizationOptions?this._renderVisualizationOptionsSection():null)}get view(){return this.viewModel?.view}set view(e){this.viewModel&&(this.viewModel.view=e)}get icon(){return"measure-building-height-shadow"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get testData(){}_connectTimeSlider({viewModel:e,slider:i}){if(this.removeHandles(P.Slider),null==i)return;const l=e=>s(e,"milliseconds","minutes"),r=e=>s(e,"minutes","milliseconds"),a=({index:i,value:t})=>{0===i?e.startTimeOfDay=r(t):e.endTimeOfDay=r(t)},n=()=>T(i.domNode);n(),this.addHandles([t((()=>[e.startTimeOfDay,e.endTimeOfDay]),(e=>{i.values=e.map(l)}),o),i.on("thumb-change",a),i.on("thumb-drag",a),i.on("segment-drag",(()=>{[e.startTimeOfDay,e.endTimeOfDay]=i.values.map(r)})),z(n)],P.Slider)}_renderTimeRangeSection(){const{visibleElements:e}=this;return e.timeRangeSlider||e.datePicker?V("section",{class:c.timeRange,key:"time-range"},V(S,{level:this.headingLevel},this.messages.timeLabel),e.timeRangeSlider?this._renderTimeRange():null,e.datePicker?this._renderDatePicker():null):null}_renderTimeRange(){const{messages:e,viewModel:i,visibleElements:t}=this,{startTimeOfDay:o,endTimeOfDay:s}=i,[l,r]=[o,s].map((e=>O(new Date(e),y)));return[V("div",{class:c.timeRangeIndicator,key:"time-range-indicator"},a(e.timeRange,{start:l,end:r}),t.timezone?V(j,{disabled:this._timeSlider?.disabled,value:i.utcOffset,onChange:this._onTimezoneChange}):null),V("div",{afterCreate:this._timeSliderContainerAfterCreate,afterRemoved:this._timeSliderContainerAfterRemoved,bind:this,key:"time-slider-container"})]}_timeSliderContainerAfterCreate(e){const i=this._timeSlider?.container;i&&e.appendChild(i)}_timeSliderContainerAfterRemoved(e){const i=this._timeSlider?.container;i&&e.removeChild(i)}_renderDatePicker(){return V("div",{class:c.datePickerContainer,key:c.datePickerContainer},V("calcite-input-date-picker",{class:c.datePicker,"data-testid":"date-picker",key:c.datePicker,overlayPositioning:"fixed",placement:"bottom",scale:"s",valueAsDate:this.viewModel.date,onCalciteInputDatePickerChange:this._onDateChange}))}_renderVisualizationOptionsSection(){const{headingLevel:e,messages:i,viewModel:t,visibleElements:o}=this,{colorPicker:s,thresholdContext:l,thresholdContextToggle:r,thresholdContextTimeInterval:a,thresholdContextColor:n}=o,d=e=>this.classes(t.visualizationType===e?null:c.visualizationConfigHidden);return V("section",{class:c.visualization,key:"visualization"},V(S,{level:e},i.visualizationLabel),this._renderVisualizationSelect(),V("div",{class:d(u.Threshold),key:"threshold-configurator"},V(f,{colorPickerVisible:s,contextColorPickerVisible:n,contextTimeIntervalVisible:a,contextToggleVisible:r,contextVisible:l,options:t.thresholdOptions})),V("div",{class:d(u.Duration),key:"duration-configurator"},V(g,{colorPickerVisible:s,options:t.durationOptions})),V("div",{class:d(u.Discrete),key:"discrete-configurator"},V(v,{colorPickerVisible:s,options:t.discreteOptions})))}_renderVisualizationSelect(){const e=this.messages,i=this.viewModel.visualizationType;return V("calcite-select",{bind:this,class:c.visualizationSelect,key:"visualization-select",label:e.visualizationLabel,scale:"s",onCalciteSelectChange:this._onVisualizationTypeChange},[{type:u.Threshold,label:e.threshold.label},{type:u.Duration,label:e.duration.label},{type:u.Discrete,label:e.discrete.label}].map((({type:e,label:t})=>V("calcite-option",{selected:e===i,value:e},t))))}_onVisualizationTypeChange(e){const i=e.currentTarget.selectedOption?.value;this.viewModel.visualizationType=i??u.Threshold}};e([l()],E.prototype,"viewModel",void 0),e([l()],E.prototype,"view",null),e([l()],E.prototype,"headingLevel",void 0),e([l()],E.prototype,"icon",null),e([l()],E.prototype,"label",null),e([l({type:h,nonNullable:!0})],E.prototype,"visibleElements",void 0),e([l(),D("esri/widgets/ShadowCast/t9n/ShadowCast")],E.prototype,"messages",void 0),e([l()],E.prototype,"_defaultViewModel",void 0),e([l()],E.prototype,"_timeSlider",void 0),e([l()],E.prototype,"_tooltip",void 0),E=e([r("esri.widgets.ShadowCast")],E);const R=E;export{R 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.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import{createTask as s}from"../../core/asyncUtils.js";import"../../core/has.js";import i from"../../core/Logger.js";import{abortMaybe as n,removeMaybe as r}from"../../core/maybe.js";import{throwIfAborted as a,isAbortError as o,isAborted as l}from"../../core/promiseUtils.js";import{watch as c,syncAndInitial as h,sync as p,whenOnce as w,when as y}from"../../core/reactiveUtils.js";import{property as u}from"../../core/accessorSupport/decorators/property.js";import"../../core/RandomLCG.js";import{subclass as d}from"../../core/accessorSupport/decorators/subclass.js";var v;!function(e){e[e.PENDING=0]="PENDING",e[e.WAIT_FOR_VIEW_READY=1]="WAIT_FOR_VIEW_READY",e[e.RUNNING=2]="RUNNING"}(v||(v={}));let _=class extends t{constructor(e={}){super(e),this.view=null,this.analysisView=null,this._reconnectViewTask=null,this._forceInteractiveHandle=null,this._parentChangeFromReconnect=!1,this._startUserOperation=null;const t=e?.analysis;null!=t?this.analysis=t:(this._set("analysis",this.constructAnalysis()),this._set("isAnalysisOwner",!0)),null!=e?.visible&&(this.visible=e.visible)}normalizeCtorArgs(e){const{analysis:t,...s}=e;return s}initialize(){this.addHandles([c((()=>({readyAndNotSupported:null!=this.view&&this.view.ready&&!this.supported})),(({readyAndNotSupported:e})=>{e&&i.getLogger(this).errorOnce(this.unsupportedErrorMessage)}),h),c((()=>this.analysis?.parent),(e=>{this._parentChangeFromReconnect||e===this.view||this._set("isAnalysisOwner",!1);const t=!this._parentChangeFromReconnect;this._parentChangeFromReconnect=!1,t&&this._scheduleViewReconnect()}),p),c((()=>({view:this.view,ready:null!=this.view&&this.view.ready,supported:this.supported})),(({view:e},t)=>{const s=t?.view;e!==s&&(this._startUserOperation=n(this._startUserOperation),this._disconnectFromView(s)),this._scheduleViewReconnect()}),h)])}destroy(){this._reconnectViewTask=n(this._reconnectViewTask),this._startUserOperation=n(this._startUserOperation),null!=this.analysisView&&(this.analysisView.visible=void 0),this._disconnectFromView(this.view),this._set("view",null),null!=this.analysis&&this.isAnalysisOwner&&(this.analysis.destroy(),this._set("analysis",null))}get supported(){return null==this.view||this.view.type===this.supportedViewType}set visible(e){this._set("visible",e),null!=this.analysisView&&(this.analysisView.visible=e)}get active(){return null!=this.tool&&this.tool.active}get disabled(){return null==this.view||!this.view.ready||!this.supported}set analysis(e){e!==this._get("analysis")&&(this._startUserOperation=n(this._startUserOperation),this._disconnectFromView(this.view),this._setExternalAnalysis(e),this._scheduleViewReconnect())}get ready(){return null!=this.analysisView&&!this.connectingToView}get connectingToView(){return null!=this._reconnectViewTask}get isAnalysisOwner(){return this._get("isAnalysisOwner")}get tool(){return this.analysisView?.tool}clear(){this._startUserOperation=n(this._startUserOperation),this._resetInteractiveCreationState(),null!=this.tool&&null!=this.view&&this.view.activeTool===this.tool&&(this.view.activeTool=null)}async start(){if(!this.visible)return void i.getLogger(this).warn("Cannot start analysis when not visible");this.clear();const e={task:null,abort:null,state:v.PENDING},t=s((async t=>{if(e.state=v.WAIT_FOR_VIEW_READY,await w((()=>this.ready),t),e.state=v.RUNNING,null==this.analysisView||null==this.view)return;const s=this.analysisView.tool;null!=s&&(this.view.activeTool=s,y((()=>s.created),(()=>{s.active&&null!=this.view&&(this.view.activeTool=null)}),{initial:!0,once:!0}))}));return e.task=t,e.abort=()=>t.abort(),this._startUserOperation=e,t.promise}onConnectToAnalysisView(e){}onDisconnectFromAnalysisView(){}_scheduleViewReconnect(){this._reconnectViewTask=n(this._reconnectViewTask);const e=s((async t=>{try{await this._reconnectView(t)}catch(s){if(a(t),!o(s))return void i.getLogger(this).warn("Failed to use analysis in view model",s);throw s}finally{e===this._reconnectViewTask&&(this._reconnectViewTask=null)}}));this._reconnectViewTask=e}async _reconnectView(e){const{view:t}=this,s=null!=t&&t.ready&&this.supported,n=this.analysis;if(this._startUserOperation=V(this._startUserOperation),this._disconnectFromView(t),s&&null!=t&&null!=n){if(this.isAnalysisOwner){if(null!=n.parent)return void i.getLogger(this).errorOnce("expected owned analysis to have null parent when connecting to view");this._parentChangeFromReconnect=!0,t.analyses.add(n)}this.analysisView=await t.whenAnalysisView(n),l(e)?this._startUserOperation=V(this._startUserOperation):(this.analysisView.visible=this.visible,this._forceInteractiveHandle=this.analysisView.forceInteractiveForViewModel(),this.addHandles(this._forceInteractiveHandle),this.onConnectToAnalysisView(this.analysisView))}}_disconnectFromView(e){null!=e&&this.isAnalysisOwner&&e.analyses.includes(this.analysis)&&(this._parentChangeFromReconnect=!0,this.analysis.clear(),e.analyses.remove(this.analysis)),this.onDisconnectFromAnalysisView(),this._forceInteractiveHandle=r(this._forceInteractiveHandle),this.analysisView=null}_setExternalAnalysis(e){null==this.analysisView||this.isAnalysisOwner||(this.analysisView.visible=void 0,this._forceInteractiveHandle=r(this._forceInteractiveHandle)),this.analysisView=null,this._set("isAnalysisOwner",!1),this._set("analysis",e),this._parentChangeFromReconnect=!1}_resetInteractiveCreationState(){this.analysis.clear(),this.tool?.resetCreated()}get testInfo(){}};function V(e){return null!=e&&e.state>=v.RUNNING?(e.abort(),null):e}e([u()],_.prototype,"supported",null),e([u()],_.prototype,"view",void 0),e([u({type:Boolean,value:!0})],_.prototype,"visible",null),e([u()],_.prototype,"active",null),e([u()],_.prototype,"disabled",null),e([u({nonNullable:!0})],_.prototype,"analysis",null),e([u()],_.prototype,"analysisView",void 0),e([u()],_.prototype,"ready",null),e([u()],_.prototype,"connectingToView",null),e([u({readOnly:!0})],_.prototype,"isAnalysisOwner",null),e([u()],_.prototype,"_reconnectViewTask",void 0),e([u()],_.prototype,"_forceInteractiveHandle",void 0),e([u()],_.prototype,"tool",null),_=e([d("esri.widgets.support.AnalysisViewModel")],_);export{_ as AnalysisViewModel};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import{createTask as s}from"../../core/asyncUtils.js";import"../../core/has.js";import i from"../../core/Logger.js";import{abortMaybe as n,removeMaybe as r}from"../../core/maybe.js";import{throwIfAborted as a,isAbortError as o,isAborted as l}from"../../core/promiseUtils.js";import{watch as c,syncAndInitial as h,sync as p,whenOnce as w,when as y}from"../../core/reactiveUtils.js";import{property as u}from"../../core/accessorSupport/decorators/property.js";import"../../core/RandomLCG.js";import{subclass as d}from"../../core/accessorSupport/decorators/subclass.js";var v;!function(e){e[e.PENDING=0]="PENDING",e[e.WAIT_FOR_VIEW_READY=1]="WAIT_FOR_VIEW_READY",e[e.RUNNING=2]="RUNNING"}(v||(v={}));let _=class extends t{constructor(e={}){super(e),this.view=null,this.analysisView=null,this._reconnectViewTask=null,this._forceInteractiveHandle=null,this._parentChangeFromReconnect=!1,this._startUserOperation=null;const t=e?.analysis;null!=t?this.analysis=t:(this._set("analysis",this.constructAnalysis()),this._set("isAnalysisOwner",!0)),null!=e?.visible&&(this.visible=e.visible)}normalizeCtorArgs(e){const{analysis:t,...s}=e;return s}initialize(){this.addHandles([c((()=>({readyAndNotSupported:null!=this.view&&this.view.ready&&!this.supported})),(({readyAndNotSupported:e})=>{e&&i.getLogger(this).errorOnce(this.unsupportedErrorMessage)}),h),c((()=>this.analysis?.parent),(e=>{this._parentChangeFromReconnect||e===this.view||this._set("isAnalysisOwner",!1);const t=!this._parentChangeFromReconnect;this._parentChangeFromReconnect=!1,t&&this._scheduleViewReconnect()}),p),c((()=>({view:this.view,ready:null!=this.view&&this.view.ready,supported:this.supported})),(({view:e},t)=>{const s=t?.view;e!==s&&(this._startUserOperation=n(this._startUserOperation),this._disconnectFromView(s)),this._scheduleViewReconnect()}),h)])}destroy(){this._reconnectViewTask=n(this._reconnectViewTask),this._startUserOperation=n(this._startUserOperation),null!=this.analysisView&&(this.analysisView.visible=void 0),this._disconnectFromView(this.view),this._set("view",null),null!=this.analysis&&this.isAnalysisOwner&&(this.analysis.destroy(),this._set("analysis",null))}get supported(){return null==this.view||this.view.type===this.supportedViewType}set visible(e){this._set("visible",e),null!=this.analysisView&&(this.analysisView.visible=e)}get active(){return null!=this.tool&&this.tool.active}get disabled(){return null==this.view||!this.view.ready||!this.supported}set analysis(e){e!==this._get("analysis")&&(this._startUserOperation=n(this._startUserOperation),this._disconnectFromView(this.view),this._setExternalAnalysis(e),this._scheduleViewReconnect())}get ready(){return null!=this.analysisView&&!this.connectingToView}get connectingToView(){return null!=this._reconnectViewTask}get isAnalysisOwner(){return this._get("isAnalysisOwner")}get tool(){return this.analysisView?.tool}clear(){this._startUserOperation=n(this._startUserOperation),this._resetInteractiveCreationState(),null!=this.tool&&null!=this.view&&this.view.activeTool===this.tool&&(this.view.activeTool=null)}async start(){if(!this.visible)return void i.getLogger(this).warn("Cannot start analysis when not visible");this.clear();const e={task:null,abort:null,state:v.PENDING},t=s((async t=>{if(e.state=v.WAIT_FOR_VIEW_READY,await w((()=>this.ready),t),e.state=v.RUNNING,null==this.analysisView||null==this.view)return;const s=this.analysisView.tool;null!=s&&(this.view.activeTool=s,y((()=>s.created),(()=>{s.active&&null!=this.view&&(this.view.activeTool=null)}),{initial:!0,once:!0}))}));return e.task=t,e.abort=()=>t.abort(),this._startUserOperation=e,t.promise}onConnectToAnalysisView(e){}onDisconnectFromAnalysisView(){}_scheduleViewReconnect(){this._reconnectViewTask=n(this._reconnectViewTask);const e=s((async t=>{try{await this._reconnectView(t)}catch(s){if(a(t),!o(s))return void i.getLogger(this).warn("Failed to use analysis in view model",s);throw s}finally{e===this._reconnectViewTask&&(this._reconnectViewTask=null)}}));this._reconnectViewTask=e}async _reconnectView(e){const{view:t}=this,s=null!=t&&t.ready&&this.supported,n=this.analysis;if(this._startUserOperation=V(this._startUserOperation),this._disconnectFromView(t),s&&null!=t&&null!=n){if(this.isAnalysisOwner){if(null!=n.parent)return void i.getLogger(this).errorOnce("expected owned analysis to have null parent when connecting to view");this._parentChangeFromReconnect=!0,t.analyses.add(n)}this.analysisView=await t.whenAnalysisView(n),l(e)?this._startUserOperation=V(this._startUserOperation):(this.analysisView.visible=this.visible,this._forceInteractiveHandle=this.analysisView.forceInteractive(),this.addHandles(this._forceInteractiveHandle),this.onConnectToAnalysisView(this.analysisView))}}_disconnectFromView(e){null!=e&&this.isAnalysisOwner&&e.analyses.includes(this.analysis)&&(this._parentChangeFromReconnect=!0,this.analysis.clear(),e.analyses.remove(this.analysis)),this.onDisconnectFromAnalysisView(),this._forceInteractiveHandle=r(this._forceInteractiveHandle),this.analysisView=null}_setExternalAnalysis(e){null==this.analysisView||this.isAnalysisOwner||(this.analysisView.visible=void 0,this._forceInteractiveHandle=r(this._forceInteractiveHandle)),this.analysisView=null,this._set("isAnalysisOwner",!1),this._set("analysis",e),this._parentChangeFromReconnect=!1}_resetInteractiveCreationState(){this.analysis.clear(),this.tool?.resetCreated()}get testInfo(){}};function V(e){return null!=e&&e.state>=v.RUNNING?(e.abort(),null):e}e([u()],_.prototype,"supported",null),e([u()],_.prototype,"view",void 0),e([u({type:Boolean,value:!0})],_.prototype,"visible",null),e([u()],_.prototype,"active",null),e([u()],_.prototype,"disabled",null),e([u({nonNullable:!0})],_.prototype,"analysis",null),e([u()],_.prototype,"analysisView",void 0),e([u()],_.prototype,"ready",null),e([u()],_.prototype,"connectingToView",null),e([u({readOnly:!0})],_.prototype,"isAnalysisOwner",null),e([u()],_.prototype,"_reconnectViewTask",void 0),e([u()],_.prototype,"_forceInteractiveHandle",void 0),e([u()],_.prototype,"tool",null),_=e([d("esri.widgets.support.AnalysisViewModel")],_);export{_ as AnalysisViewModel};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import o from"../../Color.js";import{watch as t,syncAndInitial as r}from"../../core/reactiveUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import n from"../Widget.js";import{loadCalciteComponents as a}from"./componentsUtils.js";import"./widgetUtils.js";import{messageBundle as p}from"./decorators/messageBundle.js";import{tsx as c}from"./jsxFactory.js";const l="esri-color-picker",u={base:l,backgroundPattern:`${l}__bg-pattern`,toggleButton:`${l}__toggle-button`,popover:`${l}__popover`};let d=class extends n{constructor(e,t){super(e,t),this.value=new o,this.alphaEnabled=!0,this._containerElement=null,this._button=null,this._open=!1,this._onColorInput=e=>{const t=e.currentTarget.value,r="string"==typeof t?new o(t):new o;this.value=r,this.onChange?.(r)}}initialize(){this.addHandles(t((()=>({container:this._containerElement,value:this.value})),(({container:e,value:o})=>{e?.style.setProperty("--esri-color-picker-value",o.toCss(!0))}),r))}loadDependencies(){return a({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),"color-picker":()=>import("@esri/calcite-components/dist/components/calcite-color-picker"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover")})}render(){const e=this._messages,o=this._open?e.close:e.open;return c("div",{afterCreate:e=>this._containerElement=e,class:this.classes(u.base,this.class)},c("div",{class:u.backgroundPattern,key:"background-pattern"}),c("calcite-button",{afterCreate:e=>this._button=e,appearance:"transparent",class:u.toggleButton,key:"popover-trigger",kind:"neutral",label:o,scale:"s",tabIndex:-1,title:o}),c("calcite-popover",{autoClose:!0,class:u.popover,key:"popover",label:e.label,overlayPositioning:"fixed",referenceElement:this._button,onCalcitePopoverClose:()=>this._open=!1,onCalcitePopoverOpen:()=>this._open=!0},c("calcite-color-picker",{alphaChannel:this.alphaEnabled,channelsDisabled:!0,key:"color-picker",savedDisabled:!0,value:this.value.toCss(!0),onCalciteColorPickerInput:this._onColorInput})))}};e([s()],d.prototype,"class",void 0),e([s()],d.prototype,"value",void 0),e([s()],d.prototype,"alphaEnabled",void 0),e([s()],d.prototype,"onChange",void 0),e([s()],d.prototype,"_containerElement",void 0),e([s()],d.prototype,"_button",void 0),e([s()],d.prototype,"_open",void 0),e([s(),p("esri/widgets/support/t9n/ColorPicker")],d.prototype,"_messages",void 0),d=e([i("esri.widgets.support.ColorPicker")],d);export{d as ColorPicker};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import o from"../../Color.js";import{watch as t,syncAndInitial as r}from"../../core/reactiveUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import n from"../Widget.js";import{loadCalciteComponents as a}from"./componentsUtils.js";import"./widgetUtils.js";import{messageBundle as p}from"./decorators/messageBundle.js";import{tsx as c}from"./jsxFactory.js";const l="esri-color-picker",u={base:l,backgroundPattern:`${l}__bg-pattern`,toggleButton:`${l}__toggle-button`,popover:`${l}__popover`};let d=class extends n{constructor(e,t){super(e,t),this.value=new o,this.alphaEnabled=!0,this._containerElement=null,this._button=null,this._open=!1,this._onColorInput=e=>{const t=e.currentTarget.value,r="string"==typeof t?new o(t):new o;this.value=r,this.onChange?.(r)}}initialize(){this.addHandles(t((()=>({container:this._containerElement,value:this.value})),(({container:e,value:o})=>{e?.style.setProperty("--esri-color-picker-value",o.toCss(!0))}),r))}loadDependencies(){return a({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),"color-picker":()=>import("@esri/calcite-components/dist/components/calcite-color-picker"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover")})}render(){const e=this._messages,o=this._open?e.close:e.open;return c("div",{afterCreate:e=>this._containerElement=e,class:this.classes(u.base,this.class)},c("div",{class:u.backgroundPattern,key:"background-pattern"}),c("calcite-button",{afterCreate:e=>this._button=e,appearance:"transparent",class:u.toggleButton,key:"popover-trigger",kind:"neutral",label:o,scale:"s",tabIndex:0,title:o}),c("calcite-popover",{autoClose:!0,class:u.popover,key:"popover",label:e.label,overlayPositioning:"fixed",referenceElement:this._button,onCalcitePopoverClose:()=>this._open=!1,onCalcitePopoverOpen:()=>this._open=!0},c("calcite-color-picker",{alphaChannel:this.alphaEnabled,channelsDisabled:!0,key:"color-picker",savedDisabled:!0,value:this.value.toCss(!0),onCalciteColorPickerInput:this._onColorInput})))}};e([s()],d.prototype,"class",void 0),e([s()],d.prototype,"value",void 0),e([s()],d.prototype,"alphaEnabled",void 0),e([s()],d.prototype,"onChange",void 0),e([s()],d.prototype,"_containerElement",void 0),e([s()],d.prototype,"_button",void 0),e([s()],d.prototype,"_open",void 0),e([s(),p("esri/widgets/support/t9n/ColorPicker")],d.prototype,"_messages",void 0),d=e([i("esri.widgets.support.ColorPicker")],d);export{d as ColorPicker};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../Widget.js";import{loadCalciteComponents as i}from"./componentsUtils.js";import{getTimezoneInfos as n}from"./timeWidgetUtils.js";import"./widgetUtils.js";import{messageBundle as r}from"./decorators/messageBundle.js";import{tsx as p}from"./jsxFactory.js";const c="esri-timezone-picker",d={base:c,trigger:`${c}__trigger`,itemTitle:`${c}__item-title`,itemDescription:`${c}__item_description`};let l=class extends s{constructor(t,e){super(t,e),this.disabled=!1,this.value=null,this.onChange=null,this.open=!1,this.onOpen=null,this.onClose=null,this._selectedId=null,this._onOpen=()=>{this.open=!0,this.onOpen?.()},this._onClose=()=>{this.open=!1,this.onClose?.()},this._killEvent=t=>(t.stopPropagation(),!0),this._onChange=t=>{const e=t.target.selectedItems?.[0].getAttribute("data-id"),o=a(this._gmtOffsets,e)?.utcOffset;null!=o&&(this._selectedId=e,this.onChange?.(o))}}loadDependencies(){return i({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item")})}render(){const t=this._messages;if(!t)return p("div",{class:d.base,key:"empty"});const e=this._selectedItem,o=u(e);return p("div",{class:d.base,key:"container",onpointerdown:this._killEvent},p("calcite-dropdown",{disabled:this.disabled,open:this.open,overlayPositioning:"fixed",placement:"bottom-end",scale:"s",onCalciteDropdownClose:this._onClose,onCalciteDropdownOpen:this._onOpen,onCalciteDropdownSelect:this._onChange},p("calcite-button",{appearance:"transparent",class:d.trigger,"data-testid":"timezone-picker-button",disabled:this.disabled,key:"trigger",kind:"neutral",scale:"s",slot:"trigger",tabIndex:0,title:t.chooseTimezone},e?.short??""),p("calcite-dropdown-group",{selectionMode:"single"},this._gmtOffsets.map((t=>{const e=u(t);return p("calcite-dropdown-item",{"data-id":e,"data-testid":e,key:e,selected:o===e},p("div",{class:d.itemTitle,key:"title"},t.shortWithUTC),p("div",{class:d.itemDescription,key:"description"},t.long))})))))}get _gmtOffsets(){const t=this._messages;return t?n(t):[]}get _selectedItem(){const t=this._gmtOffsets,e=this.value,o=a(t,this._selectedId);return o?.utcOffset===e?o:m(t,e)}};function a(t,e){return t.find((t=>u(t)===e))}function m(t,e){return t.find((t=>t.utcOffset===e))}function u(t){return t?`${t.utcOffset}-${t.long}`:void 0}t([e()],l.prototype,"disabled",void 0),t([e()],l.prototype,"value",void 0),t([e()],l.prototype,"onChange",void 0),t([e()],l.prototype,"open",void 0),t([e()],l.prototype,"onOpen",void 0),t([e()],l.prototype,"onClose",void 0),t([e(),r("esri/widgets/support/t9n/timezone")],l.prototype,"_messages",void 0),t([e()],l.prototype,"_gmtOffsets",null),t([e()],l.prototype,"_selectedItem",null),t([e()],l.prototype,"_selectedId",void 0),l=t([o("esri.widgets.support.TimezonePicker")],l);export{l as TimezonePicker,d as css};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../Widget.js";import{loadCalciteComponents as i}from"./componentsUtils.js";import{getTimezoneInfos as n}from"./timeWidgetUtils.js";import"./widgetUtils.js";import{messageBundle as r}from"./decorators/messageBundle.js";import{tsx as p}from"./jsxFactory.js";const c="esri-timezone-picker",d={base:c,trigger:`${c}__trigger`,itemTitle:`${c}__item-title`,itemDescription:`${c}__item_description`};let l=class extends s{constructor(t,e){super(t,e),this.disabled=!1,this.value=null,this.onChange=null,this.open=!1,this.onOpen=null,this.onClose=null,this._selectedId=null,this._onOpen=()=>{this.open=!0,this.onOpen?.()},this._onClose=()=>{this.open=!1,this.onClose?.()},this._killEvent=t=>(t.stopPropagation(),!0),this._onChange=t=>{const e=t.target.selectedItems?.[0].getAttribute("data-id"),o=a(this._gmtOffsets,e)?.utcOffset;null!=o&&(this._selectedId=e,this.onChange?.(o))}}loadDependencies(){return i({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item")})}render(){const t=this._messages;if(!t)return p("div",{class:d.base,key:"empty"});const e=this._selectedItem,o=u(e);return p("div",{class:d.base,key:"container",onpointerdown:this._killEvent},p("calcite-dropdown",{disabled:this.disabled,open:this.open,overlayPositioning:"fixed",placement:"bottom-end",scale:"s",onCalciteDropdownClose:this._onClose,onCalciteDropdownOpen:this._onOpen,onCalciteDropdownSelect:this._onChange},p("calcite-button",{appearance:"transparent",class:d.trigger,"data-testid":"timezone-picker-button",disabled:this.disabled,key:"trigger",kind:"neutral",scale:"s",slot:"trigger",title:t.chooseTimezone},e?.short??""),p("calcite-dropdown-group",{selectionMode:"single"},this._gmtOffsets.map((t=>{const e=u(t);return p("calcite-dropdown-item",{"data-id":e,"data-testid":e,key:e,selected:o===e},p("div",{class:d.itemTitle,key:"title"},t.shortWithUTC),p("div",{class:d.itemDescription,key:"description"},t.long))})))))}get _gmtOffsets(){const t=this._messages;return t?n(t):[]}get _selectedItem(){const t=this._gmtOffsets,e=this.value,o=a(t,this._selectedId);return o?.utcOffset===e?o:m(t,e)}};function a(t,e){return t.find((t=>u(t)===e))}function m(t,e){return t.find((t=>t.utcOffset===e))}function u(t){return t?`${t.utcOffset}-${t.long}`:void 0}t([e()],l.prototype,"disabled",void 0),t([e()],l.prototype,"value",void 0),t([e()],l.prototype,"onChange",void 0),t([e()],l.prototype,"open",void 0),t([e()],l.prototype,"onOpen",void 0),t([e()],l.prototype,"onClose",void 0),t([e(),r("esri/widgets/support/t9n/timezone")],l.prototype,"_messages",void 0),t([e()],l.prototype,"_gmtOffsets",null),t([e()],l.prototype,"_selectedItem",null),t([e()],l.prototype,"_selectedId",void 0),l=t([o("esri.widgets.support.TimezonePicker")],l);export{l as TimezonePicker,d as css};