@arcgis/core 4.24.0-next.20220329 → 4.24.0-next.20220401

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 (456) hide show
  1. package/PopupTemplate.js +1 -1
  2. package/WebMap.js +1 -1
  3. package/WebScene.js +1 -1
  4. package/analysis/LineOfSightAnalysisObserver.js +1 -1
  5. package/analysis/LineOfSightAnalysisTarget.js +1 -1
  6. package/arcade/featureset/actions/Adapted.js +1 -1
  7. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  8. package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
  9. package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
  10. package/arcade/featureset/support/FeatureSet.js +1 -1
  11. package/arcade/featureset/support/RecentlyUsedCache.js +1 -1
  12. package/arcade/featureset/support/shared.js +1 -1
  13. package/arcade/functions/convertdirection.js +1 -1
  14. package/arcade/lib/character.js +1 -1
  15. package/arcade/lib/scanner.js +1 -1
  16. package/arcade/lib/tokenizer.js +1 -1
  17. package/arcade/request.js +1 -1
  18. package/arcade/treeAnalysis.js +1 -1
  19. package/assets/esri/core/workers/RemoteClient.js +1 -1
  20. package/assets/esri/core/workers/chunks/0bfedb1dbdff8205e468.js +1 -0
  21. package/assets/esri/core/workers/chunks/{5e472c89a38d6a42b84d.js → 0e29250c24a3a7b1ce13.js} +1 -1
  22. package/assets/esri/core/workers/chunks/0eb9c9477d36cd212f8b.js +1 -0
  23. package/assets/esri/core/workers/chunks/10779a256841c37f2429.js +1 -0
  24. package/assets/esri/core/workers/chunks/10a119889d1ab13402a3.js +1 -0
  25. package/assets/esri/core/workers/chunks/125b14c2ccd96d7c20c2.js +1 -0
  26. package/assets/esri/core/workers/chunks/23ec33a30db201e8b2c3.js +1 -0
  27. package/assets/esri/core/workers/chunks/2530e8ccf6e12787ce76.js +1 -0
  28. package/assets/esri/core/workers/chunks/2d9e97ba5b50aec4dd01.js +1 -0
  29. package/assets/esri/core/workers/chunks/365dc146398420f13f82.js +1 -0
  30. package/assets/esri/core/workers/chunks/3ae2827e8d55d6713d20.js +1 -0
  31. package/assets/esri/core/workers/chunks/3e3eebaa0844742db2f2.js +1 -0
  32. package/assets/esri/core/workers/chunks/3fd5b2d6eccd9098d492.js +1 -0
  33. package/assets/esri/core/workers/chunks/404f1d7bce014c7e6965.js +1 -0
  34. package/assets/esri/core/workers/chunks/411b7777bb5e943c156f.js +1 -0
  35. package/assets/esri/core/workers/chunks/{12ca192a5233bb2875d0.js → 4312902ab6e42fbe119b.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{4ef07f50da39f8607c1c.js → 44e95e87bd9e820aeb53.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{4d4c5e535d8b9ceb865a.js → 4810edf605838d07e5c5.js} +1 -1
  38. package/assets/esri/core/workers/chunks/4bce446391176a9d4588.js +1 -0
  39. package/assets/esri/core/workers/chunks/52a0e387073ea264e194.js +1 -0
  40. package/assets/esri/core/workers/chunks/560234694f3e53802aff.js +1 -0
  41. package/assets/esri/core/workers/chunks/5633710daeb3bbb79bcf.js +1 -0
  42. package/assets/esri/core/workers/chunks/5682039666f874836451.js +1 -0
  43. package/assets/esri/core/workers/chunks/6f01905936396fe87865.js +1 -0
  44. package/assets/esri/core/workers/chunks/6f7917da7166e8c6854b.js +1 -0
  45. package/assets/esri/core/workers/chunks/7388824eac8da01ea03d.js +1 -0
  46. package/assets/esri/core/workers/chunks/7745efef7d5119d0b087.js +1 -0
  47. package/assets/esri/core/workers/chunks/794b47764ebb0257ed41.js +1 -0
  48. package/assets/esri/core/workers/chunks/{da64dedf9270b64f42b2.js → 79bdb26244ec7b4472fe.js} +1 -1
  49. package/assets/esri/core/workers/chunks/79ec28b3e3c57fe026aa.js +1 -0
  50. package/assets/esri/core/workers/chunks/81e9d860a044acec74ce.js +1 -0
  51. package/assets/esri/core/workers/chunks/831dc0187f71e658550c.js +1 -0
  52. package/assets/esri/core/workers/chunks/86ad6b020c01850d9095.js +1 -0
  53. package/assets/esri/core/workers/chunks/{fb7397da8d4ec2ae4587.js → 87458fbf395338511662.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{1a859be598ad96bb4719.js → 8771296b537f366596c4.js} +18 -18
  55. package/assets/esri/core/workers/chunks/8958cd555f4887526e8b.js +1 -0
  56. package/assets/esri/core/workers/chunks/{e57b71ba70f088a3a052.js → 90dcd86cdef90099abfa.js} +1 -1
  57. package/assets/esri/core/workers/chunks/93067e27eea5844edc6c.js +1 -0
  58. package/assets/esri/core/workers/chunks/{9fbee2d9bf50c4c148c6.js → 9a146c9e9b4bf7fba88f.js} +1 -1
  59. package/assets/esri/core/workers/chunks/9b9821772b6cbe189fe0.js +1 -0
  60. package/assets/esri/core/workers/chunks/{6c4ce530b493c6f7c430.js → 9df2f9f7c28b31866be8.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{d0620ce99b620621d8bc.js → a0552044e123a3c51ddf.js} +1 -1
  62. package/assets/esri/core/workers/chunks/acc1a4acd57f5657e782.js +1 -0
  63. package/assets/esri/core/workers/chunks/b055ae7c54796751b64c.js +1 -0
  64. package/assets/esri/core/workers/chunks/{acc2cfb116fee7f82ae9.js → b26bd8fde2fc65bb67fb.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{9b45b94c4dbdc8d2c5fd.js → b34ba22c7a5adce8a7a2.js} +1 -1
  66. package/assets/esri/core/workers/chunks/b75665d0bf417c6ef24a.js +1 -0
  67. package/assets/esri/core/workers/chunks/bd50ec30688463b821d1.js +1 -0
  68. package/assets/esri/core/workers/chunks/c28f7ae4756ad1ba94bd.js +1 -0
  69. package/assets/esri/core/workers/chunks/c4f713959d4115b87c6c.js +1 -0
  70. package/assets/esri/core/workers/chunks/c58aa209492bd94b7aad.js +1 -0
  71. package/assets/esri/core/workers/chunks/{9b117097b7be0efd21d4.js → c59b0b58e24e6a60cf3e.js} +1 -1
  72. package/assets/esri/core/workers/chunks/c7bd5a4d318299388645.js +1 -0
  73. package/assets/esri/core/workers/chunks/c7cee13a962396b23a5e.js +1 -0
  74. package/assets/esri/core/workers/chunks/{3bbff5ea1ea0e955c592.js → cd3679fa86129ebabfdf.js} +1 -1
  75. package/assets/esri/core/workers/chunks/{1a36dc0daffd536ea44d.js → cee7ce362860717713bf.js} +1 -1
  76. package/assets/esri/core/workers/chunks/cf463d6309f14df2f2fa.js +1 -0
  77. package/assets/esri/core/workers/chunks/{224c0e64160bdc170051.js → d076627bb7dadea89e89.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{fff4200bc61b82dd6193.js → d1d1c45243af614f2e74.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{1e0498dc9836658d9aba.js → d5fd12ea541c1a6b7fce.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{10322d990cda5aedf2f0.js → d6e32ca237ad9309c76a.js} +1 -1
  81. package/assets/esri/core/workers/chunks/e06ad3a3d71154fed654.js +1 -0
  82. package/assets/esri/core/workers/chunks/{7a77d4cd27c30f1a5cae.js → ee3387a43dfbb3df23e1.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{5d5fa2b1fc48a17eb9ab.js → f4fc165420d449e442b8.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{3d6d9906a534ddd8fa37.js → f5ee03f3fca7a75192de.js} +1 -1
  85. package/assets/esri/themes/base/widgets/_Daylight.scss +1 -1
  86. package/assets/esri/themes/base/widgets/_ElevationProfile.scss +1 -1
  87. package/assets/esri/themes/base/widgets/_Weather.scss +1 -1
  88. package/assets/esri/themes/base/widgets/_Widget.scss +12 -0
  89. package/assets/esri/themes/dark/main.css +1 -1
  90. package/assets/esri/themes/dark-blue/main.css +1 -1
  91. package/assets/esri/themes/dark-green/main.css +1 -1
  92. package/assets/esri/themes/dark-purple/main.css +1 -1
  93. package/assets/esri/themes/dark-red/main.css +1 -1
  94. package/assets/esri/themes/light/main.css +1 -1
  95. package/assets/esri/themes/light/view.css +1 -1
  96. package/assets/esri/themes/light-blue/main.css +1 -1
  97. package/assets/esri/themes/light-green/main.css +1 -1
  98. package/assets/esri/themes/light-purple/main.css +1 -1
  99. package/assets/esri/themes/light-red/main.css +1 -1
  100. package/chunks/ComponentShader.glsl.js +25 -25
  101. package/chunks/HighlightApply.glsl.js +36 -0
  102. package/chunks/HighlightBlur.glsl.js +26 -0
  103. package/chunks/HighlightDownsample.glsl.js +12 -0
  104. package/chunks/ImageMaterial.glsl.js +8 -8
  105. package/chunks/LineCallout.glsl.js +1 -1
  106. package/chunks/Pattern.glsl.js +2 -2
  107. package/chunks/SimpleAtmosphere.glsl.js +7 -7
  108. package/chunks/Stars.glsl.js +1 -1
  109. package/chunks/arcade.js +1 -1
  110. package/chunks/color.js +1 -1
  111. package/chunks/languageUtils.js +1 -1
  112. package/chunks/mat3.js +1 -1
  113. package/copyright.txt +2 -2
  114. package/core/AsyncUpdate.js +1 -1
  115. package/core/Evented.js +1 -1
  116. package/core/PooledArray.js +1 -1
  117. package/core/accessorSupport/diffUtils.js +1 -1
  118. package/core/accessorSupport/get.js +1 -1
  119. package/core/accessorSupport/read.js +1 -1
  120. package/core/accessorSupport/set.js +1 -1
  121. package/core/accessorSupport/tracking.js +1 -1
  122. package/core/accessorSupport/utils.js +1 -1
  123. package/core/arrayUtils.js +1 -1
  124. package/core/libs/gl-matrix-2/mat3.js +1 -1
  125. package/core/libs/gl-matrix-2/math/mat3.js +1 -1
  126. package/core/number.js +1 -1
  127. package/core/object.js +1 -1
  128. package/core/string.js +1 -1
  129. package/core/unitUtils.js +1 -1
  130. package/core/watchUtils.js +1 -1
  131. package/core/workers/RemoteClient.js +1 -1
  132. package/exports/csv.js +1 -1
  133. package/geometry/support/heightModelInfoUtils.js +1 -1
  134. package/geometry/support/meshUtils/exporters/gltf/geometry.js +1 -1
  135. package/geometry/support/normalizeUtils.js +1 -1
  136. package/identity/IdentityManagerBase.js +1 -1
  137. package/interfaces.d.ts +155 -20
  138. package/layers/ImageryLayer.js +1 -1
  139. package/layers/MapImageLayer.js +1 -1
  140. package/layers/RouteLayer.js +1 -1
  141. package/layers/SceneLayer.js +1 -1
  142. package/layers/SubtypeGroupLayer.js +1 -1
  143. package/layers/TileLayer.js +1 -1
  144. package/layers/VectorTileLayer.js +1 -1
  145. package/layers/WMSLayer.js +1 -1
  146. package/layers/WMTSLayer.js +1 -1
  147. package/layers/WebTileLayer.js +1 -1
  148. package/layers/graphics/data/AttributesBuilder.js +1 -1
  149. package/layers/graphics/data/QueryEngine.js +1 -1
  150. package/layers/graphics/editingSupport.js +1 -1
  151. package/layers/graphics/sources/connections/GeoEventConnection.js +1 -1
  152. package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
  153. package/layers/graphics/sources/support/inferenceUtils.js +1 -1
  154. package/layers/mixins/ArcGISCachedService.js +1 -1
  155. package/layers/mixins/ArcGISImageService.js +1 -1
  156. package/layers/ogc/ogcFeatureUtils.js +1 -1
  157. package/layers/support/ExportImageServiceParameters.js +1 -1
  158. package/layers/support/PixelBlock.js +1 -1
  159. package/layers/support/RasterJobHandler.js +1 -1
  160. package/layers/support/SpriteSource.js +1 -1
  161. package/layers/support/Sublayer.js +1 -1
  162. package/layers/support/TilemapCache.js +1 -1
  163. package/layers/support/WMTSSublayer.js +1 -1
  164. package/layers/support/arcgisLayerUrl.js +1 -1
  165. package/layers/support/fieldUtils.js +1 -1
  166. package/layers/support/kmlUtils.js +1 -1
  167. package/layers/support/layerUtils.js +1 -1
  168. package/layers/support/rasterDatasets/ImageAuxRaster.js +1 -1
  169. package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
  170. package/layers/support/rasterDatasets/RasterFactory.js +1 -1
  171. package/layers/support/rasterDatasets/WCSRaster.js +1 -1
  172. package/layers/support/rasterDatasets/multipartParser.js +1 -1
  173. package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
  174. package/layers/support/rasterDatasets/xmlUtilities.js +1 -1
  175. package/layers/support/rasterFormats/RasterCodec.js +1 -1
  176. package/layers/support/rasterFormats/TiffDecoder.js +1 -1
  177. package/layers/support/rasterFunctions/pixelUtils.js +1 -1
  178. package/layers/support/vectorTileLayerLoader.js +1 -1
  179. package/layers/support/wmsUtils.js +1 -1
  180. package/layers/support/wmtsUtils.js +1 -1
  181. package/libs/i3s/I3SModule.js +1 -1
  182. package/libs/vxl/VxlModule.js +1 -1
  183. package/package.json +1 -1
  184. package/portal/Portal.js +1 -1
  185. package/portal/PortalItem.js +1 -1
  186. package/portal/schemas/definitions.js +1 -1
  187. package/portal/support/layersLoader.js +1 -1
  188. package/portal/support/portalItemUtils.js +1 -1
  189. package/portal/support/portalLayers.js +1 -1
  190. package/renderers/support/AuthoringInfoVisualVariable.js +1 -1
  191. package/renderers/support/DictionaryLoader.js +1 -1
  192. package/renderers/support/RasterSymbolizer.js +1 -1
  193. package/renderers/support/numberUtils.js +1 -1
  194. package/renderers/support/rasterRendererHelper.js +1 -1
  195. package/renderers/support/utils.js +1 -1
  196. package/request.js +1 -1
  197. package/rest/imageService.js +1 -1
  198. package/rest/operations/find.js +1 -1
  199. package/rest/query/operations/query.js +1 -1
  200. package/rest/query/operations/queryRelatedRecords.js +1 -1
  201. package/rest/query/operations/queryTopFeatures.js +1 -1
  202. package/rest/support/DirectionLine.js +1 -1
  203. package/rest/support/DirectionPoint.js +1 -1
  204. package/rest/support/PointBarrier.js +1 -1
  205. package/rest/support/PolygonBarrier.js +1 -1
  206. package/rest/support/PolylineBarrier.js +1 -1
  207. package/rest/support/RouteInfo.js +1 -1
  208. package/rest/support/Stop.js +1 -1
  209. package/smartMapping/labels/clusters.js +1 -1
  210. package/smartMapping/popup/dotDensity.js +1 -1
  211. package/smartMapping/popup/support/clusterUtils.js +1 -1
  212. package/smartMapping/popup/support/utils.js +1 -1
  213. package/smartMapping/raster/support/utils.js +1 -1
  214. package/smartMapping/renderers/color.js +1 -1
  215. package/smartMapping/renderers/location.js +1 -1
  216. package/smartMapping/renderers/predominance.js +1 -1
  217. package/smartMapping/renderers/relationship.js +1 -1
  218. package/smartMapping/renderers/size.js +1 -1
  219. package/smartMapping/renderers/support/utils.js +1 -1
  220. package/smartMapping/renderers/type.js +1 -1
  221. package/smartMapping/renderers/univariateColorSize.js +1 -1
  222. package/smartMapping/statistics/summaryStatisticsForAge.js +1 -1
  223. package/smartMapping/statistics/support/ageUtils.js +1 -1
  224. package/smartMapping/statistics/support/utils.js +1 -1
  225. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  226. package/smartMapping/support/adapters/support/utils.js +1 -1
  227. package/smartMapping/support/utils.js +1 -1
  228. package/smartMapping/symbology/support/Theme.js +1 -1
  229. package/smartMapping/symbology/support/colorRamps.js +1 -1
  230. package/smartMapping/symbology/support/symbologyUtils.js +1 -1
  231. package/smartMapping/symbology/support/utils.js +1 -1
  232. package/statistics/utils.js +1 -1
  233. package/support/basemapDefinitions.js +1 -1
  234. package/support/basemapUtils.js +1 -1
  235. package/support/elevationInfoUtils.js +1 -1
  236. package/support/popupUtils.js +1 -1
  237. package/support/revision.js +1 -1
  238. package/symbols/cim/CIMSymbolRasterizer.js +1 -1
  239. package/symbols/cim/cimAnalyzer.js +1 -1
  240. package/symbols/cim/utils.js +1 -1
  241. package/symbols/support/previewSymbol3D.js +1 -1
  242. package/symbols/support/renderUtils.js +1 -1
  243. package/symbols/support/symbolLayerUtils.js +1 -1
  244. package/views/2d/engine/Bitmap.js +1 -1
  245. package/views/2d/engine/flow/FlowDisplayObject.js +1 -1
  246. package/views/2d/engine/imagery/RasterBitmap.js +1 -1
  247. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  248. package/views/2d/engine/vectorTiles/TextShaping.js +1 -1
  249. package/views/2d/engine/vectorTiles/TileParser.js +1 -1
  250. package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +1 -1
  251. package/views/2d/engine/vectorTiles/expression/expression.js +1 -1
  252. package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
  253. package/views/2d/engine/webgl/Profiler.js +1 -1
  254. package/views/2d/engine/webgl/Utils.js +1 -1
  255. package/views/2d/engine/webgl/brushes/WGLGeometryBrush.js +1 -1
  256. package/views/2d/engine/webgl/definitions.js +1 -1
  257. package/views/2d/engine/webgl/effects/HittestEffect.js +1 -1
  258. package/views/2d/engine/webgl/effects/HittestEffectVTL.js +1 -1
  259. package/views/2d/engine/webgl/mesh/templates/WGLTemplateStore.js +1 -1
  260. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  261. package/views/2d/engine/webgl/util/Lock.js +1 -1
  262. package/views/2d/layers/RouteLayerView2D.js +1 -1
  263. package/views/2d/layers/features/schemaUtils.js +1 -1
  264. package/views/2d/layers/features/sources/SnapshotFeatureSource.js +1 -1
  265. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  266. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  267. package/views/2d/layers/features/tileRenderers/SymbolTileRenderer.js +1 -1
  268. package/views/2d/layers/support/webStyleUtils.js +1 -1
  269. package/views/2d/support/Timeline.js +1 -1
  270. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  271. package/views/3d/analysis/LineOfSight/LineOfSightIntersectionResult.js +1 -1
  272. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  273. package/views/3d/analysis/Slice/SliceController.js +1 -1
  274. package/views/3d/environment/PanoramicAtmosphere.js +1 -1
  275. package/views/3d/environment/SceneViewAtmosphere.js +1 -1
  276. package/views/3d/environment/StarsTechnique.js +1 -1
  277. package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
  278. package/views/3d/glTF/loader.js +1 -1
  279. package/views/3d/interactive/analysisTools/lineOfSight/LineOfSightTool.js +1 -1
  280. package/views/3d/interactive/analysisTools/slice/SliceTool.js +1 -1
  281. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  282. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  283. package/views/3d/layers/I3SMeshView3D.js +1 -1
  284. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  285. package/views/3d/layers/LayerView3D.js +1 -1
  286. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  287. package/views/3d/layers/RouteLayerView3D.js +1 -1
  288. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  289. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  290. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  291. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  292. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  293. package/views/3d/layers/i3s/I3SNodeLoader.js +1 -1
  294. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  295. package/views/3d/layers/i3s/IDBMockCache.js +5 -0
  296. package/views/3d/layers/i3s/PointCloudWorkerUtil.js +1 -1
  297. package/views/3d/layers/support/PopupSceneLayerView.js +1 -1
  298. package/views/3d/state/ViewStateManager.js +1 -1
  299. package/views/3d/state/controllers/RotateController.js +1 -1
  300. package/views/3d/state/controllers/global/PinchAndPanController.js +1 -1
  301. package/views/3d/state/controllers/global/ZoomController.js +1 -1
  302. package/views/3d/state/controllers/global/ZoomStepController.js +1 -1
  303. package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
  304. package/views/3d/state/controllers/local/ZoomController.js +1 -1
  305. package/views/3d/support/HighlightOptions.js +1 -1
  306. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  307. package/views/3d/support/debugFlags.js +1 -1
  308. package/views/3d/support/orientedBoundingBox.js +1 -1
  309. package/views/3d/terrain/TerrainSurface.js +1 -1
  310. package/views/3d/webgl-engine/Stage.js +1 -1
  311. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  312. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  313. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +3 -3
  314. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +5 -5
  315. package/views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js +1 -1
  316. package/views/3d/webgl-engine/lib/HighlightHelper.js +1 -1
  317. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  318. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  319. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  320. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderParameters.js +1 -1
  321. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  322. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  323. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  324. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  325. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  326. package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
  327. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +5 -0
  328. package/views/3d/webgl-engine/shaders/HighlightApplyTechnique.js +5 -0
  329. package/views/3d/webgl-engine/shaders/HighlightBlur.glsl.js +5 -0
  330. package/views/3d/webgl-engine/shaders/HighlightBlurTechnique.js +5 -0
  331. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +5 -0
  332. package/views/3d/webgl-engine/shaders/HighlightDownsampleTechnique.js +5 -0
  333. package/views/3d/webgl-engine/shaders/HighlightOptions.js +4 -0
  334. package/views/3d/webgl-engine/shaders/HighlightPassParameters.js +5 -0
  335. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  336. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  337. package/views/3d/webgl-engine/shaders/NativeLineTechnique.js +1 -1
  338. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  339. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +5 -7
  340. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +14 -14
  341. package/views/SceneView.js +1 -1
  342. package/views/draw/support/GraphicMover.js +1 -1
  343. package/views/input/InputHandler.js +1 -1
  344. package/views/input/InputManager.js +1 -1
  345. package/views/layers/ImageryTileLayerView.js +1 -1
  346. package/views/layers/MapImageLayerView.js +1 -1
  347. package/views/layers/TileLayerView.js +1 -1
  348. package/views/layers/support/popupUtils.js +1 -1
  349. package/views/support/DefaultsFromMap.js +1 -1
  350. package/views/support/Scheduler.js +1 -1
  351. package/views/support/screenshotUtils.js +1 -1
  352. package/views/ui/DefaultUI.js +1 -1
  353. package/views/webgl/ShaderTranspiler.js +1 -1
  354. package/webscene/Slide.js +1 -1
  355. package/webscene/spec-certification/spec.js +1 -1
  356. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  357. package/widgets/Attachments/support/attachmentUtils.js +1 -1
  358. package/widgets/Attachments.js +1 -1
  359. package/widgets/Attribution.js +1 -1
  360. package/widgets/BasemapLayerList.js +1 -1
  361. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  362. package/widgets/Bookmarks.js +1 -1
  363. package/widgets/BuildingExplorer/support/filterUtils.js +1 -1
  364. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  365. package/widgets/CoordinateConversion/support/coordinateConversionUtils.js +1 -1
  366. package/widgets/CoordinateConversion/support/formatUtils.js +1 -1
  367. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
  368. package/widgets/Directions/DirectionsViewModel.js +1 -1
  369. package/widgets/Directions.js +1 -1
  370. package/widgets/Editor/EditorViewModel.js +1 -1
  371. package/widgets/Editor/workflowUtils.js +1 -1
  372. package/widgets/Editor.js +1 -1
  373. package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
  374. package/widgets/Feature/FeatureMedia.js +1 -1
  375. package/widgets/Feature/support/featureUtils.js +1 -1
  376. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  377. package/widgets/FeatureForm/InputField.js +1 -1
  378. package/widgets/FeatureForm.js +1 -1
  379. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  380. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  381. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  382. package/widgets/FeatureTemplates.js +1 -1
  383. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  384. package/widgets/LayerList/ListItemPanel.js +1 -1
  385. package/widgets/LayerList.js +1 -1
  386. package/widgets/Legend/LegendViewModel.js +1 -1
  387. package/widgets/Legend/styles/Card.js +1 -1
  388. package/widgets/Legend/styles/Classic.js +1 -1
  389. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  390. package/widgets/Legend/support/colorRampUtils.js +1 -1
  391. package/widgets/Legend/support/relationshipRampUtils.js +1 -1
  392. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  393. package/widgets/Popup/PopupViewModel.js +1 -1
  394. package/widgets/Popup/actionUtils.js +1 -1
  395. package/widgets/Print/PrintViewModel.js +1 -1
  396. package/widgets/Print.js +1 -1
  397. package/widgets/ScaleBar/ScaleBarViewModel.js +1 -1
  398. package/widgets/Search/SearchViewModel.js +1 -1
  399. package/widgets/Search/support/layerSearchUtils.js +1 -1
  400. package/widgets/Slider.js +1 -1
  401. package/widgets/Swipe.js +1 -1
  402. package/widgets/TableList.js +1 -1
  403. package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
  404. package/widgets/TimeSlider.js +1 -1
  405. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  406. package/widgets/support/DatePicker.js +1 -1
  407. package/widgets/support/Popover.js +1 -1
  408. package/widgets/support/SnappingControls.js +1 -1
  409. package/widgets/support/TimePicker.js +1 -1
  410. package/widgets/support/timeWidgetUtils.js +1 -1
  411. package/assets/esri/core/workers/chunks/083a5d10f8e243641cb9.js +0 -1
  412. package/assets/esri/core/workers/chunks/0872812ce4d0ec8faf8f.js +0 -1
  413. package/assets/esri/core/workers/chunks/0bc26899780c33637746.js +0 -1
  414. package/assets/esri/core/workers/chunks/113362697da1b69deaed.js +0 -1
  415. package/assets/esri/core/workers/chunks/11a2f9708938eac98815.js +0 -1
  416. package/assets/esri/core/workers/chunks/11a45709b703be84caaf.js +0 -1
  417. package/assets/esri/core/workers/chunks/1c1294ff1ebbd8f774f7.js +0 -1
  418. package/assets/esri/core/workers/chunks/1c915cc9a9d5729b6f17.js +0 -1
  419. package/assets/esri/core/workers/chunks/31786756b3d44540f8c0.js +0 -1
  420. package/assets/esri/core/workers/chunks/36a6f34fe40785beff5d.js +0 -1
  421. package/assets/esri/core/workers/chunks/373c16f8b8093d001064.js +0 -1
  422. package/assets/esri/core/workers/chunks/382a331a592abb61267f.js +0 -1
  423. package/assets/esri/core/workers/chunks/3bf106fe34e3992032c4.js +0 -1
  424. package/assets/esri/core/workers/chunks/3dcec610f1c1497d87bc.js +0 -1
  425. package/assets/esri/core/workers/chunks/46495e726d8739260d44.js +0 -1
  426. package/assets/esri/core/workers/chunks/4a82a6a473b3d540d0be.js +0 -1
  427. package/assets/esri/core/workers/chunks/4b6719377a95ac10fa43.js +0 -1
  428. package/assets/esri/core/workers/chunks/4d2ef57ff3a5cfc1313f.js +0 -1
  429. package/assets/esri/core/workers/chunks/4fd2b8153d62592210a2.js +0 -1
  430. package/assets/esri/core/workers/chunks/56e6a1079269e2964b02.js +0 -1
  431. package/assets/esri/core/workers/chunks/5b4d9786c010d265346c.js +0 -1
  432. package/assets/esri/core/workers/chunks/604637e1c3937b376a0d.js +0 -1
  433. package/assets/esri/core/workers/chunks/60f83257e361f87fa6fd.js +0 -1
  434. package/assets/esri/core/workers/chunks/6d3f80be6fceb2c18b5d.js +0 -1
  435. package/assets/esri/core/workers/chunks/6f827a32646bab0a8777.js +0 -1
  436. package/assets/esri/core/workers/chunks/70bd2ab42e3801ef5974.js +0 -1
  437. package/assets/esri/core/workers/chunks/746222184b361b50d6ba.js +0 -1
  438. package/assets/esri/core/workers/chunks/7fb72b2d11e8d840f982.js +0 -1
  439. package/assets/esri/core/workers/chunks/85bb6a1a7704fcdcbec2.js +0 -1
  440. package/assets/esri/core/workers/chunks/8b4c76cebb100e6c06f8.js +0 -1
  441. package/assets/esri/core/workers/chunks/9586a6b320edb1922926.js +0 -1
  442. package/assets/esri/core/workers/chunks/99638697ffda9022ce92.js +0 -1
  443. package/assets/esri/core/workers/chunks/a9da1cb118ca62a9581d.js +0 -1
  444. package/assets/esri/core/workers/chunks/aaa41a5013eef713c032.js +0 -1
  445. package/assets/esri/core/workers/chunks/ac321f939dd488ff6ce4.js +0 -1
  446. package/assets/esri/core/workers/chunks/add6027a96398ecf69de.js +0 -1
  447. package/assets/esri/core/workers/chunks/b75206b46ba81606087c.js +0 -1
  448. package/assets/esri/core/workers/chunks/bf8456828e38a768eba3.js +0 -1
  449. package/assets/esri/core/workers/chunks/c0720d0d8adcba6738d4.js +0 -1
  450. package/assets/esri/core/workers/chunks/c5bb712d5cf8c05a4e13.js +0 -1
  451. package/assets/esri/core/workers/chunks/d343f05a3366f95e0494.js +0 -1
  452. package/assets/esri/core/workers/chunks/d8b1f00075983d769985.js +0 -1
  453. package/chunks/Highlight.glsl.js +0 -88
  454. package/views/3d/webgl-engine/shaders/Highlight.glsl.js +0 -5
  455. package/views/3d/webgl-engine/shaders/HighlightTechnique.js +0 -5
  456. package/views/3d/webgl-engine/shaders/HighlightTechniqueConfiguration.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{HandleOwnerMixin as s}from"../core/HandleOwner.js";import n from"../core/has.js";import{on as r,init as a}from"../core/watchUtils.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import h from"./BasemapLayerList/BasemapLayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as g}from"./LayerList/support/layerListUtils.js";import{Heading as p,incrementHeadingLevel as b}from"./support/Heading.js";import{accessibleHandler as _}from"./support/decorators/accessibleHandler.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import I from"sortablejs";const L=t.ofType(u);function w(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",C="esri-basemaplayerlist-new-ui",T="root-layers",E="data-layer-uid",S="layerUid",k={base:"esri-basemap-layer-list esri-widget esri-widget--panel",newUI:"esri-basemap-layer-list--new-ui",titleContainer:"esri-basemap-layer-list__title-container",mainHeading:"esri-basemap-layer-list__main-heading",editingCard:"esri-basemap-layer-list__editing-card",editingInput:"esri-basemap-layer-list__editing-input",editingActions:"esri-basemap-layer-list__editing-actions",editButton:"esri-basemap-layer-list__edit-button",editButtonIcon:"esri-basemap-layer-list__edit-button-icon",submitButton:"esri-basemap-layer-list__submit-button",cancelButton:"esri-basemap-layer-list__cancel-button",noItems:"esri-basemap-layer-list__no-items",horizontalRule:"esri-basemap-layer-list__hr",listHeading:"esri-basemap-layer-list__list-heading",list:"esri-basemap-layer-list__list",listRoot:"esri-basemap-layer-list__list--root",listExclusive:"esri-basemap-layer-list__list--exclusive",listInherited:"esri-basemap-layer-list__list--inherited",listIndependent:"esri-basemap-layer-list__list--independent",item:"esri-basemap-layer-list__item",itemOnlyChild:"esri-basemap-layer-list__item--only-child",itemContent:"esri-basemap-layer-list__item-content",itemError:"esri-basemap-layer-list__item--error",itemInvisible:"esri-basemap-layer-list__item--invisible",itemInvisibleAtScale:"esri-basemap-layer-list__item--invisible-at-scale",itemUpdating:"esri-basemap-layer-list__item--updating",itemChildren:"esri-basemap-layer-list__item--has-children",itemSelectable:"esri-basemap-layer-list__item--selectable",itemContainer:"esri-basemap-layer-list__item-container",actionsMenu:"esri-basemap-layer-list__item-actions-menu",actionsMenuItem:"esri-basemap-layer-list__item-actions-menu-item",actionsMenuItemActive:"esri-basemap-layer-list__item-actions-menu-item--active",actions:"esri-basemap-layer-list__item-actions",actionsList:"esri-basemap-layer-list__item-actions-list",action:"esri-basemap-layer-list__item-action",actionIcon:"esri-basemap-layer-list__item-action-icon",actionImage:"esri-basemap-layer-list__item-action-image",actionTitle:"esri-basemap-layer-list__item-action-title",actionToggle:"esri-basemap-layer-list__action-toggle",actionToggleOn:"esri-basemap-layer-list__action-toggle--on",label:"esri-basemap-layer-list__item-label",errorMessage:"esri-basemap-layer-list__item-error-message",title:"esri-basemap-layer-list__item-title",toggleVisible:"esri-basemap-layer-list__item-toggle",toggleVisibleIcon:"esri-basemap-layer-list__item-toggle-icon",toggleIcon:"esri-basemap-layer-list__item-toggle-icon",radioIcon:"esri-basemap-layer-list__item-radio-icon",childToggle:"esri-basemap-layer-list__child-toggle",childToggleOpen:"esri-basemap-layer-list__child-toggle--open",childOpened:"esri-basemap-layer-list__child-toggle-icon--opened",childClosed:"esri-basemap-layer-list__child-toggle-icon--closed",childClosed_RTL:"esri-basemap-layer-list__child-toggle-icon--closed-rtl",sortableChosen:"esri-basemap-layer-list--chosen",button:"esri-button",buttonTertiary:"esri-button--tertiary",input:"esri-input",disabled:"esri-disabled",disabledElement:"esri-disabled-element",hidden:"esri-hidden",rotating:"esri-rotating",heading:"esri-widget__heading",iconEdit:"esri-icon-edit",iconCheckMark:"esri-icon-check-mark",iconClose:"esri-icon-close",iconEllipses:"esri-icon-handle-horizontal",iconVisible:"esri-icon-visible",iconInvisible:"esri-icon-non-visible",iconRadioSelected:"esri-icon-radio-checked",iconRadioUnselected:"esri-icon-radio-unchecked",iconNoticeTriangle:"esri-icon-notice-triangle",iconChildrenOpen:"esri-icon-down-arrow",iconDownArrow:"esri-icon-down-arrow",iconRightArrow:"esri-icon-right-triangle-arrow",iconLeftArrow:"esri-icon-left-triangle-arrow",iconLoading:"esri-icon-loading-indicator",iconDefaultAction:"esri-icon-default-action",widgetIcon:"esri-icon-layers"},B={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},R={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function O(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>O(e)))}const M={baseLayers:!0,referenceLayers:!0,statusIndicators:!0};let x=class extends(s(m)){constructor(e,t){super(e,t),this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this._newUI=n(C),this.basemapTitle=null,this.baseListItemCreatedFunction=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=k.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.referenceListItemCreatedFunction=null,this.baseItems=null,this.referenceItems=null,this.selectedItems=new L,this.view=null,this.viewModel=new h,this.visibleElements={...M}}initialize(){const{baseItems:e,referenceItems:t}=this;this.own([r(this,"baseItems","change",(()=>{this._itemsChanged(e,B.baseItems),this._toggleSortingBaseLayers()})),r(this,"referenceItems","change",(()=>this._itemsChanged(t,B.referenceItems))),a(this,"editingEnabled",(()=>this._toggleSorting()))])}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable()}castVisibleElements(e){return{...M,...e}}triggerAction(e,t){this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[k.newUI]:this._newUI,[k.hidden]:"loading"===e,[k.disabled]:"disabled"===e},i=this.renderReferenceSection(),s=this.renderBaseSection(),n=i&&s?v("hr",{class:k.horizontalRule}):null;return v("div",{class:this.classes(k.base,t)},this.renderTitleContainer(),i,n,s)}renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:k.editingInput},e.basemapTitle,v("input",{bind:this,class:k.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(k.button,k.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:k.button},e.form.ok)}renderEditingForm(){return v("div",{class:k.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this.renderEditingInput(),v("div",{class:k.editingActions},this.renderCancelButton(),this.renderSubmitButton())))}renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(k.heading,k.mainHeading)},e)}renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:k.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(k.iconEdit,k.editButtonIcon)})):null}renderTitleContainer(){return v("div",{class:k.titleContainer},this._editingTitle?this.renderEditingForm():this.renderBasemapTitle(),this.renderEditTitleButton())}renderNoLayersInfo(e,t){return v("div",{key:t,class:k.noItems},e)}renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(k.list,k.listRoot,k.listIndependent)},e.map((i=>this.renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}renderBaseHeader(){return v(p,{key:"base-heading",level:b(this.headingLevel),class:this.classes(k.heading,k.listHeading)},this.messages.baseHeading)}renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this.renderBaseHeader(),[0===s.length?this.renderNoLayersInfo(t.noBaseLayers,n):null,this.renderList(s,n)]]}renderReferenceHeader(){return v(p,{key:"reference-heading",level:b(this.headingLevel),class:this.classes(k.heading,k.listHeading)},this.messages.referenceHeading)}renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this.renderReferenceHeader(),[0===s.length?this.renderNoLayersInfo(t.noReferenceLayers,n):null,this.renderList(s,n)]]}renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,a={[k.childToggleOpen]:e.open},o=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(k.childToggle,a),tabindex:"0",role:"button","aria-controls":t,"aria-label":o,title:o},v("span",{"aria-hidden":"true",class:this.classes(k.childClosed,k.iconRightArrow)}),v("span",{"aria-hidden":"true",class:this.classes(k.childOpened,k.iconDownArrow)}),v("span",{"aria-hidden":"true",class:this.classes(k.childClosed_RTL,k.iconLeftArrow)})):null}renderError(e){return e.error?v("div",{key:"error",class:k.errorMessage,role:"alert"},v("span",null,this.messages.layerError)):null}renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[k.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(k.actionsMenuItem,s),tabindex:"0",role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:k.iconEllipses}))}renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this.renderPanelButton(n):null,a=1===i&&this._getSingleActionButton(t),o=a?this.renderAction({item:e,action:a,singleAction:!0}):null,l=!a&&i?this.renderActionsMenuIcon(e,s):null;return l||r||a?v("div",{key:"actions-menu",class:k.actionsMenu},r,o,l):null}renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=!!e.error,a=!!n.length&&!r,{exclusive:o,inherited:l}=R,d={[k.listExclusive]:s===o,[k.listInherited]:s===l,[k.listIndependent]:s!==l&&s!==o};return a?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(k.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===o?"radiogroup":"group",hidden:!e.open||null},null==n?void 0:n.map((t=>this.renderItem({item:t,parent:e}))).toArray()):null}renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,a=`${n}__list`,{panel:o}=e,l=this._filterActions(e.actionsSections),d=this._countActions(l);return[v("div",{key:"list-item-container",class:k.itemContainer},this.renderChildrenToggle(e,a),this.renderLabel(e,t,i),this.renderActionsMenu(e,l,d,r)),this.renderError(e),d?this.renderActionsSections(e,l,r):null,o&&o.open?o.render():null,this.renderChildList(e,a)]}renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{_newUI:n,id:r,editingEnabled:a,selectedItems:o,visibleElements:l}=this,{children:d}=e,c=`${`${r}_${e.uid}`}__title`,m=!!e.error,h=!!d.length&&!m,u={[k.itemChildren]:h,[k.itemError]:!!m,[k.itemUpdating]:e.updating&&!t&&l.statusIndicators,[k.itemInvisible]:n&&!e.visible,[k.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[k.itemSelectable]:a};if(a){var p;const n={[E]:null==(p=e.layer)?void 0:p.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(k.item,u,{[k.itemOnlyChild]:s}),"aria-labelledby":c,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":g(e,o)?"true":"false",role:"option",...n},this.renderItemContent(e,t,c))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(k.item,u),"aria-labelledby":c},this.renderItemContent(e,t,c))}renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:k.title},s)}renderItemToggleIcon(e,t){const{_newUI:i}=this,{exclusive:s}=R,n=t&&t.visibilityMode,r={[k.toggleVisibleIcon]:i,[k.toggleIcon]:i&&n!==s,[k.radioIcon]:i&&n===s,[k.iconRadioSelected]:n===s&&e.visible,[k.iconRadioUnselected]:n===s&&!e.visible,[k.iconVisible]:n!==s&&e.visible,[k.iconInvisible]:n!==s&&!e.visible};return v("span",{key:"item-toggle-icon",class:this.classes(r),"aria-hidden":"true"})}renderItemToggle(e,t,i){const{editingEnabled:s}=this,{exclusive:n}=R,r=t&&t.visibilityMode,a=r===n?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:k.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":r,tabIndex:0,"aria-checked":e.visible?"true":"false",role:a,"aria-labelledby":i}:{key:"item-toggle",class:k.toggleVisible},this.renderItemToggleIcon(e,t))}renderItemError(e){return e.error?v("span",{key:"notice-triangle","aria-hidden":"true",class:k.iconNoticeTriangle}):null}renderLabel(e,t,i){const{editingEnabled:s,_newUI:n}=this,{inherited:r,exclusive:a}=R,o=null==t?void 0:t.visibilityMode,l=o===a?"radio":"switch",d=[this.renderItemToggle(e,t,i),this.renderItemTitle(e,i)];n&&d.reverse();const c=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:k.label}:{key:`item-label-with-selection-${e.uid}`,class:k.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",role:l,"aria-labelledby":i},d);return o===r||e.error?v("div",{key:`item-label-container-${e.uid}`,class:k.label},this.renderItemError(e),this.renderItemTitle(e,i)):c}renderPanelButton(e){const{className:t,open:i,title:s,image:n}=e,r=n||t?t:k.iconDefaultAction,a=this._getIconImageStyles(e),o={[k.actionsMenuItemActive]:i},l={[k.actionImage]:!!a["background-image"]};return r&&(l[r]=!!r),v("div",{key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(k.actionsMenuItem,o),role:"button",tabindex:"0",title:s,"aria-label":s},v("span",{class:this.classes(l),styles:a}))}renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:k.actionsList},this.renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:k.actions,hidden:!e.actionsOpen||null},s)}renderActionSection(e,t){return(t&&t.toArray()).map((t=>this.renderAction({item:e,action:t})))}renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:k.iconDefaultAction,r={[k.actionImage]:!t&&!!s["background-image"],[k.iconLoading]:t,[k.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(k.actionIcon,r),styles:s})}renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:k.actionTitle},e)}renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:a}=i,o={[k.actionsMenuItem]:s&&"button"===i.type,[k.action]:n||!s&&"toggle"!==i.type,[k.actionToggle]:!n&&"toggle"===i.type,[k.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[k.disabledElement]:r},l=[this.renderActionIcon(i),this.renderActionTitle(a,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:o,tabindex:"0",title:a,"aria-label":a},l):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:o,tabindex:"0",role:"button",title:a,"aria-label":a},l)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;(null==e?void 0:e.el)&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;(null==e?void 0:e.el)&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){var t;e.preventDefault();const i=null==(t=this._editTitleInput)?void 0:t.value;null!=i&&i.trim()&&(this.basemapTitle=i),this._toggleEditingTitle()}_itemMovedList(e){const t=e.item["data-item"],i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,{newIndex:n}=e;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=I.create(t,{dataIdAttr:E,group:T,filter:`.${k.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:k.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=I.create(t,{dataIdAttr:E,group:T,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:k.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>this.errorsVisible||!e.error))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).getItemAt(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.get("view.map.basemap.baseLayers"):"reference"===e?this.get("view.map.basemap.referenceLayers"):null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){var t;const{_focusSortUid:i}=this;if(!e||!i)return;(null==(t=e["data-item"].layer)?void 0:t.uid)===i&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(-1===t.indexOf(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=n["data-item"],a=n.dataset.itemType,{_sortableBaseLayers:o,_sortableReferenceLayers:l,selectedItems:d}=this,c="base"===a?o:"reference"===a?l:null;if(!c)return;const m=g(r,d),h=c.toArray(),u=e.target,p=h.indexOf(u.dataset[S]),{baseItems:b,referenceItems:_}=this.viewModel;if(-1!==p){if("ArrowDown"===s){var y;const e=p+1,t=e>=h.length;if(t&&"reference"===a&&m){var f;const e=b.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=null==(f=r.layer)?void 0:f.uid,void this.scheduleRender()}if(t&&"reference"===a){var v;const e=b.getItemAt(0);return this._focusSortUid=null==e||null==(v=e.layer)?void 0:v.uid,void this.scheduleRender()}if(t)return;return m&&(w(h,p,e),c.sort(h),this._sortLayersToItems({type:a,itemIds:c.toArray()})),this._focusSortUid=null==(y=r.layer)?void 0:y.uid,void this.scheduleRender()}if("ArrowUp"===s){var I;const e=p-1,t=e<0;if(t&&"base"===a&&m){var L;if(1===b.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=null==(L=r.layer)?void 0:L.uid,void this.scheduleRender()}if(t&&"base"===a){var A;const e=_.getItemAt(_.length-1);return this._focusSortUid=null==e||null==(A=e.layer)?void 0:A.uid,void this.scheduleRender()}if(t)return;m&&(w(h,p,e),c.sort(h),this._sortLayersToItems({type:a,itemIds:c.toArray()})),this._focusSortUid=null==(I=r.layer)?void 0:I.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.handles.add(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.handles.add([a(e,["className","image","id","title","visible"],(()=>this.scheduleRender()))],t):this.handles.add([a(e,["className","id","title","visible","value","displayValueEnabled","max","min","step"],(()=>this.scheduleRender()))],t):this.handles.add([a(e,["className","image","id","title","visible","value"],(()=>this.scheduleRender()))],t)}_renderOnItemChanges(e,t){this.handles.add([a(e,["actionsOpen","visible","open","updating","title","visibleAtCurrentScale","error","visibilityMode","panel","panel.title","panel.content","panel.className"],(()=>this.scheduleRender())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.handles.remove(t),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:null}}_toggleActionsOpen(e){e.stopPropagation();const t=e.currentTarget["data-item"],{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>O(e))),r.forEach((e=>O(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=e.currentTarget["data-panel"];t&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=t["data-action"],s=t["data-item"];"toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s)}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=t["data-item"];i===R.exclusive&&s.visible||(s.visible=!s.visible)}_toggleChildrenClick(e){e.stopPropagation();const t=e.currentTarget["data-item"];t.open=!t.open}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=e.currentTarget["data-item"],r=g(n,i),{length:a}=i;if(!s)return a&&!(r&&1===a)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}};e([o("viewModel.basemapTitle")],x.prototype,"basemapTitle",void 0),e([o("viewModel.baseListItemCreatedFunction")],x.prototype,"baseListItemCreatedFunction",void 0),e([d()],x.prototype,"editingEnabled",void 0),e([d()],x.prototype,"errorsVisible",void 0),e([d()],x.prototype,"headingLevel",void 0),e([d()],x.prototype,"iconClass",void 0),e([d({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],x.prototype,"label",void 0),e([d(),y("esri/widgets/BasemapLayerList/t9n/BasemapLayerList")],x.prototype,"messages",void 0),e([d(),y("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([d()],x.prototype,"multipleSelectionEnabled",void 0),e([o("viewModel.referenceListItemCreatedFunction")],x.prototype,"referenceListItemCreatedFunction",void 0),e([o("viewModel.baseItems")],x.prototype,"baseItems",void 0),e([o("viewModel.referenceItems")],x.prototype,"referenceItems",void 0),e([d()],x.prototype,"selectedItems",void 0),e([o("viewModel.view")],x.prototype,"view",void 0),e([f("trigger-action"),d({type:h})],x.prototype,"viewModel",void 0),e([d()],x.prototype,"visibleElements",void 0),e([l("visibleElements")],x.prototype,"castVisibleElements",null),e([_()],x.prototype,"_toggleActionsOpen",null),e([_()],x.prototype,"_triggerPanel",null),e([_()],x.prototype,"_triggerAction",null),e([_()],x.prototype,"_toggleVisibility",null),e([_()],x.prototype,"_toggleChildrenClick",null),e([_()],x.prototype,"_toggleSelection",null),x=e([c("esri.widgets.BasemapLayerList")],x);const U=x;export{U as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{HandleOwnerMixin as s}from"../core/HandleOwner.js";import n from"../core/has.js";import{on as r,init as a}from"../core/watchUtils.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import h from"./BasemapLayerList/BasemapLayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as g}from"./LayerList/support/layerListUtils.js";import{Heading as p,incrementHeadingLevel as b}from"./support/Heading.js";import{accessibleHandler as _}from"./support/decorators/accessibleHandler.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import I from"sortablejs";const L=t.ofType(u);function w(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",C="esri-basemaplayerlist-new-ui",T="root-layers",E="data-layer-uid",S="layerUid",k={base:"esri-basemap-layer-list esri-widget esri-widget--panel",newUI:"esri-basemap-layer-list--new-ui",titleContainer:"esri-basemap-layer-list__title-container",mainHeading:"esri-basemap-layer-list__main-heading",editingCard:"esri-basemap-layer-list__editing-card",editingInput:"esri-basemap-layer-list__editing-input",editingActions:"esri-basemap-layer-list__editing-actions",editButton:"esri-basemap-layer-list__edit-button",editButtonIcon:"esri-basemap-layer-list__edit-button-icon",submitButton:"esri-basemap-layer-list__submit-button",cancelButton:"esri-basemap-layer-list__cancel-button",noItems:"esri-basemap-layer-list__no-items",horizontalRule:"esri-basemap-layer-list__hr",listHeading:"esri-basemap-layer-list__list-heading",list:"esri-basemap-layer-list__list",listRoot:"esri-basemap-layer-list__list--root",listExclusive:"esri-basemap-layer-list__list--exclusive",listInherited:"esri-basemap-layer-list__list--inherited",listIndependent:"esri-basemap-layer-list__list--independent",item:"esri-basemap-layer-list__item",itemOnlyChild:"esri-basemap-layer-list__item--only-child",itemContent:"esri-basemap-layer-list__item-content",itemError:"esri-basemap-layer-list__item--error",itemInvisible:"esri-basemap-layer-list__item--invisible",itemInvisibleAtScale:"esri-basemap-layer-list__item--invisible-at-scale",itemUpdating:"esri-basemap-layer-list__item--updating",itemChildren:"esri-basemap-layer-list__item--has-children",itemSelectable:"esri-basemap-layer-list__item--selectable",itemContainer:"esri-basemap-layer-list__item-container",actionsMenu:"esri-basemap-layer-list__item-actions-menu",actionsMenuItem:"esri-basemap-layer-list__item-actions-menu-item",actionsMenuItemActive:"esri-basemap-layer-list__item-actions-menu-item--active",actions:"esri-basemap-layer-list__item-actions",actionsList:"esri-basemap-layer-list__item-actions-list",action:"esri-basemap-layer-list__item-action",actionIcon:"esri-basemap-layer-list__item-action-icon",actionImage:"esri-basemap-layer-list__item-action-image",actionTitle:"esri-basemap-layer-list__item-action-title",actionToggle:"esri-basemap-layer-list__action-toggle",actionToggleOn:"esri-basemap-layer-list__action-toggle--on",label:"esri-basemap-layer-list__item-label",errorMessage:"esri-basemap-layer-list__item-error-message",title:"esri-basemap-layer-list__item-title",toggleVisible:"esri-basemap-layer-list__item-toggle",toggleVisibleIcon:"esri-basemap-layer-list__item-toggle-icon",toggleIcon:"esri-basemap-layer-list__item-toggle-icon",radioIcon:"esri-basemap-layer-list__item-radio-icon",childToggle:"esri-basemap-layer-list__child-toggle",childToggleOpen:"esri-basemap-layer-list__child-toggle--open",childOpened:"esri-basemap-layer-list__child-toggle-icon--opened",childClosed:"esri-basemap-layer-list__child-toggle-icon--closed",childClosed_RTL:"esri-basemap-layer-list__child-toggle-icon--closed-rtl",sortableChosen:"esri-basemap-layer-list--chosen",button:"esri-button",buttonTertiary:"esri-button--tertiary",input:"esri-input",disabled:"esri-disabled",disabledElement:"esri-disabled-element",hidden:"esri-hidden",rotating:"esri-rotating",heading:"esri-widget__heading",iconEdit:"esri-icon-edit",iconCheckMark:"esri-icon-check-mark",iconClose:"esri-icon-close",iconEllipses:"esri-icon-handle-horizontal",iconVisible:"esri-icon-visible",iconInvisible:"esri-icon-non-visible",iconRadioSelected:"esri-icon-radio-checked",iconRadioUnselected:"esri-icon-radio-unchecked",iconNoticeTriangle:"esri-icon-notice-triangle",iconChildrenOpen:"esri-icon-down-arrow",iconDownArrow:"esri-icon-down-arrow",iconRightArrow:"esri-icon-right-triangle-arrow",iconLeftArrow:"esri-icon-left-triangle-arrow",iconLoading:"esri-icon-loading-indicator",iconDefaultAction:"esri-icon-default-action",widgetIcon:"esri-icon-layers"},B={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},R={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function M(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>M(e)))}const O={baseLayers:!0,referenceLayers:!0,statusIndicators:!0};let x=class extends(s(m)){constructor(e,t){super(e,t),this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this._newUI=n(C),this.basemapTitle=null,this.baseListItemCreatedFunction=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=k.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.referenceListItemCreatedFunction=null,this.baseItems=null,this.referenceItems=null,this.selectedItems=new L,this.view=null,this.viewModel=new h,this.visibleElements={...O}}initialize(){const{baseItems:e,referenceItems:t}=this;this.own([r(this,"baseItems","change",(()=>{this._itemsChanged(e,B.baseItems),this._toggleSortingBaseLayers()})),r(this,"referenceItems","change",(()=>this._itemsChanged(t,B.referenceItems))),a(this,"editingEnabled",(()=>this._toggleSorting()))])}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable()}castVisibleElements(e){return{...O,...e}}triggerAction(e,t){this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[k.newUI]:this._newUI,[k.hidden]:"loading"===e,[k.disabled]:"disabled"===e},i=this.renderReferenceSection(),s=this.renderBaseSection(),n=i&&s?v("hr",{class:k.horizontalRule}):null;return v("div",{class:this.classes(k.base,t)},this.renderTitleContainer(),i,n,s)}renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:k.editingInput},e.basemapTitle,v("input",{bind:this,class:k.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(k.button,k.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:k.button},e.form.ok)}renderEditingForm(){return v("div",{class:k.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this.renderEditingInput(),v("div",{class:k.editingActions},this.renderCancelButton(),this.renderSubmitButton())))}renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(k.heading,k.mainHeading)},e)}renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:k.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(k.iconEdit,k.editButtonIcon)})):null}renderTitleContainer(){return v("div",{class:k.titleContainer},this._editingTitle?this.renderEditingForm():this.renderBasemapTitle(),this.renderEditTitleButton())}renderNoLayersInfo(e,t){return v("div",{key:t,class:k.noItems},e)}renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(k.list,k.listRoot,k.listIndependent)},e.map((i=>this.renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}renderBaseHeader(){return v(p,{key:"base-heading",level:b(this.headingLevel),class:this.classes(k.heading,k.listHeading)},this.messages.baseHeading)}renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this.renderBaseHeader(),[0===s.length?this.renderNoLayersInfo(t.noBaseLayers,n):null,this.renderList(s,n)]]}renderReferenceHeader(){return v(p,{key:"reference-heading",level:b(this.headingLevel),class:this.classes(k.heading,k.listHeading)},this.messages.referenceHeading)}renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this.renderReferenceHeader(),[0===s.length?this.renderNoLayersInfo(t.noReferenceLayers,n):null,this.renderList(s,n)]]}renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,a={[k.childToggleOpen]:e.open},o=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(k.childToggle,a),tabindex:"0",role:"button","aria-controls":t,"aria-label":o,title:o},v("span",{"aria-hidden":"true",class:this.classes(k.childClosed,k.iconRightArrow)}),v("span",{"aria-hidden":"true",class:this.classes(k.childOpened,k.iconDownArrow)}),v("span",{"aria-hidden":"true",class:this.classes(k.childClosed_RTL,k.iconLeftArrow)})):null}renderError(e){return e.error?v("div",{key:"error",class:k.errorMessage,role:"alert"},v("span",null,this.messages.layerError)):null}renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[k.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(k.actionsMenuItem,s),tabindex:"0",role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:k.iconEllipses}))}renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this.renderPanelButton(n):null,a=1===i&&this._getSingleActionButton(t),o=a?this.renderAction({item:e,action:a,singleAction:!0}):null,l=!a&&i?this.renderActionsMenuIcon(e,s):null;return l||r||a?v("div",{key:"actions-menu",class:k.actionsMenu},r,o,l):null}renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=!!e.error,a=!!n.length&&!r,{exclusive:o,inherited:l}=R,d={[k.listExclusive]:s===o,[k.listInherited]:s===l,[k.listIndependent]:s!==l&&s!==o};return a?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(k.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===o?"radiogroup":"group",hidden:!e.open||null},null==n?void 0:n.map((t=>this.renderItem({item:t,parent:e}))).toArray()):null}renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,a=`${n}__list`,{panel:o}=e,l=this._filterActions(e.actionsSections),d=this._countActions(l);return[v("div",{key:"list-item-container",class:k.itemContainer},this.renderChildrenToggle(e,a),this.renderLabel(e,t,i),this.renderActionsMenu(e,l,d,r)),this.renderError(e),d?this.renderActionsSections(e,l,r):null,o&&o.open?o.render():null,this.renderChildList(e,a)]}renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{_newUI:n,id:r,editingEnabled:a,selectedItems:o,visibleElements:l}=this,{children:d}=e,c=`${`${r}_${e.uid}`}__title`,m=!!e.error,h=!!d.length&&!m,u={[k.itemChildren]:h,[k.itemError]:!!m,[k.itemUpdating]:e.updating&&!t&&l.statusIndicators,[k.itemInvisible]:n&&!e.visible,[k.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[k.itemSelectable]:a};if(a){var p;const n={[E]:null==(p=e.layer)?void 0:p.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(k.item,u,{[k.itemOnlyChild]:s}),"aria-labelledby":c,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":g(e,o)?"true":"false",role:"option",...n},this.renderItemContent(e,t,c))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(k.item,u),"aria-labelledby":c},this.renderItemContent(e,t,c))}renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:k.title},s)}renderItemToggleIcon(e,t){const{_newUI:i}=this,{exclusive:s}=R,n=t&&t.visibilityMode,r={[k.toggleVisibleIcon]:i,[k.toggleIcon]:i&&n!==s,[k.radioIcon]:i&&n===s,[k.iconRadioSelected]:n===s&&e.visible,[k.iconRadioUnselected]:n===s&&!e.visible,[k.iconVisible]:n!==s&&e.visible,[k.iconInvisible]:n!==s&&!e.visible};return v("span",{key:"item-toggle-icon",class:this.classes(r),"aria-hidden":"true"})}renderItemToggle(e,t,i){const{editingEnabled:s}=this,{exclusive:n}=R,r=t&&t.visibilityMode,a=r===n?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:k.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":r,tabIndex:0,"aria-checked":e.visible?"true":"false",role:a,"aria-labelledby":i}:{key:"item-toggle",class:k.toggleVisible},this.renderItemToggleIcon(e,t))}renderItemError(e){return e.error?v("span",{key:"notice-triangle","aria-hidden":"true",class:k.iconNoticeTriangle}):null}renderLabel(e,t,i){const{editingEnabled:s,_newUI:n}=this,{inherited:r,exclusive:a}=R,o=null==t?void 0:t.visibilityMode,l=o===a?"radio":"switch",d=[this.renderItemToggle(e,t,i),this.renderItemTitle(e,i)];n&&d.reverse();const c=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:k.label}:{key:`item-label-with-selection-${e.uid}`,class:k.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",role:l,"aria-labelledby":i},d);return o===r||e.error?v("div",{key:`item-label-container-${e.uid}`,class:k.label},this.renderItemError(e),this.renderItemTitle(e,i)):c}renderPanelButton(e){const{className:t,open:i,title:s,image:n}=e,r=n||t?t:k.iconDefaultAction,a=this._getIconImageStyles(e),o={[k.actionsMenuItemActive]:i},l={[k.actionImage]:!!a["background-image"]};return r&&(l[r]=!!r),v("div",{key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(k.actionsMenuItem,o),role:"button",tabindex:"0",title:s,"aria-label":s},v("span",{class:this.classes(l),styles:a}))}renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:k.actionsList},this.renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:k.actions,hidden:!e.actionsOpen||null},s)}renderActionSection(e,t){return(t&&t.toArray()).map((t=>this.renderAction({item:e,action:t})))}renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:k.iconDefaultAction,r={[k.actionImage]:!t&&!!s["background-image"],[k.iconLoading]:t,[k.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(k.actionIcon,r),styles:s})}renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:k.actionTitle},e)}renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:a}=i,o={[k.actionsMenuItem]:s&&"button"===i.type,[k.action]:n||!s&&"toggle"!==i.type,[k.actionToggle]:!n&&"toggle"===i.type,[k.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[k.disabledElement]:r},l=[this.renderActionIcon(i),this.renderActionTitle(a,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:o,tabindex:"0",title:a,"aria-label":a},l):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:o,tabindex:"0",role:"button",title:a,"aria-label":a},l)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;(null==e?void 0:e.el)&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;(null==e?void 0:e.el)&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){var t;e.preventDefault();const i=null==(t=this._editTitleInput)?void 0:t.value;null!=i&&i.trim()&&(this.basemapTitle=i),this._toggleEditingTitle()}_itemMovedList(e){const t=e.item["data-item"],i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,{newIndex:n}=e;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=I.create(t,{dataIdAttr:E,group:T,filter:`.${k.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:k.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=I.create(t,{dataIdAttr:E,group:T,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:k.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>this.errorsVisible||!e.error))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).getItemAt(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.get("view.map.basemap.baseLayers"):"reference"===e?this.get("view.map.basemap.referenceLayers"):null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){var t;const{_focusSortUid:i}=this;if(!e||!i)return;(null==(t=e["data-item"].layer)?void 0:t.uid)===i&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=n["data-item"],a=n.dataset.itemType,{_sortableBaseLayers:o,_sortableReferenceLayers:l,selectedItems:d}=this,c="base"===a?o:"reference"===a?l:null;if(!c)return;const m=g(r,d),h=c.toArray(),u=e.target,p=h.indexOf(u.dataset[S]),{baseItems:b,referenceItems:_}=this.viewModel;if(-1!==p){if("ArrowDown"===s){var y;const e=p+1,t=e>=h.length;if(t&&"reference"===a&&m){var f;const e=b.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=null==(f=r.layer)?void 0:f.uid,void this.scheduleRender()}if(t&&"reference"===a){var v;const e=b.getItemAt(0);return this._focusSortUid=null==e||null==(v=e.layer)?void 0:v.uid,void this.scheduleRender()}if(t)return;return m&&(w(h,p,e),c.sort(h),this._sortLayersToItems({type:a,itemIds:c.toArray()})),this._focusSortUid=null==(y=r.layer)?void 0:y.uid,void this.scheduleRender()}if("ArrowUp"===s){var I;const e=p-1,t=e<0;if(t&&"base"===a&&m){var L;if(1===b.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=null==(L=r.layer)?void 0:L.uid,void this.scheduleRender()}if(t&&"base"===a){var A;const e=_.getItemAt(_.length-1);return this._focusSortUid=null==e||null==(A=e.layer)?void 0:A.uid,void this.scheduleRender()}if(t)return;m&&(w(h,p,e),c.sort(h),this._sortLayersToItems({type:a,itemIds:c.toArray()})),this._focusSortUid=null==(I=r.layer)?void 0:I.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.handles.add(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.handles.add([a(e,["className","image","id","title","visible"],(()=>this.scheduleRender()))],t):this.handles.add([a(e,["className","id","title","visible","value","displayValueEnabled","max","min","step"],(()=>this.scheduleRender()))],t):this.handles.add([a(e,["className","image","id","title","visible","value"],(()=>this.scheduleRender()))],t)}_renderOnItemChanges(e,t){this.handles.add([a(e,["actionsOpen","visible","open","updating","title","visibleAtCurrentScale","error","visibilityMode","panel","panel.title","panel.content","panel.className"],(()=>this.scheduleRender())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.handles.remove(t),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:null}}_toggleActionsOpen(e){e.stopPropagation();const t=e.currentTarget["data-item"],{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>M(e))),r.forEach((e=>M(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=e.currentTarget["data-panel"];t&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=t["data-action"],s=t["data-item"];"toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s)}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=t["data-item"];i===R.exclusive&&s.visible||(s.visible=!s.visible)}_toggleChildrenClick(e){e.stopPropagation();const t=e.currentTarget["data-item"];t.open=!t.open}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=e.currentTarget["data-item"],r=g(n,i),{length:a}=i;if(!s)return a&&!(r&&1===a)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}};e([o("viewModel.basemapTitle")],x.prototype,"basemapTitle",void 0),e([o("viewModel.baseListItemCreatedFunction")],x.prototype,"baseListItemCreatedFunction",void 0),e([d()],x.prototype,"editingEnabled",void 0),e([d()],x.prototype,"errorsVisible",void 0),e([d()],x.prototype,"headingLevel",void 0),e([d()],x.prototype,"iconClass",void 0),e([d({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],x.prototype,"label",void 0),e([d(),y("esri/widgets/BasemapLayerList/t9n/BasemapLayerList")],x.prototype,"messages",void 0),e([d(),y("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([d()],x.prototype,"multipleSelectionEnabled",void 0),e([o("viewModel.referenceListItemCreatedFunction")],x.prototype,"referenceListItemCreatedFunction",void 0),e([o("viewModel.baseItems")],x.prototype,"baseItems",void 0),e([o("viewModel.referenceItems")],x.prototype,"referenceItems",void 0),e([d()],x.prototype,"selectedItems",void 0),e([o("viewModel.view")],x.prototype,"view",void 0),e([f("trigger-action"),d({type:h})],x.prototype,"viewModel",void 0),e([d()],x.prototype,"visibleElements",void 0),e([l("visibleElements")],x.prototype,"castVisibleElements",null),e([_()],x.prototype,"_toggleActionsOpen",null),e([_()],x.prototype,"_triggerPanel",null),e([_()],x.prototype,"_triggerAction",null),e([_()],x.prototype,"_toggleVisibility",null),e([_()],x.prototype,"_toggleChildrenClick",null),e([_()],x.prototype,"_toggleSelection",null),x=e([c("esri.widgets.BasemapLayerList")],x);const U=x;export{U 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.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../Viewpoint.js";import o from"../../core/Collection.js";import i from"../../core/Error.js";import r from"../../core/Evented.js";import a from"../../core/Logger.js";import{isSome as s}from"../../core/maybe.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as c}from"../../core/accessorSupport/decorators/cast.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import{SlideThumbnail as p}from"../../webdoc/support/SlideThumbnail.js";import m from"../../webmap/Bookmark.js";import{GoToMixin as u}from"../support/GoTo.js";const k="esri.widgets.Bookmarks.BookmarksViewModel",d=a.getLogger(k),v=o.ofType(m),w={width:128,height:128,format:"png"},h={takeScreenshot:!0,captureViewpoint:!0,captureRotation:!0,captureScale:!0,captureTimeExtent:!0},b={time:!0};let f=class extends(u(r.EventedAccessor)){constructor(t){super(t),this.abilities={...b},this.activeBookmark=null}destroy(){this.view=null,this._set("activeBookmark",null)}castAbilities(t){return{...b,...t}}set bookmarks(t){void 0!==t?this._override("bookmarks",t):this._clearOverride("bookmarks")}get bookmarks(){return this.get("view.map.bookmarks")||new v}set defaultCreateOptions(t){this._set("defaultCreateOptions",{...h,...t})}get defaultCreateOptions(){return h}set defaultEditOptions(t){this._set("defaultEditOptions",{...h,...t})}get defaultEditOptions(){return h}get state(){const t=this.get("view");return t&&!t.ready?"loading":"ready"}get view(){return this._get("view")}set view(t){t&&"2d"!==t.type&&d.error(new i("view:invalid-view","SceneView is not supported",{view:t})),this._set("view",t)}async createBookmark(t){const{view:e,defaultCreateOptions:o,abilities:r}=this;if(!e){const t=new i("create-bookmark:invalid-view","Cannot create a bookmark without a view.");return d.error(t),Promise.reject(t)}const{takeScreenshot:a,screenshotSettings:n,captureViewpoint:c,captureRotation:l,captureScale:p,captureTimeExtent:u}={...o,...t},k=a?await this._createThumbnail(n):void 0,v=r.time&&u&&s(e.timeExtent)?e.timeExtent.clone():void 0;return new m({...k&&{thumbnail:k},...u&&{timeExtent:v},...c&&{viewpoint:this._createViewpoint({view:e,captureScale:p,captureRotation:l})}})}async editBookmark(t,e){const{view:o,defaultEditOptions:r}=this;if(!o){const t=new i("edit-bookmark:invalid-view","Cannot edit a bookmark without a view.");return d.error(t),Promise.reject(t)}const{takeScreenshot:a,screenshotSettings:n,captureViewpoint:c,captureRotation:l,captureScale:p,captureTimeExtent:m}={...r,...e},u=a?await this._createThumbnail(n):void 0;return u&&(t.thumbnail=u),c&&(t.viewpoint=this._createViewpoint({view:o,captureScale:p,captureRotation:l})),m&&s(o.timeExtent)&&(t.timeExtent=o.timeExtent.clone()),this.emit("bookmark-edit",{bookmark:t}),t}goTo(t){const{abilities:e,view:o}=this;if(!o){const t=new i("go-to:invalid-view","Cannot go to a bookmark without a view");return d.error(t),Promise.reject(t)}const r=null==t?void 0:t.viewpoint;if(!r){const e=new i("go-to:invalid-bookmark","Cannot go to a bookmark that does not contain a 'viewpoint'.",{bookmark:t});return d.error(e),Promise.reject(e)}this._set("activeBookmark",t);const a={target:r},s=this.callGoTo(a),n=null==t?void 0:t.timeExtent;return e.time&&n&&(o.timeExtent=n),this.emit("bookmark-select",{bookmark:t}),s.catch((()=>{})).then((()=>this._set("activeBookmark",null))),s}async _createThumbnail(t){const e=await this.view.takeScreenshot({...w,...t});return new p({url:e.dataUrl})}_createViewpoint({view:t,captureRotation:o,captureScale:i}){var r,a;const s=null==(r=t.viewpoint)?void 0:r.clone();return new e({targetGeometry:null==(a=t.extent)?void 0:a.clone(),rotation:o&&(null==s?void 0:s.rotation)||0,scale:i&&(null==s?void 0:s.scale)||0})}};t([n()],f.prototype,"abilities",void 0),t([c("abilities")],f.prototype,"castAbilities",null),t([n({readOnly:!0})],f.prototype,"activeBookmark",void 0),t([n({type:v})],f.prototype,"bookmarks",null),t([n()],f.prototype,"defaultCreateOptions",null),t([n()],f.prototype,"defaultEditOptions",null),t([n({readOnly:!0})],f.prototype,"state",null),t([n({value:null})],f.prototype,"view",null),f=t([l(k)],f);const g=f;export{g as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../Viewpoint.js";import o from"../../core/Collection.js";import i from"../../core/Error.js";import r from"../../core/Evented.js";import a from"../../core/Logger.js";import{isSome as s}from"../../core/maybe.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as c}from"../../core/accessorSupport/decorators/cast.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import{SlideThumbnail as p}from"../../webdoc/support/SlideThumbnail.js";import m from"../../webmap/Bookmark.js";import{GoToMixin as u}from"../support/GoTo.js";const k="esri.widgets.Bookmarks.BookmarksViewModel",d=a.getLogger(k),w=o.ofType(m),v={width:128,height:128,format:"png"},h={takeScreenshot:!0,captureViewpoint:!0,captureRotation:!0,captureScale:!0,captureTimeExtent:!0},b={time:!0};let f=class extends(u(r.EventedAccessor)){constructor(t){super(t),this.abilities={...b},this.activeBookmark=null}destroy(){this.view=null,this._set("activeBookmark",null)}castAbilities(t){return{...b,...t}}set bookmarks(t){void 0!==t?this._override("bookmarks",t):this._clearOverride("bookmarks")}get bookmarks(){return this.get("view.map.bookmarks")||new w}set defaultCreateOptions(t){this._set("defaultCreateOptions",{...h,...t})}get defaultCreateOptions(){return h}set defaultEditOptions(t){this._set("defaultEditOptions",{...h,...t})}get defaultEditOptions(){return h}get state(){const t=this.get("view");return t&&!t.ready?"loading":"ready"}get view(){return this._get("view")}set view(t){t&&"2d"!==t.type&&d.error(new i("view:invalid-view","SceneView is not supported",{view:t})),this._set("view",t)}async createBookmark(t){const{view:e,defaultCreateOptions:o,abilities:r}=this;if(!e){const t=new i("create-bookmark:invalid-view","Cannot create a bookmark without a view.");throw d.error(t),t}const{takeScreenshot:a,screenshotSettings:n,captureViewpoint:c,captureRotation:l,captureScale:p,captureTimeExtent:u}={...o,...t},k=a?await this._createThumbnail(n):void 0,w=r.time&&u&&s(e.timeExtent)?e.timeExtent.clone():void 0;return new m({...k&&{thumbnail:k},...u&&{timeExtent:w},...c&&{viewpoint:this._createViewpoint({view:e,captureScale:p,captureRotation:l})}})}async editBookmark(t,e){const{view:o,defaultEditOptions:r}=this;if(!o){const t=new i("edit-bookmark:invalid-view","Cannot edit a bookmark without a view.");throw d.error(t),t}const{takeScreenshot:a,screenshotSettings:n,captureViewpoint:c,captureRotation:l,captureScale:p,captureTimeExtent:m}={...r,...e},u=a?await this._createThumbnail(n):void 0;return u&&(t.thumbnail=u),c&&(t.viewpoint=this._createViewpoint({view:o,captureScale:p,captureRotation:l})),m&&s(o.timeExtent)&&(t.timeExtent=o.timeExtent.clone()),this.emit("bookmark-edit",{bookmark:t}),t}goTo(t){const{abilities:e,view:o}=this;if(!o){const t=new i("go-to:invalid-view","Cannot go to a bookmark without a view");return d.error(t),Promise.reject(t)}const r=null==t?void 0:t.viewpoint;if(!r){const e=new i("go-to:invalid-bookmark","Cannot go to a bookmark that does not contain a 'viewpoint'.",{bookmark:t});return d.error(e),Promise.reject(e)}this._set("activeBookmark",t);const a={target:r},s=this.callGoTo(a),n=null==t?void 0:t.timeExtent;return e.time&&n&&(o.timeExtent=n),this.emit("bookmark-select",{bookmark:t}),s.catch((()=>{})).then((()=>this._set("activeBookmark",null))),s}async _createThumbnail(t){const e=await this.view.takeScreenshot({...v,...t});return new p({url:e.dataUrl})}_createViewpoint({view:t,captureRotation:o,captureScale:i}){var r,a;const s=null==(r=t.viewpoint)?void 0:r.clone();return new e({targetGeometry:null==(a=t.extent)?void 0:a.clone(),rotation:o&&(null==s?void 0:s.rotation)||0,scale:i&&(null==s?void 0:s.scale)||0})}};t([n()],f.prototype,"abilities",void 0),t([c("abilities")],f.prototype,"castAbilities",null),t([n({readOnly:!0})],f.prototype,"activeBookmark",void 0),t([n({type:w})],f.prototype,"bookmarks",null),t([n()],f.prototype,"defaultCreateOptions",null),t([n()],f.prototype,"defaultEditOptions",null),t([n({readOnly:!0})],f.prototype,"state",null),t([n({value:null})],f.prototype,"view",null),f=t([l(k)],f);const g=f;export{g as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import{eventKey as e}from"../core/events.js";import o from"../core/Handles.js";import{isSome as i,isNone as r}from"../core/maybe.js";import{init as s,on as a,watch as n}from"../core/watchUtils.js";import{aliasOf as d}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as k}from"../core/accessorSupport/decorators/property.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as u,convertDateFormatToIntlOptions as c}from"../intl/date.js";import{SlideThumbnail as h}from"../webdoc/support/SlideThumbnail.js";import b from"./Widget.js";import _ from"./Bookmarks/BookmarksUserState.js";import p from"./Bookmarks/BookmarksViewModel.js";import g from"./FeatureTable/Grid/support/ButtonMenu.js";import B from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{Heading as v}from"./support/Heading.js";import{isActivationKey as f}from"./support/widgetUtils.js";import{messageBundle as E}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as y}from"./support/jsxFactory.js";import w from"sortablejs";function S(t,e,o){t.splice(o,0,t.splice(e,1)[0])}const x="bookmarks",A="data-bookmark-uid",T={base:"esri-bookmarks esri-widget--panel",loaderContainer:"esri-bookmarks__loader-container",loader:"esri-bookmarks__loader",fadeIn:"esri-bookmarks--fade-in",bookmarkList:"esri-bookmarks__list",bookmarkListSortable:"esri-bookmarks__list--sortable",bookmark:"esri-bookmarks__bookmark",bookmarkButton:"esri-bookmarks__bookmark-button",bookmarkImageContainer:"esri-bookmarks__bookmark-image-container",bookmarkEditButtonContainer:"esri-bookmarks__bookmark-edit-button-container",bookmarkEditButton:"esri-bookmarks__bookmark-edit-button",bookmarkDragHandle:"esri-bookmarks_bookmark-drag-handle",bookmarkDragHandleIcon:"esri-bookmarks_bookmark-drag-handle-icon",bookmarkIcon:"esri-bookmarks__bookmark-icon",bookmarkImage:"esri-bookmarks__image",bookmarkLabel:"esri-bookmarks__bookmark-label",bookmarkName:"esri-bookmarks__bookmark-name",bookmarkTimeExtent:"esri-bookmarks__bookmark-time-extent",bookmarkActive:"esri-bookmarks__bookmark--active",noBookmarksContainer:"esri-widget__content--empty",noBookmarksHeader:"esri-bookmarks__no-bookmarks-heading",noBookmarksIcon:"esri-widget__no-bookmark-icon",noBookmarksDescription:"esri-bookmarks__no-bookmarks-description",addingBookmark:"esri-bookmarks__adding-bookmark",addBookmark:"esri-bookmarks__add-bookmark",addBookmarkButton:"esri-bookmarks__add-bookmark-button",addBookmarkIcon:"esri-bookmarks__add-bookmark-icon",authoringCard:"esri-bookmarks__authoring-card",authoringContainer:"esri-bookmarks__authoring-container",authoringForm:"esri-bookmarks__authoring-form",authoringLabel:"esri-bookmarks__authoring-label",authoringActions:"esri-bookmarks__authoring-actions",authoringInputInvalid:"esri-bookmarks__authoring-input--invalid",authoringDeleteButton:"esri-bookmarks__authoring-delete-button",authoringCancelButton:"esri-bookmarks__authoring-cancel-button",timeExtentContainer:"esri-bookmarks__time-extent-container",timeExtent:"esri-bookmarks__time-extent",timeExtentGroup:"esri-bookmarks__time-extent-group",timeExtentDate:"esri-bookmarks__time-extent-date",timeExtentTime:"esri-bookmarks__time-extent-time",esriWidget:"esri-widget",esriWidgetDisabled:"esri-widget--disabled",esriButton:"esri-button",esriButtonTertiary:"esri-button--tertiary",esriInput:"esri-input",iconHandle:"esri-icon-handle-vertical",iconPlus:"esri-icon-plus",iconEdit:"esri-icon-edit",iconHandleHorizontal:"esri-icon-handle-horizontal",iconRefresh:"esri-icon-refresh",iconLink:"esri-icon-link",iconRemove:"esri-icon-erase",widgetIcon:"esri-icon-bookmark",header:"esri-widget__heading",loading:"esri-icon-loading-indicator",rotating:"esri-rotating"},C={addBookmark:!0,thumbnail:!0,time:!0},U=/^https:\/\/.*/i,M="esri.widgets.Bookmarks";let N=class extends b{constructor(t,e){super(t,e),this._handles=new o,this._addInputNode=null,this._editInputNode=null,this._urlEditInputNode=null,this._addBookmarkButtonNode=null,this._focusAddBookmarkButton=!1,this._focusEditInputBox=!1,this._focusAddInputBox=!1,this._focusUrlEditInputBox=!1,this._sortable=null,this._sortableNode=null,this._focusSortUid=null,this._selectedSortUid=null,this._sortableSavedItems=null,this._editIncludeTimeExtent=null,this._userState=null,this.defaultCreateOptions=null,this.defaultEditOptions=null,this.bookmarks=null,this.disabled=!1,this.editingEnabled=!1,this.headingLevel=2,this.goToOverride=null,this.iconClass=T.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.view=null,this.viewModel=new p,this.visibleElements={...C}}initialize(){this.own([s(this,"viewModel.bookmarks",(()=>this._bookmarksInitialized())),s(this,"editingEnabled",(()=>this._toggleSorting()))])}destroy(){this._destroySortable(),this._handles.destroy(),this._handles=null,this._editMenu.destroy()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-label.js"),import("@esri/calcite-components/dist/components/calcite-switch.js")])}get _editMenuItems(){var t,e;const{messages:o,_userState:i}=this,r=null==i||null==(t=i.editedBookmark)||null==(e=t.thumbnail)?void 0:e.url;return[new B({label:null==o?void 0:o.menu.refreshThumbnail,iconClass:T.iconRefresh,clickFunction:()=>this._refreshThumbnail()}),new B({label:U.test(r)?null==o?void 0:o.menu.editImageUrl:null==o?void 0:o.menu.useImageUrl,iconClass:T.iconLink,clickFunction:()=>this._startUseImageUrl()}),r?new B({label:null==o?void 0:o.menu.removeThumbnail,iconClass:T.iconRemove,clickFunction:()=>this._removeThumbnail()}):null].filter(Boolean)}get _editMenu(){const{_editMenuItems:t,messages:e}=this,o=this._get("_editMenu");o&&o.destroy();const i=new g({iconClass:T.iconHandleHorizontal,label:null==e?void 0:e.menu.label});return i.items=t,i}castVisibleElements(t){return{...C,...t}}endAddBookmark(){this._userState=null}goTo(t){return this.viewModel.goTo(t)}render(){const{state:t}=this.viewModel,e="loading"===t?this.renderLoading():this.renderBookmarks();return y("div",{class:this.classes(T.base,T.esriWidget,{[T.esriWidgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new _({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}renderLoading(){return y("div",{class:T.loaderContainer,key:"loader"},y("div",{class:T.loader}))}renderNoBookmarksContainer(){const{messages:t}=this;return y("div",{class:T.noBookmarksContainer,key:"no-bookmarks"},y("span",{"aria-hidden":"true",class:this.classes(T.noBookmarksIcon,T.widgetIcon)}),y(v,{level:this.headingLevel,class:this.classes(T.header,T.noBookmarksHeader)},null==t?void 0:t.noBookmarksHeading),y("p",{class:T.noBookmarksDescription},null==t?void 0:t.noBookmarksDescription))}renderAddBookmarkLoading(){var t;return y("div",{key:"adding-bookmark",class:T.addingBookmark},y("span",{"aria-hidden":"true",class:this.classes(T.loading,T.rotating)}),null==(t=this.messages)?void 0:t.addingBookmark)}renderBookmarkItems(t){if(!t)return null;const{_userState:e,editingEnabled:o}=this;return t.map((t=>o&&t&&e&&("edit"===e.state||"edit-thumbnail"===e.state)&&e.bookmark===t?"edit-thumbnail"===e.state?this.renderEditingBookmarkUrl(e.editedBookmark):this.renderEditingBookmark(e.editedBookmark):this.renderBookmark(t))).toArray()}renderBookmarksContainer(t){var e;const{_userState:o,editingEnabled:i}=this,r="add"===(null==o?void 0:o.state),s=i&&!r?this.renderAddBookmarkButton():null,a=i?r&&o.loading?this.renderAddBookmarkLoading():"add"===(null==o?void 0:o.state)?this.renderAddingBookmark():null:null;return[y("ul",{key:"bookmark-list","aria-label":null==(e=this.messages)?void 0:e.widgetLabel,class:this.classes(T.bookmarkList,{[T.bookmarkListSortable]:this.editingEnabled}),afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"data-node-ref":"_sortableNode",bind:this},this.renderBookmarkItems(t)),s,a]}renderAddBookmarkButton(){var t;return this.visibleElements.addBookmark?y("div",{key:"add-bookmark-item",class:T.addBookmark},y("button",{class:this.classes(T.esriButton,T.esriButtonTertiary,T.addBookmarkButton),onclick:this.startAddBookmark,afterCreate:this._storeAddBookmarkButton,afterUpdate:this._storeAddBookmarkButton,"data-node-ref":"_addBookmarkButtonNode",bind:this,type:"button"},y("span",{"aria-hidden":"true",class:this.classes(T.addBookmarkIcon,T.iconPlus)}),null==(t=this.messages)?void 0:t.addBookmark)):null}renderBookmarks(){const{bookmarks:t}=this.viewModel,e=t&&t.filter(Boolean),o=e&&e.length,i=o||this.editingEnabled?this.renderBookmarksContainer(e):null;return[o?null:this.renderNoBookmarksContainer(),i]}renderEditContainer(t){const{messagesCommon:e}=this;return y("div",{class:T.bookmarkEditButtonContainer,key:"edit-container"},y("button",{title:null==e?void 0:e.edit,"aria-label":null==e?void 0:e.edit,"data-bookmark":t,onclick:this._showEditBookmarkForm,bind:this,class:T.bookmarkEditButton,type:"button"},y("span",{"aria-hidden":"true",class:T.iconEdit})))}renderDragHandle(t){const{messagesCommon:e}=this,o={[A]:t.uid};return y("div",{role:"button",tabIndex:0,key:"drag-handle",bind:this,class:T.bookmarkDragHandle,onkeydown:this._dragHandleKeydown,afterCreate:this._focusDragHandle,afterUpdate:this._focusDragHandle,onblur:this._dragHandleBlur,"aria-pressed":this._selectedSortUid===t.uid?"true":"false","aria-label":null==e?void 0:e.dragHandleLabel,title:null==e?void 0:e.dragHandleTitle,...o},y("span",{"aria-hidden":"true",class:this.classes(T.bookmarkDragHandleIcon,T.iconHandle)}))}renderBookmarkImageIcon(){return y("span",{"aria-hidden":"true",class:this.classes(T.bookmarkIcon,T.widgetIcon)})}renderBookmarkImage(t){const{visibleElements:e}=this,{thumbnail:o}=t,i=o&&o.url||"";return e.thumbnail&&i?y("img",{src:i,alt:"",class:T.bookmarkImage}):null}renderBookmarkTimeSwitch(t){const{messages:e}=this,{timeExtent:o}=t,{view:i}=this.viewModel;return i.timeExtent||o?y("calcite-label",{layout:"inline-space-between","disable-spacing":"true"},e.includeTimeExtent,y("calcite-switch",{scale:"s",checked:!!o,onCalciteSwitchChange:t=>this._editIncludeTimeExtent=!!t.detail.switched})):null}renderBookmarkTimeExtent(t){const{visibleElements:e}=this,{timeExtent:o}=t;return o?y("span",{class:T.timeExtent},[i(o.start)&&y("span",{key:"start-date-group",class:T.timeExtentGroup},y("span",{key:"start-date",class:T.timeExtentDate},this._formatDate(o.start)),e.time&&y("span",{key:"start-time",class:T.timeExtentTime},this._formatTime(o.start))),i(o.end)&&(r(o.start)||o.start.getTime()!==o.end.getTime())&&y("span",{key:"end-date-group",class:T.timeExtentGroup},y("span",{key:"end-date",class:T.timeExtentDate},this._formatDate(o.end)),e.time&&y("span",{key:"end-time",class:T.timeExtentTime},this._formatTime(o.end)))]):null}renderBookmarkButton(t){const{messagesCommon:e}=this,{name:o,timeExtent:i}=t,{abilities:r}=this.viewModel,s=o||(null==e?void 0:e.untitled),a=y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t)||this.renderBookmarkImageIcon()),n=r.time&&i?y("span",{key:"time-extent",class:T.bookmarkTimeExtent},this.renderBookmarkTimeExtent(t)):null;return y("button",{key:"bookmark-button",class:T.bookmarkButton,bind:this,"data-bookmark":t,onclick:this._goToBookmark,type:"button"},a,y("div",{class:T.bookmarkLabel},y("span",{key:"bookmark-title",class:T.bookmarkName},s),n))}renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[T.bookmarkActive]:e===t},i=this.editingEnabled?this.renderEditContainer(t):null,r={[A]:t.uid},s=this.editingEnabled?this.renderDragHandle(t):null;return y("li",{key:t,class:this.classes(T.bookmark,o),...r},s,this.renderBookmarkButton(t),i)}renderEditingBookmarkName(t){const{messages:e,_userState:o}=this,i="name-required"===o.validationState;return y("label",{class:T.authoringLabel},null==e?void 0:e.title,i?y("strong",null,null==e?void 0:e.invalidTitle):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,i?T.authoringInputInvalid:null),type:"text",value:t.name,afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,"data-bookmark":t,"data-node-ref":"_editInputNode",placeholder:null==e?void 0:e.titlePlaceholder}))}renderEditingBookmarkUrlActions(){const{messagesCommon:t}=this;return y("div",{class:T.authoringActions},y("input",{type:"button",value:null==t?void 0:t.back,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeUrlEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.add}))}renderEditingBookmarkActions(){const{messagesCommon:t}=this,{bookmark:e}=this._userState;return y("div",{class:T.authoringActions},y("input",{type:"button",value:null==t?void 0:t.delete,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringDeleteButton),"data-bookmark":e,onclick:this._deleteBookmark,bind:this}),y("input",{type:"button",value:null==t?void 0:t.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.save}))}renderEditingBookmarkUrlInput(t){var e;const{messages:o,_userState:i}=this,r=null==(e=t.thumbnail)?void 0:e.url,s=U.test(r)?r:null,a="absolute-url-required"===i.validationState;return y("label",{class:T.authoringLabel},a?y("strong",null,null==o?void 0:o.invalidImageUrl):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,a?T.authoringInputInvalid:null),type:"text",value:s,afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,"data-bookmark":t,"data-node-ref":"_urlEditInputNode",title:null==o?void 0:o.imageUrlTooltip,placeholder:o&&`https://<${o.imageUrlPlaceholder}>`}))}renderEditingBookmarkUrl(t){const e={[A]:t.uid};return y("li",{key:"edit-bookmark-url-form",class:T.authoringCard,...e},y("form",{class:T.authoringForm,onsubmit:this._editBookmarkUrlSubmit,bind:this},this.renderEditingBookmarkUrlInput(t),this.renderEditingBookmarkUrlActions()))}renderEditingBookmark(t){const e={[A]:t.uid},{abilities:o}=this.viewModel,i=o.time?y("div",{key:"edit-bookmark-time-container",class:T.timeExtentContainer},this.renderBookmarkTimeSwitch(t),this._editIncludeTimeExtent&&this.renderBookmarkTimeExtent(t)):null;return y("li",{key:"edit-bookmark-form",class:T.authoringCard,...e},y("form",{class:T.authoringForm,onsubmit:this._editBookmarkSubmit,bind:this},y("div",{class:T.authoringContainer},y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t),this._editMenu.render()),this.renderEditingBookmarkName(t)),i,this.renderEditingBookmarkActions()))}renderAddingBookmarkName(){const{_userState:t,messages:e}=this,o="name-required"===t.validationState;return y("label",{class:T.authoringLabel},null==e?void 0:e.title,o?y("strong",null,null==e?void 0:e.invalidTitle):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,o?T.authoringInputInvalid:null),type:"text",afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,"data-node-ref":"_addInputNode",value:"",placeholder:null==e?void 0:e.titlePlaceholder}))}renderAddingBookmarkActions(){const{messagesCommon:t}=this;return y("div",{class:this.classes(T.authoringActions)},y("input",{type:"button",value:null==t?void 0:t.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringCancelButton),onclick:this._endAddBookmark.bind(this),bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.add}))}renderAddingBookmark(){return y("div",{key:"add-bookmark-form",class:T.authoringCard},y("form",{class:T.authoringForm,onsubmit:this._addBookmarkSubmit,bind:this},this.renderAddingBookmarkName(),this.renderAddingBookmarkActions()))}_formatDate(t){return t?u(t,c("short-date")):null}_formatTime(t){return t?u(t,c("long-time")):null}_dragHandleBlur(){this._selectedSortUid=null,this.scheduleRender()}_dragHandleKeydown(t){const{_sortableSavedItems:o}=this,i=["ArrowDown","ArrowUp","Escape","Tab"," ","Enter"],r=e(t);if(-1===i.indexOf(r))return;const{_sortable:s,_selectedSortUid:a}=this,n=s.toArray(),d=t.target.getAttribute(A),l=n.indexOf(d);if(f(r)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?null:this._sortable.toArray(),void this.scheduleRender()}if("Tab"===r)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===r&&o)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(o,s,d),void this.scheduleRender();if(-1===l||!a)return;const k="ArrowUp"===r?l-1:l+1;k>=n.length||k<=-1||(S(n,l,k),this._updateSortItems(n,s,d))}_updateSortItems(t,e,o){e.sort(t),this._sortBookmarks(e),this._focusSortUid=o,this._selectedSortUid=o}_focusDragHandle(t){const{_focusSortUid:e}=this;if(!t||!e)return;t.getAttribute(A)===e&&(t.focus(),this._focusSortUid=null)}_toggleSorting(){const{_sortable:t,_sortableNode:e,editingEnabled:o}=this;if(e)if(t)t.option("disabled",!o);else{const t=w.create(e,{dataIdAttr:A,handle:`.${T.bookmarkDragHandle}`,group:x,disabled:!o,onSort:()=>this._sortBookmarks(t)});this._sortable=t}}_sortNodeCreated(t){this._sortableNode=t,this._toggleSorting()}_sortBookmarks(t){const{bookmarks:e}=this.viewModel;if(!e)return;const o=t.toArray();e.sort(((t,e)=>{const i=o.indexOf(t.uid),r=o.indexOf(e.uid);return i>r?1:i<r?-1:0}))}_destroySortable(){const{_sortable:t}=this;t&&t.destroy(),this._sortable=null}_endAddBookmark(){this._focusAddBookmarkButton=!0,this.endAddBookmark()}_bookmarksInitialized(){const t="bookmarks-init",{_handles:e}=this;e.remove(t),e.add(a(this,"viewModel.bookmarks","change",(()=>this._bookmarksChanged())),t)}_bookmarksChanged(){const t="bookmarks-change",{bookmarks:e}=this.viewModel,{_handles:o}=this;o.remove(t);const i=e.map((t=>n(t,["active","name","thumbnail.url"],(()=>this.scheduleRender()))));o.add(i,t),this.scheduleRender()}_showEditBookmarkForm(t){const e=t.currentTarget["data-bookmark"];this._editIncludeTimeExtent=!!e.timeExtent,this._focusEditInputBox=!0,this._userState=new _({bookmark:e,state:"edit"}),this.viewModel.goTo(e),this.scheduleRender()}_closeUrlEditBookmarkForm(){this._focusEditInputBox=!0,this._userState.state="edit"}_closeEditBookmarkForm(){this._userState=null}_addBookmarkSubmit(t){t.preventDefault();const{_addInputNode:e,_userState:o}=this,i=e&&e.value.trim();i?(o.loading=!0,this.viewModel.createBookmark().then((t=>{t.name=i,this.viewModel.bookmarks.add(t),this._endAddBookmark()}))):o.validationState="name-required"}async _editBookmarkAndClose(t,e){const{viewModel:o}=this;await o.editBookmark(t,{...o.defaultEditOptions,...e}),this._closeEditBookmarkForm()}_editBookmarkSubmit(t){t.preventDefault();const{_editInputNode:e,_userState:o,_editIncludeTimeExtent:i}=this,r=e&&e.value.trim();r?(o.bookmark.name=r,o.bookmark.thumbnail=o.editedBookmark.thumbnail,i||(o.bookmark.timeExtent=null),this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:i})):o.validationState="name-required"}_storeAddBookmarkButton(t){this._addBookmarkButtonNode=t,this._focusAddBookmark()}_storeEditInput(t){this._editInputNode=t,this._focusEditInput()}_storeAddInput(t){this._addInputNode=t,this._focusAddInput()}_storeUrlEditInput(t){this._urlEditInputNode=t,this._focusUrlEditInput()}_focusUrlEditInput(){this._urlEditInputNode&&this._focusUrlEditInputBox&&(this._focusUrlEditInputBox=!1,this._urlEditInputNode.focus())}_focusAddInput(){this._addInputNode&&this._focusAddInputBox&&(this._focusAddInputBox=!1,this._addInputNode.focus())}_focusAddBookmark(){this._addBookmarkButtonNode&&this._focusAddBookmarkButton&&(this._focusAddBookmarkButton=!1,this._addBookmarkButtonNode.focus())}_focusEditInput(){this._editInputNode&&this._focusEditInputBox&&(this._focusEditInputBox=!1,this._editInputNode.focus())}_deleteBookmark(t){const e=t.currentTarget["data-bookmark"];this.viewModel.bookmarks.remove(e)}_goToBookmark(t){const e=t.currentTarget["data-bookmark"];this.endAddBookmark(),this._closeEditBookmarkForm(),this.viewModel.goTo(e)}async _refreshThumbnail(){const{_userState:t,_editMenu:e,viewModel:o}=this;t.validationState=void 0,await o.editBookmark(this._userState.editedBookmark,{takeScreenshot:!0,captureViewpoint:!1,captureRotation:!1,captureScale:!1,captureTimeExtent:!1}),e.open=!1,this._focusEditInputBox=!0,this.scheduleRender()}_removeThumbnail(){const{_userState:t,_editMenu:e}=this;t.editedBookmark.thumbnail=null,t.validationState=void 0,e.open=!1,this._focusEditInputBox=!0,this.scheduleRender()}_startUseImageUrl(){this._userState.state="edit-thumbnail",this._editMenu.open=!1,this._focusUrlEditInputBox=!0,this.scheduleRender()}_editBookmarkUrlSubmit(t){t.preventDefault();const{_urlEditInputNode:e,_userState:o}=this,i=e.value;U.test(i)?(i&&(o.editedBookmark.thumbnail=new h({url:i})),this._closeUrlEditBookmarkForm()):o.validationState="absolute-url-required"}};t([k()],N.prototype,"_editIncludeTimeExtent",void 0),t([k({type:_})],N.prototype,"_userState",void 0),t([k({readOnly:!0})],N.prototype,"_editMenuItems",null),t([k({readOnly:!0})],N.prototype,"_editMenu",null),t([d("viewModel.defaultCreateOptions")],N.prototype,"defaultCreateOptions",void 0),t([d("viewModel.defaultEditOptions")],N.prototype,"defaultEditOptions",void 0),t([d("viewModel.bookmarks")],N.prototype,"bookmarks",void 0),t([k()],N.prototype,"disabled",void 0),t([k()],N.prototype,"editingEnabled",void 0),t([k()],N.prototype,"headingLevel",void 0),t([d("viewModel.goToOverride")],N.prototype,"goToOverride",void 0),t([k()],N.prototype,"iconClass",void 0),t([k({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],N.prototype,"label",void 0),t([k(),E("esri/widgets/Bookmarks/t9n/Bookmarks")],N.prototype,"messages",void 0),t([k(),E("esri/t9n/common")],N.prototype,"messagesCommon",void 0),t([k(),E("esri/core/t9n/Units")],N.prototype,"messagesUnits",void 0),t([k()],N.prototype,"uiStrings",void 0),t([d("viewModel.view")],N.prototype,"view",void 0),t([k({type:p}),I(["select-bookmark","bookmark-edit","bookmark-select"])],N.prototype,"viewModel",void 0),t([k()],N.prototype,"visibleElements",void 0),t([l("visibleElements")],N.prototype,"castVisibleElements",null),t([k()],N.prototype,"endAddBookmark",null),t([k()],N.prototype,"startAddBookmark",null),N=t([m(M)],N);const j=N;export{j as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import{eventKey as e}from"../core/events.js";import o from"../core/Handles.js";import{isSome as i,isNone as r}from"../core/maybe.js";import{init as s,on as a,watch as n}from"../core/watchUtils.js";import{aliasOf as d}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as k}from"../core/accessorSupport/decorators/property.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as u,convertDateFormatToIntlOptions as c}from"../intl/date.js";import{SlideThumbnail as h}from"../webdoc/support/SlideThumbnail.js";import b from"./Widget.js";import _ from"./Bookmarks/BookmarksUserState.js";import p from"./Bookmarks/BookmarksViewModel.js";import g from"./FeatureTable/Grid/support/ButtonMenu.js";import B from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{Heading as v}from"./support/Heading.js";import{isActivationKey as f}from"./support/widgetUtils.js";import{messageBundle as E}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as y}from"./support/jsxFactory.js";import w from"sortablejs";function S(t,e,o){t.splice(o,0,t.splice(e,1)[0])}const x="bookmarks",A="data-bookmark-uid",T={base:"esri-bookmarks esri-widget--panel",loaderContainer:"esri-bookmarks__loader-container",loader:"esri-bookmarks__loader",fadeIn:"esri-bookmarks--fade-in",bookmarkList:"esri-bookmarks__list",bookmarkListSortable:"esri-bookmarks__list--sortable",bookmark:"esri-bookmarks__bookmark",bookmarkButton:"esri-bookmarks__bookmark-button",bookmarkImageContainer:"esri-bookmarks__bookmark-image-container",bookmarkEditButtonContainer:"esri-bookmarks__bookmark-edit-button-container",bookmarkEditButton:"esri-bookmarks__bookmark-edit-button",bookmarkDragHandle:"esri-bookmarks_bookmark-drag-handle",bookmarkDragHandleIcon:"esri-bookmarks_bookmark-drag-handle-icon",bookmarkIcon:"esri-bookmarks__bookmark-icon",bookmarkImage:"esri-bookmarks__image",bookmarkLabel:"esri-bookmarks__bookmark-label",bookmarkName:"esri-bookmarks__bookmark-name",bookmarkTimeExtent:"esri-bookmarks__bookmark-time-extent",bookmarkActive:"esri-bookmarks__bookmark--active",noBookmarksContainer:"esri-widget__content--empty",noBookmarksHeader:"esri-bookmarks__no-bookmarks-heading",noBookmarksIcon:"esri-widget__no-bookmark-icon",noBookmarksDescription:"esri-bookmarks__no-bookmarks-description",addingBookmark:"esri-bookmarks__adding-bookmark",addBookmark:"esri-bookmarks__add-bookmark",addBookmarkButton:"esri-bookmarks__add-bookmark-button",addBookmarkIcon:"esri-bookmarks__add-bookmark-icon",authoringCard:"esri-bookmarks__authoring-card",authoringContainer:"esri-bookmarks__authoring-container",authoringForm:"esri-bookmarks__authoring-form",authoringLabel:"esri-bookmarks__authoring-label",authoringActions:"esri-bookmarks__authoring-actions",authoringInputInvalid:"esri-bookmarks__authoring-input--invalid",authoringDeleteButton:"esri-bookmarks__authoring-delete-button",authoringCancelButton:"esri-bookmarks__authoring-cancel-button",timeExtentContainer:"esri-bookmarks__time-extent-container",timeExtent:"esri-bookmarks__time-extent",timeExtentGroup:"esri-bookmarks__time-extent-group",timeExtentDate:"esri-bookmarks__time-extent-date",timeExtentTime:"esri-bookmarks__time-extent-time",esriWidget:"esri-widget",esriWidgetDisabled:"esri-widget--disabled",esriButton:"esri-button",esriButtonTertiary:"esri-button--tertiary",esriInput:"esri-input",iconHandle:"esri-icon-handle-vertical",iconPlus:"esri-icon-plus",iconEdit:"esri-icon-edit",iconHandleHorizontal:"esri-icon-handle-horizontal",iconRefresh:"esri-icon-refresh",iconLink:"esri-icon-link",iconRemove:"esri-icon-erase",widgetIcon:"esri-icon-bookmark",header:"esri-widget__heading",loading:"esri-icon-loading-indicator",rotating:"esri-rotating"},C={addBookmark:!0,thumbnail:!0,time:!0},U=/^https:\/\/.*/i,M="esri.widgets.Bookmarks";let N=class extends b{constructor(t,e){super(t,e),this._handles=new o,this._addInputNode=null,this._editInputNode=null,this._urlEditInputNode=null,this._addBookmarkButtonNode=null,this._focusAddBookmarkButton=!1,this._focusEditInputBox=!1,this._focusAddInputBox=!1,this._focusUrlEditInputBox=!1,this._sortable=null,this._sortableNode=null,this._focusSortUid=null,this._selectedSortUid=null,this._sortableSavedItems=null,this._editIncludeTimeExtent=null,this._userState=null,this.defaultCreateOptions=null,this.defaultEditOptions=null,this.bookmarks=null,this.disabled=!1,this.editingEnabled=!1,this.headingLevel=2,this.goToOverride=null,this.iconClass=T.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.view=null,this.viewModel=new p,this.visibleElements={...C}}initialize(){this.own([s(this,"viewModel.bookmarks",(()=>this._bookmarksInitialized())),s(this,"editingEnabled",(()=>this._toggleSorting()))])}destroy(){this._destroySortable(),this._handles.destroy(),this._handles=null,this._editMenu.destroy()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-label.js"),import("@esri/calcite-components/dist/components/calcite-switch.js")])}get _editMenuItems(){var t,e;const{messages:o,_userState:i}=this,r=null==i||null==(t=i.editedBookmark)||null==(e=t.thumbnail)?void 0:e.url;return[new B({label:null==o?void 0:o.menu.refreshThumbnail,iconClass:T.iconRefresh,clickFunction:()=>this._refreshThumbnail()}),new B({label:U.test(r)?null==o?void 0:o.menu.editImageUrl:null==o?void 0:o.menu.useImageUrl,iconClass:T.iconLink,clickFunction:()=>this._startUseImageUrl()}),r?new B({label:null==o?void 0:o.menu.removeThumbnail,iconClass:T.iconRemove,clickFunction:()=>this._removeThumbnail()}):null].filter(Boolean)}get _editMenu(){const{_editMenuItems:t,messages:e}=this,o=this._get("_editMenu");o&&o.destroy();const i=new g({iconClass:T.iconHandleHorizontal,label:null==e?void 0:e.menu.label});return i.items=t,i}castVisibleElements(t){return{...C,...t}}endAddBookmark(){this._userState=null}goTo(t){return this.viewModel.goTo(t)}render(){const{state:t}=this.viewModel,e="loading"===t?this.renderLoading():this.renderBookmarks();return y("div",{class:this.classes(T.base,T.esriWidget,{[T.esriWidgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new _({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}renderLoading(){return y("div",{class:T.loaderContainer,key:"loader"},y("div",{class:T.loader}))}renderNoBookmarksContainer(){const{messages:t}=this;return y("div",{class:T.noBookmarksContainer,key:"no-bookmarks"},y("span",{"aria-hidden":"true",class:this.classes(T.noBookmarksIcon,T.widgetIcon)}),y(v,{level:this.headingLevel,class:this.classes(T.header,T.noBookmarksHeader)},null==t?void 0:t.noBookmarksHeading),y("p",{class:T.noBookmarksDescription},null==t?void 0:t.noBookmarksDescription))}renderAddBookmarkLoading(){var t;return y("div",{key:"adding-bookmark",class:T.addingBookmark},y("span",{"aria-hidden":"true",class:this.classes(T.loading,T.rotating)}),null==(t=this.messages)?void 0:t.addingBookmark)}renderBookmarkItems(t){if(!t)return null;const{_userState:e,editingEnabled:o}=this;return t.map((t=>o&&t&&e&&("edit"===e.state||"edit-thumbnail"===e.state)&&e.bookmark===t?"edit-thumbnail"===e.state?this.renderEditingBookmarkUrl(e.editedBookmark):this.renderEditingBookmark(e.editedBookmark):this.renderBookmark(t))).toArray()}renderBookmarksContainer(t){var e;const{_userState:o,editingEnabled:i}=this,r="add"===(null==o?void 0:o.state),s=i&&!r?this.renderAddBookmarkButton():null,a=i?r&&o.loading?this.renderAddBookmarkLoading():"add"===(null==o?void 0:o.state)?this.renderAddingBookmark():null:null;return[y("ul",{key:"bookmark-list","aria-label":null==(e=this.messages)?void 0:e.widgetLabel,class:this.classes(T.bookmarkList,{[T.bookmarkListSortable]:this.editingEnabled}),afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"data-node-ref":"_sortableNode",bind:this},this.renderBookmarkItems(t)),s,a]}renderAddBookmarkButton(){var t;return this.visibleElements.addBookmark?y("div",{key:"add-bookmark-item",class:T.addBookmark},y("button",{class:this.classes(T.esriButton,T.esriButtonTertiary,T.addBookmarkButton),onclick:this.startAddBookmark,afterCreate:this._storeAddBookmarkButton,afterUpdate:this._storeAddBookmarkButton,"data-node-ref":"_addBookmarkButtonNode",bind:this,type:"button"},y("span",{"aria-hidden":"true",class:this.classes(T.addBookmarkIcon,T.iconPlus)}),null==(t=this.messages)?void 0:t.addBookmark)):null}renderBookmarks(){const{bookmarks:t}=this.viewModel,e=t&&t.filter(Boolean),o=e&&e.length,i=o||this.editingEnabled?this.renderBookmarksContainer(e):null;return[o?null:this.renderNoBookmarksContainer(),i]}renderEditContainer(t){const{messagesCommon:e}=this;return y("div",{class:T.bookmarkEditButtonContainer,key:"edit-container"},y("button",{title:null==e?void 0:e.edit,"aria-label":null==e?void 0:e.edit,"data-bookmark":t,onclick:this._showEditBookmarkForm,bind:this,class:T.bookmarkEditButton,type:"button"},y("span",{"aria-hidden":"true",class:T.iconEdit})))}renderDragHandle(t){const{messagesCommon:e}=this,o={[A]:t.uid};return y("div",{role:"button",tabIndex:0,key:"drag-handle",bind:this,class:T.bookmarkDragHandle,onkeydown:this._dragHandleKeydown,afterCreate:this._focusDragHandle,afterUpdate:this._focusDragHandle,onblur:this._dragHandleBlur,"aria-pressed":this._selectedSortUid===t.uid?"true":"false","aria-label":null==e?void 0:e.dragHandleLabel,title:null==e?void 0:e.dragHandleTitle,...o},y("span",{"aria-hidden":"true",class:this.classes(T.bookmarkDragHandleIcon,T.iconHandle)}))}renderBookmarkImageIcon(){return y("span",{"aria-hidden":"true",class:this.classes(T.bookmarkIcon,T.widgetIcon)})}renderBookmarkImage(t){const{visibleElements:e}=this,{thumbnail:o}=t,i=o&&o.url||"";return e.thumbnail&&i?y("img",{src:i,alt:"",class:T.bookmarkImage}):null}renderBookmarkTimeSwitch(t){const{messages:e}=this,{timeExtent:o}=t,{view:i}=this.viewModel;return i.timeExtent||o?y("calcite-label",{layout:"inline-space-between","disable-spacing":"true"},e.includeTimeExtent,y("calcite-switch",{scale:"s",checked:!!o,onCalciteSwitchChange:t=>this._editIncludeTimeExtent=!!t.detail.switched})):null}renderBookmarkTimeExtent(t){const{visibleElements:e}=this,{timeExtent:o}=t;return o?y("span",{class:T.timeExtent},[i(o.start)&&y("span",{key:"start-date-group",class:T.timeExtentGroup},y("span",{key:"start-date",class:T.timeExtentDate},this._formatDate(o.start)),e.time&&y("span",{key:"start-time",class:T.timeExtentTime},this._formatTime(o.start))),i(o.end)&&(r(o.start)||o.start.getTime()!==o.end.getTime())&&y("span",{key:"end-date-group",class:T.timeExtentGroup},y("span",{key:"end-date",class:T.timeExtentDate},this._formatDate(o.end)),e.time&&y("span",{key:"end-time",class:T.timeExtentTime},this._formatTime(o.end)))]):null}renderBookmarkButton(t){const{messagesCommon:e}=this,{name:o,timeExtent:i}=t,{abilities:r}=this.viewModel,s=o||(null==e?void 0:e.untitled),a=y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t)||this.renderBookmarkImageIcon()),n=r.time&&i?y("span",{key:"time-extent",class:T.bookmarkTimeExtent},this.renderBookmarkTimeExtent(t)):null;return y("button",{key:"bookmark-button",class:T.bookmarkButton,bind:this,"data-bookmark":t,onclick:this._goToBookmark,type:"button"},a,y("div",{class:T.bookmarkLabel},y("span",{key:"bookmark-title",class:T.bookmarkName},s),n))}renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[T.bookmarkActive]:e===t},i=this.editingEnabled?this.renderEditContainer(t):null,r={[A]:t.uid},s=this.editingEnabled?this.renderDragHandle(t):null;return y("li",{key:t,class:this.classes(T.bookmark,o),...r},s,this.renderBookmarkButton(t),i)}renderEditingBookmarkName(t){const{messages:e,_userState:o}=this,i="name-required"===o.validationState;return y("label",{class:T.authoringLabel},null==e?void 0:e.title,i?y("strong",null,null==e?void 0:e.invalidTitle):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,i?T.authoringInputInvalid:null),type:"text",value:t.name,afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,"data-bookmark":t,"data-node-ref":"_editInputNode",placeholder:null==e?void 0:e.titlePlaceholder}))}renderEditingBookmarkUrlActions(){const{messagesCommon:t}=this;return y("div",{class:T.authoringActions},y("input",{type:"button",value:null==t?void 0:t.back,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeUrlEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.add}))}renderEditingBookmarkActions(){const{messagesCommon:t}=this,{bookmark:e}=this._userState;return y("div",{class:T.authoringActions},y("input",{type:"button",value:null==t?void 0:t.delete,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringDeleteButton),"data-bookmark":e,onclick:this._deleteBookmark,bind:this}),y("input",{type:"button",value:null==t?void 0:t.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.save}))}renderEditingBookmarkUrlInput(t){var e;const{messages:o,_userState:i}=this,r=null==(e=t.thumbnail)?void 0:e.url,s=U.test(r)?r:null,a="absolute-url-required"===i.validationState;return y("label",{class:T.authoringLabel},a?y("strong",null,null==o?void 0:o.invalidImageUrl):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,a?T.authoringInputInvalid:null),type:"text",value:s,afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,"data-bookmark":t,"data-node-ref":"_urlEditInputNode",title:null==o?void 0:o.imageUrlTooltip,placeholder:o&&`https://<${o.imageUrlPlaceholder}>`}))}renderEditingBookmarkUrl(t){const e={[A]:t.uid};return y("li",{key:"edit-bookmark-url-form",class:T.authoringCard,...e},y("form",{class:T.authoringForm,onsubmit:this._editBookmarkUrlSubmit,bind:this},this.renderEditingBookmarkUrlInput(t),this.renderEditingBookmarkUrlActions()))}renderEditingBookmark(t){const e={[A]:t.uid},{abilities:o}=this.viewModel,i=o.time?y("div",{key:"edit-bookmark-time-container",class:T.timeExtentContainer},this.renderBookmarkTimeSwitch(t),this._editIncludeTimeExtent&&this.renderBookmarkTimeExtent(t)):null;return y("li",{key:"edit-bookmark-form",class:T.authoringCard,...e},y("form",{class:T.authoringForm,onsubmit:this._editBookmarkSubmit,bind:this},y("div",{class:T.authoringContainer},y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t),this._editMenu.render()),this.renderEditingBookmarkName(t)),i,this.renderEditingBookmarkActions()))}renderAddingBookmarkName(){const{_userState:t,messages:e}=this,o="name-required"===t.validationState;return y("label",{class:T.authoringLabel},null==e?void 0:e.title,o?y("strong",null,null==e?void 0:e.invalidTitle):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,o?T.authoringInputInvalid:null),type:"text",afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,"data-node-ref":"_addInputNode",value:"",placeholder:null==e?void 0:e.titlePlaceholder}))}renderAddingBookmarkActions(){const{messagesCommon:t}=this;return y("div",{class:this.classes(T.authoringActions)},y("input",{type:"button",value:null==t?void 0:t.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringCancelButton),onclick:this._endAddBookmark.bind(this),bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.add}))}renderAddingBookmark(){return y("div",{key:"add-bookmark-form",class:T.authoringCard},y("form",{class:T.authoringForm,onsubmit:this._addBookmarkSubmit,bind:this},this.renderAddingBookmarkName(),this.renderAddingBookmarkActions()))}_formatDate(t){return t?u(t,c("short-date")):null}_formatTime(t){return t?u(t,c("long-time")):null}_dragHandleBlur(){this._selectedSortUid=null,this.scheduleRender()}_dragHandleKeydown(t){const{_sortableSavedItems:o}=this,i=["ArrowDown","ArrowUp","Escape","Tab"," ","Enter"],r=e(t);if(!i.includes(r))return;const{_sortable:s,_selectedSortUid:a}=this,n=s.toArray(),d=t.target.getAttribute(A),l=n.indexOf(d);if(f(r)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?null:this._sortable.toArray(),void this.scheduleRender()}if("Tab"===r)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===r&&o)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(o,s,d),void this.scheduleRender();if(-1===l||!a)return;const k="ArrowUp"===r?l-1:l+1;k>=n.length||k<=-1||(S(n,l,k),this._updateSortItems(n,s,d))}_updateSortItems(t,e,o){e.sort(t),this._sortBookmarks(e),this._focusSortUid=o,this._selectedSortUid=o}_focusDragHandle(t){const{_focusSortUid:e}=this;if(!t||!e)return;t.getAttribute(A)===e&&(t.focus(),this._focusSortUid=null)}_toggleSorting(){const{_sortable:t,_sortableNode:e,editingEnabled:o}=this;if(e)if(t)t.option("disabled",!o);else{const t=w.create(e,{dataIdAttr:A,handle:`.${T.bookmarkDragHandle}`,group:x,disabled:!o,onSort:()=>this._sortBookmarks(t)});this._sortable=t}}_sortNodeCreated(t){this._sortableNode=t,this._toggleSorting()}_sortBookmarks(t){const{bookmarks:e}=this.viewModel;if(!e)return;const o=t.toArray();e.sort(((t,e)=>{const i=o.indexOf(t.uid),r=o.indexOf(e.uid);return i>r?1:i<r?-1:0}))}_destroySortable(){const{_sortable:t}=this;t&&t.destroy(),this._sortable=null}_endAddBookmark(){this._focusAddBookmarkButton=!0,this.endAddBookmark()}_bookmarksInitialized(){const t="bookmarks-init",{_handles:e}=this;e.remove(t),e.add(a(this,"viewModel.bookmarks","change",(()=>this._bookmarksChanged())),t)}_bookmarksChanged(){const t="bookmarks-change",{bookmarks:e}=this.viewModel,{_handles:o}=this;o.remove(t);const i=e.map((t=>n(t,["active","name","thumbnail.url"],(()=>this.scheduleRender()))));o.add(i,t),this.scheduleRender()}_showEditBookmarkForm(t){const e=t.currentTarget["data-bookmark"];this._editIncludeTimeExtent=!!e.timeExtent,this._focusEditInputBox=!0,this._userState=new _({bookmark:e,state:"edit"}),this.viewModel.goTo(e),this.scheduleRender()}_closeUrlEditBookmarkForm(){this._focusEditInputBox=!0,this._userState.state="edit"}_closeEditBookmarkForm(){this._userState=null}_addBookmarkSubmit(t){t.preventDefault();const{_addInputNode:e,_userState:o}=this,i=e&&e.value.trim();i?(o.loading=!0,this.viewModel.createBookmark().then((t=>{t.name=i,this.viewModel.bookmarks.add(t),this._endAddBookmark()}))):o.validationState="name-required"}async _editBookmarkAndClose(t,e){const{viewModel:o}=this;await o.editBookmark(t,{...o.defaultEditOptions,...e}),this._closeEditBookmarkForm()}_editBookmarkSubmit(t){t.preventDefault();const{_editInputNode:e,_userState:o,_editIncludeTimeExtent:i}=this,r=e&&e.value.trim();r?(o.bookmark.name=r,o.bookmark.thumbnail=o.editedBookmark.thumbnail,i||(o.bookmark.timeExtent=null),this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:i})):o.validationState="name-required"}_storeAddBookmarkButton(t){this._addBookmarkButtonNode=t,this._focusAddBookmark()}_storeEditInput(t){this._editInputNode=t,this._focusEditInput()}_storeAddInput(t){this._addInputNode=t,this._focusAddInput()}_storeUrlEditInput(t){this._urlEditInputNode=t,this._focusUrlEditInput()}_focusUrlEditInput(){this._urlEditInputNode&&this._focusUrlEditInputBox&&(this._focusUrlEditInputBox=!1,this._urlEditInputNode.focus())}_focusAddInput(){this._addInputNode&&this._focusAddInputBox&&(this._focusAddInputBox=!1,this._addInputNode.focus())}_focusAddBookmark(){this._addBookmarkButtonNode&&this._focusAddBookmarkButton&&(this._focusAddBookmarkButton=!1,this._addBookmarkButtonNode.focus())}_focusEditInput(){this._editInputNode&&this._focusEditInputBox&&(this._focusEditInputBox=!1,this._editInputNode.focus())}_deleteBookmark(t){const e=t.currentTarget["data-bookmark"];this.viewModel.bookmarks.remove(e)}_goToBookmark(t){const e=t.currentTarget["data-bookmark"];this.endAddBookmark(),this._closeEditBookmarkForm(),this.viewModel.goTo(e)}async _refreshThumbnail(){const{_userState:t,_editMenu:e,viewModel:o}=this;t.validationState=void 0,await o.editBookmark(this._userState.editedBookmark,{takeScreenshot:!0,captureViewpoint:!1,captureRotation:!1,captureScale:!1,captureTimeExtent:!1}),e.open=!1,this._focusEditInputBox=!0,this.scheduleRender()}_removeThumbnail(){const{_userState:t,_editMenu:e}=this;t.editedBookmark.thumbnail=null,t.validationState=void 0,e.open=!1,this._focusEditInputBox=!0,this.scheduleRender()}_startUseImageUrl(){this._userState.state="edit-thumbnail",this._editMenu.open=!1,this._focusUrlEditInputBox=!0,this.scheduleRender()}_editBookmarkUrlSubmit(t){t.preventDefault();const{_urlEditInputNode:e,_userState:o}=this,i=e.value;U.test(i)?(i&&(o.editedBookmark.thumbnail=new h({url:i})),this._closeUrlEditBookmarkForm()):o.validationState="absolute-url-required"}};t([k()],N.prototype,"_editIncludeTimeExtent",void 0),t([k({type:_})],N.prototype,"_userState",void 0),t([k({readOnly:!0})],N.prototype,"_editMenuItems",null),t([k({readOnly:!0})],N.prototype,"_editMenu",null),t([d("viewModel.defaultCreateOptions")],N.prototype,"defaultCreateOptions",void 0),t([d("viewModel.defaultEditOptions")],N.prototype,"defaultEditOptions",void 0),t([d("viewModel.bookmarks")],N.prototype,"bookmarks",void 0),t([k()],N.prototype,"disabled",void 0),t([k()],N.prototype,"editingEnabled",void 0),t([k()],N.prototype,"headingLevel",void 0),t([d("viewModel.goToOverride")],N.prototype,"goToOverride",void 0),t([k()],N.prototype,"iconClass",void 0),t([k({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],N.prototype,"label",void 0),t([k(),E("esri/widgets/Bookmarks/t9n/Bookmarks")],N.prototype,"messages",void 0),t([k(),E("esri/t9n/common")],N.prototype,"messagesCommon",void 0),t([k(),E("esri/core/t9n/Units")],N.prototype,"messagesUnits",void 0),t([k()],N.prototype,"uiStrings",void 0),t([d("viewModel.view")],N.prototype,"view",void 0),t([k({type:p}),I(["select-bookmark","bookmark-edit","bookmark-select"])],N.prototype,"viewModel",void 0),t([k()],N.prototype,"visibleElements",void 0),t([l("visibleElements")],N.prototype,"castVisibleElements",null),t([k()],N.prototype,"endAddBookmark",null),t([k()],N.prototype,"startAddBookmark",null),N=t([m(M)],N);const j=N;export{j 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.24/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as t,isNone as r}from"../../../core/maybe.js";import{generateUUID as n}from"../../../core/uuid.js";import i from"../../../layers/support/BuildingFilterBlock.js";import e from"../../../layers/support/BuildingFilterModeSolid.js";import o from"../../../layers/support/BuildingFilterModeXRay.js";const f="__BUILDING_EXPLORER_FILTER__";function s(){return`${n()}${f}`}function l(t){const r="string"==typeof t?t:t.id;return!!r&&-1!==r.indexOf(f)}function u(r,n){for(const i of r.items)for(const r of i.filters.items){if(!l(r))continue;const i=n(r);if(t(i))return i}return null}function c(r,n){r.forEach((r=>{const i=r.filters.filter((t=>!l(t)));t(n)&&i.push(n),p(r.filters,i)||(r.filters=i);const e=r.filters.find((t=>l(t)));r.activeFilterId=t(e)?e.id:null}))}function p(t,n){const i=n.length;if(r(t)||t.length!==i)return!1;for(let r=0;r<i;++r){const i=n.getItemAt(r).toJSON(),e=t.getItemAt(r).toJSON();if(i.id="",e.id="",JSON.stringify(i)!==JSON.stringify(e))return!1}return!0}function d(t){const r=g(t);return r?new i({filterExpression:r,filterMode:new o}):null}function m(t){const r=g(t);return r?new i({filterExpression:r,filterMode:new e}):null}function g(t){return t.filter((t=>!!t)).map((t=>`(${t})`)).join(" AND ")}export{s as generateFilterId,m as getFilterBlockSolid,d as getFilterBlockXRay,u as getValueFromFilters,l as isBuildingExplorerFilter,c as setFilterOnLayers};
5
+ import{isSome as t,isNone as r}from"../../../core/maybe.js";import{generateUUID as n}from"../../../core/uuid.js";import i from"../../../layers/support/BuildingFilterBlock.js";import e from"../../../layers/support/BuildingFilterModeSolid.js";import o from"../../../layers/support/BuildingFilterModeXRay.js";const f="__BUILDING_EXPLORER_FILTER__";function s(){return`${n()}${f}`}function l(t){const r="string"==typeof t?t:t.id;return!!r&&r.includes(f)}function u(r,n){for(const i of r.items)for(const r of i.filters.items){if(!l(r))continue;const i=n(r);if(t(i))return i}return null}function c(r,n){r.forEach((r=>{const i=r.filters.filter((t=>!l(t)));t(n)&&i.push(n),p(r.filters,i)||(r.filters=i);const e=r.filters.find((t=>l(t)));r.activeFilterId=t(e)?e.id:null}))}function p(t,n){const i=n.length;if(r(t)||t.length!==i)return!1;for(let r=0;r<i;++r){const i=n.getItemAt(r).toJSON(),e=t.getItemAt(r).toJSON();if(i.id="",e.id="",JSON.stringify(i)!==JSON.stringify(e))return!1}return!0}function d(t){const r=g(t);return r?new i({filterExpression:r,filterMode:new o}):null}function m(t){const r=g(t);return r?new i({filterExpression:r,filterMode:new e}):null}function g(t){return t.filter((t=>!!t)).map((t=>`(${t})`)).join(" AND ")}export{s as generateFilterId,m as getFilterBlockSolid,d as getFilterBlockXRay,u as getValueFromFilters,l as isBuildingExplorerFilter,c as setFilterOnLayers};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";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/Handles.js";import a from"../../core/Logger.js";import{init as h,whenOnce as c}from"../../core/watchUtils.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import m from"../../geometry/Point.js";import{load as p}from"../../geometry/projection.js";import v from"../../symbols/PictureMarkerSymbol.js";import u from"./support/Conversion.js";import{isValidPoint as g,isSupportedNotation as _}from"./support/coordinateConversionUtils.js";import{generateDefaultFormats as f,setDefaultPatterns as w}from"./support/formatUtils.js";import{GoToMixin as C}from"../support/GoTo.js";import{onLocaleChange as y,getLocale as b}from"../../intl/locale.js";import{fetchMessageBundle as P}from"../../intl/messages.js";const j={default:"default",crosshair:"crosshair"},M=new m([0,0,500]),L="xy",S=["mgrs","utm","usng","dd","dms","ddm"],x="esri__coordinateConversionWidgetState",F=a.getLogger("esri.widgets.CoordinateConversion.CoordinateConversionViewModel"),A={conversions:"conversions",formats:"formats",view:"view",viewChange:"view-change"},E="esri/images/search/search-symbol-32.png";let G=class extends(C(r.EventedAccessor)){constructor(t){super(t),this._conversionPromise=null,this._handles=new n,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 v({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 P("esri/widgets/CoordinateConversion/t9n/CoordinateConversion");t().then((()=>{if(!this.destroyed&&(this.formats.addMany(f(this.messages)),this.storageEnabled&&this._loadWidgetState(),this.formats.forEach((t=>{t.viewModel=this,this._handles.add(t.watch("currentPattern",this._saveWidgetState),t.name)})),this._handles.add(this.conversions.on("change",this._handleConversionChange),A.conversions),this._handles.add(this.formats.on("change",this._handleFormatChange),A.formats),this._handles.add(y((()=>{t().then((()=>{w(this.messages,this.formats)}))}))),p().then((()=>{this.formatterAvailable=!0})).catch((t=>{F.error(new s("coordinate-conversion:projection-load-failed","Failed to load the projection module.",{error:t})),this.formatterAvailable=!1,this._filterFormatsAndConversions()})).then((()=>this._handles.add(h(this,"view",this._handleViewChange),A.viewChange))),0===this.conversions.length)){const t=this.formats.find((t=>t.name===L))||this.formats.getItemAt(0);this.conversions.add(new u({format:t}))}}))}destroy(){this._handles.removeAll(),this._cleanUpView(this.view),this.view=null}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=null==e?void 0: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.view.graphics.remove(this._locationGraphic),t){const e=t.clone();e.hasZ&&(e.z=void 0),this._locationGraphic=new o({geometry:e,symbol:this.get("locationSymbol")}),this.view.graphics.add(this._locationGraphic)}}convert(t,e){return g(e)?Promise.resolve().then((()=>t.convert(e))):Promise.reject(new s("coordinate-conversion:invalid-point","Invalid point cannot be converted.",{point:e}))}goToLocation(t){if(this.get("view.clippingArea")||this.get("view.map.basemap.baseLayers.length")>0){const e=this.get("view.clippingArea")||this.view.map.basemap.baseLayers.getItemAt(0).fullExtent;return e?e.contains(t)?this.callGoTo({target:t}):Promise.reject(new s("coordinate-conversion:go-to-failed","Point outside basemap extent.",{point:t})):this.callGoTo({target:t})}return this.callGoTo({target:t})}pause(){this.currentLocation=null,this._handles.remove(A.view),this.view&&(this.view.cursor=j.default,this.view.graphics.remove(this._locationGraphic))}previewConversion(t,e=this.currentLocation||M){return this._convertMany([t],e).then((()=>t.displayCoordinate))}resume(){"capture"===this.mode?this._startCaptureMode():this._startLiveMode()}reverseConvert(t,e){return e.reverseConvert(t)}async updateConversions(t,e){return e&&e.type&&"point"===e.type?this._convertMany(t,e):(this._clearConversions(this.conversions),Promise.reject(new s("coordinate-conversion:invalid-input-point","Point is invalid, conversions cannot be updated.",{point:e})))}_cleanUpView(t){t&&(t.graphics.remove(this._locationGraphic),this._handles.remove(A.view),t.cursor=j.default)}_clearConversions(t){t.forEach((t=>{t.position={location:null,coordinate:null}}))}_convertMany(t,e){return Promise.all(t.map((t=>t.format.convert(e).then((e=>(t.position=e,t))).catch((()=>{t.position=null}))))).then((()=>t))}_handleConversionChange(t){t.added.forEach((t=>{const e=t.format;e.viewModel=this,this.currentLocation&&(this._set("waitingForConversions",!0),this.convert(e,this.currentLocation).then((e=>{t.position=e,this._set("waitingForConversions",!1)})))})),this._saveWidgetState()}_handleFormatChange(t){t.added.forEach((t=>{this._handles.add(t.watch("currentPattern",this._saveWidgetState),t.name),t.viewModel=this})),t.removed.forEach((t=>{t.viewModel=null,this._handles.remove(t.name)}))}_loadWidgetState(){try{const t=JSON.parse(this.storage.getItem(x));t&&this._setWidgetState(t)}catch(t){F.error(new s("coordinate-conversion:invalid-session-storage-json","Could not read from storage.",{error:t}))}}_startCaptureMode(){this._handles.remove(A.view),this.view&&(this.view.cursor=j.crosshair,this.currentLocation&&this.setLocation(this.currentLocation),this._handles.add(this.view.on("click",this._onClick),A.view))}_startLiveMode(){this._pointerCount=0,this._handles.remove(A.view),this.view&&(this.view.cursor=j.default,this.view.graphics.remove(this._locationGraphic),this._handles.add([this.view.on("pointer-down",this._onPointerDown),this.view.on("pointer-up",this._onPointerUp),this.view.on("pointer-move",this._onPointerMove)],A.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&&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&&e.normalize()}}_onPointerMove(t){const{pointerType:e}=t;if("mouse"===e||1===this._pointerCount){const e=this.view.toMap(t);this.currentLocation=e&&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===b()&&e.currentPattern&&(o.currentPattern=e.currentPattern),o&&e.index>=0&&this.conversions.add(new u({format:o}))}))}catch(e){F.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(x,JSON.stringify({formats:t,locale:b()}))}catch(e){F.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._handles.add(c(this,"view.spatialReference",(t=>{const i=t.isWebMercator||t.isWGS84,s=o.filter((t=>{const{name:e}=t;return S.indexOf(e)>=0||"xy"===e&&!i})),r=this.filteredFormats.filter((t=>"xy"===t.name&&i&&-1===this.formats.indexOf(t))),n=e.filter((t=>s.indexOf(t.format)>=0));o.removeMany(s),e.removeMany(n),this.filteredFormats.addMany(s.filter((t=>-1===this.filteredFormats.indexOf(t)))),o.addMany(r)})),A.view)}};t([d()],G.prototype,"conversions",void 0),t([d({type:m})],G.prototype,"currentLocation",null),t([d()],G.prototype,"formats",void 0),t([d()],G.prototype,"messages",void 0),t([d()],G.prototype,"mode",null),t([d()],G.prototype,"filteredFormats",void 0),t([d({readOnly:!0})],G.prototype,"state",null),t([d()],G.prototype,"locationSymbol",void 0),t([d({readOnly:!0,dependsOn:["storageType"]})],G.prototype,"storage",null),t([d()],G.prototype,"storageEnabled",void 0),t([d()],G.prototype,"storageType",void 0),t([d({readOnly:!0})],G.prototype,"waitingForConversions",null),t([d()],G.prototype,"view",void 0),G=t([l("esri.widgets.CoordinateConversion.CoordinateConversionViewModel")],G);const O=G;export{O as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";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/Handles.js";import a from"../../core/Logger.js";import{init as h,whenOnce as c}from"../../core/watchUtils.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import m from"../../geometry/Point.js";import{load as p}from"../../geometry/projection.js";import v from"../../symbols/PictureMarkerSymbol.js";import u from"./support/Conversion.js";import{isValidPoint as g,isSupportedNotation as _}from"./support/coordinateConversionUtils.js";import{generateDefaultFormats as w,setDefaultPatterns as f}from"./support/formatUtils.js";import{GoToMixin as C}from"../support/GoTo.js";import{onLocaleChange as y,getLocale as b}from"../../intl/locale.js";import{fetchMessageBundle as M}from"../../intl/messages.js";const P={default:"default",crosshair:"crosshair"},j=new m([0,0,500]),L="xy",S=["mgrs","utm","usng","dd","dms","ddm"],F="esri__coordinateConversionWidgetState",A=a.getLogger("esri.widgets.CoordinateConversion.CoordinateConversionViewModel"),E={conversions:"conversions",formats:"formats",view:"view",viewChange:"view-change"},x="esri/images/search/search-symbol-32.png";let G=class extends(C(r.EventedAccessor)){constructor(t){super(t),this._conversionPromise=null,this._handles=new n,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 v({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");t().then((()=>{if(!this.destroyed&&(this.formats.addMany(w(this.messages)),this.storageEnabled&&this._loadWidgetState(),this.formats.forEach((t=>{t.viewModel=this,this._handles.add(t.watch("currentPattern",this._saveWidgetState),t.name)})),this._handles.add(this.conversions.on("change",this._handleConversionChange),E.conversions),this._handles.add(this.formats.on("change",this._handleFormatChange),E.formats),this._handles.add(y((()=>{t().then((()=>{f(this.messages,this.formats)}))}))),p().then((()=>{this.formatterAvailable=!0})).catch((t=>{A.error(new s("coordinate-conversion:projection-load-failed","Failed to load the projection module.",{error:t})),this.formatterAvailable=!1,this._filterFormatsAndConversions()})).then((()=>this._handles.add(h(this,"view",this._handleViewChange),E.viewChange))),0===this.conversions.length)){const t=this.formats.find((t=>t.name===L))||this.formats.getItemAt(0);this.conversions.add(new u({format:t}))}}))}destroy(){this._handles.removeAll(),this._cleanUpView(this.view),this.view=null}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=null==e?void 0: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.view.graphics.remove(this._locationGraphic),t){const e=t.clone();e.hasZ&&(e.z=void 0),this._locationGraphic=new o({geometry:e,symbol:this.get("locationSymbol")}),this.view.graphics.add(this._locationGraphic)}}convert(t,e){return g(e)?Promise.resolve().then((()=>t.convert(e))):Promise.reject(new s("coordinate-conversion:invalid-point","Invalid point cannot be converted.",{point:e}))}goToLocation(t){if(this.get("view.clippingArea")||this.get("view.map.basemap.baseLayers.length")>0){const e=this.get("view.clippingArea")||this.view.map.basemap.baseLayers.getItemAt(0).fullExtent;return e?e.contains(t)?this.callGoTo({target:t}):Promise.reject(new s("coordinate-conversion:go-to-failed","Point outside basemap extent.",{point:t})):this.callGoTo({target:t})}return this.callGoTo({target:t})}pause(){this.currentLocation=null,this._handles.remove(E.view),this.view&&(this.view.cursor=P.default,this.view.graphics.remove(this._locationGraphic))}previewConversion(t,e=this.currentLocation||j){return this._convertMany([t],e).then((()=>t.displayCoordinate))}resume(){"capture"===this.mode?this._startCaptureMode():this._startLiveMode()}reverseConvert(t,e){return e.reverseConvert(t)}async updateConversions(t,e){if(!e||!e.type||"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)}_cleanUpView(t){t&&(t.graphics.remove(this._locationGraphic),this._handles.remove(E.view),t.cursor=P.default)}_clearConversions(t){t.forEach((t=>{t.position={location:null,coordinate:null}}))}_convertMany(t,e){return Promise.all(t.map((t=>t.format.convert(e).then((e=>(t.position=e,t))).catch((()=>{t.position=null}))))).then((()=>t))}_handleConversionChange(t){t.added.forEach((t=>{const e=t.format;e.viewModel=this,this.currentLocation&&(this._set("waitingForConversions",!0),this.convert(e,this.currentLocation).then((e=>{t.position=e,this._set("waitingForConversions",!1)})))})),this._saveWidgetState()}_handleFormatChange(t){t.added.forEach((t=>{this._handles.add(t.watch("currentPattern",this._saveWidgetState),t.name),t.viewModel=this})),t.removed.forEach((t=>{t.viewModel=null,this._handles.remove(t.name)}))}_loadWidgetState(){try{const t=JSON.parse(this.storage.getItem(F));t&&this._setWidgetState(t)}catch(t){A.error(new s("coordinate-conversion:invalid-session-storage-json","Could not read from storage.",{error:t}))}}_startCaptureMode(){this._handles.remove(E.view),this.view&&(this.view.cursor=P.crosshair,this.currentLocation&&this.setLocation(this.currentLocation),this._handles.add(this.view.on("click",this._onClick),E.view))}_startLiveMode(){this._pointerCount=0,this._handles.remove(E.view),this.view&&(this.view.cursor=P.default,this.view.graphics.remove(this._locationGraphic),this._handles.add([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&&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&&e.normalize()}}_onPointerMove(t){const{pointerType:e}=t;if("mouse"===e||1===this._pointerCount){const e=this.view.toMap(t);this.currentLocation=e&&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===b()&&e.currentPattern&&(o.currentPattern=e.currentPattern),o&&e.index>=0&&this.conversions.add(new u({format:o}))}))}catch(e){A.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(F,JSON.stringify({formats:t,locale:b()}))}catch(e){A.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._handles.add(c(this,"view.spatialReference",(t=>{const i=t.isWebMercator||t.isWGS84,s=o.filter((t=>{const{name:e}=t;return!!S.includes(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)})),E.view)}};t([d()],G.prototype,"conversions",void 0),t([d({type:m})],G.prototype,"currentLocation",null),t([d()],G.prototype,"formats",void 0),t([d()],G.prototype,"messages",void 0),t([d()],G.prototype,"mode",null),t([d()],G.prototype,"filteredFormats",void 0),t([d({readOnly:!0})],G.prototype,"state",null),t([d()],G.prototype,"locationSymbol",void 0),t([d({readOnly:!0,dependsOn:["storageType"]})],G.prototype,"storage",null),t([d()],G.prototype,"storageEnabled",void 0),t([d()],G.prototype,"storageType",void 0),t([d({readOnly:!0})],G.prototype,"waitingForConversions",null),t([d()],G.prototype,"view",void 0),G=t([l("esri.widgets.CoordinateConversion.CoordinateConversionViewModel")],G);const W=G;export{W 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.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../../geometry.js";import t from"../../../geometry/Point.js";import e from"../../../geometry/SpatialReference.js";function n(t,e){const n=r(e);return[t[0].toFixed(n),t[1].toFixed(n)]}function r(t){return t>=500?6:t<500&&t>=50?7:t<50&&t>=5?8:9}function i(n,r){const i=n.indexOf(",")>=0?",":" ",[u,s,c]=n.split(i).map((t=>{const e=t.trim();return e?Number(e):null}));if(!o(u)||!o(s))return null;const f=new t({x:u,y:s,spatialReference:r||e.WGS84});return c&&(f.z=c,f.hasZ=!0),f}function o(t){return"number"==typeof t&&isFinite(t)}function u(t){return t&&o(t.x)&&o(t.y)}function s(t,e){if(t.spatialReference.isGeographic&&e){const[r,i]=n([t.x,t.y],e);return`${r}, ${i}`}return`${t.x.toFixed(3)}, ${t.y.toFixed(3)}`}function c(t){return"dd"===t||"dms"===t||"ddm"===t||"mgrs"===t||"usng"===t||"utm"===t}export{n as clipLonLat,i as fromXY,r as getDegreePrecision,c as isSupportedNotation,u as isValidPoint,s as pointToCoordinate};
5
+ import"../../../geometry.js";import t from"../../../geometry/Point.js";import e from"../../../geometry/SpatialReference.js";function n(t,e){const n=r(e);return[t[0].toFixed(n),t[1].toFixed(n)]}function r(t){return t>=500?6:t<500&&t>=50?7:t<50&&t>=5?8:9}function i(n,r){const i=n.includes(",")?",":" ",[u,s,c]=n.split(i).map((t=>{const e=t.trim();return e?Number(e):null}));if(!o(u)||!o(s))return null;const m=new t({x:u,y:s,spatialReference:r||e.WGS84});return c&&(m.z=c,m.hasZ=!0),m}function o(t){return"number"==typeof t&&isFinite(t)}function u(t){return t&&o(t.x)&&o(t.y)}function s(t,e){if(t.spatialReference.isGeographic&&e){const[r,i]=n([t.x,t.y],e);return`${r}, ${i}`}return`${t.x.toFixed(3)}, ${t.y.toFixed(3)}`}function c(t){return"dd"===t||"dms"===t||"ddm"===t||"mgrs"===t||"usng"===t||"utm"===t}export{n as clipLonLat,i as fromXY,r as getDegreePrecision,c as isSupportedNotation,u as isValidPoint,s as pointToCoordinate};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{getCustoms as t,parse as e,format as i}from"../../../core/number.js";import{getLocale as a}from"../../../intl/locale.js";import n from"./Format.js";const s=t().decimal,r={N:"north",S:"south",E:"east",W:"west"},o=`°${"‎"}`,d=new RegExp(`-?\\d+[\\.|\\${s}]?\\d*`),u=/^[\\0]+(?=\d)/;function c(t,e){const i="ar"===a(),n={ddm:`Y${o} A'${t.abbreviatedDirections.north}, X${o} B'${t.abbreviatedDirections.east}`,dms:`Y${o} A' B"${t.abbreviatedDirections.north}, X${o} C' D"${t.abbreviatedDirections.east}`,dd:`Y${o}${t.abbreviatedDirections.north}, X${o}${t.abbreviatedDirections.east}`,xy:`X${o}, Y${o}`,basemap:"X, Y"},s={ddm:`${t.abbreviatedDirections.north}${o}Y 'A ,${t.abbreviatedDirections.east}${o}X 'B`,dms:`${t.abbreviatedDirections.north}${o}Y 'A "B ,${t.abbreviatedDirections.east}${o}X 'C "D`,dd:`${t.abbreviatedDirections.north}${o}Y ,${t.abbreviatedDirections.east}${o}X`,xy:`X${o} ,Y${o}`,basemap:"X ,Y"};e.forEach((t=>{const{name:e}=t;if(n[e]){const a=t.defaultPattern===t.currentPattern,r=i?s[e]:n[e];t.defaultPattern=r,a&&(t.currentPattern=r)}}))}function p(t){const e=t.abbreviatedDirections.north,i=t.abbreviatedDirections.south,a=t.abbreviatedDirections.east,u=t.abbreviatedDirections.west,p={};p[e]="N",p[i]="S",p[a]="E",p[u]="W";const $=new RegExp(`N|S|${e}|${i}`,"i"),h=new RegExp(`E|W|${a}|${u}`,"i"),g=[new n({name:"basemap",coordinateSegments:[{alias:"X",description:"easting",searchPattern:d,substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"Y",description:"northing",searchPattern:d,substitution:{input:t=>l(t),output:t=>b(t)}}],defaultPattern:"X, Y",viewModel:null}),new n({name:"dd",coordinateSegments:[{alias:"Y",description:"degrees latitude",searchPattern:new RegExp(`\\d{1,2}[\\.|\\${s}]?\\d*(?=\\D*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.north,description:"north/south indicator",searchPattern:$,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}},{alias:"X",description:"degrees longitude",searchPattern:new RegExp(`\\d{1,3}[\\.|\\${s}]?\\d*(?=\\D*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.east,description:"east/west indicator",searchPattern:h,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}}],defaultPattern:`Y${o}${t.abbreviatedDirections.north}, X${o}${t.abbreviatedDirections.east}`,viewModel:null}),new n({name:"ddm",coordinateSegments:[{alias:"Y",description:"degrees latitude",searchPattern:new RegExp(`\\d{1,2}(?=.*?\\s+.*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"A",description:"minutes latitude",searchPattern:new RegExp(`\\d{1,2}[\\.\\${s}]?\\d*(?=.*?[N|S|${e}||${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.north,description:"north/south indicator",searchPattern:$,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}},{alias:"X",description:"degrees longitude",searchPattern:new RegExp(`\\d{1,3}(?=\\D*?\\s+.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"B",description:"minutes longitude",searchPattern:new RegExp(`\\d{1,2}[\\.|\\|${s}]?\\d*(?=.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.east,description:"east/west indicator",searchPattern:h,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}}],defaultPattern:`Y${o} A'${t.abbreviatedDirections.north}, X${o} B'${t.abbreviatedDirections.east}`,viewModel:null}),new n({name:"dms",coordinateSegments:[{alias:"Y",description:"degrees latitude",searchPattern:new RegExp(`\\d{1,2}(?=.*?\\s+.*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"A",description:"minutes latitude",searchPattern:new RegExp(`\\d{1,2}(?=.*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"B",description:"seconds latitude",searchPattern:new RegExp(`\\d{1,2}[\\.|\\${s}]?\\d*(?=.*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.north,description:"north/south indicator",searchPattern:$,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}},{alias:"X",description:"degrees longitude",searchPattern:new RegExp(`\\d{1,3}(?=.*?\\s+.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"C",description:"minutes longitude",searchPattern:new RegExp(`\\d{1,2}(?=.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"D",description:"seconds longitude",searchPattern:new RegExp(`\\d{1,2}[\\.|\\${s}]?\\d*(?=.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.east,description:"east/west indicator",searchPattern:h,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}}],defaultPattern:`Y${o} A' B"${t.abbreviatedDirections.north}, X${o} C' D"${t.abbreviatedDirections.east}`,viewModel:null}),new n({name:"xy",coordinateSegments:[{alias:"X",description:"longitude",searchPattern:d,substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"Y",description:"latitude",searchPattern:d,substitution:{input:t=>l(t),output:t=>b(t)}}],defaultPattern:`X${o}, Y${o}`,viewModel:null}),new n({name:"mgrs",coordinateSegments:[{alias:"Z",description:"grid zone",searchPattern:/\d{1,2}\w|[abyz]/i},{alias:"S",description:"grid square",searchPattern:/\w{2}/},{alias:"X",description:"easting",searchPattern:/^\d{5}(?=.?\d{5}$)|^\d{4}(?=.?\d{4}$)|^\d{3}(?=.?\d{3}$)|^\d{2}(?=.?\d{2}$)|^\d(?=.?\d$)/},{alias:"Y",description:"northing",searchPattern:/^\d{1,5}/}],defaultPattern:"Z S X Y",viewModel:null}),new n({name:"usng",coordinateSegments:[{alias:"Z",description:"grid zone",searchPattern:/\d{1,2}\w|[abyz]/i},{alias:"S",description:"grid square",searchPattern:/\w{2}/},{alias:"X",description:"easting",searchPattern:/^\d{5}(?=.?\d{5}$)|^\d{4}(?=.?\d{4}$)|^\d{3}(?=.?\d{3}$)|^\d{2}(?=.?\d{2}$)|^\d(?=.?\d$)/},{alias:"Y",description:"northing",searchPattern:/^\d{1,5}/}],defaultPattern:"Z S X Y",viewModel:null}),new n({name:"utm",coordinateSegments:[{alias:"Z",description:"zone number",searchPattern:/\d{1,2}|[abyz]/i},{alias:"B",description:"latitude band",searchPattern:/^\D/},{alias:"X",description:"easting",searchPattern:/\d{1,7}(?=\s*\d{7}$)/},{alias:"Y",description:"northing",searchPattern:/\d{1,7}/}],defaultPattern:"ZB X Y",viewModel:null})];return c(t,g),g}function b(t){const e=t.match(u),a=e?e[0]:"",n=t.indexOf(".")>=0?t.split(".")[1].length:0;return a+i(Number(t),{pattern:"###0.###",places:n,round:-1})}function l(t){return e(t)}export{p as generateDefaultFormats,c as setDefaultPatterns};
5
+ import{getCustoms as t,parse as e,format as i}from"../../../core/number.js";import{getLocale as a}from"../../../intl/locale.js";import n from"./Format.js";const s=t().decimal,r={N:"north",S:"south",E:"east",W:"west"},o=`°${"‎"}`,d=new RegExp(`-?\\d+[\\.|\\${s}]?\\d*`),u=/^[\\0]+(?=\d)/;function c(t,e){const i="ar"===a(),n={ddm:`Y${o} A'${t.abbreviatedDirections.north}, X${o} B'${t.abbreviatedDirections.east}`,dms:`Y${o} A' B"${t.abbreviatedDirections.north}, X${o} C' D"${t.abbreviatedDirections.east}`,dd:`Y${o}${t.abbreviatedDirections.north}, X${o}${t.abbreviatedDirections.east}`,xy:`X${o}, Y${o}`,basemap:"X, Y"},s={ddm:`${t.abbreviatedDirections.north}${o}Y 'A ,${t.abbreviatedDirections.east}${o}X 'B`,dms:`${t.abbreviatedDirections.north}${o}Y 'A "B ,${t.abbreviatedDirections.east}${o}X 'C "D`,dd:`${t.abbreviatedDirections.north}${o}Y ,${t.abbreviatedDirections.east}${o}X`,xy:`X${o} ,Y${o}`,basemap:"X ,Y"};e.forEach((t=>{const{name:e}=t;if(n[e]){const a=t.defaultPattern===t.currentPattern,r=i?s[e]:n[e];t.defaultPattern=r,a&&(t.currentPattern=r)}}))}function p(t){const e=t.abbreviatedDirections.north,i=t.abbreviatedDirections.south,a=t.abbreviatedDirections.east,u=t.abbreviatedDirections.west,p={};p[e]="N",p[i]="S",p[a]="E",p[u]="W";const $=new RegExp(`N|S|${e}|${i}`,"i"),h=new RegExp(`E|W|${a}|${u}`,"i"),g=[new n({name:"basemap",coordinateSegments:[{alias:"X",description:"easting",searchPattern:d,substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"Y",description:"northing",searchPattern:d,substitution:{input:t=>l(t),output:t=>b(t)}}],defaultPattern:"X, Y",viewModel:null}),new n({name:"dd",coordinateSegments:[{alias:"Y",description:"degrees latitude",searchPattern:new RegExp(`\\d{1,2}[\\.|\\${s}]?\\d*(?=\\D*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.north,description:"north/south indicator",searchPattern:$,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}},{alias:"X",description:"degrees longitude",searchPattern:new RegExp(`\\d{1,3}[\\.|\\${s}]?\\d*(?=\\D*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.east,description:"east/west indicator",searchPattern:h,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}}],defaultPattern:`Y${o}${t.abbreviatedDirections.north}, X${o}${t.abbreviatedDirections.east}`,viewModel:null}),new n({name:"ddm",coordinateSegments:[{alias:"Y",description:"degrees latitude",searchPattern:new RegExp(`\\d{1,2}(?=.*?\\s+.*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"A",description:"minutes latitude",searchPattern:new RegExp(`\\d{1,2}[\\.\\${s}]?\\d*(?=.*?[N|S|${e}||${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.north,description:"north/south indicator",searchPattern:$,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}},{alias:"X",description:"degrees longitude",searchPattern:new RegExp(`\\d{1,3}(?=\\D*?\\s+.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"B",description:"minutes longitude",searchPattern:new RegExp(`\\d{1,2}[\\.|\\|${s}]?\\d*(?=.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.east,description:"east/west indicator",searchPattern:h,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}}],defaultPattern:`Y${o} A'${t.abbreviatedDirections.north}, X${o} B'${t.abbreviatedDirections.east}`,viewModel:null}),new n({name:"dms",coordinateSegments:[{alias:"Y",description:"degrees latitude",searchPattern:new RegExp(`\\d{1,2}(?=.*?\\s+.*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"A",description:"minutes latitude",searchPattern:new RegExp(`\\d{1,2}(?=.*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"B",description:"seconds latitude",searchPattern:new RegExp(`\\d{1,2}[\\.|\\${s}]?\\d*(?=.*?[N|S|${e}|${i}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.north,description:"north/south indicator",searchPattern:$,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}},{alias:"X",description:"degrees longitude",searchPattern:new RegExp(`\\d{1,3}(?=.*?\\s+.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"C",description:"minutes longitude",searchPattern:new RegExp(`\\d{1,2}(?=.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"D",description:"seconds longitude",searchPattern:new RegExp(`\\d{1,2}[\\.|\\${s}]?\\d*(?=.*?[E|W|${a}|${u}])`,"i"),substitution:{input:t=>l(t),output:t=>b(t)}},{alias:t.abbreviatedDirections.east,description:"east/west indicator",searchPattern:h,substitution:{input:t=>p[t],output:e=>t.abbreviatedDirections[r[e]]}}],defaultPattern:`Y${o} A' B"${t.abbreviatedDirections.north}, X${o} C' D"${t.abbreviatedDirections.east}`,viewModel:null}),new n({name:"xy",coordinateSegments:[{alias:"X",description:"longitude",searchPattern:d,substitution:{input:t=>l(t),output:t=>b(t)}},{alias:"Y",description:"latitude",searchPattern:d,substitution:{input:t=>l(t),output:t=>b(t)}}],defaultPattern:`X${o}, Y${o}`,viewModel:null}),new n({name:"mgrs",coordinateSegments:[{alias:"Z",description:"grid zone",searchPattern:/\d{1,2}\w|[abyz]/i},{alias:"S",description:"grid square",searchPattern:/\w{2}/},{alias:"X",description:"easting",searchPattern:/^\d{5}(?=.?\d{5}$)|^\d{4}(?=.?\d{4}$)|^\d{3}(?=.?\d{3}$)|^\d{2}(?=.?\d{2}$)|^\d(?=.?\d$)/},{alias:"Y",description:"northing",searchPattern:/^\d{1,5}/}],defaultPattern:"Z S X Y",viewModel:null}),new n({name:"usng",coordinateSegments:[{alias:"Z",description:"grid zone",searchPattern:/\d{1,2}\w|[abyz]/i},{alias:"S",description:"grid square",searchPattern:/\w{2}/},{alias:"X",description:"easting",searchPattern:/^\d{5}(?=.?\d{5}$)|^\d{4}(?=.?\d{4}$)|^\d{3}(?=.?\d{3}$)|^\d{2}(?=.?\d{2}$)|^\d(?=.?\d$)/},{alias:"Y",description:"northing",searchPattern:/^\d{1,5}/}],defaultPattern:"Z S X Y",viewModel:null}),new n({name:"utm",coordinateSegments:[{alias:"Z",description:"zone number",searchPattern:/\d{1,2}|[abyz]/i},{alias:"B",description:"latitude band",searchPattern:/^\D/},{alias:"X",description:"easting",searchPattern:/\d{1,7}(?=\s*\d{7}$)/},{alias:"Y",description:"northing",searchPattern:/\d{1,7}/}],defaultPattern:"ZB X Y",viewModel:null})];return c(t,g),g}function b(t){const e=t.match(u),a=e?e[0]:"",n=t.includes(".")?t.split(".")[1].length:0;return a+i(Number(t),{pattern:"###0.###",places:n,round:-1})}function l(t){return e(t)}export{p as generateDefaultFormats,c as setDefaultPatterns};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../analysis/DirectLineMeasurementAnalysis.js";import{isNone as i,isSome as s,unwrap as n}from"../../core/maybe.js";import{measurementLengthUnits as r}from"../../core/unitUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import{defaultUnitPropertyMetadata as o}from"../../properties/defaultUnit.js";import u from"../../views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js";import{InteractiveAnalysisViewModel as c}from"../support/InteractiveAnalysisViewModel.js";let p=class extends c{constructor(t){super(t),this.analysis=null,this.supportedViewType="3d",this.unsupportedErrorMessage="DirectLineMeasurement3DViewModel is only supported in 3D views.",this._userUnit=null,this._userUnitOptions=null}get state(){return this.disabled||!this.ready?"disabled":i(this.tool)?"ready":this.tool.state}get measurement(){if(i(this.tool))return null;const t={mode:"euclidean",directDistance:{text:null,state:"unavailable"},horizontalDistance:{text:null,state:"unavailable"},verticalDistance:{text:null,state:"unavailable"}},e=this.tool.analysisView;if(i(e))return t;const n=e.actualVisualizedMeasurement,r=s(e.result)?"available":"unavailable";switch(n){case"euclidean":return{mode:"euclidean",directDistance:{text:e.directLabelText,state:r},horizontalDistance:{text:e.horizontalLabelText,state:r},verticalDistance:{text:e.verticalLabelText,state:r}};case"geodesic":return{mode:"geodesic",directDistance:{text:null,state:"unavailable"},horizontalDistance:{text:e.horizontalLabelText,state:r},verticalDistance:{text:e.verticalLabelText,state:r}};default:return t}}set unitOptions(t){this._userUnitOptions=t,this._set("unitOptions",this._filteredOrAllUnits(this._userUnitOptions))}get unitOptions(){return this._filteredOrAllUnits(this._userUnitOptions)}set unit(t){this._userUnit=t?this._findSelectableUnit(t,this._userUnit):null,this.analysis.unit=t}get unit(){return this._userUnit?(this._userUnit=this._findSelectableUnit(this._userUnit,this.defaultUnit),this._userUnit):this._findSelectableUnit(this.defaultUnit)}clear(){this.removeTool(),this.analysis.startPoint=null,this.analysis.endPoint=null}constructAnalysis(){return new e}constructTool(){return new u({view:n(this.view),analysis:this.analysis,analysisView:n(this.analysisView),visible:this.visible})}_findSelectableUnit(t,e){const i=this.unitOptions;return-1!==i.indexOf(t)?t:e?this._findSelectableUnit(e):i[0]}_filteredOrAllUnits(t){if(!t)return r.slice();const e=t.filter((t=>-1!==r.indexOf(t)));return 0===e.length?r.slice():e}};t([a({type:e})],p.prototype,"analysis",void 0),t([a({readOnly:!0})],p.prototype,"state",null),t([a({readOnly:!0})],p.prototype,"measurement",null),t([a()],p.prototype,"unitOptions",null),t([a()],p.prototype,"unit",null),t([a(o)],p.prototype,"defaultUnit",void 0),t([a()],p.prototype,"_userUnit",void 0),t([a()],p.prototype,"_userUnitOptions",void 0),p=t([l("esri.widgets.DirectLineMeasurement3D.DirectLineMeasurement3DViewModel")],p);const d=p;export{d as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../analysis/DirectLineMeasurementAnalysis.js";import{isNone as i,isSome as s,unwrap as n}from"../../core/maybe.js";import{measurementLengthUnits as r}from"../../core/unitUtils.js";import{property as l}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as a}from"../../core/accessorSupport/decorators/subclass.js";import{defaultUnitPropertyMetadata as o}from"../../properties/defaultUnit.js";import u from"../../views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js";import{InteractiveAnalysisViewModel as c}from"../support/InteractiveAnalysisViewModel.js";let p=class extends c{constructor(t){super(t),this.analysis=null,this.supportedViewType="3d",this.unsupportedErrorMessage="DirectLineMeasurement3DViewModel is only supported in 3D views.",this._userUnit=null,this._userUnitOptions=null}get state(){return this.disabled||!this.ready?"disabled":i(this.tool)?"ready":this.tool.state}get measurement(){if(i(this.tool))return null;const t={mode:"euclidean",directDistance:{text:null,state:"unavailable"},horizontalDistance:{text:null,state:"unavailable"},verticalDistance:{text:null,state:"unavailable"}},e=this.tool.analysisView;if(i(e))return t;const n=e.actualVisualizedMeasurement,r=s(e.result)?"available":"unavailable";switch(n){case"euclidean":return{mode:"euclidean",directDistance:{text:e.directLabelText,state:r},horizontalDistance:{text:e.horizontalLabelText,state:r},verticalDistance:{text:e.verticalLabelText,state:r}};case"geodesic":return{mode:"geodesic",directDistance:{text:null,state:"unavailable"},horizontalDistance:{text:e.horizontalLabelText,state:r},verticalDistance:{text:e.verticalLabelText,state:r}};default:return t}}set unitOptions(t){this._userUnitOptions=t,this._set("unitOptions",this._filteredOrAllUnits(this._userUnitOptions))}get unitOptions(){return this._filteredOrAllUnits(this._userUnitOptions)}set unit(t){this._userUnit=t?this._findSelectableUnit(t,this._userUnit):null,this.analysis.unit=t}get unit(){return this._userUnit?(this._userUnit=this._findSelectableUnit(this._userUnit,this.defaultUnit),this._userUnit):this._findSelectableUnit(this.defaultUnit)}clear(){this.removeTool(),this.analysis.startPoint=null,this.analysis.endPoint=null}constructAnalysis(){return new e}constructTool(){return new u({view:n(this.view),analysis:this.analysis,analysisView:n(this.analysisView),visible:this.visible})}_findSelectableUnit(t,e){const i=this.unitOptions;return i.includes(t)?t:e?this._findSelectableUnit(e):i[0]}_filteredOrAllUnits(t){if(!t)return r.slice();const e=t.filter((t=>r.includes(t)));return 0===e.length?r.slice():e}};t([l({type:e})],p.prototype,"analysis",void 0),t([l({readOnly:!0})],p.prototype,"state",null),t([l({readOnly:!0})],p.prototype,"measurement",null),t([l()],p.prototype,"unitOptions",null),t([l()],p.prototype,"unit",null),t([l(o)],p.prototype,"defaultUnit",void 0),t([l()],p.prototype,"_userUnit",void 0),t([l()],p.prototype,"_userUnitOptions",void 0),p=t([a("esri.widgets.DirectLineMeasurement3D.DirectLineMeasurement3DViewModel")],p);const d=p;export{d as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Color.js";import r from"../../config.js";import o from"../../Graphic.js";import"../../symbols.js";import i from"../../core/Collection.js";import s from"../../core/Error.js";import l from"../../core/Evented.js";import{HandleOwnerMixin as n}from"../../core/HandleOwner.js";import{isNone as a,isSome as u,unwrap as c}from"../../core/maybe.js";import{isAbortError as d}from"../../core/promiseUtils.js";import{on as p,watch as h,initial as m,syncAndInitial as v}from"../../core/reactiveUtils.js";import{aliasOf as y}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as g}from"../../core/accessorSupport/decorators/cast.js";import{property as f}from"../../core/accessorSupport/decorators/property.js";import{subclass as w}from"../../core/accessorSupport/decorators/subclass.js";import{getLocale as _}from"../../intl/locale.js";import S from"../../layers/GraphicsLayer.js";import b from"../../layers/RouteLayer.js";import C from"../../layers/support/DefaultSymbols.js";import{fetchServiceDescription as D}from"../../rest/networkService.js";import T from"../../rest/support/RouteParameters.js";import j from"../../rest/support/Stop.js";import{GoToMixin as L}from"../support/GoTo.js";import M from"../../symbols/SimpleLineSymbol.js";import A from"../../symbols/SimpleMarkerSymbol.js";import P from"../../symbols/PictureMarkerSymbol.js";function z(e){return Array.isArray(e)&&e.length>0&&e[0]instanceof o}function U(e){return i.isCollection(e)&&e.length>0&&e.getItemAt(0)instanceof o}function R(e){return"esri.rest.support.Stop"===(null==e?void 0:e.declaredClass)}const x=[105,220,255],O=new M({color:x,width:7,cap:"round",join:"round"}),I={first:new A({color:x,size:19,outline:{color:[51,51,51],width:3}}),middle:new A({color:[51,51,51],size:12,outline:{color:x,width:3}}),last:new P({width:23,height:23,url:`data:image/svg+xml;base64,${btoa('<svg width="30" height="30" viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero" fill="none"><path d="M15.15.3C6.9.3.3 6.9.3 15.15S6.9 29.7 15.15 29.7 29.7 23.1 29.7 15.15C29.7 6.9 23.25.3 15.15.3z" fill="#333"/><path d="M15 4.8C9.3 4.8 4.8 9.45 4.8 15c0 5.55 4.65 10.2 10.2 10.2 5.55 0 10.2-4.5 10.2-10.2 0-5.55-4.5-10.2-10.2-10.2z" fill="#69DCFF"/><path fill="#333" d="M10.5 10.5h9v9h-9z"/></g></svg>')}`}),unlocated:new P({height:18,width:18,url:`data:image/svg+xml;base64,${btoa('<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M10.1.2C4.6.2.2 4.6.2 10.1s4.4 9.7 9.9 9.7 9.7-4.4 9.7-9.7c0-5.5-4.3-9.9-9.7-9.9z" fill="#333" fill-rule="nonzero"/><path d="M10 2.7c-4.08 0-7.3 3.328-7.3 7.3s3.328 7.3 7.3 7.3 7.3-3.22 7.3-7.3c0-3.972-3.22-7.3-7.3-7.3z" fill="#69DCFF" fill-rule="nonzero"/><path d="M11.414 10l5.304-5.303-1.415-1.415L10 8.586 4.697 3.282 3.282 4.697 8.586 10l-5.304 5.303 1.415 1.415L10 11.414l5.303 5.304 1.415-1.415L11.414 10z" fill="#333"/></g></svg>')}`}),waypoint:new A({color:[255,255,255],size:10,outline:{color:[20,89,127],width:2.5}})};var F;!function(e){e[e.Active=0]="Active",e[e.Complete=1]="Complete",e[e.Failed=2]="Failed",e[e.Idle=3]="Idle",e[e.Suspended=4]="Suspended"}(F||(F={}));let k=class extends(n(L(l.EventedAccessor))){constructor(e){super(e),this._highlightLayer=new S({listMode:"hide"}),this._loadPromise=null,this._loadController=null,this._routeLayer=new b({listMode:"hide",defaultSymbols:new C({directionLines:O,directionPoints:new A({size:0}),routeInfo:new M({width:0}),firstStop:I.first,middleStop:I.middle,lastStop:I.last,invalidStop:I.unlocated,waypointStop:I.waypoint,breakStop:I.waypoint}),stops:[{},{}],url:this.routeServiceUrl}),this._routeController=null,this._serviceDescriptionStatus=F.Idle,this.apiKey=void 0,this.departureTime="now",this.lastRoute=null,this.routeParameters=new T({directionsLengthUnits:"kilometers",findBestSequence:!1,restrictUTurns:"at-dead-ends-and-intersections",returnZ:!0,startTime:null,startTimeIsUTC:!0,useHierarchy:!0,useTimeWindows:!1}),this.routeSymbol=O,this.serviceDescription=null,this.error=null,this.view=null}initialize(){this.handles.add([p((()=>this.stops),"change",(()=>{this.clearResults()})),h((()=>{var e;return null==(e=this.view)?void 0:e.map}),((e,t)=>{const r=[this._routeLayer,this._highlightLayer];t&&t.removeMany(r),e&&e.addMany(r)}),m),h((()=>this.routeServiceUrl),(e=>{if(this._routeLayer.url=e,u(this._loadController))return this._loadController.abort(),this._loadController=null,this._loadPromise=null,this._set("serviceDescription",null),void this.load();this._set("serviceDescription",null)}),v)])}destroy(){var e;null==(e=this.view)||e.map.removeMany([this._routeLayer,this._highlightLayer])}get _directionsLanguage(){var e;if(a(this.serviceDescription))return;const t=this.serviceDescription.directionsSupportedLanguages;if(!t)return;const r=(null!=(e=this.routeParameters.directionsLanguage)?e:_()).slice(0,2);return t.find((e=>e.toLowerCase().slice(0,2)===r))}get impedanceAttribute(){var e,t,r;const o=u(this.serviceDescription)?this.serviceDescription.impedance:null,i=null!=(e=null!=(t=null==(r=this.routeParameters.travelMode)?void 0:r.impedanceAttributeName)?t:this.routeParameters.impedanceAttribute)?e:o;return this.getCostAttribute(i)}set maxStops(e){const t=50,r=2;e=e<=r?r:e>t?t:e,this._set("maxStops",e)}get routeLayer(){return this._routeLayer}get routeServiceUrl(){return r.routeServiceUrl}set routeServiceUrl(e){null!=e?this._override("routeServiceUrl",e):this._clearOverride("routeServiceUrl")}get selectedTravelMode(){const{serviceDescription:e}=this;if(a(e))return null;const{defaultTravelMode:t,supportedTravelModes:r=[]}=e;return r.find((e=>e.id===t))||r[0]||null}set selectedTravelMode(e){void 0!==e?this._override("selectedTravelMode",e):this._clearOverride("selectedTravelMode")}get state(){if(u(this._routeController))return"routing";if(u(this.error))return"error";switch(this._serviceDescriptionStatus){case F.Suspended:return"unauthenticated";case F.Idle:return"disabled";case F.Active:return"initializing";case F.Failed:return"error";default:return"ready"}}castStops(e){return z(e)||U(e)?e.map((e=>j.fromPortalJSON(e.toJSON()))):e}set stopSymbols(e){const t={...I,...e};this._set("stopSymbols",t)}get timeAttribute(){var e,t,r;const o=null!=(e=null!=(t=null==(r=this.routeParameters.travelMode)?void 0:r.timeAttributeName)?t:this.routeParameters.directionsTimeAttribute)?e:u(this.serviceDescription)?this.serviceDescription.directionsTimeAttribute:null;return this.getCostAttribute(o)}get travelModes(){return u(this.serviceDescription)?this.serviceDescription.supportedTravelModes:[]}async load(){if(u(this._loadPromise))return this._loadPromise;this._loadPromise=this._load(),await this._loadPromise,this._loadPromise=null}highlightSegment(e){const{geometry:r,symbol:i}=e;if(a(this.view)||a(r)||a(i))return;this.clearHighlights();const s=i.clone();s.color=new t([0,0,0,.8]),s.width=Math.ceil(s.width/2);const l=new o({geometry:r,symbol:s});this._highlightLayer.add(l)}clearHighlights(){this._highlightLayer.removeAll()}centerAt(e){if(a(this.view))return;const t=R(e)?c(e.geometry):e;this.callGoTo({target:t})}clearResults(){this._set("lastRoute",null)}async getDirections(){const{state:e}=this;if("unauthenticated"===e||"initializing"===e||"disabled"===e||this._serviceDescriptionStatus===F.Failed)return Promise.reject(new s("directions-view-model:not-loaded","Cannot get directions until view model loads."));this._set("error",null),u(this._routeController)&&(this._routeController.abort(),this._routeController=null);const{apiKey:t,departureTime:r}=this,o="now"===r,i="now"===r?new Date:r;if(i&&!o){const e=60*i.getTimezoneOffset()*1e3;i.setTime(i.getTime()-e)}const l=u(this.view)?this.view.spatialReference:null,n=this.routeParameters.clone();n.set({startTime:i,startTimeIsUTC:o,directionsLanguage:this._directionsLanguage,apiKey:t,outSpatialReference:l}),u(this.selectedTravelMode)&&(n.travelMode=this.selectedTravelMode);if(this.stops.filter((e=>u(e.geometry))).length<2){const e=new s("directions-view-model:not-enough-stops","Not enough stops for routing");return this._set("error",e),Promise.reject(e)}this._routeController=new AbortController;const{signal:a}=this._routeController;let c=null;try{c=await this._routeLayer.solve(n,{signal:a}),this._routeLayer.update(c),this._set("lastRoute",c)}catch(p){if(!d(p)){const e=new s("directions-view-model:unable-to-route","Unable to route to these addresses",{error:p});throw this._set("error",e),this._set("lastRoute",null),e}}finally{this._routeController=null}return this.zoomToRoute(),c}getCostAttribute(e){const t=(u(this.serviceDescription)?this.serviceDescription.networkDataset.networkAttributes:[]).find((t=>t.name===e&&"esriNAUTCost"===t.usageType));return null!=t?t:null}reset(){this.clearHighlights(),this.clearResults(),this._routeLayer.removeAll(),this._routeLayer.stops.addMany([new j,new j])}zoomToRoute(){const{view:e,lastRoute:t}=this;if(a(e)||a(t))return;const{routeInfo:r}=t;if(a(r))return;const{geometry:o}=r;if(a(o))return;const{extent:i}=o,s=i.width>i.height,l=i.clone().expand(s?2:1);this.callGoTo({target:l})}async _load(){if(u(this.serviceDescription))return;u(this._loadController)&&(this._loadController.abort(),this._loadController=null),this._loadController=new AbortController;const{signal:e}=this._loadController;try{this._serviceDescriptionStatus=F.Active;const t=await D(this.routeServiceUrl,this.apiKey,{signal:e});this._set("serviceDescription",t),this._serviceDescriptionStatus=F.Complete}catch(t){if(d(t))return void(this._serviceDescriptionStatus=F.Idle);if("identity-manager:user-aborted"===t.name)return void(this._serviceDescriptionStatus=F.Suspended);const e=new s("directions-view-model:service-metadata-unavailable","Cannot load route service metadata",{error:t});throw this._serviceDescriptionStatus=F.Failed,this._set("error",e),e}finally{this._loadController=null}}};e([f()],k.prototype,"_directionsLanguage",null),e([f()],k.prototype,"_routeController",void 0),e([f()],k.prototype,"_serviceDescriptionStatus",void 0),e([f()],k.prototype,"apiKey",void 0),e([f()],k.prototype,"departureTime",void 0),e([f({readOnly:!0})],k.prototype,"impedanceAttribute",null),e([f({readOnly:!0})],k.prototype,"lastRoute",void 0),e([f({value:50})],k.prototype,"maxStops",null),e([f()],k.prototype,"routeLayer",null),e([f({type:T,nonNullable:!0})],k.prototype,"routeParameters",void 0),e([f()],k.prototype,"routeServiceUrl",null),e([f()],k.prototype,"routeSymbol",void 0),e([f()],k.prototype,"selectedTravelMode",null),e([f({readOnly:!0})],k.prototype,"serviceDescription",void 0),e([f({readOnly:!0})],k.prototype,"state",null),e([f()],k.prototype,"error",void 0),e([y("routeLayer.stops")],k.prototype,"stops",void 0),e([g("stops")],k.prototype,"castStops",null),e([f({value:I})],k.prototype,"stopSymbols",null),e([f({readOnly:!0})],k.prototype,"timeAttribute",null),e([f()],k.prototype,"travelModes",null),e([f()],k.prototype,"view",void 0),e([f()],k.prototype,"getDirections",null),e([f()],k.prototype,"zoomToRoute",null),k=e([w("esri.widgets.Directions.DirectionsViewModel")],k);const N=k;export{N as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Color.js";import r from"../../config.js";import o from"../../Graphic.js";import"../../symbols.js";import i from"../../core/Collection.js";import s from"../../core/Error.js";import l from"../../core/Evented.js";import{HandleOwnerMixin as n}from"../../core/HandleOwner.js";import{isNone as a,isSome as u,unwrap as c}from"../../core/maybe.js";import{isAbortError as d}from"../../core/promiseUtils.js";import{on as p,watch as h,initial as m,syncAndInitial as v}from"../../core/reactiveUtils.js";import{aliasOf as y}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as g}from"../../core/accessorSupport/decorators/cast.js";import{property as f}from"../../core/accessorSupport/decorators/property.js";import{subclass as w}from"../../core/accessorSupport/decorators/subclass.js";import{getLocale as _}from"../../intl/locale.js";import S from"../../layers/GraphicsLayer.js";import b from"../../layers/RouteLayer.js";import C from"../../layers/support/DefaultSymbols.js";import{fetchServiceDescription as D}from"../../rest/networkService.js";import T from"../../rest/support/RouteParameters.js";import L from"../../rest/support/Stop.js";import{GoToMixin as M}from"../support/GoTo.js";import j from"../../symbols/SimpleLineSymbol.js";import A from"../../symbols/SimpleMarkerSymbol.js";import z from"../../symbols/PictureMarkerSymbol.js";function P(e){return Array.isArray(e)&&e.length>0&&e[0]instanceof o}function U(e){return i.isCollection(e)&&e.length>0&&e.getItemAt(0)instanceof o}function R(e){return"esri.rest.support.Stop"===(null==e?void 0:e.declaredClass)}const x=[105,220,255],I=new j({color:x,width:7,cap:"round",join:"round"}),O={first:new A({color:x,size:19,outline:{color:[51,51,51],width:3}}),middle:new A({color:[51,51,51],size:12,outline:{color:x,width:3}}),last:new z({width:23,height:23,url:`data:image/svg+xml;base64,${btoa('<svg width="30" height="30" viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero" fill="none"><path d="M15.15.3C6.9.3.3 6.9.3 15.15S6.9 29.7 15.15 29.7 29.7 23.1 29.7 15.15C29.7 6.9 23.25.3 15.15.3z" fill="#333"/><path d="M15 4.8C9.3 4.8 4.8 9.45 4.8 15c0 5.55 4.65 10.2 10.2 10.2 5.55 0 10.2-4.5 10.2-10.2 0-5.55-4.5-10.2-10.2-10.2z" fill="#69DCFF"/><path fill="#333" d="M10.5 10.5h9v9h-9z"/></g></svg>')}`}),unlocated:new z({height:18,width:18,url:`data:image/svg+xml;base64,${btoa('<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M10.1.2C4.6.2.2 4.6.2 10.1s4.4 9.7 9.9 9.7 9.7-4.4 9.7-9.7c0-5.5-4.3-9.9-9.7-9.9z" fill="#333" fill-rule="nonzero"/><path d="M10 2.7c-4.08 0-7.3 3.328-7.3 7.3s3.328 7.3 7.3 7.3 7.3-3.22 7.3-7.3c0-3.972-3.22-7.3-7.3-7.3z" fill="#69DCFF" fill-rule="nonzero"/><path d="M11.414 10l5.304-5.303-1.415-1.415L10 8.586 4.697 3.282 3.282 4.697 8.586 10l-5.304 5.303 1.415 1.415L10 11.414l5.303 5.304 1.415-1.415L11.414 10z" fill="#333"/></g></svg>')}`}),waypoint:new A({color:[255,255,255],size:10,outline:{color:[20,89,127],width:2.5}})};var F;!function(e){e[e.Active=0]="Active",e[e.Complete=1]="Complete",e[e.Failed=2]="Failed",e[e.Idle=3]="Idle",e[e.Suspended=4]="Suspended"}(F||(F={}));let k=class extends(n(M(l.EventedAccessor))){constructor(e){super(e),this._highlightLayer=new S({listMode:"hide"}),this._loadPromise=null,this._loadController=null,this._routeLayer=new b({listMode:"hide",defaultSymbols:new C({directionLines:I,directionPoints:new A({size:0}),routeInfo:new j({width:0}),firstStop:O.first,middleStop:O.middle,lastStop:O.last,invalidStop:O.unlocated,waypointStop:O.waypoint,breakStop:O.waypoint}),stops:[{},{}],url:this.routeServiceUrl}),this._routeController=null,this._serviceDescriptionStatus=F.Idle,this.apiKey=void 0,this.departureTime="now",this.lastRoute=null,this.routeParameters=new T({directionsLengthUnits:"kilometers",findBestSequence:!1,restrictUTurns:"at-dead-ends-and-intersections",returnZ:!0,startTime:null,startTimeIsUTC:!0,useHierarchy:!0,useTimeWindows:!1}),this.routeSymbol=I,this.serviceDescription=null,this.error=null,this.stops=null,this.view=null}initialize(){this.handles.add([p((()=>this.stops),"change",(()=>{this.clearResults()})),h((()=>{var e;return null==(e=this.view)?void 0:e.map}),((e,t)=>{const r=[this._routeLayer,this._highlightLayer];t&&t.removeMany(r),e&&e.addMany(r)}),m),h((()=>this.routeServiceUrl),(e=>{if(this._routeLayer.url=e,u(this._loadController))return this._loadController.abort(),this._loadController=null,this._loadPromise=null,this._set("serviceDescription",null),void this.load();this._set("serviceDescription",null)}),v)])}destroy(){var e;null==(e=this.view)||e.map.removeMany([this._routeLayer,this._highlightLayer])}get _directionsLanguage(){var e;if(a(this.serviceDescription))return;const t=this.serviceDescription.directionsSupportedLanguages;if(!t)return;const r=(null!=(e=this.routeParameters.directionsLanguage)?e:_()).slice(0,2);return t.find((e=>e.toLowerCase().slice(0,2)===r))}get impedanceAttribute(){var e,t,r;const o=u(this.serviceDescription)?this.serviceDescription.impedance:null,i=null!=(e=null!=(t=null==(r=this.routeParameters.travelMode)?void 0:r.impedanceAttributeName)?t:this.routeParameters.impedanceAttribute)?e:o;return this.getCostAttribute(i)}set maxStops(e){const t=50,r=2;e=e<=r?r:e>t?t:e,this._set("maxStops",e)}get routeLayer(){return this._routeLayer}get routeServiceUrl(){return r.routeServiceUrl}set routeServiceUrl(e){null!=e?this._override("routeServiceUrl",e):this._clearOverride("routeServiceUrl")}get selectedTravelMode(){const{serviceDescription:e}=this;if(a(e))return null;const{defaultTravelMode:t,supportedTravelModes:r=[]}=e;return r.find((e=>e.id===t))||r[0]||null}set selectedTravelMode(e){void 0!==e?this._override("selectedTravelMode",e):this._clearOverride("selectedTravelMode")}get state(){if(u(this._routeController))return"routing";if(u(this.error))return"error";switch(this._serviceDescriptionStatus){case F.Suspended:return"unauthenticated";case F.Idle:return"disabled";case F.Active:return"initializing";case F.Failed:return"error";default:return"ready"}}castStops(e){return P(e)||U(e)?e.map((e=>L.fromGraphic(e))):e}set stopSymbols(e){const t={...O,...e};this._set("stopSymbols",t)}get timeAttribute(){var e,t,r;const o=null!=(e=null!=(t=null==(r=this.routeParameters.travelMode)?void 0:r.timeAttributeName)?t:this.routeParameters.directionsTimeAttribute)?e:u(this.serviceDescription)?this.serviceDescription.directionsTimeAttribute:null;return this.getCostAttribute(o)}get travelModes(){return u(this.serviceDescription)?this.serviceDescription.supportedTravelModes:[]}async load(){if(u(this._loadPromise))return this._loadPromise;this._loadPromise=this._load(),await this._loadPromise,this._loadPromise=null}highlightSegment(e){const{geometry:r,symbol:i}=e;if(a(this.view)||a(r)||a(i))return;this.clearHighlights();const s=i.clone();s.color=new t([0,0,0,.8]),s.width=Math.ceil(s.width/2);const l=new o({geometry:r,symbol:s});this._highlightLayer.add(l)}clearHighlights(){this._highlightLayer.removeAll()}centerAt(e){if(a(this.view))return;const t=R(e)?c(e.geometry):e;this.callGoTo({target:t})}clearResults(){this._set("lastRoute",null)}async getDirections(){const{state:e}=this;if("unauthenticated"===e||"initializing"===e||"disabled"===e||this._serviceDescriptionStatus===F.Failed)throw new s("directions-view-model:not-loaded","Cannot get directions until view model loads.");this._set("error",null),u(this._routeController)&&(this._routeController.abort(),this._routeController=null);const{apiKey:t,departureTime:r}=this,o="now"===r,i="now"===r?new Date:r;if(i&&!o){const e=60*i.getTimezoneOffset()*1e3;i.setTime(i.getTime()-e)}const l=u(this.view)?this.view.spatialReference:null,n=this.routeParameters.clone();n.set({startTime:i,startTimeIsUTC:o,directionsLanguage:this._directionsLanguage,apiKey:t,outSpatialReference:l}),u(this.selectedTravelMode)&&(n.travelMode=this.selectedTravelMode);if(this.stops.filter((e=>u(e.geometry))).length<2){const e=new s("directions-view-model:not-enough-stops","Not enough stops for routing");throw this._set("error",e),e}this._routeController=new AbortController;const{signal:a}=this._routeController;let c=null;try{c=await this._routeLayer.solve(n,{signal:a}),this._routeLayer.update(c),this._set("lastRoute",c)}catch(p){if(!d(p)){const e=new s("directions-view-model:unable-to-route","Unable to route to these addresses",{error:p});throw this._set("error",e),this._set("lastRoute",null),e}}finally{this._routeController=null}return this.zoomToRoute(),c}getCostAttribute(e){const t=(u(this.serviceDescription)?this.serviceDescription.networkDataset.networkAttributes:[]).find((t=>t.name===e&&"esriNAUTCost"===t.usageType));return null!=t?t:null}reset(){this.clearHighlights(),this.clearResults(),this._routeLayer.removeAll(),this._routeLayer.stops.addMany([new L,new L])}zoomToRoute(){const{view:e,lastRoute:t}=this;if(a(e)||a(t))return;const{routeInfo:r}=t;if(a(r))return;const{geometry:o}=r;if(a(o))return;const{extent:i}=o,s=i.width>i.height,l=i.clone().expand(s?2:1);this.callGoTo({target:l})}async _load(){if(u(this.serviceDescription))return;u(this._loadController)&&(this._loadController.abort(),this._loadController=null),this._loadController=new AbortController;const{signal:e}=this._loadController;try{this._serviceDescriptionStatus=F.Active;const t=await D(this.routeServiceUrl,this.apiKey,{signal:e});this._set("serviceDescription",t),this._serviceDescriptionStatus=F.Complete}catch(t){if(d(t))return void(this._serviceDescriptionStatus=F.Idle);if("identity-manager:user-aborted"===t.name)return void(this._serviceDescriptionStatus=F.Suspended);const e=new s("directions-view-model:service-metadata-unavailable","Cannot load route service metadata",{error:t});throw this._serviceDescriptionStatus=F.Failed,this._set("error",e),e}finally{this._loadController=null}}};e([f()],k.prototype,"_directionsLanguage",null),e([f()],k.prototype,"_routeController",void 0),e([f()],k.prototype,"_serviceDescriptionStatus",void 0),e([f()],k.prototype,"apiKey",void 0),e([f()],k.prototype,"departureTime",void 0),e([f({readOnly:!0})],k.prototype,"impedanceAttribute",null),e([f({readOnly:!0})],k.prototype,"lastRoute",void 0),e([f({value:50})],k.prototype,"maxStops",null),e([f()],k.prototype,"routeLayer",null),e([f({type:T,nonNullable:!0})],k.prototype,"routeParameters",void 0),e([f()],k.prototype,"routeServiceUrl",null),e([f()],k.prototype,"routeSymbol",void 0),e([f()],k.prototype,"selectedTravelMode",null),e([f({readOnly:!0})],k.prototype,"serviceDescription",void 0),e([f({readOnly:!0})],k.prototype,"state",null),e([f()],k.prototype,"error",void 0),e([y("routeLayer.stops")],k.prototype,"stops",void 0),e([g("stops")],k.prototype,"castStops",null),e([f({value:O})],k.prototype,"stopSymbols",null),e([f({readOnly:!0})],k.prototype,"timeAttribute",null),e([f()],k.prototype,"travelModes",null),e([f()],k.prototype,"view",void 0),e([f()],k.prototype,"getDirections",null),e([f()],k.prototype,"zoomToRoute",null),k=e([w("esri.widgets.Directions.DirectionsViewModel")],k);const G=k;export{G as default};