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

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 (415) hide show
  1. package/Graphic.js +1 -1
  2. package/PopupTemplate.js +1 -1
  3. package/TimeExtent.js +1 -1
  4. package/arcade/ArcadeDate.js +1 -1
  5. package/arcade/Feature.js +1 -1
  6. package/arcade/featureSetUtils.js +1 -1
  7. package/arcade/featureset/actions/Adapted.js +1 -1
  8. package/arcade/featureset/actions/GroupBy.js +1 -1
  9. package/arcade/featureset/support/FeatureSet.js +1 -1
  10. package/arcade/featureset/support/FeatureSetIterator.js +1 -1
  11. package/arcade/featureset/support/StatsField.js +1 -1
  12. package/arcade/featureset/support/sqlUtils.js +1 -1
  13. package/arcade/functions/convertdirection.js +1 -1
  14. package/arcade/functions/date.js +1 -1
  15. package/arcade/functions/featuresetbase.js +1 -1
  16. package/arcade/functions/featuresetstats.js +1 -1
  17. package/arcade/treeAnalysis.js +1 -1
  18. package/arcade.js +1 -1
  19. package/assets/esri/core/workers/RemoteClient.js +1 -1
  20. package/assets/esri/core/workers/chunks/02156fd04279f4d0fd3f.js +1 -0
  21. package/assets/esri/core/workers/chunks/07f6175b52366b2c28bd.js +1 -0
  22. package/assets/esri/core/workers/chunks/098073c3b2849f56dad8.js +1 -0
  23. package/assets/esri/core/workers/chunks/1186ba1947bd0c32f148.js +1 -0
  24. package/assets/esri/core/workers/chunks/186445b9fbedd261f684.js +1 -0
  25. package/assets/esri/core/workers/chunks/{580039dd491854ca325c.js → 21fc02f0d5716c4a7acd.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{dff1c3c38dda2bd1a9d6.js → 246a954347fe9318190e.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{c9dfb145f0c1d93e0fbd.js → 250bb6ae6f1992b5b4f9.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{314c307e30f308a40a28.js → 25b09e9c0511c8e1cf8a.js} +1 -1
  29. package/assets/esri/core/workers/chunks/2a0b3b52ecd787a613bc.js +1 -0
  30. package/assets/esri/core/workers/chunks/2bc9b55e655968229ef4.js +1 -0
  31. package/assets/esri/core/workers/chunks/2f0924e7aa89e689da4a.js +1 -0
  32. package/assets/esri/core/workers/chunks/3f218d65ec451b2a1027.js +1 -0
  33. package/assets/esri/core/workers/chunks/425b5733bb88e6efe242.js +1 -0
  34. package/assets/esri/core/workers/chunks/45d6b942cdccca2ce44a.js +1 -0
  35. package/assets/esri/core/workers/chunks/4bf1a7e82a68ccee0ee1.js +1 -0
  36. package/assets/esri/core/workers/chunks/4c110c7f4f940ec58010.js +1 -0
  37. package/assets/esri/core/workers/chunks/{bde89b2684b6185992ef.js → 4ed77097e69fa3096ce4.js} +1 -1
  38. package/assets/esri/core/workers/chunks/4fe5bac782a742d5b1c0.js +1 -0
  39. package/assets/esri/core/workers/chunks/{1cbaba30f55f00f7498b.js → 51324d042f469f3b8914.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{3f4e9b1663ec521bfe00.js → 542ce10e1872399790b4.js} +1 -1
  41. package/assets/esri/core/workers/chunks/54d2b7e2ac4ba883bee8.js +1 -0
  42. package/assets/esri/core/workers/chunks/54ecb6cae310818d1aa2.js +1 -0
  43. package/assets/esri/core/workers/chunks/57c932e289d89d97da4b.js +1 -0
  44. package/assets/esri/core/workers/chunks/{6403de6fc067cf8f7436.js → 592c1fb531f2be928e8a.js} +1 -1
  45. package/assets/esri/core/workers/chunks/59a807220d6f0dd18776.js +1 -0
  46. package/assets/esri/core/workers/chunks/59dff10d7ad2b1bf469e.js +1 -0
  47. package/assets/esri/core/workers/chunks/609a475ab395f2ce63e2.js +1 -0
  48. package/assets/esri/core/workers/chunks/612c485c5aad1548d708.js +1 -0
  49. package/assets/esri/core/workers/chunks/{2bb69d76a13564e8e455.js → 645ba2d5c10184632d23.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{332689bf60d246485993.js → 65186e168dd112ac6221.js} +1 -1
  51. package/assets/esri/core/workers/chunks/6b9248fb2d6aadbce7bb.js +1 -0
  52. package/assets/esri/core/workers/chunks/709465832d306e02df52.js +1 -0
  53. package/assets/esri/core/workers/chunks/72c5bd6f7b8541b8d69e.js +1 -0
  54. package/assets/esri/core/workers/chunks/{bbc0dcd316c5598bc9ad.js → 74368a5213def6c200a2.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{94188fe381239d48a975.js → 76483c9a8848f3106126.js} +1 -1
  56. package/assets/esri/core/workers/chunks/7aa58c96798447ce5907.js +1 -0
  57. package/assets/esri/core/workers/chunks/7d078b8b9997b5300c0a.js +1 -0
  58. package/assets/esri/core/workers/chunks/7fe641cf1467496e670a.js +1 -0
  59. package/assets/esri/core/workers/chunks/{df8f62beb36fb9d2ac81.js → 810c8d6ff19976fd1366.js} +1 -1
  60. package/assets/esri/core/workers/chunks/8458ed96f3e72814cef2.js +1 -0
  61. package/assets/esri/core/workers/chunks/{243a4eed107d363dfad8.js → 887652bbdb3b71d0a089.js} +1 -1
  62. package/assets/esri/core/workers/chunks/896bfda379cf620b63ec.js +1 -0
  63. package/assets/esri/core/workers/chunks/91c9f0d59eaed7a735ce.js +1 -0
  64. package/assets/esri/core/workers/chunks/{1f7e041140088f8ac489.js → 97073a60f0ea2a397165.js} +1 -1
  65. package/assets/esri/core/workers/chunks/97658ac749664a07c92d.js +1 -0
  66. package/assets/esri/core/workers/chunks/{1da74a306aa5b4eacaae.js → 9866bbaeaf885c2dcca9.js} +1 -1
  67. package/assets/esri/core/workers/chunks/a39ae87298ac674f129d.js +1 -0
  68. package/assets/esri/core/workers/chunks/a7b3048c19348540e004.js +1 -0
  69. package/assets/esri/core/workers/chunks/a8ca4b116909e47722f9.js +1 -0
  70. package/assets/esri/core/workers/chunks/{101f776316a85b708927.js → a99070ec4c06c435b744.js} +1 -1
  71. package/assets/esri/core/workers/chunks/ab145d13932d87dd7bf9.js +1 -0
  72. package/assets/esri/core/workers/chunks/{77c15b1c2729c780f75a.js → aeeeb386134b341d7ad2.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{3ca759f72d3bb29e9ea9.js → af54b233f6d6ad70b4a3.js} +2 -2
  74. package/assets/esri/core/workers/chunks/b9146daae8457224fd08.js +1 -0
  75. package/assets/esri/core/workers/chunks/bcdd2e8841abcb4df6da.js +1 -0
  76. package/assets/esri/core/workers/chunks/be05cc0cdabd5e051045.js +1 -0
  77. package/assets/esri/core/workers/chunks/c5f5f37bef11c6fbdc40.js +1 -0
  78. package/assets/esri/core/workers/chunks/d414dba3179bcf75bc6b.js +1 -0
  79. package/assets/esri/core/workers/chunks/{b449d6bd5851187d419f.js → d6e5408f9fa6b4bcd118.js} +1 -1
  80. package/assets/esri/core/workers/chunks/d9fb500cbd0f04d219a3.js +1 -0
  81. package/assets/esri/core/workers/chunks/e0dd6789fb797e9b7206.js +1 -0
  82. package/assets/esri/core/workers/chunks/{6f271249e042086d5a16.js → e4e49deae8da74f629db.js} +1 -1
  83. package/assets/esri/core/workers/chunks/e5dcff7a4fa84ba09670.js +1 -0
  84. package/assets/esri/core/workers/chunks/{f508ccfde6425dabe9ac.js → ee0bf611d191103a7046.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{ed1fbc1bc8d50453e2f5.js → f793cd41fcd022baeea2.js} +1 -1
  86. package/assets/esri/core/workers/chunks/fad6a7bb82a0a2df726f.js +1 -0
  87. package/assets/esri/themes/base/widgets/_FeatureForm.scss +2 -84
  88. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +2 -0
  89. package/assets/esri/themes/dark/main.css +1 -1
  90. package/assets/esri/themes/light/main.css +1 -1
  91. package/assets/esri/themes/light/view.css +1 -1
  92. package/chunks/arcade.js +1 -1
  93. package/config.js +1 -1
  94. package/core/Accessor.js +1 -1
  95. package/core/accessorSupport/diffUtils.js +1 -1
  96. package/core/has.js +1 -1
  97. package/core/number.js +1 -1
  98. package/core/reactiveUtils.js +1 -1
  99. package/core/sql/DateOnly.js +1 -1
  100. package/core/sql/WhereClause.js +1 -1
  101. package/core/sql.js +1 -1
  102. package/core/timeUtils.js +1 -1
  103. package/identity/IdentityForm.js +1 -1
  104. package/identity/IdentityModal.js +1 -1
  105. package/interfaces.d.ts +48 -203
  106. package/layers/LinkChartLayer.js +1 -1
  107. package/layers/OrientedImageryLayer.js +1 -1
  108. package/layers/SceneLayer.js +1 -1
  109. package/layers/graphics/applyEditsUtils.js +5 -0
  110. package/layers/graphics/editingSupport.js +1 -1
  111. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  112. package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
  113. package/layers/mixins/ArcGISImageService.js +1 -1
  114. package/layers/mixins/EditBusLayer.js +1 -1
  115. package/layers/orientedImagery/core/CameraOrientationLTP.js +1 -1
  116. package/layers/orientedImagery/core/ElevationSourceDefinitions.js +5 -0
  117. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  118. package/layers/orientedImagery/core/cameraOrientationFactory.js +1 -1
  119. package/layers/orientedImagery/core/utils.js +5 -0
  120. package/layers/orientedImagery/transformations/groundToImageUtils.js +1 -1
  121. package/layers/support/fieldProperties.js +1 -1
  122. package/layers/support/fieldUtils.js +1 -1
  123. package/layers/support/imageryRendererUtils.js +1 -1
  124. package/layers/support/kmlUtils.js +1 -1
  125. package/layers/support/rasterFunctions/BaseRasterFunction.js +1 -1
  126. package/layers/support/rasterFunctions/creators/createDataManagementFunctions.js +1 -1
  127. package/networks/Network.js +1 -1
  128. package/package.json +1 -1
  129. package/request.js +1 -1
  130. package/rest/featureService/FeatureService.js +1 -1
  131. package/rest/support/DirectionsFeatureSet.js +1 -1
  132. package/smartMapping/renderers/pieChart.js +1 -1
  133. package/smartMapping/renderers/relationship.js +1 -1
  134. package/smartMapping/renderers/support/utils.js +1 -1
  135. package/smartMapping/statistics/support/ageUtils.js +1 -1
  136. package/smartMapping/support/adapters/support/utils.js +1 -1
  137. package/smartMapping/support/utils.js +1 -1
  138. package/support/apiKeyUtils.js +1 -1
  139. package/support/arcadeUtils.js +1 -1
  140. package/support/revision.js +1 -1
  141. package/symbols/cim/cimAnalyzer.js +1 -1
  142. package/symbols/support/svgUtils.js +1 -1
  143. package/time/TimeReference.js +1 -1
  144. package/time/timeReferenceUtils.js +1 -1
  145. package/versionManagement/VersionManagementService.js +1 -1
  146. package/versionManagement/support/EditMomentStack.js +5 -0
  147. package/versionManagement/support/versionManagementUtils.js +1 -1
  148. package/views/2d/engine/Container.js +1 -1
  149. package/views/2d/engine/DisplayObject.js +1 -1
  150. package/views/2d/engine/ManagedCanvas.js +5 -0
  151. package/views/2d/engine/Stage.js +1 -1
  152. package/views/2d/engine/webgl/GroupContainer.js +1 -1
  153. package/views/2d/engine/webgl/Painter.js +1 -1
  154. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  155. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  156. package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
  157. package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
  158. package/views/2d/engine/webgl/effects/HittestEffectVTL.js +1 -1
  159. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  160. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  161. package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
  162. package/views/2d/layers/MediaLayerView2D.js +1 -1
  163. package/views/2d/layers/TileLayerView2D.js +1 -1
  164. package/views/2d/layers/WMTSLayerView2D.js +1 -1
  165. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  166. package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
  167. package/views/2d/layers/graphics/BaseGraphicContainer.js +1 -1
  168. package/views/2d/layers/graphics/GraphicContainer.js +1 -1
  169. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  170. package/views/2d/layers/graphics/HighlightGraphicContainer.js +1 -1
  171. package/views/2d/layers/imagery/VectorFieldView2D.js +1 -1
  172. package/views/2d/layers/support/DisplayGL.js +1 -1
  173. package/views/2d/webglDeps.js +1 -1
  174. package/views/3d/glTF/loader.js +1 -1
  175. package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
  176. package/views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js +1 -1
  177. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  178. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  179. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  180. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  181. package/views/3d/layers/SceneLayerView3D.js +1 -1
  182. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  183. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  184. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  185. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  186. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  187. package/views/3d/layers/graphics/Labeler.js +1 -1
  188. package/views/3d/layers/graphics/graphicUtils.js +1 -1
  189. package/views/3d/layers/i3s/featureEditing.js +1 -1
  190. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  191. package/views/3d/state/ViewStateManager.js +1 -1
  192. package/views/3d/support/buffer/glUtil.js +1 -1
  193. package/views/3d/support/engineContent/line.js +1 -1
  194. package/views/3d/support/viewpointUtils.js +1 -1
  195. package/views/3d/webgl-engine/Stage.js +1 -1
  196. package/views/3d/webgl-engine/effects/RenderPluginInput.js +1 -1
  197. package/views/3d/webgl-engine/effects/blit/Blit.js +5 -0
  198. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  199. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  200. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  201. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  202. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  203. package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
  204. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  205. package/views/3d/webgl-engine/lib/RenderSlot.js +1 -1
  206. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  207. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  208. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  209. package/views/3d/webgl-engine/lib/TextTextureFactory.js +1 -1
  210. package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
  211. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  212. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  213. package/views/3d/webgl-engine/lib/edgeRendering/edgeProcessing.js +1 -1
  214. package/views/View.js +1 -1
  215. package/views/interactive/tooltip/TooltipContentWithHelpMessage.js +1 -1
  216. package/views/interactive/tooltip/TooltipEditableField.js +1 -1
  217. package/views/interactive/tooltip/constraintUtils.js +1 -1
  218. package/views/interactive/tooltip/content/Fields.js +1 -1
  219. package/views/interactive/tooltip/content/TooltipContentDrawCircle.js +1 -1
  220. package/views/interactive/tooltip/content/TooltipContentDrawMesh.js +1 -1
  221. package/views/interactive/tooltip/content/TooltipContentDrawPoint.js +1 -1
  222. package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
  223. package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
  224. package/views/interactive/tooltip/content/TooltipContentDrawRectangle.js +1 -1
  225. package/views/interactive/tooltip/content/TooltipContentExtentRotate.js +1 -1
  226. package/views/interactive/tooltip/content/TooltipContentExtentScale.js +1 -1
  227. package/views/interactive/tooltip/content/TooltipContentReshapeEdgeOffset.js +1 -1
  228. package/views/interactive/tooltip/content/TooltipContentTransformAbsolute.js +1 -1
  229. package/views/interactive/tooltip/content/TooltipContentTransformRotate.js +1 -1
  230. package/views/interactive/tooltip/content/TooltipContentTransformScale.js +1 -1
  231. package/views/interactive/tooltip/content/TooltipContentTranslateGraphic.js +1 -1
  232. package/views/interactive/tooltip/content/TooltipContentTranslateGraphicXY.js +1 -1
  233. package/views/interactive/tooltip/content/TooltipContentTranslateGraphicZ.js +1 -1
  234. package/views/interactive/tooltip/content/TooltipContentTranslateVertex.js +1 -1
  235. package/views/interactive/tooltip/content/TooltipContentTranslateVertexXY.js +1 -1
  236. package/views/interactive/tooltip/content/TooltipContentTranslateVertexZ.js +1 -1
  237. package/views/support/angularMeasurementUtils.js +1 -1
  238. package/views/ui/UI.js +1 -1
  239. package/views/webgl/ShaderTranspiler.js +1 -1
  240. package/views/webgl/Texture.js +1 -1
  241. package/views/webgl/contextUtils.js +1 -1
  242. package/webmap/InitialViewProperties.js +1 -1
  243. package/widgets/AreaMeasurement2D.js +1 -1
  244. package/widgets/AreaMeasurement3D.js +1 -1
  245. package/widgets/Attachments/AttachmentsViewModel.js +1 -1
  246. package/widgets/Attachments.js +1 -1
  247. package/widgets/Attribution.js +1 -1
  248. package/widgets/BasemapGallery.js +1 -1
  249. package/widgets/BasemapLayerList.js +1 -1
  250. package/widgets/BasemapToggle.js +1 -1
  251. package/widgets/Bookmarks.js +1 -1
  252. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
  253. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
  254. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  255. package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
  256. package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
  257. package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
  258. package/widgets/BuildingExplorer.js +1 -1
  259. package/widgets/Compass.js +1 -1
  260. package/widgets/CoordinateConversion.js +1 -1
  261. package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
  262. package/widgets/Daylight.js +1 -1
  263. package/widgets/DirectLineMeasurement3D.js +1 -1
  264. package/widgets/DirectionalPad.js +1 -1
  265. package/widgets/Directions/components/SaveLayer.js +1 -1
  266. package/widgets/Directions.js +1 -1
  267. package/widgets/DistanceMeasurement2D.js +1 -1
  268. package/widgets/Editor/components/FooterActions.js +1 -1
  269. package/widgets/Editor/components/Notices.js +1 -1
  270. package/widgets/Editor/components/PanelContent.js +1 -1
  271. package/widgets/Editor/components/PanelToolbar.js +1 -1
  272. package/widgets/Editor/components/Prompt.js +1 -1
  273. package/widgets/Editor/components/Settings.js +1 -1
  274. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  275. package/widgets/Editor/components/UploadDetails.js +1 -1
  276. package/widgets/Editor.js +1 -1
  277. package/widgets/ElevationProfile/components/LegendItem.js +1 -1
  278. package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
  279. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  280. package/widgets/ElevationProfile.js +1 -1
  281. package/widgets/Expand.js +1 -1
  282. package/widgets/Feature/FeatureContent.js +1 -1
  283. package/widgets/Feature/FeatureExpression.js +1 -1
  284. package/widgets/Feature/FeatureFields.js +1 -1
  285. package/widgets/Feature/FeatureMedia.js +1 -1
  286. package/widgets/Feature/FeatureRelationship.js +1 -1
  287. package/widgets/Feature/FeatureViewModel.js +1 -1
  288. package/widgets/Feature/support/FeatureContentMixin.js +1 -1
  289. package/widgets/Feature/support/FeatureElementInfo.js +1 -1
  290. package/widgets/Feature.js +1 -1
  291. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  292. package/widgets/FeatureForm/GroupInput.js +1 -1
  293. package/widgets/FeatureForm/css.js +1 -1
  294. package/widgets/FeatureForm.js +1 -1
  295. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  296. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  297. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  298. package/widgets/FeatureTable.js +1 -1
  299. package/widgets/FeatureTemplates/ItemList.js +1 -1
  300. package/widgets/FeatureTemplates.js +1 -1
  301. package/widgets/Features/FeaturesRelatedRecords.js +1 -1
  302. package/widgets/Features.js +1 -1
  303. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  304. package/widgets/FloorFilter.js +1 -1
  305. package/widgets/Fullscreen.js +1 -1
  306. package/widgets/Histogram.js +1 -1
  307. package/widgets/HistogramRangeSlider.js +1 -1
  308. package/widgets/Home.js +1 -1
  309. package/widgets/LayerList/ListItemPanel.js +1 -1
  310. package/widgets/LayerList.js +1 -1
  311. package/widgets/Legend/LegendViewModel.js +1 -1
  312. package/widgets/Legend/styles/Card.js +1 -1
  313. package/widgets/Legend/styles/Classic.js +1 -1
  314. package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
  315. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  316. package/widgets/LineOfSight.js +1 -1
  317. package/widgets/Locate.js +1 -1
  318. package/widgets/NavigationToggle.js +1 -1
  319. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  320. package/widgets/OrientedImageryViewer.js +1 -1
  321. package/widgets/Popup.js +1 -1
  322. package/widgets/Print.js +1 -1
  323. package/widgets/ScaleRangeSlider/scalePreviewUtils.js +1 -1
  324. package/widgets/ScaleRangeSlider.js +1 -1
  325. package/widgets/Search/SearchResultRenderer.js +1 -1
  326. package/widgets/Search.js +1 -1
  327. package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
  328. package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
  329. package/widgets/ShadowCast/components/ShadowTooltipContent.js +1 -1
  330. package/widgets/ShadowCast/components/ThresholdConfigurator.js +1 -1
  331. package/widgets/ShadowCast.js +1 -1
  332. package/widgets/Sketch.js +1 -1
  333. package/widgets/Slice.js +1 -1
  334. package/widgets/Slider.js +1 -1
  335. package/widgets/Swipe.js +1 -1
  336. package/widgets/TableList.js +1 -1
  337. package/widgets/TimeSlider.js +1 -1
  338. package/widgets/Track.js +1 -1
  339. package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js +1 -1
  340. package/widgets/UtilityNetworkAssociations.js +1 -1
  341. package/widgets/UtilityNetworkTrace.js +1 -1
  342. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  343. package/widgets/ValuePicker.js +1 -1
  344. package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
  345. package/widgets/VideoPlayer/components/SettingsButton.js +1 -1
  346. package/widgets/VideoPlayer.js +1 -1
  347. package/widgets/Weather/LabeledSlider.js +1 -1
  348. package/widgets/Weather.js +1 -1
  349. package/widgets/Zoom/IconButton.js +1 -1
  350. package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
  351. package/widgets/smartMapping/ClassedColorSlider.js +1 -1
  352. package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
  353. package/widgets/smartMapping/ColorSizeSlider.js +1 -1
  354. package/widgets/smartMapping/ColorSlider.js +1 -1
  355. package/widgets/smartMapping/HeatmapSlider.js +1 -1
  356. package/widgets/smartMapping/OpacitySlider.js +1 -1
  357. package/widgets/smartMapping/SizeSlider.js +1 -1
  358. package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
  359. package/widgets/support/ColorPicker.js +1 -1
  360. package/widgets/support/DatePicker.js +1 -1
  361. package/widgets/support/Heading.js +1 -1
  362. package/widgets/support/LabeledSwitch.js +1 -1
  363. package/widgets/support/MeasurementWidgetContent.js +1 -1
  364. package/widgets/support/Popover.js +1 -1
  365. package/widgets/support/SelectionToolbar.js +1 -1
  366. package/widgets/support/SketchTooltipControls.js +1 -1
  367. package/widgets/support/SnappingControls.js +1 -1
  368. package/widgets/support/TimePicker.js +1 -1
  369. package/widgets/support/TimezonePicker.js +1 -1
  370. package/widgets/support/UnitSelect.js +1 -1
  371. package/widgets/support/dateUtils.js +1 -1
  372. package/assets/esri/core/workers/chunks/072b4e041b8630c513a0.js +0 -1
  373. package/assets/esri/core/workers/chunks/092920c25cac89c038ee.js +0 -1
  374. package/assets/esri/core/workers/chunks/114269dda1d296893908.js +0 -1
  375. package/assets/esri/core/workers/chunks/126df6237fc80608344e.js +0 -1
  376. package/assets/esri/core/workers/chunks/1b3655f5bf5d90fa8730.js +0 -1
  377. package/assets/esri/core/workers/chunks/1c83f47d446f2bca1721.js +0 -1
  378. package/assets/esri/core/workers/chunks/1cf7bb514e7eefc3e9c6.js +0 -1
  379. package/assets/esri/core/workers/chunks/21a9c8aa2a9e9990df41.js +0 -1
  380. package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.js +0 -1
  381. package/assets/esri/core/workers/chunks/2a1c1be9c202462cf54d.js +0 -1
  382. package/assets/esri/core/workers/chunks/2cb36f9686693234991a.js +0 -1
  383. package/assets/esri/core/workers/chunks/2d0d03cbea83c868edba.js +0 -1
  384. package/assets/esri/core/workers/chunks/2e130cb2f1038055c07b.js +0 -1
  385. package/assets/esri/core/workers/chunks/3619e04cbb6691549014.js +0 -1
  386. package/assets/esri/core/workers/chunks/3dbfb4f370a874393822.js +0 -1
  387. package/assets/esri/core/workers/chunks/406db5c90271a3a203d4.js +0 -1
  388. package/assets/esri/core/workers/chunks/4369a6c1e0a82ab4db6a.js +0 -1
  389. package/assets/esri/core/workers/chunks/4f4a424d1747d04501df.js +0 -1
  390. package/assets/esri/core/workers/chunks/59c00d6fba0fd1c03d01.js +0 -1
  391. package/assets/esri/core/workers/chunks/5a5720caa64a46daadf9.js +0 -1
  392. package/assets/esri/core/workers/chunks/5edb99b58549cd66b394.js +0 -1
  393. package/assets/esri/core/workers/chunks/6203ddf6caad3d356327.js +0 -1
  394. package/assets/esri/core/workers/chunks/650a317b6dc245a7060f.js +0 -1
  395. package/assets/esri/core/workers/chunks/7a358b1fd0c0cce59e9b.js +0 -1
  396. package/assets/esri/core/workers/chunks/83d1a1b3d371c991cc4c.js +0 -1
  397. package/assets/esri/core/workers/chunks/846b7a81b870c8b238a1.js +0 -1
  398. package/assets/esri/core/workers/chunks/8ab832468300cc4feb5a.js +0 -1
  399. package/assets/esri/core/workers/chunks/bc1dc6383e60e7e61d50.js +0 -1
  400. package/assets/esri/core/workers/chunks/bc6323bdc98013da6fe5.js +0 -1
  401. package/assets/esri/core/workers/chunks/c4bb67150ccd01ea6014.js +0 -1
  402. package/assets/esri/core/workers/chunks/c60cf62f374e71e562fc.js +0 -1
  403. package/assets/esri/core/workers/chunks/c6ea5aac232d1eca04dd.js +0 -1
  404. package/assets/esri/core/workers/chunks/c8438c2d9ac48afe4033.js +0 -1
  405. package/assets/esri/core/workers/chunks/c8f239c25fe864f0e47a.js +0 -1
  406. package/assets/esri/core/workers/chunks/cad260881653567bc8f9.js +0 -1
  407. package/assets/esri/core/workers/chunks/d824f4b405a72cd2fa74.js +0 -1
  408. package/assets/esri/core/workers/chunks/dd7508d4016715371e0c.js +0 -1
  409. package/assets/esri/core/workers/chunks/e55f7fc7eff0074ce0fc.js +0 -1
  410. package/assets/esri/core/workers/chunks/eef27d305023034084a4.js +0 -1
  411. package/assets/esri/core/workers/chunks/f38c54ada9e7012a2960.js +0 -1
  412. package/assets/esri/core/workers/chunks/f5e0ff5292b9fd18fc92.js +0 -1
  413. package/assets/esri/core/workers/chunks/f5eb8b5021620be7538e.js +0 -1
  414. package/core/watchUtils.d.ts +0 -4
  415. package/core/watchUtils.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.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import{isSome as e}from"../core/arrayUtils.js";import{eventKey as o}from"../core/events.js";import{watch as s,initial as i,on as r}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as l,convertDateFormatToIntlOptions as u}from"../intl/date.js";import{system as m}from"../time/timeZoneUtils.js";import{SlideThumbnail as k}from"../webdoc/support/SlideThumbnail.js";import h from"./Widget.js";import c from"./Bookmarks/BookmarksUserState.js";import p from"./Bookmarks/BookmarksViewModel.js";import{css as b}from"./Bookmarks/css.js";import _ from"./FeatureTable/Grid/support/ButtonMenu.js";import g from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{loadCalciteComponents as B}from"./support/componentsUtils.js";import{globalCss as f}from"./support/globalCss.js";import{Heading as v}from"./support/Heading.js";import{legacyIcon as E}from"./support/legacyIcon.js";import{isActivationKey as I}from"./support/widgetUtils.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import T from"sortablejs";function A(t,e,o){t.splice(o,0,t.splice(e,1)[0])}const x="bookmarks",U="data-bookmark-uid",C={addBookmark:!0,thumbnail:!0,time:!0},M=/^https:\/\/.*/i,N="esri.widgets.Bookmarks";let j=class extends h{constructor(t,e){super(t,e),this._tooltipReferenceMap=new Map,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=[],this._editIncludeTimeExtent=void 0,this._userState=null,this.disabled=!1,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=b.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.viewModel=new p,this.visibleElements={...C}}initialize(){this.addHandles([s((()=>this.viewModel?.bookmarks),(()=>this._bookmarksInitialized()),i),s((()=>this.editingEnabled),(()=>this._toggleSorting()),i)])}destroy(){this._destroySortable(),this._editMenu.destroy(),this._tooltipReferenceMap.clear()}loadDependencies(){return B({label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}get _editMenuItems(){const{messages:t,_userState:o}=this,s=o?.editedBookmark?.thumbnail?.url;return[new g({label:t?.menu.refreshThumbnail,iconClass:E.refresh,clickFunction:()=>this._refreshThumbnail()}),new g({label:s&&M.test(s)?t?.menu.editImageUrl:t?.menu.useImageUrl,iconClass:E.link,clickFunction:()=>this._startUseImageUrl()}),s?new g({label:t?.menu.removeThumbnail,iconClass:E.erase,clickFunction:()=>this._removeThumbnail()}):null].filter(e)}get _editMenu(){const{_editMenuItems:t,messages:e,disabled:o}=this,s=this._get("_editMenu");s&&s.destroy();const i=new _({disabled:o,iconClass:E.handleHorizontal,label:e?.menu.label});return i.items=t,i}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(t){this.viewModel.defaultCreateOptions=t}get defaultEditOptions(){return this.viewModel.defaultEditOptions}set defaultEditOptions(t){this.viewModel.defaultEditOptions=t}get bookmarks(){return this.viewModel.bookmarks}set bookmarks(t){this.viewModel.bookmarks=t}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(t){this.viewModel.goToOverride=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}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 S("div",{class:this.classes(b.base,f.widget,f.panel,{[f.widgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new c({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}_renderBookmarkTooltips(t){return t.toArray().map((t=>this._renderBookmarkTooltip(t)))??[]}_renderBookmarkTooltip(t){const{_tooltipReferenceMap:e,messagesCommon:o}=this,s=this._getBookmarkTitle(t),i=`${o?.dragHandleTitle} ${s}`;return t?S("calcite-tooltip",{key:`tooltip-${t.uid}`,referenceElement:e.get(t.uid)},i):null}_renderLoading(){return S("div",{class:b.loaderContainer,key:"loader",tabIndex:this.disabled?-1:void 0},S("div",{class:b.loader}))}_renderNoBookmarksContainer(){const{messages:t,disabled:e}=this;return S("div",{class:f.empty,key:"no-bookmarks",tabIndex:e?-1:void 0},S("span",{"aria-hidden":"true",class:this.classes(f.noBookmarksIcon,b.widgetIcon)}),S(v,{level:this.headingLevel,class:this.classes(f.heading,b.noBookmarksHeader)},t?.noBookmarksHeading),S("p",{class:b.noBookmarksDescription},t?.noBookmarksDescription))}_renderAddBookmarkLoading(){return S("div",{key:"adding-bookmark",class:b.addingBookmark},S("span",{"aria-hidden":"true",class:this.classes(E.loadingIndicator,f.rotating)}),this.messages?.addingBookmark)}_renderBookmarkItems(t){if(!t)return[];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){const{_userState:e,editingEnabled:o,disabled:s,view:i}=this,r="add"===e?.state,a=i&&o&&!r?this._renderAddBookmarkButton():null,n=o?r&&e.loading?this._renderAddBookmarkLoading():"add"===e?.state?this._renderAddingBookmark():null:null;return[S("ul",{key:"bookmark-list","aria-label":this.messages?.widgetLabel,class:this.classes(b.bookmarkList,{[b.bookmarkListSortable]:this.editingEnabled}),afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"data-node-ref":"_sortableNode",bind:this,tabIndex:s?-1:void 0},this._renderBookmarkItems(t)),a,n]}_renderAddBookmarkButton(){return this.visibleElements.addBookmark?S("div",{key:"add-bookmark-item",class:b.addBookmark},S("button",{class:this.classes(f.button,f.buttonTertiary,b.addBookmarkButton),disabled:this.disabled,onclick:this.startAddBookmark,afterCreate:this._storeAddBookmarkButton,afterUpdate:this._storeAddBookmarkButton,"data-node-ref":"_addBookmarkButtonNode",bind:this,type:"button"},S("span",{"aria-hidden":"true",class:this.classes(b.addBookmarkIcon,E.plus)}),this.messages?.addBookmark)):null}_renderBookmarks(){const{bookmarks:t}=this.viewModel,e=t&&t.filter(Boolean),o=e&&e.length,s=o||this.editingEnabled?this._renderBookmarksContainer(e):null;return[o?null:this._renderNoBookmarksContainer(),s,this._renderBookmarkTooltips(t)]}_renderEditContainer(t){const{messagesCommon:e,disabled:o}=this,s=this._getBookmarkTitle(t);return S("div",{class:b.bookmarkEditButtonContainer,key:"edit-container"},S("button",{disabled:o,title:`${e?.edit} ${s}`,"aria-label":`${e?.edit} ${s}`,"data-bookmark":t,onclick:this._showEditBookmarkForm,bind:this,class:b.bookmarkEditButton,type:"button"},S("span",{"aria-hidden":"true",class:E.edit})))}_renderDragHandle(t){const{messagesCommon:e,disabled:o}=this,s=this._getBookmarkTitle(t),i={[U]:t.uid};return S("div",{role:"button",tabIndex:o?-1:0,key:"drag-handle",bind:this,class:b.bookmarkDragHandle,onkeydown:this._dragHandleKeydown,"data-bookmark":t,afterCreate:this._focusDragHandle,afterUpdate:this._focusDragHandle,onblur:this._dragHandleBlur,"aria-pressed":this._selectedSortUid===t.uid?"true":"false","aria-label":`${e?.dragHandleTitle} ${s}`,...i},S("span",{"aria-hidden":"true",class:this.classes(b.bookmarkDragHandleIcon,E.handleVertical)}))}_renderBookmarkImageIcon(){return S("span",{"aria-hidden":"true",class:this.classes(b.bookmarkIcon,b.widgetIcon)})}_renderBookmarkImage(t){const{visibleElements:e}=this,{thumbnail:o}=t,s=o&&o.url||"";return e.thumbnail&&s?S("img",{src:s,alt:"",class:b.bookmarkImage}):null}_renderBookmarkTimeSwitch(t){const{messages:e,disabled:o}=this,{timeExtent:s}=t,{view:i}=this.viewModel;return i?.timeExtent??s?S("calcite-label",{layout:"inline-space-between"},e?.includeTimeExtent,S("calcite-switch",{scale:"s",disabled:o,checked:!!s,onCalciteSwitchChange:t=>{this._editIncludeTimeExtent=!!t.target.checked}})):null}_renderBookmarkTimeExtent(t){const{visibleElements:e}=this,{timeExtent:o}=t;return o?S("span",{class:b.timeExtent},[null!=o.start&&S("span",{key:"start-date-group",class:b.timeExtentGroup},S("span",{key:"start-date",class:b.timeExtentDate},this._formatDate(o.start)),e.time&&S("span",{key:"start-time",class:b.timeExtentTime},this._formatTime(o.start))),null!=o.end&&(null==o.start||o.start.getTime()!==o.end.getTime())&&S("span",{key:"end-date-group",class:b.timeExtentGroup},S("span",{key:"end-date",class:b.timeExtentDate},this._formatDate(o.end)),e.time&&S("span",{key:"end-time",class:b.timeExtentTime},this._formatTime(o.end)))]):null}_renderBookmarkButton(t){const{disabled:e}=this,{timeExtent:o}=t,{capabilities:s}=this.viewModel,i=this._getBookmarkTitle(t),{thumbnail:r}=t,a=S("div",{class:this.classes(b.bookmarkImageContainer,r&&r.url?b.bookmarkImageContainerHasImage:null)},this._renderBookmarkImage(t)||this._renderBookmarkImageIcon()),n=s.time&&o?S("span",{key:"time-extent",class:b.bookmarkTimeExtent},this._renderBookmarkTimeExtent(t)):null;return S("button",{disabled:e,key:"bookmark-button",class:b.bookmarkButton,bind:this,"data-bookmark":t,onclick:this._goToBookmark,type:"button"},a,S("div",{class:b.bookmarkLabel},S("span",{key:"bookmark-title",class:b.bookmarkName},i),n))}_renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[b.bookmarkActive]:e===t},s=this.editingEnabled?this._renderEditContainer(t):null,i={[U]:t.uid},r=this.editingEnabled?this._renderDragHandle(t):null;return S("li",{key:t,class:this.classes(b.bookmark,o),...i},r,this._renderBookmarkButton(t),s)}_renderEditingBookmarkName(t){const{messages:e,_userState:o,disabled:s}=this,i="name-required"===o?.validationState;return S("label",{class:this.classes({[b.authoringLabel]:!0,[b.authoringLabelStartPadding]:!!this.visibleElements?.thumbnail})},e?.title,i?S("strong",null,e?.invalidTitle):null,S("input",{required:!0,disabled:s,bind:this,class:this.classes(f.input,i?b.authoringInputInvalid:null),type:"text",value:t.name,afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,"data-bookmark":t,"data-node-ref":"_editInputNode",placeholder:e?.titlePlaceholder}))}_renderEditingBookmarkUrlActions(){const{messagesCommon:t,disabled:e}=this;return S("div",{class:b.authoringActions},S("input",{type:"button",disabled:e,value:t?.back,class:this.classes(f.button,f.buttonTertiary),onclick:this._closeUrlEditBookmarkForm,bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.add}))}_renderEditingBookmarkActions(){const{messagesCommon:t,disabled:e}=this,o=this._userState?.bookmark;return S("div",{class:b.authoringActions},S("input",{type:"button",disabled:e,value:t?.delete,class:this.classes(f.button,f.buttonTertiary,b.authoringDeleteButton),"data-bookmark":o,onclick:this._deleteBookmark,bind:this}),S("input",{disabled:e,type:"button",value:t?.cancel,class:this.classes(f.button,f.buttonTertiary),onclick:this._closeEditBookmarkForm,bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.save}))}_renderEditingBookmarkUrlInput(t){const{messages:e,_userState:o,disabled:s}=this,i=t.thumbnail?.url,r=i&&M.test(i)?i:void 0,a="absolute-url-required"===o?.validationState;return S("label",{class:this.classes({[b.authoringLabel]:!0,[b.authoringLabelStartPadding]:!!this.visibleElements?.thumbnail})},a?S("strong",null,e?.invalidImageUrl):null,S("input",{required:!0,disabled:s,bind:this,class:this.classes(f.input,a?b.authoringInputInvalid:null),type:"text",value:r,afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,"data-bookmark":t,"data-node-ref":"_urlEditInputNode",title:e?.imageUrlTooltip,placeholder:e?`https://<${e.imageUrlPlaceholder}>`:void 0}))}_renderEditingBookmarkUrl(t){if(!t)return null;const e={[U]:t.uid};return S("li",{key:"edit-bookmark-url-form",class:b.authoringCard,...e},S("form",{class:b.authoringForm,disabled:this.disabled,onsubmit:this._editBookmarkUrlSubmit,bind:this},this._renderEditingBookmarkUrlInput(t),this._renderEditingBookmarkUrlActions()))}_renderEditingBookmark(t){if(!t)return null;const e={[U]:t.uid},{capabilities:o}=this.viewModel,s=o.time?S("div",{key:"edit-bookmark-time-container",class:b.timeExtentContainer},this._renderBookmarkTimeSwitch(t),this._editIncludeTimeExtent&&this._renderBookmarkTimeExtent(t)):null;return S("li",{key:"edit-bookmark-form",class:b.authoringCard,...e},S("form",{class:b.authoringForm,disabled:this.disabled,onsubmit:this._editBookmarkSubmit,bind:this},S("div",{class:b.authoringContainer},this.visibleElements.thumbnail?S("div",{class:b.bookmarkImageContainer},this._renderBookmarkImage(t),this._editMenu.render()):null,this._renderEditingBookmarkName(t)),s,this._renderEditingBookmarkActions()))}_renderAddingBookmarkName(){const{_userState:t,messages:e,disabled:o}=this,s="name-required"===t?.validationState;return S("label",{class:b.authoringLabel},e?.title,s?S("strong",null,e?.invalidTitle):null,S("input",{required:!0,disabled:o,bind:this,class:this.classes(f.input,s?b.authoringInputInvalid:null),type:"text",afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,"data-node-ref":"_addInputNode",value:"",placeholder:e?.titlePlaceholder}))}_renderAddingBookmarkActions(){const{messagesCommon:t,disabled:e}=this;return S("div",{class:this.classes(b.authoringActions)},S("input",{type:"button",disabled:e,value:t?.cancel,class:this.classes(f.button,f.buttonTertiary,b.authoringCancelButton),onclick:this._endAddBookmark.bind(this),bind:this}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.add}))}_renderAddingBookmark(){return S("div",{key:"add-bookmark-form",class:b.authoringCard},S("form",{class:this.classes(b.authoringForm,b.authoringFormAdding),onsubmit:this._addBookmarkSubmit,bind:this},this._renderAddingBookmarkName(),this._renderAddingBookmarkActions()))}_setTooltipReference(t,e){this._tooltipReferenceMap.set(e.uid,t),this.scheduleRender()}_getBookmarkTitle(t){return(t?.name||this.messagesCommon?.untitled)??""}_formatDate(t){return t?l(t,{...u("short-date"),timeZone:this.view?.timeZone??m}):""}_formatTime(t){return t?l(t,{...u("long-time"),timeZone:this.view?.timeZone??m}):""}_dragHandleBlur(){this._selectedSortUid=null,this.scheduleRender()}_dragHandleKeydown(t){const{_sortableSavedItems:e}=this,s=["ArrowDown","ArrowUp","Escape","Tab"," ","Enter"],i=o(t);if(!s.includes(i))return;const{_sortable:r,_selectedSortUid:a}=this;if(!r)return;const n=r.toArray(),d=t.target.getAttribute(U),l=n.indexOf(d);if(I(i)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?[]:r.toArray(),void this.scheduleRender()}if("Tab"===i)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===i&&0!==e.length)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(e,r,d),void this.scheduleRender();if(-1===l||!a)return;const u="ArrowUp"===i?l-1:l+1;u>=n.length||u<=-1||(A(n,l,u),this._updateSortItems(n,r,d))}_updateSortItems(t,e,o){e.sort(t),this._sortBookmarks(e),this._focusSortUid=o,this._selectedSortUid=o}_focusDragHandle(t){const e=H(t);if(!e)return;this._setTooltipReference(t,e);const{_focusSortUid:o}=this;if(!t||!o)return;t.getAttribute(U)===o&&(t.focus(),this._focusSortUid=null)}_toggleSorting(){const{_sortable:t,_sortableNode:e,editingEnabled:o,disabled:s}=this;if(e)if(t)t.option("disabled",s||!o);else{const t=T.create(e,{dataIdAttr:U,handle:`.${b.bookmarkDragHandle}`,group:x,disabled:s||!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 s=o.indexOf(t.uid),i=o.indexOf(e.uid);return s>i?1:s<i?-1:0}))}_destroySortable(){const{_sortable:t}=this;t&&t.destroy(),this._sortable=null}_endAddBookmark(){this._focusAddBookmarkButton=!0,this.endAddBookmark()}_bookmarksInitialized(){const t="bookmarks-init";this.removeHandles(t),this.addHandles(r((()=>this.viewModel?.bookmarks),"change",(()=>this._bookmarksChanged())),t)}_bookmarksChanged(){const t="bookmarks-change",{bookmarks:e}=this.viewModel;this.removeHandles(t);const o=e.map((t=>s((()=>[t?.name,t?.thumbnail?.url]),(()=>this.scheduleRender()))));this.addHandles(o.toArray(),t),this.scheduleRender()}_showEditBookmarkForm(t){const e=H(t.currentTarget);e&&(this._editIncludeTimeExtent=!!e.timeExtent,this._focusEditInputBox=!0,this._userState=new c({bookmark:e,state:"edit"}),this.viewModel.goTo(e),this.scheduleRender())}_closeUrlEditBookmarkForm(){this._focusEditInputBox=!0,this._userState&&(this._userState.state="edit")}_closeEditBookmarkForm(){this._userState=null}_addBookmarkSubmit(t){t.preventDefault();const{_addInputNode:e,_userState:o}=this;if(!o)return;const s=e?e.value.trim():null;s?(o.loading=!0,this.viewModel.createBookmark().then((t=>{t.name=s,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:s}=this;if(!o?.bookmark||!o.editedBookmark)return;const i=e&&e.value.trim();i?(o.bookmark.name=i,o.bookmark.thumbnail=o.editedBookmark.thumbnail,s||(o.bookmark.timeExtent=null),this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:s})):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=H(t.currentTarget);e&&this.viewModel.bookmarks.remove(e)}_goToBookmark(t){const e=H(t.currentTarget);e&&(this.endAddBookmark(),this._closeEditBookmarkForm(),this.viewModel.goTo(e))}async _refreshThumbnail(){const{_userState:t,_editMenu:e,viewModel:o}=this;t&&(t.validationState=void 0,await o.editBookmark(t.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&&(t.editedBookmark.thumbnail=null,t.validationState=void 0,e.open=!1,this._focusEditInputBox=!0,this.scheduleRender())}_startUseImageUrl(){this._userState&&(this._userState.state="edit-thumbnail"),this._editMenu.open=!1,this._focusUrlEditInputBox=!0,this.scheduleRender()}_editBookmarkUrlSubmit(t){t.preventDefault();const{_urlEditInputNode:e,_userState:o}=this;if(!e||!o)return;const s=e.value;M.test(s)?(s&&o.editedBookmark&&(o.editedBookmark.thumbnail=new k({url:s})),this._closeUrlEditBookmarkForm()):o.validationState="absolute-url-required"}};function H(t){return t["data-bookmark"]}t([a()],j.prototype,"_editIncludeTimeExtent",void 0),t([a({type:c})],j.prototype,"_userState",void 0),t([a({readOnly:!0})],j.prototype,"_editMenuItems",null),t([a({readOnly:!0})],j.prototype,"_editMenu",null),t([a()],j.prototype,"defaultCreateOptions",null),t([a()],j.prototype,"defaultEditOptions",null),t([a()],j.prototype,"bookmarks",null),t([a()],j.prototype,"disabled",void 0),t([a()],j.prototype,"editingEnabled",void 0),t([a()],j.prototype,"headingLevel",void 0),t([a()],j.prototype,"goToOverride",null),t([a()],j.prototype,"iconClass",void 0),t([a()],j.prototype,"icon",void 0),t([a()],j.prototype,"label",null),t([a(),y("esri/widgets/Bookmarks/t9n/Bookmarks")],j.prototype,"messages",void 0),t([a(),y("esri/t9n/common")],j.prototype,"messagesCommon",void 0),t([a()],j.prototype,"uiStrings",void 0),t([a()],j.prototype,"view",null),t([a({type:p}),w(["select-bookmark","bookmark-edit","bookmark-select"])],j.prototype,"viewModel",void 0),t([a()],j.prototype,"visibleElements",void 0),t([n("visibleElements")],j.prototype,"castVisibleElements",null),t([a()],j.prototype,"endAddBookmark",null),t([a()],j.prototype,"startAddBookmark",null),j=t([d(N)],j);const D=j;export{D as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import{isSome as e}from"../core/arrayUtils.js";import{eventKey as o}from"../core/events.js";import{watch as s,initial as i,on as r}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as l,convertDateFormatToIntlOptions as u}from"../intl/date.js";import{system as m}from"../time/timeZoneUtils.js";import{SlideThumbnail as k}from"../webdoc/support/SlideThumbnail.js";import h from"./Widget.js";import c from"./Bookmarks/BookmarksUserState.js";import p from"./Bookmarks/BookmarksViewModel.js";import{css as b}from"./Bookmarks/css.js";import _ from"./FeatureTable/Grid/support/ButtonMenu.js";import g from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{loadCalciteComponents as B}from"./support/componentsUtils.js";import{globalCss as f}from"./support/globalCss.js";import{Heading as v}from"./support/Heading.js";import{legacyIcon as E}from"./support/legacyIcon.js";import{isActivationKey as I}from"./support/widgetUtils.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import T from"sortablejs";function A(t,e,o){t.splice(o,0,t.splice(e,1)[0])}const x="bookmarks",U="data-bookmark-uid",C={addBookmark:!0,thumbnail:!0,time:!0},M=/^https:\/\/.*/i,N="esri.widgets.Bookmarks";let j=class extends h{constructor(t,e){super(t,e),this._tooltipReferenceMap=new Map,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=[],this._editIncludeTimeExtent=void 0,this._userState=null,this.disabled=!1,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=b.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.viewModel=new p,this.visibleElements={...C}}initialize(){this.addHandles([s((()=>this.viewModel?.bookmarks),(()=>this._bookmarksInitialized()),i),s((()=>this.editingEnabled),(()=>this._toggleSorting()),i)])}destroy(){this._destroySortable(),this._editMenu.destroy(),this._tooltipReferenceMap.clear()}loadDependencies(){return B({label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}get _editMenuItems(){const{messages:t,_userState:o}=this,s=o?.editedBookmark?.thumbnail?.url;return[new g({label:t?.menu.refreshThumbnail,iconClass:E.refresh,clickFunction:()=>this._refreshThumbnail()}),new g({label:s&&M.test(s)?t?.menu.editImageUrl:t?.menu.useImageUrl,iconClass:E.link,clickFunction:()=>this._startUseImageUrl()}),s?new g({label:t?.menu.removeThumbnail,iconClass:E.erase,clickFunction:()=>this._removeThumbnail()}):null].filter(e)}get _editMenu(){const{_editMenuItems:t,messages:e,disabled:o}=this,s=this._get("_editMenu");s&&s.destroy();const i=new _({disabled:o,iconClass:E.handleHorizontal,label:e?.menu.label});return i.items=t,i}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(t){this.viewModel.defaultCreateOptions=t}get defaultEditOptions(){return this.viewModel.defaultEditOptions}set defaultEditOptions(t){this.viewModel.defaultEditOptions=t}get bookmarks(){return this.viewModel.bookmarks}set bookmarks(t){this.viewModel.bookmarks=t}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(t){this.viewModel.goToOverride=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}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 S("div",{class:this.classes(b.base,f.widget,f.panel,{[f.widgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new c({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}_renderBookmarkTooltips(t){return t.toArray().map((t=>this._renderBookmarkTooltip(t)))??[]}_renderBookmarkTooltip(t){const{_tooltipReferenceMap:e,messagesCommon:o}=this,s=this._getBookmarkTitle(t),i=`${o?.dragHandleTitle} ${s}`;return t?S("calcite-tooltip",{key:`tooltip-${t.uid}`,referenceElement:e.get(t.uid)},i):null}_renderLoading(){return S("div",{class:b.loaderContainer,key:"loader",tabIndex:this.disabled?-1:void 0},S("div",{class:b.loader}))}_renderNoBookmarksContainer(){const{messages:t,disabled:e}=this;return S("div",{class:f.empty,key:"no-bookmarks",tabIndex:e?-1:void 0},S("span",{"aria-hidden":"true",class:this.classes(f.noBookmarksIcon,b.widgetIcon)}),S(v,{class:this.classes(f.heading,b.noBookmarksHeader),level:this.headingLevel},t?.noBookmarksHeading),S("p",{class:b.noBookmarksDescription},t?.noBookmarksDescription))}_renderAddBookmarkLoading(){return S("div",{class:b.addingBookmark,key:"adding-bookmark"},S("span",{"aria-hidden":"true",class:this.classes(E.loadingIndicator,f.rotating)}),this.messages?.addingBookmark)}_renderBookmarkItems(t){if(!t)return[];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){const{_userState:e,editingEnabled:o,disabled:s,view:i}=this,r="add"===e?.state,a=i&&o&&!r?this._renderAddBookmarkButton():null,n=o?r&&e.loading?this._renderAddBookmarkLoading():"add"===e?.state?this._renderAddingBookmark():null:null;return[S("ul",{afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"aria-label":this.messages?.widgetLabel,bind:this,class:this.classes(b.bookmarkList,{[b.bookmarkListSortable]:this.editingEnabled}),"data-node-ref":"_sortableNode",key:"bookmark-list",tabIndex:s?-1:void 0},this._renderBookmarkItems(t)),a,n]}_renderAddBookmarkButton(){return this.visibleElements.addBookmark?S("div",{class:b.addBookmark,key:"add-bookmark-item"},S("button",{afterCreate:this._storeAddBookmarkButton,afterUpdate:this._storeAddBookmarkButton,bind:this,class:this.classes(f.button,f.buttonTertiary,b.addBookmarkButton),"data-node-ref":"_addBookmarkButtonNode",disabled:this.disabled,onclick:this.startAddBookmark,type:"button"},S("span",{"aria-hidden":"true",class:this.classes(b.addBookmarkIcon,E.plus)}),this.messages?.addBookmark)):null}_renderBookmarks(){const{bookmarks:t}=this.viewModel,e=t&&t.filter(Boolean),o=e&&e.length,s=o||this.editingEnabled?this._renderBookmarksContainer(e):null;return[o?null:this._renderNoBookmarksContainer(),s,this._renderBookmarkTooltips(t)]}_renderEditContainer(t){const{messagesCommon:e,disabled:o}=this,s=this._getBookmarkTitle(t);return S("div",{class:b.bookmarkEditButtonContainer,key:"edit-container"},S("button",{"aria-label":`${e?.edit} ${s}`,bind:this,class:b.bookmarkEditButton,"data-bookmark":t,disabled:o,onclick:this._showEditBookmarkForm,title:`${e?.edit} ${s}`,type:"button"},S("span",{"aria-hidden":"true",class:E.edit})))}_renderDragHandle(t){const{messagesCommon:e,disabled:o}=this,s=this._getBookmarkTitle(t),i={[U]:t.uid};return S("div",{afterCreate:this._focusDragHandle,afterUpdate:this._focusDragHandle,"aria-label":`${e?.dragHandleTitle} ${s}`,"aria-pressed":this._selectedSortUid===t.uid?"true":"false",bind:this,class:b.bookmarkDragHandle,"data-bookmark":t,key:"drag-handle",onblur:this._dragHandleBlur,onkeydown:this._dragHandleKeydown,role:"button",tabIndex:o?-1:0,...i},S("span",{"aria-hidden":"true",class:this.classes(b.bookmarkDragHandleIcon,E.handleVertical)}))}_renderBookmarkImageIcon(){return S("span",{"aria-hidden":"true",class:this.classes(b.bookmarkIcon,b.widgetIcon)})}_renderBookmarkImage(t){const{visibleElements:e}=this,{thumbnail:o}=t,s=o&&o.url||"";return e.thumbnail&&s?S("img",{alt:"",class:b.bookmarkImage,src:s}):null}_renderBookmarkTimeSwitch(t){const{messages:e,disabled:o}=this,{timeExtent:s}=t,{view:i}=this.viewModel;return i?.timeExtent??s?S("calcite-label",{layout:"inline-space-between"},e?.includeTimeExtent,S("calcite-switch",{checked:!!s,disabled:o,scale:"s",onCalciteSwitchChange:t=>{this._editIncludeTimeExtent=!!t.target.checked}})):null}_renderBookmarkTimeExtent(t){const{visibleElements:e}=this,{timeExtent:o}=t;return o?S("span",{class:b.timeExtent},[null!=o.start&&S("span",{class:b.timeExtentGroup,key:"start-date-group"},S("span",{class:b.timeExtentDate,key:"start-date"},this._formatDate(o.start)),e.time?S("span",{class:b.timeExtentTime,key:"start-time"},this._formatTime(o.start)):null),null!=o.end&&(null==o.start||o.start.getTime()!==o.end.getTime())&&S("span",{class:b.timeExtentGroup,key:"end-date-group"},S("span",{class:b.timeExtentDate,key:"end-date"},this._formatDate(o.end)),e.time?S("span",{class:b.timeExtentTime,key:"end-time"},this._formatTime(o.end)):null)]):null}_renderBookmarkButton(t){const{disabled:e}=this,{timeExtent:o}=t,{capabilities:s}=this.viewModel,i=this._getBookmarkTitle(t),{thumbnail:r}=t,a=S("div",{class:this.classes(b.bookmarkImageContainer,r&&r.url?b.bookmarkImageContainerHasImage:null)},this._renderBookmarkImage(t)||this._renderBookmarkImageIcon()),n=s.time&&o?S("span",{class:b.bookmarkTimeExtent,key:"time-extent"},this._renderBookmarkTimeExtent(t)):null;return S("button",{bind:this,class:b.bookmarkButton,"data-bookmark":t,disabled:e,key:"bookmark-button",onclick:this._goToBookmark,type:"button"},a,S("div",{class:b.bookmarkLabel},S("span",{class:b.bookmarkName,key:"bookmark-title"},i),n))}_renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[b.bookmarkActive]:e===t},s=this.editingEnabled?this._renderEditContainer(t):null,i={[U]:t.uid},r=this.editingEnabled?this._renderDragHandle(t):null;return S("li",{class:this.classes(b.bookmark,o),key:t,...i},r,this._renderBookmarkButton(t),s)}_renderEditingBookmarkName(t){const{messages:e,_userState:o,disabled:s}=this,i="name-required"===o?.validationState;return S("label",{class:this.classes({[b.authoringLabel]:!0,[b.authoringLabelStartPadding]:!!this.visibleElements?.thumbnail})},e?.title,i?S("strong",null,e?.invalidTitle):null,S("input",{afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,bind:this,class:this.classes(f.input,i?b.authoringInputInvalid:null),"data-bookmark":t,"data-node-ref":"_editInputNode",disabled:s,placeholder:e?.titlePlaceholder,required:!0,type:"text",value:t.name}))}_renderEditingBookmarkUrlActions(){const{messagesCommon:t,disabled:e}=this;return S("div",{class:b.authoringActions},S("input",{bind:this,class:this.classes(f.button,f.buttonTertiary),disabled:e,onclick:this._closeUrlEditBookmarkForm,type:"button",value:t?.back}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.add}))}_renderEditingBookmarkActions(){const{messagesCommon:t,disabled:e}=this,o=this._userState?.bookmark;return S("div",{class:b.authoringActions},S("input",{bind:this,class:this.classes(f.button,f.buttonTertiary,b.authoringDeleteButton),"data-bookmark":o,disabled:e,onclick:this._deleteBookmark,type:"button",value:t?.delete}),S("input",{bind:this,class:this.classes(f.button,f.buttonTertiary),disabled:e,onclick:this._closeEditBookmarkForm,type:"button",value:t?.cancel}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.save}))}_renderEditingBookmarkUrlInput(t){const{messages:e,_userState:o,disabled:s}=this,i=t.thumbnail?.url,r=i&&M.test(i)?i:void 0,a="absolute-url-required"===o?.validationState;return S("label",{class:this.classes({[b.authoringLabel]:!0,[b.authoringLabelStartPadding]:!!this.visibleElements?.thumbnail})},a?S("strong",null,e?.invalidImageUrl):null,S("input",{afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,bind:this,class:this.classes(f.input,a?b.authoringInputInvalid:null),"data-bookmark":t,"data-node-ref":"_urlEditInputNode",disabled:s,placeholder:e?`https://<${e.imageUrlPlaceholder}>`:void 0,required:!0,title:e?.imageUrlTooltip,type:"text",value:r}))}_renderEditingBookmarkUrl(t){if(!t)return null;const e={[U]:t.uid};return S("li",{class:b.authoringCard,key:"edit-bookmark-url-form",...e},S("form",{bind:this,class:b.authoringForm,disabled:this.disabled,onsubmit:this._editBookmarkUrlSubmit},this._renderEditingBookmarkUrlInput(t),this._renderEditingBookmarkUrlActions()))}_renderEditingBookmark(t){if(!t)return null;const e={[U]:t.uid},{capabilities:o}=this.viewModel,s=o.time?S("div",{class:b.timeExtentContainer,key:"edit-bookmark-time-container"},this._renderBookmarkTimeSwitch(t),this._editIncludeTimeExtent?this._renderBookmarkTimeExtent(t):null):null;return S("li",{class:b.authoringCard,key:"edit-bookmark-form",...e},S("form",{bind:this,class:b.authoringForm,disabled:this.disabled,onsubmit:this._editBookmarkSubmit},S("div",{class:b.authoringContainer},this.visibleElements.thumbnail?S("div",{class:b.bookmarkImageContainer},this._renderBookmarkImage(t),this._editMenu.render()):null,this._renderEditingBookmarkName(t)),s,this._renderEditingBookmarkActions()))}_renderAddingBookmarkName(){const{_userState:t,messages:e,disabled:o}=this,s="name-required"===t?.validationState;return S("label",{class:b.authoringLabel},e?.title,s?S("strong",null,e?.invalidTitle):null,S("input",{afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,bind:this,class:this.classes(f.input,s?b.authoringInputInvalid:null),"data-node-ref":"_addInputNode",disabled:o,placeholder:e?.titlePlaceholder,required:!0,type:"text",value:""}))}_renderAddingBookmarkActions(){const{messagesCommon:t,disabled:e}=this;return S("div",{class:this.classes(b.authoringActions)},S("input",{bind:this,class:this.classes(f.button,f.buttonTertiary,b.authoringCancelButton),disabled:e,onclick:this._endAddBookmark.bind(this),type:"button",value:t?.cancel}),S("input",{class:f.button,disabled:e,type:"submit",value:t?.add}))}_renderAddingBookmark(){return S("div",{class:b.authoringCard,key:"add-bookmark-form"},S("form",{bind:this,class:this.classes(b.authoringForm,b.authoringFormAdding),onsubmit:this._addBookmarkSubmit},this._renderAddingBookmarkName(),this._renderAddingBookmarkActions()))}_setTooltipReference(t,e){this._tooltipReferenceMap.set(e.uid,t),this.scheduleRender()}_getBookmarkTitle(t){return(t?.name||this.messagesCommon?.untitled)??""}_formatDate(t){return t?l(t,{...u("short-date"),timeZone:this.view?.timeZone??m}):""}_formatTime(t){return t?l(t,{...u("long-time"),timeZone:this.view?.timeZone??m}):""}_dragHandleBlur(){this._selectedSortUid=null,this.scheduleRender()}_dragHandleKeydown(t){const{_sortableSavedItems:e}=this,s=["ArrowDown","ArrowUp","Escape","Tab"," ","Enter"],i=o(t);if(!s.includes(i))return;const{_sortable:r,_selectedSortUid:a}=this;if(!r)return;const n=r.toArray(),d=t.target.getAttribute(U),l=n.indexOf(d);if(I(i)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?[]:r.toArray(),void this.scheduleRender()}if("Tab"===i)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===i&&0!==e.length)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(e,r,d),void this.scheduleRender();if(-1===l||!a)return;const u="ArrowUp"===i?l-1:l+1;u>=n.length||u<=-1||(A(n,l,u),this._updateSortItems(n,r,d))}_updateSortItems(t,e,o){e.sort(t),this._sortBookmarks(e),this._focusSortUid=o,this._selectedSortUid=o}_focusDragHandle(t){const e=H(t);if(!e)return;this._setTooltipReference(t,e);const{_focusSortUid:o}=this;if(!t||!o)return;t.getAttribute(U)===o&&(t.focus(),this._focusSortUid=null)}_toggleSorting(){const{_sortable:t,_sortableNode:e,editingEnabled:o,disabled:s}=this;if(e)if(t)t.option("disabled",s||!o);else{const t=T.create(e,{dataIdAttr:U,handle:`.${b.bookmarkDragHandle}`,group:x,disabled:s||!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 s=o.indexOf(t.uid),i=o.indexOf(e.uid);return s>i?1:s<i?-1:0}))}_destroySortable(){const{_sortable:t}=this;t&&t.destroy(),this._sortable=null}_endAddBookmark(){this._focusAddBookmarkButton=!0,this.endAddBookmark()}_bookmarksInitialized(){const t="bookmarks-init";this.removeHandles(t),this.addHandles(r((()=>this.viewModel?.bookmarks),"change",(()=>this._bookmarksChanged())),t)}_bookmarksChanged(){const t="bookmarks-change",{bookmarks:e}=this.viewModel;this.removeHandles(t);const o=e.map((t=>s((()=>[t?.name,t?.thumbnail?.url]),(()=>this.scheduleRender()))));this.addHandles(o.toArray(),t),this.scheduleRender()}_showEditBookmarkForm(t){const e=H(t.currentTarget);e&&(this._editIncludeTimeExtent=!!e.timeExtent,this._focusEditInputBox=!0,this._userState=new c({bookmark:e,state:"edit"}),this.viewModel.goTo(e),this.scheduleRender())}_closeUrlEditBookmarkForm(){this._focusEditInputBox=!0,this._userState&&(this._userState.state="edit")}_closeEditBookmarkForm(){this._userState=null}_addBookmarkSubmit(t){t.preventDefault();const{_addInputNode:e,_userState:o}=this;if(!o)return;const s=e?e.value.trim():null;s?(o.loading=!0,this.viewModel.createBookmark().then((t=>{t.name=s,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:s}=this;if(!o?.bookmark||!o.editedBookmark)return;const i=e&&e.value.trim();i?(o.bookmark.name=i,o.bookmark.thumbnail=o.editedBookmark.thumbnail,s||(o.bookmark.timeExtent=null),this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:s})):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=H(t.currentTarget);e&&this.viewModel.bookmarks.remove(e)}_goToBookmark(t){const e=H(t.currentTarget);e&&(this.endAddBookmark(),this._closeEditBookmarkForm(),this.viewModel.goTo(e))}async _refreshThumbnail(){const{_userState:t,_editMenu:e,viewModel:o}=this;t&&(t.validationState=void 0,await o.editBookmark(t.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&&(t.editedBookmark.thumbnail=null,t.validationState=void 0,e.open=!1,this._focusEditInputBox=!0,this.scheduleRender())}_startUseImageUrl(){this._userState&&(this._userState.state="edit-thumbnail"),this._editMenu.open=!1,this._focusUrlEditInputBox=!0,this.scheduleRender()}_editBookmarkUrlSubmit(t){t.preventDefault();const{_urlEditInputNode:e,_userState:o}=this;if(!e||!o)return;const s=e.value;M.test(s)?(s&&o.editedBookmark&&(o.editedBookmark.thumbnail=new k({url:s})),this._closeUrlEditBookmarkForm()):o.validationState="absolute-url-required"}};function H(t){return t["data-bookmark"]}t([a()],j.prototype,"_editIncludeTimeExtent",void 0),t([a({type:c})],j.prototype,"_userState",void 0),t([a({readOnly:!0})],j.prototype,"_editMenuItems",null),t([a({readOnly:!0})],j.prototype,"_editMenu",null),t([a()],j.prototype,"defaultCreateOptions",null),t([a()],j.prototype,"defaultEditOptions",null),t([a()],j.prototype,"bookmarks",null),t([a()],j.prototype,"disabled",void 0),t([a()],j.prototype,"editingEnabled",void 0),t([a()],j.prototype,"headingLevel",void 0),t([a()],j.prototype,"goToOverride",null),t([a()],j.prototype,"iconClass",void 0),t([a()],j.prototype,"icon",void 0),t([a()],j.prototype,"label",null),t([a(),y("esri/widgets/Bookmarks/t9n/Bookmarks")],j.prototype,"messages",void 0),t([a(),y("esri/t9n/common")],j.prototype,"messagesCommon",void 0),t([a()],j.prototype,"uiStrings",void 0),t([a()],j.prototype,"view",null),t([a({type:p}),w(["select-bookmark","bookmark-edit","bookmark-select"])],j.prototype,"viewModel",void 0),t([a()],j.prototype,"visibleElements",void 0),t([n("visibleElements")],j.prototype,"castVisibleElements",null),t([a()],j.prototype,"endAddBookmark",null),t([a()],j.prototype,"startAddBookmark",null),j=t([d(N)],j);const D=j;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.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{on as s,watch as i,initial as t}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{LayerTreeNode as a}from"../support/LayerTreeNode.js";import{legacyIcon as d}from"../../support/legacyIcon.js";import{isRTL as n}from"../../support/widgetUtils.js";import{tsx as c}from"../../support/jsxFactory.js";var h;const g={expand:"expand",collapse:"collapse",hideSublayer:"hideSublayer",showSublayer:"showSublayer"},p="esri-building-disciplines-tree-node",b={base:p,root:`${p}--root`,leaf:`${p}--leaf`,label:`${p}__label`,checkbox:`${p}__checkbox`,checkboxChecked:`${p}__checkbox--checked`,checkboxIndeterminate:`${p}__checkbox--indeterminate`,collapseToggle:`${p}__collapse-toggle`,collapseToggleCollapsed:`${p}__collapse-toggle--collapsed`,children:`${p}__children`,level:e=>`${p}--level-${e}`};let u=h=class extends r{constructor(e){super(e),this.messages=g,this.toggleSiblingsVisibility=!1,this._childWidgets=[],this._updateChildWidgets=()=>{this._destroyChildWidgets(),this._childWidgets=this.node.children.toArray().reverse().map((e=>new h({node:e,messages:this.messages,toggleSiblingsVisibility:this.toggleSiblingsVisibility})))}}initialize(){this.addHandles([s((()=>this.node.children),"after-changes",this._updateChildWidgets,{onListenerAdd:this._updateChildWidgets,onListenerRemove:this._updateChildWidgets}),i((()=>[this.messages,this.toggleSiblingsVisibility]),this._updateChildWidgets,t)])}destroy(){this._destroyChildWidgets()}render(){const e=this.node,s=e.isRoot,i=e.isLeaf;return e.isDiscipline&&i?c("div",{key:`${e.id}-empty`}):c("div",{key:e.id,class:this.classes(b.base,b.level(e.level),{[b.root]:s,[b.leaf]:i}),bind:this,onkeydown:this._onKeydown,tabIndex:i?void 0:0,role:"treeitem","aria-expanded":e.collapsed?"false":"true"},c("label",{bind:this,class:b.label,onclick:this._onCheckboxToggle},this._renderCollapseToggle(),this._renderCheckbox(),c("span",null,e.title)),this._renderChildren(e))}_renderCheckbox(){const e=this.node.visible,s=!0===e,i=null===e,t=s?this.messages?.hideSublayer:this.messages?.showSublayer;return c("button",{bind:this,class:this.classes(b.checkbox,{[b.checkboxChecked]:s,[d.checkMark]:s,[b.checkboxIndeterminate]:i,[d.minus]:i}),onclick:this._onCheckboxToggle,role:"checkbox","aria-checked":s?"true":"false","aria-label":t,title:t,type:"button"})}_renderCollapseToggle(){if(!this.node.hasChildren)return null;const e=this.node.collapsed,s=e?this.messages?.expand:this.messages?.collapse;return c("div",{bind:this,class:this.classes(b.collapseToggle,d.right,{[b.collapseToggleCollapsed]:e}),onclick:this._onCollapseToggle,"aria-label":s,title:s})}_renderChildren(e){return!e.hasChildren||e.collapsed?null:c("div",{class:b.children},this._childWidgets.map((e=>e.render())))}_onKeydown(e){switch(e.key){case"Space":case"Enter":if(!e.target.classList.contains(b.base))return;e.stopPropagation(),this.node.toggleVisibility();break;case"ArrowLeft":e.stopPropagation(),this.node.toggleCollapsed(!n(this.container));break;case"ArrowRight":e.stopPropagation(),this.node.toggleCollapsed(n(this.container))}}_onCheckboxToggle(e){e.preventDefault(),e.stopPropagation();(e.metaKey||e.ctrlKey)&&this.toggleSiblingsVisibility?this.node.toggleAllSiblingsVisibility():this.node.toggleVisibility()}_onCollapseToggle(e){e.preventDefault(),e.stopPropagation(),this.node.toggleCollapsed()}_destroyChildWidgets(){this._childWidgets.forEach((e=>e.destroy())),this._childWidgets=[]}};e([o({type:a})],u.prototype,"node",void 0),e([o()],u.prototype,"messages",void 0),e([o({nonNullable:!0})],u.prototype,"toggleSiblingsVisibility",void 0),e([o()],u.prototype,"_childWidgets",void 0),u=h=e([l("esri.widgets.BuildingExplorer.BuildingDisciplinesTree.BuildingDisciplinesNode")],u);const y=u;export{y as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{on as s,watch as i,initial as t}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{LayerTreeNode as a}from"../support/LayerTreeNode.js";import{legacyIcon as d}from"../../support/legacyIcon.js";import{isRTL as n}from"../../support/widgetUtils.js";import{tsx as c}from"../../support/jsxFactory.js";var h;const g={expand:"expand",collapse:"collapse",hideSublayer:"hideSublayer",showSublayer:"showSublayer"},p="esri-building-disciplines-tree-node",b={base:p,root:`${p}--root`,leaf:`${p}--leaf`,label:`${p}__label`,checkbox:`${p}__checkbox`,checkboxChecked:`${p}__checkbox--checked`,checkboxIndeterminate:`${p}__checkbox--indeterminate`,collapseToggle:`${p}__collapse-toggle`,collapseToggleCollapsed:`${p}__collapse-toggle--collapsed`,children:`${p}__children`,level:e=>`${p}--level-${e}`};let u=h=class extends r{constructor(e){super(e),this.messages=g,this.toggleSiblingsVisibility=!1,this._childWidgets=[],this._updateChildWidgets=()=>{this._destroyChildWidgets(),this._childWidgets=this.node.children.toArray().reverse().map((e=>new h({node:e,messages:this.messages,toggleSiblingsVisibility:this.toggleSiblingsVisibility})))}}initialize(){this.addHandles([s((()=>this.node.children),"after-changes",this._updateChildWidgets,{onListenerAdd:this._updateChildWidgets,onListenerRemove:this._updateChildWidgets}),i((()=>[this.messages,this.toggleSiblingsVisibility]),this._updateChildWidgets,t)])}destroy(){this._destroyChildWidgets()}render(){const e=this.node,s=e.isRoot,i=e.isLeaf;return e.isDiscipline&&i?c("div",{key:`${e.id}-empty`}):c("div",{"aria-expanded":e.collapsed?"false":"true",bind:this,class:this.classes(b.base,b.level(e.level),{[b.root]:s,[b.leaf]:i}),key:e.id,onkeydown:this._onKeydown,role:"treeitem",tabIndex:i?void 0:0},c("label",{bind:this,class:b.label,onclick:this._onCheckboxToggle},this._renderCollapseToggle(),this._renderCheckbox(),c("span",null,e.title)),this._renderChildren(e))}_renderCheckbox(){const e=this.node.visible,s=!0===e,i=null===e,t=s?this.messages?.hideSublayer:this.messages?.showSublayer;return c("button",{"aria-checked":s?"true":"false","aria-label":t,bind:this,class:this.classes(b.checkbox,{[b.checkboxChecked]:s,[d.checkMark]:s,[b.checkboxIndeterminate]:i,[d.minus]:i}),onclick:this._onCheckboxToggle,role:"checkbox",title:t,type:"button"})}_renderCollapseToggle(){if(!this.node.hasChildren)return null;const e=this.node.collapsed,s=e?this.messages?.expand:this.messages?.collapse;return c("div",{"aria-label":s,bind:this,class:this.classes(b.collapseToggle,d.right,{[b.collapseToggleCollapsed]:e}),onclick:this._onCollapseToggle,title:s})}_renderChildren(e){return!e.hasChildren||e.collapsed?null:c("div",{class:b.children},this._childWidgets.map((e=>e.render())))}_onKeydown(e){switch(e.key){case"Space":case"Enter":if(!e.target.classList.contains(b.base))return;e.stopPropagation(),this.node.toggleVisibility();break;case"ArrowLeft":e.stopPropagation(),this.node.toggleCollapsed(!n(this.container));break;case"ArrowRight":e.stopPropagation(),this.node.toggleCollapsed(n(this.container))}}_onCheckboxToggle(e){e.preventDefault(),e.stopPropagation();(e.metaKey||e.ctrlKey)&&this.toggleSiblingsVisibility?this.node.toggleAllSiblingsVisibility():this.node.toggleVisibility()}_onCollapseToggle(e){e.preventDefault(),e.stopPropagation(),this.node.toggleCollapsed()}_destroyChildWidgets(){this._childWidgets.forEach((e=>e.destroy())),this._childWidgets=[]}};e([o({type:a})],u.prototype,"node",void 0),e([o()],u.prototype,"messages",void 0),e([o({nonNullable:!0})],u.prototype,"toggleSiblingsVisibility",void 0),e([o()],u.prototype,"_childWidgets",void 0),u=h=e([l("esri.widgets.BuildingExplorer.BuildingDisciplinesTree.BuildingDisciplinesNode")],u);const y=u;export{y as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as s}from"../../../chunks/tslib.es6.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as e}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import o from"./BuildingDisciplinesNode.js";import"../../support/widgetUtils.js";import{tsx as t}from"../../support/jsxFactory.js";const p={expand:"expand",collapse:"collapse",hideSublayer:"hideSublayer",showSublayer:"showSublayer"},l={base:"esri-building-disciplines-tree"};let a=class extends r{constructor(s){super(s),this.toggleSiblingsVisibility=!1}render(){const{vm:s}=this,i=this.toggleSiblingsVisibility,e=this.messages??p;return t("div",{role:"tree",class:l.base},s.root.children.toArray().reverse().map((s=>t(o,{node:s,messages:e,toggleSiblingsVisibility:i}))))}};s([i()],a.prototype,"vm",void 0),s([i()],a.prototype,"messages",void 0),s([i()],a.prototype,"toggleSiblingsVisibility",void 0),a=s([e("esri.widgets.BuildingExplorer.BuildingDisciplinesTree.BuildingDisciplinesTree")],a);const c=a;export{c as default};
5
+ import{_ as s}from"../../../chunks/tslib.es6.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as e}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import o from"./BuildingDisciplinesNode.js";import"../../support/widgetUtils.js";import{tsx as t}from"../../support/jsxFactory.js";const p={expand:"expand",collapse:"collapse",hideSublayer:"hideSublayer",showSublayer:"showSublayer"},l={base:"esri-building-disciplines-tree"};let a=class extends r{constructor(s){super(s),this.toggleSiblingsVisibility=!1}render(){const{vm:s}=this,i=this.toggleSiblingsVisibility,e=this.messages??p;return t("div",{class:l.base,role:"tree"},s.root.children.toArray().reverse().map((s=>t(o,{messages:e,node:s,toggleSiblingsVisibility:i}))))}};s([i()],a.prototype,"vm",void 0),s([i()],a.prototype,"messages",void 0),s([i()],a.prototype,"toggleSiblingsVisibility",void 0),a=s([e("esri.widgets.BuildingExplorer.BuildingDisciplinesTree.BuildingDisciplinesTree")],a);const c=a;export{c as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{on as t}from"../../../core/events.js";import{clamp as s}from"../../../core/mathUtils.js";import{watch as i,initial as l}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{l as h,a,b as v,c as d,d as _,e as p,f as g,g as c,h as u,i as m,j as L}from"../../../chunks/constants.js";import{css as y}from"./css.js";import{Label as P}from"./Label.js";import{LevelItem as b}from"./LevelItem.js";import{storeNode as f}from"../../support/widgetUtils.js";import{tsx as C}from"../../support/jsxFactory.js";const w={selectLevel:"selectLevel",clearLevel:"clearLevel",nextLevel:"nextLevel",previousLevel:"previousLevel",currentLevel:"{{value}}"};let W=class extends r{constructor(e,t){super(e,t),this._levelHandlesKey="levelHandles",this._levelEventHandlesKey="levelEventHandles",this._levelWidgets=[],this._labelWidget=new P({onClear:()=>this.vm.clear()}),this._hoveredLevel=null,this._expandedLevelsHeight=void 0,this._normalizedPointerPosition=0,this._hovering=!1,this._containerPosTop=null,this._levelsContainer=null,this._onPointerUp=()=>{if(window.getSelection()?.removeAllRanges(),null==this._hoveredLevel)return;const{vm:e}=this;e.enabled&&this._hoveredLevel===e.value?e.clear():e.select(this._hoveredLevel)},this._onPointerEnter=()=>{this._hovering||null==this._levelsContainer||(this._hovering=!0,this._containerPosTop=this._levelsContainer.getBoundingClientRect().top??0)},this._onPointerLeave=()=>{this._hovering&&(this._normalizedPointerPosition=0,this._hoveredLevel=null,this._hovering=!1)},this._onPointerMove=e=>{if(!this._hovering)return!1;if(window.getSelection()?.removeAllRanges(),null!=this._containerPosTop){const t=this._containerPosTop,s=_*L,i=this._expandedLevelsMargin;let l=this._levelsHeight,o=t+s+i;const n=this._levelHeight/2;o+=n,l-=n;let r=(e.clientY-o)/l;r+=c,this._normalizedPointerPosition=r}return!1}}postInitialize(){this.addHandles([i((()=>this._levelsContainer),(()=>this._onContainerChange()),l),i((()=>this._levels),(()=>this._createLevelWidgets()),l),i((()=>this.messages),(()=>{this._labelWidget.messages=this.messages??w}),l)])}destroy(){this._levelWidgets.forEach((e=>e.destroy())),this._labelWidget.destroy()}get _levels(){return this.vm.allowedValues}get _numLevels(){return this._levels.length}get _levelsHeight(){return Math.round(this._levelHeight*this._numLevels)}get _expandedLevelsMargin(){return Math.round(((this._expandedLevelsHeight??0)-this._levelsHeight)/2)}get _levelWidth(){const{levelWidthNominator:e,levelWidthConstant:t}=u,i=e/Math.sqrt(this._numLevels)+t;return Math.round(s(i,a,h))}get _levelHeight(){const e=m,t=2*e/Math.sqrt(this._numLevels);return Math.round(s(t,2,e))}get _gaussianFactor(){const e=this._numLevels;return e/Math.log(v*e)*d}get _levelClosestToPointer(){if(!this._hovering)return null;const e=this._numLevels-1,t=this._normalizedPointerPosition;return e>=0&&null!=t?this._levels[Math.round((1-t)*e)]:null}render(){const e=this._levelWidgets.length,t=e>1?this._levelWidgets.map((e=>e.render())):null,s=_*L,i=-s/L,l=this._levelsHeight,o=l+2*s;return C("div",{bind:this,key:this,class:this.classes("esri-widget",y.container,{[y.animateLevel]:!this._hovering,[y.noLevel]:e<2}),onkeydown:this._onKeyDown},this._renderLabelContainer(),C("div",{bind:this,class:y.levelsContainer,styles:{height:`${o}px`,marginTop:`${i}px`,marginBottom:`${i}px`},onfocus:this._onFocus,afterCreate:f,"data-node-ref":"_levelsContainer"},C("div",{styles:{height:`${l}px`,margin:_-this._expandedLevelsMargin+"px 0 0 0"},class:y.innerLevelsContainer},t)))}_renderLabelContainer(){const e=this.messages??w,t=e.previousLevel,s=e.nextLevel;return C("div",{class:y.labelContainer,tabIndex:0},C("button",{bind:this,class:y.arrowUp,disabled:!this.vm.hasNext,onclick:this._onArrowUpClick,"aria-label":s,title:s,type:"button"}),this._labelWidget.render(),C("button",{bind:this,class:y.arrowDown,disabled:!this.vm.hasPrevious,onclick:this._onArrowDownClick,"aria-label":t,title:t,type:"button"}))}_updateComponents(){const e=this.messages??w,t=this.vm.enabled?this.vm.value:null,s=null!=this._hoveredLevel?this._hoveredLevel:t;this._levelWidgets.forEach((s=>{const i=this.vm.getValueLabel(s.level);s.label=null!=i?i:e.currentLevel?.replace("{{level}}",String(s.level)),s.active=s.level===t,s.hovering=s.level===this._hoveredLevel})),this._labelWidget.level=s,this._labelWidget.active=s===t,this._labelWidget.hovering=null!=this._hoveredLevel}_createLevelWidgets(){this._levelWidgets.forEach((e=>e.destroy())),this._levelWidgets=this._levels.map((e=>new b({level:e,onSelect:()=>this._onLevelToggle(e)}))),this.removeHandles(this._levelHandlesKey),this.addHandles([i((()=>{const{vm:e}=this;return[this.messages,e?.value,e?.enabled,this._hoveredLevel,this._hovering]}),(()=>this._updateComponents()),l),i((()=>[this._normalizedPointerPosition,this._hovering]),(()=>this._onPointerPositionChange()),l),i((()=>this._levelWidth),(e=>this._levelWidgets.forEach((t=>t.width=e))),l)],this._levelHandlesKey)}_onContainerChange(){const e=this._levelsContainer;null!=e&&(this.removeHandles(this._levelEventHandlesKey),this.addHandles([t(e,"pointerenter",this._onPointerEnter),t(e,"pointerover",this._onPointerEnter),t(e,"pointerleave",this._onPointerLeave),t(e,"pointerup",this._onPointerUp),t(e,"pointermove",this._onPointerMove)],this._levelEventHandlesKey))}_onKeyDown(e){switch(e.key){case"ArrowDown":case"ArrowLeft":e.preventDefault(),e.stopPropagation(),this.vm.previous(),this._focusCurrentLevel();break;case"ArrowUp":case"ArrowRight":e.preventDefault(),e.stopPropagation(),this.vm.next(),this._focusCurrentLevel()}}_focusCurrentLevel(){const e=this._levelWidgets.find((e=>e.level===this.vm.value));e&&e.focus()}_onFocus(){this._hoveredLevel=this._levels.length>0?this._levels[0]:null}_onLevelToggle(e){const{vm:t}=this;t.enabled&&t.value===e?t.clear():t.select(e)}_onArrowUpClick(){this.vm.next()}_onArrowDownClick(){this.vm.previous()}_onPointerPositionChange(){let e=0;this._levelWidgets.forEach(((t,s)=>{const{width:i,height:l}=this._getLevelWidgetSize(s);t.height=l,t.width=i,e+=l})),this._hoveredLevel=this._levelClosestToPointer;const t=this._expandedLevelsHeight;(null==t||Math.abs(t-e)>30)&&(this._expandedLevelsHeight=e)}_getLevelWidgetSize(e){const t={width:this._levelWidth,height:this._levelHeight};if(this._hovering){const s=this._getGaussianFactor(e,this._normalizedPointerPosition);t.width+=p*s,t.height+=g*s}return t}_getGaussianFactor(e,t){const s=this._numLevels-1,i=(s-e)/s,l=this._gaussianFactor*(i-t);return Math.exp(-(l**2))}};e([o()],W.prototype,"vm",void 0),e([o()],W.prototype,"messages",void 0),e([o()],W.prototype,"_levelWidgets",void 0),e([o()],W.prototype,"_labelWidget",void 0),e([o()],W.prototype,"_hoveredLevel",void 0),e([o()],W.prototype,"_levels",null),e([o()],W.prototype,"_numLevels",null),e([o({readOnly:!0})],W.prototype,"_levelsHeight",null),e([o()],W.prototype,"_expandedLevelsHeight",void 0),e([o({readOnly:!0})],W.prototype,"_expandedLevelsMargin",null),e([o({readOnly:!0})],W.prototype,"_levelWidth",null),e([o({readOnly:!0})],W.prototype,"_levelHeight",null),e([o({readOnly:!0})],W.prototype,"_gaussianFactor",null),e([o({readOnly:!0})],W.prototype,"_levelClosestToPointer",null),e([o({type:Number,range:{min:0,max:1}})],W.prototype,"_normalizedPointerPosition",void 0),e([o()],W.prototype,"_hovering",void 0),e([o()],W.prototype,"_containerPosTop",void 0),e([o()],W.prototype,"_levelsContainer",void 0),W=e([n("esri.widgets.BuildingExplorer.BuildingLevelPicker.BuildingLevelPicker")],W);const H=W;export{H as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{on as t}from"../../../core/events.js";import{clamp as s}from"../../../core/mathUtils.js";import{watch as i,initial as l}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{l as h,a,b as v,c as d,d as _,e as p,f as g,g as c,h as u,i as m,j as L}from"../../../chunks/constants.js";import{css as y}from"./css.js";import{Label as P}from"./Label.js";import{LevelItem as b}from"./LevelItem.js";import{storeNode as f}from"../../support/widgetUtils.js";import{tsx as C}from"../../support/jsxFactory.js";const w={selectLevel:"selectLevel",clearLevel:"clearLevel",nextLevel:"nextLevel",previousLevel:"previousLevel",currentLevel:"{{value}}"};let W=class extends r{constructor(e,t){super(e,t),this._levelHandlesKey="levelHandles",this._levelEventHandlesKey="levelEventHandles",this._levelWidgets=[],this._labelWidget=new P({onClear:()=>this.vm.clear()}),this._hoveredLevel=null,this._expandedLevelsHeight=void 0,this._normalizedPointerPosition=0,this._hovering=!1,this._containerPosTop=null,this._levelsContainer=null,this._onPointerUp=()=>{if(window.getSelection()?.removeAllRanges(),null==this._hoveredLevel)return;const{vm:e}=this;e.enabled&&this._hoveredLevel===e.value?e.clear():e.select(this._hoveredLevel)},this._onPointerEnter=()=>{this._hovering||null==this._levelsContainer||(this._hovering=!0,this._containerPosTop=this._levelsContainer.getBoundingClientRect().top??0)},this._onPointerLeave=()=>{this._hovering&&(this._normalizedPointerPosition=0,this._hoveredLevel=null,this._hovering=!1)},this._onPointerMove=e=>{if(!this._hovering)return!1;if(window.getSelection()?.removeAllRanges(),null!=this._containerPosTop){const t=this._containerPosTop,s=_*L,i=this._expandedLevelsMargin;let l=this._levelsHeight,o=t+s+i;const n=this._levelHeight/2;o+=n,l-=n;let r=(e.clientY-o)/l;r+=c,this._normalizedPointerPosition=r}return!1}}postInitialize(){this.addHandles([i((()=>this._levelsContainer),(()=>this._onContainerChange()),l),i((()=>this._levels),(()=>this._createLevelWidgets()),l),i((()=>this.messages),(()=>{this._labelWidget.messages=this.messages??w}),l)])}destroy(){this._levelWidgets.forEach((e=>e.destroy())),this._labelWidget.destroy()}get _levels(){return this.vm.allowedValues}get _numLevels(){return this._levels.length}get _levelsHeight(){return Math.round(this._levelHeight*this._numLevels)}get _expandedLevelsMargin(){return Math.round(((this._expandedLevelsHeight??0)-this._levelsHeight)/2)}get _levelWidth(){const{levelWidthNominator:e,levelWidthConstant:t}=u,i=e/Math.sqrt(this._numLevels)+t;return Math.round(s(i,a,h))}get _levelHeight(){const e=m,t=2*e/Math.sqrt(this._numLevels);return Math.round(s(t,2,e))}get _gaussianFactor(){const e=this._numLevels;return e/Math.log(v*e)*d}get _levelClosestToPointer(){if(!this._hovering)return null;const e=this._numLevels-1,t=this._normalizedPointerPosition;return e>=0&&null!=t?this._levels[Math.round((1-t)*e)]:null}render(){const e=this._levelWidgets.length,t=e>1?this._levelWidgets.map((e=>e.render())):null,s=_*L,i=-s/L,l=this._levelsHeight,o=l+2*s;return C("div",{bind:this,class:this.classes("esri-widget",y.container,{[y.animateLevel]:!this._hovering,[y.noLevel]:e<2}),key:this,onkeydown:this._onKeyDown},this._renderLabelContainer(),C("div",{afterCreate:f,bind:this,class:y.levelsContainer,"data-node-ref":"_levelsContainer",onfocus:this._onFocus,styles:{height:`${o}px`,marginTop:`${i}px`,marginBottom:`${i}px`}},C("div",{class:y.innerLevelsContainer,styles:{height:`${l}px`,margin:_-this._expandedLevelsMargin+"px 0 0 0"}},t)))}_renderLabelContainer(){const e=this.messages??w,t=e.previousLevel,s=e.nextLevel;return C("div",{class:y.labelContainer,tabIndex:0},C("button",{"aria-label":s,bind:this,class:y.arrowUp,disabled:!this.vm.hasNext,onclick:this._onArrowUpClick,title:s,type:"button"}),this._labelWidget.render(),C("button",{"aria-label":t,bind:this,class:y.arrowDown,disabled:!this.vm.hasPrevious,onclick:this._onArrowDownClick,title:t,type:"button"}))}_updateComponents(){const e=this.messages??w,t=this.vm.enabled?this.vm.value:null,s=null!=this._hoveredLevel?this._hoveredLevel:t;this._levelWidgets.forEach((s=>{const i=this.vm.getValueLabel(s.level);s.label=null!=i?i:e.currentLevel?.replace("{{level}}",String(s.level)),s.active=s.level===t,s.hovering=s.level===this._hoveredLevel})),this._labelWidget.level=s,this._labelWidget.active=s===t,this._labelWidget.hovering=null!=this._hoveredLevel}_createLevelWidgets(){this._levelWidgets.forEach((e=>e.destroy())),this._levelWidgets=this._levels.map((e=>new b({level:e,onSelect:()=>this._onLevelToggle(e)}))),this.removeHandles(this._levelHandlesKey),this.addHandles([i((()=>{const{vm:e}=this;return[this.messages,e?.value,e?.enabled,this._hoveredLevel,this._hovering]}),(()=>this._updateComponents()),l),i((()=>[this._normalizedPointerPosition,this._hovering]),(()=>this._onPointerPositionChange()),l),i((()=>this._levelWidth),(e=>this._levelWidgets.forEach((t=>t.width=e))),l)],this._levelHandlesKey)}_onContainerChange(){const e=this._levelsContainer;null!=e&&(this.removeHandles(this._levelEventHandlesKey),this.addHandles([t(e,"pointerenter",this._onPointerEnter),t(e,"pointerover",this._onPointerEnter),t(e,"pointerleave",this._onPointerLeave),t(e,"pointerup",this._onPointerUp),t(e,"pointermove",this._onPointerMove)],this._levelEventHandlesKey))}_onKeyDown(e){switch(e.key){case"ArrowDown":case"ArrowLeft":e.preventDefault(),e.stopPropagation(),this.vm.previous(),this._focusCurrentLevel();break;case"ArrowUp":case"ArrowRight":e.preventDefault(),e.stopPropagation(),this.vm.next(),this._focusCurrentLevel()}}_focusCurrentLevel(){const e=this._levelWidgets.find((e=>e.level===this.vm.value));e&&e.focus()}_onFocus(){this._hoveredLevel=this._levels.length>0?this._levels[0]:null}_onLevelToggle(e){const{vm:t}=this;t.enabled&&t.value===e?t.clear():t.select(e)}_onArrowUpClick(){this.vm.next()}_onArrowDownClick(){this.vm.previous()}_onPointerPositionChange(){let e=0;this._levelWidgets.forEach(((t,s)=>{const{width:i,height:l}=this._getLevelWidgetSize(s);t.height=l,t.width=i,e+=l})),this._hoveredLevel=this._levelClosestToPointer;const t=this._expandedLevelsHeight;(null==t||Math.abs(t-e)>30)&&(this._expandedLevelsHeight=e)}_getLevelWidgetSize(e){const t={width:this._levelWidth,height:this._levelHeight};if(this._hovering){const s=this._getGaussianFactor(e,this._normalizedPointerPosition);t.width+=p*s,t.height+=g*s}return t}_getGaussianFactor(e,t){const s=this._numLevels-1,i=(s-e)/s,l=this._gaussianFactor*(i-t);return Math.exp(-(l**2))}};e([o()],W.prototype,"vm",void 0),e([o()],W.prototype,"messages",void 0),e([o()],W.prototype,"_levelWidgets",void 0),e([o()],W.prototype,"_labelWidget",void 0),e([o()],W.prototype,"_hoveredLevel",void 0),e([o()],W.prototype,"_levels",null),e([o()],W.prototype,"_numLevels",null),e([o({readOnly:!0})],W.prototype,"_levelsHeight",null),e([o()],W.prototype,"_expandedLevelsHeight",void 0),e([o({readOnly:!0})],W.prototype,"_expandedLevelsMargin",null),e([o({readOnly:!0})],W.prototype,"_levelWidth",null),e([o({readOnly:!0})],W.prototype,"_levelHeight",null),e([o({readOnly:!0})],W.prototype,"_gaussianFactor",null),e([o({readOnly:!0})],W.prototype,"_levelClosestToPointer",null),e([o({type:Number,range:{min:0,max:1}})],W.prototype,"_normalizedPointerPosition",void 0),e([o()],W.prototype,"_hovering",void 0),e([o()],W.prototype,"_containerPosTop",void 0),e([o()],W.prototype,"_levelsContainer",void 0),W=e([n("esri.widgets.BuildingExplorer.BuildingLevelPicker.BuildingLevelPicker")],W);const H=W;export{H as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as s}from"../../../core/accessorSupport/decorators/subclass.js";import o from"../../Widget.js";import{legacyIcon as r}from"../../support/legacyIcon.js";import"../../support/widgetUtils.js";import{tsx as l}from"../../support/jsxFactory.js";const i="esri-building-level-picker-label",c={base:i,active:`${i}--active`,hover:`${i}--hover`,empty:`${i}--empty`,clearButton:`${i}__clear-button`},a={clearLevel:"",selectLevel:""};let p=class extends o{constructor(e,t){super(e,t),this.level=null,this.active=!1,this.hovering=!1,this.onClear=()=>{}}render(){const e=this.messages??a;if(null==this.level)return l("div",{class:c.empty,title:e.selectLevel},e.selectLevel);const t=e.clearLevel;return l("div",{bind:this,class:this.classes(c.base,{[c.active]:this.active,[c.hover]:this.hovering}),onclick:this.onClear,title:t,"aria-label":t},l("span",null,this.level),l("button",{bind:this,class:this.classes(c.clearButton,r.close),disabled:!this.active,onclick:this.onClear,type:"button"}))}};e([t()],p.prototype,"level",void 0),e([t({nonNullable:!0})],p.prototype,"active",void 0),e([t({nonNullable:!0})],p.prototype,"hovering",void 0),e([t()],p.prototype,"messages",void 0),e([t({nonNullable:!0})],p.prototype,"onClear",void 0),p=e([s("esri.widgets.BuildingExplorer.BuildingLevelPicker.Label")],p);export{p as Label};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as s}from"../../../core/accessorSupport/decorators/subclass.js";import o from"../../Widget.js";import{legacyIcon as r}from"../../support/legacyIcon.js";import"../../support/widgetUtils.js";import{tsx as l}from"../../support/jsxFactory.js";const i="esri-building-level-picker-label",c={base:i,active:`${i}--active`,hover:`${i}--hover`,empty:`${i}--empty`,clearButton:`${i}__clear-button`},a={clearLevel:"",selectLevel:""};let p=class extends o{constructor(e,t){super(e,t),this.level=null,this.active=!1,this.hovering=!1,this.onClear=()=>{}}render(){const e=this.messages??a;if(null==this.level)return l("div",{class:c.empty,title:e.selectLevel},e.selectLevel);const t=e.clearLevel;return l("div",{"aria-label":t,bind:this,class:this.classes(c.base,{[c.active]:this.active,[c.hover]:this.hovering}),onclick:this.onClear,title:t},l("span",null,this.level),l("button",{bind:this,class:this.classes(c.clearButton,r.close),disabled:!this.active,onclick:this.onClear,type:"button"}))}};e([t()],p.prototype,"level",void 0),e([t({nonNullable:!0})],p.prototype,"active",void 0),e([t({nonNullable:!0})],p.prototype,"hovering",void 0),e([t()],p.prototype,"messages",void 0),e([t({nonNullable:!0})],p.prototype,"onClear",void 0),p=e([s("esri.widgets.BuildingExplorer.BuildingLevelPicker.Label")],p);export{p as Label};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import s from"../../Widget.js";import{storeNode as i}from"../../support/widgetUtils.js";import{tsx as r}from"../../support/jsxFactory.js";const l="esri-building-level-picker-item",n={container:l,base:`${l}__base`,hover:`${l}--hover`,active:`${l}--active`};let a=class extends s{constructor(e,t){super(e,t),this.active=!1,this.hovering=!1,this.width=0,this.height=0,this.onSelect=()=>{},this.onFocus=()=>{},this.onBlur=()=>{},this._baseElement=null}render(){return r("div",{key:this,bind:this,class:this.classes(n.container,{[n.active]:this.active,[n.hover]:this.hovering}),styles:{height:`${this.height}px`}},this._renderBase())}focus(){null!=this._baseElement&&this._baseElement.focus()}_renderBase(){const e=this.width,t=.8*this.width;return r("div",{class:n.base,styles:{width:`${Math.round(e)}px`,height:`${Math.round(e)}px`}},r("button",{bind:this,class:"rect",styles:{width:`${Math.round(t)}px`,height:`${Math.round(t)}px`},onclick:this.onSelect,onfocus:this.onFocus,onblur:this.onBlur,afterCreate:i,"data-node-ref":"_baseElement","aria-label":this.label,title:this.label??"",tabIndex:-1,type:"button"}))}};e([t({nonNullable:!0})],a.prototype,"level",void 0),e([t({nonNullable:!0})],a.prototype,"active",void 0),e([t({nonNullable:!0})],a.prototype,"hovering",void 0),e([t({nonNullable:!0})],a.prototype,"width",void 0),e([t({nonNullable:!0})],a.prototype,"height",void 0),e([t({nonNullable:!0})],a.prototype,"onSelect",void 0),e([t({nonNullable:!0})],a.prototype,"onFocus",void 0),e([t({nonNullable:!0})],a.prototype,"onBlur",void 0),a=e([o("esri.widgets.BuildingExplorer.BuildingLevelPicker.LevelItem")],a);export{a as LevelItem};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import s from"../../Widget.js";import{storeNode as i}from"../../support/widgetUtils.js";import{tsx as r}from"../../support/jsxFactory.js";const l="esri-building-level-picker-item",n={container:l,base:`${l}__base`,hover:`${l}--hover`,active:`${l}--active`};let a=class extends s{constructor(e,t){super(e,t),this.active=!1,this.hovering=!1,this.width=0,this.height=0,this.onSelect=()=>{},this.onFocus=()=>{},this.onBlur=()=>{},this._baseElement=null}render(){return r("div",{bind:this,class:this.classes(n.container,{[n.active]:this.active,[n.hover]:this.hovering}),key:this,styles:{height:`${this.height}px`}},this._renderBase())}focus(){null!=this._baseElement&&this._baseElement.focus()}_renderBase(){const e=this.width,t=.8*this.width;return r("div",{class:n.base,styles:{width:`${Math.round(e)}px`,height:`${Math.round(e)}px`}},r("button",{afterCreate:i,"aria-label":this.label,bind:this,class:"rect","data-node-ref":"_baseElement",onblur:this.onBlur,onclick:this.onSelect,onfocus:this.onFocus,styles:{width:`${Math.round(t)}px`,height:`${Math.round(t)}px`},tabIndex:-1,title:this.label??"",type:"button"}))}};e([t({nonNullable:!0})],a.prototype,"level",void 0),e([t({nonNullable:!0})],a.prototype,"active",void 0),e([t({nonNullable:!0})],a.prototype,"hovering",void 0),e([t({nonNullable:!0})],a.prototype,"width",void 0),e([t({nonNullable:!0})],a.prototype,"height",void 0),e([t({nonNullable:!0})],a.prototype,"onSelect",void 0),e([t({nonNullable:!0})],a.prototype,"onFocus",void 0),e([t({nonNullable:!0})],a.prototype,"onBlur",void 0),a=e([o("esri.widgets.BuildingExplorer.BuildingLevelPicker.LevelItem")],a);export{a as LevelItem};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{watch as s,initial as t}from"../../../core/reactiveUtils.js";import{property as r}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import o from"../../Widget.js";import{isRTL as a}from"../../support/widgetUtils.js";import{tsx as n}from"../../support/jsxFactory.js";const h={nextPhase:"nextPhase",previousPhase:"previousPhase",currentPhase:"{{value}}"},c="esri-building-phase-picker",l={container:`${c}`,phasesContainer:`${c}__phases-container`,phase:`${c}__phase`,phaseActive:`${c}__phase--active`,phaseCurrent:`${c}__phase--current`,divider:`${c}__divider`,dividerActive:`${c}__divider--active`,arrowLeft:`${c}__arrow-left`,arrowRight:`${c}__arrow-right`};let u=class extends o{constructor(e,s){super(e,s),this._phasesContainer=null,this._shouldScrollCurrentPhaseIntoView=!0,this._shouldFocusCurrentPhase=!1,this._onKeyDown=e=>{const{vm:s}=this;switch(e.key){case"ArrowDown":case"ArrowLeft":e.stopPropagation(),e.preventDefault(),s.previous(),this._shouldFocusCurrentPhase=!0;break;case"ArrowUp":case"ArrowRight":e.stopPropagation(),e.preventDefault(),s.next(),this._shouldFocusCurrentPhase=!0}},this._onArrowLeftClick=()=>{this.vm.previous()},this._onArrowRightClick=()=>{this.vm.next()},this._onPhasesContainerAfterCreate=e=>{this._phasesContainer=e,requestAnimationFrame(this._scrollOrFocusPhase)},this._scrollOrFocusPhase=()=>{const e=this._phasesContainer;if(this.destroyed||null==e)return;const s=e.querySelector(`.${l.phaseCurrent}`);if(s){if(this._shouldScrollCurrentPhaseIntoView){const t=e.offsetWidth,r=s.offsetLeft,i=s.offsetWidth;e.scrollLeft=-t/2+r-i/2,this._shouldScrollCurrentPhaseIntoView=!1}this._shouldFocusCurrentPhase&&(s.focus(),this._shouldFocusCurrentPhase=!1)}}}initialize(){this.addHandles(s((()=>[this._currentPhase,this._phasesContainer,this.container]),(()=>{this._shouldScrollCurrentPhaseIntoView=!0,requestAnimationFrame(this._scrollOrFocusPhase)}),t))}get _phases(){return this.vm.allowedValues}get _currentPhase(){const{vm:e}=this;return e.enabled?e.value:null}render(){if(this._phases.length<2)return n("div",{key:"no-phases"});const{vm:e,container:s,messages:t}=this,{previousPhase:r,nextPhase:i}=t??h,o=a(s);return n("div",{class:this.classes("esri-widget",l.container),key:this,onkeydown:this._onKeyDown},n("button",{type:"button",class:o?l.arrowRight:l.arrowLeft,disabled:!e.hasPrevious,"aria-label":r,title:r,onclick:this._onArrowLeftClick}),n("div",{class:l.phasesContainer,afterCreate:this._onPhasesContainerAfterCreate},this._renderPhaseButtons()),n("button",{type:"button",class:o?l.arrowLeft:l.arrowRight,disabled:!e.hasNext,"aria-label":i,title:i,onclick:this._onArrowRightClick}))}_renderPhaseButtons(){const e=this._phases,s=this._currentPhase,t=[];for(let r=0;r<e.length;++r){const i=e[r],o={phase:i,active:null!=s&&i<=s,current:null!=s&&i===s};r>0&&t.push(this._renderDivider(o)),t.push(this._renderPhaseButton(o))}return t}_renderPhaseButton({phase:e,active:s,current:t}){const{vm:r}=this,i=r.getValueLabel(e);return n("button",{key:`phase-${e}`,class:this.classes(l.phase,{[l.phaseActive]:s,[l.phaseCurrent]:t}),"aria-label":i,title:i,onclick:()=>r.select(e),type:"button"},e)}_renderDivider({phase:e,active:s}){return n("div",{key:`phase-divider-${e}`,class:this.classes(l.divider,{[l.dividerActive]:s})})}};e([r({nonNullable:!0})],u.prototype,"vm",void 0),e([r()],u.prototype,"messages",void 0),e([r()],u.prototype,"_phases",null),e([r()],u.prototype,"_currentPhase",null),e([r()],u.prototype,"_phasesContainer",void 0),u=e([i("esri.widgets.BuildingExplorer.BuildingPhasePicker.BuildingPhasePicker")],u);const p=u;export{p as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{watch as s,initial as t}from"../../../core/reactiveUtils.js";import{property as r}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import o from"../../Widget.js";import{isRTL as a}from"../../support/widgetUtils.js";import{tsx as n}from"../../support/jsxFactory.js";const h={nextPhase:"nextPhase",previousPhase:"previousPhase",currentPhase:"{{value}}"},c="esri-building-phase-picker",l={container:`${c}`,phasesContainer:`${c}__phases-container`,phase:`${c}__phase`,phaseActive:`${c}__phase--active`,phaseCurrent:`${c}__phase--current`,divider:`${c}__divider`,dividerActive:`${c}__divider--active`,arrowLeft:`${c}__arrow-left`,arrowRight:`${c}__arrow-right`};let u=class extends o{constructor(e,s){super(e,s),this._phasesContainer=null,this._shouldScrollCurrentPhaseIntoView=!0,this._shouldFocusCurrentPhase=!1,this._onKeyDown=e=>{const{vm:s}=this;switch(e.key){case"ArrowDown":case"ArrowLeft":e.stopPropagation(),e.preventDefault(),s.previous(),this._shouldFocusCurrentPhase=!0;break;case"ArrowUp":case"ArrowRight":e.stopPropagation(),e.preventDefault(),s.next(),this._shouldFocusCurrentPhase=!0}},this._onArrowLeftClick=()=>{this.vm.previous()},this._onArrowRightClick=()=>{this.vm.next()},this._onPhasesContainerAfterCreate=e=>{this._phasesContainer=e,requestAnimationFrame(this._scrollOrFocusPhase)},this._scrollOrFocusPhase=()=>{const e=this._phasesContainer;if(this.destroyed||null==e)return;const s=e.querySelector(`.${l.phaseCurrent}`);if(s){if(this._shouldScrollCurrentPhaseIntoView){const t=e.offsetWidth,r=s.offsetLeft,i=s.offsetWidth;e.scrollLeft=-t/2+r-i/2,this._shouldScrollCurrentPhaseIntoView=!1}this._shouldFocusCurrentPhase&&(s.focus(),this._shouldFocusCurrentPhase=!1)}}}initialize(){this.addHandles(s((()=>[this._currentPhase,this._phasesContainer,this.container]),(()=>{this._shouldScrollCurrentPhaseIntoView=!0,requestAnimationFrame(this._scrollOrFocusPhase)}),t))}get _phases(){return this.vm.allowedValues}get _currentPhase(){const{vm:e}=this;return e.enabled?e.value:null}render(){if(this._phases.length<2)return n("div",{key:"no-phases"});const{vm:e,container:s,messages:t}=this,{previousPhase:r,nextPhase:i}=t??h,o=a(s);return n("div",{class:this.classes("esri-widget",l.container),key:this,onkeydown:this._onKeyDown},n("button",{"aria-label":r,class:o?l.arrowRight:l.arrowLeft,disabled:!e.hasPrevious,onclick:this._onArrowLeftClick,title:r,type:"button"}),n("div",{afterCreate:this._onPhasesContainerAfterCreate,class:l.phasesContainer},this._renderPhaseButtons()),n("button",{"aria-label":i,class:o?l.arrowLeft:l.arrowRight,disabled:!e.hasNext,onclick:this._onArrowRightClick,title:i,type:"button"}))}_renderPhaseButtons(){const e=this._phases,s=this._currentPhase,t=[];for(let r=0;r<e.length;++r){const i=e[r],o={phase:i,active:null!=s&&i<=s,current:null!=s&&i===s};r>0&&t.push(this._renderDivider(o)),t.push(this._renderPhaseButton(o))}return t}_renderPhaseButton({phase:e,active:s,current:t}){const{vm:r}=this,i=r.getValueLabel(e);return n("button",{"aria-label":i,class:this.classes(l.phase,{[l.phaseActive]:s,[l.phaseCurrent]:t}),key:`phase-${e}`,onclick:()=>r.select(e),title:i,type:"button"},e)}_renderDivider({phase:e,active:s}){return n("div",{class:this.classes(l.divider,{[l.dividerActive]:s}),key:`phase-divider-${e}`})}};e([r({nonNullable:!0})],u.prototype,"vm",void 0),e([r()],u.prototype,"messages",void 0),e([r()],u.prototype,"_phases",null),e([r()],u.prototype,"_currentPhase",null),e([r()],u.prototype,"_phasesContainer",void 0),u=e([i("esri.widgets.BuildingExplorer.BuildingPhasePicker.BuildingPhasePicker")],u);const p=u;export{p as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import{cast as i}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import l from"./BuildingExplorer/BuildingExplorerViewModel.js";import{css as o}from"./BuildingExplorer/css.js";import n from"./BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js";import a from"./BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js";import d from"./BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js";import{globalCss as p}from"./support/globalCss.js";import{Heading as c}from"./support/Heading.js";import{legacyIcon as g}from"./support/legacyIcon.js";import{classes as u}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as h}from"./support/jsxFactory.js";const v={levels:!0,phases:!0,disciplines:!0};let y=class extends r{constructor(e,s){super(e,s),this._defaultViewModel=new l,this.viewModel=this._defaultViewModel,this.visibleElements={...v},this.headingLevel=3,this.iconClass=o.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.toggleSiblingsVisibility=!1}destroy(){this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get layers(){return this.viewModel.layers}set layers(e){this.viewModel.layers=e}_castVisibleElements(e){return{...v,...e}}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}render(){const e=this.viewModel,s="disabled"===e.state||!e.isSupported;return h("div",{key:this,class:u(p.widget,o.base,p.panel,{[p.widgetDisabled]:s}),"aria-label":this.messages.widgetLabel},this._renderContent())}_renderContent(){const e=this.viewModel,s=this.messages;if(!e.isSupported)return h("p",{class:o.panelError},s.unsupported);if(!e.layers.length)return h("p",{class:o.panelError},s.noData);switch(e.state){case"loading":return this._renderLoadingIndicator();case"ready":return h("div",{key:"content",class:o.content},this._renderLevelPickerSection(),this._renderPhasePickerSection(),this._renderDisciplinesSection());case"failed":return h("p",{class:o.panelError},s.failed);default:return null}}_renderLoadingIndicator(){const e=this.messagesCommon.loading;return h("div",{key:"loading-container",role:"presentation",class:o.loadingContainer,"aria-label":e,title:e},h("span",{"aria-hidden":"true",class:u(g.loadingIndicator,p.rotating)}))}_renderLevelPickerSection(){const e=this.viewModel.level,s="ready"===e.state,i=e.allowedValues.length>1;if(!this.visibleElements.levels||!s||!i)return null;const t=this.messages?.level;return h("div",{key:"levels",class:u(o.section,o.levels)},h(c,{level:this.headingLevel},t?.title),h(a,{vm:e,messages:t}))}_renderPhasePickerSection(){const e=this.viewModel.phase,s="ready"===e.state,i=e.allowedValues.length>1;if(!this.visibleElements.phases||!s||!i)return null;const t=this.messages.phase;return h("div",{key:"phases",class:u(o.section,o.phases)},h(c,{level:this.headingLevel},t.title),h(d,{vm:e,messages:t}))}_renderDisciplinesSection(){const e=this.viewModel.disciplines,s="ready"===e.state,i=e.root.hasChildren;if(!this.visibleElements.disciplines||!s||!i)return null;const t=this.messages?.disciplines;return h("div",{key:"disciplines",class:u(o.section,o.disciplines)},h(c,{level:this.headingLevel},t.title),h(n,{vm:e,messages:t,toggleSiblingsVisibility:this.toggleSiblingsVisibility}))}};e([s({type:l})],y.prototype,"viewModel",void 0),e([s()],y.prototype,"view",null),e([s()],y.prototype,"layers",null),e([s()],y.prototype,"visibleElements",void 0),e([i("visibleElements")],y.prototype,"_castVisibleElements",null),e([s()],y.prototype,"headingLevel",void 0),e([s()],y.prototype,"iconClass",void 0),e([s()],y.prototype,"icon",void 0),e([s()],y.prototype,"label",null),e([s(),m("esri/widgets/BuildingExplorer/t9n/BuildingExplorer")],y.prototype,"messages",void 0),e([s(),m("esri/t9n/common")],y.prototype,"messagesCommon",void 0),e([s({nonNullable:!0})],y.prototype,"toggleSiblingsVisibility",void 0),e([s()],y.prototype,"uiStrings",void 0),y=e([t("esri.widgets.BuildingExplorer")],y);const w=y;export{w as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import{cast as i}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import l from"./BuildingExplorer/BuildingExplorerViewModel.js";import{css as o}from"./BuildingExplorer/css.js";import n from"./BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js";import a from"./BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js";import d from"./BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js";import{globalCss as p}from"./support/globalCss.js";import{Heading as c}from"./support/Heading.js";import{legacyIcon as g}from"./support/legacyIcon.js";import{classes as u}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as h}from"./support/jsxFactory.js";const v={levels:!0,phases:!0,disciplines:!0};let y=class extends r{constructor(e,s){super(e,s),this._defaultViewModel=new l,this.viewModel=this._defaultViewModel,this.visibleElements={...v},this.headingLevel=3,this.iconClass=o.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.toggleSiblingsVisibility=!1}destroy(){this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get layers(){return this.viewModel.layers}set layers(e){this.viewModel.layers=e}_castVisibleElements(e){return{...v,...e}}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}render(){const e=this.viewModel,s="disabled"===e.state||!e.isSupported;return h("div",{"aria-label":this.messages.widgetLabel,class:u(p.widget,o.base,p.panel,{[p.widgetDisabled]:s}),key:this},this._renderContent())}_renderContent(){const e=this.viewModel,s=this.messages;if(!e.isSupported)return h("p",{class:o.panelError},s.unsupported);if(!e.layers.length)return h("p",{class:o.panelError},s.noData);switch(e.state){case"loading":return this._renderLoadingIndicator();case"ready":return h("div",{class:o.content,key:"content"},this._renderLevelPickerSection(),this._renderPhasePickerSection(),this._renderDisciplinesSection());case"failed":return h("p",{class:o.panelError},s.failed);default:return null}}_renderLoadingIndicator(){const e=this.messagesCommon.loading;return h("div",{"aria-label":e,class:o.loadingContainer,key:"loading-container",role:"presentation",title:e},h("span",{"aria-hidden":"true",class:u(g.loadingIndicator,p.rotating)}))}_renderLevelPickerSection(){const e=this.viewModel.level,s="ready"===e.state,i=e.allowedValues.length>1;if(!this.visibleElements.levels||!s||!i)return null;const t=this.messages?.level;return h("div",{class:u(o.section,o.levels),key:"levels"},h(c,{level:this.headingLevel},t?.title),h(a,{messages:t,vm:e}))}_renderPhasePickerSection(){const e=this.viewModel.phase,s="ready"===e.state,i=e.allowedValues.length>1;if(!this.visibleElements.phases||!s||!i)return null;const t=this.messages.phase;return h("div",{class:u(o.section,o.phases),key:"phases"},h(c,{level:this.headingLevel},t.title),h(d,{messages:t,vm:e}))}_renderDisciplinesSection(){const e=this.viewModel.disciplines,s="ready"===e.state,i=e.root.hasChildren;if(!this.visibleElements.disciplines||!s||!i)return null;const t=this.messages?.disciplines;return h("div",{class:u(o.section,o.disciplines),key:"disciplines"},h(c,{level:this.headingLevel},t.title),h(n,{messages:t,toggleSiblingsVisibility:this.toggleSiblingsVisibility,vm:e}))}};e([s({type:l})],y.prototype,"viewModel",void 0),e([s()],y.prototype,"view",null),e([s()],y.prototype,"layers",null),e([s()],y.prototype,"visibleElements",void 0),e([i("visibleElements")],y.prototype,"_castVisibleElements",null),e([s()],y.prototype,"headingLevel",void 0),e([s()],y.prototype,"iconClass",void 0),e([s()],y.prototype,"icon",void 0),e([s()],y.prototype,"label",null),e([s(),m("esri/widgets/BuildingExplorer/t9n/BuildingExplorer")],y.prototype,"messages",void 0),e([s(),m("esri/t9n/common")],y.prototype,"messagesCommon",void 0),e([s({nonNullable:!0})],y.prototype,"toggleSiblingsVisibility",void 0),e([s()],y.prototype,"uiStrings",void 0),y=e([t("esri.widgets.BuildingExplorer")],y);const w=y;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.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import t from"./Widget.js";import r from"./Compass/CompassViewModel.js";import{css as i}from"./Compass/css.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as n}from"./support/jsxFactory.js";let c=class extends t{constructor(e,s){super(e,s),this.iconClass=i.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new r,this._reset=()=>{this.viewModel.reset()},this._toRotationTransform=e=>({transform:`rotateZ(${e.z}deg)`})}loadDependencies(){return a({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}reset(){return this.viewModel.reset()}render(){const{orientation:e,state:s}=this.viewModel,o="rotation"===s?"arrow-up":"compass-needle",{messages:t}=this;return n("div",{class:this.classes(i.base,p.widget)},n("calcite-button",{class:p.widgetButton,onclick:this._reset,"aria-label":t.reset,title:t.reset,disabled:"disabled"===s,kind:"neutral",scale:"s",round:!0},n("div",{class:i.iconContainer},n("calcite-icon",{scale:"m",icon:o,styles:this._toRotationTransform(e)}))))}};e([s()],c.prototype,"goToOverride",null),e([s()],c.prototype,"iconClass",void 0),e([s()],c.prototype,"icon",void 0),e([s()],c.prototype,"label",null),e([s(),l("esri/widgets/Compass/t9n/Compass")],c.prototype,"messages",void 0),e([s()],c.prototype,"view",null),e([s({type:r})],c.prototype,"viewModel",void 0),c=e([o("esri.widgets.Compass")],c);const d=c;export{d as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import t from"./Widget.js";import r from"./Compass/CompassViewModel.js";import{css as i}from"./Compass/css.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as n}from"./support/jsxFactory.js";let c=class extends t{constructor(e,s){super(e,s),this.iconClass=i.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new r,this._reset=()=>{this.viewModel.reset()},this._toRotationTransform=e=>({transform:`rotateZ(${e.z}deg)`})}loadDependencies(){return a({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}reset(){return this.viewModel.reset()}render(){const{orientation:e,state:s}=this.viewModel,o="rotation"===s?"arrow-up":"compass-needle",{messages:t}=this;return n("div",{class:this.classes(i.base,p.widget)},n("calcite-button",{"aria-label":t.reset,class:p.widgetButton,disabled:"disabled"===s,kind:"neutral",onclick:this._reset,round:!0,scale:"s",title:t.reset},n("div",{class:i.iconContainer},n("calcite-icon",{icon:o,scale:"m",styles:this._toRotationTransform(e)}))))}};e([s()],c.prototype,"goToOverride",null),e([s()],c.prototype,"iconClass",void 0),e([s()],c.prototype,"icon",void 0),e([s()],c.prototype,"label",null),e([s(),l("esri/widgets/Compass/t9n/Compass")],c.prototype,"messages",void 0),e([s()],c.prototype,"view",null),e([s({type:r})],c.prototype,"viewModel",void 0),c=e([o("esri.widgets.Compass")],c);const d=c;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.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{eventKey as t}from"../core/events.js";import o from"../core/Logger.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import{cast as s}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import a from"./CoordinateConversion/CoordinateConversionViewModel.js";import l from"./CoordinateConversion/support/Conversion.js";import{globalCss as p}from"./support/globalCss.js";import{Heading as d}from"./support/Heading.js";import{legacyIcon as u}from"./support/legacyIcon.js";import{accessibleHandler as c}from"./support/decorators/accessibleHandler.js";import{messageBundle as h}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";import{storeNode as m,isRTL as v}from"./support/widgetUtils.js";const g="esri-coordinate-conversion",b={base:g,captureMode:`${g}--capture-mode`,noBasemap:`${g}--no-basemap`,popup:`${g}__popup`,clipboardPopup:`${g}__clipboard-popup`,conversionList:`${g}__conversion-list`,conversionRow:`${g}__row`,coordDisplay:`${g}__display`,expanded:`${g}__conversions-view--expanded`,expandDown:`${g}__conversions-view--expand-down`,expandUp:`${g}__conversions-view--expand-up`,conversionsView:`${g}__conversions-view`,primarySelect:`${g}__select-primary`,rowSelect:`${g}__select-row`,toolDisplay:`${g}__tools`,modeToggle:`${g}__mode-toggle`,rowButton:`${g}__row-button`,backButton:`${g}__back-button`,convertButton:`${g}__button`,convertButtonSpan:`${g}__convert-button-span`,coordinateInput:`${g}__input-coordinate`,inputForm:`${g}__input-form`,inputFormGroup:`${g}__input-group`,rejectInput:`${g}__input-coordinate--rejected`,sectionHeading:`${g}__heading`,patternInput:`${g}__pattern-input`,settings:`${g}__settings`,settingsFormGroup:`${g}__settings-group`,settingsFormGroupHorizontal:`${g}__settings-group-horizontal`,previewCoordinate:`${g}__preview-coordinate`},y={settingsButton:!0,inputButton:!0,captureButton:!0,expandButton:!0},w=750,C=2500;let f=class extends r{constructor(e,t){super(e,t),this._popupMessage=null,this._popupTimeoutId=void 0,this._clipboardPopupTimeoutId=void 0,this._coordinateInput=null,this._badInput=!1,this._goToEnabled=!1,this._conversionFormat=null,this._settingsFormat=null,this._previewConversion=null,this._expanded=!1,this._clipboardPopupVisible=!1,this._popupVisible=!1,this._settingsVisible=!1,this._inputVisible=!1,this.headingLevel=4,this.messages=null,this.messagesCommon=null,this.orientation="auto",this.viewModel=new a,this.visibleElements={...y}}get conversions(){return this.viewModel.conversions}set conversions(e){this.viewModel.conversions=e}get currentLocation(){return this.viewModel.currentLocation}set currentLocation(e){this.viewModel.currentLocation=e}get formats(){return this.viewModel.formats}set formats(e){this.viewModel.formats=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get mode(){return this.viewModel.mode}set mode(e){this.viewModel.mode=e}set multipleConversions(e){!1===e&&(this._expanded=!1,this.conversions.splice(1,this.conversions.length-1)),this._set("multipleConversions",e)}get multipleConversions(){const e=this._get("multipleConversions");return"boolean"!=typeof e||e}get locationSymbol(){return this.viewModel.locationSymbol}set locationSymbol(e){this.viewModel.locationSymbol=e}get storageEnabled(){return this.viewModel.storageEnabled}set storageEnabled(e){this.viewModel.storageEnabled=e}get storageType(){return this.viewModel.storageType}set storageType(e){this.viewModel.storageType=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...y,...e}}reverseConvert(e,t){return this.viewModel.reverseConvert(e,t)}render(){const e=this.viewModel?.state,t="disabled"===e?_("div",{key:"esri-coordinate__no-basemap"},this.messages?.noBasemap):null,o=!t&&this._inputVisible?this._renderInputForm():null,i=!t&&this._settingsVisible?this._renderSettings():null,s=t||o||i?null:this._renderConversionsView(),n=this._popupVisible?this._renderPopup():null,r={[b.captureMode]:"capture"===this.mode,[p.disabled]:"loading"===e,[b.noBasemap]:"disabled"===e};return _("div",{class:this.classes(b.base,p.widget,r)},n,t,s,i,o)}_addConversion(e){const t=e.target,o=x(t.options[t.options.selectedIndex]),i=I(t);if(null==o||null==i)return;const s=new l({format:o});t.options.selectedIndex=0,i>=0?(this.conversions.removeAt(i),this.conversions.add(s,i)):this.conversions.add(s)}_findSettingsFormat(){return this._settingsFormat||this.conversions.reduceRight(((e,t)=>{const o=t.format;return o?.hasDisplayProperties?o:e}),null)||this.formats.find((e=>e.hasDisplayProperties))}_hidePopup(){this._popupTimeoutId&&(clearTimeout(this._popupTimeoutId),this._popupTimeoutId=void 0),this._popupVisible=!1,this._popupMessage=null,this.scheduleRender()}_hideClipboardPopup(){this._clipboardPopupTimeoutId&&(clearTimeout(this._clipboardPopupTimeoutId),this._clipboardPopupTimeoutId=void 0),this._clipboardPopupVisible=!1,this.scheduleRender()}_onConvertComplete(){this._inputVisible=!1,this._coordinateInput.value=""}_onCopy(e){const t=T(e.currentTarget)?.displayCoordinate;null!=t&&(e.clipboardData?.setData("text/plain",t),this._showClipboardPopup(),e.preventDefault())}_processUserInput(e){const i=t(e),s=this.viewModel;if("Enter"!==i&&i)this._badInput&&(this._badInput=!1);else{const e=x(this._coordinateInput);if(!e)return;const t=this._coordinateInput.value;this._reverseConvert(t,e).then((e=>{"capture"===this.mode?s.resume():this.mode="capture",this.currentLocation=e,s.setLocation(e),this._onConvertComplete()})).catch((e=>{o.getLogger(this).error(e),this._showPopup(this.messages?.invalidCoordinate),this._badInput=!0}))}}async _reverseConvert(e,t){const i=this.viewModel,s=await t.reverseConvert(e);return this._goToEnabled&&s&&i.goToLocation(s).catch((e=>{o.getLogger(this).warn(e),this._showPopup(this.messages?.locationOffBasemap)})),s}_setInputFormat(e){const t=e.target,o=x(t[t.options.selectedIndex]);null!=o&&(this._conversionFormat=o)}_setPreviewConversion(){const e=this._findSettingsFormat(),t=this.viewModel;if(e){const o=this.conversions.find((t=>t.format===e));this._previewConversion=new l({format:e,position:{location:this.currentLocation,coordinate:o?.position?.coordinate}}),this._previewConversion.position?.coordinate||t.previewConversion(this._previewConversion)}}_setSettingsFormat(e){const t=e.target,o=x(t[t.options.selectedIndex]);null!=o&&(this._settingsFormat=o,this._setPreviewConversion())}_showClipboardPopup(){this._clipboardPopupVisible?clearTimeout(this._clipboardPopupTimeoutId):this._clipboardPopupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout((()=>{this._popupTimeoutId=void 0,this._hideClipboardPopup()}),w)}_showPopup(e,t=C){this._popupMessage=e,this._popupVisible?clearTimeout(this._popupTimeoutId):this._popupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout((()=>{this._popupTimeoutId=void 0,this._hidePopup()}),t)}_toggleGoTo(){this._goToEnabled=!this._goToEnabled}_updateCurrentPattern(e){e.stopPropagation();const t=e.target,o=this._findSettingsFormat();o&&(o.currentPattern=t.value)}_renderConversion(e,t){const{messages:o}=this;if(!o)return _("li",null);const{format:i}=e,s=i?.label??"",n=`${this.id}__list-item-${t}`,r=`${s} ${o.conversionOutputSuffix}`,a=0===t,l=a||this._expanded,d=a?this._renderFirstConversion(e):this._renderTools(t,e,n),u=a&&!e.displayCoordinate?o.noLocation:e.displayCoordinate,c=_("div",{"aria-label":u,class:b.coordDisplay,"data-conversion":e,role:"listitem",tabIndex:0,title:u??""},u),h=this._renderOptions(this.formats.filter((e=>e!==i)));return l?_("li",{"aria-label":r,class:b.conversionRow,id:n,key:e,role:"group",title:r,tabIndex:0},_("select",{"aria-controls":n,"aria-label":o.selectFormat,class:this.classes(p.select,b.rowSelect),bind:this,"data-index":t,onchange:this._addConversion,title:o.selectFormat},_("option",{"aria-label":s,selected:!0,title:s},s.toUpperCase()),h),c,d):null}_renderCopyButton(e){const t=this._clipboardPopupVisible&&this._renderClipboardPopup(),{messagesCommon:o}=this;return o?_("li",{"aria-label":o.copy,bind:this,class:this.classes(p.widgetButton,b.rowButton),"data-conversion":e,onclick:this._copyCoordinateOutput,onkeydown:this._copyCoordinateOutput,oncopy:this._onCopy,role:"button",tabIndex:0,title:o.copy},t,_("span",{"aria-hidden":"true",class:u.duplicate})):_("li",null)}_renderFirstConversion(e){const t=this.id,o={[u.down]:!this._expanded,[u.up]:this._expanded},{messages:i,messagesCommon:s,multipleConversions:n,visibleElements:r}=this;if(!s||!i)return _("ul",null);const a="live"===this.mode?i.captureMode:i.liveMode,l=this._expanded?s.collapse:s.expand,d=e.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(e):null,c=n&&r.expandButton&&_("li",{"aria-controls":`${t}__${b.conversionList}`,"aria-label":l,bind:this,class:p.widgetButton,key:"esri-coordinate-conversion__expand-button",onclick:this._toggleExpand,onkeydown:this._toggleExpand,role:"button",tabIndex:0,title:l},_("span",{"aria-hidden":"true",class:this.classes(o)})),h=!n&&r.captureButton&&_("li",{"aria-label":a,bind:this,class:this.classes(p.widgetButton,b.modeToggle),key:"esri-coordinate-conversion__mode-toggle",onclick:this._toggleMode,onkeydown:this._toggleMode,role:"button",tabIndex:0,title:a},_("span",{"aria-hidden":"true",class:u.mapPin}));return _("ul",{class:b.toolDisplay},d,c,h)}_renderInputForm(){const e=this._conversionFormat||this.conversions.at(0).format,t=this.formats.findIndex((t=>t.name===e?.name)),o=this.id,i=`${o}__${b.coordinateInput}`,s=`${o}__${b.coordinateInput}__header`,n=this._renderOptions(this.formats,!0,t),r={[b.rejectInput]:this._badInput},{messages:a,messagesCommon:l,headingLevel:u}=this;return l&&a?_("div",{"aria-labelledby":s,class:b.inputForm,key:"esri-coordinate-conversion__input-form",role:"search"},_("div",{class:b.sectionHeading},_("div",{"aria-label":l.back,bind:this,class:this.classes(p.widgetButton,b.backButton),onclick:this._toggleInputVisibility,onkeydown:this._toggleInputVisibility,role:"button",tabIndex:0,title:l.back},this._renderBackIcon()),_(d,{level:u,class:p.heading,id:s},a.inputCoordTitle)),_("div",{class:b.inputFormGroup},_("select",{"aria-controls":i,"aria-label":a.selectFormat,bind:this,class:this.classes(p.select,b.rowSelect),onchange:this._setInputFormat,title:a.selectFormat},n),_("input",{afterCreate:m,"aria-labelledby":s,"aria-required":"true",bind:this,class:this.classes(b.coordinateInput,p.input,r),"data-format":e,"data-node-ref":"_coordinateInput",id:i,onkeydown:this._processUserInput,placeholder:a.inputCoordTitle,role:"textbox",spellcheck:!1,title:a.inputCoordTitle,type:"text"})),_("div",{class:b.inputFormGroup},_("label",{"aria-label":a.goTo},_("input",{bind:this,checked:this._goToEnabled,onclick:this._toggleGoTo,title:a.goTo,type:"checkbox"}),a.goTo),_("button",{"aria-label":a.convert,bind:this,class:this.classes(b.convertButton,p.button),onclick:this._processUserInput,title:a.convert,type:"button"},_("span",{class:b.convertButtonSpan},a.convert)))):_("div",null)}_renderConversionsView(){const{messages:e}=this;if(!e)return _("div",null);const t=`${this.id}__${b.conversionList}`,o=this._renderPrimaryTools(),i=this._renderOptions(this.formats),s=this.conversions.map(((e,t)=>this._renderConversion(e,t))).toArray(),n=this._expanded?_("div",{class:b.conversionRow},_("select",{"aria-controls":t,"aria-label":e.addConversion,bind:this,class:this.classes(p.select,b.primarySelect),"data-index":-1,onchange:this._addConversion,title:e.addConversion},_("option",{disabled:!0,selected:!0,value:""},e.addConversion),i),o):null,r={[b.expanded]:this._expanded,[b.expandUp]:"expand-up"===this.orientation,[b.expandDown]:"expand-down"===this.orientation};return _("div",{class:this.classes(b.conversionsView,r),key:"esri-coordinate-conversion__main-view"},_("ul",{"aria-expanded":this._expanded?"true":"false",class:b.conversionList,id:t},s),n)}_renderOptions(e,t,o){const i=this.conversions.at(0),s=i.format?.name;return e.map(((e,n)=>{const r=!(t||!i)&&(s===e.name||this.conversions.map((e=>e.format?.name)).includes(e.name));return _("option",{"aria-label":e.label,"data-format":e,disabled:r,key:e.name??"unnamed-format",selected:n===o,value:e.label},e.label.toUpperCase())})).toArray()}_renderPopup(){return _("div",{class:b.popup,role:"alert"},this._popupMessage)}_renderClipboardPopup(){const{messages:e}=this;return e?_("div",{class:this.classes(b.popup,b.clipboardPopup),role:"alert"},e.copySuccessMessage):_("div",null)}_renderPrimaryTools(){const{messages:e,visibleElements:t}=this;if(!e)return _("ul",null);const o="live"===this.mode?e.captureMode:e.liveMode,i=t.inputButton&&_("li",{bind:this,class:p.widgetButton,onclick:this._toggleInputVisibility,onkeydown:this._toggleInputVisibility,role:"button",tabIndex:0,title:e.inputCoordTitle},_("span",{"aria-hidden":"true",class:u.edit})),s=t.captureButton&&_("li",{bind:this,class:this.classes(p.widgetButton,b.modeToggle),onclick:this._toggleMode,onkeydown:this._toggleMode,role:"button",tabIndex:0,title:o},_("span",{"aria-hidden":"true",class:u.mapPin})),n=t.settingsButton&&_("li",{bind:this,class:p.widgetButton,onclick:this._toggleSettingsVisibility,onkeydown:this._toggleSettingsVisibility,role:"button",tabIndex:0,title:e.settingsTitle},_("span",{"aria-hidden":"true",class:u.settings2}));return _("ul",{class:b.toolDisplay},i,s,n)}_renderSettings(){const e=this.id,t=`${e}__${b.patternInput}`,o=`${e}__${b.patternInput}__header`,i=`${e}__${b.previewCoordinate}`,s=this.formats.filter((e=>e.hasDisplayProperties)),n=this._findSettingsFormat(),r=n?s.indexOf(n):-1,a=this._renderOptions(s,!0,r),l=n?.currentPattern,{messages:c,messagesCommon:h,headingLevel:m}=this;return h&&c?_("div",{"aria-labelledby":o,class:b.settings,key:b.settings},_("div",{class:b.sectionHeading},_("div",{bind:this,class:this.classes(p.widgetButton,b.backButton),onclick:this._toggleSettingsVisibility,onkeydown:this._toggleSettingsVisibility,role:"button",tabIndex:0,title:h.back},this._renderBackIcon()),_(d,{level:m,class:p.heading,id:o},c.settingsTitle)),_("div",{class:b.settingsFormGroup},_("label",{for:t},c.changeCoordinateDisplay),_("select",{"aria-label":c.selectFormat,class:p.select,bind:this,onchange:this._setSettingsFormat,title:c.selectFormat},a),_("div",{class:b.settingsFormGroupHorizontal},_("input",{"aria-controls":i,bind:this,class:this.classes(b.patternInput,p.input),id:t,oninput:this._updateCurrentPattern,spellcheck:!1,title:c.changeCoordinateDisplay,type:"text",value:l}),_("div",{"aria-controls":t,bind:this,class:p.widgetButton,onclick:this._setDefaultPattern,onkeydown:this._setDefaultPattern,role:"button",tabIndex:0,title:c.defaultPattern},_("span",{"aria-hidden":"true",class:u.refresh})))),_("div",{class:b.settingsFormGroup},_("label",null,h.preview,_("div",{class:b.previewCoordinate,id:i,tabIndex:0},this._previewConversion?.displayCoordinate)))):_("div",null)}_renderBackIcon(){return _("span",{"aria-hidden":"true",class:v(this.container)?u.rightArrow:u.leftArrows})}_renderTools(e,t,o){const i=t.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(t):null,{messages:s}=this;return s?_("ul",{class:b.toolDisplay,role:"listitem"},i,_("li",{"aria-controls":o,"aria-label":s.removeConversion,bind:this,class:this.classes(p.widgetButton,b.rowButton),"data-index":e,key:`${o}__${p.widgetButton}`,onclick:this._removeConversion,onkeydown:this._removeConversion,tabIndex:0,role:"button",title:s.removeConversion},_("span",{"aria-hidden":"true",class:u.close}))):_("ul",null)}_copyCoordinateOutput(e){const t=e.target;if(!("createTextRange"in document.body)){const e=window.getSelection(),o=document.createRange();o.selectNodeContents(t),e?.removeAllRanges(),e?.addRange(o)}document.execCommand("copy")}_removeConversion(e){const t=I(e.currentTarget);null!=t&&this.conversions.removeAt(t)}_setDefaultPattern(e){e.stopPropagation();const t=this._findSettingsFormat();t&&(t.currentPattern=t.defaultPattern)}_toggleExpand(){this._expanded=!this._expanded}_toggleInputVisibility(){this._inputVisible=!this._inputVisible,this._popupVisible&&this._hidePopup(),this._inputVisible?this.viewModel.pause():this.viewModel.resume()}_toggleMode(){this.mode="live"===this.mode?"capture":"live"}_toggleSettingsVisibility(){this._settingsVisible=!this._settingsVisible,this._popupVisible&&this._hidePopup(),this._settingsVisible?(this._setPreviewConversion(),this.viewModel.pause()):this.viewModel.resume()}};function I(e){return e["data-index"]}function x(e){return e["data-format"]}function T(e){return e["data-conversion"]}e([i()],f.prototype,"conversions",null),e([i()],f.prototype,"currentLocation",null),e([i()],f.prototype,"formats",null),e([i()],f.prototype,"goToOverride",null),e([i()],f.prototype,"headingLevel",void 0),e([i()],f.prototype,"label",null),e([i(),h("esri/widgets/CoordinateConversion/t9n/CoordinateConversion")],f.prototype,"messages",void 0),e([i(),h("esri/t9n/common")],f.prototype,"messagesCommon",void 0),e([i()],f.prototype,"mode",null),e([i()],f.prototype,"orientation",void 0),e([i()],f.prototype,"multipleConversions",null),e([i()],f.prototype,"locationSymbol",null),e([i()],f.prototype,"storageEnabled",null),e([i()],f.prototype,"storageType",null),e([i()],f.prototype,"view",null),e([i({type:a})],f.prototype,"viewModel",void 0),e([i()],f.prototype,"visibleElements",void 0),e([s("visibleElements")],f.prototype,"castVisibleElements",null),e([c()],f.prototype,"_copyCoordinateOutput",null),e([c()],f.prototype,"_removeConversion",null),e([c()],f.prototype,"_setDefaultPattern",null),e([c()],f.prototype,"_toggleExpand",null),e([c()],f.prototype,"_toggleInputVisibility",null),e([c()],f.prototype,"_toggleMode",null),e([c()],f.prototype,"_toggleSettingsVisibility",null),f=e([n("esri.widgets.CoordinateConversion")],f);const P=f;export{P as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{eventKey as t}from"../core/events.js";import o from"../core/Logger.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import{cast as s}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import a from"./CoordinateConversion/CoordinateConversionViewModel.js";import l from"./CoordinateConversion/support/Conversion.js";import{globalCss as p}from"./support/globalCss.js";import{Heading as d}from"./support/Heading.js";import{legacyIcon as u}from"./support/legacyIcon.js";import{accessibleHandler as c}from"./support/decorators/accessibleHandler.js";import{messageBundle as h}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";import{storeNode as m,isRTL as v}from"./support/widgetUtils.js";const g="esri-coordinate-conversion",b={base:g,captureMode:`${g}--capture-mode`,noBasemap:`${g}--no-basemap`,popup:`${g}__popup`,clipboardPopup:`${g}__clipboard-popup`,conversionList:`${g}__conversion-list`,conversionRow:`${g}__row`,coordDisplay:`${g}__display`,expanded:`${g}__conversions-view--expanded`,expandDown:`${g}__conversions-view--expand-down`,expandUp:`${g}__conversions-view--expand-up`,conversionsView:`${g}__conversions-view`,primarySelect:`${g}__select-primary`,rowSelect:`${g}__select-row`,toolDisplay:`${g}__tools`,modeToggle:`${g}__mode-toggle`,rowButton:`${g}__row-button`,backButton:`${g}__back-button`,convertButton:`${g}__button`,convertButtonSpan:`${g}__convert-button-span`,coordinateInput:`${g}__input-coordinate`,inputForm:`${g}__input-form`,inputFormGroup:`${g}__input-group`,rejectInput:`${g}__input-coordinate--rejected`,sectionHeading:`${g}__heading`,patternInput:`${g}__pattern-input`,settings:`${g}__settings`,settingsFormGroup:`${g}__settings-group`,settingsFormGroupHorizontal:`${g}__settings-group-horizontal`,previewCoordinate:`${g}__preview-coordinate`},y={settingsButton:!0,inputButton:!0,captureButton:!0,expandButton:!0},w=750,C=2500;let f=class extends r{constructor(e,t){super(e,t),this._popupMessage=null,this._popupTimeoutId=void 0,this._clipboardPopupTimeoutId=void 0,this._coordinateInput=null,this._badInput=!1,this._goToEnabled=!1,this._conversionFormat=null,this._settingsFormat=null,this._previewConversion=null,this._expanded=!1,this._clipboardPopupVisible=!1,this._popupVisible=!1,this._settingsVisible=!1,this._inputVisible=!1,this.headingLevel=4,this.messages=null,this.messagesCommon=null,this.orientation="auto",this.viewModel=new a,this.visibleElements={...y}}get conversions(){return this.viewModel.conversions}set conversions(e){this.viewModel.conversions=e}get currentLocation(){return this.viewModel.currentLocation}set currentLocation(e){this.viewModel.currentLocation=e}get formats(){return this.viewModel.formats}set formats(e){this.viewModel.formats=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get mode(){return this.viewModel.mode}set mode(e){this.viewModel.mode=e}set multipleConversions(e){!1===e&&(this._expanded=!1,this.conversions.splice(1,this.conversions.length-1)),this._set("multipleConversions",e)}get multipleConversions(){const e=this._get("multipleConversions");return"boolean"!=typeof e||e}get locationSymbol(){return this.viewModel.locationSymbol}set locationSymbol(e){this.viewModel.locationSymbol=e}get storageEnabled(){return this.viewModel.storageEnabled}set storageEnabled(e){this.viewModel.storageEnabled=e}get storageType(){return this.viewModel.storageType}set storageType(e){this.viewModel.storageType=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...y,...e}}reverseConvert(e,t){return this.viewModel.reverseConvert(e,t)}render(){const e=this.viewModel?.state,t="disabled"===e?_("div",{key:"esri-coordinate__no-basemap"},this.messages?.noBasemap):null,o=!t&&this._inputVisible?this._renderInputForm():null,i=!t&&this._settingsVisible?this._renderSettings():null,s=t||o||i?null:this._renderConversionsView(),n=this._popupVisible?this._renderPopup():null,r={[b.captureMode]:"capture"===this.mode,[p.disabled]:"loading"===e,[b.noBasemap]:"disabled"===e};return _("div",{class:this.classes(b.base,p.widget,r)},n,t,s,i,o)}_addConversion(e){const t=e.target,o=x(t.options[t.options.selectedIndex]),i=I(t);if(null==o||null==i)return;const s=new l({format:o});t.options.selectedIndex=0,i>=0?(this.conversions.removeAt(i),this.conversions.add(s,i)):this.conversions.add(s)}_findSettingsFormat(){return this._settingsFormat||this.conversions.reduceRight(((e,t)=>{const o=t.format;return o?.hasDisplayProperties?o:e}),null)||this.formats.find((e=>e.hasDisplayProperties))}_hidePopup(){this._popupTimeoutId&&(clearTimeout(this._popupTimeoutId),this._popupTimeoutId=void 0),this._popupVisible=!1,this._popupMessage=null,this.scheduleRender()}_hideClipboardPopup(){this._clipboardPopupTimeoutId&&(clearTimeout(this._clipboardPopupTimeoutId),this._clipboardPopupTimeoutId=void 0),this._clipboardPopupVisible=!1,this.scheduleRender()}_onConvertComplete(){this._inputVisible=!1,this._coordinateInput.value=""}_onCopy(e){const t=T(e.currentTarget)?.displayCoordinate;null!=t&&(e.clipboardData?.setData("text/plain",t),this._showClipboardPopup(),e.preventDefault())}_processUserInput(e){const i=t(e),s=this.viewModel;if("Enter"!==i&&i)this._badInput&&(this._badInput=!1);else{const e=x(this._coordinateInput);if(!e)return;const t=this._coordinateInput.value;this._reverseConvert(t,e).then((e=>{"capture"===this.mode?s.resume():this.mode="capture",this.currentLocation=e,s.setLocation(e),this._onConvertComplete()})).catch((e=>{o.getLogger(this).error(e),this._showPopup(this.messages?.invalidCoordinate),this._badInput=!0}))}}async _reverseConvert(e,t){const i=this.viewModel,s=await t.reverseConvert(e);return this._goToEnabled&&s&&i.goToLocation(s).catch((e=>{o.getLogger(this).warn(e),this._showPopup(this.messages?.locationOffBasemap)})),s}_setInputFormat(e){const t=e.target,o=x(t[t.options.selectedIndex]);null!=o&&(this._conversionFormat=o)}_setPreviewConversion(){const e=this._findSettingsFormat(),t=this.viewModel;if(e){const o=this.conversions.find((t=>t.format===e));this._previewConversion=new l({format:e,position:{location:this.currentLocation,coordinate:o?.position?.coordinate}}),this._previewConversion.position?.coordinate||t.previewConversion(this._previewConversion)}}_setSettingsFormat(e){const t=e.target,o=x(t[t.options.selectedIndex]);null!=o&&(this._settingsFormat=o,this._setPreviewConversion())}_showClipboardPopup(){this._clipboardPopupVisible?clearTimeout(this._clipboardPopupTimeoutId):this._clipboardPopupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout((()=>{this._popupTimeoutId=void 0,this._hideClipboardPopup()}),w)}_showPopup(e,t=C){this._popupMessage=e,this._popupVisible?clearTimeout(this._popupTimeoutId):this._popupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout((()=>{this._popupTimeoutId=void 0,this._hidePopup()}),t)}_toggleGoTo(){this._goToEnabled=!this._goToEnabled}_updateCurrentPattern(e){e.stopPropagation();const t=e.target,o=this._findSettingsFormat();o&&(o.currentPattern=t.value)}_renderConversion(e,t){const{messages:o}=this;if(!o)return _("li",null);const{format:i}=e,s=i?.label??"",n=`${this.id}__list-item-${t}`,r=`${s} ${o.conversionOutputSuffix}`,a=0===t,l=a||this._expanded,d=a?this._renderFirstConversion(e):this._renderTools(t,e,n),u=a&&!e.displayCoordinate?o.noLocation:e.displayCoordinate,c=_("div",{"aria-label":u,class:b.coordDisplay,"data-conversion":e,role:"listitem",tabIndex:0,title:u??""},u),h=this._renderOptions(this.formats.filter((e=>e!==i)));return l?_("li",{"aria-label":r,class:b.conversionRow,id:n,key:e,role:"group",tabIndex:0,title:r},_("select",{"aria-controls":n,"aria-label":o.selectFormat,bind:this,class:this.classes(p.select,b.rowSelect),"data-index":t,onchange:this._addConversion,title:o.selectFormat},_("option",{"aria-label":s,selected:!0,title:s},s.toUpperCase()),h),c,d):null}_renderCopyButton(e){const t=this._clipboardPopupVisible&&this._renderClipboardPopup(),{messagesCommon:o}=this;return o?_("li",{"aria-label":o.copy,bind:this,class:this.classes(p.widgetButton,b.rowButton),"data-conversion":e,onclick:this._copyCoordinateOutput,oncopy:this._onCopy,onkeydown:this._copyCoordinateOutput,role:"button",tabIndex:0,title:o.copy},t,_("span",{"aria-hidden":"true",class:u.duplicate})):_("li",null)}_renderFirstConversion(e){const t=this.id,o={[u.down]:!this._expanded,[u.up]:this._expanded},{messages:i,messagesCommon:s,multipleConversions:n,visibleElements:r}=this;if(!s||!i)return _("ul",null);const a="live"===this.mode?i.captureMode:i.liveMode,l=this._expanded?s.collapse:s.expand,d=e.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(e):null,c=n&&r.expandButton&&_("li",{"aria-controls":`${t}__${b.conversionList}`,"aria-label":l,bind:this,class:p.widgetButton,key:"esri-coordinate-conversion__expand-button",onclick:this._toggleExpand,onkeydown:this._toggleExpand,role:"button",tabIndex:0,title:l},_("span",{"aria-hidden":"true",class:this.classes(o)})),h=!n&&r.captureButton&&_("li",{"aria-label":a,bind:this,class:this.classes(p.widgetButton,b.modeToggle),key:"esri-coordinate-conversion__mode-toggle",onclick:this._toggleMode,onkeydown:this._toggleMode,role:"button",tabIndex:0,title:a},_("span",{"aria-hidden":"true",class:u.mapPin}));return _("ul",{class:b.toolDisplay},d,c,h)}_renderInputForm(){const e=this._conversionFormat||this.conversions.at(0).format,t=this.formats.findIndex((t=>t.name===e?.name)),o=this.id,i=`${o}__${b.coordinateInput}`,s=`${o}__${b.coordinateInput}__header`,n=this._renderOptions(this.formats,!0,t),r={[b.rejectInput]:this._badInput},{messages:a,messagesCommon:l,headingLevel:u}=this;return l&&a?_("div",{"aria-labelledby":s,class:b.inputForm,key:"esri-coordinate-conversion__input-form",role:"search"},_("div",{class:b.sectionHeading},_("div",{"aria-label":l.back,bind:this,class:this.classes(p.widgetButton,b.backButton),onclick:this._toggleInputVisibility,onkeydown:this._toggleInputVisibility,role:"button",tabIndex:0,title:l.back},this._renderBackIcon()),_(d,{class:p.heading,id:s,level:u},a.inputCoordTitle)),_("div",{class:b.inputFormGroup},_("select",{"aria-controls":i,"aria-label":a.selectFormat,bind:this,class:this.classes(p.select,b.rowSelect),onchange:this._setInputFormat,title:a.selectFormat},n),_("input",{afterCreate:m,"aria-labelledby":s,"aria-required":"true",bind:this,class:this.classes(b.coordinateInput,p.input,r),"data-format":e,"data-node-ref":"_coordinateInput",id:i,onkeydown:this._processUserInput,placeholder:a.inputCoordTitle,role:"textbox",spellcheck:!1,title:a.inputCoordTitle,type:"text"})),_("div",{class:b.inputFormGroup},_("label",{"aria-label":a.goTo},_("input",{bind:this,checked:this._goToEnabled,onclick:this._toggleGoTo,title:a.goTo,type:"checkbox"}),a.goTo),_("button",{"aria-label":a.convert,bind:this,class:this.classes(b.convertButton,p.button),onclick:this._processUserInput,title:a.convert,type:"button"},_("span",{class:b.convertButtonSpan},a.convert)))):_("div",null)}_renderConversionsView(){const{messages:e}=this;if(!e)return _("div",null);const t=`${this.id}__${b.conversionList}`,o=this._renderPrimaryTools(),i=this._renderOptions(this.formats),s=this.conversions.map(((e,t)=>this._renderConversion(e,t))).toArray(),n=this._expanded?_("div",{class:b.conversionRow},_("select",{"aria-controls":t,"aria-label":e.addConversion,bind:this,class:this.classes(p.select,b.primarySelect),"data-index":-1,onchange:this._addConversion,title:e.addConversion},_("option",{disabled:!0,selected:!0,value:""},e.addConversion),i),o):null,r={[b.expanded]:this._expanded,[b.expandUp]:"expand-up"===this.orientation,[b.expandDown]:"expand-down"===this.orientation};return _("div",{class:this.classes(b.conversionsView,r),key:"esri-coordinate-conversion__main-view"},_("ul",{"aria-expanded":this._expanded?"true":"false",class:b.conversionList,id:t},s),n)}_renderOptions(e,t,o){const i=this.conversions.at(0),s=i.format?.name;return e.map(((e,n)=>{const r=!(t||!i)&&(s===e.name||this.conversions.map((e=>e.format?.name)).includes(e.name));return _("option",{"aria-label":e.label,"data-format":e,disabled:r,key:e.name??"unnamed-format",selected:n===o,value:e.label},e.label.toUpperCase())})).toArray()}_renderPopup(){return _("div",{class:b.popup,role:"alert"},this._popupMessage)}_renderClipboardPopup(){const{messages:e}=this;return e?_("div",{class:this.classes(b.popup,b.clipboardPopup),role:"alert"},e.copySuccessMessage):_("div",null)}_renderPrimaryTools(){const{messages:e,visibleElements:t}=this;if(!e)return _("ul",null);const o="live"===this.mode?e.captureMode:e.liveMode,i=t.inputButton&&_("li",{bind:this,class:p.widgetButton,onclick:this._toggleInputVisibility,onkeydown:this._toggleInputVisibility,role:"button",tabIndex:0,title:e.inputCoordTitle},_("span",{"aria-hidden":"true",class:u.edit})),s=t.captureButton&&_("li",{bind:this,class:this.classes(p.widgetButton,b.modeToggle),onclick:this._toggleMode,onkeydown:this._toggleMode,role:"button",tabIndex:0,title:o},_("span",{"aria-hidden":"true",class:u.mapPin})),n=t.settingsButton&&_("li",{bind:this,class:p.widgetButton,onclick:this._toggleSettingsVisibility,onkeydown:this._toggleSettingsVisibility,role:"button",tabIndex:0,title:e.settingsTitle},_("span",{"aria-hidden":"true",class:u.settings2}));return _("ul",{class:b.toolDisplay},i,s,n)}_renderSettings(){const e=this.id,t=`${e}__${b.patternInput}`,o=`${e}__${b.patternInput}__header`,i=`${e}__${b.previewCoordinate}`,s=this.formats.filter((e=>e.hasDisplayProperties)),n=this._findSettingsFormat(),r=n?s.indexOf(n):-1,a=this._renderOptions(s,!0,r),l=n?.currentPattern,{messages:c,messagesCommon:h,headingLevel:m}=this;return h&&c?_("div",{"aria-labelledby":o,class:b.settings,key:b.settings},_("div",{class:b.sectionHeading},_("div",{bind:this,class:this.classes(p.widgetButton,b.backButton),onclick:this._toggleSettingsVisibility,onkeydown:this._toggleSettingsVisibility,role:"button",tabIndex:0,title:h.back},this._renderBackIcon()),_(d,{class:p.heading,id:o,level:m},c.settingsTitle)),_("div",{class:b.settingsFormGroup},_("label",{for:t},c.changeCoordinateDisplay),_("select",{"aria-label":c.selectFormat,bind:this,class:p.select,onchange:this._setSettingsFormat,title:c.selectFormat},a),_("div",{class:b.settingsFormGroupHorizontal},_("input",{"aria-controls":i,bind:this,class:this.classes(b.patternInput,p.input),id:t,oninput:this._updateCurrentPattern,spellcheck:!1,title:c.changeCoordinateDisplay,type:"text",value:l}),_("div",{"aria-controls":t,bind:this,class:p.widgetButton,onclick:this._setDefaultPattern,onkeydown:this._setDefaultPattern,role:"button",tabIndex:0,title:c.defaultPattern},_("span",{"aria-hidden":"true",class:u.refresh})))),_("div",{class:b.settingsFormGroup},_("label",null,h.preview,_("div",{class:b.previewCoordinate,id:i,tabIndex:0},this._previewConversion?.displayCoordinate)))):_("div",null)}_renderBackIcon(){return _("span",{"aria-hidden":"true",class:v(this.container)?u.rightArrow:u.leftArrows})}_renderTools(e,t,o){const i=t.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(t):null,{messages:s}=this;return s?_("ul",{class:b.toolDisplay,role:"listitem"},i,_("li",{"aria-controls":o,"aria-label":s.removeConversion,bind:this,class:this.classes(p.widgetButton,b.rowButton),"data-index":e,key:`${o}__${p.widgetButton}`,onclick:this._removeConversion,onkeydown:this._removeConversion,role:"button",tabIndex:0,title:s.removeConversion},_("span",{"aria-hidden":"true",class:u.close}))):_("ul",null)}_copyCoordinateOutput(e){const t=e.target;if(!("createTextRange"in document.body)){const e=window.getSelection(),o=document.createRange();o.selectNodeContents(t),e?.removeAllRanges(),e?.addRange(o)}document.execCommand("copy")}_removeConversion(e){const t=I(e.currentTarget);null!=t&&this.conversions.removeAt(t)}_setDefaultPattern(e){e.stopPropagation();const t=this._findSettingsFormat();t&&(t.currentPattern=t.defaultPattern)}_toggleExpand(){this._expanded=!this._expanded}_toggleInputVisibility(){this._inputVisible=!this._inputVisible,this._popupVisible&&this._hidePopup(),this._inputVisible?this.viewModel.pause():this.viewModel.resume()}_toggleMode(){this.mode="live"===this.mode?"capture":"live"}_toggleSettingsVisibility(){this._settingsVisible=!this._settingsVisible,this._popupVisible&&this._hidePopup(),this._settingsVisible?(this._setPreviewConversion(),this.viewModel.pause()):this.viewModel.resume()}};function I(e){return e["data-index"]}function x(e){return e["data-format"]}function T(e){return e["data-conversion"]}e([i()],f.prototype,"conversions",null),e([i()],f.prototype,"currentLocation",null),e([i()],f.prototype,"formats",null),e([i()],f.prototype,"goToOverride",null),e([i()],f.prototype,"headingLevel",void 0),e([i()],f.prototype,"label",null),e([i(),h("esri/widgets/CoordinateConversion/t9n/CoordinateConversion")],f.prototype,"messages",void 0),e([i(),h("esri/t9n/common")],f.prototype,"messagesCommon",void 0),e([i()],f.prototype,"mode",null),e([i()],f.prototype,"orientation",void 0),e([i()],f.prototype,"multipleConversions",null),e([i()],f.prototype,"locationSymbol",null),e([i()],f.prototype,"storageEnabled",null),e([i()],f.prototype,"storageType",null),e([i()],f.prototype,"view",null),e([i({type:a})],f.prototype,"viewModel",void 0),e([i()],f.prototype,"visibleElements",void 0),e([s("visibleElements")],f.prototype,"castVisibleElements",null),e([c()],f.prototype,"_copyCoordinateOutput",null),e([c()],f.prototype,"_removeConversion",null),e([c()],f.prototype,"_setDefaultPattern",null),e([c()],f.prototype,"_toggleExpand",null),e([c()],f.prototype,"_toggleInputVisibility",null),e([c()],f.prototype,"_toggleMode",null),e([c()],f.prototype,"_toggleSettingsVisibility",null),f=e([n("esri.widgets.CoordinateConversion")],f);const P=f;export{P as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as t}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Slider.js";import{SliderWithDropdownViewModel as s}from"./SliderWithDropdownViewModel.js";import{TimezonePicker as i}from"../../support/TimezonePicker.js";import{onResize as n}from"../../support/widgetUtils.js";import{tsx as l}from"../../support/jsxFactory.js";const p="esri-slider-with-dropdown",h={label:"esri-slider__label",box:`${p}__box`,boxDropDownOn:`${p}__box--drop-down-on`,boxDropDownOff:`${p}__box--drop-down-off`};let a=class extends r{constructor(e,o){super(e,o),this.viewModel=new s,this.showDropDown=!0,this._labelWidth=0,this._onLabelAfterCreate=e=>{const o="label-size-observer";this.removeHandles(o),this.addHandles(n(e,(({contentRect:e})=>{this._labelWidth=e.width})),o)},this._getLabelStyles=()=>{if(!this.trackElement)return;const e=this._trackWidth,o=this._labelWidth/2,t=this.getCurrentPosition(),r=t-o,s=t+o;let i=-o;return r<0?i+=-r:s>e&&(i+=e-s),{left:`${i}px`}},this._onTimezoneChange=e=>{this.viewModel.utcOffset=e},this._onTimezonePickerOpen=()=>{this.viewModel.timezonePickerOpen=!0},this._onTimezonePickerClose=()=>{this.viewModel.timezonePickerOpen=!1}}renderThumbLabel(e){const{showDropDown:o,viewModel:t}=this;return l("div",{key:"thumb-label",class:this.classes({[h.box]:!0,[h.label]:!0,[h.boxDropDownOn]:o,[h.boxDropDownOff]:!o}),styles:this._getLabelStyles(),afterCreate:this._onLabelAfterCreate},super.renderThumbLabel(e),o&&l(i,{value:t.utcOffset,open:t.timezonePickerOpen,onChange:this._onTimezoneChange,onOpen:this._onTimezonePickerOpen,onClose:this._onTimezonePickerClose}))}};e([o()],a.prototype,"viewModel",void 0),e([o()],a.prototype,"showDropDown",void 0),e([o()],a.prototype,"_labelWidth",void 0),a=e([t("esri.widgets.Daylight.support.SliderWithDropdown")],a);const d=a;export{d as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as t}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Slider.js";import{SliderWithDropdownViewModel as s}from"./SliderWithDropdownViewModel.js";import{TimezonePicker as i}from"../../support/TimezonePicker.js";import{onResize as n}from"../../support/widgetUtils.js";import{tsx as l}from"../../support/jsxFactory.js";const p="esri-slider-with-dropdown",h={label:"esri-slider__label",box:`${p}__box`,boxDropDownOn:`${p}__box--drop-down-on`,boxDropDownOff:`${p}__box--drop-down-off`};let a=class extends r{constructor(e,o){super(e,o),this.viewModel=new s,this.showDropDown=!0,this._labelWidth=0,this._onLabelAfterCreate=e=>{const o="label-size-observer";this.removeHandles(o),this.addHandles(n(e,(({contentRect:e})=>{this._labelWidth=e.width})),o)},this._getLabelStyles=()=>{if(!this.trackElement)return;const e=this._trackWidth,o=this._labelWidth/2,t=this.getCurrentPosition(),r=t-o,s=t+o;let i=-o;return r<0?i+=-r:s>e&&(i+=e-s),{left:`${i}px`}},this._onTimezoneChange=e=>{this.viewModel.utcOffset=e},this._onTimezonePickerOpen=()=>{this.viewModel.timezonePickerOpen=!0},this._onTimezonePickerClose=()=>{this.viewModel.timezonePickerOpen=!1}}renderThumbLabel(e){const{showDropDown:o,viewModel:t}=this;return l("div",{afterCreate:this._onLabelAfterCreate,class:this.classes({[h.box]:!0,[h.label]:!0,[h.boxDropDownOn]:o,[h.boxDropDownOff]:!o}),key:"thumb-label",styles:this._getLabelStyles()},super.renderThumbLabel(e),o?l(i,{open:t.timezonePickerOpen,value:t.utcOffset,onChange:this._onTimezoneChange,onClose:this._onTimezonePickerClose,onOpen:this._onTimezonePickerOpen}):null)}};e([o()],a.prototype,"viewModel",void 0),e([o()],a.prototype,"showDropDown",void 0),e([o()],a.prototype,"_labelWidth",void 0),a=e([t("esri.widgets.Daylight.support.SliderWithDropdown")],a);const d=a;export{d as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Logger.js";import{watch as i,syncAndInitial as s,when as o,sync as l}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import{css as d}from"./Daylight/css.js";import c from"./Daylight/DaylightViewModel.js";import p from"./Daylight/VisibleElements.js";import{orderedSeasons as h}from"./Daylight/support/daylightUtils.js";import m from"./Daylight/support/SliderWithDropdown.js";import{loadCalciteComponents as g}from"./support/componentsUtils.js";import u from"./support/DatePicker.js";import{globalCss as y}from"./support/globalCss.js";import{Heading as b}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import{tsx as w,tsxFragment as S}from"./support/jsxFactory.js";const k=/(.*)\s(.*)/,_="date",M="esri.widgets.Daylight";let C=class extends n{constructor(e,t){super(e,t),this.headingLevel=3,this.iconClass=d.widgetIcon,this.icon=null,this.viewModel=new c,this.visibleElements=new p,this.dateOrSeason=_,this._timeSlider=new m({viewModel:this.viewModel.timeSliderViewModel,steps:this.timeSliderSteps,labelInputsEnabled:!1,visibleElements:{labels:!0},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:this._onPrimaryTickCreated.bind(this)},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:this._onSecondaryTickCreated.bind(this)}]}),this._datePicker=new u({viewModel:this.viewModel.datePickerViewModel,commitOnMonthChange:!0}),this._onPlayDayClick=()=>{this.viewModel.toggleDayPlaying()},this._onYearPlayClick=()=>{this.viewModel.toggleYearPlaying()},this._onSeasonChange=e=>{this.viewModel.currentSeason=e.target.value},this._onSunLightingCheckboxChange=()=>{this.viewModel.toggleSunLightingEnabled()},this._onShadowCheckboxChange=()=>{this.viewModel.toggleDirectShadowsEnabled()}}get label(){return this.messages?.title??""}set label(e){this._overrideIfSome("label",e)}get playSpeedMultiplier(){return this.viewModel.playSpeedMultiplier}set playSpeedMultiplier(e){this.viewModel.playSpeedMultiplier=e}get timeSliderSteps(){return this._timeSlider?.steps??5}set timeSliderSteps(e){this._timeSlider.steps=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get test(){return{datePicker:this._datePicker}}get _useAmPm(){const e=this._timeSlider.viewModel.getLabelForValue(0,"tick");return null!=e&&k.test(e)}postInitialize(){this.viewModel.isSupported&&this.addHandles([i((()=>this.viewModel.datePickerViewModel),(e=>this._datePicker.viewModel=e),s),i((()=>this.viewModel.timeSliderViewModel),(e=>this._timeSlider.viewModel=e),s),i((()=>this.visibleElements?.timezone),(e=>this._timeSlider.showDropDown=e),s),i((()=>!this.viewModel.sunLightingEnabled),(e=>{this._datePicker.disabled=e,this._timeSlider.disabled=e}),s),o((()=>!this.visible),(()=>this._datePicker?.close(!1)),l)])}destroy(){this._datePicker.destroy(),this._timeSlider.destroy()}render(){const{messages:e,viewModel:t,visibleElements:i}=this,s=t.isSupported;return w("div",{class:this.classes(d.base,y.widget)},s?w(S,null,i.header&&w(b,{level:this.headingLevel},e.title),this._renderTimeOptions(),i.datePicker&&this._renderDateOrSeason(),i.sunLightingToggle&&this._renderSunLightingToggle(),i.shadowsToggle&&this._renderShadowsToggle()):w("div",{key:"unsupported",class:d.panelError},w("p",null,e.unsupported)))}loadDependencies(){return g({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),option:()=>import("@esri/calcite-components/dist/components/calcite-option.js"),select:()=>import("@esri/calcite-components/dist/components/calcite-select.js")})}_renderTimeOptions(){const{viewModel:e,visibleElements:t,messages:i}=this,{directShadowsEnabled:s,dayPlaying:o}=e,l=!e.sunLightingEnabled;return w("div",{class:this.classes(d.dayContainer,{[d.sliderShadowOn]:s,[d.sliderShadowOff]:!s,[d.sliderDateOn]:t.datePicker,[d.sliderDateOff]:!t.datePicker,[d.sliderAmPmOn]:this._useAmPm,[d.containerDisabled]:l}),key:"daylight-time-options"},this._timeSlider.render(),t.playButtons&&this._renderPlayPauseButton({playing:o,disabled:l,label:i.playDay,onClick:this._onPlayDayClick}))}_renderDateOptions(){const{viewModel:e,visibleElements:t,messages:i}=this,{yearPlaying:s}=e,o=!e.sunLightingEnabled;return w("div",{key:"daylight-date",class:this.classes(d.dateContainer,o&&d.containerDisabled)},this._datePicker.render(),t.playButtons&&this._renderPlayPauseButton({playing:s,disabled:o,label:i.playYear,onClick:this._onYearPlayClick}))}_renderPlayPauseButton({playing:e,disabled:t,label:i,onClick:s}){return w("calcite-button",{appearance:"solid",class:d.playPauseButton,disabled:t,iconStart:e?"pause-f":"play-f",label:i,round:!0,title:i,type:"button",onclick:s})}_renderSeasonSelect(){const{messages:e,viewModel:t}=this,i=!t.sunLightingEnabled;return w("calcite-select",{class:this.classes(d.seasonPicker),disabled:i,label:e.season,onCalciteSelectChange:this._onSeasonChange},h.map((i=>w("calcite-option",{value:i,selected:t.currentSeason===i},e[i]))))}_renderDateOrSeason(){return"date"===this.dateOrSeason?this._renderDateOptions():this._renderSeasonSelect()}_renderSunLightingToggle(){const e=this.messages?.sunLightingToggle;return w("calcite-label",{key:"date-time-toggle",layout:"inline",title:e?.tooltip,scale:"s"},w("calcite-checkbox",{class:d.sunLightingCheckbox,checked:this.viewModel.sunLightingEnabled,onCalciteCheckboxChange:this._onSunLightingCheckboxChange}),e?.label)}_renderShadowsToggle(){const e=this.messages.shadowsToggle;return w("calcite-label",{key:"shadow-toggle",layout:"inline",title:e?.tooltip,scale:"s"},w("calcite-checkbox",{class:d.shadowsCheckbox,checked:this.viewModel.directShadowsEnabled,onCalciteCheckboxChange:this._onShadowCheckboxChange}),e.label)}_onPrimaryTickCreated(e,t,i){t.classList.add(...P,y.primaryTick),i.classList.add(...P,y.primaryTickLabel),i.onclick=t.onclick=this._makeGoToTime(e);const s=i.textContent,o=null!=s&&k.exec(s);o&&(i.innerHTML=`${o[1]}<br><div class=${y.primaryTickAmPm}>${o[2]}</div>`)}_onSecondaryTickCreated(e,t){t.classList.add(...P,y.secondaryTick),t.onclick=this._makeGoToTime(e)}_makeGoToTime(e){return()=>{this.viewModel.timeSliderPosition=e}}};e([r(),v("esri/widgets/Daylight/t9n/Daylight")],C.prototype,"messages",void 0),e([r(),v("esri/widgets/support/t9n/timezone")],C.prototype,"timezoneMessages",void 0),e([r()],C.prototype,"headingLevel",void 0),e([r()],C.prototype,"iconClass",void 0),e([r()],C.prototype,"icon",void 0),e([r()],C.prototype,"label",null),e([r()],C.prototype,"playSpeedMultiplier",null),e([r()],C.prototype,"timeSliderSteps",null),e([r()],C.prototype,"view",null),e([r({type:c})],C.prototype,"viewModel",void 0),e([r({type:p,nonNullable:!0})],C.prototype,"visibleElements",void 0),e([r({cast:e=>"season"===e||"date"===e?e:(t.getLogger(M).warn(`"${e}" is not a valid option. Acceptable values are only "date" or "season". Defaulting to "${_}".`),_)})],C.prototype,"dateOrSeason",void 0),e([r()],C.prototype,"_timeSlider",void 0),e([r()],C.prototype,"_useAmPm",null),e([r()],C.prototype,"_datePicker",void 0),C=e([a(M)],C);const P=["esri-interactive","esri-widget__anchor"],D=C;export{D as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Logger.js";import{watch as i,syncAndInitial as s,when as o,sync as l}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import{css as d}from"./Daylight/css.js";import c from"./Daylight/DaylightViewModel.js";import p from"./Daylight/VisibleElements.js";import{orderedSeasons as h}from"./Daylight/support/daylightUtils.js";import m from"./Daylight/support/SliderWithDropdown.js";import{loadCalciteComponents as g}from"./support/componentsUtils.js";import u from"./support/DatePicker.js";import{globalCss as y}from"./support/globalCss.js";import{Heading as b}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import{tsx as w,tsxFragment as S}from"./support/jsxFactory.js";const k=/(.*)\s(.*)/,_="date",M="esri.widgets.Daylight";let C=class extends n{constructor(e,t){super(e,t),this.headingLevel=3,this.iconClass=d.widgetIcon,this.icon=null,this.viewModel=new c,this.visibleElements=new p,this.dateOrSeason=_,this._timeSlider=new m({viewModel:this.viewModel.timeSliderViewModel,steps:this.timeSliderSteps,labelInputsEnabled:!1,visibleElements:{labels:!0},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:this._onPrimaryTickCreated.bind(this)},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:this._onSecondaryTickCreated.bind(this)}]}),this._datePicker=new u({viewModel:this.viewModel.datePickerViewModel,commitOnMonthChange:!0}),this._onPlayDayClick=()=>{this.viewModel.toggleDayPlaying()},this._onYearPlayClick=()=>{this.viewModel.toggleYearPlaying()},this._onSeasonChange=e=>{this.viewModel.currentSeason=e.target.value},this._onSunLightingCheckboxChange=()=>{this.viewModel.toggleSunLightingEnabled()},this._onShadowCheckboxChange=()=>{this.viewModel.toggleDirectShadowsEnabled()}}get label(){return this.messages?.title??""}set label(e){this._overrideIfSome("label",e)}get playSpeedMultiplier(){return this.viewModel.playSpeedMultiplier}set playSpeedMultiplier(e){this.viewModel.playSpeedMultiplier=e}get timeSliderSteps(){return this._timeSlider?.steps??5}set timeSliderSteps(e){this._timeSlider.steps=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get test(){return{datePicker:this._datePicker}}get _useAmPm(){const e=this._timeSlider.viewModel.getLabelForValue(0,"tick");return null!=e&&k.test(e)}postInitialize(){this.viewModel.isSupported&&this.addHandles([i((()=>this.viewModel.datePickerViewModel),(e=>this._datePicker.viewModel=e),s),i((()=>this.viewModel.timeSliderViewModel),(e=>this._timeSlider.viewModel=e),s),i((()=>this.visibleElements?.timezone),(e=>this._timeSlider.showDropDown=e),s),i((()=>!this.viewModel.sunLightingEnabled),(e=>{this._datePicker.disabled=e,this._timeSlider.disabled=e}),s),o((()=>!this.visible),(()=>this._datePicker?.close(!1)),l)])}destroy(){this._datePicker.destroy(),this._timeSlider.destroy()}render(){const{messages:e,viewModel:t,visibleElements:i}=this,s=t.isSupported;return w("div",{class:this.classes(d.base,y.widget)},s?w(S,null,i.header?w(b,{level:this.headingLevel},e.title):null,this._renderTimeOptions(),i.datePicker?this._renderDateOrSeason():null,i.sunLightingToggle?this._renderSunLightingToggle():null,i.shadowsToggle?this._renderShadowsToggle():null):w("div",{class:d.panelError,key:"unsupported"},w("p",null,e.unsupported)))}loadDependencies(){return g({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),option:()=>import("@esri/calcite-components/dist/components/calcite-option.js"),select:()=>import("@esri/calcite-components/dist/components/calcite-select.js")})}_renderTimeOptions(){const{viewModel:e,visibleElements:t,messages:i}=this,{directShadowsEnabled:s,dayPlaying:o}=e,l=!e.sunLightingEnabled;return w("div",{class:this.classes(d.dayContainer,{[d.sliderShadowOn]:s,[d.sliderShadowOff]:!s,[d.sliderDateOn]:t.datePicker,[d.sliderDateOff]:!t.datePicker,[d.sliderAmPmOn]:this._useAmPm,[d.containerDisabled]:l}),key:"daylight-time-options"},this._timeSlider.render(),t.playButtons?this._renderPlayPauseButton({playing:o,disabled:l,label:i.playDay,onClick:this._onPlayDayClick}):null)}_renderDateOptions(){const{viewModel:e,visibleElements:t,messages:i}=this,{yearPlaying:s}=e,o=!e.sunLightingEnabled;return w("div",{class:this.classes(d.dateContainer,o&&d.containerDisabled),key:"daylight-date"},this._datePicker.render(),t.playButtons?this._renderPlayPauseButton({playing:s,disabled:o,label:i.playYear,onClick:this._onYearPlayClick}):null)}_renderPlayPauseButton({playing:e,disabled:t,label:i,onClick:s}){return w("calcite-button",{appearance:"solid",class:d.playPauseButton,disabled:t,iconStart:e?"pause-f":"play-f",label:i,onclick:s,round:!0,title:i,type:"button"})}_renderSeasonSelect(){const{messages:e,viewModel:t}=this,i=!t.sunLightingEnabled;return w("calcite-select",{class:this.classes(d.seasonPicker),disabled:i,label:e.season,onCalciteSelectChange:this._onSeasonChange},h.map((i=>w("calcite-option",{selected:t.currentSeason===i,value:i},e[i]))))}_renderDateOrSeason(){return"date"===this.dateOrSeason?this._renderDateOptions():this._renderSeasonSelect()}_renderSunLightingToggle(){const e=this.messages?.sunLightingToggle;return w("calcite-label",{key:"date-time-toggle",layout:"inline",scale:"s",title:e?.tooltip},w("calcite-checkbox",{checked:this.viewModel.sunLightingEnabled,class:d.sunLightingCheckbox,onCalciteCheckboxChange:this._onSunLightingCheckboxChange}),e?.label)}_renderShadowsToggle(){const e=this.messages.shadowsToggle;return w("calcite-label",{key:"shadow-toggle",layout:"inline",scale:"s",title:e?.tooltip},w("calcite-checkbox",{checked:this.viewModel.directShadowsEnabled,class:d.shadowsCheckbox,onCalciteCheckboxChange:this._onShadowCheckboxChange}),e.label)}_onPrimaryTickCreated(e,t,i){t.classList.add(...P,y.primaryTick),i.classList.add(...P,y.primaryTickLabel),i.onclick=t.onclick=this._makeGoToTime(e);const s=i.textContent,o=null!=s&&k.exec(s);o&&(i.innerHTML=`${o[1]}<br><div class=${y.primaryTickAmPm}>${o[2]}</div>`)}_onSecondaryTickCreated(e,t){t.classList.add(...P,y.secondaryTick),t.onclick=this._makeGoToTime(e)}_makeGoToTime(e){return()=>{this.viewModel.timeSliderPosition=e}}};e([r(),v("esri/widgets/Daylight/t9n/Daylight")],C.prototype,"messages",void 0),e([r(),v("esri/widgets/support/t9n/timezone")],C.prototype,"timezoneMessages",void 0),e([r()],C.prototype,"headingLevel",void 0),e([r()],C.prototype,"iconClass",void 0),e([r()],C.prototype,"icon",void 0),e([r()],C.prototype,"label",null),e([r()],C.prototype,"playSpeedMultiplier",null),e([r()],C.prototype,"timeSliderSteps",null),e([r()],C.prototype,"view",null),e([r({type:c})],C.prototype,"viewModel",void 0),e([r({type:p,nonNullable:!0})],C.prototype,"visibleElements",void 0),e([r({cast:e=>"season"===e||"date"===e?e:(t.getLogger(M).warn(`"${e}" is not a valid option. Acceptable values are only "date" or "season". Defaulting to "${_}".`),_)})],C.prototype,"dateOrSeason",void 0),e([r()],C.prototype,"_timeSlider",void 0),e([r()],C.prototype,"_useAmPm",null),e([r()],C.prototype,"_datePicker",void 0),C=e([a(M)],C);const P=["esri-interactive","esri-widget__anchor"],D=C;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.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import r from"./DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as l}from"./support/legacyIcon.js";import{MeasurementWidgetContent as a}from"./support/MeasurementWidgetContent.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";const m="esri-direct-line-measurement-3d",c={base:m,newMeasurementButton:`${m}__clear-button`,widgetIcon:l.measureLine};let d=class extends o{constructor(e,t){super(e,t),this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.viewModel=new r}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}render(){const{messages:e,messagesCommon:s,unit:i,unitOptions:o,viewModel:r}=this,{active:l,measurement:p,state:m,supported:d}=r;return u("div",{"aria-label":this.messages.widgetLabel,key:this,class:this.classes(c.base,n.widget,n.panel),role:"presentation"},this.visible?u(a,{active:l,measurementItems:[{key:"direct",title:e.direct,value:v(p?.directDistance)},{key:"horizontal",title:e.horizontal,value:v(p?.horizontalDistance)},{key:"vertical",title:e.vertical,value:v(p?.verticalDistance)}],messages:{...e,notApplicable:s?.notApplicable},newMeasurementButtonClass:c.newMeasurementButton,onNewMeasurementClick:()=>{t(this.viewModel.start())},onUnitChange:e=>{this.unit=e},state:m,supported:d,unit:i,unitOptions:o}):null)}};function v(e){return"available"===e?.state?e.text:null}e([s()],d.prototype,"view",null),e([s()],d.prototype,"visible",null),e([s()],d.prototype,"active",null),e([s({constructOnly:!0,nonNullable:!0})],d.prototype,"analysis",null),e([s()],d.prototype,"iconClass",void 0),e([s()],d.prototype,"icon",void 0),e([s()],d.prototype,"label",null),e([s(),p("esri/widgets/DirectLineMeasurement3D/t9n/DirectLineMeasurement3D")],d.prototype,"messages",void 0),e([s(),p("esri/t9n/common")],d.prototype,"messagesCommon",void 0),e([s()],d.prototype,"uiStrings",void 0),e([s({type:r})],d.prototype,"viewModel",void 0),e([s()],d.prototype,"unitOptions",null),e([s()],d.prototype,"unit",null),d=e([i("esri.widgets.DirectLineMeasurement3D")],d);const w=d;export{w as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import r from"./DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as l}from"./support/legacyIcon.js";import{MeasurementWidgetContent as a}from"./support/MeasurementWidgetContent.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";const m="esri-direct-line-measurement-3d",c={base:m,newMeasurementButton:`${m}__clear-button`,widgetIcon:l.measureLine};let d=class extends o{constructor(e,t){super(e,t),this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.viewModel=new r}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}render(){const{messages:e,messagesCommon:s,unit:i,unitOptions:o,viewModel:r}=this,{active:l,measurement:p,state:m,supported:d}=r;return u("div",{"aria-label":this.messages.widgetLabel,class:this.classes(c.base,n.widget,n.panel),key:this,role:"presentation"},this.visible?u(a,{active:l,measurementItems:[{key:"direct",title:e.direct,value:v(p?.directDistance)},{key:"horizontal",title:e.horizontal,value:v(p?.horizontalDistance)},{key:"vertical",title:e.vertical,value:v(p?.verticalDistance)}],messages:{...e,notApplicable:s?.notApplicable},newMeasurementButtonClass:c.newMeasurementButton,state:m,supported:d,unit:i,unitOptions:o,onNewMeasurementClick:()=>{t(this.viewModel.start())},onUnitChange:e=>{this.unit=e}}):null)}};function v(e){return"available"===e?.state?e.text:null}e([s()],d.prototype,"view",null),e([s()],d.prototype,"visible",null),e([s()],d.prototype,"active",null),e([s({constructOnly:!0,nonNullable:!0})],d.prototype,"analysis",null),e([s()],d.prototype,"iconClass",void 0),e([s()],d.prototype,"icon",void 0),e([s()],d.prototype,"label",null),e([s(),p("esri/widgets/DirectLineMeasurement3D/t9n/DirectLineMeasurement3D")],d.prototype,"messages",void 0),e([s(),p("esri/t9n/common")],d.prototype,"messagesCommon",void 0),e([s()],d.prototype,"uiStrings",void 0),e([s({type:r})],d.prototype,"viewModel",void 0),e([s()],d.prototype,"unitOptions",null),e([s()],d.prototype,"unit",null),d=e([i("esri.widgets.DirectLineMeasurement3D")],d);const w=d;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.28/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{watch as i}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import{canShowNorth as r}from"./Compass/utils.js";import{directionalPadAngles as a,directionalPadArrows as l}from"./DirectionalPad/constants.js";import{css as c}from"./DirectionalPad/css.js";import d from"./DirectionalPad/DirectionalPadViewModel.js";import{findElementCenter as p}from"./DirectionalPad/utils.js";import u from"./DirectionalPad/VisibleElements.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as m}from"./support/globalCss.js";import{isActivationKey as v}from"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";const g="esri.widgets.DirectionalPad";let w=class extends n{constructor(t,i){super(t,i),this._buttonsContainer=null,this._buttons={},this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.visibleElements=new u,this.viewModel=new d,this.visualScale="s",this._rotateIcon=t=>({"--rotation":`rotate(${t}deg)`}),this._afterButtonContainerCreate=t=>{this._buttonsContainer=t,this._buttonsContainer.addEventListener("contextmenu",this._onContextMenu,{capture:!0})},this._afterButtonContainerRemoved=()=>{this._buttonsContainer?.removeEventListener("contextmenu",this._onContextMenu,{capture:!0}),this._buttonsContainer=null},this._afterButtonCreate=(t,e)=>{this._buttons[t]=e},this._afterButtonRemoved=t=>{this._buttons[t]=void 0},this._onContextMenu=t=>t.preventDefault(),this._onButtonPointerDown=t=>{if(null===this._buttonsContainer)return;const e=p(this._buttonsContainer);this.viewModel.beginFollowingPointer(t,e)},this._onKeyDown=(t,i)=>{const o=e(i);v(o)&&this.viewModel.moveOnce(t)},this._onSliderInput=({target:t})=>{"number"==typeof t.value&&(this.viewModel.rotation=t.value)},this._onRotationReset=()=>{this.viewModel.rotation=0}}loadDependencies(){return h({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),"action-pad":()=>import("@esri/calcite-components/dist/components/calcite-action-pad.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider.js")})}initialize(){this.addHandles(i((()=>this.viewModel.angle),(()=>{const t=this._buttonsContainer?.contains(document.activeElement);t&&(null==this.viewModel.angle?this.container?.focus():this._buttons[this.viewModel.angle]?.setFocus())})))}get disabled(){return this.viewModel.disabled}set disabled(t){this.viewModel.disabled=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}get speed(){return this.viewModel.speed}set speed(t){this.viewModel.speed=t}get _rotationEnabled(){return!this.view?.ready||this.view.constraints.rotationEnabled}render(){const{label:t,disabled:e,viewModel:i}=this,o=this.classes(c.base,m.widget,e?m.disabled:null);return _("div",{"aria-label":t,class:o,tabIndex:-1},i.supported?this._renderContent():this._renderUnsupportedMessage)}_renderUnsupportedMessage(){return _("section",{key:"unsupported",class:c.error},_("p",null,this.messages.unsupported))}_renderContent(){return[this.visibleElements.directionalButtons?this._renderDirectionalButtons():void 0,this.visibleElements.rotationSlider?this._renderRotation():void 0]}_renderDirectionalButtons(){return _("calcite-action-pad",{layout:"grid",expandDisabled:!0,key:"directional-buttons-container"},_("calcite-action-group",{class:c.buttonsContainer,afterCreate:this._afterButtonContainerCreate,afterRemoved:this._afterButtonContainerRemoved},a.slice(0,4).map((t=>this._renderButton(t))),this._renderCompass(),a.slice(4).map((t=>this._renderButton(t)))))}_renderButton(t){const{label:e,iconName:i,iconRotation:o=0}=l[t];return _("calcite-action",{text:this.messages[e],key:t,scale:this.visualScale,alignment:"center",class:c.button,disabled:this.disabled,active:this.viewModel.angle===t,afterCreate:this._afterButtonCreate.bind(this,t),afterRemoved:this._afterButtonRemoved.bind(this,t),styles:this._rotateIcon(o),onpointerdown:this._onButtonPointerDown,onkeydown:this._onKeyDown.bind(void 0,t),"data-angle":t.toString()},_("calcite-icon",{scale:this.visualScale,icon:i}))}_renderCompass(){const t=this.disabled||r(this.view)?"compass-needle":"arrow-up",e=0===this.viewModel.rotation;return _("calcite-action",{text:this.messages.resetHeading,scale:this.visualScale,key:"compass",alignment:"center",disabled:this.disabled||!this._rotationEnabled||e,class:c.compassButton,onclick:this._onRotationReset,styles:this._rotateIcon(this.viewModel.rotation)},!e&&_("calcite-icon",{scale:this.visualScale,icon:t}))}_renderRotation(){return _("calcite-action-pad",{layout:"horizontal",expandDisabled:!0,key:"slider-container"},_("calcite-action-group",{class:c.rotationContainer},this.visibleElements.rotationResetButton&&this._renderRotationResetButton(),this._renderRotationSlider()))}_renderRotationResetButton(){return _("calcite-action",{text:this.messages.resetHeading,scale:this.visualScale,alignment:"center",class:c.rotationReset,disabled:this.disabled||!this._rotationEnabled,onclick:this._onRotationReset},_("calcite-icon",{scale:this.visualScale,icon:"rotate",flipRtl:!0}))}_renderRotationSlider(){return _("div",{class:c.rotationSliderContainer},_("calcite-slider",{min:0,max:360,labelHandles:!0,value:Math.round(this.viewModel.rotation),disabled:this.disabled||!this._rotationEnabled,required:!0,scale:this.visualScale,"aria-label":this.messages.heading,onCalciteSliderInput:this._onSliderInput}))}};t([o()],w.prototype,"_buttonsContainer",void 0),t([o()],w.prototype,"_buttons",void 0),t([o()],w.prototype,"disabled",null),t([o()],w.prototype,"iconClass",void 0),t([o()],w.prototype,"icon",void 0),t([o()],w.prototype,"label",null),t([o(),b("esri/widgets/DirectionalPad/t9n/DirectionalPad")],w.prototype,"messages",void 0),t([o({type:u,nonNullable:!0})],w.prototype,"visibleElements",void 0),t([o()],w.prototype,"view",null),t([o()],w.prototype,"viewModel",void 0),t([o()],w.prototype,"visualScale",void 0),t([o()],w.prototype,"speed",null),t([o({readOnly:!0})],w.prototype,"_rotationEnabled",null),w=t([s(g)],w);const f=w;export{f as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import{eventKey as e}from"../core/events.js";import{watch as i}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import{canShowNorth as r}from"./Compass/utils.js";import{directionalPadAngles as a,directionalPadArrows as l}from"./DirectionalPad/constants.js";import{css as c}from"./DirectionalPad/css.js";import d from"./DirectionalPad/DirectionalPadViewModel.js";import{findElementCenter as p}from"./DirectionalPad/utils.js";import u from"./DirectionalPad/VisibleElements.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as m}from"./support/globalCss.js";import{isActivationKey as v}from"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";const g="esri.widgets.DirectionalPad";let w=class extends n{constructor(t,i){super(t,i),this._buttonsContainer=null,this._buttons={},this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.visibleElements=new u,this.viewModel=new d,this.visualScale="s",this._rotateIcon=t=>({"--rotation":`rotate(${t}deg)`}),this._afterButtonContainerCreate=t=>{this._buttonsContainer=t,this._buttonsContainer.addEventListener("contextmenu",this._onContextMenu,{capture:!0})},this._afterButtonContainerRemoved=()=>{this._buttonsContainer?.removeEventListener("contextmenu",this._onContextMenu,{capture:!0}),this._buttonsContainer=null},this._afterButtonCreate=(t,e)=>{this._buttons[t]=e},this._afterButtonRemoved=t=>{this._buttons[t]=void 0},this._onContextMenu=t=>t.preventDefault(),this._onButtonPointerDown=t=>{if(null===this._buttonsContainer)return;const e=p(this._buttonsContainer);this.viewModel.beginFollowingPointer(t,e)},this._onKeyDown=(t,i)=>{const o=e(i);v(o)&&this.viewModel.moveOnce(t)},this._onSliderInput=({target:t})=>{"number"==typeof t.value&&(this.viewModel.rotation=t.value)},this._onRotationReset=()=>{this.viewModel.rotation=0}}loadDependencies(){return h({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),"action-pad":()=>import("@esri/calcite-components/dist/components/calcite-action-pad.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider.js")})}initialize(){this.addHandles(i((()=>this.viewModel.angle),(()=>{const t=this._buttonsContainer?.contains(document.activeElement);t&&(null==this.viewModel.angle?this.container?.focus():this._buttons[this.viewModel.angle]?.setFocus())})))}get disabled(){return this.viewModel.disabled}set disabled(t){this.viewModel.disabled=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}get speed(){return this.viewModel.speed}set speed(t){this.viewModel.speed=t}get _rotationEnabled(){return!this.view?.ready||this.view.constraints.rotationEnabled}render(){const{label:t,disabled:e,viewModel:i}=this,o=this.classes(c.base,m.widget,e?m.disabled:null);return _("div",{"aria-label":t,class:o,tabIndex:-1},i.supported?this._renderContent():this._renderUnsupportedMessage)}_renderUnsupportedMessage(){return _("section",{class:c.error,key:"unsupported"},_("p",null,this.messages.unsupported))}_renderContent(){return[this.visibleElements.directionalButtons?this._renderDirectionalButtons():void 0,this.visibleElements.rotationSlider?this._renderRotation():void 0]}_renderDirectionalButtons(){return _("calcite-action-pad",{expandDisabled:!0,key:"directional-buttons-container",layout:"grid"},_("calcite-action-group",{afterCreate:this._afterButtonContainerCreate,afterRemoved:this._afterButtonContainerRemoved,class:c.buttonsContainer},a.slice(0,4).map((t=>this._renderButton(t))),this._renderCompass(),a.slice(4).map((t=>this._renderButton(t)))))}_renderButton(t){const{label:e,iconName:i,iconRotation:o=0}=l[t];return _("calcite-action",{active:this.viewModel.angle===t,afterCreate:this._afterButtonCreate.bind(this,t),afterRemoved:this._afterButtonRemoved.bind(this,t),alignment:"center",class:c.button,"data-angle":t.toString(),disabled:this.disabled,key:t,onkeydown:this._onKeyDown.bind(void 0,t),onpointerdown:this._onButtonPointerDown,scale:this.visualScale,styles:this._rotateIcon(o),text:this.messages[e]},_("calcite-icon",{icon:i,scale:this.visualScale}))}_renderCompass(){const t=this.disabled||r(this.view)?"compass-needle":"arrow-up",e=0===this.viewModel.rotation;return _("calcite-action",{alignment:"center",class:c.compassButton,disabled:this.disabled||!this._rotationEnabled||e,key:"compass",onclick:this._onRotationReset,scale:this.visualScale,styles:this._rotateIcon(this.viewModel.rotation),text:this.messages.resetHeading},!e&&_("calcite-icon",{icon:t,scale:this.visualScale}))}_renderRotation(){return _("calcite-action-pad",{expandDisabled:!0,key:"slider-container",layout:"horizontal"},_("calcite-action-group",{class:c.rotationContainer},this.visibleElements.rotationResetButton?this._renderRotationResetButton():null,this._renderRotationSlider()))}_renderRotationResetButton(){return _("calcite-action",{alignment:"center",class:c.rotationReset,disabled:this.disabled||!this._rotationEnabled,onclick:this._onRotationReset,scale:this.visualScale,text:this.messages.resetHeading},_("calcite-icon",{flipRtl:!0,icon:"rotate",scale:this.visualScale}))}_renderRotationSlider(){return _("div",{class:c.rotationSliderContainer},_("calcite-slider",{"aria-label":this.messages.heading,disabled:this.disabled||!this._rotationEnabled,labelHandles:!0,max:360,min:0,required:!0,scale:this.visualScale,value:Math.round(this.viewModel.rotation),onCalciteSliderInput:this._onSliderInput}))}};t([o()],w.prototype,"_buttonsContainer",void 0),t([o()],w.prototype,"_buttons",void 0),t([o()],w.prototype,"disabled",null),t([o()],w.prototype,"iconClass",void 0),t([o()],w.prototype,"icon",void 0),t([o()],w.prototype,"label",null),t([o(),b("esri/widgets/DirectionalPad/t9n/DirectionalPad")],w.prototype,"messages",void 0),t([o({type:u,nonNullable:!0})],w.prototype,"visibleElements",void 0),t([o()],w.prototype,"view",null),t([o()],w.prototype,"viewModel",void 0),t([o()],w.prototype,"visualScale",void 0),t([o()],w.prototype,"speed",null),t([o({readOnly:!0})],w.prototype,"_rotationEnabled",null),w=t([s(g)],w);const f=w;export{f as default};