@arcgis/core 4.34.0-next.35 → 4.34.0-next.37

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 (720) hide show
  1. package/AttributeBinsGraphic.js +1 -1
  2. package/Basemap.js +1 -1
  3. package/Camera.js +1 -1
  4. package/CameraLayout.js +1 -1
  5. package/Graphic.js +1 -1
  6. package/Ground.js +1 -1
  7. package/Map.js +1 -1
  8. package/PopupTemplate.js +1 -1
  9. package/WebDocument2D.js +1 -1
  10. package/WebScene.js +1 -1
  11. package/analysis/Analysis.js +1 -1
  12. package/analysis/DimensionSimpleStyle.js +1 -1
  13. package/analysis/ElevationProfileAnalysis.d.ts +4 -0
  14. package/analysis/ElevationProfileAnalysis.js +5 -0
  15. package/analysis/ElevationProfileLine.d.ts +4 -0
  16. package/analysis/ElevationProfileLine.js +5 -0
  17. package/analysis/ElevationProfileLineChartOptions.d.ts +4 -0
  18. package/analysis/ElevationProfileLineChartOptions.js +5 -0
  19. package/analysis/ElevationProfileLineGround.d.ts +4 -0
  20. package/analysis/ElevationProfileLineGround.js +5 -0
  21. package/analysis/ElevationProfileLineInput.d.ts +4 -0
  22. package/analysis/ElevationProfileLineInput.js +5 -0
  23. package/analysis/ElevationProfileLineQuery.d.ts +4 -0
  24. package/analysis/ElevationProfileLineQuery.js +5 -0
  25. package/analysis/ElevationProfileLineScene.d.ts +4 -0
  26. package/analysis/ElevationProfileLineScene.js +5 -0
  27. package/analysis/ElevationProfileLineViewOptions.d.ts +4 -0
  28. package/analysis/ElevationProfileLineViewOptions.js +5 -0
  29. package/analysis/ElevationProfileUnits.d.ts +4 -0
  30. package/analysis/ElevationProfileUnits.js +5 -0
  31. package/analysis/LengthDimension.js +1 -1
  32. package/analysis/LineOfSightAnalysisObserver.js +1 -1
  33. package/analysis/LineOfSightAnalysisTarget.js +1 -1
  34. package/analysis/SlicePlane.js +1 -1
  35. package/analysis/Viewshed.js +1 -1
  36. package/analysis/VolumeMeasurement/CutFillOptions.js +1 -1
  37. package/analysis/support/AnalysisOriginWebScene.js +1 -1
  38. package/analysis/support/elevationProfileLineTypes.js +5 -0
  39. package/arcade/arcadeAsyncRuntime.js +1 -1
  40. package/arcade/arcadeCompiler.js +1 -1
  41. package/arcade/arcadeRuntime.js +1 -1
  42. package/arcade/compilerUtils.js +5 -0
  43. package/arcade/containerUtils.js +1 -1
  44. package/arcade/featureSetUtils.js +1 -1
  45. package/arcade/functions/convertdirection.js +1 -1
  46. package/arcade/functions/date.js +1 -1
  47. package/arcade/functions/feature.js +1 -1
  48. package/arcade/functions/featuresetbase.js +1 -1
  49. package/arcade/functions/featuresetgeom.js +1 -1
  50. package/arcade/functions/featuresetstring.js +1 -1
  51. package/arcade/functions/fieldStats.js +1 -1
  52. package/arcade/functions/geomasync.js +1 -1
  53. package/arcade/functions/geometry.js +1 -1
  54. package/arcade/functions/geomsync.js +1 -1
  55. package/arcade/functions/knowledgegraph.js +1 -1
  56. package/arcade/functions/maths.js +1 -1
  57. package/arcade/functions/string.js +1 -1
  58. package/arcade/functions/track.js +1 -1
  59. package/arcade/geometry/functions.js +1 -1
  60. package/arcade/languageUtils.js +1 -1
  61. package/arcade.js +1 -1
  62. package/assets/esri/core/workers/RemoteClient.js +1 -1
  63. package/assets/esri/core/workers/chunks/02435c653064f879f547.js +1 -0
  64. package/assets/esri/core/workers/chunks/040a233ce6fbcc061cdb.js +1 -0
  65. package/assets/esri/core/workers/chunks/{4930bf8f57f481f3a4a3.js → 053086e0a043b00f1cca.js} +1 -1
  66. package/assets/esri/core/workers/chunks/05d6ccca0cf38c012873.js +1 -0
  67. package/assets/esri/core/workers/chunks/06bd2f5358c6b85d5420.js +1 -0
  68. package/assets/esri/core/workers/chunks/0801f9dde41ec5f36cca.js +1 -0
  69. package/assets/esri/core/workers/chunks/08b4a4c9f3d6478df40a.js +1 -0
  70. package/assets/esri/core/workers/chunks/0906f977d50b1c5d6ed5.js +1 -0
  71. package/assets/esri/core/workers/chunks/170fa807b71babedd185.js +1 -0
  72. package/assets/esri/core/workers/chunks/183130521210c855c565.js +1 -0
  73. package/assets/esri/core/workers/chunks/{ce8f0ed9179c0d314df8.js → 1a5ddb6d36249fe09cc8.js} +1 -1
  74. package/assets/esri/core/workers/chunks/1c87ed3a5960f8f06fc8.js +1 -0
  75. package/assets/esri/core/workers/chunks/1c8dbdb833a66f7183fc.js +1 -0
  76. package/assets/esri/core/workers/chunks/2177c0ef06c8e7e3e28e.js +1 -0
  77. package/assets/esri/core/workers/chunks/{a82d7e2eecfe654a65de.js → 21ea48186d01bf459ef6.js} +1 -1
  78. package/assets/esri/core/workers/chunks/23e0fd2d921f74834b12.js +1 -0
  79. package/assets/esri/core/workers/chunks/2b9c403f4b20b8f62804.js +1 -0
  80. package/assets/esri/core/workers/chunks/2d7bbd001b64138db3c1.js +1 -0
  81. package/assets/esri/core/workers/chunks/2f52a57e8c05a3ca1de8.js +1 -0
  82. package/assets/esri/core/workers/chunks/307df66d00ba5f88780d.js +1 -0
  83. package/assets/esri/core/workers/chunks/33aafaabea07b4f80209.js +1 -0
  84. package/assets/esri/core/workers/chunks/{55a763662bad03ae6bae.js → 36d15d1dd19417b37d2f.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{ddaaff5d6036a5eed50f.js → 44116cf0bd4d6a127c96.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{d6b2ab614f308db50c4a.js → 47cdd5a6351e0db3b2e9.js} +10 -10
  87. package/assets/esri/core/workers/chunks/4c54239974a5847b8fdd.js +1 -0
  88. package/assets/esri/core/workers/chunks/4c7162883b228db563c6.js +1 -0
  89. package/assets/esri/core/workers/chunks/4c77102f083198ae2a6a.js +1 -0
  90. package/assets/esri/core/workers/chunks/4d2dcd667b30a98dd341.js +1 -0
  91. package/assets/esri/core/workers/chunks/4ff7c8420c77256f595a.js +1 -0
  92. package/assets/esri/core/workers/chunks/{82c10f2418e2f754388c.js → 50f56b417992eb30243e.js} +1 -1
  93. package/assets/esri/core/workers/chunks/5228f535719f5fc38b28.js +1 -0
  94. package/assets/esri/core/workers/chunks/{bd6c6acf23db2a2e8ef8.js → 53e166944a42af027345.js} +1 -1
  95. package/assets/esri/core/workers/chunks/54a686643e1ec1ea00ac.js +1 -0
  96. package/assets/esri/core/workers/chunks/568f49f9e50c505b2736.js +1 -0
  97. package/assets/esri/core/workers/chunks/56aafa6f8862629070d8.js +1 -0
  98. package/assets/esri/core/workers/chunks/5c5509147bda78ce338a.js +1 -0
  99. package/assets/esri/core/workers/chunks/{9742804f8ee350bf8052.js → 5c5678b15b59f9964bf0.js} +1 -1
  100. package/assets/esri/core/workers/chunks/5cdeb6dc72f452d6d1bc.js +1 -0
  101. package/assets/esri/core/workers/chunks/5d4e74eb4c659e8f42d6.js +1 -0
  102. package/assets/esri/core/workers/chunks/{b89aacec211c66e3a011.js → 5d8c64693830506c8776.js} +1 -1
  103. package/assets/esri/core/workers/chunks/5fac0b2a5aa33e8a3a84.js +1 -0
  104. package/assets/esri/core/workers/chunks/64553b5eae4edc7f46dc.js +1 -0
  105. package/assets/esri/core/workers/chunks/67627b1965b27b2f1857.js +1 -0
  106. package/assets/esri/core/workers/chunks/{0e7e4426daba4a008849.js → 68edbc3b124eb8e28dd6.js} +1 -1
  107. package/assets/esri/core/workers/chunks/69dc5a7abc1fda2474ad.js +1 -0
  108. package/assets/esri/core/workers/chunks/{d6eff6cc30acdca04835.js → 6c167daf115cd6abb3e5.js} +1 -1
  109. package/assets/esri/core/workers/chunks/6f122e4a2a1f913523b4.js +1 -0
  110. package/assets/esri/core/workers/chunks/{1dc410bc070cabb7198d.js → 72e0fda211d980572292.js} +1 -1
  111. package/assets/esri/core/workers/chunks/761dab8780495286ec4e.js +1 -0
  112. package/assets/esri/core/workers/chunks/7641e24ffa0215d51c34.js +1 -0
  113. package/assets/esri/core/workers/chunks/7e9d5beca1991c961ed8.js +1 -0
  114. package/assets/esri/core/workers/chunks/826e4bf6374f324d7f19.js +1 -0
  115. package/assets/esri/core/workers/chunks/{69d44e08861fb8cdd954.js → 82de1b50ae286f1e6c44.js} +1 -1
  116. package/assets/esri/core/workers/chunks/860bd6d6f0c74ca301a4.js +1 -0
  117. package/assets/esri/core/workers/chunks/8e7dced4a8d089185c3a.js +1 -0
  118. package/assets/esri/core/workers/chunks/{7d25f57299c642e727a6.js → 938baf4f99332dfdf29d.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{0ec7b5f1a614a86ad3db.js → 948ecf0bfbc886ec3b52.js} +1 -1
  120. package/assets/esri/core/workers/chunks/9a4d0006c118ae5b45c0.js +1 -0
  121. package/assets/esri/core/workers/chunks/a1591d7f82e06cab5de4.js +1 -0
  122. package/assets/esri/core/workers/chunks/a44f17397d8589433dae.js +1 -0
  123. package/assets/esri/core/workers/chunks/a76792c4edd1d688fba2.js +1 -0
  124. package/assets/esri/core/workers/chunks/ada46055fafb8ae21dbe.js +1 -0
  125. package/assets/esri/core/workers/chunks/ae667084cb6a08b97c37.js +1 -0
  126. package/assets/esri/core/workers/chunks/{7b1d14a921d30c95d68b.js → afb51b8562f8cb29b97e.js} +1 -1
  127. package/assets/esri/core/workers/chunks/{b00ad853fa4826d0ceb3.js → b12c44faa1efa60067b0.js} +1 -1
  128. package/assets/esri/core/workers/chunks/{c9fe9792312f0161ef5a.js → b1b6300451cc4ccefd46.js} +1 -1
  129. package/assets/esri/core/workers/chunks/b2f2c1108fb7cbdd1a68.js +1 -0
  130. package/assets/esri/core/workers/chunks/{37bfc1a771792b6697fd.js → b3466edccd553ae0a5d0.js} +2 -2
  131. package/assets/esri/core/workers/chunks/b45dbbeae54cea2bbc10.js +1 -0
  132. package/assets/esri/core/workers/chunks/b49b73e2d0d643dfa351.js +1 -0
  133. package/assets/esri/core/workers/chunks/b810e2f87c9c59ae04b1.js +1 -0
  134. package/assets/esri/core/workers/chunks/{20a96c17d1a117dfdf77.js → b8c1a08020d44ee03a17.js} +1 -1
  135. package/assets/esri/core/workers/chunks/bb0c5275e51d170ac795.js +1 -0
  136. package/assets/esri/core/workers/chunks/{7a4730c1e6a5355b7a05.js → bb1213adeb05d89fbfdb.js} +1 -1
  137. package/assets/esri/core/workers/chunks/bd1ba44362b967977003.js +1 -0
  138. package/assets/esri/core/workers/chunks/c18ac2018aea6ba97eec.js +1 -0
  139. package/assets/esri/core/workers/chunks/c3d3e55abf01dae271fb.js +1 -0
  140. package/assets/esri/core/workers/chunks/c5c9f0c8da5f7bf41728.js +1 -0
  141. package/assets/esri/core/workers/chunks/{4784af2b04fafacfcc1b.js → c6077a893d5b5c34a46c.js} +1 -1
  142. package/assets/esri/core/workers/chunks/c78d98ab82f31ddda362.js +1 -0
  143. package/assets/esri/core/workers/chunks/ca5f63c0297612059486.js +1 -0
  144. package/assets/esri/core/workers/chunks/cab294fd04f2a5eda81d.js +1 -0
  145. package/assets/esri/core/workers/chunks/cca36750c86352c6d1f9.js +1 -0
  146. package/assets/esri/core/workers/chunks/ccf3f29d0b1bde90c3cf.js +1 -0
  147. package/assets/esri/core/workers/chunks/cd9e6b86ab0103044370.js +1 -0
  148. package/assets/esri/core/workers/chunks/ce211163d078d3d742ce.js +1 -0
  149. package/assets/esri/core/workers/chunks/{0ca8d6516323fc28dd58.js → cf1f8fd1d62be0e02e10.js} +1 -1
  150. package/assets/esri/core/workers/chunks/d16484b389d56a43d204.js +1 -0
  151. package/assets/esri/core/workers/chunks/d54e18e0f30734610f35.js +1 -0
  152. package/assets/esri/core/workers/chunks/d7ec905d87a19a1061e7.js +1 -0
  153. package/assets/esri/core/workers/chunks/{e9a366c225b0687293e3.js → d80e26a1f4a61b1c4cf9.js} +1 -1
  154. package/assets/esri/core/workers/chunks/{eec36628e638e244f452.js → ddeaf688d72b2873c4ac.js} +1 -1
  155. package/assets/esri/core/workers/chunks/debd832b6c2c0b2ea362.js +1 -0
  156. package/assets/esri/core/workers/chunks/dfa3ad5d750d7b143a06.js +1 -0
  157. package/assets/esri/core/workers/chunks/dfc5936fbbd26f27a92a.js +1 -0
  158. package/assets/esri/core/workers/chunks/e01fa6389bd0b1ae51a5.js +1 -0
  159. package/assets/esri/core/workers/chunks/e4d08a85d158c705aa3d.js +1 -0
  160. package/assets/esri/core/workers/chunks/e59fdb8f625e9080f097.js +1 -0
  161. package/assets/esri/core/workers/chunks/ed1cd90e899dc9c15ee3.js +1 -0
  162. package/assets/esri/core/workers/chunks/ee28cd411a93245fb90c.js +1 -0
  163. package/assets/esri/core/workers/chunks/{41071e672dcddec47492.js → f4e9640306f64b1af7a3.js} +1 -1
  164. package/assets/esri/core/workers/chunks/f5bb7c90f48cae594bc3.js +1 -0
  165. package/assets/esri/core/workers/chunks/f79c9b37f2842ed88a9b.js +1 -0
  166. package/assets/esri/core/workers/chunks/f88fe2e8fbc763bdc940.js +1 -0
  167. package/assets/esri/core/workers/chunks/faa0cfee8c1de9b5b78c.js +1 -0
  168. package/assets/esri/core/workers/chunks/fae53d825dd9fef0426c.js +1 -0
  169. package/chunks/TimeInterval.js +1 -1
  170. package/chunks/arcade.js +1 -1
  171. package/chunks/array.js +1 -1
  172. package/chunks/languageUtils.js +1 -1
  173. package/config.js +1 -1
  174. package/copyright.txt +27 -0
  175. package/core/Clonable.d.ts +1 -1
  176. package/core/Clonable.js +1 -1
  177. package/core/Collection.js +1 -1
  178. package/core/Evented.d.ts +1 -1
  179. package/core/Evented.js +1 -1
  180. package/core/Identifiable.d.ts +1 -1
  181. package/core/Identifiable.js +1 -1
  182. package/core/Loadable.d.ts +1 -1
  183. package/core/Loadable.js +1 -1
  184. package/core/accessorSupport/ensureType.js +1 -1
  185. package/core/loadAll.js +1 -1
  186. package/editing/sharedTemplates/SharedTemplate.js +1 -1
  187. package/editing/sharedTemplates/SharedTemplateProvider.js +1 -1
  188. package/editing/sharedTemplates/templateDefinitions/TemplateDefinitionBase.js +1 -1
  189. package/effects/FocusArea.js +1 -1
  190. package/effects/FocusAreaOutline.js +1 -1
  191. package/effects/FocusAreas.js +1 -1
  192. package/form/elements/UtilityNetworkAssociationsElement.js +1 -1
  193. package/form/elements/inputs/attachments/Input.js +1 -1
  194. package/geometry/Mesh.js +1 -1
  195. package/geometry/support/DoubleArray.js +1 -1
  196. package/geometry/support/MeshComponent.js +1 -1
  197. package/geometry/support/MeshGeoreferencedVertexSpace.js +1 -1
  198. package/geometry/support/MeshLocalVertexSpace.js +1 -1
  199. package/geometry/support/MeshMaterial.js +1 -1
  200. package/geometry/support/MeshTexture.js +1 -1
  201. package/geometry/support/MeshTextureTransform.js +1 -1
  202. package/geometry/support/MeshTransform.js +1 -1
  203. package/geometry/support/MeshVertexAttributes.js +1 -1
  204. package/geometry/support/meshUtils/Metadata.js +1 -1
  205. package/graphic/GeoRSSGraphicOrigin.d.ts +4 -0
  206. package/graphic/GeoRSSGraphicOrigin.js +5 -0
  207. package/graphic/GraphicOrigin.js +1 -1
  208. package/graphic/KnowledgeGraphGraphicOrigin.d.ts +4 -0
  209. package/graphic/KnowledgeGraphGraphicOrigin.js +5 -0
  210. package/graphic/MapImageGraphicOrigin.d.ts +4 -0
  211. package/graphic/MapImageGraphicOrigin.js +5 -0
  212. package/graphic/MapNotesGraphicOrigin.d.ts +4 -0
  213. package/graphic/MapNotesGraphicOrigin.js +5 -0
  214. package/graphic/OrientedImageryGraphicOrigin.d.ts +4 -0
  215. package/graphic/OrientedImageryGraphicOrigin.js +5 -0
  216. package/graphic/ParquetGraphicOrigin.d.ts +4 -0
  217. package/graphic/ParquetGraphicOrigin.js +5 -0
  218. package/graphic/SubtypeGroupGraphicOrigin.d.ts +4 -0
  219. package/graphic/SubtypeGroupGraphicOrigin.js +5 -0
  220. package/graphic/TileGraphicOrigin.d.ts +4 -0
  221. package/graphic/TileGraphicOrigin.js +5 -0
  222. package/graphic/graphicOrigins.d.ts +8 -0
  223. package/graphic/graphicOrigins.js +1 -1
  224. package/{views/3d/terrain/RenderOrder.js → graphic/isGeoRSSGraphicOrigin.js} +1 -0
  225. package/graphic/isKnowledgeGraphGraphicOrigin.js +5 -0
  226. package/graphic/isMapImageGraphicOrigin.js +5 -0
  227. package/graphic/isMapNotesGraphicOrigin.js +5 -0
  228. package/graphic/isOrientedImageryGraphicOrigin.js +5 -0
  229. package/graphic/isParquetGraphicOrigin.js +5 -0
  230. package/graphic/isSubtypeGroupGraphicOrigin.js +5 -0
  231. package/graphic/isTileGraphicOrigin.js +5 -0
  232. package/identity/IdentityManagerBase.js +1 -1
  233. package/interfaces.d.ts +899 -50
  234. package/kernel.js +1 -1
  235. package/layers/CSVLayer.js +1 -1
  236. package/layers/FeatureLayer.js +1 -1
  237. package/layers/GeoJSONLayer.js +1 -1
  238. package/layers/ImageryLayer.js +1 -1
  239. package/layers/ImageryTileLayer.js +1 -1
  240. package/layers/Layer.js +1 -1
  241. package/layers/MapNotesLayer.js +1 -1
  242. package/layers/OGCFeatureLayer.js +1 -1
  243. package/layers/OrientedImageryLayer.js +1 -1
  244. package/layers/ParquetLayer.js +1 -1
  245. package/layers/SceneLayer.js +1 -1
  246. package/layers/StreamLayer.js +1 -1
  247. package/layers/SubtypeGroupLayer.js +1 -1
  248. package/layers/WCSLayer.js +1 -1
  249. package/layers/WFSLayer.js +1 -1
  250. package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
  251. package/layers/buildingSublayers/BuildingSublayer.js +1 -1
  252. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  253. package/layers/graphics/data/FeatureStore.js +1 -1
  254. package/layers/graphics/sources/CSVSource.js +1 -1
  255. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  256. package/layers/graphics/sources/GeoJSONSource.js +1 -1
  257. package/layers/graphics/sources/MemorySource.js +1 -1
  258. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  259. package/layers/graphics/sources/ParquetSource.js +1 -1
  260. package/layers/graphics/sources/WFSSource.js +1 -1
  261. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  262. package/layers/mixins/EditBusLayer.js +1 -1
  263. package/layers/orientedImagery/core/CameraOrientationHPR.js +1 -1
  264. package/layers/orientedImagery/core/CameraOrientationLTP.js +1 -1
  265. package/layers/orientedImagery/core/CameraOrientationOPK.js +1 -1
  266. package/layers/orientedImagery/core/CameraOrientationYPR.js +1 -1
  267. package/layers/orientedImagery/core/ElevationSourceDefinitions.js +1 -1
  268. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  269. package/layers/support/BuildingSummaryStatistics.js +1 -1
  270. package/layers/support/ControlPointsGeoreference.js +1 -1
  271. package/layers/support/DisplayFilter.js +1 -1
  272. package/layers/support/DisplayFilterInfo.js +1 -1
  273. package/layers/support/EditFieldsInfo.js +1 -1
  274. package/layers/support/ExpressionInfo.js +1 -1
  275. package/layers/support/FeatureIndex.js +1 -1
  276. package/layers/support/FeatureTemplate.js +1 -1
  277. package/layers/support/FeatureType.js +1 -1
  278. package/layers/support/GeometryFieldsInfo.js +1 -1
  279. package/layers/support/GeoreferenceBase.js +1 -1
  280. package/layers/support/KMLSublayer.js +1 -1
  281. package/layers/support/LayerContingentValuesCache.js +1 -1
  282. package/layers/support/LocalMediaElementSource.js +1 -1
  283. package/layers/support/MediaElementBase.js +1 -1
  284. package/layers/support/PlaybackInfo.js +1 -1
  285. package/layers/support/PromiseQueue.js +1 -1
  286. package/layers/support/Relationship.js +1 -1
  287. package/layers/support/StreamConnection.js +1 -1
  288. package/layers/support/Sublayer.js +1 -1
  289. package/layers/support/Subtype.js +1 -1
  290. package/layers/support/SubtypeSublayer.js +1 -1
  291. package/layers/support/TelemetryData.js +1 -1
  292. package/layers/support/TelemetryDisplay.js +1 -1
  293. package/layers/support/TimeInfo.js +1 -1
  294. package/layers/support/TrackInfo.js +1 -1
  295. package/layers/support/TrackPartInfo.js +1 -1
  296. package/layers/support/VideoFrame.js +1 -1
  297. package/layers/support/VideoTimeExtent.js +1 -1
  298. package/layers/support/WMSSublayer.js +1 -1
  299. package/layers/voxel/VoxelColorStop.js +1 -1
  300. package/layers/voxel/VoxelDynamicSection.js +1 -1
  301. package/layers/voxel/VoxelIsosurface.js +1 -1
  302. package/layers/voxel/VoxelOpacityStop.js +1 -1
  303. package/layers/voxel/VoxelRangeFilter.js +1 -1
  304. package/layers/voxel/VoxelSection.js +1 -1
  305. package/layers/voxel/VoxelSlice.js +1 -1
  306. package/layers/voxel/VoxelTransferFunctionStyle.js +1 -1
  307. package/layers/voxel/VoxelUniqueValue.js +1 -1
  308. package/linkChart/ChronologicalLayoutSettings.js +1 -1
  309. package/linkChart/LayoutSettings.js +1 -1
  310. package/linkChart/LinkChartProperties.js +1 -1
  311. package/linkChart/NonspatialDataDisplay.js +1 -1
  312. package/linkChart/OrganicLayoutSettings.js +1 -1
  313. package/networks/Network.js +1 -1
  314. package/networks/RulesTable.js +1 -1
  315. package/networks/UtilityNetwork.js +1 -1
  316. package/networks/support/NetworkSystemLayers.js +1 -1
  317. package/networks/support/UtilityNetworkLookupHelper.js +1 -1
  318. package/package.json +1 -1
  319. package/popup/content/AttachmentsContent.js +1 -1
  320. package/popup/content/RelationshipContent.js +1 -1
  321. package/popup/content/UtilityNetworkAssociationsContent.js +1 -1
  322. package/popup/support/AttachmentsOrderByInfo.js +1 -1
  323. package/popup/support/FieldInfoFormat.js +1 -1
  324. package/popup/support/UtilityNetworkAssociationType.js +1 -1
  325. package/portal/Portal.js +1 -1
  326. package/portal/PortalItem.js +1 -1
  327. package/renderers/PieChartRenderer.js +1 -1
  328. package/renderers/support/HeatmapLegendOptions.js +1 -1
  329. package/renderers/support/OthersCategory.js +1 -1
  330. package/renderers/support/RasterPresetRenderer.js +1 -1
  331. package/renderers/support/RendererLegendOptions.js +1 -1
  332. package/renderers/support/UniqueValue.js +1 -1
  333. package/renderers/support/UniqueValueClass.js +1 -1
  334. package/renderers/support/UniqueValueGroup.js +1 -1
  335. package/renderers/visualVariables/support/VisualVariableLegendOptions.js +1 -1
  336. package/rest/featureService/FeatureService.js +1 -1
  337. package/rest/support/AttributeBinsFeatureSet.js +1 -1
  338. package/rest/support/AttributeBinsGrouping.js +1 -1
  339. package/rest/support/AttributeBinsQuery.js +1 -1
  340. package/rest/support/BinParametersBase.js +1 -1
  341. package/rest/support/ClosestFacilityParameters.js +1 -1
  342. package/rest/support/DataLayer.js +1 -1
  343. package/rest/support/DateBinTimeInterval.js +1 -1
  344. package/rest/support/DirectionLine.js +1 -1
  345. package/rest/support/DirectionPoint.js +1 -1
  346. package/rest/support/FindImagesParameters.js +1 -1
  347. package/rest/support/FullTextSearch.js +1 -1
  348. package/rest/support/ImageBoundaryParameters.js +1 -1
  349. package/rest/support/ImageGPSInfoParameters.js +1 -1
  350. package/rest/support/ImageToMapMultirayParameters.js +1 -1
  351. package/rest/support/ImageToMapParameters.js +1 -1
  352. package/rest/support/ImageUrlParameters.js +1 -1
  353. package/rest/support/ImageVolumeParameters.js +1 -1
  354. package/rest/support/MapToImageParameters.js +1 -1
  355. package/rest/support/NetworkUrl.js +1 -1
  356. package/rest/support/PointBarrier.js +1 -1
  357. package/rest/support/PolygonBarrier.js +1 -1
  358. package/rest/support/PolylineBarrier.js +1 -1
  359. package/rest/support/RouteInfo.js +1 -1
  360. package/rest/support/RouteParameters.js +1 -1
  361. package/rest/support/ServiceAreaParameters.js +1 -1
  362. package/rest/support/Stop.js +1 -1
  363. package/rest/support/TravelMode.js +1 -1
  364. package/smartMapping/raster/support/adapters/RasterLayerAdapter.js +1 -1
  365. package/smartMapping/support/adapters/LayerAdapter.js +1 -1
  366. package/support/actions/ActionBase.js +1 -1
  367. package/support/revision.js +1 -1
  368. package/symbols/LineStyleMarker3D.js +1 -1
  369. package/symbols/PathSymbol3DLayer.js +1 -1
  370. package/symbols/support/ElevationInfo.js +1 -1
  371. package/symbols/support/Symbol3DTextBackground.js +1 -1
  372. package/symbols/support/previewSymbol3D.js +1 -1
  373. package/tables/elements/AttributeTableAttachmentElement.js +1 -1
  374. package/tables/elements/AttributeTableFieldElement.js +1 -1
  375. package/tables/elements/AttributeTableGroupElement.js +1 -1
  376. package/tables/elements/AttributeTableRelationshipElement.js +1 -1
  377. package/tables/support/FieldOrder.js +1 -1
  378. package/undoredo/support/Services.js +1 -1
  379. package/versionManagement/VersionManagementService.js +1 -1
  380. package/versionManagement/VersioningState.js +1 -1
  381. package/views/2d/constraints/GeometryConstraint.js +1 -1
  382. package/views/2d/constraints/RotationConstraint.js +1 -1
  383. package/views/2d/constraints/ZoomConstraint.js +1 -1
  384. package/views/2d/engine/DisplayObject.js +1 -1
  385. package/views/2d/engine/ManagedCanvas.js +1 -1
  386. package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
  387. package/views/2d/engine/vectorTiles/shaders/VTLBackgroundMaterial.js +1 -1
  388. package/views/2d/engine/vectorTiles/shaders/VTLCircleMaterial.js +1 -1
  389. package/views/2d/engine/vectorTiles/shaders/VTLFillMaterial.js +1 -1
  390. package/views/2d/engine/vectorTiles/shaders/VTLLineMaterial.js +1 -1
  391. package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
  392. package/views/2d/engine/vectorTiles/shaders/VTLSymbolMaterial.js +1 -1
  393. package/views/2d/engine/webgl/Profiler.js +1 -1
  394. package/views/2d/engine/webgl/TextureManager.js +1 -1
  395. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  396. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  397. package/views/2d/interactive/editingTools/ControlPointsTransformTool.js +1 -1
  398. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  399. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  400. package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
  401. package/views/2d/layers/StreamLayerView2D.js +1 -1
  402. package/views/2d/layers/features/FeatureSourceEventLog.js +1 -1
  403. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  404. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  405. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  406. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  407. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  408. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  409. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  410. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  411. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  412. package/views/2d/layers/features/processor/AAggregateStrategy.js +1 -1
  413. package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
  414. package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
  415. package/views/2d/layers/features/schema/processor/SubtypeProcessorSchema.js +1 -1
  416. package/views/2d/layers/features/sources/strategies/StreamLoadStrategy.js +1 -1
  417. package/views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js +1 -1
  418. package/views/2d/layers/features/support/TileStore.js +1 -1
  419. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  420. package/views/2d/layers/support/RouteLayerInteraction.js +1 -1
  421. package/views/3d/FocusAreasView.js +1 -1
  422. package/views/3d/analysis/AnalysisViewManager3D.js +1 -1
  423. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementPathHelper.js +1 -1
  424. package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +4 -0
  425. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +5 -0
  426. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  427. package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
  428. package/views/3d/analysis/Slice/SliceController.js +1 -1
  429. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  430. package/views/3d/constraints/AltitudeConstraint.js +1 -1
  431. package/views/3d/constraints/ClipDistanceConstraint.js +1 -1
  432. package/views/3d/constraints/Constraints.js +1 -1
  433. package/views/3d/constraints/TiltConstraint.js +1 -1
  434. package/views/3d/environment/Clouds.js +1 -1
  435. package/views/3d/environment/CloudsRenderer.js +1 -1
  436. package/views/3d/environment/EnvironmentManager.js +1 -1
  437. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  438. package/views/3d/environment/SunLighting.js +1 -1
  439. package/views/3d/environment/VirtualLighting.js +1 -1
  440. package/views/3d/interactive/Manipulator3D.js +1 -1
  441. package/views/3d/interactive/editingTools/ManipulatedObject3DGraphic.js +1 -1
  442. package/views/3d/interactive/editingTools/ManipulatedObject3DMediaElement.js +1 -1
  443. package/views/3d/interactive/editingTools/manipulations/MoveXYAxisManipulation.js +1 -1
  444. package/views/3d/interactive/editingTools/manipulations/MoveZManipulation.js +1 -1
  445. package/views/3d/interactive/editingTools/media/MediaElementManipulator3D.js +1 -1
  446. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  447. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  448. package/views/3d/interactive/editingTools/reshape/ReshapeTool3D.js +1 -1
  449. package/views/3d/interactive/editingTools/transform/ExtentTransformTool.js +1 -1
  450. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  451. package/views/3d/interactive/editingTools/transform/TransformTool3D.js +1 -1
  452. package/views/3d/interactive/visualElements/DrapedVisualElementResources.js +1 -1
  453. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  454. package/views/3d/layers/BuildingSublayerView3D.js +1 -1
  455. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  456. package/views/3d/layers/FlowSubView3D.js +1 -1
  457. package/views/3d/layers/GraphicsView3D.js +1 -1
  458. package/views/3d/layers/GraphicsView3DDummyLayer.js +5 -0
  459. package/views/3d/layers/I3SMeshView3D.js +1 -1
  460. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  461. package/views/3d/layers/SceneLayerWorker.js +1 -1
  462. package/views/3d/layers/TiledLayerView3D.js +1 -1
  463. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  464. package/views/3d/layers/graphics/ElevationQuery.js +1 -1
  465. package/views/3d/layers/graphics/GraphicState.js +1 -1
  466. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  467. package/views/3d/layers/graphics/Graphics3DElevationAlignment.js +1 -1
  468. package/views/3d/layers/graphics/Graphics3DFeatureStore.js +1 -1
  469. package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
  470. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  471. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  472. package/views/3d/layers/graphics/LabelDeconflictor.js +1 -1
  473. package/views/3d/layers/graphics/Labeler.js +1 -1
  474. package/views/3d/layers/graphics/StreamController.js +1 -1
  475. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
  476. package/views/3d/layers/graphics/pipeline/featureSet/TiledFeatureStore.js +1 -1
  477. package/views/3d/layers/i3s/I3SAsyncElevationUpdater.js +1 -1
  478. package/views/3d/layers/i3s/I3SClientNodeLoader.js +1 -1
  479. package/views/3d/layers/i3s/I3SFrameTask.js +1 -1
  480. package/views/3d/layers/i3s/I3SGraphicsMap.js +1 -1
  481. package/views/3d/layers/i3s/I3SQueryFeatureStore.js +1 -1
  482. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  483. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  484. package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
  485. package/views/3d/layers/support/FeatureVisibilityFilter.js +1 -1
  486. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  487. package/views/3d/state/ViewState.js +1 -1
  488. package/views/3d/support/CombinedElevationProvider.js +1 -1
  489. package/views/3d/support/EventedSet.js +1 -1
  490. package/views/3d/support/GraphicsMap.js +1 -1
  491. package/views/3d/support/LimitGraphicsMap.js +1 -1
  492. package/views/3d/support/StreamDataLoader.js +1 -1
  493. package/views/3d/support/flow/geometryUtils.js +1 -1
  494. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  495. package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
  496. package/views/3d/support/pointsOfInterest/ContentGeometryUpdates.js +1 -1
  497. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  498. package/views/3d/support/pointsOfInterest/SurfaceGeometryUpdates.js +1 -1
  499. package/views/3d/terrain/OverlayManager.js +1 -1
  500. package/views/3d/terrain/OverlayRenderer.js +1 -1
  501. package/views/3d/terrain/TerrainRenderer.js +1 -1
  502. package/views/3d/terrain/TerrainSurface.js +1 -1
  503. package/views/3d/terrain/tileUtils.js +1 -1
  504. package/views/3d/webgl-engine/Stage.js +1 -1
  505. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  506. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  507. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  508. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  509. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  510. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  511. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  512. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  513. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  514. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  515. package/views/3d/webgl-engine/lib/TextureRepository.js +1 -1
  516. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  517. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  518. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  519. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  520. package/views/SceneView.js +1 -1
  521. package/views/SelectionManager.js +1 -1
  522. package/views/Theme.js +1 -1
  523. package/views/VideoView.js +1 -1
  524. package/views/View.js +1 -1
  525. package/views/analysis/ElevationProfileResult.d.ts +4 -0
  526. package/views/analysis/ElevationProfileResult.js +5 -0
  527. package/views/draw/DrawAction.js +1 -1
  528. package/views/draw/DrawGraphicTool.js +1 -1
  529. package/views/draw/DrawManipulator.js +1 -1
  530. package/views/draw/DrawOperation.js +1 -1
  531. package/views/draw/support/Box.js +1 -1
  532. package/views/draw/support/GraphicMover.js +1 -1
  533. package/views/draw/support/Reshape.js +1 -1
  534. package/views/interactive/GraphicManipulator.js +1 -1
  535. package/views/interactive/InteractiveToolBase.js +1 -1
  536. package/views/interactive/Tooltip.js +1 -1
  537. package/views/interactive/editGeometry/EditGeometry.js +1 -1
  538. package/views/interactive/editGeometry/EditGeometryOperations.js +1 -1
  539. package/views/interactive/snapping/SnappingManager.js +1 -1
  540. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorker.js +1 -1
  541. package/views/layers/LayerView.js +1 -1
  542. package/views/support/GroundViewElevationSampler.js +1 -1
  543. package/views/support/ScheduledQueueProcessor.js +1 -1
  544. package/views/support/Scheduler.js +1 -1
  545. package/views/ui/UI.js +1 -1
  546. package/webdoc/GeotriggersInfo.js +1 -1
  547. package/webdoc/IPSInfo.js +1 -1
  548. package/webdoc/geotriggersInfo/DeviceLocationFeed.js +1 -1
  549. package/webdoc/geotriggersInfo/ExpressionInfo.js +1 -1
  550. package/webdoc/geotriggersInfo/FeatureFenceParameters.js +1 -1
  551. package/webdoc/geotriggersInfo/FeatureFilter.js +1 -1
  552. package/webdoc/geotriggersInfo/FeatureLayerSource.js +1 -1
  553. package/webdoc/geotriggersInfo/Geotrigger.js +1 -1
  554. package/webdoc/geotriggersInfo/GeotriggerNotificationOptions.js +1 -1
  555. package/webdoc/ips/AppleIPSProperties.js +1 -1
  556. package/webdoc/ips/Configuration.js +1 -1
  557. package/webdoc/ips/GNSSProperties.js +1 -1
  558. package/webdoc/ips/PathSnappingProperties.js +1 -1
  559. package/webdoc/ips/PositioningService.js +1 -1
  560. package/webdoc/ips/SmoothingProperties.js +1 -1
  561. package/webmap/Bookmark.js +1 -1
  562. package/webmap/InitialViewProperties.js +1 -1
  563. package/webscene/InitialViewProperties.js +1 -1
  564. package/webscene/Presentation.js +1 -1
  565. package/webscene/Slide.js +1 -1
  566. package/webscene/SlideLegendInfo.js +1 -1
  567. package/webscene/support/Description.js +1 -1
  568. package/webscene/support/FeatureReference.js +1 -1
  569. package/webscene/support/FeatureReferenceId.js +1 -1
  570. package/webscene/support/LayerReference.js +1 -1
  571. package/webscene/support/SlideElements.js +1 -1
  572. package/webscene/support/SlideEnvironment.js +1 -1
  573. package/webscene/support/SlideGround.js +1 -1
  574. package/webscene/support/SlidePopupInfo.js +1 -1
  575. package/webscene/support/SlideVisibleLayer.js +1 -1
  576. package/webscene/support/Title.js +1 -1
  577. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  578. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  579. package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
  580. package/widgets/BasemapGallery/support/PortalBasemapsSource.js +1 -1
  581. package/widgets/BasemapLayerList/BasemapLayerListViewModel.js +1 -1
  582. package/widgets/BasemapLayerList.js +1 -1
  583. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  584. package/widgets/BatchAttributeForm/templates/ElementTemplateBase.js +1 -1
  585. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  586. package/widgets/Bookmarks.js +1 -1
  587. package/widgets/CatalogLayerList/CatalogLayerListViewModel.js +1 -1
  588. package/widgets/CatalogLayerList.js +1 -1
  589. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  590. package/widgets/Daylight/DaylightViewModel.js +1 -1
  591. package/widgets/DirectionalPad/DirectionalPadViewModel.js +1 -1
  592. package/widgets/Directions/DirectionsViewModel.js +1 -1
  593. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  594. package/widgets/Editor/EditorViewModel.js +1 -1
  595. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  596. package/widgets/Editor/Workflow.js +1 -1
  597. package/widgets/Editor/support/SketchController.js +1 -1
  598. package/widgets/ElevationProfile/ElevationProfileInteraction.js +1 -1
  599. package/widgets/ElevationProfile/ElevationProfileLine.d.ts +2 -2
  600. package/widgets/ElevationProfile/ElevationProfileLine.js +1 -1
  601. package/widgets/ElevationProfile/ElevationProfileLineGround.d.ts +2 -2
  602. package/widgets/ElevationProfile/ElevationProfileLineInput.d.ts +2 -2
  603. package/widgets/ElevationProfile/ElevationProfileLineQuery.d.ts +2 -2
  604. package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
  605. package/widgets/Feature/FeatureViewModel.js +1 -1
  606. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  607. package/widgets/FeatureForm/UtilityNetworkAssociationInput.js +1 -1
  608. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  609. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  610. package/widgets/FeatureTemplates/TemplateItemGroup.js +1 -1
  611. package/widgets/Home/HomeViewModel.js +1 -1
  612. package/widgets/LayerList/LayerListViewModel.js +1 -1
  613. package/widgets/LayerList/ListItem.js +1 -1
  614. package/widgets/LayerList/ListItemPanel.js +1 -1
  615. package/widgets/LayerList.js +1 -1
  616. package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.js +1 -1
  617. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  618. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  619. package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
  620. package/widgets/OrientedImageryViewer/components/NavigationAction.js +1 -1
  621. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  622. package/widgets/PanoramicViewer/PanoramicZoomConditions.js +1 -1
  623. package/widgets/Print/PrintViewModel.js +1 -1
  624. package/widgets/Search/SearchSource.js +1 -1
  625. package/widgets/Search/SearchViewModel.js +1 -1
  626. package/widgets/Sketch/SketchViewModel.js +1 -1
  627. package/widgets/Sketch/support/OperationHandle.js +1 -1
  628. package/widgets/TableList/ListItem.js +1 -1
  629. package/widgets/TableList/ListItemPanel.js +1 -1
  630. package/widgets/TableList/TableListViewModel.js +1 -1
  631. package/widgets/TableList.js +1 -1
  632. package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
  633. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  634. package/widgets/ValuePicker/ValuePickerViewModel.js +1 -1
  635. package/widgets/Widget.js +1 -1
  636. package/widgets/support/AnchorElementViewModel.js +1 -1
  637. package/widgets/support/GeolocationPositioning.js +1 -1
  638. package/widgets/support/GridControls/GridControlsViewModel.js +1 -1
  639. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  640. package/widgets/support/Selector2D/SelectionOperation.js +1 -1
  641. package/widgets/support/UtilityNetworkAssociations/FeatureUtilityNetworkAssociationsViewModel.js +1 -1
  642. package/assets/esri/core/workers/chunks/00870a35b254295bc408.js +0 -1
  643. package/assets/esri/core/workers/chunks/017adbbb77c9c9b4d49f.js +0 -1
  644. package/assets/esri/core/workers/chunks/038bd2fec9a91b5a949d.js +0 -1
  645. package/assets/esri/core/workers/chunks/086f3bc5938bf9a37274.js +0 -1
  646. package/assets/esri/core/workers/chunks/093de3942e1ead231990.js +0 -1
  647. package/assets/esri/core/workers/chunks/0997e09fe5b0aba1f804.js +0 -1
  648. package/assets/esri/core/workers/chunks/0f6207d84d15484a3181.js +0 -1
  649. package/assets/esri/core/workers/chunks/125fdea50620d4db2678.js +0 -1
  650. package/assets/esri/core/workers/chunks/15a5a89cd228a9364332.js +0 -1
  651. package/assets/esri/core/workers/chunks/173c5b8fa1ac7aa6e072.js +0 -1
  652. package/assets/esri/core/workers/chunks/20aed6e1d9b6bf06a398.js +0 -1
  653. package/assets/esri/core/workers/chunks/21246dfe99a4c5906f71.js +0 -1
  654. package/assets/esri/core/workers/chunks/221748295a5ec633177e.js +0 -1
  655. package/assets/esri/core/workers/chunks/2a695b50a384c45ace9a.js +0 -1
  656. package/assets/esri/core/workers/chunks/2ad63b8d6986ac21c398.js +0 -1
  657. package/assets/esri/core/workers/chunks/2de11a8e5d426c381991.js +0 -1
  658. package/assets/esri/core/workers/chunks/2df9bfddc737d89c94b8.js +0 -1
  659. package/assets/esri/core/workers/chunks/34ddb8da5c5c8533bd71.js +0 -1
  660. package/assets/esri/core/workers/chunks/3a7e43675163f7bed6ac.js +0 -1
  661. package/assets/esri/core/workers/chunks/3cd1ab26396052f17832.js +0 -1
  662. package/assets/esri/core/workers/chunks/40b0c5368b8322498189.js +0 -1
  663. package/assets/esri/core/workers/chunks/427deb82fae9c500b375.js +0 -1
  664. package/assets/esri/core/workers/chunks/4433c195c62a59739c06.js +0 -1
  665. package/assets/esri/core/workers/chunks/4ac6bf9ff1cfbde87c7b.js +0 -1
  666. package/assets/esri/core/workers/chunks/4b9003ddfe61dc3729f4.js +0 -1
  667. package/assets/esri/core/workers/chunks/4bb6148df66e62a5fcf0.js +0 -1
  668. package/assets/esri/core/workers/chunks/50f58b2a933b56effd70.js +0 -1
  669. package/assets/esri/core/workers/chunks/528212fb0474bdb2ec92.js +0 -1
  670. package/assets/esri/core/workers/chunks/5dba8c0c957becedf7f7.js +0 -1
  671. package/assets/esri/core/workers/chunks/6000a302369799ea42a6.js +0 -1
  672. package/assets/esri/core/workers/chunks/61aed9a292c981921869.js +0 -1
  673. package/assets/esri/core/workers/chunks/646227b500b92999f2c8.js +0 -1
  674. package/assets/esri/core/workers/chunks/674970c539d336a93ba1.js +0 -1
  675. package/assets/esri/core/workers/chunks/6aeff5908c41600a5dfc.js +0 -1
  676. package/assets/esri/core/workers/chunks/6c72e2c09ed62cb2fd79.js +0 -1
  677. package/assets/esri/core/workers/chunks/7099ff8dc699fedea931.js +0 -1
  678. package/assets/esri/core/workers/chunks/752eabfbed7b8b65cf3f.js +0 -1
  679. package/assets/esri/core/workers/chunks/773feb0e0fad26df57ef.js +0 -1
  680. package/assets/esri/core/workers/chunks/7848ea5ca13ec350779a.js +0 -1
  681. package/assets/esri/core/workers/chunks/7a4ec66a577f7f7996c5.js +0 -1
  682. package/assets/esri/core/workers/chunks/831d58235b8b9eb4cdc8.js +0 -1
  683. package/assets/esri/core/workers/chunks/90a0c1c5c851cc9b6d6d.js +0 -1
  684. package/assets/esri/core/workers/chunks/91d48c32bf11ad1405c8.js +0 -1
  685. package/assets/esri/core/workers/chunks/9228f760129e48585b54.js +0 -1
  686. package/assets/esri/core/workers/chunks/969a9edba4be8dcbcedd.js +0 -1
  687. package/assets/esri/core/workers/chunks/9a54c96b48e94d816881.js +0 -1
  688. package/assets/esri/core/workers/chunks/aa12ba96fb8c91105473.js +0 -1
  689. package/assets/esri/core/workers/chunks/aaf696a1026de569c82d.js +0 -1
  690. package/assets/esri/core/workers/chunks/acb95ae6203f708d71b4.js +0 -1
  691. package/assets/esri/core/workers/chunks/b28855db6a30d4d4f348.js +0 -1
  692. package/assets/esri/core/workers/chunks/b4bbd38df56e57783cc0.js +0 -1
  693. package/assets/esri/core/workers/chunks/ba29c535128c4e8ae2d3.js +0 -1
  694. package/assets/esri/core/workers/chunks/c038472cb7f60af9426e.js +0 -1
  695. package/assets/esri/core/workers/chunks/c0718a0461839be41a2a.js +0 -1
  696. package/assets/esri/core/workers/chunks/c0aee315b6218d6456cd.js +0 -1
  697. package/assets/esri/core/workers/chunks/c0ec1600a86bb9a848d4.js +0 -1
  698. package/assets/esri/core/workers/chunks/c1e5e2a6e7e2d7a1d63c.js +0 -1
  699. package/assets/esri/core/workers/chunks/c30adbead0ba4722acf9.js +0 -1
  700. package/assets/esri/core/workers/chunks/c9b11c7170c99f9e0e93.js +0 -1
  701. package/assets/esri/core/workers/chunks/ca88859fc69fcb4568c0.js +0 -1
  702. package/assets/esri/core/workers/chunks/cc3ca1729af33688c1e3.js +0 -1
  703. package/assets/esri/core/workers/chunks/cde79c3644166d4798a8.js +0 -1
  704. package/assets/esri/core/workers/chunks/d092a4b8fe3d37a6333d.js +0 -1
  705. package/assets/esri/core/workers/chunks/d6a188a7d55db69ba30b.js +0 -1
  706. package/assets/esri/core/workers/chunks/d7172dc531b4548a8c60.js +0 -1
  707. package/assets/esri/core/workers/chunks/d88935ae5669d14c5b29.js +0 -1
  708. package/assets/esri/core/workers/chunks/d9045b964f536695840b.js +0 -1
  709. package/assets/esri/core/workers/chunks/dde6000aa2f69f6ecad0.js +0 -1
  710. package/assets/esri/core/workers/chunks/e18bb372457cedbf4f8c.js +0 -1
  711. package/assets/esri/core/workers/chunks/e82b1f91465d569012c4.js +0 -1
  712. package/assets/esri/core/workers/chunks/e892ed8b0b990d7eba28.js +0 -1
  713. package/assets/esri/core/workers/chunks/ed05399f9a07fea66685.js +0 -1
  714. package/assets/esri/core/workers/chunks/efec0f496491a0647051.js +0 -1
  715. package/assets/esri/core/workers/chunks/f01a939af200616eb169.js +0 -1
  716. package/assets/esri/core/workers/chunks/f19426eb53d8430ded51.js +0 -1
  717. package/assets/esri/core/workers/chunks/f255b2232f6f049d462d.js +0 -1
  718. package/assets/esri/core/workers/chunks/f3358b19af0f03f16543.js +0 -1
  719. package/assets/esri/core/workers/chunks/f4c38a9c01c29b5a6244.js +0 -1
  720. package/assets/esri/core/workers/chunks/f6c1854f36b029fa6c37.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{isSome as t}from"../core/arrayUtils.js";import o from"../core/Identifiable.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as a,convertDateFormatToIntlOptions as s}from"../intl/date.js";import{system as n}from"../time/constants.js";import{SlideThumbnail as l}from"../webdoc/support/SlideThumbnail.js";import d from"./Widget.js";import m from"./Bookmarks/BookmarksUserState.js";import c from"./Bookmarks/BookmarksViewModel.js";import u from"./Bookmarks/BookmarksVisibleElements.js";import{css as k}from"./Bookmarks/css.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import{Heading as b}from"./support/Heading.js";import{calciteListFilterProps as _}from"./support/listUtils.js";import{setFocus as g}from"./support/widgetUtils.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as v}from"./support/decorators/vmEvent.js";import{tsx as B}from"./support/jsxFactory.js";let w=class extends(o.IdentifiableMixin(d)){constructor(e,t){super(e,t),this._addInputNode=null,this._editInputNode=null,this._urlEditInputNode=null,this._lastDragDetail=null,this._selectedDragBookmarkUid=null,this._editIncludeTimeExtent=void 0,this._userState=null,this._focusRootFlowItem=!1,this._focusAddFlowItem=!1,this._focusEditFlowItem=!1,this.disabled=!1,this.dragEnabled=!1,this.filterPlaceholder="",this.filterText="",this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.viewModel=new c,this.visibleElements=new u,this._onCalciteListOrderChange=e=>{const{_lastDragDetail:t,bookmarks:o}=this,{toEl:i,fromEl:r,dragEl:a,newIndex:s}=e;if(!o.length)return;if(!r||!i||t?.newIndex===s&&t?.dragEl===a&&t?.toEl===i&&t?.fromEl===r)return;this._lastDragDetail=e;const n=Array.from(r.children).filter(e=>e?.matches("calcite-list-item")).map(e=>e.value);o.sort((e,t)=>{const o=n.indexOf(e.uid),i=n.indexOf(t.uid);return o>i?1:o<i?-1:0}),this._selectedDragBookmarkUid=a.value}}loadDependencies(){return h({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),"chip-group":()=>import("@esri/calcite-components/dist/components/calcite-chip-group"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),fab:()=>import("@esri/calcite-components/dist/components/calcite-fab"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),input:()=>import("@esri/calcite-components/dist/components/calcite-input"),"input-message":()=>import("@esri/calcite-components/dist/components/calcite-input-message"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch"),table:()=>import("@esri/calcite-components/dist/components/calcite-table"),"table-cell":()=>import("@esri/calcite-components/dist/components/calcite-table-cell"),"table-header":()=>import("@esri/calcite-components/dist/components/calcite-table-header"),"table-row":()=>import("@esri/calcite-components/dist/components/calcite-table-row")})}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(e){this.viewModel.defaultCreateOptions=e}get defaultEditOptions(){return this.viewModel.defaultEditOptions}set defaultEditOptions(e){this.viewModel.defaultEditOptions=e}get bookmarks(){return this.viewModel.bookmarks}set bookmarks(e){this.viewModel.bookmarks=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get icon(){return"bookmark"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}endAddBookmark(){this._userState=null}goTo(e){return this.viewModel.goTo(e)}render(){return B("div",{class:this.classes(k.base,p.widget,p.panel)},this._renderBookmarksContainer())}startAddBookmark(){this._userState=new m({state:"add"}),this._focusAddFlowItem=!0}_renderNoBookmarksContainer(e){const{messages:t,viewModel:{state:o}}=this;return e.length||"loading"===o?null:B("div",{class:p.empty,key:"no-bookmarks"},B("calcite-icon",{icon:"bookmark",scale:"l"}),B(b,{class:this.classes(p.heading,k.noBookmarksHeader),level:this.headingLevel},t?.noBookmarksHeading),B("p",{class:k.noBookmarksDescription},t.noBookmarksDescription))}_renderEditBookmarkFlowItems(){const{_userState:e}=this,t=e?.editedBookmark;return t&&"edit"===e?.state?this._renderEditingBookmark(t):[]}_renderBookmarkItems(e){return e?e.toArray().map(e=>this._renderBookmark(e)):[]}_handleCalciteListDragEnd(e){const{fromEl:t,dragEl:o,oldIndex:i}=e;t.insertBefore(o,t.children[i])}_renderBookmarksContainer(){const{viewModel:{state:e,bookmarks:o},dragEnabled:i,messages:r,disabled:a,filterPlaceholder:s,filterText:n,visible:l,headingLevel:d,visibleElements:{closeButton:m,collapseButton:c,filter:u,heading:h,flow:p},uid:b}=this,g=o.filter(t),f=g.length?B("calcite-list",{class:k.list,displayMode:"flat",dragEnabled:i,filterEnabled:u,filterPlaceholder:s,filterProps:_,filterText:n,group:`bookmarks-${b}`,key:"bookmark-list",label:r.widgetLabel,selectionAppearance:"border",selectionMode:"none",onCalciteListDragEnd:e=>this._handleCalciteListDragEnd(e.detail),onCalciteListFilter:e=>this.filterText=e.currentTarget?.filterText??"",onCalciteListOrderChange:e=>this._onCalciteListOrderChange(e.detail)},this._renderBookmarkItems(g),u?B("div",{class:k.filterNoResults,slot:"filter-no-results"},B("calcite-notice",{kind:"info",open:!0,width:"full"},B("div",{slot:"message"},r.noBookmarksHeading),";")):null):null,v=[B("calcite-flow-item",{afterCreate:this._focusRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,bind:this,closable:m,closed:!l,collapsible:c,disabled:a,heading:h?r.widgetLabel:void 0,headingLevel:d,loading:"loading"===e,selected:!this._userState?.state,onCalciteFlowItemClose:()=>this.visible=!1},this._renderNoBookmarksContainer(g),f,this._renderAddBookmarkButton()),this._renderAddingBookmark(),this._renderEditBookmarkFlowItems()];return l?p?B("calcite-flow",{key:"root-flow"},v):v:null}_renderAddBookmarkButton(){const{messages:e,_userState:t,disabled:o,viewModel:{view:i,state:r},visibleElements:{addBookmarkButton:a}}=this,s=t?.loading??!1;return i&&"loading"!==r&&a?B("calcite-fab",{appearance:"outline-fill",bind:this,class:k.addBookmarkButton,disabled:o||s,icon:"plus",key:"add-bookmark-item",kind:"neutral",loading:s,onclick:this.startAddBookmark,slot:"fab",text:e.addBookmark,textEnabled:!0,title:e.addBookmark,type:"button"}):null}_renderEditContainer(e){const{messagesCommon:t,visibleElements:{editBookmarkButton:o}}=this,i=`${t.edit} ${this._getBookmarkTitle(e)}`;return o?B("calcite-action",{appearance:"transparent",icon:"pencil",key:"edit-action",onclick:()=>this._showEditBookmarkForm(e),slot:"actions-end",text:i,title:i}):null}_renderBookmarkImage(e,t){return t?B("img",{alt:"",class:k.bookmarkImage,key:"bookmark-image",src:e.thumbnail?.url}):null}_renderBookmarkTimeSwitch(e){const{messages:t,viewModel:{view:o}}=this,{timeExtent:i}=e;return o?.timeExtent??i?B("calcite-label",{layout:"inline-space-between"},t.includeTimeExtent,B("calcite-switch",{checked:!!i,onCalciteSwitchChange:e=>{this._editIncludeTimeExtent=!!e.currentTarget.checked}})):null}_renderEditBookmarkTimeExtent(e){return this._editIncludeTimeExtent?this._renderBookmarkTimeExtent(e):null}_getTimeExtentStrings(e){const{visibleElements:t}=this,{timeExtent:o}=e;if(!o)return{};const{start:i,end:r}=o,a=null!=r&&(null==i||i.getTime()!==r.getTime()),s=i?this._formatDate(i):"",n=i&&t.time?this._formatTime(i):"";if(!a)return{startDate:s,startTime:n};return{startDate:s,startTime:n,endDate:this._formatDate(r),endTime:t.time?this._formatTime(r):""}}_renderTimeExtentDescription(e){const{startDate:t,startTime:o,endDate:i,endTime:r}=this._getTimeExtentStrings(e);if(!t)return"";const a=`${t} ${o}`;return i?`${a} - ${`${i} ${r}`}`:a}_renderBookmarkTimeExtent(e,t=!1){const{messages:o}=this,{startDate:i,startTime:r,endDate:a,endTime:s}=this._getTimeExtentStrings(e),n=t?null:B("calcite-table-row",{slot:"table-header"},B("calcite-table-header",{heading:o.startDate}),a?B("calcite-table-header",{heading:o.endDate}):null);return i?B("calcite-table",{caption:o.timeExtent,scale:"s"},n,B("calcite-table-row",null,B("calcite-table-cell",null,i," ",r?[B("br",null),r]:null),a?B("calcite-table-cell",null,a,s?[B("br",null),s]:null):null)):null}_renderBookmarkActiveScrim(e,t){return this.viewModel.activeBookmark===e&&t?B("calcite-scrim",{key:"bookmark-active-scrim",loading:!0}):null}_renderBookmarkActiveLoader(e,t){return this.viewModel.activeBookmark!==e||t?null:B("calcite-loader",{class:k.loader,inline:!0,key:"bookmark-active-loader",label:this.messagesCommon.loading})}_renderBookmarkImageIcon(e,t){return this.viewModel.activeBookmark===e||t?null:B("calcite-icon",{icon:"bookmark",key:"bookmark-icon",scale:"s"})}_renderBookmarkThumbnail(e){const t=this.visibleElements.thumbnail&&!!e.thumbnail?.url;return B("div",{class:k.bookmarkImageContainer,slot:"content-start"},this._renderBookmarkActiveScrim(e,t),this._renderBookmarkImage(e,t),this._renderBookmarkActiveLoader(e,t),this._renderBookmarkImageIcon(e,t))}_focusSelectedDragEl(e,t){this._selectedDragBookmarkUid===t.uid&&(g(e),this._selectedDragBookmarkUid=null)}_renderBookmark(e){return B("calcite-list-item",{afterCreate:t=>this._focusSelectedDragEl(t,e),afterUpdate:t=>this._focusSelectedDragEl(t,e),class:this.classes({[k.dragEnabled]:this.dragEnabled}),description:this._renderTimeExtentDescription(e),key:e.uid,label:this._getBookmarkTitle(e),value:e.uid,onCalciteListItemSelect:()=>this._goToBookmark(e)},this._renderBookmarkThumbnail(e),this._renderBookmarkContent(e),this._renderEditContainer(e))}_renderBookmarkContent(e){return B("div",{class:k.bookmarkContent,slot:"content"},B("span",{class:k.bookmarkContentLabel},this._getBookmarkTitle(e)),this._renderBookmarkTimeExtent(e,!0))}_renderEditingBookmarkName(e){const{messages:t,_userState:o}=this,i="name-required"===o?.validationState;return B("calcite-label",null,t.title,B("calcite-input",{afterCreate:this._storeEditInput,bind:this,class:k.editBookmarkInput,name:"bookmark-name",placeholder:t.titlePlaceholder,required:!0,type:"text",value:e.name}),i?B("calcite-input-message",{icon:"exclamation-mark-triangle",status:"invalid"},t.invalidTitle):null)}_renderEditingBookmarkActions(){const{messagesCommon:e,_userState:t}=this,o=t?.bookmark;return[B("calcite-button",{appearance:"transparent",kind:"danger",onclick:()=>this._deleteBookmark(o),slot:"footer",type:"button",width:"full"},e.delete),B("calcite-button",{appearance:"outline",bind:this,onclick:this._closeEditBookmarkForm,slot:"footer",type:"button",width:"full"},e.cancel),B("calcite-button",{slot:"footer",type:"submit",width:"full"},e.save)]}_handleUrlEditInputChange(){const{_userState:e,_urlEditInputNode:t}=this,o=t?.value;if(!e?.editedBookmark||!o)return;e.validationState=void 0,e.editedBookmark.thumbnail?.isDataURI&&(e.screenshotUrl=e.editedBookmark.thumbnail?.url);const i=new l({url:o});i.isSecureUrl&&(e.customUrl=o,e.editedBookmark.thumbnail=i)}_renderEditingTimeExtent(e){const{capabilities:t,view:o}=this.viewModel,{timeExtent:i}=e;return t.time&&(o?.timeExtent??i)?B("div",{key:"edit-bookmark-time-container"},this._renderBookmarkTimeSwitch(e),this._renderEditBookmarkTimeExtent(e)):null}_renderEditingBookmarkImage(e){const{_userState:t}=this,o=t?.thumbnailState,i=e.thumbnail?.isSecureUrl?"url"===o:e.thumbnail?.isDataURI?"screenshot"===o:null;if(i)return this._renderBookmarkImage(e,i)}_renderEditingThumbnail(e){const{_userState:t,visibleElements:o}=this,i=t?.thumbnailState;return o.thumbnail&&"none"!==i?B("div",{class:k.authoringImageContainer},this._renderEditingBookmarkImage(e)):null}_renderUpdateThumbnailButton(){const{visibleElements:e,messages:t,_userState:o}=this,i=o?.thumbnailState;return e.thumbnail&&"screenshot"===i?B("calcite-button",{appearance:"outline",class:k.authoringRefreshThumbnailButton,iconStart:"refresh",key:"update-thumbnail",kind:"neutral",onclick:()=>{this._updateThumbnail()},width:"full"},t.updateThumbnail):null}_renderEditingBookmarkUrlInput(e){const{messages:t,_userState:o}=this,i=e.thumbnail?.url,r=e.thumbnail?.isSecureUrl?i:void 0,a=i&&"absolute-url-required"===o?.validationState,s=o?.thumbnailState;return"url"===s?B("calcite-label",{key:"thumbnail-url-input"},B("calcite-input",{afterCreate:this._storeUrlEditInput,bind:this,name:"bookmark-thumbnail-url",pattern:"https://.*",placeholder:t?`https://<${t.imageUrlPlaceholder}>`:void 0,required:!0,title:t.imageUrlTooltip,type:"text",value:r,onCalciteInputChange:this._handleUrlEditInputChange,onCalciteInputInput:this._handleUrlEditInputChange}),a?B("calcite-input-message",{icon:"exclamation-mark-triangle",status:"invalid"},t.invalidImageUrl):null):null}_renderThumbnailSelector(){const{visibleElements:e,messages:t,_userState:o}=this,i=o?.thumbnailState;return e.thumbnail?B("calcite-label",{key:"thumbnail-chip-group"},t.thumbnail,B("calcite-chip-group",{label:t.thumbnail,selectionMode:"single-persist",onCalciteChipGroupSelect:e=>this._handleThumbnailTypeSelect(e.currentTarget.selectedItems[0].value)},B("calcite-chip",{label:t.screenshot,selected:"screenshot"===i,value:"screenshot"},t.screenshot),B("calcite-chip",{label:t.url,selected:"url"===i,value:"url"},t.url),B("calcite-chip",{label:t.none,selected:"none"===i,value:"none"},t.none))):null}_renderEditingBookmark(e){const{disabled:t,messagesCommon:o,headingLevel:i}=this;return e?B("form",{bind:this,class:k.form,disabled:this.disabled,onsubmit:this._editBookmarkSubmit},B("calcite-flow-item",{afterCreate:this._focusEditFlowItemNode,afterUpdate:this._focusEditFlowItemNode,bind:this,disabled:t,heading:o.edit,headingLevel:i,key:"edit-bookmark-form",selected:"edit"===this._userState?.state,onCalciteFlowItemBack:e=>{e.preventDefault(),this._closeEditBookmarkForm()}},B("div",{class:k.formContent},B("div",{class:k.authoring},this._renderEditingBookmarkName(e),this._renderThumbnailSelector(),this._renderEditingThumbnail(e),this._renderEditingBookmarkUrlInput(e),this._renderUpdateThumbnailButton(),this._renderEditingTimeExtent(e))),this._renderEditingBookmarkActions())):null}_renderAddingBookmarkName(){const{_userState:e,messages:t}=this,o="name-required"===e?.validationState;return B("calcite-label",null,t.title,B("calcite-input",{afterCreate:this._storeAddInput,bind:this,class:k.addBookmarkInput,name:"bookmark-name",placeholder:t.titlePlaceholder,required:!0,type:"text",value:""}),o?B("calcite-input-message",{icon:"exclamation-mark-triangle",status:"invalid"},t.invalidTitle):null)}_renderAddingBookmarkActions(){const{messagesCommon:e}=this;return[B("calcite-button",{appearance:"outline",bind:this,onclick:this._endAddBookmark,slot:"footer",type:"button",width:"full"},e.cancel),B("calcite-button",{slot:"footer",type:"submit",width:"full"},e.add)]}_renderAddingBookmark(){const{disabled:e,messages:t,headingLevel:o,_userState:i}=this;return"add"===i?.state?B("form",{bind:this,class:k.form,disabled:e,onsubmit:this._addBookmarkSubmitClick},B("calcite-flow-item",{afterCreate:this._focusAddFlowItemNode,afterUpdate:this._focusAddFlowItemNode,bind:this,disabled:e,heading:t.addBookmark,headingLevel:o,key:"add-bookmark-form",selected:"add"===this._userState?.state,onCalciteFlowItemBack:e=>{e.preventDefault(),this._endAddBookmark()}},B("div",{class:k.formContent},this._renderAddingBookmarkName()),this._renderAddingBookmarkActions())):null}_getBookmarkTitle(e){return e?.name||this.messagesCommon.untitled}_formatDate(e){return e?a(e,{...s("short-date"),timeZone:this.viewModel.view?.timeZone??n}):""}_formatTime(e){return e?a(e,{...s("long-time"),timeZone:this.viewModel.view?.timeZone??n}):""}_endAddBookmark(){this.endAddBookmark(),this._focusRootFlowItem=!0}_showEditBookmarkForm(e){e&&(this._editIncludeTimeExtent=!!e.timeExtent,this._userState=new m({bookmark:e,state:"edit"}),this._focusEditFlowItem=!0,this.viewModel.goTo(e))}async _createNewScreenshotUrl(){const e=await this.viewModel.createBookmark();return e.thumbnail?.url??null}_storeCurrentUrl(){const{_userState:e}=this,t=e?.editedBookmark?.thumbnail?.url;t&&(e?.editedBookmark?.thumbnail?.isSecureUrl?e.customUrl=t:e?.editedBookmark?.thumbnail?.isDataURI&&(e.screenshotUrl=t))}async _handleThumbnailTypeSelect(e){const{_userState:t}=this;if(!t)return;const{screenshotUrl:o,customUrl:i,editedBookmark:r}=t,a="screenshot"===e?o??await this._createNewScreenshotUrl():"url"===e&&i?i:null;this._storeCurrentUrl(),r&&a&&(r.thumbnail=new l({url:a})),t.validationState=void 0,t.thumbnailState=e}_closeEditBookmarkForm(){this._userState=null,this._focusRootFlowItem=!0}_addBookmarkSubmitClick(e){e.preventDefault(),this._addBookmarkSubmit()}async _addBookmarkSubmit(){const{_addInputNode:e,_userState:t,viewModel:o,viewModel:{bookmarks:i}}=this;if(!t)return;const r=e?e.value.trim():null;if(!r)return void(t.validationState="name-required");t.loading=!0;const a=await o.createBookmark();a.name=r,i.add(a),this._endAddBookmark()}async _editBookmarkAndClose(e,t){const{viewModel:o,viewModel:{defaultEditOptions:i}}=this;await o.editBookmark(e,{...i,...t}),this._closeEditBookmarkForm()}_editBookmarkSubmit(e){e.preventDefault();const{_editInputNode:t,_userState:o,_editIncludeTimeExtent:i,_urlEditInputNode:r}=this;if(!o?.bookmark||!o.editedBookmark)return;o.validationState=void 0,o.customUrl=void 0,o.screenshotUrl=void 0;const a=t?.value.trim();if(!a)return void(o.validationState="name-required");o.bookmark.name=a,o.bookmark.thumbnail=o.editedBookmark.thumbnail,i||(o.bookmark.timeExtent=null);const s=o.thumbnailState;if("url"===s&&r){const e=r.value,t=new l({url:e});if(!t.isSecureUrl)return void(o.validationState="absolute-url-required");o.bookmark.thumbnail=t}else"none"===s&&(o.bookmark.thumbnail=null);this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:i})}_storeEditInput(e){this._editInputNode=e}_storeAddInput(e){this._addInputNode=e}_storeUrlEditInput(e){this._urlEditInputNode=e}_deleteBookmark(e){this._closeEditBookmarkForm(),e&&(this.viewModel.bookmarks.remove(e),e.destroy())}_goToBookmark(e){this.endAddBookmark(),this.viewModel.goTo(e)}async _updateThumbnail(){const{_userState:e,viewModel:t}=this;e&&(e.validationState=void 0,await t.editBookmark(e.editedBookmark,{takeScreenshot:!0,captureViewpoint:!1,captureRotation:!1,captureScale:!1,captureTimeExtent:!1}))}_focusRootFlowItemNode(e){this._focusRootFlowItem&&(this._focusRootFlowItem=!1,g(e))}_focusEditFlowItemNode(e){this._focusEditFlowItem&&(this._focusEditFlowItem=!1,g(e))}_focusAddFlowItemNode(e){this._focusAddFlowItem&&(this._focusAddFlowItem=!1,g(e))}};e([i()],w.prototype,"_editIncludeTimeExtent",void 0),e([i({type:m})],w.prototype,"_userState",void 0),e([i()],w.prototype,"_focusRootFlowItem",void 0),e([i()],w.prototype,"_focusAddFlowItem",void 0),e([i()],w.prototype,"_focusEditFlowItem",void 0),e([i()],w.prototype,"defaultCreateOptions",null),e([i()],w.prototype,"defaultEditOptions",null),e([i()],w.prototype,"bookmarks",null),e([i()],w.prototype,"disabled",void 0),e([i()],w.prototype,"dragEnabled",void 0),e([i()],w.prototype,"filterPlaceholder",void 0),e([i()],w.prototype,"filterText",void 0),e([i()],w.prototype,"headingLevel",void 0),e([i()],w.prototype,"goToOverride",null),e([i()],w.prototype,"icon",null),e([i()],w.prototype,"label",null),e([i(),f("esri/widgets/Bookmarks/t9n/Bookmarks")],w.prototype,"messages",void 0),e([i(),f("esri/t9n/common")],w.prototype,"messagesCommon",void 0),e([i()],w.prototype,"uiStrings",void 0),e([i()],w.prototype,"view",null),e([i({type:c}),v(["select-bookmark","bookmark-edit","bookmark-select"])],w.prototype,"viewModel",void 0),e([i({type:u,nonNullable:!0})],w.prototype,"visibleElements",void 0),e([i()],w.prototype,"endAddBookmark",null),e([i()],w.prototype,"startAddBookmark",null),w=e([r("esri.widgets.Bookmarks")],w);const E=w;export{E as default};
5
+ import{__decorate as e}from"tslib";import{isSome as t}from"../core/arrayUtils.js";import{IdentifiableMixin as o}from"../core/Identifiable.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as a,convertDateFormatToIntlOptions as s}from"../intl/date.js";import{system as n}from"../time/constants.js";import{SlideThumbnail as l}from"../webdoc/support/SlideThumbnail.js";import d from"./Widget.js";import m from"./Bookmarks/BookmarksUserState.js";import c from"./Bookmarks/BookmarksViewModel.js";import u from"./Bookmarks/BookmarksVisibleElements.js";import{css as k}from"./Bookmarks/css.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import{Heading as b}from"./support/Heading.js";import{calciteListFilterProps as _}from"./support/listUtils.js";import{setFocus as g}from"./support/widgetUtils.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as v}from"./support/decorators/vmEvent.js";import{tsx as B}from"./support/jsxFactory.js";let w=class extends(o(d)){constructor(e,t){super(e,t),this._addInputNode=null,this._editInputNode=null,this._urlEditInputNode=null,this._lastDragDetail=null,this._selectedDragBookmarkUid=null,this._editIncludeTimeExtent=void 0,this._userState=null,this._focusRootFlowItem=!1,this._focusAddFlowItem=!1,this._focusEditFlowItem=!1,this.disabled=!1,this.dragEnabled=!1,this.filterPlaceholder="",this.filterText="",this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.viewModel=new c,this.visibleElements=new u,this._onCalciteListOrderChange=e=>{const{_lastDragDetail:t,bookmarks:o}=this,{toEl:i,fromEl:r,dragEl:a,newIndex:s}=e;if(!o.length)return;if(!r||!i||t?.newIndex===s&&t?.dragEl===a&&t?.toEl===i&&t?.fromEl===r)return;this._lastDragDetail=e;const n=Array.from(r.children).filter(e=>e?.matches("calcite-list-item")).map(e=>e.value);o.sort((e,t)=>{const o=n.indexOf(e.uid),i=n.indexOf(t.uid);return o>i?1:o<i?-1:0}),this._selectedDragBookmarkUid=a.value}}loadDependencies(){return h({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),"chip-group":()=>import("@esri/calcite-components/dist/components/calcite-chip-group"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),fab:()=>import("@esri/calcite-components/dist/components/calcite-fab"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),input:()=>import("@esri/calcite-components/dist/components/calcite-input"),"input-message":()=>import("@esri/calcite-components/dist/components/calcite-input-message"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch"),table:()=>import("@esri/calcite-components/dist/components/calcite-table"),"table-cell":()=>import("@esri/calcite-components/dist/components/calcite-table-cell"),"table-header":()=>import("@esri/calcite-components/dist/components/calcite-table-header"),"table-row":()=>import("@esri/calcite-components/dist/components/calcite-table-row")})}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(e){this.viewModel.defaultCreateOptions=e}get defaultEditOptions(){return this.viewModel.defaultEditOptions}set defaultEditOptions(e){this.viewModel.defaultEditOptions=e}get bookmarks(){return this.viewModel.bookmarks}set bookmarks(e){this.viewModel.bookmarks=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get icon(){return"bookmark"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}endAddBookmark(){this._userState=null}goTo(e){return this.viewModel.goTo(e)}render(){return B("div",{class:this.classes(k.base,p.widget,p.panel)},this._renderBookmarksContainer())}startAddBookmark(){this._userState=new m({state:"add"}),this._focusAddFlowItem=!0}_renderNoBookmarksContainer(e){const{messages:t,viewModel:{state:o}}=this;return e.length||"loading"===o?null:B("div",{class:p.empty,key:"no-bookmarks"},B("calcite-icon",{icon:"bookmark",scale:"l"}),B(b,{class:this.classes(p.heading,k.noBookmarksHeader),level:this.headingLevel},t?.noBookmarksHeading),B("p",{class:k.noBookmarksDescription},t.noBookmarksDescription))}_renderEditBookmarkFlowItems(){const{_userState:e}=this,t=e?.editedBookmark;return t&&"edit"===e?.state?this._renderEditingBookmark(t):[]}_renderBookmarkItems(e){return e?e.toArray().map(e=>this._renderBookmark(e)):[]}_handleCalciteListDragEnd(e){const{fromEl:t,dragEl:o,oldIndex:i}=e;t.insertBefore(o,t.children[i])}_renderBookmarksContainer(){const{viewModel:{state:e,bookmarks:o},dragEnabled:i,messages:r,disabled:a,filterPlaceholder:s,filterText:n,visible:l,headingLevel:d,visibleElements:{closeButton:m,collapseButton:c,filter:u,heading:h,flow:p},uid:b}=this,g=o.filter(t),f=g.length?B("calcite-list",{class:k.list,displayMode:"flat",dragEnabled:i,filterEnabled:u,filterPlaceholder:s,filterProps:_,filterText:n,group:`bookmarks-${b}`,key:"bookmark-list",label:r.widgetLabel,selectionAppearance:"border",selectionMode:"none",onCalciteListDragEnd:e=>this._handleCalciteListDragEnd(e.detail),onCalciteListFilter:e=>this.filterText=e.currentTarget?.filterText??"",onCalciteListOrderChange:e=>this._onCalciteListOrderChange(e.detail)},this._renderBookmarkItems(g),u?B("div",{class:k.filterNoResults,slot:"filter-no-results"},B("calcite-notice",{kind:"info",open:!0,width:"full"},B("div",{slot:"message"},r.noBookmarksHeading),";")):null):null,v=[B("calcite-flow-item",{afterCreate:this._focusRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,bind:this,closable:m,closed:!l,collapsible:c,disabled:a,heading:h?r.widgetLabel:void 0,headingLevel:d,loading:"loading"===e,selected:!this._userState?.state,onCalciteFlowItemClose:()=>this.visible=!1},this._renderNoBookmarksContainer(g),f,this._renderAddBookmarkButton()),this._renderAddingBookmark(),this._renderEditBookmarkFlowItems()];return l?p?B("calcite-flow",{key:"root-flow"},v):v:null}_renderAddBookmarkButton(){const{messages:e,_userState:t,disabled:o,viewModel:{view:i,state:r},visibleElements:{addBookmarkButton:a}}=this,s=t?.loading??!1;return i&&"loading"!==r&&a?B("calcite-fab",{appearance:"outline-fill",bind:this,class:k.addBookmarkButton,disabled:o||s,icon:"plus",key:"add-bookmark-item",kind:"neutral",loading:s,onclick:this.startAddBookmark,slot:"fab",text:e.addBookmark,textEnabled:!0,title:e.addBookmark,type:"button"}):null}_renderEditContainer(e){const{messagesCommon:t,visibleElements:{editBookmarkButton:o}}=this,i=`${t.edit} ${this._getBookmarkTitle(e)}`;return o?B("calcite-action",{appearance:"transparent",icon:"pencil",key:"edit-action",onclick:()=>this._showEditBookmarkForm(e),slot:"actions-end",text:i,title:i}):null}_renderBookmarkImage(e,t){return t?B("img",{alt:"",class:k.bookmarkImage,key:"bookmark-image",src:e.thumbnail?.url}):null}_renderBookmarkTimeSwitch(e){const{messages:t,viewModel:{view:o}}=this,{timeExtent:i}=e;return o?.timeExtent??i?B("calcite-label",{layout:"inline-space-between"},t.includeTimeExtent,B("calcite-switch",{checked:!!i,onCalciteSwitchChange:e=>{this._editIncludeTimeExtent=!!e.currentTarget.checked}})):null}_renderEditBookmarkTimeExtent(e){return this._editIncludeTimeExtent?this._renderBookmarkTimeExtent(e):null}_getTimeExtentStrings(e){const{visibleElements:t}=this,{timeExtent:o}=e;if(!o)return{};const{start:i,end:r}=o,a=null!=r&&(null==i||i.getTime()!==r.getTime()),s=i?this._formatDate(i):"",n=i&&t.time?this._formatTime(i):"";if(!a)return{startDate:s,startTime:n};return{startDate:s,startTime:n,endDate:this._formatDate(r),endTime:t.time?this._formatTime(r):""}}_renderTimeExtentDescription(e){const{startDate:t,startTime:o,endDate:i,endTime:r}=this._getTimeExtentStrings(e);if(!t)return"";const a=`${t} ${o}`;return i?`${a} - ${`${i} ${r}`}`:a}_renderBookmarkTimeExtent(e,t=!1){const{messages:o}=this,{startDate:i,startTime:r,endDate:a,endTime:s}=this._getTimeExtentStrings(e),n=t?null:B("calcite-table-row",{slot:"table-header"},B("calcite-table-header",{heading:o.startDate}),a?B("calcite-table-header",{heading:o.endDate}):null);return i?B("calcite-table",{caption:o.timeExtent,scale:"s"},n,B("calcite-table-row",null,B("calcite-table-cell",null,i," ",r?[B("br",null),r]:null),a?B("calcite-table-cell",null,a,s?[B("br",null),s]:null):null)):null}_renderBookmarkActiveScrim(e,t){return this.viewModel.activeBookmark===e&&t?B("calcite-scrim",{key:"bookmark-active-scrim",loading:!0}):null}_renderBookmarkActiveLoader(e,t){return this.viewModel.activeBookmark!==e||t?null:B("calcite-loader",{class:k.loader,inline:!0,key:"bookmark-active-loader",label:this.messagesCommon.loading})}_renderBookmarkImageIcon(e,t){return this.viewModel.activeBookmark===e||t?null:B("calcite-icon",{icon:"bookmark",key:"bookmark-icon",scale:"s"})}_renderBookmarkThumbnail(e){const t=this.visibleElements.thumbnail&&!!e.thumbnail?.url;return B("div",{class:k.bookmarkImageContainer,slot:"content-start"},this._renderBookmarkActiveScrim(e,t),this._renderBookmarkImage(e,t),this._renderBookmarkActiveLoader(e,t),this._renderBookmarkImageIcon(e,t))}_focusSelectedDragEl(e,t){this._selectedDragBookmarkUid===t.uid&&(g(e),this._selectedDragBookmarkUid=null)}_renderBookmark(e){return B("calcite-list-item",{afterCreate:t=>this._focusSelectedDragEl(t,e),afterUpdate:t=>this._focusSelectedDragEl(t,e),class:this.classes({[k.dragEnabled]:this.dragEnabled}),description:this._renderTimeExtentDescription(e),key:e.uid,label:this._getBookmarkTitle(e),value:e.uid,onCalciteListItemSelect:()=>this._goToBookmark(e)},this._renderBookmarkThumbnail(e),this._renderBookmarkContent(e),this._renderEditContainer(e))}_renderBookmarkContent(e){return B("div",{class:k.bookmarkContent,slot:"content"},B("span",{class:k.bookmarkContentLabel},this._getBookmarkTitle(e)),this._renderBookmarkTimeExtent(e,!0))}_renderEditingBookmarkName(e){const{messages:t,_userState:o}=this,i="name-required"===o?.validationState;return B("calcite-label",null,t.title,B("calcite-input",{afterCreate:this._storeEditInput,bind:this,class:k.editBookmarkInput,name:"bookmark-name",placeholder:t.titlePlaceholder,required:!0,type:"text",value:e.name}),i?B("calcite-input-message",{icon:"exclamation-mark-triangle",status:"invalid"},t.invalidTitle):null)}_renderEditingBookmarkActions(){const{messagesCommon:e,_userState:t}=this,o=t?.bookmark;return[B("calcite-button",{appearance:"transparent",kind:"danger",onclick:()=>this._deleteBookmark(o),slot:"footer",type:"button",width:"full"},e.delete),B("calcite-button",{appearance:"outline",bind:this,onclick:this._closeEditBookmarkForm,slot:"footer",type:"button",width:"full"},e.cancel),B("calcite-button",{slot:"footer",type:"submit",width:"full"},e.save)]}_handleUrlEditInputChange(){const{_userState:e,_urlEditInputNode:t}=this,o=t?.value;if(!e?.editedBookmark||!o)return;e.validationState=void 0,e.editedBookmark.thumbnail?.isDataURI&&(e.screenshotUrl=e.editedBookmark.thumbnail?.url);const i=new l({url:o});i.isSecureUrl&&(e.customUrl=o,e.editedBookmark.thumbnail=i)}_renderEditingTimeExtent(e){const{capabilities:t,view:o}=this.viewModel,{timeExtent:i}=e;return t.time&&(o?.timeExtent??i)?B("div",{key:"edit-bookmark-time-container"},this._renderBookmarkTimeSwitch(e),this._renderEditBookmarkTimeExtent(e)):null}_renderEditingBookmarkImage(e){const{_userState:t}=this,o=t?.thumbnailState,i=e.thumbnail?.isSecureUrl?"url"===o:e.thumbnail?.isDataURI?"screenshot"===o:null;if(i)return this._renderBookmarkImage(e,i)}_renderEditingThumbnail(e){const{_userState:t,visibleElements:o}=this,i=t?.thumbnailState;return o.thumbnail&&"none"!==i?B("div",{class:k.authoringImageContainer},this._renderEditingBookmarkImage(e)):null}_renderUpdateThumbnailButton(){const{visibleElements:e,messages:t,_userState:o}=this,i=o?.thumbnailState;return e.thumbnail&&"screenshot"===i?B("calcite-button",{appearance:"outline",class:k.authoringRefreshThumbnailButton,iconStart:"refresh",key:"update-thumbnail",kind:"neutral",onclick:()=>{this._updateThumbnail()},width:"full"},t.updateThumbnail):null}_renderEditingBookmarkUrlInput(e){const{messages:t,_userState:o}=this,i=e.thumbnail?.url,r=e.thumbnail?.isSecureUrl?i:void 0,a=i&&"absolute-url-required"===o?.validationState,s=o?.thumbnailState;return"url"===s?B("calcite-label",{key:"thumbnail-url-input"},B("calcite-input",{afterCreate:this._storeUrlEditInput,bind:this,name:"bookmark-thumbnail-url",pattern:"https://.*",placeholder:t?`https://<${t.imageUrlPlaceholder}>`:void 0,required:!0,title:t.imageUrlTooltip,type:"text",value:r,onCalciteInputChange:this._handleUrlEditInputChange,onCalciteInputInput:this._handleUrlEditInputChange}),a?B("calcite-input-message",{icon:"exclamation-mark-triangle",status:"invalid"},t.invalidImageUrl):null):null}_renderThumbnailSelector(){const{visibleElements:e,messages:t,_userState:o}=this,i=o?.thumbnailState;return e.thumbnail?B("calcite-label",{key:"thumbnail-chip-group"},t.thumbnail,B("calcite-chip-group",{label:t.thumbnail,selectionMode:"single-persist",onCalciteChipGroupSelect:e=>this._handleThumbnailTypeSelect(e.currentTarget.selectedItems[0].value)},B("calcite-chip",{label:t.screenshot,selected:"screenshot"===i,value:"screenshot"},t.screenshot),B("calcite-chip",{label:t.url,selected:"url"===i,value:"url"},t.url),B("calcite-chip",{label:t.none,selected:"none"===i,value:"none"},t.none))):null}_renderEditingBookmark(e){const{disabled:t,messagesCommon:o,headingLevel:i}=this;return e?B("form",{bind:this,class:k.form,disabled:this.disabled,onsubmit:this._editBookmarkSubmit},B("calcite-flow-item",{afterCreate:this._focusEditFlowItemNode,afterUpdate:this._focusEditFlowItemNode,bind:this,disabled:t,heading:o.edit,headingLevel:i,key:"edit-bookmark-form",selected:"edit"===this._userState?.state,onCalciteFlowItemBack:e=>{e.preventDefault(),this._closeEditBookmarkForm()}},B("div",{class:k.formContent},B("div",{class:k.authoring},this._renderEditingBookmarkName(e),this._renderThumbnailSelector(),this._renderEditingThumbnail(e),this._renderEditingBookmarkUrlInput(e),this._renderUpdateThumbnailButton(),this._renderEditingTimeExtent(e))),this._renderEditingBookmarkActions())):null}_renderAddingBookmarkName(){const{_userState:e,messages:t}=this,o="name-required"===e?.validationState;return B("calcite-label",null,t.title,B("calcite-input",{afterCreate:this._storeAddInput,bind:this,class:k.addBookmarkInput,name:"bookmark-name",placeholder:t.titlePlaceholder,required:!0,type:"text",value:""}),o?B("calcite-input-message",{icon:"exclamation-mark-triangle",status:"invalid"},t.invalidTitle):null)}_renderAddingBookmarkActions(){const{messagesCommon:e}=this;return[B("calcite-button",{appearance:"outline",bind:this,onclick:this._endAddBookmark,slot:"footer",type:"button",width:"full"},e.cancel),B("calcite-button",{slot:"footer",type:"submit",width:"full"},e.add)]}_renderAddingBookmark(){const{disabled:e,messages:t,headingLevel:o,_userState:i}=this;return"add"===i?.state?B("form",{bind:this,class:k.form,disabled:e,onsubmit:this._addBookmarkSubmitClick},B("calcite-flow-item",{afterCreate:this._focusAddFlowItemNode,afterUpdate:this._focusAddFlowItemNode,bind:this,disabled:e,heading:t.addBookmark,headingLevel:o,key:"add-bookmark-form",selected:"add"===this._userState?.state,onCalciteFlowItemBack:e=>{e.preventDefault(),this._endAddBookmark()}},B("div",{class:k.formContent},this._renderAddingBookmarkName()),this._renderAddingBookmarkActions())):null}_getBookmarkTitle(e){return e?.name||this.messagesCommon.untitled}_formatDate(e){return e?a(e,{...s("short-date"),timeZone:this.viewModel.view?.timeZone??n}):""}_formatTime(e){return e?a(e,{...s("long-time"),timeZone:this.viewModel.view?.timeZone??n}):""}_endAddBookmark(){this.endAddBookmark(),this._focusRootFlowItem=!0}_showEditBookmarkForm(e){e&&(this._editIncludeTimeExtent=!!e.timeExtent,this._userState=new m({bookmark:e,state:"edit"}),this._focusEditFlowItem=!0,this.viewModel.goTo(e))}async _createNewScreenshotUrl(){const e=await this.viewModel.createBookmark();return e.thumbnail?.url??null}_storeCurrentUrl(){const{_userState:e}=this,t=e?.editedBookmark?.thumbnail?.url;t&&(e?.editedBookmark?.thumbnail?.isSecureUrl?e.customUrl=t:e?.editedBookmark?.thumbnail?.isDataURI&&(e.screenshotUrl=t))}async _handleThumbnailTypeSelect(e){const{_userState:t}=this;if(!t)return;const{screenshotUrl:o,customUrl:i,editedBookmark:r}=t,a="screenshot"===e?o??await this._createNewScreenshotUrl():"url"===e&&i?i:null;this._storeCurrentUrl(),r&&a&&(r.thumbnail=new l({url:a})),t.validationState=void 0,t.thumbnailState=e}_closeEditBookmarkForm(){this._userState=null,this._focusRootFlowItem=!0}_addBookmarkSubmitClick(e){e.preventDefault(),this._addBookmarkSubmit()}async _addBookmarkSubmit(){const{_addInputNode:e,_userState:t,viewModel:o,viewModel:{bookmarks:i}}=this;if(!t)return;const r=e?e.value.trim():null;if(!r)return void(t.validationState="name-required");t.loading=!0;const a=await o.createBookmark();a.name=r,i.add(a),this._endAddBookmark()}async _editBookmarkAndClose(e,t){const{viewModel:o,viewModel:{defaultEditOptions:i}}=this;await o.editBookmark(e,{...i,...t}),this._closeEditBookmarkForm()}_editBookmarkSubmit(e){e.preventDefault();const{_editInputNode:t,_userState:o,_editIncludeTimeExtent:i,_urlEditInputNode:r}=this;if(!o?.bookmark||!o.editedBookmark)return;o.validationState=void 0,o.customUrl=void 0,o.screenshotUrl=void 0;const a=t?.value.trim();if(!a)return void(o.validationState="name-required");o.bookmark.name=a,o.bookmark.thumbnail=o.editedBookmark.thumbnail,i||(o.bookmark.timeExtent=null);const s=o.thumbnailState;if("url"===s&&r){const e=r.value,t=new l({url:e});if(!t.isSecureUrl)return void(o.validationState="absolute-url-required");o.bookmark.thumbnail=t}else"none"===s&&(o.bookmark.thumbnail=null);this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:i})}_storeEditInput(e){this._editInputNode=e}_storeAddInput(e){this._addInputNode=e}_storeUrlEditInput(e){this._urlEditInputNode=e}_deleteBookmark(e){this._closeEditBookmarkForm(),e&&(this.viewModel.bookmarks.remove(e),e.destroy())}_goToBookmark(e){this.endAddBookmark(),this.viewModel.goTo(e)}async _updateThumbnail(){const{_userState:e,viewModel:t}=this;e&&(e.validationState=void 0,await t.editBookmark(e.editedBookmark,{takeScreenshot:!0,captureViewpoint:!1,captureRotation:!1,captureScale:!1,captureTimeExtent:!1}))}_focusRootFlowItemNode(e){this._focusRootFlowItem&&(this._focusRootFlowItem=!1,g(e))}_focusEditFlowItemNode(e){this._focusEditFlowItem&&(this._focusEditFlowItem=!1,g(e))}_focusAddFlowItemNode(e){this._focusAddFlowItem&&(this._focusAddFlowItem=!1,g(e))}};e([i()],w.prototype,"_editIncludeTimeExtent",void 0),e([i({type:m})],w.prototype,"_userState",void 0),e([i()],w.prototype,"_focusRootFlowItem",void 0),e([i()],w.prototype,"_focusAddFlowItem",void 0),e([i()],w.prototype,"_focusEditFlowItem",void 0),e([i()],w.prototype,"defaultCreateOptions",null),e([i()],w.prototype,"defaultEditOptions",null),e([i()],w.prototype,"bookmarks",null),e([i()],w.prototype,"disabled",void 0),e([i()],w.prototype,"dragEnabled",void 0),e([i()],w.prototype,"filterPlaceholder",void 0),e([i()],w.prototype,"filterText",void 0),e([i()],w.prototype,"headingLevel",void 0),e([i()],w.prototype,"goToOverride",null),e([i()],w.prototype,"icon",null),e([i()],w.prototype,"label",null),e([i(),f("esri/widgets/Bookmarks/t9n/Bookmarks")],w.prototype,"messages",void 0),e([i(),f("esri/t9n/common")],w.prototype,"messagesCommon",void 0),e([i()],w.prototype,"uiStrings",void 0),e([i()],w.prototype,"view",null),e([i({type:c}),v(["select-bookmark","bookmark-edit","bookmark-select"])],w.prototype,"viewModel",void 0),e([i({type:u,nonNullable:!0})],w.prototype,"visibleElements",void 0),e([i()],w.prototype,"endAddBookmark",null),e([i()],w.prototype,"startAddBookmark",null),w=e([r("esri.widgets.Bookmarks")],w);const E=w;export{E as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import e from"../../core/Collection.js";import s from"../../core/Evented.js";import{watch as i,on as o,initial as r}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import c from"../LayerList/ListItem.js";import{findLayerListMode as d}from"../LayerList/support/layerListUtils.js";const m={layerListMode:"layer-list-mode"},n="hide",h=e.ofType(c);let p=class extends s.EventedAccessor{constructor(t){super(t),this.catalogItems=new h,this.checkPublishStatusEnabled=!1,this.catalogLayer=null,this.listItemCreatedFunction=null,this.listModeDisabled=!1,this.view=null}initialize(){this.addHandles([i(()=>[this.catalogLayer?.loaded,this.view?.ready],()=>this._compileList(),r),o(()=>this.catalogLayer?.dynamicGroupLayer.layers,"change",()=>this._compileList()),i(()=>[this.listItemCreatedFunction,this.checkPublishStatusEnabled,this.listModeDisabled],()=>this._recompileList())])}destroy(){this.view=null,this._removeAllItems()}get state(){const{view:t,catalogLayer:e}=this;return t?.ready&&e?.loaded?"ready":t&&e?"loading":"disabled"}get totalItems(){return this.catalogItems.flatten(t=>t.children).length}triggerAction(t,e){t&&!t.disabled&&this.emit("trigger-action",{action:t,item:e})}_createListItem(t){const{view:e,listItemCreatedFunction:s,checkPublishStatusEnabled:i,listModeDisabled:o}=this;return new c({checkPublishStatusEnabled:i,listModeDisabled:o,layer:t,listItemCreatedFunction:s,view:e})}_removeAllItems(){this.catalogItems.destroyAll()}_getViewableLayers(t){return t?this.listModeDisabled?t:t.filter(t=>d(t)!==n):void 0}_watchLayersListMode(t){this.removeHandles(m.layerListMode),t&&!this.listModeDisabled&&this.addHandles(i(()=>t.filter(t=>"listMode"in t).map(t=>t.listMode).toArray(),()=>this._compileList()),m.layerListMode)}_compileList(){const{catalogLayer:t}=this;if(!t?.loaded)return;const e=t?.dynamicGroupLayer.layers;this._watchLayersListMode(e);const s=this._getViewableLayers(e);s?.length?(this._createNewItems(s),this._removeItems(s),this._sortItems(s)):this._removeAllItems()}_createNewItems(t){const{catalogItems:e}=this;t.forEach(t=>{e.some(e=>e.layer===t)||e.add(this._createListItem(t))})}_removeItems(t){const{catalogItems:e}=this,s=[];e.forEach(e=>{e&&t?.includes(e.layer)||s.push(e)}),e.destroyMany(s)}_sortItems(t){const{catalogItems:e}=this;e.sort((e,s)=>{const i=t.indexOf(e.layer),o=t.indexOf(s.layer);return i>o?-1:i<o?1:0})}_recompileList(){this._removeAllItems(),this._compileList()}};t([a({type:h})],p.prototype,"catalogItems",void 0),t([a()],p.prototype,"checkPublishStatusEnabled",void 0),t([a()],p.prototype,"catalogLayer",void 0),t([a()],p.prototype,"listItemCreatedFunction",void 0),t([a({nonNullable:!0})],p.prototype,"listModeDisabled",void 0),t([a({readOnly:!0})],p.prototype,"state",null),t([a()],p.prototype,"totalItems",null),t([a()],p.prototype,"view",void 0),p=t([l("esri.widgets.CatalogLayerList.CatalogLayerListViewModel")],p);export{p as default};
5
+ import{__decorate as t}from"tslib";import e from"../../core/Collection.js";import{EventedAccessor as s}from"../../core/Evented.js";import{watch as i,on as o,initial as r}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import c from"../LayerList/ListItem.js";import{findLayerListMode as d}from"../LayerList/support/layerListUtils.js";const m={layerListMode:"layer-list-mode"},n="hide",h=e.ofType(c);let p=class extends s{constructor(t){super(t),this.catalogItems=new h,this.checkPublishStatusEnabled=!1,this.catalogLayer=null,this.listItemCreatedFunction=null,this.listModeDisabled=!1,this.view=null}initialize(){this.addHandles([i(()=>[this.catalogLayer?.loaded,this.view?.ready],()=>this._compileList(),r),o(()=>this.catalogLayer?.dynamicGroupLayer.layers,"change",()=>this._compileList()),i(()=>[this.listItemCreatedFunction,this.checkPublishStatusEnabled,this.listModeDisabled],()=>this._recompileList())])}destroy(){this.view=null,this._removeAllItems()}get state(){const{view:t,catalogLayer:e}=this;return t?.ready&&e?.loaded?"ready":t&&e?"loading":"disabled"}get totalItems(){return this.catalogItems.flatten(t=>t.children).length}triggerAction(t,e){t&&!t.disabled&&this.emit("trigger-action",{action:t,item:e})}_createListItem(t){const{view:e,listItemCreatedFunction:s,checkPublishStatusEnabled:i,listModeDisabled:o}=this;return new c({checkPublishStatusEnabled:i,listModeDisabled:o,layer:t,listItemCreatedFunction:s,view:e})}_removeAllItems(){this.catalogItems.destroyAll()}_getViewableLayers(t){return t?this.listModeDisabled?t:t.filter(t=>d(t)!==n):void 0}_watchLayersListMode(t){this.removeHandles(m.layerListMode),t&&!this.listModeDisabled&&this.addHandles(i(()=>t.filter(t=>"listMode"in t).map(t=>t.listMode).toArray(),()=>this._compileList()),m.layerListMode)}_compileList(){const{catalogLayer:t}=this;if(!t?.loaded)return;const e=t?.dynamicGroupLayer.layers;this._watchLayersListMode(e);const s=this._getViewableLayers(e);s?.length?(this._createNewItems(s),this._removeItems(s),this._sortItems(s)):this._removeAllItems()}_createNewItems(t){const{catalogItems:e}=this;t.forEach(t=>{e.some(e=>e.layer===t)||e.add(this._createListItem(t))})}_removeItems(t){const{catalogItems:e}=this,s=[];e.forEach(e=>{e&&t?.includes(e.layer)||s.push(e)}),e.destroyMany(s)}_sortItems(t){const{catalogItems:e}=this;e.sort((e,s)=>{const i=t.indexOf(e.layer),o=t.indexOf(s.layer);return i>o?-1:i<o?1:0})}_recompileList(){this._removeAllItems(),this._compileList()}};t([a({type:h})],p.prototype,"catalogItems",void 0),t([a()],p.prototype,"checkPublishStatusEnabled",void 0),t([a()],p.prototype,"catalogLayer",void 0),t([a()],p.prototype,"listItemCreatedFunction",void 0),t([a({nonNullable:!0})],p.prototype,"listModeDisabled",void 0),t([a({readOnly:!0})],p.prototype,"state",null),t([a()],p.prototype,"totalItems",null),t([a()],p.prototype,"view",void 0),p=t([l("esri.widgets.CatalogLayerList.CatalogLayerListViewModel")],p);export{p 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.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../core/Collection.js";import o from"../core/Identifiable.js";import i from"../core/ReactiveMap.js";import{on as s,watch as l,initial as r}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import p from"./Widget.js";import d from"./CatalogLayerList/CatalogLayerListViewModel.js";import c from"./CatalogLayerList/CatalogLayerListVisibleElements.js";import{css as m}from"./CatalogLayerList/css.js";import h from"./LayerList/LayerListItem.js";import y from"./LayerList/ListItem.js";import{minFilterItems as u,getItem as g,removeDestroyedListItems as L,setFilterPredicate as f}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as _}from"./support/componentsUtils.js";import{globalCss as v}from"./support/globalCss.js";import{calciteListFilterProps as I}from"./support/listUtils.js";import{setFocus as w}from"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{vmEvent as C}from"./support/decorators/vmEvent.js";import{tsx as F}from"./support/jsxFactory.js";var M;const O=t.ofType(y),T="nested";let P=M=class extends(o.IdentifiableMixin(p)){constructor(e,o){super(e,o),this._rootListEl=null,this._activeItem=null,this._tooltipReferenceMap=new i,this._focusRootFlowItem=!1,this._focusPanelFlowItem=!1,this._focusLayerFlowItem=null,this._layerListMap=new i,this._rootGroupUid=`operational-${this.uid}`,this._openedLayersController=null,this.catalogLayerList=null,this.catalogOptions=null,this.collapsed=!1,this.filterPlaceholder="",this.filterPredicate=null,this.filterText="",this.headingLevel=2,this.knowledgeGraphOptions=null,this.layerTablesEnabled=new t(["knowledge-graph"]),this.mapImageOptions=null,this.messages=null,this.messagesCommon=null,this.minFilterItems=u,this.openedLayers=new t,this.openedLayerLists=new t,this.selectedItems=new O,this.selectionMode="none",this.tableList=null,this.tileOptions=null,this.viewModel=new d,this.visibilityAppearance="default",this.visibleElements=new c,this._onTablesOpen=e=>{this.onTablesOpen?this.onTablesOpen(e):(this.openedLayers.push(e.layer),this._focusLayerFlowItem=e.layer?.uid)},this._onCatalogOpen=e=>{this.onCatalogOpen?this.onCatalogOpen(e):(this.openedLayers.push(e.layer?.parent),this._focusLayerFlowItem=e.layer?.uid)},this._onPanelOpen=()=>{this._focusPanelFlowItem=!0},this._onTooltipReferenceChange=(e,t)=>{t?this._tooltipReferenceMap.set(e,t):this._tooltipReferenceMap.delete(e)},this._onTriggerAction=(e,t)=>{this.triggerAction(e,t)},this._clearActiveItem=()=>{this._activeItem=null},this._setActiveItem=e=>{if("default"!==this.visibilityAppearance)return;const t=Array.from(e.composedPath()).find(e=>e.classList?.contains(m.item));this._activeItem=g(t)}}initialize(){this.addHandles([s(()=>this.openedLayers,"change",()=>this._handleOpenedLayersChange(),r),s(()=>this.viewModel.catalogItems,"change",()=>L(this.selectedItems),r),l(()=>[this.filterPredicate,this._rootListEl],()=>f(this._rootListEl,this.filterPredicate))])}loadDependencies(){return _({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")})}destroy(){this._destroyOpenedLayerLists(),this._tooltipReferenceMap.clear()}get _filterEnabled(){return this.viewModel.totalItems>=this.minFilterItems&&this.visibleElements.filter}get _visibleItems(){return this.catalogItems?.filter(e=>!e.hidden&&(this.visibleElements.errors||!e.error))}get _openedPanelItems(){return this._visibleItems.flatten(e=>e.children).filter(({hidden:e,panel:t})=>!e&&t?.open&&!t.disabled&&t.flowEnabled)}get _renderedOpenLayerFlowItems(){const{openedLayers:e}=this;return e.toArray().map((t,o)=>this._renderLayerFlowItem(t,o===e.length-1))}get catalogItems(){return this.viewModel.catalogItems}set catalogItems(e){this.viewModel.catalogItems=e}get catalogLayer(){return this.viewModel.catalogLayer}set catalogLayer(e){this.viewModel.catalogLayer=e}get icon(){return"catalog-dataset"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const e=this.viewModel?.state,t={[v.hidden]:"loading"===e,[v.disabled]:"disabled"===e};return F("div",{class:this.classes(m.base,v.widget,v.panel,t)},this._renderItemTooltips(),this._renderItems())}async _createFlowList(e,t){const{_layerListMap:o}=this,i=o.get(e);if(i)return i;const s="catalog"===e.type?await this._createCatalogLayerList(e):await this._createTableList(e);return t.aborted||o.set(e,s),s}async _handleOpenedLayersChange(){const{_layerListMap:e,openedLayers:t,openedLayerLists:o}=this;this._openedLayersController?.abort();const i=new AbortController,{signal:s}=i;this._openedLayersController=i,e.forEach((o,i)=>{t.includes(i)||(o.destroy(),e.delete(i))});const l=await Promise.all(t.map(e=>this._createFlowList(e,s)));if(s.aborted)return;o.removeAll(),o.addMany(l);const r=o.at(-1);r?"catalogLayer"in r?(this._set("catalogLayerList",r),this._set("tableList",null)):(this._set("catalogLayerList",null),this._set("tableList",r)):(this._set("catalogLayerList",null),this._set("tableList",null))}_destroyOpenedLayerLists(){this.openedLayerLists.destroyAll(),this.openedLayers.removeAll(),this._layerListMap.forEach(e=>e.destroy()),this._layerListMap.clear()}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:o}=this;return e?.layer?F("calcite-tooltip",{key:`tooltip-${e.layer.uid}`,overlayPositioning:"fixed",referenceElement:t.get(e.layer.uid)},o.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){return e.incompatible?this._renderItemTooltip(e):e.children?.filter(e=>!e.hidden).toArray().map(e=>this._renderItemTooltipNodes(e))}_renderItemTooltips(){return this._visibleItems?.toArray().map(e=>this._renderItemTooltipNodes(e))}_renderNoItemsMessage(){return F("div",{slot:"message"},this.messages.noItemsToDisplay)}_renderNoItems(){return F("div",{class:m.itemMessage,key:"esri-layer-list__no-items"},F("calcite-notice",{icon:"information",kind:"info",open:!0,width:"full"},this._renderNoItemsMessage()))}_renderPanelFlowItems(){const{_openedPanelItems:e,openedLayers:t}=this;return e.toArray().map(({title:o,panel:i},s)=>{const l=()=>this._handlePanelFlowItemBack(i);return F("calcite-flow-item",{afterCreate:this._focusPanelFlowItemNode,afterUpdate:this._focusPanelFlowItemNode,bind:this,description:o,heading:i.title,headingLevel:this.headingLevel,key:`flow-panel-${i.uid}`,selected:!t.length&&s===e.length-1,onCalciteFlowItemBack:e=>{e.preventDefault(),l()}},i.render(),F("calcite-button",{appearance:"transparent",onclick:l,slot:"footer-actions",width:"full"},this.messagesCommon.back))})}_handlePanelFlowItemBack(e){e.open=!1,this._focusRootFlowItem=!0}_focusRootFlowItemNode(e){this._focusRootFlowItem&&(this._focusRootFlowItem=!1,w(e))}_focusPanelFlowItemNode(e){this._focusPanelFlowItem&&(this._focusPanelFlowItem=!1,w(e))}_renderItems(){const{visible:e,collapsed:t,_visibleItems:o,_filterEnabled:i,_rootGroupUid:s,visibleElements:{closeButton:l,collapseButton:r,heading:a,flow:n},selectionMode:p,filterText:d,filterPlaceholder:c,messages:h,openedLayers:y,_openedPanelItems:u}=this,g=[F("calcite-flow-item",{afterCreate:this._focusRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,bind:this,closable:l,closed:!e,collapsed:t,collapsible:r,heading:a?h.widgetLabel:void 0,headingLevel:this.headingLevel,key:"root-flow-item",selected:!y.length&&!u.length,onCalciteFlowItemClose:()=>this.visible=!1},o?.length?null:this._renderNoItems(),F("calcite-list",{afterCreate:e=>{this._rootListEl=e,e.addEventListener("focusin",this._setActiveItem),e.addEventListener("focusout",this._clearActiveItem)},afterRemoved:e=>{this._rootListEl=null,e.removeEventListener("focusin",this._setActiveItem),e.removeEventListener("focusout",this._clearActiveItem)},"data-layer-type":s,displayMode:T,filterEnabled:i,filterPlaceholder:c,filterProps:I,filterText:i?d:"",group:s,key:"root-list",label:h.widgetLabel,onmouseleave:this._clearActiveItem,onmouseover:this._setActiveItem,selectionAppearance:"border",selectionMode:p,onCalciteListChange:e=>this._handleCalciteListChange(e),onCalciteListFilter:e=>this.filterText=e.currentTarget?.filterText??""},o.toArray().map(e=>this._renderItem(e)),i?F("div",{class:m.filterNoResults,slot:"filter-no-results"},F("calcite-notice",{kind:"info",open:!0,width:"full"},this._renderNoItemsMessage())):null)),this._renderPanelFlowItems(),this._renderedOpenLayerFlowItems];return e?n?F("calcite-flow",{key:"root-flow"},g):g:null}_focusLayerFlowItemNode(e){this._focusLayerFlowItem===e.dataset.layerUid&&(this._focusLayerFlowItem=null,w(e))}_renderLayerFlowItem(e,t){const{messages:o,openedLayers:i}=this,s=e.title||this.messages.untitledLayer;return F("calcite-flow-item",{afterCreate:this._focusLayerFlowItemNode,afterUpdate:this._focusLayerFlowItemNode,bind:this,"data-layer-uid":e.uid,description:s,heading:o["catalog"===e.type?"catalogLayers":"tables"],headingLevel:this.headingLevel,key:`flow-layer-list-${e.uid}`,selected:t,onCalciteFlowItemBack:e=>{e.preventDefault(),i.pop();const t=i.at(-1);t?this._focusLayerFlowItem=t.uid:this._focusRootFlowItem=!0}},this._layerListMap.get(e)?.render())}async _createCatalogLayerList(e){const{headingLevel:t,catalogOptions:o,view:i,filterPlaceholder:s,listItemCreatedFunction:l,minFilterItems:r,selectionMode:a,visibilityAppearance:n,onCatalogOpen:p,onTablesOpen:d}=this;return new M({headingLevel:t,view:i,filterPlaceholder:s,listItemCreatedFunction:l,minFilterItems:r,selectionMode:a,visibilityAppearance:n,...o,catalogLayer:e,onCatalogOpen:p,onTablesOpen:d})}_getTableListParams(e){switch(e.type){case"knowledge-graph":return{...this.knowledgeGraphOptions,tables:e.tables};case"map-image":return{...this.mapImageOptions,tables:e.subtables};case"tile":return{...this.tileOptions,tables:e.subtables};default:return null}}async _createTableList(e){const{default:t}=await import("./TableList.js"),{headingLevel:o,selectionMode:i}=this;return new t({headingLevel:o,selectionMode:i,...this._getTableListParams(e)})}_renderItem(e,t,o){return F(h,{activeItem:this._activeItem,css:m,displayMode:T,dragEnabled:!1,item:e,key:`layerListItem-${e.layer?.uid}`,layerTablesEnabled:this.layerTablesEnabled,listModeDisabled:this.viewModel.listModeDisabled,messages:this.messages,messagesCommon:this.messagesCommon,parent:t,parentTitles:o,rootGroupUid:this._rootGroupUid,selectedItems:this.selectedItems,selectionMode:this.selectionMode,visibilityAppearance:this.visibilityAppearance,visibleElements:this.visibleElements,onAction:this._onTriggerAction,onCatalogOpen:this._onCatalogOpen,onPanelOpen:this._onPanelOpen,onTablesOpen:this._onTablesOpen,onTooltipReferenceChange:this._onTooltipReferenceChange})}_handleCalciteListChange(e){const{selectionMode:t,selectedItems:o}=this;if("none"===t)return;const i=e.target.selectedItems.map(e=>g(e)).filter(Boolean);o.removeAll(),o.addMany(i)}};e([a()],P.prototype,"_rootListEl",void 0),e([a()],P.prototype,"_activeItem",void 0),e([a()],P.prototype,"_tooltipReferenceMap",void 0),e([a()],P.prototype,"_focusRootFlowItem",void 0),e([a()],P.prototype,"_focusPanelFlowItem",void 0),e([a()],P.prototype,"_focusLayerFlowItem",void 0),e([a()],P.prototype,"_layerListMap",void 0),e([a()],P.prototype,"_filterEnabled",null),e([a()],P.prototype,"_visibleItems",null),e([a()],P.prototype,"_openedPanelItems",null),e([a()],P.prototype,"_renderedOpenLayerFlowItems",null),e([a()],P.prototype,"catalogItems",null),e([a()],P.prototype,"catalogLayer",null),e([a({readOnly:!0})],P.prototype,"catalogLayerList",void 0),e([a()],P.prototype,"catalogOptions",void 0),e([a()],P.prototype,"collapsed",void 0),e([a()],P.prototype,"filterPlaceholder",void 0),e([a()],P.prototype,"filterPredicate",void 0),e([a()],P.prototype,"filterText",void 0),e([a()],P.prototype,"headingLevel",void 0),e([a()],P.prototype,"icon",null),e([a()],P.prototype,"knowledgeGraphOptions",void 0),e([a()],P.prototype,"label",null),e([a()],P.prototype,"layerTablesEnabled",void 0),e([a()],P.prototype,"listItemCreatedFunction",null),e([a()],P.prototype,"mapImageOptions",void 0),e([a(),b("esri/widgets/CatalogLayerList/t9n/CatalogLayerList")],P.prototype,"messages",void 0),e([a(),b("esri/t9n/common")],P.prototype,"messagesCommon",void 0),e([a()],P.prototype,"minFilterItems",void 0),e([a({readOnly:!0})],P.prototype,"openedLayers",void 0),e([a({readOnly:!0})],P.prototype,"openedLayerLists",void 0),e([a()],P.prototype,"onCatalogOpen",void 0),e([a()],P.prototype,"onTablesOpen",void 0),e([a({type:O})],P.prototype,"selectedItems",void 0),e([a()],P.prototype,"selectionMode",void 0),e([a({readOnly:!0})],P.prototype,"tableList",void 0),e([a()],P.prototype,"tileOptions",void 0),e([a()],P.prototype,"view",null),e([C("trigger-action"),a({type:d})],P.prototype,"viewModel",void 0),e([a()],P.prototype,"visibilityAppearance",void 0),e([a({type:c,nonNullable:!0})],P.prototype,"visibleElements",void 0),P=M=e([n("esri.widgets.CatalogLayerList")],P);const A=P;export{A as default};
5
+ import{__decorate as e}from"tslib";import t from"../core/Collection.js";import{IdentifiableMixin as o}from"../core/Identifiable.js";import i from"../core/ReactiveMap.js";import{on as s,watch as l,initial as r}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import p from"./Widget.js";import d from"./CatalogLayerList/CatalogLayerListViewModel.js";import c from"./CatalogLayerList/CatalogLayerListVisibleElements.js";import{css as m}from"./CatalogLayerList/css.js";import h from"./LayerList/LayerListItem.js";import y from"./LayerList/ListItem.js";import{minFilterItems as u,getItem as g,removeDestroyedListItems as L,setFilterPredicate as f}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as _}from"./support/componentsUtils.js";import{globalCss as v}from"./support/globalCss.js";import{calciteListFilterProps as I}from"./support/listUtils.js";import{setFocus as w}from"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{vmEvent as C}from"./support/decorators/vmEvent.js";import{tsx as F}from"./support/jsxFactory.js";var M;const O=t.ofType(y),T="nested";let P=M=class extends(o(p)){constructor(e,o){super(e,o),this._rootListEl=null,this._activeItem=null,this._tooltipReferenceMap=new i,this._focusRootFlowItem=!1,this._focusPanelFlowItem=!1,this._focusLayerFlowItem=null,this._layerListMap=new i,this._rootGroupUid=`operational-${this.uid}`,this._openedLayersController=null,this.catalogLayerList=null,this.catalogOptions=null,this.collapsed=!1,this.filterPlaceholder="",this.filterPredicate=null,this.filterText="",this.headingLevel=2,this.knowledgeGraphOptions=null,this.layerTablesEnabled=new t(["knowledge-graph"]),this.mapImageOptions=null,this.messages=null,this.messagesCommon=null,this.minFilterItems=u,this.openedLayers=new t,this.openedLayerLists=new t,this.selectedItems=new O,this.selectionMode="none",this.tableList=null,this.tileOptions=null,this.viewModel=new d,this.visibilityAppearance="default",this.visibleElements=new c,this._onTablesOpen=e=>{this.onTablesOpen?this.onTablesOpen(e):(this.openedLayers.push(e.layer),this._focusLayerFlowItem=e.layer?.uid)},this._onCatalogOpen=e=>{this.onCatalogOpen?this.onCatalogOpen(e):(this.openedLayers.push(e.layer?.parent),this._focusLayerFlowItem=e.layer?.uid)},this._onPanelOpen=()=>{this._focusPanelFlowItem=!0},this._onTooltipReferenceChange=(e,t)=>{t?this._tooltipReferenceMap.set(e,t):this._tooltipReferenceMap.delete(e)},this._onTriggerAction=(e,t)=>{this.triggerAction(e,t)},this._clearActiveItem=()=>{this._activeItem=null},this._setActiveItem=e=>{if("default"!==this.visibilityAppearance)return;const t=Array.from(e.composedPath()).find(e=>e.classList?.contains(m.item));this._activeItem=g(t)}}initialize(){this.addHandles([s(()=>this.openedLayers,"change",()=>this._handleOpenedLayersChange(),r),s(()=>this.viewModel.catalogItems,"change",()=>L(this.selectedItems),r),l(()=>[this.filterPredicate,this._rootListEl],()=>f(this._rootListEl,this.filterPredicate))])}loadDependencies(){return _({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")})}destroy(){this._destroyOpenedLayerLists(),this._tooltipReferenceMap.clear()}get _filterEnabled(){return this.viewModel.totalItems>=this.minFilterItems&&this.visibleElements.filter}get _visibleItems(){return this.catalogItems?.filter(e=>!e.hidden&&(this.visibleElements.errors||!e.error))}get _openedPanelItems(){return this._visibleItems.flatten(e=>e.children).filter(({hidden:e,panel:t})=>!e&&t?.open&&!t.disabled&&t.flowEnabled)}get _renderedOpenLayerFlowItems(){const{openedLayers:e}=this;return e.toArray().map((t,o)=>this._renderLayerFlowItem(t,o===e.length-1))}get catalogItems(){return this.viewModel.catalogItems}set catalogItems(e){this.viewModel.catalogItems=e}get catalogLayer(){return this.viewModel.catalogLayer}set catalogLayer(e){this.viewModel.catalogLayer=e}get icon(){return"catalog-dataset"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const e=this.viewModel?.state,t={[v.hidden]:"loading"===e,[v.disabled]:"disabled"===e};return F("div",{class:this.classes(m.base,v.widget,v.panel,t)},this._renderItemTooltips(),this._renderItems())}async _createFlowList(e,t){const{_layerListMap:o}=this,i=o.get(e);if(i)return i;const s="catalog"===e.type?await this._createCatalogLayerList(e):await this._createTableList(e);return t.aborted||o.set(e,s),s}async _handleOpenedLayersChange(){const{_layerListMap:e,openedLayers:t,openedLayerLists:o}=this;this._openedLayersController?.abort();const i=new AbortController,{signal:s}=i;this._openedLayersController=i,e.forEach((o,i)=>{t.includes(i)||(o.destroy(),e.delete(i))});const l=await Promise.all(t.map(e=>this._createFlowList(e,s)));if(s.aborted)return;o.removeAll(),o.addMany(l);const r=o.at(-1);r?"catalogLayer"in r?(this._set("catalogLayerList",r),this._set("tableList",null)):(this._set("catalogLayerList",null),this._set("tableList",r)):(this._set("catalogLayerList",null),this._set("tableList",null))}_destroyOpenedLayerLists(){this.openedLayerLists.destroyAll(),this.openedLayers.removeAll(),this._layerListMap.forEach(e=>e.destroy()),this._layerListMap.clear()}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:o}=this;return e?.layer?F("calcite-tooltip",{key:`tooltip-${e.layer.uid}`,overlayPositioning:"fixed",referenceElement:t.get(e.layer.uid)},o.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){return e.incompatible?this._renderItemTooltip(e):e.children?.filter(e=>!e.hidden).toArray().map(e=>this._renderItemTooltipNodes(e))}_renderItemTooltips(){return this._visibleItems?.toArray().map(e=>this._renderItemTooltipNodes(e))}_renderNoItemsMessage(){return F("div",{slot:"message"},this.messages.noItemsToDisplay)}_renderNoItems(){return F("div",{class:m.itemMessage,key:"esri-layer-list__no-items"},F("calcite-notice",{icon:"information",kind:"info",open:!0,width:"full"},this._renderNoItemsMessage()))}_renderPanelFlowItems(){const{_openedPanelItems:e,openedLayers:t}=this;return e.toArray().map(({title:o,panel:i},s)=>{const l=()=>this._handlePanelFlowItemBack(i);return F("calcite-flow-item",{afterCreate:this._focusPanelFlowItemNode,afterUpdate:this._focusPanelFlowItemNode,bind:this,description:o,heading:i.title,headingLevel:this.headingLevel,key:`flow-panel-${i.uid}`,selected:!t.length&&s===e.length-1,onCalciteFlowItemBack:e=>{e.preventDefault(),l()}},i.render(),F("calcite-button",{appearance:"transparent",onclick:l,slot:"footer-actions",width:"full"},this.messagesCommon.back))})}_handlePanelFlowItemBack(e){e.open=!1,this._focusRootFlowItem=!0}_focusRootFlowItemNode(e){this._focusRootFlowItem&&(this._focusRootFlowItem=!1,w(e))}_focusPanelFlowItemNode(e){this._focusPanelFlowItem&&(this._focusPanelFlowItem=!1,w(e))}_renderItems(){const{visible:e,collapsed:t,_visibleItems:o,_filterEnabled:i,_rootGroupUid:s,visibleElements:{closeButton:l,collapseButton:r,heading:a,flow:n},selectionMode:p,filterText:d,filterPlaceholder:c,messages:h,openedLayers:y,_openedPanelItems:u}=this,g=[F("calcite-flow-item",{afterCreate:this._focusRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,bind:this,closable:l,closed:!e,collapsed:t,collapsible:r,heading:a?h.widgetLabel:void 0,headingLevel:this.headingLevel,key:"root-flow-item",selected:!y.length&&!u.length,onCalciteFlowItemClose:()=>this.visible=!1},o?.length?null:this._renderNoItems(),F("calcite-list",{afterCreate:e=>{this._rootListEl=e,e.addEventListener("focusin",this._setActiveItem),e.addEventListener("focusout",this._clearActiveItem)},afterRemoved:e=>{this._rootListEl=null,e.removeEventListener("focusin",this._setActiveItem),e.removeEventListener("focusout",this._clearActiveItem)},"data-layer-type":s,displayMode:T,filterEnabled:i,filterPlaceholder:c,filterProps:I,filterText:i?d:"",group:s,key:"root-list",label:h.widgetLabel,onmouseleave:this._clearActiveItem,onmouseover:this._setActiveItem,selectionAppearance:"border",selectionMode:p,onCalciteListChange:e=>this._handleCalciteListChange(e),onCalciteListFilter:e=>this.filterText=e.currentTarget?.filterText??""},o.toArray().map(e=>this._renderItem(e)),i?F("div",{class:m.filterNoResults,slot:"filter-no-results"},F("calcite-notice",{kind:"info",open:!0,width:"full"},this._renderNoItemsMessage())):null)),this._renderPanelFlowItems(),this._renderedOpenLayerFlowItems];return e?n?F("calcite-flow",{key:"root-flow"},g):g:null}_focusLayerFlowItemNode(e){this._focusLayerFlowItem===e.dataset.layerUid&&(this._focusLayerFlowItem=null,w(e))}_renderLayerFlowItem(e,t){const{messages:o,openedLayers:i}=this,s=e.title||this.messages.untitledLayer;return F("calcite-flow-item",{afterCreate:this._focusLayerFlowItemNode,afterUpdate:this._focusLayerFlowItemNode,bind:this,"data-layer-uid":e.uid,description:s,heading:o["catalog"===e.type?"catalogLayers":"tables"],headingLevel:this.headingLevel,key:`flow-layer-list-${e.uid}`,selected:t,onCalciteFlowItemBack:e=>{e.preventDefault(),i.pop();const t=i.at(-1);t?this._focusLayerFlowItem=t.uid:this._focusRootFlowItem=!0}},this._layerListMap.get(e)?.render())}async _createCatalogLayerList(e){const{headingLevel:t,catalogOptions:o,view:i,filterPlaceholder:s,listItemCreatedFunction:l,minFilterItems:r,selectionMode:a,visibilityAppearance:n,onCatalogOpen:p,onTablesOpen:d}=this;return new M({headingLevel:t,view:i,filterPlaceholder:s,listItemCreatedFunction:l,minFilterItems:r,selectionMode:a,visibilityAppearance:n,...o,catalogLayer:e,onCatalogOpen:p,onTablesOpen:d})}_getTableListParams(e){switch(e.type){case"knowledge-graph":return{...this.knowledgeGraphOptions,tables:e.tables};case"map-image":return{...this.mapImageOptions,tables:e.subtables};case"tile":return{...this.tileOptions,tables:e.subtables};default:return null}}async _createTableList(e){const{default:t}=await import("./TableList.js"),{headingLevel:o,selectionMode:i}=this;return new t({headingLevel:o,selectionMode:i,...this._getTableListParams(e)})}_renderItem(e,t,o){return F(h,{activeItem:this._activeItem,css:m,displayMode:T,dragEnabled:!1,item:e,key:`layerListItem-${e.layer?.uid}`,layerTablesEnabled:this.layerTablesEnabled,listModeDisabled:this.viewModel.listModeDisabled,messages:this.messages,messagesCommon:this.messagesCommon,parent:t,parentTitles:o,rootGroupUid:this._rootGroupUid,selectedItems:this.selectedItems,selectionMode:this.selectionMode,visibilityAppearance:this.visibilityAppearance,visibleElements:this.visibleElements,onAction:this._onTriggerAction,onCatalogOpen:this._onCatalogOpen,onPanelOpen:this._onPanelOpen,onTablesOpen:this._onTablesOpen,onTooltipReferenceChange:this._onTooltipReferenceChange})}_handleCalciteListChange(e){const{selectionMode:t,selectedItems:o}=this;if("none"===t)return;const i=e.target.selectedItems.map(e=>g(e)).filter(Boolean);o.removeAll(),o.addMany(i)}};e([a()],P.prototype,"_rootListEl",void 0),e([a()],P.prototype,"_activeItem",void 0),e([a()],P.prototype,"_tooltipReferenceMap",void 0),e([a()],P.prototype,"_focusRootFlowItem",void 0),e([a()],P.prototype,"_focusPanelFlowItem",void 0),e([a()],P.prototype,"_focusLayerFlowItem",void 0),e([a()],P.prototype,"_layerListMap",void 0),e([a()],P.prototype,"_filterEnabled",null),e([a()],P.prototype,"_visibleItems",null),e([a()],P.prototype,"_openedPanelItems",null),e([a()],P.prototype,"_renderedOpenLayerFlowItems",null),e([a()],P.prototype,"catalogItems",null),e([a()],P.prototype,"catalogLayer",null),e([a({readOnly:!0})],P.prototype,"catalogLayerList",void 0),e([a()],P.prototype,"catalogOptions",void 0),e([a()],P.prototype,"collapsed",void 0),e([a()],P.prototype,"filterPlaceholder",void 0),e([a()],P.prototype,"filterPredicate",void 0),e([a()],P.prototype,"filterText",void 0),e([a()],P.prototype,"headingLevel",void 0),e([a()],P.prototype,"icon",null),e([a()],P.prototype,"knowledgeGraphOptions",void 0),e([a()],P.prototype,"label",null),e([a()],P.prototype,"layerTablesEnabled",void 0),e([a()],P.prototype,"listItemCreatedFunction",null),e([a()],P.prototype,"mapImageOptions",void 0),e([a(),b("esri/widgets/CatalogLayerList/t9n/CatalogLayerList")],P.prototype,"messages",void 0),e([a(),b("esri/t9n/common")],P.prototype,"messagesCommon",void 0),e([a()],P.prototype,"minFilterItems",void 0),e([a({readOnly:!0})],P.prototype,"openedLayers",void 0),e([a({readOnly:!0})],P.prototype,"openedLayerLists",void 0),e([a()],P.prototype,"onCatalogOpen",void 0),e([a()],P.prototype,"onTablesOpen",void 0),e([a({type:O})],P.prototype,"selectedItems",void 0),e([a()],P.prototype,"selectionMode",void 0),e([a({readOnly:!0})],P.prototype,"tableList",void 0),e([a()],P.prototype,"tileOptions",void 0),e([a()],P.prototype,"view",null),e([C("trigger-action"),a({type:d})],P.prototype,"viewModel",void 0),e([a()],P.prototype,"visibilityAppearance",void 0),e([a({type:c,nonNullable:!0})],P.prototype,"visibleElements",void 0),P=M=e([n("esri.widgets.CatalogLayerList")],P);const A=P;export{A 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.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{getAssetUrl as e}from"../../assets.js";import o from"../../Graphic.js";import"../../intl.js";import i from"../../core/Collection.js";import s from"../../core/Error.js";import r from"../../core/Evented.js";import n from"../../core/Logger.js";import{watch as a,initial as h,when as c}from"../../core/reactiveUtils.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import{cast as l}from"../../core/accessorSupport/decorators/cast.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import p from"../../geometry/Point.js";import{load as v}from"../../geometry/projectionUtils.js";import u from"../../symbols/PictureMarkerSymbol.js";import{pointSymbolTypes as f}from"../../symbols/support/typeUtils.js";import g from"./support/Conversion.js";import{isValidPoint as w,isSupportedNotation as _}from"./support/coordinateConversionUtils.js";import y from"./support/Format.js";import{generateDefaultFormats as C,setDefaultPatterns as b}from"./support/formatUtils.js";import L from"../support/GoTo.js";import{fetchMessageBundle as M}from"../../intl/messages.js";import{onLocaleChange as P,getLocale as j}from"../../intl/locale.js";const S=new p([0,0,500]),H="xy",F=["mgrs","utm","usng","dd","dms","ddm"],G="esri__coordinateConversionWidgetState",E={conversions:"conversions",formats:"formats",view:"view",viewChange:"view-change",cursor:"cursor"},x="esri/images/search/search-symbol-32.png";let T=class extends(L(r.EventedAccessor)){constructor(t){super(t),this._conversionPromise=null,this._locationGraphic=null,this._pointerCount=0,this.conversions=new i,this.formats=new i,this.formatterAvailable=!1,this.messages=null,this.filteredFormats=new i,this.locationSymbol=new u({url:e(x),width:24,height:24}),this.storageEnabled=!0,this.storageType="session",this.view=null,this._saveWidgetState=this._saveWidgetState.bind(this),this._handleFormatChange=this._handleFormatChange.bind(this),this._handleConversionChange=this._handleConversionChange.bind(this),this._handleViewChange=this._handleViewChange.bind(this),this._onClick=this._onClick.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerUp=this._onPointerUp.bind(this)}initialize(){const t=async()=>this.messages=await M("esri/widgets/CoordinateConversion/t9n/CoordinateConversion");this.formats.addMany(C()),t().then(()=>{if(!this.destroyed&&(b(this.messages,this.formats),this.storageEnabled&&this._loadWidgetState(),this.formats.forEach(t=>{t.viewModel=this,this.addHandles(a(()=>t.currentPattern,this._saveWidgetState),t.name??"unnamed-format")}),this.addHandles(this.conversions.on("change",this._handleConversionChange),E.conversions),this.addHandles(this.formats.on("change",this._handleFormatChange),E.formats),this.addHandles(P(()=>{t().then(()=>{b(this.messages,this.formats)})})),v().then(()=>{this.formatterAvailable=!0}).catch(t=>{n.getLogger(this).error(new s("coordinate-conversion:projection-load-failed","Failed to load the projection module.",{error:t})),this.formatterAvailable=!1,this._filterFormatsAndConversions()}).then(()=>this.addHandles(a(()=>this.view,this._handleViewChange,h),E.viewChange)),0===this.conversions.length)){const t=this.formats.find(t=>t.name===H)||this.formats.at(0);this.conversions.add(new g({format:t}))}})}destroy(){this.removeHandles(),this._cleanUpView(this.view),this.view=null}castConversions(t){return this._castToConversions(t)}set currentLocation(t){this._set("currentLocation",t),this._updateConversions()}get currentLocation(){return this._get("currentLocation")||null}set mode(t){switch(t){case"capture":this.currentLocation=null,this._startCaptureMode(),this._set("mode",t);break;case"live":this._startLiveMode(),this._set("mode",t)}}get mode(){return this._get("mode")||"live"}get state(){const{messages:t,view:e}=this,o=e?.ready;return t?o?"ready":e?"loading":"disabled":"disabled"}get storage(){const{storageType:t}=this;return"session"===t?sessionStorage:localStorage}get waitingForConversions(){return null!=this._conversionPromise}setLocation(t){if(this._locationGraphic&&this.view?.graphics.remove(this._locationGraphic),!t)return;const e=t.clone();e.hasZ&&(e.z=void 0),this._locationGraphic=new o({geometry:e,symbol:this.locationSymbol}),this.view?.graphics.add(this._locationGraphic)}async convert(t,e){if(!w(e))throw new s("coordinate-conversion:invalid-point","Invalid point cannot be converted.",{point:e});return Promise.resolve().then(()=>t.convert(e))}async goToLocation(t){const{view:e}=this;if(!e)throw new s("coordinate-conversion:go-to-failed","no view");const o="3d"===e.type?e.clippingArea:null,i=e.map?.basemap?.baseLayers;if(o||(i?.length??0)>0){const e=o??i?.at(0)?.fullExtent;if(null!=e&&!e.contains(t))throw new s("coordinate-conversion:go-to-failed","Point outside basemap extent.",{point:t})}return this.callGoTo({target:t})}pause(){this.currentLocation=null,this.removeHandles(E.view),this.view&&(this.removeHandles(E.cursor),this._locationGraphic&&this.view.graphics.remove(this._locationGraphic))}async previewConversion(t,e=this.currentLocation||S){return(await W(t,e)).displayCoordinate}resume(){"capture"===this.mode?this._startCaptureMode():this._startLiveMode()}reverseConvert(t,e){return e.reverseConvert(t)}async updateConversions(t,e){if("point"!==e?.type)throw this._clearConversions(this.conversions),new s("coordinate-conversion:invalid-input-point","Point is invalid, conversions cannot be updated.",{point:e});return this._convertMany(t,e)}_castToConversions(t){const e=new i;return t.forEach(t=>{let o=null;if(t instanceof g)o=t;else if("string"==typeof t){const e=this.formats.find(e=>e.name===t);e&&(o=new g({format:e}))}o&&e.add(o)}),e}_cleanUpView(t){t&&(this._locationGraphic&&t.graphics.remove(this._locationGraphic),this.removeHandles(E.view),this.removeHandles(E.cursor))}_clearConversions(t){t.forEach(t=>{t.position={location:null,coordinate:null}})}async _convertMany(t,e){return Promise.all(t.map(t=>W(t,e)))}_handleConversionChange(t){for(const e of t.added){const{format:t}=e;t&&(t.viewModel=this,this.currentLocation&&(this._set("waitingForConversions",!0),this.convert(t,this.currentLocation).then(t=>{e.position=t,this._set("waitingForConversions",!1)})))}this._saveWidgetState()}_handleFormatChange(t){t.added.forEach(t=>{this.addHandles(a(()=>t.currentPattern,this._saveWidgetState),t.name??"unnamed-format"),t.viewModel=this}),t.removed.forEach(t=>{t.viewModel=null;const e=this.conversions.filter(e=>e.format===t);this.conversions.removeMany(e),t.name&&this.removeHandles(t.name)})}_loadWidgetState(){try{const t=JSON.parse(this.storage.getItem(G));t&&this._setWidgetState(t)}catch(t){n.getLogger(this).error(new s("coordinate-conversion:invalid-session-storage-json","Could not read from storage.",{error:t}))}}_startCaptureMode(){this.removeHandles(E.view),this.view&&(this.currentLocation&&this.setLocation(this.currentLocation),this.removeHandles(E.cursor),this.addHandles(this.view.acquireCursor("crosshair","high"),E.cursor),this.addHandles(this.view.on("click",this._onClick),E.view))}_startLiveMode(){this._pointerCount=0,this.removeHandles(E.view),this.view&&(this.removeHandles(E.cursor),this._locationGraphic&&this.view.graphics.remove(this._locationGraphic),this.addHandles([this.view.on("pointer-down",this._onPointerDown),this.view.on("pointer-up",this._onPointerUp),this.view.on("pointer-move",this._onPointerMove)],E.view))}_handleViewChange(t,e){e&&e!==t&&this._cleanUpView(e),t&&("capture"===this.mode?this._startCaptureMode():this._startLiveMode(),e&&this._filterFormatsAndConversions())}_onClick(t){if(0===t.button){const e=this.view?.toMap(t),o=e?.normalize();this.setLocation(o),this.currentLocation=o}}_onPointerDown(t){const{pointerType:e}=t;if(this._pointerCount++,("touch"===e||"pen"===e)&&1===this._pointerCount){const e=this.view?.toMap(t);this.currentLocation=e?.normalize()}}_onPointerMove(t){const{pointerType:e}=t;if("mouse"===e||1===this._pointerCount){const e=this.view?.toMap(t);this.currentLocation=e?.normalize()}}_onPointerUp(){this._pointerCount--}_setWidgetState(t){try{t.formats.forEach(e=>{const o=this.formats.find(t=>t.name===e.name);o&&t.locale===j()&&e.currentPattern&&(o.currentPattern=e.currentPattern),o&&e.index>=0&&this.conversions.add(new g({format:o}))})}catch(e){n.getLogger(this).warn(new s("coordinate-conversion:session-storage-read-error","Could not get widget state from stored JSON.",{error:e}))}}_saveWidgetState(){if(!this.storageEnabled)return;const t=this._toJSON();try{this.storage.setItem(G,JSON.stringify({formats:t,locale:j()}))}catch(e){n.getLogger(this).error(new s("coordinate-conversion:local-storage-write-error","Could not write to localStorage.",{error:e}))}}async _updateConversions(){try{await this.updateConversions(this.conversions.toArray(),this.currentLocation)}catch{}}_toJSON(){return this.formats.filter(t=>{const e=t.name;return"xy"===e||"basemap"===e||_(e)}).map(t=>({name:t.name,currentPattern:t.currentPattern,defaultPattern:t.defaultPattern,index:this.conversions.findIndex(e=>e.format===t)})).sort((t,e)=>t.index-e.index).toArray()}_filterFormatsAndConversions(){const{formatterAvailable:t,conversions:e,formats:o}=this;t||this.addHandles(c(()=>this.view?.spatialReference,t=>{const i=t.isWebMercator||t.isWGS84,s=o.filter(t=>{const{name:e}=t;return!!U(e)||"xy"===e&&!i}),r=this.filteredFormats.filter(t=>"xy"===t.name&&i&&!this.formats.includes(t)),n=e.filter(t=>s.includes(t.format));o.removeMany(s),e.removeMany(n),this.filteredFormats.addMany(s.filter(t=>!this.filteredFormats.includes(t))),o.addMany(r)},{once:!0,initial:!0}),E.view)}};async function W(t,e){try{t.position=await(t.format?.convert(e))}catch(o){t.position=null}return t}function U(t){return F.includes(t)}t([d({type:i.ofType(g)})],T.prototype,"conversions",void 0),t([l("conversions")],T.prototype,"castConversions",null),t([d({type:p})],T.prototype,"currentLocation",null),t([d({type:i.ofType(y)})],T.prototype,"formats",void 0),t([d()],T.prototype,"messages",void 0),t([d()],T.prototype,"mode",null),t([d()],T.prototype,"filteredFormats",void 0),t([d({readOnly:!0})],T.prototype,"state",null),t([d({types:f})],T.prototype,"locationSymbol",void 0),t([d({readOnly:!0,dependsOn:["storageType"]})],T.prototype,"storage",null),t([d()],T.prototype,"storageEnabled",void 0),t([d()],T.prototype,"storageType",void 0),t([d({readOnly:!0})],T.prototype,"waitingForConversions",null),t([d()],T.prototype,"view",void 0),T=t([m("esri.widgets.CoordinateConversion.CoordinateConversionViewModel")],T);const A=T;export{A as default};
5
+ import{__decorate as t}from"tslib";import{getAssetUrl as e}from"../../assets.js";import o from"../../Graphic.js";import"../../intl.js";import i from"../../core/Collection.js";import s from"../../core/Error.js";import{EventedAccessor as r}from"../../core/Evented.js";import n from"../../core/Logger.js";import{watch as a,initial as h,when as c}from"../../core/reactiveUtils.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import{cast as l}from"../../core/accessorSupport/decorators/cast.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import p from"../../geometry/Point.js";import{load as v}from"../../geometry/projectionUtils.js";import u from"../../symbols/PictureMarkerSymbol.js";import{pointSymbolTypes as f}from"../../symbols/support/typeUtils.js";import g from"./support/Conversion.js";import{isValidPoint as w,isSupportedNotation as _}from"./support/coordinateConversionUtils.js";import y from"./support/Format.js";import{generateDefaultFormats as C,setDefaultPatterns as b}from"./support/formatUtils.js";import L from"../support/GoTo.js";import{fetchMessageBundle as M}from"../../intl/messages.js";import{onLocaleChange as P,getLocale as j}from"../../intl/locale.js";const S=new p([0,0,500]),H="xy",F=["mgrs","utm","usng","dd","dms","ddm"],G="esri__coordinateConversionWidgetState",x={conversions:"conversions",formats:"formats",view:"view",viewChange:"view-change",cursor:"cursor"},E="esri/images/search/search-symbol-32.png";let T=class extends(L(r)){constructor(t){super(t),this._conversionPromise=null,this._locationGraphic=null,this._pointerCount=0,this.conversions=new i,this.formats=new i,this.formatterAvailable=!1,this.messages=null,this.filteredFormats=new i,this.locationSymbol=new u({url:e(E),width:24,height:24}),this.storageEnabled=!0,this.storageType="session",this.view=null,this._saveWidgetState=this._saveWidgetState.bind(this),this._handleFormatChange=this._handleFormatChange.bind(this),this._handleConversionChange=this._handleConversionChange.bind(this),this._handleViewChange=this._handleViewChange.bind(this),this._onClick=this._onClick.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerUp=this._onPointerUp.bind(this)}initialize(){const t=async()=>this.messages=await M("esri/widgets/CoordinateConversion/t9n/CoordinateConversion");this.formats.addMany(C()),t().then(()=>{if(!this.destroyed&&(b(this.messages,this.formats),this.storageEnabled&&this._loadWidgetState(),this.formats.forEach(t=>{t.viewModel=this,this.addHandles(a(()=>t.currentPattern,this._saveWidgetState),t.name??"unnamed-format")}),this.addHandles(this.conversions.on("change",this._handleConversionChange),x.conversions),this.addHandles(this.formats.on("change",this._handleFormatChange),x.formats),this.addHandles(P(()=>{t().then(()=>{b(this.messages,this.formats)})})),v().then(()=>{this.formatterAvailable=!0}).catch(t=>{n.getLogger(this).error(new s("coordinate-conversion:projection-load-failed","Failed to load the projection module.",{error:t})),this.formatterAvailable=!1,this._filterFormatsAndConversions()}).then(()=>this.addHandles(a(()=>this.view,this._handleViewChange,h),x.viewChange)),0===this.conversions.length)){const t=this.formats.find(t=>t.name===H)||this.formats.at(0);this.conversions.add(new g({format:t}))}})}destroy(){this.removeHandles(),this._cleanUpView(this.view),this.view=null}castConversions(t){return this._castToConversions(t)}set currentLocation(t){this._set("currentLocation",t),this._updateConversions()}get currentLocation(){return this._get("currentLocation")||null}set mode(t){switch(t){case"capture":this.currentLocation=null,this._startCaptureMode(),this._set("mode",t);break;case"live":this._startLiveMode(),this._set("mode",t)}}get mode(){return this._get("mode")||"live"}get state(){const{messages:t,view:e}=this,o=e?.ready;return t?o?"ready":e?"loading":"disabled":"disabled"}get storage(){const{storageType:t}=this;return"session"===t?sessionStorage:localStorage}get waitingForConversions(){return null!=this._conversionPromise}setLocation(t){if(this._locationGraphic&&this.view?.graphics.remove(this._locationGraphic),!t)return;const e=t.clone();e.hasZ&&(e.z=void 0),this._locationGraphic=new o({geometry:e,symbol:this.locationSymbol}),this.view?.graphics.add(this._locationGraphic)}async convert(t,e){if(!w(e))throw new s("coordinate-conversion:invalid-point","Invalid point cannot be converted.",{point:e});return Promise.resolve().then(()=>t.convert(e))}async goToLocation(t){const{view:e}=this;if(!e)throw new s("coordinate-conversion:go-to-failed","no view");const o="3d"===e.type?e.clippingArea:null,i=e.map?.basemap?.baseLayers;if(o||(i?.length??0)>0){const e=o??i?.at(0)?.fullExtent;if(null!=e&&!e.contains(t))throw new s("coordinate-conversion:go-to-failed","Point outside basemap extent.",{point:t})}return this.callGoTo({target:t})}pause(){this.currentLocation=null,this.removeHandles(x.view),this.view&&(this.removeHandles(x.cursor),this._locationGraphic&&this.view.graphics.remove(this._locationGraphic))}async previewConversion(t,e=this.currentLocation||S){return(await W(t,e)).displayCoordinate}resume(){"capture"===this.mode?this._startCaptureMode():this._startLiveMode()}reverseConvert(t,e){return e.reverseConvert(t)}async updateConversions(t,e){if("point"!==e?.type)throw this._clearConversions(this.conversions),new s("coordinate-conversion:invalid-input-point","Point is invalid, conversions cannot be updated.",{point:e});return this._convertMany(t,e)}_castToConversions(t){const e=new i;return t.forEach(t=>{let o=null;if(t instanceof g)o=t;else if("string"==typeof t){const e=this.formats.find(e=>e.name===t);e&&(o=new g({format:e}))}o&&e.add(o)}),e}_cleanUpView(t){t&&(this._locationGraphic&&t.graphics.remove(this._locationGraphic),this.removeHandles(x.view),this.removeHandles(x.cursor))}_clearConversions(t){t.forEach(t=>{t.position={location:null,coordinate:null}})}async _convertMany(t,e){return Promise.all(t.map(t=>W(t,e)))}_handleConversionChange(t){for(const e of t.added){const{format:t}=e;t&&(t.viewModel=this,this.currentLocation&&(this._set("waitingForConversions",!0),this.convert(t,this.currentLocation).then(t=>{e.position=t,this._set("waitingForConversions",!1)})))}this._saveWidgetState()}_handleFormatChange(t){t.added.forEach(t=>{this.addHandles(a(()=>t.currentPattern,this._saveWidgetState),t.name??"unnamed-format"),t.viewModel=this}),t.removed.forEach(t=>{t.viewModel=null;const e=this.conversions.filter(e=>e.format===t);this.conversions.removeMany(e),t.name&&this.removeHandles(t.name)})}_loadWidgetState(){try{const t=JSON.parse(this.storage.getItem(G));t&&this._setWidgetState(t)}catch(t){n.getLogger(this).error(new s("coordinate-conversion:invalid-session-storage-json","Could not read from storage.",{error:t}))}}_startCaptureMode(){this.removeHandles(x.view),this.view&&(this.currentLocation&&this.setLocation(this.currentLocation),this.removeHandles(x.cursor),this.addHandles(this.view.acquireCursor("crosshair","high"),x.cursor),this.addHandles(this.view.on("click",this._onClick),x.view))}_startLiveMode(){this._pointerCount=0,this.removeHandles(x.view),this.view&&(this.removeHandles(x.cursor),this._locationGraphic&&this.view.graphics.remove(this._locationGraphic),this.addHandles([this.view.on("pointer-down",this._onPointerDown),this.view.on("pointer-up",this._onPointerUp),this.view.on("pointer-move",this._onPointerMove)],x.view))}_handleViewChange(t,e){e&&e!==t&&this._cleanUpView(e),t&&("capture"===this.mode?this._startCaptureMode():this._startLiveMode(),e&&this._filterFormatsAndConversions())}_onClick(t){if(0===t.button){const e=this.view?.toMap(t),o=e?.normalize();this.setLocation(o),this.currentLocation=o}}_onPointerDown(t){const{pointerType:e}=t;if(this._pointerCount++,("touch"===e||"pen"===e)&&1===this._pointerCount){const e=this.view?.toMap(t);this.currentLocation=e?.normalize()}}_onPointerMove(t){const{pointerType:e}=t;if("mouse"===e||1===this._pointerCount){const e=this.view?.toMap(t);this.currentLocation=e?.normalize()}}_onPointerUp(){this._pointerCount--}_setWidgetState(t){try{t.formats.forEach(e=>{const o=this.formats.find(t=>t.name===e.name);o&&t.locale===j()&&e.currentPattern&&(o.currentPattern=e.currentPattern),o&&e.index>=0&&this.conversions.add(new g({format:o}))})}catch(e){n.getLogger(this).warn(new s("coordinate-conversion:session-storage-read-error","Could not get widget state from stored JSON.",{error:e}))}}_saveWidgetState(){if(!this.storageEnabled)return;const t=this._toJSON();try{this.storage.setItem(G,JSON.stringify({formats:t,locale:j()}))}catch(e){n.getLogger(this).error(new s("coordinate-conversion:local-storage-write-error","Could not write to localStorage.",{error:e}))}}async _updateConversions(){try{await this.updateConversions(this.conversions.toArray(),this.currentLocation)}catch{}}_toJSON(){return this.formats.filter(t=>{const e=t.name;return"xy"===e||"basemap"===e||_(e)}).map(t=>({name:t.name,currentPattern:t.currentPattern,defaultPattern:t.defaultPattern,index:this.conversions.findIndex(e=>e.format===t)})).sort((t,e)=>t.index-e.index).toArray()}_filterFormatsAndConversions(){const{formatterAvailable:t,conversions:e,formats:o}=this;t||this.addHandles(c(()=>this.view?.spatialReference,t=>{const i=t.isWebMercator||t.isWGS84,s=o.filter(t=>{const{name:e}=t;return!!U(e)||"xy"===e&&!i}),r=this.filteredFormats.filter(t=>"xy"===t.name&&i&&!this.formats.includes(t)),n=e.filter(t=>s.includes(t.format));o.removeMany(s),e.removeMany(n),this.filteredFormats.addMany(s.filter(t=>!this.filteredFormats.includes(t))),o.addMany(r)},{once:!0,initial:!0}),x.view)}};async function W(t,e){try{t.position=await(t.format?.convert(e))}catch(o){t.position=null}return t}function U(t){return F.includes(t)}t([d({type:i.ofType(g)})],T.prototype,"conversions",void 0),t([l("conversions")],T.prototype,"castConversions",null),t([d({type:p})],T.prototype,"currentLocation",null),t([d({type:i.ofType(y)})],T.prototype,"formats",void 0),t([d()],T.prototype,"messages",void 0),t([d()],T.prototype,"mode",null),t([d()],T.prototype,"filteredFormats",void 0),t([d({readOnly:!0})],T.prototype,"state",null),t([d({types:f})],T.prototype,"locationSymbol",void 0),t([d({readOnly:!0,dependsOn:["storageType"]})],T.prototype,"storage",null),t([d()],T.prototype,"storageEnabled",void 0),t([d()],T.prototype,"storageType",void 0),t([d({readOnly:!0})],T.prototype,"waitingForConversions",null),t([d()],T.prototype,"view",void 0),T=t([m("esri.widgets.CoordinateConversion.CoordinateConversionViewModel")],T);const A=T;export{A 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.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import e from"../../core/Evented.js";import{makeHandle as i}from"../../core/handleUtils.js";import n from"../../core/Logger.js";import{removeMaybe as s}from"../../core/maybe.js";import{when as l,watch as a,on as o,initial as r,syncAndInitial as h}from"../../core/reactiveUtils.js";import{schedule as g}from"../../core/scheduling.js";import{truncateLocalTime as d,isValidDate as p,resetUTCDate as u,offsetDate as c}from"../../core/timeUtils.js";import{property as y}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import _ from"../../views/3d/environment/SunLighting.js";import f from"../../views/3d/environment/VirtualLighting.js";import{positionToTimezoneInfo as D}from"../../views/3d/support/earthUtils.js";import{dateTimeToSliderPos as w,sliderPosToDateTime as T,getSeasonFromDate as S,getNorthernHemisphereSeason as U,getSeasonDate as v,calculatePlaySpeed as L}from"./support/daylightUtils.js";import{SliderWithDropdownViewModel as P}from"./support/SliderWithDropdownViewModel.js";import{formatSliderLabel as b,getSunriseAndSunsetTimes as C}from"../support/timeWidgetUtils.js";let E=class extends e.EventedAccessor{constructor(t){super(t),this.view=null,this.timeSliderViewModel=new P({min:0,max:1439,values:[0],labelFormatFunction:b,inputFormatFunction:b}),this.lightingUpdateInterval=200,this._oldLighting=null,this.playSpeedMultiplier=1,this._lastTime=null,this._sunrise=null,this._sunset=null,this._cachedLightingDateUTC=new Date(0),this._cachedDisplayUTCOffset=0,this._lastLightingUpdate=0,this._lightingUpdateHandle=null}initialize(){this.addHandles([l(()=>this.view,t=>t.when(()=>this._updateLighting()),r),a(()=>{const t=this._lighting;return"sun"===t?.type?t.date:null},t=>this._scheduleLightingUpdate(t)),o(()=>this._lighting,"timezone-will-change",t=>this._timezoneWillChange(t),{onListenerAdd:()=>this._timezoneWillChange(null)}),a(()=>!0===this.view?.stationary,()=>{(this.dayPlaying||this.yearPlaying)&&this._updateSunriseAndSunset()},r),a(()=>{const t=this.timeSliderViewModel;return{vm:t,state:t.state,sliderPosition:this.timeSliderPosition}},({vm:t,state:e,sliderPosition:i})=>{"ready"===e&&t.setValue(0,i)}),a(()=>this.timeSliderViewModel?.utcOffset,t=>{null!=t&&(this.utcOffset=t)}),a(()=>({utcOffset:this.utcOffset,sliderViewModel:this.timeSliderViewModel}),({utcOffset:t,sliderViewModel:e})=>{e&&(e.utcOffset=t)},h),a(()=>this.timeSliderViewModel.timezonePickerOpen,()=>this.stopPlaying()),a(()=>this.timeSliderViewModel.values,t=>this._setTimeSliderPosition(t?.[0]??0,{forceLightingUpdate:!1}))])}destroy(){this._cancelLightingUpdate(),this.view=null}get isSupported(){return null==this.view||"3d"===this.view.type}get utcOffset(){return this._cachedDisplayUTCOffset}set utcOffset(t){t!==this.utcOffset&&null!=this._lighting&&"virtual"!==this._lighting.type&&(this._lighting.displayUTCOffset=t,this._updateLighting())}get localDate(){return d(this._lightingDateDisplay)}set localDate(t){this.view?.ready?p(t)&&t.getTime()!==this.localDate.getTime()&&(this._lightingDateDisplay=u(this._lightingDateDisplay,t)):n.getLogger(this).error("The localDate property cannot be set before the view and the widget are ready.")}get timeSliderPosition(){return w(this._lightingDateDisplay)}set timeSliderPosition(t){this.view?.ready&&"ready"===this.timeSliderViewModel?.state?this._setTimeSliderPosition(t,{forceLightingUpdate:!0}):n.getLogger(this).error("The timeSliderPosition property cannot be set before the view and the widget are ready.")}_setTimeSliderPosition(t,e){Math.abs(t-this.timeSliderPosition)<=1/60||(this.stopPlaying(),this._onUserDateTimeChange(),e.forceLightingUpdate&&(this._cancelLightingUpdate(),this._updateLighting()),this._lightingDateDisplay=T(this._lightingDateDisplay,t))}_timezoneFromCamera(t,e){if(null==e||!t.cameraTrackingEnabled)return 0;const i=D([e.longitude,e.latitude]);return null==i?0:Math.round(i.hours+i.minutes/60+i.seconds/3600)}get directShadowsEnabled(){return this._lighting?.directShadowsEnabled??!1}set directShadowsEnabled(t){const e=this._lighting;e&&(e.directShadowsEnabled=t)}get sunLightingEnabled(){return"sun"===this._lightingType}set sunLightingEnabled(t){const e=this._environment;if(t===this._get("sunLightingEnabled")||null==e)return;const i=e.lighting,n=this._oldLighting;this._oldLighting=i;const s={directShadowsEnabled:i.directShadowsEnabled,cameraTrackingEnabled:i.cameraTrackingEnabled},l=t?"sun":"virtual";let a;a=null!=n&&n.type===l?n:t?new _:new f,a.set(s),e.lighting=a,t||(this.stopPlaying(),this.timeSliderViewModel.timezonePickerOpen=!1)}set playingState(t){this.playingState!==t&&(this._set("playingState",t),"none"!==t&&this.sunLightingEnabled&&(this._updateSunriseAndSunset(),this._lastTime=Date.now(),this._play(),this._onUserDateTimeChange()))}get dayPlaying(){return"day"===this.playingState}set dayPlaying(t){t?this.playingState="day":this.dayPlaying&&(this.playingState="none")}get yearPlaying(){return"year"===this.playingState}set yearPlaying(t){t?this.playingState="year":this.yearPlaying&&(this.playingState="none")}get currentSeason(){return S(this.localDate,this._currentHemisphere)}set currentSeason(t){this.stopPlaying(),this._onUserDateTimeChange();const e=U(t,this._currentHemisphere);this.localDate=v(this.localDate,e,0)}get _currentHemisphere(){const t=this.view?.camera?.position?.latitude;return null==t||t>=0?0:1}get _environment(){return this.view?.environment}get _lighting(){return this._environment?.lighting}get _lightingType(){return this._lighting?.type}get _lightingDateDisplay(){return c(this._cachedLightingDateUTC,this._cachedDisplayUTCOffset,"hours")}set _lightingDateDisplay(t){const e=this._lighting;if(null==e||!this.sunLightingEnabled||"virtual"===e.type||!p(t))return;const i=e.date,n=c(t,-this._cachedDisplayUTCOffset,"hours");n.getTime()!==i.getTime()&&(e.date=n,this._updateLighting())}stopPlaying(){this.playingState="none"}toggleDayPlaying(){this.dayPlaying=!this.dayPlaying}toggleYearPlaying(){this.yearPlaying=!this.yearPlaying}toggleSunLightingEnabled(){this.stopPlaying(),this.sunLightingEnabled=!this.sunLightingEnabled}toggleDirectShadowsEnabled(){this.stopPlaying(),this.directShadowsEnabled=!this.directShadowsEnabled}onDateChange(t){this.dayPlaying=!1,this.localDate=t,this._onUserDateTimeChange()}_updateLighting(t){const e=Date.now();this._lastLightingUpdate=e;const{view:i}=this,n=this._lighting;if(null==i||null==n||"virtual"===n.type)return;t??=n.date;const s=n.displayUTCOffset,l=null!=s?s:this._timezoneFromCamera(n,i.camera?.position);this._cachedLightingDateUTC.getTime()!==t.getTime()&&(this._cachedLightingDateUTC=new Date(t.getTime())),this._cachedDisplayUTCOffset!==l&&(this._cachedDisplayUTCOffset=l)}_timezoneWillChange(t){const e=this._lighting;if(null==e||"virtual"===e.type||!e.cameraTrackingEnabled)return;let i;if(t)i=t.timezoneOffset;else{if(null!=e.displayUTCOffset)return;i=_.calculateTimezoneOffset(e.positionTimezoneInfo)}e.displayUTCOffset=i,this._scheduleLightingUpdate()}_scheduleLightingUpdate(t){if(t&&(this._lightingUpdateHandle=s(this._lightingUpdateHandle),!p(t)))return;if(this._lightingUpdateHandle)return;const e=Date.now()-this._lastLightingUpdate,n=this.lightingUpdateInterval-e;let l=null;const a=()=>{this._updateLighting(t),this._lightingUpdateHandle===l&&(this._lightingUpdateHandle=null)};if(n<=0)this._lightingUpdateHandle=l=g(a);else{const t=setTimeout(a,n);this._lightingUpdateHandle=l=i(()=>clearTimeout(t))}}_cancelLightingUpdate(){this._lightingUpdateHandle=s(this._lightingUpdateHandle)}_play(){const t=this._lighting;if(null==t||!this.sunLightingEnabled||"virtual"===t.type)return;const e=t.date;if(this.dayPlaying||this.yearPlaying){const i=Date.now()-(this._lastTime??0);if(this.dayPlaying){this._lastTime=Date.now();const n=L(this._sunrise,this._sunset,e)*this.playSpeedMultiplier/100*i;if(n>0){let i=new Date(e.getTime()+n);const s=t.displayUTCOffset??0;if(((i.getUTCHours()+s)%24+24)%24<((e.getUTCHours()+s)%24+24)%24){const t=864e5;i=new Date(e.getTime()+n-t)}t.date=i}}else{if(i>1e3){this._lastTime=Date.now();const i=(e.getUTCMonth()+1)%12,n=new Date(e.getTime());n.setUTCMonth(i),t.date=n}}requestAnimationFrame(()=>this._play())}}_updateSunriseAndSunset(){const t=this._lighting;if(null==t||"virtual"===t.type||!this.sunLightingEnabled)return;const e=this.view?.camera?.position;if(null==e)return;const{latitude:i,longitude:n}=e,{date:s,displayUTCOffset:l}=t,a=C(s,i,n,l??0);a&&(this._sunrise=new Date(a.sunrise),this._sunset=new Date(a.sunset))}_onUserDateTimeChange(){this.emit("user-date-time-change",{})}};t([y()],E.prototype,"view",void 0),t([y({type:P,nonNullable:!0})],E.prototype,"timeSliderViewModel",void 0),t([y()],E.prototype,"isSupported",null),t([y()],E.prototype,"lightingUpdateInterval",void 0),t([y()],E.prototype,"utcOffset",null),t([y({type:Date})],E.prototype,"localDate",null),t([y()],E.prototype,"timeSliderPosition",null),t([y()],E.prototype,"directShadowsEnabled",null),t([y()],E.prototype,"sunLightingEnabled",null),t([y({type:["none","day","year"],value:"none"})],E.prototype,"playingState",null),t([y()],E.prototype,"dayPlaying",null),t([y()],E.prototype,"yearPlaying",null),t([y()],E.prototype,"playSpeedMultiplier",void 0),t([y()],E.prototype,"currentSeason",null),t([y()],E.prototype,"_lastTime",void 0),t([y()],E.prototype,"_sunrise",void 0),t([y()],E.prototype,"_sunset",void 0),t([y()],E.prototype,"_cachedLightingDateUTC",void 0),t([y()],E.prototype,"_cachedDisplayUTCOffset",void 0),t([y()],E.prototype,"_currentHemisphere",null),t([y()],E.prototype,"_environment",null),t([y()],E.prototype,"_lighting",null),t([y()],E.prototype,"_lightingType",null),t([y()],E.prototype,"_lightingDateDisplay",null),E=t([m("esri.widgets.Daylight.DaylightViewModel")],E);const O=E;export{O as default};
5
+ import{__decorate as t}from"tslib";import{EventedAccessor as e}from"../../core/Evented.js";import{makeHandle as i}from"../../core/handleUtils.js";import n from"../../core/Logger.js";import{removeMaybe as s}from"../../core/maybe.js";import{when as l,watch as a,on as o,initial as r,syncAndInitial as h}from"../../core/reactiveUtils.js";import{schedule as g}from"../../core/scheduling.js";import{truncateLocalTime as d,isValidDate as p,resetUTCDate as u,offsetDate as c}from"../../core/timeUtils.js";import{property as y}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import _ from"../../views/3d/environment/SunLighting.js";import f from"../../views/3d/environment/VirtualLighting.js";import{positionToTimezoneInfo as D}from"../../views/3d/support/earthUtils.js";import{dateTimeToSliderPos as w,sliderPosToDateTime as T,getSeasonFromDate as S,getNorthernHemisphereSeason as U,getSeasonDate as v,calculatePlaySpeed as L}from"./support/daylightUtils.js";import{SliderWithDropdownViewModel as P}from"./support/SliderWithDropdownViewModel.js";import{formatSliderLabel as b,getSunriseAndSunsetTimes as C}from"../support/timeWidgetUtils.js";let O=class extends e{constructor(t){super(t),this.view=null,this.timeSliderViewModel=new P({min:0,max:1439,values:[0],labelFormatFunction:b,inputFormatFunction:b}),this.lightingUpdateInterval=200,this._oldLighting=null,this.playSpeedMultiplier=1,this._lastTime=null,this._sunrise=null,this._sunset=null,this._cachedLightingDateUTC=new Date(0),this._cachedDisplayUTCOffset=0,this._lastLightingUpdate=0,this._lightingUpdateHandle=null}initialize(){this.addHandles([l(()=>this.view,t=>t.when(()=>this._updateLighting()),r),a(()=>{const t=this._lighting;return"sun"===t?.type?t.date:null},t=>this._scheduleLightingUpdate(t)),o(()=>this._lighting,"timezone-will-change",t=>this._timezoneWillChange(t),{onListenerAdd:()=>this._timezoneWillChange(null)}),a(()=>!0===this.view?.stationary,()=>{(this.dayPlaying||this.yearPlaying)&&this._updateSunriseAndSunset()},r),a(()=>{const t=this.timeSliderViewModel;return{vm:t,state:t.state,sliderPosition:this.timeSliderPosition}},({vm:t,state:e,sliderPosition:i})=>{"ready"===e&&t.setValue(0,i)}),a(()=>this.timeSliderViewModel?.utcOffset,t=>{null!=t&&(this.utcOffset=t)}),a(()=>({utcOffset:this.utcOffset,sliderViewModel:this.timeSliderViewModel}),({utcOffset:t,sliderViewModel:e})=>{e&&(e.utcOffset=t)},h),a(()=>this.timeSliderViewModel.timezonePickerOpen,()=>this.stopPlaying()),a(()=>this.timeSliderViewModel.values,t=>this._setTimeSliderPosition(t?.[0]??0,{forceLightingUpdate:!1}))])}destroy(){this._cancelLightingUpdate(),this.view=null}get isSupported(){return null==this.view||"3d"===this.view.type}get utcOffset(){return this._cachedDisplayUTCOffset}set utcOffset(t){t!==this.utcOffset&&null!=this._lighting&&"virtual"!==this._lighting.type&&(this._lighting.displayUTCOffset=t,this._updateLighting())}get localDate(){return d(this._lightingDateDisplay)}set localDate(t){this.view?.ready?p(t)&&t.getTime()!==this.localDate.getTime()&&(this._lightingDateDisplay=u(this._lightingDateDisplay,t)):n.getLogger(this).error("The localDate property cannot be set before the view and the widget are ready.")}get timeSliderPosition(){return w(this._lightingDateDisplay)}set timeSliderPosition(t){this.view?.ready&&"ready"===this.timeSliderViewModel?.state?this._setTimeSliderPosition(t,{forceLightingUpdate:!0}):n.getLogger(this).error("The timeSliderPosition property cannot be set before the view and the widget are ready.")}_setTimeSliderPosition(t,e){Math.abs(t-this.timeSliderPosition)<=1/60||(this.stopPlaying(),this._onUserDateTimeChange(),e.forceLightingUpdate&&(this._cancelLightingUpdate(),this._updateLighting()),this._lightingDateDisplay=T(this._lightingDateDisplay,t))}_timezoneFromCamera(t,e){if(null==e||!t.cameraTrackingEnabled)return 0;const i=D([e.longitude,e.latitude]);return null==i?0:Math.round(i.hours+i.minutes/60+i.seconds/3600)}get directShadowsEnabled(){return this._lighting?.directShadowsEnabled??!1}set directShadowsEnabled(t){const e=this._lighting;e&&(e.directShadowsEnabled=t)}get sunLightingEnabled(){return"sun"===this._lightingType}set sunLightingEnabled(t){const e=this._environment;if(t===this._get("sunLightingEnabled")||null==e)return;const i=e.lighting,n=this._oldLighting;this._oldLighting=i;const s={directShadowsEnabled:i.directShadowsEnabled,cameraTrackingEnabled:i.cameraTrackingEnabled},l=t?"sun":"virtual";let a;a=null!=n&&n.type===l?n:t?new _:new f,a.set(s),e.lighting=a,t||(this.stopPlaying(),this.timeSliderViewModel.timezonePickerOpen=!1)}set playingState(t){this.playingState!==t&&(this._set("playingState",t),"none"!==t&&this.sunLightingEnabled&&(this._updateSunriseAndSunset(),this._lastTime=Date.now(),this._play(),this._onUserDateTimeChange()))}get dayPlaying(){return"day"===this.playingState}set dayPlaying(t){t?this.playingState="day":this.dayPlaying&&(this.playingState="none")}get yearPlaying(){return"year"===this.playingState}set yearPlaying(t){t?this.playingState="year":this.yearPlaying&&(this.playingState="none")}get currentSeason(){return S(this.localDate,this._currentHemisphere)}set currentSeason(t){this.stopPlaying(),this._onUserDateTimeChange();const e=U(t,this._currentHemisphere);this.localDate=v(this.localDate,e,0)}get _currentHemisphere(){const t=this.view?.camera?.position?.latitude;return null==t||t>=0?0:1}get _environment(){return this.view?.environment}get _lighting(){return this._environment?.lighting}get _lightingType(){return this._lighting?.type}get _lightingDateDisplay(){return c(this._cachedLightingDateUTC,this._cachedDisplayUTCOffset,"hours")}set _lightingDateDisplay(t){const e=this._lighting;if(null==e||!this.sunLightingEnabled||"virtual"===e.type||!p(t))return;const i=e.date,n=c(t,-this._cachedDisplayUTCOffset,"hours");n.getTime()!==i.getTime()&&(e.date=n,this._updateLighting())}stopPlaying(){this.playingState="none"}toggleDayPlaying(){this.dayPlaying=!this.dayPlaying}toggleYearPlaying(){this.yearPlaying=!this.yearPlaying}toggleSunLightingEnabled(){this.stopPlaying(),this.sunLightingEnabled=!this.sunLightingEnabled}toggleDirectShadowsEnabled(){this.stopPlaying(),this.directShadowsEnabled=!this.directShadowsEnabled}onDateChange(t){this.dayPlaying=!1,this.localDate=t,this._onUserDateTimeChange()}_updateLighting(t){const e=Date.now();this._lastLightingUpdate=e;const{view:i}=this,n=this._lighting;if(null==i||null==n||"virtual"===n.type)return;t??=n.date;const s=n.displayUTCOffset,l=null!=s?s:this._timezoneFromCamera(n,i.camera?.position);this._cachedLightingDateUTC.getTime()!==t.getTime()&&(this._cachedLightingDateUTC=new Date(t.getTime())),this._cachedDisplayUTCOffset!==l&&(this._cachedDisplayUTCOffset=l)}_timezoneWillChange(t){const e=this._lighting;if(null==e||"virtual"===e.type||!e.cameraTrackingEnabled)return;let i;if(t)i=t.timezoneOffset;else{if(null!=e.displayUTCOffset)return;i=_.calculateTimezoneOffset(e.positionTimezoneInfo)}e.displayUTCOffset=i,this._scheduleLightingUpdate()}_scheduleLightingUpdate(t){if(t&&(this._lightingUpdateHandle=s(this._lightingUpdateHandle),!p(t)))return;if(this._lightingUpdateHandle)return;const e=Date.now()-this._lastLightingUpdate,n=this.lightingUpdateInterval-e;let l=null;const a=()=>{this._updateLighting(t),this._lightingUpdateHandle===l&&(this._lightingUpdateHandle=null)};if(n<=0)this._lightingUpdateHandle=l=g(a);else{const t=setTimeout(a,n);this._lightingUpdateHandle=l=i(()=>clearTimeout(t))}}_cancelLightingUpdate(){this._lightingUpdateHandle=s(this._lightingUpdateHandle)}_play(){const t=this._lighting;if(null==t||!this.sunLightingEnabled||"virtual"===t.type)return;const e=t.date;if(this.dayPlaying||this.yearPlaying){const i=Date.now()-(this._lastTime??0);if(this.dayPlaying){this._lastTime=Date.now();const n=L(this._sunrise,this._sunset,e)*this.playSpeedMultiplier/100*i;if(n>0){let i=new Date(e.getTime()+n);const s=t.displayUTCOffset??0;if(((i.getUTCHours()+s)%24+24)%24<((e.getUTCHours()+s)%24+24)%24){const t=864e5;i=new Date(e.getTime()+n-t)}t.date=i}}else{if(i>1e3){this._lastTime=Date.now();const i=(e.getUTCMonth()+1)%12,n=new Date(e.getTime());n.setUTCMonth(i),t.date=n}}requestAnimationFrame(()=>this._play())}}_updateSunriseAndSunset(){const t=this._lighting;if(null==t||"virtual"===t.type||!this.sunLightingEnabled)return;const e=this.view?.camera?.position;if(null==e)return;const{latitude:i,longitude:n}=e,{date:s,displayUTCOffset:l}=t,a=C(s,i,n,l??0);a&&(this._sunrise=new Date(a.sunrise),this._sunset=new Date(a.sunset))}_onUserDateTimeChange(){this.emit("user-date-time-change",{})}};t([y()],O.prototype,"view",void 0),t([y({type:P,nonNullable:!0})],O.prototype,"timeSliderViewModel",void 0),t([y()],O.prototype,"isSupported",null),t([y()],O.prototype,"lightingUpdateInterval",void 0),t([y()],O.prototype,"utcOffset",null),t([y({type:Date})],O.prototype,"localDate",null),t([y()],O.prototype,"timeSliderPosition",null),t([y()],O.prototype,"directShadowsEnabled",null),t([y()],O.prototype,"sunLightingEnabled",null),t([y({type:["none","day","year"],value:"none"})],O.prototype,"playingState",null),t([y()],O.prototype,"dayPlaying",null),t([y()],O.prototype,"yearPlaying",null),t([y()],O.prototype,"playSpeedMultiplier",void 0),t([y()],O.prototype,"currentSeason",null),t([y()],O.prototype,"_lastTime",void 0),t([y()],O.prototype,"_sunrise",void 0),t([y()],O.prototype,"_sunset",void 0),t([y()],O.prototype,"_cachedLightingDateUTC",void 0),t([y()],O.prototype,"_cachedDisplayUTCOffset",void 0),t([y()],O.prototype,"_currentHemisphere",null),t([y()],O.prototype,"_environment",null),t([y()],O.prototype,"_lighting",null),t([y()],O.prototype,"_lightingType",null),t([y()],O.prototype,"_lightingDateDisplay",null),O=t([m("esri.widgets.Daylight.DaylightViewModel")],O);const E=O;export{E as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import e from"../../core/Evented.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import{directionalPadMoveOnceDuration as s}from"./constants.js";import{css as n}from"./css.js";import{angleToUnitVector as r,toUnitVector as v,vectorToClosestAngle as m}from"./utils.js";import a from"../support/GoTo.js";let d=class extends(a(e.EventedAccessor)){constructor(t){super(t),this._initialAngle=void 0,this._movementVector=void 0,this._widgetCenter=void 0,this._anyAngleMovementEnabled=!1,this._movementTimeout=void 0,this._disabled=!1,this._moveOnceDuration=s,this.angle=void 0,this.speed=1,this.view=null,this.beginFollowingPointer=(t,e)=>{if(this.disabled)return;this._widgetCenter=e;const o=this._pointerLocationToVector(t);if(void 0===o)return;const i=this._resolveClosestAngle(t,o);void 0!==i&&(this._emitMove(r(i)),this.angle=i,this._initialAngle=i,this._setMovementTimeout(()=>{void 0===this._widgetCenter&&this._stopMovement()}),document.addEventListener("pointermove",this._onPointerMove,{passive:!0}),document.addEventListener("pointerup",this._onPointerUp,{passive:!0,once:!0}))},this.moveOnce=t=>{const e=r(t);this._emitMove(e),this._setMovementTimeout(this._stopMovement)},this._pointerLocationToVector=t=>{if(void 0===this._widgetCenter)return;const{x:e,y:o}=v(this._widgetCenter,t);return{x:e,y:-o}},this._resolveClosestAngle=(t,e)=>{const o=t.target,i=o?.getAttribute?.("data-angle"),s=o?.classList?.contains(n.compassButton);if(s)return;const r=Number.parseInt(i??"",10);return Number.isNaN(r)?m(e):r},this._onPointerMove=t=>{if(0===t.buttons)return void this._stopMovement();const e=this._pointerLocationToVector(t);if(void 0===e)return;this._setMovementTimeout(void 0);const o=this._resolveClosestAngle(t,e);if(void 0===o)return void this._emitStop();const i=r(o),s=null!=this._initialAngle&&this._initialAngle!==o;this._anyAngleMovementEnabled||=s;const n=this._anyAngleMovementEnabled?e:i;(n.x!==this._movementVector?.x||n.y!==this._movementVector?.y)&&(this.angle=o,this._emitMove(n))},this._onPointerUp=()=>{void 0===this._movementTimeout?this._stopMovement():this._widgetCenter=void 0},this._stopMovement=()=>{this._emitStop(),this._widgetCenter=void 0,this._initialAngle=void 0,this._anyAngleMovementEnabled=!1,document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._stopMovement),this._setMovementTimeout(void 0)},this.on("move-start",()=>this.view?.mapViewNavigation.begin()),this.on("move-direction-change",({vector:{x:t,y:e}})=>this.view?.mapViewNavigation.continuousPanVector({x:t*this.speed,y:e*this.speed})),this.on("move-stop",()=>this.view?.mapViewNavigation.stop())}destroy(){this._stopMovement()}get disabled(){const{view:t,_disabled:e,supported:o}=this;return!1===t?.ready||e||!o}set disabled(t){this._disabled=t}get rotation(){return this.view?.rotation??this._get("rotation")??0}set rotation(t){this.view?this.view.constraints.rotationEnabled&&this.callGoTo({target:{rotation:t},options:{animate:0===t&&void 0}}):this._set("rotation",t)}get supported(){return null==this.view||"2d"===this.view.type}get state(){const{disabled:t,angle:e}=this;return t?"disabled":null!=e?"moving":"ready"}_setMovementTimeout(t){clearTimeout(this._movementTimeout),this._movementTimeout=void 0===t?void 0:setTimeout(()=>{this._movementTimeout=void 0,t()},this._moveOnceDuration)}_emitMove(t){null==this._movementVector&&this._emitMoveStartEvent({vector:t});const e=this._movementVector;this._movementVector=t,this._emitMoveDirectionChangeEvent({vector:t,oldVector:e})}_emitStop(){this.angle=void 0,void 0!==this._movementVector&&(this._emitMoveStopEvent({oldVector:this._movementVector}),this._movementVector=void 0)}_emitMoveStartEvent(t){this.emit("move-start",{...t,type:"move-start"})}_emitMoveDirectionChangeEvent(t){this.emit("move-direction-change",{...t,type:"move-direction-change"})}_emitMoveStopEvent(t){this.emit("move-stop",{...t,type:"move-stop"})}};t([o()],d.prototype,"_initialAngle",void 0),t([o()],d.prototype,"_movementVector",void 0),t([o()],d.prototype,"_widgetCenter",void 0),t([o()],d.prototype,"_anyAngleMovementEnabled",void 0),t([o()],d.prototype,"_movementTimeout",void 0),t([o()],d.prototype,"_disabled",void 0),t([o()],d.prototype,"_moveOnceDuration",void 0),t([o()],d.prototype,"disabled",null),t([o()],d.prototype,"angle",void 0),t([o({type:Number,range:{min:0,max:100}})],d.prototype,"speed",void 0),t([o()],d.prototype,"rotation",null),t([o()],d.prototype,"supported",null),t([o({readOnly:!0})],d.prototype,"state",null),t([o()],d.prototype,"view",void 0),d=t([i("esri.widgets.DirectionalPad.DirectionalPadViewModel")],d);const h=d;export{h as default};
5
+ import{__decorate as t}from"tslib";import{EventedAccessor as e}from"../../core/Evented.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import{directionalPadMoveOnceDuration as n}from"./constants.js";import{css as s}from"./css.js";import{angleToUnitVector as r,toUnitVector as v,vectorToClosestAngle as m}from"./utils.js";import a from"../support/GoTo.js";let d=class extends(a(e)){constructor(t){super(t),this._initialAngle=void 0,this._movementVector=void 0,this._widgetCenter=void 0,this._anyAngleMovementEnabled=!1,this._movementTimeout=void 0,this._disabled=!1,this._moveOnceDuration=n,this.angle=void 0,this.speed=1,this.view=null,this.beginFollowingPointer=(t,e)=>{if(this.disabled)return;this._widgetCenter=e;const o=this._pointerLocationToVector(t);if(void 0===o)return;const i=this._resolveClosestAngle(t,o);void 0!==i&&(this._emitMove(r(i)),this.angle=i,this._initialAngle=i,this._setMovementTimeout(()=>{void 0===this._widgetCenter&&this._stopMovement()}),document.addEventListener("pointermove",this._onPointerMove,{passive:!0}),document.addEventListener("pointerup",this._onPointerUp,{passive:!0,once:!0}))},this.moveOnce=t=>{const e=r(t);this._emitMove(e),this._setMovementTimeout(this._stopMovement)},this._pointerLocationToVector=t=>{if(void 0===this._widgetCenter)return;const{x:e,y:o}=v(this._widgetCenter,t);return{x:e,y:-o}},this._resolveClosestAngle=(t,e)=>{const o=t.target,i=o?.getAttribute?.("data-angle"),n=o?.classList?.contains(s.compassButton);if(n)return;const r=Number.parseInt(i??"",10);return Number.isNaN(r)?m(e):r},this._onPointerMove=t=>{if(0===t.buttons)return void this._stopMovement();const e=this._pointerLocationToVector(t);if(void 0===e)return;this._setMovementTimeout(void 0);const o=this._resolveClosestAngle(t,e);if(void 0===o)return void this._emitStop();const i=r(o),n=null!=this._initialAngle&&this._initialAngle!==o;this._anyAngleMovementEnabled||=n;const s=this._anyAngleMovementEnabled?e:i;(s.x!==this._movementVector?.x||s.y!==this._movementVector?.y)&&(this.angle=o,this._emitMove(s))},this._onPointerUp=()=>{void 0===this._movementTimeout?this._stopMovement():this._widgetCenter=void 0},this._stopMovement=()=>{this._emitStop(),this._widgetCenter=void 0,this._initialAngle=void 0,this._anyAngleMovementEnabled=!1,document.removeEventListener("pointermove",this._onPointerMove),document.removeEventListener("pointerup",this._stopMovement),this._setMovementTimeout(void 0)},this.on("move-start",()=>this.view?.mapViewNavigation.begin()),this.on("move-direction-change",({vector:{x:t,y:e}})=>this.view?.mapViewNavigation.continuousPanVector({x:t*this.speed,y:e*this.speed})),this.on("move-stop",()=>this.view?.mapViewNavigation.stop())}destroy(){this._stopMovement()}get disabled(){const{view:t,_disabled:e,supported:o}=this;return!1===t?.ready||e||!o}set disabled(t){this._disabled=t}get rotation(){return this.view?.rotation??this._get("rotation")??0}set rotation(t){this.view?this.view.constraints.rotationEnabled&&this.callGoTo({target:{rotation:t},options:{animate:0===t&&void 0}}):this._set("rotation",t)}get supported(){return null==this.view||"2d"===this.view.type}get state(){const{disabled:t,angle:e}=this;return t?"disabled":null!=e?"moving":"ready"}_setMovementTimeout(t){clearTimeout(this._movementTimeout),this._movementTimeout=void 0===t?void 0:setTimeout(()=>{this._movementTimeout=void 0,t()},this._moveOnceDuration)}_emitMove(t){null==this._movementVector&&this._emitMoveStartEvent({vector:t});const e=this._movementVector;this._movementVector=t,this._emitMoveDirectionChangeEvent({vector:t,oldVector:e})}_emitStop(){this.angle=void 0,void 0!==this._movementVector&&(this._emitMoveStopEvent({oldVector:this._movementVector}),this._movementVector=void 0)}_emitMoveStartEvent(t){this.emit("move-start",{...t,type:"move-start"})}_emitMoveDirectionChangeEvent(t){this.emit("move-direction-change",{...t,type:"move-direction-change"})}_emitMoveStopEvent(t){this.emit("move-stop",{...t,type:"move-stop"})}};t([o()],d.prototype,"_initialAngle",void 0),t([o()],d.prototype,"_movementVector",void 0),t([o()],d.prototype,"_widgetCenter",void 0),t([o()],d.prototype,"_anyAngleMovementEnabled",void 0),t([o()],d.prototype,"_movementTimeout",void 0),t([o()],d.prototype,"_disabled",void 0),t([o()],d.prototype,"_moveOnceDuration",void 0),t([o()],d.prototype,"disabled",null),t([o()],d.prototype,"angle",void 0),t([o({type:Number,range:{min:0,max:100}})],d.prototype,"speed",void 0),t([o()],d.prototype,"rotation",null),t([o()],d.prototype,"supported",null),t([o({readOnly:!0})],d.prototype,"state",null),t([o()],d.prototype,"view",void 0),d=t([i("esri.widgets.DirectionalPad.DirectionalPadViewModel")],d);const h=d;export{h as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import r from"../../core/Error.js";import i from"../../core/Evented.js";import o from"../../core/Logger.js";import{debounce as s,isAbortError as a}from"../../core/promiseUtils.js";import{watch as l,on as n,syncAndInitial as u,when as d}from"../../core/reactiveUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as c}from"../../core/accessorSupport/decorators/subclass.js";import{resolveTimeZone as p,formatTimestamp as m,convertDateFormatToIntlOptions as v}from"../../intl/date.js";import{getLocale as y,getLocaleParts as f}from"../../intl/locale.js";import{fetchServiceDescription as g}from"../../rest/networkService.js";import w from"../../rest/support/RouteParameters.js";import _ from"../../rest/support/Stop.js";import T from"../../rest/support/TravelMode.js";import{defaultDatePattern as D,defaultTimePattern as S}from"../../support/dateUtils.js";import{system as C}from"../../time/constants.js";import{shortTimeZoneName as b}from"../../time/timeZoneUtils.js";import{DepartureTimeOption as M}from"./support/directionsUtils.js";import{getDefaultLocaleOptions as A}from"../support/dateUtils.js";import I from"../support/GoTo.js";import{DateTime as L,FixedOffsetZone as j,IANAZone as R}from"luxon";function E(e){return e.map(e=>({locale:e,parts:f(e)})).filter(({parts:e})=>!!e)}function P(e,t){return e.find(({parts:e})=>O(e.language,t.language)&&e.region===t.region)?.locale??e.find(({parts:e})=>O(e.language,t.language))?.locale}function U(e){return"esri.Graphic"===e?.declaredClass}function N(e){return"no"===e||"nb"===e}function O(e,t){return e===t||N(e)&&N(t)}function V(e){return"esri.rest.support.Stop"===e?.declaredClass}let k=class extends(I(i.EventedAccessor)){constructor(e){super(e),this._debouncedSolveHandler=s(async e=>{switch(e.type){case"create":if("complete"!==e.state)return;break;case"delete":break;case"update":switch(e.state){case"start":return void(this._networkFeatureUpdated=!1);case"active":return void(this._networkFeatureUpdated=!0);case"complete":if(!this._networkFeatureUpdated)return}}if(!((this.layer?.stops.filter(({geometry:e})=>!!e).length??0)<2)&&this.autoSolve)try{await this.getDirections({zoomToSolvedRoute:!1})}catch(t){o.getLogger(this).error(t)}}),this._highlight=null,this._loadController=null,this._loadPromise=null,this._networkFeatureUpdated=!1,this._layerView=null,this._routeController=null,this._serviceDescriptionStatus=3,this.apiKey=void 0,this.autoSolve=!0,this.defaultTravelMode=null,this.departureIsoDate=void 0,this.departureIsoTime=void 0,this.departureOption=M.NOW,this.departureTime="now",this.lastError=null,this.lastRoute=null,this.layer=null,this.maxStops=50,this.routeParameters=new w({directionsLengthUnits:"kilometers",findBestSequence:!1,preserveFirstStop:!0,preserveLastStop:!0,returnZ:!0,useTimeWindows:!1}),this.serviceDescription=null,this.view=null}initialize(){this.addHandles([l(()=>this.layer,e=>{if(null!=e){for(;e.stops.length<2;)e.stops.add(new _);this._set("defaultTravelMode",null),this.addHandles(d(()=>this.serviceDescription?e.routeInfo?.analysisSettings?.travelMode:null,e=>{this.defaultTravelMode=this._resolveDefaultTravelMode(e)},{once:!0}))}},u),l(()=>[this.layer,this.view],async()=>{this._layerView=await this._getRouteLayerView()},u),n(()=>this._layerView,["create","delete","update"],e=>{this._debouncedSolveHandler(e).catch(e=>{if(!a(e))throw e})})]);const e=p(this.view?.timeZone??C),t=L.fromMillis(Date.now());this.departureIsoDate=t.toFormat(D,A(e)),this.departureIsoTime=t.toFormat(S,A(e))}get _directionsLanguage(){const e=this.serviceDescription?.directionsSupportedLanguages;if(!e)return;const t=this.routeParameters.directionsLanguage??y(),r=f(t),i=r?.language,o=r?.region;if(!i)return;return P(E(e),{language:i,region:o})}get formattedEta(){const e=this.layer?.routeInfo?.endTime,t=this.layer?.routeInfo?.endTimeOffset;if(this.departureOption===M.UNSPECIFIED||!e||!t)return null;const r=L.fromJSDate(e,{zone:j.instance(t)}),i=L.fromJSDate(e,{zone:R.create(p(this.view?.timeZone??C))}),o=L.fromJSDate(new Date,{zone:R.create(p(this.view?.timeZone??C))}),s=o.year===i.year&&o.month===i.month&&o.day===i.day,a=i.offset===t?void 0:b,l=s?void 0:v("short-date"),n=v("short-time");return m(r.toISO(),{...l,...n,timeZoneName:a})}get impedanceAttribute(){const e=this.routeParameters.travelMode?.impedanceAttributeName??this.routeParameters.impedanceAttribute??this.serviceDescription?.impedance??null;return this.getCostAttribute(e)}get selectedNetworkFeatures(){return this._layerView?.selectedNetworkFeatures??null}get selectedTravelMode(){return this.serviceDescription?this.defaultTravelMode??this.serviceDescription.defaultTravelMode??this.serviceDescription.supportedTravelModes?.[0]??null:null}set selectedTravelMode(e){this._override("selectedTravelMode",e)}get state(){if(this._routeController)return"routing";if(this.lastError)return"error";switch(this._serviceDescriptionStatus){case 4:return"unauthenticated";case 3:return"disabled";case 0:return"initializing";case 2:return"error";default:return"ready"}}get timeAttribute(){const e=this.routeParameters.travelMode?.timeAttributeName??this.routeParameters.directionsTimeAttribute??this.serviceDescription?.directionsTimeAttribute??null;return this.getCostAttribute(e)}get travelModes(){const e=this.serviceDescription?.supportedTravelModes?.slice()??[];return null==this.defaultTravelMode||e.includes(this.defaultTravelMode)||e.unshift(this.defaultTravelMode),e}async load(){if(this._loadPromise)return this._loadPromise;this._loadPromise=this._load(),await this._loadPromise,this._loadPromise=null}async highlight(e){if(this.clearHighlights(),!this.view||!this.layer)return;const t=await this.view.whenLayerView(this.layer);this._highlight=t.highlight(e)}clearHighlights(){null!=this._highlight&&(this._highlight.remove(),this._highlight=null)}centerAt(e){if(!this.view)return;const t=V(e)||U(e)?e.geometry:e;t&&this.callGoTo({target:t})}clearResults(){this._set("lastRoute",null),this.layer?.removeResult()}async create(e){await(this._layerView?.create(e))}async getDirections(e={zoomToSolvedRoute:!0}){const{apiKey:t,layer:i,state:o}=this;if(!i)throw new r("directions-view-model:missing-route-layer","A route layer must be associated with the view model.");if("unauthenticated"===o||"initializing"===o||"disabled"===o||2===this._serviceDescriptionStatus)throw new r("directions-view-model:not-loaded","Cannot get directions until view model loads.");null!=this._routeController&&(this._routeController.abort(),this._routeController=null);const{startTime:s,startTimeIsUTC:l}=this._getStartTimeParameters(),n=this.view?.spatialReference??null,u=this.routeParameters.clone();u.set({apiKey:t,directionsLanguage:this._directionsLanguage,outSpatialReference:n,startTime:s,startTimeIsUTC:l}),this.selectedTravelMode&&(u.travelMode=this.selectedTravelMode);if(i.stops.filter(({geometry:e})=>null!=e).length<2){const e=new r("directions-view-model:not-enough-stops","Not enough stops for routing");throw this._set("lastError",e),e}i.stops.forEach(e=>e.sequence=null),this._routeController=new AbortController;const{signal:d}=this._routeController;let h=null;try{h=await i.solve(u,{signal:d})}catch(c){if(!a(c)){const e=new r("directions-view-model:unable-to-route","Unable to route to these addresses",{error:c});throw this._set("lastError",e),this.clearResults(),e}}finally{this._routeController=null}this._set("lastError",null);for(const r of h.stops)null==r.geometry&&(r.name=null);return i.update(h),this._set("lastRoute",h),e.zoomToSolvedRoute&&this.zoomToRoute(),h}getCostAttribute(e){return(this.serviceDescription?.networkDataset?.networkAttributes??[]).find(({name:t,usageType:r})=>t===e&&"cost"===r)??null}remove(e){this._layerView?.remove(e)}reset(){this.clearHighlights(),this.clearResults(),null!=this.layer&&(this.layer.removeAll(),this.layer.stops=new t([new _,new _]))}save(){if(!this.layer)throw new r("directions-view-model:missing-layer","save() requires a layer");return this.layer.save()}saveAs(e,t={}){if(!this.layer)throw new r("directions-view-model:missing-layer","saveAs() requires a layer");return this.layer.saveAs(e,t)}async startEditing(){this._layerView&&(this._layerView.interactive=!0)}async stopEditing(){this._layerView&&(this._layerView.interactive=!1)}updateDepartureTime(){if(this.departureIsoDate&&this.departureIsoTime)switch(this.departureOption){case M.NOW:this.departureTime="now";break;case M.DEPART_AT:{const e=L.fromISO(`${this.departureIsoDate}T${this.departureIsoTime}`,{zone:j.instance(0)});this.departureTime=e.toJSDate();break}case M.UNSPECIFIED:this.departureTime=null}}zoomToRoute(){const{view:e,layer:t}=this,r=t?.routeInfo?.geometry?.extent;if(!e||!r)return;const i=r.width>r.height,o=r.clone().expand(i?2:1);this.callGoTo({target:o})}async _getRouteLayerView(){return this.view&&this.layer?this.view.whenLayerView(this.layer):null}_getStartTimeParameters(){if("now"===this.departureTime){return{startTime:this.serviceDescription?.capabilities.supportsNow??!1?"now":new Date,startTimeIsUTC:!0}}return null==this.departureTime?{startTime:void 0,startTimeIsUTC:void 0}:{startTime:this.departureTime,startTimeIsUTC:!1}}async _load(){if(null==this.layer)return;null!=this._loadController&&(this._loadController.abort(),this._loadController=null),this._loadController=new AbortController;const{signal:e}=this._loadController;try{this._serviceDescriptionStatus=0;const t=await g(this.layer.url,this.apiKey,{signal:e});this._set("serviceDescription",t),this._serviceDescriptionStatus=1}catch(t){if(a(t))return void(this._serviceDescriptionStatus=3);if("identity-manager:user-aborted"===t.name)return void(this._serviceDescriptionStatus=4);const e=new r("directions-view-model:service-metadata-unavailable","Cannot load route service metadata",{error:t});throw this._serviceDescriptionStatus=2,this._set("lastError",e),e}finally{this._loadController=null}}_resolveDefaultTravelMode(e){if(null==this.serviceDescription)return null;const{defaultTravelMode:t,supportedTravelModes:r}=this.serviceDescription,i=/^<(?<name>.*)>$/i.exec(e.name)?.groups?.name;if(i){const o=r?.find(({name:e})=>e.toLocaleLowerCase()===i.trim().toLocaleLowerCase()),s=o??t;return T.fromJSON({...s?.toJSON(),...e.toJSON()})}const o=r?.find(({name:t})=>t.toLocaleLowerCase()===e.name.toLocaleLowerCase());return o??t}};e([h()],k.prototype,"_directionsLanguage",null),e([h()],k.prototype,"_layerView",void 0),e([h()],k.prototype,"_routeController",void 0),e([h()],k.prototype,"_serviceDescriptionStatus",void 0),e([h()],k.prototype,"apiKey",void 0),e([h()],k.prototype,"autoSolve",void 0),e([h()],k.prototype,"defaultTravelMode",void 0),e([h()],k.prototype,"departureTime",void 0),e([h()],k.prototype,"formattedEta",null),e([h({readOnly:!0})],k.prototype,"impedanceAttribute",null),e([h()],k.prototype,"lastError",void 0),e([h({readOnly:!0})],k.prototype,"lastRoute",void 0),e([h()],k.prototype,"layer",void 0),e([h({type:Number,range:{min:2,max:50},nonNullable:!0})],k.prototype,"maxStops",void 0),e([h({type:w,nonNullable:!0})],k.prototype,"routeParameters",void 0),e([h({readOnly:!0})],k.prototype,"selectedNetworkFeatures",null),e([h({type:T})],k.prototype,"selectedTravelMode",null),e([h({readOnly:!0})],k.prototype,"serviceDescription",void 0),e([h({readOnly:!0})],k.prototype,"state",null),e([h({readOnly:!0})],k.prototype,"timeAttribute",null),e([h()],k.prototype,"travelModes",null),e([h()],k.prototype,"view",void 0),e([h()],k.prototype,"zoomToRoute",null),k=e([c("esri.widgets.Directions.DirectionsViewModel")],k);const z=k;export{z as default};
5
+ import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import r from"../../core/Error.js";import{EventedAccessor as i}from"../../core/Evented.js";import o from"../../core/Logger.js";import{debounce as s,isAbortError as a}from"../../core/promiseUtils.js";import{watch as l,on as n,syncAndInitial as u,when as d}from"../../core/reactiveUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as c}from"../../core/accessorSupport/decorators/subclass.js";import{resolveTimeZone as p,formatTimestamp as m,convertDateFormatToIntlOptions as v}from"../../intl/date.js";import{getLocale as y,getLocaleParts as f}from"../../intl/locale.js";import{fetchServiceDescription as g}from"../../rest/networkService.js";import w from"../../rest/support/RouteParameters.js";import _ from"../../rest/support/Stop.js";import T from"../../rest/support/TravelMode.js";import{defaultDatePattern as D,defaultTimePattern as S}from"../../support/dateUtils.js";import{system as C}from"../../time/constants.js";import{shortTimeZoneName as b}from"../../time/timeZoneUtils.js";import{DepartureTimeOption as M}from"./support/directionsUtils.js";import{getDefaultLocaleOptions as A}from"../support/dateUtils.js";import I from"../support/GoTo.js";import{DateTime as L,FixedOffsetZone as j,IANAZone as R}from"luxon";function P(e){return e.map(e=>({locale:e,parts:f(e)})).filter(({parts:e})=>!!e)}function E(e,t){return e.find(({parts:e})=>O(e.language,t.language)&&e.region===t.region)?.locale??e.find(({parts:e})=>O(e.language,t.language))?.locale}function U(e){return"esri.Graphic"===e?.declaredClass}function N(e){return"no"===e||"nb"===e}function O(e,t){return e===t||N(e)&&N(t)}function V(e){return"esri.rest.support.Stop"===e?.declaredClass}let k=class extends(I(i)){constructor(e){super(e),this._debouncedSolveHandler=s(async e=>{switch(e.type){case"create":if("complete"!==e.state)return;break;case"delete":break;case"update":switch(e.state){case"start":return void(this._networkFeatureUpdated=!1);case"active":return void(this._networkFeatureUpdated=!0);case"complete":if(!this._networkFeatureUpdated)return}}if(!((this.layer?.stops.filter(({geometry:e})=>!!e).length??0)<2)&&this.autoSolve)try{await this.getDirections({zoomToSolvedRoute:!1})}catch(t){o.getLogger(this).error(t)}}),this._highlight=null,this._loadController=null,this._loadPromise=null,this._networkFeatureUpdated=!1,this._layerView=null,this._routeController=null,this._serviceDescriptionStatus=3,this.apiKey=void 0,this.autoSolve=!0,this.defaultTravelMode=null,this.departureIsoDate=void 0,this.departureIsoTime=void 0,this.departureOption=M.NOW,this.departureTime="now",this.lastError=null,this.lastRoute=null,this.layer=null,this.maxStops=50,this.routeParameters=new w({directionsLengthUnits:"kilometers",findBestSequence:!1,preserveFirstStop:!0,preserveLastStop:!0,returnZ:!0,useTimeWindows:!1}),this.serviceDescription=null,this.view=null}initialize(){this.addHandles([l(()=>this.layer,e=>{if(null!=e){for(;e.stops.length<2;)e.stops.add(new _);this._set("defaultTravelMode",null),this.addHandles(d(()=>this.serviceDescription?e.routeInfo?.analysisSettings?.travelMode:null,e=>{this.defaultTravelMode=this._resolveDefaultTravelMode(e)},{once:!0}))}},u),l(()=>[this.layer,this.view],async()=>{this._layerView=await this._getRouteLayerView()},u),n(()=>this._layerView,["create","delete","update"],e=>{this._debouncedSolveHandler(e).catch(e=>{if(!a(e))throw e})})]);const e=p(this.view?.timeZone??C),t=L.fromMillis(Date.now());this.departureIsoDate=t.toFormat(D,A(e)),this.departureIsoTime=t.toFormat(S,A(e))}get _directionsLanguage(){const e=this.serviceDescription?.directionsSupportedLanguages;if(!e)return;const t=this.routeParameters.directionsLanguage??y(),r=f(t),i=r?.language,o=r?.region;if(!i)return;return E(P(e),{language:i,region:o})}get formattedEta(){const e=this.layer?.routeInfo?.endTime,t=this.layer?.routeInfo?.endTimeOffset;if(this.departureOption===M.UNSPECIFIED||!e||!t)return null;const r=L.fromJSDate(e,{zone:j.instance(t)}),i=L.fromJSDate(e,{zone:R.create(p(this.view?.timeZone??C))}),o=L.fromJSDate(new Date,{zone:R.create(p(this.view?.timeZone??C))}),s=o.year===i.year&&o.month===i.month&&o.day===i.day,a=i.offset===t?void 0:b,l=s?void 0:v("short-date"),n=v("short-time");return m(r.toISO(),{...l,...n,timeZoneName:a})}get impedanceAttribute(){const e=this.routeParameters.travelMode?.impedanceAttributeName??this.routeParameters.impedanceAttribute??this.serviceDescription?.impedance??null;return this.getCostAttribute(e)}get selectedNetworkFeatures(){return this._layerView?.selectedNetworkFeatures??null}get selectedTravelMode(){return this.serviceDescription?this.defaultTravelMode??this.serviceDescription.defaultTravelMode??this.serviceDescription.supportedTravelModes?.[0]??null:null}set selectedTravelMode(e){this._override("selectedTravelMode",e)}get state(){if(this._routeController)return"routing";if(this.lastError)return"error";switch(this._serviceDescriptionStatus){case 4:return"unauthenticated";case 3:return"disabled";case 0:return"initializing";case 2:return"error";default:return"ready"}}get timeAttribute(){const e=this.routeParameters.travelMode?.timeAttributeName??this.routeParameters.directionsTimeAttribute??this.serviceDescription?.directionsTimeAttribute??null;return this.getCostAttribute(e)}get travelModes(){const e=this.serviceDescription?.supportedTravelModes?.slice()??[];return null==this.defaultTravelMode||e.includes(this.defaultTravelMode)||e.unshift(this.defaultTravelMode),e}async load(){if(this._loadPromise)return this._loadPromise;this._loadPromise=this._load(),await this._loadPromise,this._loadPromise=null}async highlight(e){if(this.clearHighlights(),!this.view||!this.layer)return;const t=await this.view.whenLayerView(this.layer);this._highlight=t.highlight(e)}clearHighlights(){null!=this._highlight&&(this._highlight.remove(),this._highlight=null)}centerAt(e){if(!this.view)return;const t=V(e)||U(e)?e.geometry:e;t&&this.callGoTo({target:t})}clearResults(){this._set("lastRoute",null),this.layer?.removeResult()}async create(e){await(this._layerView?.create(e))}async getDirections(e={zoomToSolvedRoute:!0}){const{apiKey:t,layer:i,state:o}=this;if(!i)throw new r("directions-view-model:missing-route-layer","A route layer must be associated with the view model.");if("unauthenticated"===o||"initializing"===o||"disabled"===o||2===this._serviceDescriptionStatus)throw new r("directions-view-model:not-loaded","Cannot get directions until view model loads.");null!=this._routeController&&(this._routeController.abort(),this._routeController=null);const{startTime:s,startTimeIsUTC:l}=this._getStartTimeParameters(),n=this.view?.spatialReference??null,u=this.routeParameters.clone();u.set({apiKey:t,directionsLanguage:this._directionsLanguage,outSpatialReference:n,startTime:s,startTimeIsUTC:l}),this.selectedTravelMode&&(u.travelMode=this.selectedTravelMode);if(i.stops.filter(({geometry:e})=>null!=e).length<2){const e=new r("directions-view-model:not-enough-stops","Not enough stops for routing");throw this._set("lastError",e),e}i.stops.forEach(e=>e.sequence=null),this._routeController=new AbortController;const{signal:d}=this._routeController;let h=null;try{h=await i.solve(u,{signal:d})}catch(c){if(!a(c)){const e=new r("directions-view-model:unable-to-route","Unable to route to these addresses",{error:c});throw this._set("lastError",e),this.clearResults(),e}}finally{this._routeController=null}this._set("lastError",null);for(const r of h.stops)null==r.geometry&&(r.name=null);return i.update(h),this._set("lastRoute",h),e.zoomToSolvedRoute&&this.zoomToRoute(),h}getCostAttribute(e){return(this.serviceDescription?.networkDataset?.networkAttributes??[]).find(({name:t,usageType:r})=>t===e&&"cost"===r)??null}remove(e){this._layerView?.remove(e)}reset(){this.clearHighlights(),this.clearResults(),null!=this.layer&&(this.layer.removeAll(),this.layer.stops=new t([new _,new _]))}save(){if(!this.layer)throw new r("directions-view-model:missing-layer","save() requires a layer");return this.layer.save()}saveAs(e,t={}){if(!this.layer)throw new r("directions-view-model:missing-layer","saveAs() requires a layer");return this.layer.saveAs(e,t)}async startEditing(){this._layerView&&(this._layerView.interactive=!0)}async stopEditing(){this._layerView&&(this._layerView.interactive=!1)}updateDepartureTime(){if(this.departureIsoDate&&this.departureIsoTime)switch(this.departureOption){case M.NOW:this.departureTime="now";break;case M.DEPART_AT:{const e=L.fromISO(`${this.departureIsoDate}T${this.departureIsoTime}`,{zone:j.instance(0)});this.departureTime=e.toJSDate();break}case M.UNSPECIFIED:this.departureTime=null}}zoomToRoute(){const{view:e,layer:t}=this,r=t?.routeInfo?.geometry?.extent;if(!e||!r)return;const i=r.width>r.height,o=r.clone().expand(i?2:1);this.callGoTo({target:o})}async _getRouteLayerView(){return this.view&&this.layer?this.view.whenLayerView(this.layer):null}_getStartTimeParameters(){if("now"===this.departureTime){return{startTime:this.serviceDescription?.capabilities.supportsNow??!1?"now":new Date,startTimeIsUTC:!0}}return null==this.departureTime?{startTime:void 0,startTimeIsUTC:void 0}:{startTime:this.departureTime,startTimeIsUTC:!1}}async _load(){if(null==this.layer)return;null!=this._loadController&&(this._loadController.abort(),this._loadController=null),this._loadController=new AbortController;const{signal:e}=this._loadController;try{this._serviceDescriptionStatus=0;const t=await g(this.layer.url,this.apiKey,{signal:e});this._set("serviceDescription",t),this._serviceDescriptionStatus=1}catch(t){if(a(t))return void(this._serviceDescriptionStatus=3);if("identity-manager:user-aborted"===t.name)return void(this._serviceDescriptionStatus=4);const e=new r("directions-view-model:service-metadata-unavailable","Cannot load route service metadata",{error:t});throw this._serviceDescriptionStatus=2,this._set("lastError",e),e}finally{this._loadController=null}}_resolveDefaultTravelMode(e){if(null==this.serviceDescription)return null;const{defaultTravelMode:t,supportedTravelModes:r}=this.serviceDescription,i=/^<(?<name>.*)>$/i.exec(e.name)?.groups?.name;if(i){const o=r?.find(({name:e})=>e.toLocaleLowerCase()===i.trim().toLocaleLowerCase()),s=o??t;return T.fromJSON({...s?.toJSON(),...e.toJSON()})}const o=r?.find(({name:t})=>t.toLocaleLowerCase()===e.name.toLocaleLowerCase());return o??t}};e([h()],k.prototype,"_directionsLanguage",null),e([h()],k.prototype,"_layerView",void 0),e([h()],k.prototype,"_routeController",void 0),e([h()],k.prototype,"_serviceDescriptionStatus",void 0),e([h()],k.prototype,"apiKey",void 0),e([h()],k.prototype,"autoSolve",void 0),e([h()],k.prototype,"defaultTravelMode",void 0),e([h()],k.prototype,"departureTime",void 0),e([h()],k.prototype,"formattedEta",null),e([h({readOnly:!0})],k.prototype,"impedanceAttribute",null),e([h()],k.prototype,"lastError",void 0),e([h({readOnly:!0})],k.prototype,"lastRoute",void 0),e([h()],k.prototype,"layer",void 0),e([h({type:Number,range:{min:2,max:50},nonNullable:!0})],k.prototype,"maxStops",void 0),e([h({type:w,nonNullable:!0})],k.prototype,"routeParameters",void 0),e([h({readOnly:!0})],k.prototype,"selectedNetworkFeatures",null),e([h({type:T})],k.prototype,"selectedTravelMode",null),e([h({readOnly:!0})],k.prototype,"serviceDescription",void 0),e([h({readOnly:!0})],k.prototype,"state",null),e([h({readOnly:!0})],k.prototype,"timeAttribute",null),e([h()],k.prototype,"travelModes",null),e([h()],k.prototype,"view",void 0),e([h()],k.prototype,"zoomToRoute",null),k=e([c("esri.widgets.Directions.DirectionsViewModel")],k);const z=k;export{z 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.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../Graphic.js";import"../../intl.js";import{getContrast as i,multiplyOpacity as r}from"../../core/colorUtils.js";import{handlesGroup as s}from"../../core/handleUtils.js";import{destroyMaybe as o}from"../../core/maybe.js";import{watch as n,initial as a}from"../../core/reactiveUtils.js";import{formatDecimal as p,formatImperialLength as l,formatMetricLength as m}from"../../core/unitFormatUtils.js";import{convertUnit as c}from"../../core/unitUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as u}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as d}from"../../core/support/UpdatingHandles.js";import y from"../../geometry/Point.js";import v from"../../geometry/Polyline.js";import{e as g,l as _}from"../../chunks/geodeticDensifyOperator.js";import{e as f,l as w}from"../../chunks/geodeticLengthOperator.js";import{e as L}from"../../chunks/lengthOperator.js";import{isSupported as j,geodesicLengths as b,geodesicDensify as S}from"../../geometry/support/geodesicUtils.js";import M from"../../layers/GraphicsLayer.js";import x from"../../symbols/CIMSymbol.js";import C from"../../symbols/Font.js";import A from"../../symbols/SimpleMarkerSymbol.js";import G from"../../symbols/TextSymbol.js";import{SnappingVisualizer2D as k}from"../../views/2d/interactive/SnappingVisualizer2D.js";import O from"../../views/draw/Draw.js";import{createCoordinateHelper as D}from"../../views/interactive/coordinateHelper.js";import{createManipulatorDragEventPipeline as H,screenToMap as P,dragManipulatedObject as R}from"../../views/interactive/dragEventPipeline.js";import{GraphicManipulator as U}from"../../views/interactive/GraphicManipulator.js";import{InteractiveToolBase as T}from"../../views/interactive/InteractiveToolBase.js";import{EditGeometry as E}from"../../views/interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as I}from"../../views/interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as z}from"../../views/interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as B}from"../../views/interactive/snapping/SnappingDragPipelineStep.js";import{setupSnappingToggleHandles as F}from"../../views/interactive/snapping/snappingUtils.js";import{fetchMessageBundle as V}from"../../intl/messages.js";import{onLocaleChange as W}from"../../intl/locale.js";const N=1e5;let q=class extends T{constructor(e){super(e),this._measurementLayer=new M({internal:!0,listMode:"hide",visible:!1}),this._manipulatorLayer=new M({internal:!0,listMode:"hide",visible:!1}),this._snappingLayer=new M({internal:!0,listMode:"hide",visible:!1}),this._updatingHandles=new d,this._vertices=[],this._drawActive=!1,this.measurement=null,this.measurementLabel=null}initialize(){V("esri/core/t9n/Units").then(e=>{this.messages=e});const e=this.view;this._draw=new O({view:e}),e.map.addMany([this._measurementLayer,this._manipulatorLayer,this._snappingLayer]),e.focus(),this.addHandles([W(async()=>{this.messages=await V("esri/core/t9n/Units")}),n(()=>[this.unit,this.messages],()=>{this._updatePolylines()},a),n(()=>[this.view.effectiveTheme.accentColor,this.view.effectiveTheme.textColor],()=>{if(!this._vertices.length)return;const e=this._vertices.map(({coord:e})=>e);for(const{handle:t}of this._vertices)t.remove();this._vertices=[],this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._snappingLayer.removeAll(),this.manipulators.removeAll(),this._updateSketch(e)})]),F(this)}destroy(){const{map:e}=this.view;this._draw.view=null,this._draw=o(this._draw),e.removeMany([this._measurementLayer,this._manipulatorLayer,this._snappingLayer]),this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._snappingLayer.removeAll(),this._set("measurement",null),this._set("measurementLabel",null),this._measurementLayer=o(this._measurementLayer),this._manipulatorLayer=o(this._manipulatorLayer),this._snappingLayer=o(this._snappingLayer),this._updatingHandles=o(this._updatingHandles),this._resetVertices()}get cursor(){return this._drawActive?"crosshair":null}set editable(e){this._set("editable",e),e||this._draw.reset()}get snappingOptions(){return this.snappingManager.options}get updating(){return this._updatingHandles.updating||this.snappingManager.updating}onActivate(){this._drawActive||0!==this._vertices.length||this._startSketch()}onShow(){this._measurementLayer.visible=!0,this._manipulatorLayer.visible=!0,this._snappingLayer.visible=!0}onHide(){this._measurementLayer.visible=!1,this._manipulatorLayer.visible=!1,this._snappingLayer.visible=!1}_getSnappingContext(e){return new z({elevationInfo:{mode:"on-the-ground",offset:0},pointer:e,editGeometryOperations:new I(new E("point",D(!1,!1,this.view.spatialReference)),2),visualizer:new k(this._snappingLayer)})}_resetVertices(){for(const{handle:e}of this._vertices)e.remove();this._vertices=[]}_startSketch(){this._drawActive=!0;const{snappingManager:e}=this;this._draw.create("polyline",{mode:"click",snappingManager:e}).on(["draw-complete","vertex-add","vertex-update","vertex-remove","cursor-update","undo","redo"],e=>{this._updateSketch(e.vertices),"draw-complete"===e.type&&this._stopSketch()})}_stopSketch(){this.manipulators.forEach(({manipulator:e})=>{e.interactive=!0}),this._drawActive=!1,this.finishToolCreation()}_updateSketch(e){const{spatialReference:t}=this.view;for(;this._vertices.length>e.length;){const{handle:e,manipulator:t}=this._vertices.pop();e.remove(),this.manipulators.remove(t)}for(let p=this._vertices.length;p<e.length;p++){const[i,r]=e[p],o=new y({x:i,y:r,spatialReference:t}),n=J(o,this.view,this._manipulatorLayer);this.manipulators.add(n);const a=I.fromGeometry(o,2),l=[a.on("vertex-update",e=>{const t=e.vertices.at(0);t&&(this._vertices[p].coord=[t.pos[0],t.pos[1]],this._updatePolylines())}),H(n,(e,t,i,r)=>{const s=this._getSnappingContext(r),{snappingManager:o}=this,n=this._updatingHandles,{snappingStep:p}=B({snappingContext:s,snappingManager:o,updatingHandles:n});t.next(P(this.view)).next(t=>{if("start"===t.action){const i=new y(t.mapStart);e.graphic.geometry=i,a.trySetGeometry(i)}return t}).next(...p).next(R({operations:a})).next(()=>{e.graphic.geometry=a.data.geometry})})];this._vertices.push({manipulator:n,coord:[i,r],handle:s(l)})}const i=this._vertices.length-1,r=this._vertices[i],[o,n]=e[i];r.coord[0]===o&&r.coord[1]===n||(r.coord=[o,n],r.manipulator.graphic.geometry=new y({x:o,y:n,spatialReference:t}));const a=this._drawActive?this._vertices[i].manipulator:null;this.manipulators.forEach(({manipulator:e})=>{e.interactive=null==a||e!==a}),this._updatePolylines()}_updatePolylines(){if(this._vertices.length<2)return void this._measurementLayer.removeAll();const e=K(this._vertices.map(({coord:e})=>e),this.view.spatialReference);if(!e)return;const{measurement:s,drawing:o,original:n}=e;this._set("measurement",s);const a=Y(this.messages,s,this.unit);let p,l;this._set("measurementLabel",a);const{graphics:m}=this._measurementLayer,c=2===m.length,{effectiveTheme:h}=this.view;c?(p=m.at(0),l=m.at(1)):(p=new t({symbol:new x({data:{type:"CIMSymbolReference",symbol:{type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",effects:[{type:"CIMGeometricEffectDashes",dashTemplate:[14,12],lineDashEnding:"FullGap",controlPointEnding:"NoConstraint"}],enable:!0,capStyle:"Butt",joinStyle:"Round",width:3.5,color:i(h.accentColor).toArray()},{type:"CIMSolidStroke",enable:!0,capStyle:"Butt",joinStyle:"Round",width:5,color:h.accentColor.toArray()}]}}})}),l=new t({symbol:new G({color:h.textColor,haloColor:r(i(h.textColor,160),.5),haloSize:2,font:new C({size:14,family:"sans-serif"})})}),m.removeAll(),m.addMany([p,l])),p.geometry=o,l.geometry=n.extent?.center,l.symbol.text=a}};function J(e,i,s){const o=r(i.effectiveTheme.accentColor,.5),n={type:"simple-line",width:0},a=8,p=new A({style:"circle",color:o,size:a,outline:n}),l=new A({style:"circle",color:o,size:1.5*a,outline:n}),m=new t({geometry:e,symbol:p});return new U({view:i,layer:s,graphic:m,focusedSymbol:l})}function K(e,t){const i=new v({paths:[e],spatialReference:t});let r,s;return t.isGeographic?j(t)?(r=b([i],"meters")[0],s=S(i,N)):(r=f(i,{unit:"meters"}),s=g(i,N,{unit:"meters"})):t.isWebMercator?(r=f(i,{unit:"meters"}),s=g(i,N,{unit:"meters"})):(r=L(i,{unit:"meters"}),s=i),{measurement:{geometry:s,length:r},original:i,drawing:s}}function Q(e){return null!=e}async function X(e){(e?.isGeographic&&!j(e)||e?.isWebMercator)&&await Promise.all([_(),w()])}function Y(e,t,i){if(!t||!e)return"";switch(i){case"metric":return m(e,t.length,"meters");case"imperial":return l(e,t.length,"meters");default:return p(e,c(t.length,"meters",i),i)}}e([h()],q.prototype,"_drawActive",void 0),e([h({readOnly:!0})],q.prototype,"cursor",null),e([h({value:!0})],q.prototype,"editable",null),e([h({readOnly:!0})],q.prototype,"measurement",void 0),e([h({readOnly:!0})],q.prototype,"measurementLabel",void 0),e([h()],q.prototype,"messages",void 0),e([h({constructOnly:!0})],q.prototype,"snappingManager",void 0),e([h()],q.prototype,"unit",void 0),e([h()],q.prototype,"updating",null),e([h({constructOnly:!0})],q.prototype,"view",void 0),q=e([u("esri.widgets.DistanceMeasurement2D.DistanceMeasurement2DTool")],q);export{q as DistanceMeasurement2DTool,K as createDistanceMeasurementInfo2D,Y as createDistanceMeasurementLabel,Q as isSupported,X as loadGeometryOperators};
5
+ import{__decorate as e}from"tslib";import t from"../../Graphic.js";import"../../intl.js";import{getContrast as i,multiplyOpacity as r}from"../../core/colorUtils.js";import{handlesGroup as s}from"../../core/handleUtils.js";import{destroyMaybe as o}from"../../core/maybe.js";import{watch as n,initial as a}from"../../core/reactiveUtils.js";import{formatDecimal as l,formatImperialLength as p,formatMetricLength as m}from"../../core/unitFormatUtils.js";import{convertUnit as c}from"../../core/unitUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as u}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as d}from"../../core/support/UpdatingHandles.js";import y from"../../geometry/Point.js";import v from"../../geometry/Polyline.js";import{e as g,l as _}from"../../chunks/geodeticDensifyOperator.js";import{e as f,l as w}from"../../chunks/geodeticLengthOperator.js";import{e as L}from"../../chunks/lengthOperator.js";import{isSupported as j,geodesicLengths as b,geodesicDensify as S}from"../../geometry/support/geodesicUtils.js";import M from"../../layers/GraphicsLayer.js";import x from"../../symbols/CIMSymbol.js";import C from"../../symbols/Font.js";import A from"../../symbols/SimpleMarkerSymbol.js";import D from"../../symbols/TextSymbol.js";import{SnappingVisualizer2D as G}from"../../views/2d/interactive/SnappingVisualizer2D.js";import k from"../../views/draw/Draw.js";import{createCoordinateHelper as T}from"../../views/interactive/coordinateHelper.js";import{createManipulatorDragEventPipeline as O,screenToMap as H,dragManipulatedObject as P}from"../../views/interactive/dragEventPipeline.js";import{GraphicManipulator as R}from"../../views/interactive/GraphicManipulator.js";import{InteractiveToolBase as U}from"../../views/interactive/InteractiveToolBase.js";import{EditGeometry as E}from"../../views/interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as I}from"../../views/interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as z}from"../../views/interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as B}from"../../views/interactive/snapping/SnappingDragPipelineStep.js";import{setupSnappingToggleHandles as F}from"../../views/interactive/snapping/snappingUtils.js";import{fetchMessageBundle as V}from"../../intl/messages.js";import{onLocaleChange as W}from"../../intl/locale.js";const N=1e5;let q=class extends U{constructor(e){super(e),this._measurementLayer=new M({internal:!0,listMode:"hide",visible:!1,title:"DistanceMeasurement2DTool measurement layer"}),this._manipulatorLayer=new M({internal:!0,listMode:"hide",visible:!1,title:"DistanceMeasurement2DTool manipulator layer"}),this._snappingLayer=new M({internal:!0,listMode:"hide",visible:!1,title:"DistanceMeasurement2DTool snapping layer"}),this._updatingHandles=new d,this._vertices=[],this._drawActive=!1,this.measurement=null,this.measurementLabel=null}initialize(){V("esri/core/t9n/Units").then(e=>{this.messages=e});const e=this.view;this._draw=new k({view:e}),e.map.addMany([this._measurementLayer,this._manipulatorLayer,this._snappingLayer]),e.focus(),this.addHandles([W(async()=>{this.messages=await V("esri/core/t9n/Units")}),n(()=>[this.unit,this.messages],()=>{this._updatePolylines()},a),n(()=>[this.view.effectiveTheme.accentColor,this.view.effectiveTheme.textColor],()=>{if(!this._vertices.length)return;const e=this._vertices.map(({coord:e})=>e);for(const{handle:t}of this._vertices)t.remove();this._vertices=[],this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._snappingLayer.removeAll(),this.manipulators.removeAll(),this._updateSketch(e)})]),F(this)}destroy(){const{map:e}=this.view;this._draw.view=null,this._draw=o(this._draw),e.removeMany([this._measurementLayer,this._manipulatorLayer,this._snappingLayer]),this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._snappingLayer.removeAll(),this._set("measurement",null),this._set("measurementLabel",null),this._measurementLayer=o(this._measurementLayer),this._manipulatorLayer=o(this._manipulatorLayer),this._snappingLayer=o(this._snappingLayer),this._updatingHandles=o(this._updatingHandles),this._resetVertices()}get cursor(){return this._drawActive?"crosshair":null}set editable(e){this._set("editable",e),e||this._draw.reset()}get snappingOptions(){return this.snappingManager.options}get updating(){return this._updatingHandles.updating||this.snappingManager.updating}onActivate(){this._drawActive||0!==this._vertices.length||this._startSketch()}onShow(){this._measurementLayer.visible=!0,this._manipulatorLayer.visible=!0,this._snappingLayer.visible=!0}onHide(){this._measurementLayer.visible=!1,this._manipulatorLayer.visible=!1,this._snappingLayer.visible=!1}_getSnappingContext(e){return new z({elevationInfo:{mode:"on-the-ground",offset:0},pointer:e,editGeometryOperations:new I(new E("point",T(!1,!1,this.view.spatialReference)),2),visualizer:new G(this._snappingLayer)})}_resetVertices(){for(const{handle:e}of this._vertices)e.remove();this._vertices=[]}_startSketch(){this._drawActive=!0;const{snappingManager:e}=this;this._draw.create("polyline",{mode:"click",snappingManager:e}).on(["draw-complete","vertex-add","vertex-update","vertex-remove","cursor-update","undo","redo"],e=>{this._updateSketch(e.vertices),"draw-complete"===e.type&&this._stopSketch()})}_stopSketch(){this.manipulators.forEach(({manipulator:e})=>{e.interactive=!0}),this._drawActive=!1,this.finishToolCreation()}_updateSketch(e){const{spatialReference:t}=this.view;for(;this._vertices.length>e.length;){const{handle:e,manipulator:t}=this._vertices.pop();e.remove(),this.manipulators.remove(t)}for(let l=this._vertices.length;l<e.length;l++){const[i,r]=e[l],o=new y({x:i,y:r,spatialReference:t}),n=J(o,this.view,this._manipulatorLayer);this.manipulators.add(n);const a=I.fromGeometry(o,2),p=[a.on("vertex-update",e=>{const t=e.vertices.at(0);t&&(this._vertices[l].coord=[t.pos[0],t.pos[1]],this._updatePolylines())}),O(n,(e,t,i,r)=>{const s=this._getSnappingContext(r),{snappingManager:o}=this,n=this._updatingHandles,{snappingStep:l}=B({snappingContext:s,snappingManager:o,updatingHandles:n});t.next(H(this.view)).next(t=>{if("start"===t.action){const i=new y(t.mapStart);e.graphic.geometry=i,a.trySetGeometry(i)}return t}).next(...l).next(P({operations:a})).next(()=>{e.graphic.geometry=a.data.geometry})})];this._vertices.push({manipulator:n,coord:[i,r],handle:s(p)})}const i=this._vertices.length-1,r=this._vertices[i],[o,n]=e[i];r.coord[0]===o&&r.coord[1]===n||(r.coord=[o,n],r.manipulator.graphic.geometry=new y({x:o,y:n,spatialReference:t}));const a=this._drawActive?this._vertices[i].manipulator:null;this.manipulators.forEach(({manipulator:e})=>{e.interactive=null==a||e!==a}),this._updatePolylines()}_updatePolylines(){if(this._vertices.length<2)return void this._measurementLayer.removeAll();const e=K(this._vertices.map(({coord:e})=>e),this.view.spatialReference);if(!e)return;const{measurement:s,drawing:o,original:n}=e;this._set("measurement",s);const a=Y(this.messages,s,this.unit);let l,p;this._set("measurementLabel",a);const{graphics:m}=this._measurementLayer,c=2===m.length,{effectiveTheme:h}=this.view;c?(l=m.at(0),p=m.at(1)):(l=new t({symbol:new x({data:{type:"CIMSymbolReference",symbol:{type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",effects:[{type:"CIMGeometricEffectDashes",dashTemplate:[14,12],lineDashEnding:"FullGap",controlPointEnding:"NoConstraint"}],enable:!0,capStyle:"Butt",joinStyle:"Round",width:3.5,color:i(h.accentColor).toArray()},{type:"CIMSolidStroke",enable:!0,capStyle:"Butt",joinStyle:"Round",width:5,color:h.accentColor.toArray()}]}}})}),p=new t({symbol:new D({color:h.textColor,haloColor:r(i(h.textColor,160),.5),haloSize:2,font:new C({size:14,family:"sans-serif"})})}),m.removeAll(),m.addMany([l,p])),l.geometry=o,p.geometry=n.extent?.center,p.symbol.text=a}};function J(e,i,s){const o=r(i.effectiveTheme.accentColor,.5),n={type:"simple-line",width:0},a=8,l=new A({style:"circle",color:o,size:a,outline:n}),p=new A({style:"circle",color:o,size:1.5*a,outline:n}),m=new t({geometry:e,symbol:l});return new R({view:i,layer:s,graphic:m,focusedSymbol:p})}function K(e,t){const i=new v({paths:[e],spatialReference:t});let r,s;return t.isGeographic?j(t)?(r=b([i],"meters")[0],s=S(i,N)):(r=f(i,{unit:"meters"}),s=g(i,N,{unit:"meters"})):t.isWebMercator?(r=f(i,{unit:"meters"}),s=g(i,N,{unit:"meters"})):(r=L(i,{unit:"meters"}),s=i),{measurement:{geometry:s,length:r},original:i,drawing:s}}function Q(e){return null!=e}async function X(e){(e?.isGeographic&&!j(e)||e?.isWebMercator)&&await Promise.all([_(),w()])}function Y(e,t,i){if(!t||!e)return"";switch(i){case"metric":return m(e,t.length,"meters");case"imperial":return p(e,t.length,"meters");default:return l(e,c(t.length,"meters",i),i)}}e([h()],q.prototype,"_drawActive",void 0),e([h({readOnly:!0})],q.prototype,"cursor",null),e([h({value:!0})],q.prototype,"editable",null),e([h({readOnly:!0})],q.prototype,"measurement",void 0),e([h({readOnly:!0})],q.prototype,"measurementLabel",void 0),e([h()],q.prototype,"messages",void 0),e([h({constructOnly:!0})],q.prototype,"snappingManager",void 0),e([h()],q.prototype,"unit",void 0),e([h()],q.prototype,"updating",null),e([h({constructOnly:!0})],q.prototype,"view",void 0),q=e([u("esri.widgets.DistanceMeasurement2D.DistanceMeasurement2DTool")],q);export{q as DistanceMeasurement2DTool,K as createDistanceMeasurementInfo2D,Y as createDistanceMeasurementLabel,Q as isSupported,X as loadGeometryOperators};