@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 e}from"../../../chunks/tslib.es6.js";import{isAbortError as s}from"../../../core/promiseUtils.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 r}from"../../../core/accessorSupport/decorators/subclass.js";import o from"../../../portal/Portal.js";import a from"../../Widget.js";import{loadCalciteComponents as i}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as l}from"../../support/decorators/messageBundle.js";import{tsx as n}from"../../support/jsxFactory.js";const c="esri-save-layer",m={panel:`${c}`,error:`${c}__error`,errorIcon:`${c}__error-icon`,errorLabel:`${c}__error-label`,layerNameLabel:`${c}__layer-name-label`,portalFolderLabel:`${c}__portal-folder-label`,processLabel:`${c}__process-label`,processLoader:`${c}__process-loader`};let p=class extends a{constructor(e,s){super(e,s),this._folders=null,this._layer=null,this._layerNameInput=null,this._portalFolderCombobox=null,this._userName=null,this.messages=null,this.messagesCommon=null,this.messagesIdentity=null,this.opened=!1,this.state="initialized",this.close=()=>{this.opened=!1,this.state="initialized"}}loadDependencies(){return i({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox.js"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),input:()=>import("@esri/calcite-components/dist/components/calcite-input.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel.js")})}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}async open(e){this.state="initialized",this.opened=!0,this._layer=e,this.state="connect-to-portal";const t=o.getDefault();try{await t.signIn()}catch(a){return void(s(a)||"identity-manager:user-aborted"===a.name?this.close():this.state="connect-to-portal-error")}this.state="fetch-portal-information";const{user:r}=t;this._userName=r?.username;try{this._folders=await(r?.fetchFolders())}catch{return void(this.state="fetch-portal-information-error")}this.state="save-layer"}render(){switch(this.state){case"initialized":return this._renderInitialized();case"connect-to-portal":return this._renderProcess(this.messagesIdentity.lblSigning);case"connect-to-portal-error":return this._renderError(this.messages.errors.authenticating);case"fetch-portal-information":return this._renderProcess(this.messages.processing.fetching);case"fetch-portal-information-error":return this._renderError(this.messages.errors.fetching);case"save-layer":return this._renderSaveLayer();case"saving":return this._renderProcess(this.messages.processing.saving);case"saving-error":return this._renderError(this.messages.errors.saving)}}_renderError(e){return n("calcite-panel",{class:m.panel,heading:this.messages.widgetLabel,key:`${c}-error-panel`},n("div",{class:m.error},n("calcite-icon",{class:m.errorIcon,icon:"exclamation-mark-triangle",scale:"l",textLabel:this.messagesCommon.errorMessage}),n("calcite-label",{class:m.errorLabel},e)),n("calcite-button",{appearance:"outline",onclick:this.close,slot:"footer-actions",width:"half"},this.messagesCommon.close))}_renderInitialized(){return n("calcite-panel",{class:m.panel,heading:this.messages.widgetLabel,key:`${c}-initialize-panel`})}_renderProcess(e){return n("calcite-panel",{class:m.panel,heading:this.messages.widgetLabel,key:`${c}-process-panel`},n("calcite-loader",{class:m.processLoader,label:e}),n("calcite-label",{class:m.processLabel,alignment:"center"},e))}_renderSaveLayer(){if(null==this._layer||null==this._folders||null==this._userName)return this._renderInitialized();const{stops:e}=this._layer,s=`${e.at(0).name} - ${e.at(-1).name}`,t=this._folders.map((e=>n("calcite-combobox-item",{key:`${c}-folder-${e.id}`,textLabel:e.title??"",value:e.id})));return t.unshift(n("calcite-combobox-item",{key:`${c}-folder-home`,selected:!0,textLabel:`${this._userName} (${this.messagesCommon.home})`,value:null})),n("calcite-panel",{class:m.panel,heading:this.messages.widgetLabel,key:`${c}-save-panel`},n("calcite-label",{class:m.layerNameLabel},this.messages.laverName,n("calcite-input",{afterCreate:e=>{this._layerNameInput=e},label:this.messages.laverName,value:s})),n("calcite-label",{class:m.portalFolderLabel},this.messages.saveInFolder,n("calcite-combobox",{afterCreate:e=>{this._portalFolderCombobox=e},label:this.messages.saveInFolder,overlayPositioning:"fixed",selectionMode:"single"},t)),n("calcite-button",{onclick:()=>this._saveButtonClick(),slot:"footer-actions",width:"half"},this.messagesCommon.save),n("calcite-button",{appearance:"outline",onclick:()=>{this.close()},slot:"footer-actions",width:"half"},this.messagesCommon.cancel))}_saveButtonClick(){this.state="saving",this._saveLayer().then((()=>{this.close()})).catch((()=>{this.state="saving-error"}))}async _saveLayer(){if(null==this._layer||null==this._folders)return;const e=this._layerNameInput?.value,s=this._portalFolderCombobox?.value,t=this._folders.find((e=>e.id===s));await this._layer.saveAs({title:e},{folder:t})}};e([t()],p.prototype,"label",null),e([t(),l("esri/widgets/support/t9n/SaveLayer")],p.prototype,"messages",void 0),e([t(),l("esri/t9n/common")],p.prototype,"messagesCommon",void 0),e([t(),l("esri/identity/t9n/identity")],p.prototype,"messagesIdentity",void 0),e([t()],p.prototype,"opened",void 0),e([t()],p.prototype,"state",void 0),p=e([r("esri.widgets.Directions.SaveLayer")],p);export{p as SaveLayer};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{isAbortError as s}from"../../../core/promiseUtils.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 r}from"../../../core/accessorSupport/decorators/subclass.js";import o from"../../../portal/Portal.js";import a from"../../Widget.js";import{loadCalciteComponents as i}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as l}from"../../support/decorators/messageBundle.js";import{tsx as n}from"../../support/jsxFactory.js";const c="esri-save-layer",m={panel:`${c}`,error:`${c}__error`,errorIcon:`${c}__error-icon`,errorLabel:`${c}__error-label`,layerNameLabel:`${c}__layer-name-label`,portalFolderLabel:`${c}__portal-folder-label`,processLabel:`${c}__process-label`,processLoader:`${c}__process-loader`};let p=class extends a{constructor(e,s){super(e,s),this._folders=null,this._layer=null,this._layerNameInput=null,this._portalFolderCombobox=null,this._userName=null,this.messages=null,this.messagesCommon=null,this.messagesIdentity=null,this.opened=!1,this.state="initialized",this.close=()=>{this.opened=!1,this.state="initialized"}}loadDependencies(){return i({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox.js"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),input:()=>import("@esri/calcite-components/dist/components/calcite-input.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel.js")})}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}async open(e){this.state="initialized",this.opened=!0,this._layer=e,this.state="connect-to-portal";const t=o.getDefault();try{await t.signIn()}catch(a){return void(s(a)||"identity-manager:user-aborted"===a.name?this.close():this.state="connect-to-portal-error")}this.state="fetch-portal-information";const{user:r}=t;this._userName=r?.username;try{this._folders=await(r?.fetchFolders())}catch{return void(this.state="fetch-portal-information-error")}this.state="save-layer"}render(){switch(this.state){case"initialized":return this._renderInitialized();case"connect-to-portal":return this._renderProcess(this.messagesIdentity.lblSigning);case"connect-to-portal-error":return this._renderError(this.messages.errors.authenticating);case"fetch-portal-information":return this._renderProcess(this.messages.processing.fetching);case"fetch-portal-information-error":return this._renderError(this.messages.errors.fetching);case"save-layer":return this._renderSaveLayer();case"saving":return this._renderProcess(this.messages.processing.saving);case"saving-error":return this._renderError(this.messages.errors.saving)}}_renderError(e){return n("calcite-panel",{class:m.panel,heading:this.messages.widgetLabel,key:`${c}-error-panel`},n("div",{class:m.error},n("calcite-icon",{class:m.errorIcon,icon:"exclamation-mark-triangle",scale:"l",textLabel:this.messagesCommon.errorMessage}),n("calcite-label",{class:m.errorLabel},e)),n("calcite-button",{appearance:"outline",onclick:this.close,slot:"footer-actions",width:"half"},this.messagesCommon.close))}_renderInitialized(){return n("calcite-panel",{class:m.panel,heading:this.messages.widgetLabel,key:`${c}-initialize-panel`})}_renderProcess(e){return n("calcite-panel",{class:m.panel,heading:this.messages.widgetLabel,key:`${c}-process-panel`},n("calcite-loader",{class:m.processLoader,label:e}),n("calcite-label",{alignment:"center",class:m.processLabel},e))}_renderSaveLayer(){if(null==this._layer||null==this._folders||null==this._userName)return this._renderInitialized();const{stops:e}=this._layer,s=`${e.at(0).name} - ${e.at(-1).name}`,t=this._folders.map((e=>n("calcite-combobox-item",{key:`${c}-folder-${e.id}`,textLabel:e.title??"",value:e.id})));return t.unshift(n("calcite-combobox-item",{key:`${c}-folder-home`,selected:!0,textLabel:`${this._userName} (${this.messagesCommon.home})`,value:null})),n("calcite-panel",{class:m.panel,heading:this.messages.widgetLabel,key:`${c}-save-panel`},n("calcite-label",{class:m.layerNameLabel},this.messages.laverName,n("calcite-input",{afterCreate:e=>{this._layerNameInput=e},label:this.messages.laverName,value:s})),n("calcite-label",{class:m.portalFolderLabel},this.messages.saveInFolder,n("calcite-combobox",{afterCreate:e=>{this._portalFolderCombobox=e},label:this.messages.saveInFolder,overlayPositioning:"fixed",selectionMode:"single"},t)),n("calcite-button",{onclick:()=>this._saveButtonClick(),slot:"footer-actions",width:"half"},this.messagesCommon.save),n("calcite-button",{appearance:"outline",onclick:()=>{this.close()},slot:"footer-actions",width:"half"},this.messagesCommon.cancel))}_saveButtonClick(){this.state="saving",this._saveLayer().then((()=>{this.close()})).catch((()=>{this.state="saving-error"}))}async _saveLayer(){if(null==this._layer||null==this._folders)return;const e=this._layerNameInput?.value,s=this._portalFolderCombobox?.value,t=this._folders.find((e=>e.id===s));await this._layer.saveAs({title:e},{folder:t})}};e([t()],p.prototype,"label",null),e([t(),l("esri/widgets/support/t9n/SaveLayer")],p.prototype,"messages",void 0),e([t(),l("esri/t9n/common")],p.prototype,"messagesCommon",void 0),e([t(),l("esri/identity/t9n/identity")],p.prototype,"messagesIdentity",void 0),e([t()],p.prototype,"opened",void 0),e([t()],p.prototype,"state",void 0),p=e([r("esri.widgets.Directions.SaveLayer")],p);export{p as SaveLayer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{on as t,pausable as s}from"../core/events.js";import{makeHandle as i}from"../core/handleUtils.js";import{assertIsSome as r}from"../core/maybe.js";import{watch as o,initial as n,when as a,on as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{defaultUnitPropertyMetadata as h}from"../properties/defaultUnit.js";import p from"../rest/support/Stop.js";import v from"../symbols/SimpleMarkerSymbol.js";import m from"./Search.js";import _ from"./Widget.js";import g from"./Directions/DirectionsViewModel.js";import{SaveLayer as S}from"./Directions/components/SaveLayer.js";import{formatDistance as y,formatDuration as w}from"./Directions/support/directionsUtils.js";import{DepartureTimeOption as f,css as M,getIconName as b}from"./Directions/support/resources.js";import{isArcGISWorldGeocoder as T,meteredArcGISLocatorUrl as C}from"./Search/support/locatorUtils.js";import{loadCalciteComponents as k}from"./support/componentsUtils.js";import D from"./support/DatePicker.js";import{globalCss as I}from"./support/globalCss.js";import{Heading as P,incrementHeadingLevel as R}from"./support/Heading.js";import{legacyIcon as L}from"./support/legacyIcon.js";import B from"./support/TimePicker.js";import{accessibleHandler as H}from"./support/decorators/accessibleHandler.js";import{messageBundle as A}from"./support/decorators/messageBundle.js";import{tsx as E}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import j from"sortablejs";import{formatNumber as x}from"../intl/number.js";import{formatDate as O,convertDateFormatToIntlOptions as U}from"../intl/date.js";const z={departureTime:!0,layerDetails:!0,printButton:!1,saveAsButton:!0,saveButton:!0,stops:!0,traveMode:!0};function $(e){const t=e.getTimezoneOffset(),s=t>0?"-":"+",i=60,r=Math.abs(Math.floor(t/i)),o=Math.abs(Math.floor(t)%i),n={minimumIntegerDigits:2};return`GMT${s}${x(r,n)}${x(o,n)}`}function F(e){return!!e.composedPath?.().find((e=>e.classList?.contains("esri-search__suggestions-list")))}const N="search-term",V="date-time-picker",K=100,W=500;let q=class extends _{constructor(e,t){super(e,t),this._activeStop=null,this._activeManeuver=null,this._autoStopRemovalDelay=K,this._autoStopRemovalTimeoutId=void 0,this._departureTimeOption=f.NOW,this._datePicker=new D,this._focusedManeuver=null,this._newPlaceholderStop=null,this._pointerDownUpHandle=null,this._pointerPressedSearchSuggestionStop=null,this._renderSavePopoverFunction=null,this._saveAsButtonNode=null,this._saveLayer=new S,this._sections=null,this._sortable=null,this._stopsToSearches=new Map,this._timePicker=new B,this._viewClickHandle=null,this.headingLevel=2,this.iconClass=M.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.searchProperties=null,this.viewModel=new g,this.visibleElements={...z},this._setUpDragAndDropStops=e=>{this._sortable=j.create(e,{draggable:`.${M.validStopRow}`,ghostClass:M.stopRowGhost,handle:`.${M.stopHandle}`,onEnd:this._handleStopInputDragEnd})},this._handleDragHandlePointerDown=()=>this.viewModel.layer?.stops.forEach((e=>this.acquireSearch(e).activeMenu="none")),this._handleStopInputDragEnd=({oldIndex:e,newIndex:t,target:s})=>{if(e===t||null==t||null==e)return;const{children:i}=s,r=i[t],o=i[e],n=t-e<0;s.insertBefore(r,n?o.nextElementSibling:o);const{stops:a}=this.viewModel.layer;a.reorder(a.at(e),t);for(const l of a)l.sequence=null;this._getDirections()}}initialize(){this.addHandles([o((()=>this.viewModel.layer?.routeInfo),(()=>{this._activeManeuver=null,this._focusedManeuver=null,this._sections=this._getSections(),this.scheduleRender()}),n),a((()=>this.view),((e,s)=>{if(s&&(this._viewClickHandle=null,null!=s&&this.removeHandles(s)),e){const s=this._prepPointerDownUpClick(),i=this._prepViewClick();s.pause(),i.pause();const r=e.surface;this.addHandles([t(r,"mousedown",(()=>this._autoStopRemovalDelay=W)),t(r,"mouseup",(()=>this._autoStopRemovalDelay=K)),s,i],e),this._pointerDownUpHandle=s,this._viewClickHandle=i}}),n),a((()=>null==this.viewModel.serviceDescription),(()=>{try{this.viewModel.load()}catch{}}),n),o((()=>this._saveLayer.state),(()=>{this.scheduleRender()}))]),this.when((()=>{this.destroyed||this.visibleElements.saveAsButton&&(this._renderSavePopoverFunction=this._renderSavePopover.bind(this),this._projector.append(document.body,this._renderSavePopoverFunction))}))}loadDependencies(){return k({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),link:()=>import("@esri/calcite-components/dist/components/calcite-link.js"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover.js")})}destroy(){this._datePicker.destroy(),this._timePicker.destroy();for(const e of this._stopsToSearches.values())e.destroy();this._sortable?.destroy(),null!=this._renderSavePopoverFunction&&this._projector.detach(this._renderSavePopoverFunction)}get apiKey(){return this.viewModel.apiKey}set apiKey(e){this.viewModel.apiKey=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 lastRoute(){return this.viewModel.lastRoute}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get maxStops(){return this.viewModel.maxStops}set maxStops(e){this.viewModel.maxStops=e}get unit(){return this.defaultUnit}set unit(e){this._overrideIfSome("unit",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...z,...e}}acquireSearch(e){const{view:t}=this.viewModel;if(this._stopsToSearches.has(e)){const s=this._stopsToSearches.get(e);return s.view=t,this._overrideDefaultSources(s),s}const s=new m({view:t,resultGraphicEnabled:!1,popupEnabled:!1,...this.searchProperties});return this._normalizeSearchSources(s),this.addHandles([l((()=>s.allSources),"change",(()=>this._normalizeSearchSources(s))),s.on("select-result",(()=>{e.geometry=s.selectedResult?.feature.geometry,e.name=s.selectedResult?.name,this._getDirections()})),s.on("search-focus",(()=>this._handleStopInputFocus(s,e))),s.on("search-blur",(()=>this._handleStopInputBlur(s,e))),s.on("search-clear",(()=>{e.geometry=null,e.name=null,this._activeStop=e,this.viewModel.layer?.removeResult()})),o((()=>s.searchTerm),(t=>{e.name=t}))],s),this._stopsToSearches.set(e,s),s}getDirections(){return this.viewModel.getDirections()}render(){return E("div",{class:this.classes(M.base,I.widget,I.panel,M.scroller)},this._renderPanelContent())}save(){return this.viewModel.save()}saveAs(e,t={}){return this.viewModel.saveAs(e,t)}zoomToRoute(){return this.viewModel.zoomToRoute()}_renderPanelContent(){const{layer:e,serviceDescription:t,state:s}=this.viewModel,i="initializing"===s,r="error"===s&&!t,o="unauthenticated"===s,n={[M.panelContentLoading]:i,[M.panelContentError]:r||!e,[M.panelContentSignIn]:o},a=i?"presentation":"group",l=e?o?this._renderSignIn():r?this._renderMessage(this._getErrorMessage()):i?this._renderLoader():this._renderReadyContent():this._renderMessage(this.messages.missingLayer);return E("div",{class:this.classes(M.panelContent,n),role:a},l)}_renderReadyContent(){return[this._renderStopsContainer(),this._renderTravelModeOptions(),this._renderDepartureTimeControls(),this._renderSaveContainer(),this._renderSectionSplitter(),this._renderDirectionsContainer()]}_renderSignIn(){return E("div",{key:"sign-in",class:M.signInContent},E(P,{class:M.contentTitle,level:this.headingLevel},this.messages.widgetLabel),this._renderPlaceholder(),E(P,{level:R(this.headingLevel)},this.messages.signInRequired),E("button",{class:this.classes(I.button,I.buttonSecondary,M.signInButton),tabIndex:0,onclick:this._handleSignInClick,bind:this,type:"button"},this.messagesCommon.auth.signIn))}_handleSignInClick(){this.viewModel.load().catch((()=>{}))}_renderTravelModeOptions(){if(!this.visibleElements.traveMode)return null;const{selectedTravelMode:e,travelModes:t}=this.viewModel;if(0===t.length)return null;const s=null!=e?e.name:this.messages.travelMode;return E("div",{"aria-disabled":this._saveLayer.opened.toString(),class:this.classes(M.travelMode,this._saveLayer.opened&&I.buttonDisabled),key:"esri-directions__travel-mode-controls",role:"group"},E("select",{"aria-label":s,bind:this,class:this.classes(M.travelModeSelect,I.select),key:"esri-directions__travel-mode-options",onchange:this._handleTravelModeChange,title:s},t.map(((t,s)=>E("option",{key:`esri-directions__travel-mode-${s}`,"data-mode":t,selected:e===t,value:`${s}`},t.name)))))}_handleTravelModeChange(e){const t=e.currentTarget;this.viewModel.selectedTravelMode=Y(t.item(t.selectedIndex)),this._getDirections()}_renderStopsContainer(){return this.visibleElements.stops?E("div",{"aria-disabled":this._saveLayer.opened.toString(),class:this.classes(M.section,this._saveLayer.opened&&I.buttonDisabled),key:"esri-directions__stops-container",role:"group"},this._renderStops()):null}_renderDepartureTimeControls(){if(!this.visibleElements.departureTime)return null;const{messages:{departAt:e,departureTime:t,leaveNow:s,timeUnspecified:i}}=this;return E("div",{"aria-disabled":this._saveLayer.opened.toString(),class:this.classes(M.departureTime,this._saveLayer.opened&&I.buttonDisabled),key:"esri-directions__departure-time-controls",role:"group"},E("select",{"aria-label":t,bind:this,class:this.classes(M.departureTimeSelect,I.select),onchange:this._handleDepartureOptionChange,title:t},E("option",{value:f.NOW,selected:this._departureTimeOption===f.NOW},s),E("option",{value:f.DEPART_AT,selected:this._departureTimeOption===f.DEPART_AT},e),E("option",{value:f.UNSPECIFIED,selected:this._departureTimeOption===f.UNSPECIFIED},i)),this._departureTimeOption===f.DEPART_AT?this._renderTimeControls():null)}_renderStops(){const{stops:e}=this.viewModel.layer;let t=0;for(const r of this._stopsToSearches.keys())e.includes(r)||this._disposeSearch(r);for(const r of e){const e=this.acquireSearch(r);"none"!==e.activeMenu&&(t+=1),null!=r.name&&(e.searchTerm=r.name)}const s=e.toArray().map(((s,i)=>{const r=e.length,o=i>1&&null==s.geometry,n={[L.radioUnchecked]:i>=0&&i<r-1,[L.radioChecked]:i===r-1},a={[M.lastStopIconContainer]:i===r-1},l={[M.validStopRow]:!o},c=e.at(i+1),d=c&&null!=c.geometry,u=i===r-1,h=i===r-2,p=2===r&&0===i||r>2&&!u&&!h||r>2&&h&&d||r>2&&u&&null==s.geometry,v=r<3,m=this.acquireSearch(s),{messages:_}=this,{removeStop:g,reverseStops:S,unlocated:y}=_,w=null!=s.geometry&&null!=s.name?s.name:y,f=x(i+1),b=`${_.stopLabel} ${f} (${w})`,T=`${this.id}__stop--${i}`,C=!!m.searchTerm&&!!m.selectedResult&&null!=s.geometry&&m.selectedResult.name===s.name,k={zIndex:"none"!==m.activeMenu?""+t--:""};return E("li",{"aria-label":b,afterCreate:this._handleStopFieldCreation,bind:this,class:this.classes(M.stopRow,l),id:T,key:i,"data-stop-index":i,styles:k},E("div",{class:M.stopHandle},E("span",{"aria-hidden":"true",class:this.classes(M.stopIcon,L.handleVertical,M.stopHandleIcon,M.interactiveStopIcon),onpointerdown:this._handleDragHandlePointerDown}),E("div",{bind:this,"aria-labelledby":T,class:this.classes(M.stopIconContainer,a),"data-stop-index":i,onclick:this._handleStopIconClick,onkeydown:this._handleStopIconClick,role:"button"},E("span",{class:this.classes(M.stopIcon,n),tabIndex:C?0:void 0}))),E("div",{class:M.stopInput},m.render()),E("div",{class:M.stopOptions,role:"group"},E("div",{"aria-label":g,class:M.removeStopButton,bind:this,"data-stop-index":i,hidden:v,onkeydown:this._handleRemoveStop,onclick:this._handleRemoveStop,role:"button",tabIndex:0,title:g},E("span",{"aria-hidden":"true",class:this.classes(M.stopIcon,M.removeStop,L.trash,M.interactiveStopIcon)}),E("span",{class:L.fontFallbackText},"removeStopTitle")),E("div",{"aria-label":S,class:M.reverseStops,bind:this,hidden:p,onkeydown:this._handleReverseStops,onclick:this._handleReverseStops,role:"button",tabIndex:0,title:S},E("span",{"aria-hidden":"true",class:this.classes(M.stopIcon,L.upDownArrows,M.interactiveStopIcon)}),E("span",{class:L.fontFallbackText},"removeStopTitle"))))})),i=this._renderAddStop();return E("div",null,E("ol",{class:M.stops,role:"group",afterCreate:this._setUpDragAndDropStops},s),i)}_renderAddStop(){const e=this.viewModel.layer?.stops;if(!e)return null;const t=e.filter((({geometry:e})=>null!=e)),s=e.at(-1);return t.length>1&&t.length<this.maxStops&&null!=s&&null!=s.geometry?E("div",{class:M.toolbarSection},E("div",{class:M.toolbarButtons},E("calcite-button",{appearance:"outline",class:M.addStopButton,kind:"neutral",scale:"s",round:!0,iconStart:"plus",key:M.addStopButton,onclick:()=>{this._addNewPlaceholder()},label:this.messages.addStop,width:"full"},this.messages.addStop))):null}_handleStopIconClick(e){const t=J(e.currentTarget),s=null!=t?this.viewModel.layer?.stops.at(t):void 0;s?.geometry&&this._centerAtStop(s)}_handleClearRouteClick(){this.viewModel.reset()}_centerAtStop(e){this.viewModel.centerAt(e)}_handleStopFieldCreation(e){const t=this._newPlaceholderStop;if(!t)return;const s=J(e),i=null!=s?this.viewModel.layer?.stops.at(s):void 0;if(t===i){const e=this.acquireSearch(i);e.when((()=>{this.renderNow(),e.focus()}))}this._newPlaceholderStop=null}_handleStopInputBlur(e,t){if(this._saveLayer.opened)return;this.removeHandles(N);if(!!e.selectedResult&&null!=t.geometry&&null!=e.selectedResult?.feature.geometry&&t.geometry===e.selectedResult?.feature.geometry)return void this._pointerDownUpHandle?.pause();const s=null==t.geometry&&null==e.selectedResult?.feature.geometry,i=null!=t.geometry&&null!=e.selectedResult?.feature.geometry&&t.geometry!==e.selectedResult?.feature.geometry;if((s||i)&&"none"===e.activeMenu&&e.searchTerm)return e.search(),void this._pointerDownUpHandle?.pause();e.searchTerm||(this._viewClickHandle?.resume(),clearTimeout(this._autoStopRemovalTimeoutId),this._autoStopRemovalTimeoutId=setTimeout((()=>{this.destroyed||(this._viewClickHandle?.pause(),"searching"!==e.viewModel.state?this._pointerPressedSearchSuggestionStop||(null!=t.geometry&&(t.geometry=null,this._getDirections()),this.scheduleRender()):this._pointerDownUpHandle?.pause())}),this._autoStopRemovalDelay))}_handleStopInputFocus(e,t){this._pointerDownUpHandle?.resume();const{view:s}=this;if(this.hasHandles(N)||!s)return;const r=s.cursor;this.addHandles([i((()=>{s.cursor=r})),o((()=>e.searchTerm),(t=>{e.destroyed||(s.cursor=t.length?r:"copy")}),n)],N),this._activeStop=t}_prepViewClick(){const{view:e}=this.viewModel;r(e),r(e.surface);const t=s(e,"click",this._handleViewClick.bind(this)),i=s(e.surface,"click",(()=>{clearTimeout(this._autoStopRemovalTimeoutId),i.pause()}));return{remove(){i.remove(),t.remove()},pause(){i.pause(),t.pause()},resume(){i.resume(),t.resume()}}}_prepPointerDownUpClick(){const e=s(document,"pointerdown",(e=>{this._pointerPressedSearchSuggestionStop=F(e)?this._activeStop:null})),t=s(document,"pointerup",(e=>{this._pointerDownUpHandle?.pause();const t=F(e),s=this._activeStop;t||s!==this._pointerPressedSearchSuggestionStop||this._removeStop(s),this.scheduleRender(),this._pointerPressedSearchSuggestionStop=t?s:null}));return{remove(){t.remove(),e.remove()},pause(){t.pause(),e.pause()},resume(){e.resume()}}}_handleViewClick(e){e.stopPropagation();const t=this._activeStop,s=t?this._stopsToSearches.get(t):null;t&&s&&!s.searchTerm&&(s.search(e.mapPoint).then((e=>{const i=e?.results[0].results;if(!i)return;const{feature:r,name:o}=i[0];t.geometry=r.geometry,t.name=o,s.searchTerm=o})),this.scheduleRender()),this._viewClickHandle?.pause(),clearTimeout(this._autoStopRemovalTimeoutId)}_addNewPlaceholder(){if(this._pointerDownUpHandle?.pause(),this._newPlaceholderStop)return;const e=new p({symbol:new v});this.viewModel.layer?.stops.add(e),this._newPlaceholderStop=e}_handleReverseStops(){this._reverseStops()}_reverseStops(){const e=this.viewModel.layer?.stops??[];e.reverse();for(const t of e)t.sequence=null;this._getDirections()}_handleRemoveStop(e){const{layer:t}=this.viewModel;if(!t)return;const s=J(e.currentTarget);if(null==s)return;const{stops:i,routeInfo:r}=t,o=i.at(s);this._removeStop(o),null==o.geometry&&null!=r||this._getDirections()}_removeStop(e){const{stops:t}=this.viewModel.layer;!e||t.length<=2||(this._disposeSearch(e),t.remove(e))}_handleDepartureOptionChange(e){const t=e.currentTarget,s=t.item(t.selectedIndex);s.value===f.NOW?(this._departureTimeOption=f.NOW,this.viewModel.departureTime=f.NOW,this.removeHandles(V),this._getDirections()):s.value===f.DEPART_AT?(this._departureTimeOption=f.DEPART_AT,this.addHandles(o((()=>[this._datePicker.value,this._timePicker.value]),(()=>{this._updateDepartureTime(),this._getDirections()}),n),V)):(this._departureTimeOption=f.UNSPECIFIED,this.viewModel.departureTime=null,this._getDirections())}_updateDepartureTime(){const e=this._datePicker.value,t=this._timePicker.value;e&&t&&(this.viewModel.departureTime=new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes()))}_renderTimeControls(){return E("div",{class:M.departureTimeControls,key:"esri-directions__time-controls",role:"group"},this._datePicker.render(),this._timePicker.render())}_renderSectionSplitter(){return E("div",{class:M.sectionSplitter})}_renderSaveContainer(){const{saveButton:e,saveAsButton:t,printButton:s,layerDetails:i}=this.visibleElements;return e||t||s||i?E("div",{class:M.saveSection,key:M.saveSection},this._renderSaveButtons(),this._renderRouteLayerDetailsLink()):null}_renderSaveButtons(){const{saveButton:e,saveAsButton:t,printButton:s}=this.visibleElements;return e||t||s?E("div",{class:M.saveButtons,key:M.saveButtons},this._renderSaveButton(),this._renderSaveAsButton(),this._renderPrintButton()):null}_renderSaveButton(){if(!this.visibleElements.saveButton)return null;const{portalItem:e,routeInfo:t}=this.viewModel.layer,s=e?.itemControl,i=null!=t&&("admin"===s||"update"===s);return E("calcite-button",{appearance:"outline",class:M.saveButton,disabled:!i,iconStart:"save",key:M.saveButton,onclick:()=>{this._handleSaveButtonClick()},label:this.messagesCommon.save,width:"full"},this.messagesCommon.save)}_renderSaveAsButton(){if(!this.visibleElements.saveAsButton)return null;const e=null==this.viewModel.layer.routeInfo;return E("div",{class:M.saveAsButtonPopover,key:M.saveAsButtonPopover},E("calcite-button",{afterCreate:e=>{this._saveAsButtonNode=e},appearance:"outline",class:M.saveAsButton,disabled:e,iconStart:"duplicate",key:M.saveAsButton,onclick:()=>this._handleSaveAsButtonClick(),label:this.messagesCommon.saveAs,width:"full"},this.messagesCommon.saveAs))}_renderSavePopover(){return E("calcite-popover",{label:this._saveLayer.label,open:this._saveLayer.opened,overlayPositioning:"fixed",referenceElement:this._saveAsButtonNode},this._saveLayer.render())}_handleSaveAsButtonClick(){this._saveLayer.opened?this._saveLayer.close():this._saveLayer.open(this.viewModel.layer)}_renderPrintButton(){return this.visibleElements.printButton?E("calcite-button",{appearance:"outline",class:M.printButton,iconStart:"print",key:M.printButton,label:this.messagesCommon.print}):null}_renderRouteLayerDetailsLink(){if(!this.visibleElements.layerDetails)return null;const{portalItem:e}=this.viewModel.layer;if(!e)return null;const{id:t,portal:{url:s}}=e,i=`${s}/home/item.html?id=${t}`;return E("calcite-link",{class:M.layerDetailsLink,href:i,key:M.layerDetailsLink,target:"_blank"},this.messages.viewLayerDetails)}_handleSaveButtonClick(){this.viewModel.layer.save()}_renderDirectionsContainer(){return E("div",{class:this.classes(M.directionsSection,M.section),key:"esri-directions__container"},this._renderDirectionsContainerContent())}_renderLoader(){return E("div",{class:M.loader,key:"loader"})}_renderWarningCard(){return E("div",{class:M.warningCard,role:"alert"},E("div",{class:M.warningHeader},E("span",{class:L.noticeTriangle,"aria-hidden":"true"}),E(P,{class:M.warningHeading,level:this.headingLevel},this.messagesCommon.warning)),E("div",{class:M.warningMessage},this._getErrorMessage()))}_renderDirectionsContainerContent(){const{layer:e,state:t}=this.viewModel,s="routing"===t;return"error"===t?this._renderWarningCard():s?this._renderLoader():null!=e.directionLines?E("div",{"aria-disabled":this._saveLayer.opened.toString(),class:this.classes(M.summary,this._saveLayer.opened&&I.buttonDisabled),key:"esri-directions__summary",role:"group"},this._renderCosts(),this._renderRouteActions(),this._renderManeuverSections()):E("div",{key:"esri-directions__placeholder",class:I.empty},this._renderPlaceholder(),E(P,{class:M.message,level:this.headingLevel},this.messages.directionsPlaceholder))}_renderPlaceholder(){return E("svg",{class:I.emptyIllustration,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256"},E("path",{fill:"currentcolor",d:"M192 36c-15.477 0-24 6.034-24 16.99v45.822l24 24 24-24v-45.82C216 42.033 207.477 36 192 36zm20 61.155l-20 20-20-20V52.99c0-8.62 6.73-12.99 20-12.99s20 4.37 20 12.99zM192 52a12 12 0 1 0 12 12 12.013 12.013 0 0 0-12-12zm0 20a8 8 0 1 1 8-8 8.008 8.008 0 0 1-8 8zM92 140.99C92 130.035 83.477 124 68 124s-24 6.034-24 16.99v45.822l24 24 24-24zm-4 44.165l-20 20-20-20V140.99c0-8.62 6.73-12.99 20-12.99s20 4.37 20 12.99zM68 140a12 12 0 1 0 12 12 12.013 12.013 0 0 0-12-12zm0 20a8 8 0 1 1 8-8 8.008 8.008 0 0 1-8 8zm84-44h16v4h-16zm-24 80h4v12h-12v-4h8zm0-28h4v16h-4zm0-52h12v4h-8v8h-4zm0 24h4v16h-4zm-36 64h16v4H92z"}))}_renderMessage(e){return E(P,{class:M.messageHeading,level:this.headingLevel},e)}_renderRouteActions(){return E("div",{class:M.routeActions},E("button",{"aria-label":this.messages.clearRoute,class:this.classes(M.clearRouteButton,I.button,I.buttonTertiary),tabIndex:0,onclick:this._handleClearRouteClick,bind:this,type:"button"},this.messages.clearRoute))}_getSections(){const{layer:e}=this.viewModel;if(!e)return null;const{directionPoints:t,directionLines:s,stops:i}=e;if(null==t||null==s)return null;const r=[];let o=null;for(const n of t){const{objectId:e,stopId:t}=n;if(null!=t){const e=i.find((({objectId:e})=>e===t)),s=0===r.length;null!=o&&o.stop===e||(o={stop:e,directions:[],open:s},r.push(o));continue}if(null==o)continue;const a=s.find((({directionPointId:t})=>t===e));null!=a&&o.directions.push({directionPoint:n,directionLine:a})}return r}_renderManeuverSections(){return null==this._sections?null:E("div",{class:M.maneuvers,role:"group"},this._sections.map(((e,t)=>{const{open:s}=e;let i;e.directions.length>0&&s&&(i=E("ol",{class:M.maneuverList},e.directions.map((e=>this._renderManeuver(e)))));const r=this._sections.length>2,o=t===this._sections.length-1,n={[M.collapsibleSection]:r},a={[L.down]:!s,[L.up]:s};let l;if(r&&!o){const t=s?this.messagesCommon.close:this.messagesCommon.open;l=E("header",{class:this.classes(M.maneuverSectionHeader,M.maneuverSectionToggle),key:M.maneuverSectionHeader},E("div",{"aria-expanded":s.toString(),"aria-label":t,bind:this,class:M.maneuverSectionHeaderButton,"data-maneuver-section":e,onkeydown:this._handleSectionToggle,onclick:this._handleSectionToggle,role:"button",tabIndex:0,title:t},E(P,{class:M.maneuverSectionTitle,level:this.headingLevel},e.stop.name),E("span",{"aria-hidden":"true",class:this.classes(a)})))}else l=E("header",{class:M.maneuverSectionHeader,key:M.maneuverSectionHeader},E(P,{class:M.maneuverSectionTitle,level:this.headingLevel},e.stop.name));return E("section",{class:this.classes(M.maneuverSection,n),key:t},l,i)})))}_handleSectionToggle(e){const t=Q(e.currentTarget);t&&(t.open=!t.open)}_renderCosts(){const e=this._getCostSummary(),{directionPoints:t}=this.viewModel.layer;if(null==t||null==e)return null;const{distance:s,duration:i}=e,{primaryCosts:r,secondaryCosts:o,zoomToRoute:n}=this.messages,a=this._renderEta();return E("div",{"aria-label":n,bind:this,class:M.directionCosts,onkeydown:this._handleSummaryInteraction,onclick:this._handleSummaryInteraction,role:"button",tabIndex:0,title:n},E("div",{class:M.costsDetails,role:"group"},E("div",{class:M.primaryCosts,title:r},i),E("div",{class:M.verticalSplitter}),E("div",{class:M.secondaryCosts,title:o},s)),a)}_renderEta(){const{directionPoints:e}=this.viewModel.layer,{eta:t}=this.messages;if(null==e)return null;const s=e.at(-1).arrivalTime,i=U("short-time");return s&&this._departureTimeOption!==f.UNSPECIFIED?E("div",{class:M.arrivalTimeContainer,title:t},E("span",{class:M.arrivalTime},O(s,i))," ",$(s)):null}_handleSummaryInteraction(){this._activeManeuver=null,this._focusedManeuver=null,this.viewModel.clearHighlights(),this.zoomToRoute()}_getErrorMessage(){switch(this.viewModel.lastError?.name){case"directions-view-model:unable-to-route":return this.messages.errors.unableToRoute;case"directions-view-model:service-metadata-unavailable":return this.messages.errors.unableToLoadServiceMetadata;default:return this.messages.errors.unknownError}}_normalizeSearchSources(e){this._overrideDefaultSources(e),this._applyLocatorSourceOverrides(e)}_overrideDefaultSources(e){e.viewModel.defaultSources.forEach((e=>{e.autoNavigate=!1}))}_applyLocatorSourceOverrides({allSources:e}){for(const t of e)"url"in t&&t.url&&(t.locationType??="street",T(t.url)&&this.apiKey&&null==t.apiKey&&(t.apiKey=this.apiKey,t.url=C))}_disposeSearch(e){if(!e||!this._stopsToSearches.has(e))return;const t=this._stopsToSearches.get(e);this.removeHandles(t),t.destroy(),this._stopsToSearches.delete(e)}_renderManeuver(e){const{directionPoint:t,directionLine:s}=e,{distance:i,duration:r}=s,{messages:o,messagesUnits:n,unit:a}=this,l=y(n,i??0,a),c=w(r??0),d=l&&c?`${l}&nbsp;&middot;&nbsp;${c}`:`${l}${c}`,u=this._getFormattedManeuverText(t),{objectId:h,directionPointType:p}=t,v=b(p),m=`esri-directions__maneuver-${h}`,_=`esri-directions__intermediate-costs-${h}`,g={[M.maneuverActive]:this._activeManeuver===s};return E("li",{"aria-labelledby":`${m} ${_}`,bind:this,class:this.classes(M.maneuver,g),"data-maneuver":s,key:s,onclick:this._handleManeuverClick,onkeydown:this._handleManeuverClick,onfocus:this._handleManeuverFocus,onmouseover:this._handleManeuverMouseOver,onmouseout:this._handleManeuverMouseOut,onblur:this._handleManeuverBlur,tabIndex:0},v&&E("calcite-icon",{alt:"",class:M.maneuverIcon,icon:v}),E("div",{class:M.maneuverCostsContainer},E("span",{id:m,innerHTML:u??""}),E("div",{class:M.maneuverCosts},E("div",{class:M.horizontalSplitter}),E("div",{"aria-hidden":"true",id:_,class:M.intermediateCost,innerHTML:d,title:o.intermediateCosts}))))}_handleManeuverClick(e){const t=X(e.currentTarget);if(!t)return;if(this._activeManeuver===t)return this._activeManeuver=null,void this.zoomToRoute();this._activeManeuver=t;const{geometry:s}=t;this.viewModel.centerAt(s),this.viewModel.highlight(t)}_handleManeuverMouseOver(e){if(this._activeManeuver||this._focusedManeuver)return;const t=X(e.currentTarget);t&&this.viewModel.highlight(t)}_handleManeuverMouseOut(){this._activeManeuver||this._focusedManeuver||this.viewModel.clearHighlights()}_handleManeuverBlur(){this._activeManeuver||(this._focusedManeuver=null,this.viewModel.clearHighlights())}_handleManeuverFocus(e){if(this._activeManeuver)return;const t=X(e.currentTarget);t&&(this._focusedManeuver=t,this.viewModel.highlight(t))}_getFormattedManeuverText(e){const{displayText:t,name:s,intersectingName:i}=e;if(null==t)return"";let r=t;return null!=s&&r.includes(s)&&(r=r.replace(s,`<strong>${s}</strong>`)),null!=i&&r.includes(i)&&(r=r.replace(i,`<strong>${i}</strong>`)),r}_getCostSummary(){const{messagesUnits:e,unit:t,viewModel:s}=this,{routeInfo:i}=s.layer;if(null==i)return null;const r=i.totalDistance??0,o=i.totalDuration??0;return{distance:y(e,r,t),duration:w(o)}}async _getDirections(){const e=this.viewModel.layer?.stops.filter((({geometry:e})=>null!=e));if(e&&!(e.length<2))try{await this.viewModel.getDirections()}catch{}}};e([c()],q.prototype,"apiKey",null),e([c(h)],q.prototype,"defaultUnit",void 0),e([c()],q.prototype,"goToOverride",null),e([c()],q.prototype,"headingLevel",void 0),e([c()],q.prototype,"iconClass",void 0),e([c()],q.prototype,"icon",void 0),e([c()],q.prototype,"label",null),e([c({readOnly:!0})],q.prototype,"lastRoute",null),e([c()],q.prototype,"layer",null),e([c()],q.prototype,"maxStops",null),e([c(),A("esri/widgets/Directions/t9n/Directions")],q.prototype,"messages",void 0),e([c(),A("esri/t9n/common")],q.prototype,"messagesCommon",void 0),e([c(),A("esri/core/t9n/Units")],q.prototype,"messagesUnits",void 0),e([c()],q.prototype,"searchProperties",void 0),e([c()],q.prototype,"unit",null),e([c()],q.prototype,"view",null),e([c({type:g})],q.prototype,"viewModel",void 0),e([c()],q.prototype,"visibleElements",void 0),e([d("visibleElements")],q.prototype,"castVisibleElements",null),e([H()],q.prototype,"_handleStopIconClick",null),e([H()],q.prototype,"_handleClearRouteClick",null),e([H()],q.prototype,"_handleReverseStops",null),e([H()],q.prototype,"_handleRemoveStop",null),e([H()],q.prototype,"_handleSectionToggle",null),e([H()],q.prototype,"_handleSummaryInteraction",null),e([H()],q.prototype,"_handleManeuverClick",null),q=e([u("esri.widgets.Directions")],q);const G=q;function Y(e){return e?.["data-mode"]}function J(e){return e?.["data-stop-index"]}function Q(e){return e?.["data-maneuver-section"]}function X(e){return e?.["data-maneuver"]}export{G as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{on as t,pausable as s}from"../core/events.js";import{makeHandle as i}from"../core/handleUtils.js";import{assertIsSome as r}from"../core/maybe.js";import{watch as o,initial as n,when as a,on as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{defaultUnitPropertyMetadata as h}from"../properties/defaultUnit.js";import p from"../rest/support/Stop.js";import v from"../symbols/SimpleMarkerSymbol.js";import m from"./Search.js";import _ from"./Widget.js";import g from"./Directions/DirectionsViewModel.js";import{SaveLayer as S}from"./Directions/components/SaveLayer.js";import{formatDistance as y,formatDuration as w}from"./Directions/support/directionsUtils.js";import{DepartureTimeOption as f,css as M,getIconName as b}from"./Directions/support/resources.js";import{isArcGISWorldGeocoder as T,meteredArcGISLocatorUrl as C}from"./Search/support/locatorUtils.js";import{loadCalciteComponents as k}from"./support/componentsUtils.js";import D from"./support/DatePicker.js";import{globalCss as I}from"./support/globalCss.js";import{Heading as P,incrementHeadingLevel as R}from"./support/Heading.js";import{legacyIcon as L}from"./support/legacyIcon.js";import B from"./support/TimePicker.js";import{accessibleHandler as H}from"./support/decorators/accessibleHandler.js";import{messageBundle as A}from"./support/decorators/messageBundle.js";import{tsx as E}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import j from"sortablejs";import{formatNumber as x}from"../intl/number.js";import{formatDate as O,convertDateFormatToIntlOptions as U}from"../intl/date.js";const z={departureTime:!0,layerDetails:!0,printButton:!1,saveAsButton:!0,saveButton:!0,stops:!0,traveMode:!0};function $(e){const t=e.getTimezoneOffset(),s=t>0?"-":"+",i=60,r=Math.abs(Math.floor(t/i)),o=Math.abs(Math.floor(t)%i),n={minimumIntegerDigits:2};return`GMT${s}${x(r,n)}${x(o,n)}`}function F(e){return!!e.composedPath?.().find((e=>e.classList?.contains("esri-search__suggestions-list")))}const N="search-term",V="date-time-picker",K=100,W=500;let q=class extends _{constructor(e,t){super(e,t),this._activeStop=null,this._activeManeuver=null,this._autoStopRemovalDelay=K,this._autoStopRemovalTimeoutId=void 0,this._departureTimeOption=f.NOW,this._datePicker=new D,this._focusedManeuver=null,this._newPlaceholderStop=null,this._pointerDownUpHandle=null,this._pointerPressedSearchSuggestionStop=null,this._renderSavePopoverFunction=null,this._saveAsButtonNode=null,this._saveLayer=new S,this._sections=null,this._sortable=null,this._stopsToSearches=new Map,this._timePicker=new B,this._viewClickHandle=null,this.headingLevel=2,this.iconClass=M.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.searchProperties=null,this.viewModel=new g,this.visibleElements={...z},this._setUpDragAndDropStops=e=>{this._sortable=j.create(e,{draggable:`.${M.validStopRow}`,ghostClass:M.stopRowGhost,handle:`.${M.stopHandle}`,onEnd:this._handleStopInputDragEnd})},this._handleDragHandlePointerDown=()=>this.viewModel.layer?.stops.forEach((e=>this.acquireSearch(e).activeMenu="none")),this._handleStopInputDragEnd=({oldIndex:e,newIndex:t,target:s})=>{if(e===t||null==t||null==e)return;const{children:i}=s,r=i[t],o=i[e],n=t-e<0;s.insertBefore(r,n?o.nextElementSibling:o);const{stops:a}=this.viewModel.layer;a.reorder(a.at(e),t);for(const l of a)l.sequence=null;this._getDirections()}}initialize(){this.addHandles([o((()=>this.viewModel.layer?.routeInfo),(()=>{this._activeManeuver=null,this._focusedManeuver=null,this._sections=this._getSections(),this.scheduleRender()}),n),a((()=>this.view),((e,s)=>{if(s&&(this._viewClickHandle=null,null!=s&&this.removeHandles(s)),e){const s=this._prepPointerDownUpClick(),i=this._prepViewClick();s.pause(),i.pause();const r=e.surface;this.addHandles([t(r,"mousedown",(()=>this._autoStopRemovalDelay=W)),t(r,"mouseup",(()=>this._autoStopRemovalDelay=K)),s,i],e),this._pointerDownUpHandle=s,this._viewClickHandle=i}}),n),a((()=>null==this.viewModel.serviceDescription),(()=>{try{this.viewModel.load()}catch{}}),n),o((()=>this._saveLayer.state),(()=>{this.scheduleRender()}))]),this.when((()=>{this.destroyed||this.visibleElements.saveAsButton&&(this._renderSavePopoverFunction=this._renderSavePopover.bind(this),this._projector.append(document.body,this._renderSavePopoverFunction))}))}loadDependencies(){return k({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),link:()=>import("@esri/calcite-components/dist/components/calcite-link.js"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover.js")})}destroy(){this._datePicker.destroy(),this._timePicker.destroy();for(const e of this._stopsToSearches.values())e.destroy();this._sortable?.destroy(),null!=this._renderSavePopoverFunction&&this._projector.detach(this._renderSavePopoverFunction)}get apiKey(){return this.viewModel.apiKey}set apiKey(e){this.viewModel.apiKey=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 lastRoute(){return this.viewModel.lastRoute}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get maxStops(){return this.viewModel.maxStops}set maxStops(e){this.viewModel.maxStops=e}get unit(){return this.defaultUnit}set unit(e){this._overrideIfSome("unit",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...z,...e}}acquireSearch(e){const{view:t}=this.viewModel;if(this._stopsToSearches.has(e)){const s=this._stopsToSearches.get(e);return s.view=t,this._overrideDefaultSources(s),s}const s=new m({view:t,resultGraphicEnabled:!1,popupEnabled:!1,...this.searchProperties});return this._normalizeSearchSources(s),this.addHandles([l((()=>s.allSources),"change",(()=>this._normalizeSearchSources(s))),s.on("select-result",(()=>{e.geometry=s.selectedResult?.feature.geometry,e.name=s.selectedResult?.name,this._getDirections()})),s.on("search-focus",(()=>this._handleStopInputFocus(s,e))),s.on("search-blur",(()=>this._handleStopInputBlur(s,e))),s.on("search-clear",(()=>{e.geometry=null,e.name=null,this._activeStop=e,this.viewModel.layer?.removeResult()})),o((()=>s.searchTerm),(t=>{e.name=t}))],s),this._stopsToSearches.set(e,s),s}getDirections(){return this.viewModel.getDirections()}render(){return E("div",{class:this.classes(M.base,I.widget,I.panel,M.scroller)},this._renderPanelContent())}save(){return this.viewModel.save()}saveAs(e,t={}){return this.viewModel.saveAs(e,t)}zoomToRoute(){return this.viewModel.zoomToRoute()}_renderPanelContent(){const{layer:e,serviceDescription:t,state:s}=this.viewModel,i="initializing"===s,r="error"===s&&!t,o="unauthenticated"===s,n={[M.panelContentLoading]:i,[M.panelContentError]:r||!e,[M.panelContentSignIn]:o},a=i?"presentation":"group",l=e?o?this._renderSignIn():r?this._renderMessage(this._getErrorMessage()):i?this._renderLoader():this._renderReadyContent():this._renderMessage(this.messages.missingLayer);return E("div",{class:this.classes(M.panelContent,n),role:a},l)}_renderReadyContent(){return[this._renderStopsContainer(),this._renderTravelModeOptions(),this._renderDepartureTimeControls(),this._renderSaveContainer(),this._renderSectionSplitter(),this._renderDirectionsContainer()]}_renderSignIn(){return E("div",{class:M.signInContent,key:"sign-in"},E(P,{class:M.contentTitle,level:this.headingLevel},this.messages.widgetLabel),this._renderPlaceholder(),E(P,{level:R(this.headingLevel)},this.messages.signInRequired),E("button",{bind:this,class:this.classes(I.button,I.buttonSecondary,M.signInButton),onclick:this._handleSignInClick,tabIndex:0,type:"button"},this.messagesCommon.auth.signIn))}_handleSignInClick(){this.viewModel.load().catch((()=>{}))}_renderTravelModeOptions(){if(!this.visibleElements.traveMode)return null;const{selectedTravelMode:e,travelModes:t}=this.viewModel;if(0===t.length)return null;const s=null!=e?e.name:this.messages.travelMode;return E("div",{"aria-disabled":this._saveLayer.opened.toString(),class:this.classes(M.travelMode,this._saveLayer.opened&&I.buttonDisabled),key:"esri-directions__travel-mode-controls",role:"group"},E("select",{"aria-label":s,bind:this,class:this.classes(M.travelModeSelect,I.select),key:"esri-directions__travel-mode-options",onchange:this._handleTravelModeChange,title:s},t.map(((t,s)=>E("option",{"data-mode":t,key:`esri-directions__travel-mode-${s}`,selected:e===t,value:`${s}`},t.name)))))}_handleTravelModeChange(e){const t=e.currentTarget;this.viewModel.selectedTravelMode=Y(t.item(t.selectedIndex)),this._getDirections()}_renderStopsContainer(){return this.visibleElements.stops?E("div",{"aria-disabled":this._saveLayer.opened.toString(),class:this.classes(M.section,this._saveLayer.opened&&I.buttonDisabled),key:"esri-directions__stops-container",role:"group"},this._renderStops()):null}_renderDepartureTimeControls(){if(!this.visibleElements.departureTime)return null;const{messages:{departAt:e,departureTime:t,leaveNow:s,timeUnspecified:i}}=this;return E("div",{"aria-disabled":this._saveLayer.opened.toString(),class:this.classes(M.departureTime,this._saveLayer.opened&&I.buttonDisabled),key:"esri-directions__departure-time-controls",role:"group"},E("select",{"aria-label":t,bind:this,class:this.classes(M.departureTimeSelect,I.select),onchange:this._handleDepartureOptionChange,title:t},E("option",{selected:this._departureTimeOption===f.NOW,value:f.NOW},s),E("option",{selected:this._departureTimeOption===f.DEPART_AT,value:f.DEPART_AT},e),E("option",{selected:this._departureTimeOption===f.UNSPECIFIED,value:f.UNSPECIFIED},i)),this._departureTimeOption===f.DEPART_AT?this._renderTimeControls():null)}_renderStops(){const{stops:e}=this.viewModel.layer;let t=0;for(const r of this._stopsToSearches.keys())e.includes(r)||this._disposeSearch(r);for(const r of e){const e=this.acquireSearch(r);"none"!==e.activeMenu&&(t+=1),null!=r.name&&(e.searchTerm=r.name)}const s=e.toArray().map(((s,i)=>{const r=e.length,o=i>1&&null==s.geometry,n={[L.radioUnchecked]:i>=0&&i<r-1,[L.radioChecked]:i===r-1},a={[M.lastStopIconContainer]:i===r-1},l={[M.validStopRow]:!o},c=e.at(i+1),d=c&&null!=c.geometry,u=i===r-1,h=i===r-2,p=2===r&&0===i||r>2&&!u&&!h||r>2&&h&&d||r>2&&u&&null==s.geometry,v=r<3,m=this.acquireSearch(s),{messages:_}=this,{removeStop:g,reverseStops:S,unlocated:y}=_,w=null!=s.geometry&&null!=s.name?s.name:y,f=x(i+1),b=`${_.stopLabel} ${f} (${w})`,T=`${this.id}__stop--${i}`,C=!!m.searchTerm&&!!m.selectedResult&&null!=s.geometry&&m.selectedResult.name===s.name,k={zIndex:"none"!==m.activeMenu?""+t--:""};return E("li",{afterCreate:this._handleStopFieldCreation,"aria-label":b,bind:this,class:this.classes(M.stopRow,l),"data-stop-index":i,id:T,key:i,styles:k},E("div",{class:M.stopHandle},E("span",{"aria-hidden":"true",class:this.classes(M.stopIcon,L.handleVertical,M.stopHandleIcon,M.interactiveStopIcon),onpointerdown:this._handleDragHandlePointerDown}),E("div",{"aria-labelledby":T,bind:this,class:this.classes(M.stopIconContainer,a),"data-stop-index":i,onclick:this._handleStopIconClick,onkeydown:this._handleStopIconClick,role:"button"},E("span",{class:this.classes(M.stopIcon,n),tabIndex:C?0:void 0}))),E("div",{class:M.stopInput},m.render()),E("div",{class:M.stopOptions,role:"group"},E("div",{"aria-label":g,bind:this,class:M.removeStopButton,"data-stop-index":i,hidden:v,onclick:this._handleRemoveStop,onkeydown:this._handleRemoveStop,role:"button",tabIndex:0,title:g},E("span",{"aria-hidden":"true",class:this.classes(M.stopIcon,M.removeStop,L.trash,M.interactiveStopIcon)}),E("span",{class:L.fontFallbackText},"removeStopTitle")),E("div",{"aria-label":S,bind:this,class:M.reverseStops,hidden:p,onclick:this._handleReverseStops,onkeydown:this._handleReverseStops,role:"button",tabIndex:0,title:S},E("span",{"aria-hidden":"true",class:this.classes(M.stopIcon,L.upDownArrows,M.interactiveStopIcon)}),E("span",{class:L.fontFallbackText},"removeStopTitle"))))})),i=this._renderAddStop();return E("div",null,E("ol",{afterCreate:this._setUpDragAndDropStops,class:M.stops,role:"group"},s),i)}_renderAddStop(){const e=this.viewModel.layer?.stops;if(!e)return null;const t=e.filter((({geometry:e})=>null!=e)),s=e.at(-1);return t.length>1&&t.length<this.maxStops&&null!=s&&null!=s.geometry?E("div",{class:M.toolbarSection},E("div",{class:M.toolbarButtons},E("calcite-button",{appearance:"outline",class:M.addStopButton,iconStart:"plus",key:M.addStopButton,kind:"neutral",label:this.messages.addStop,onclick:()=>{this._addNewPlaceholder()},round:!0,scale:"s",width:"full"},this.messages.addStop))):null}_handleStopIconClick(e){const t=J(e.currentTarget),s=null!=t?this.viewModel.layer?.stops.at(t):void 0;s?.geometry&&this._centerAtStop(s)}_handleClearRouteClick(){this.viewModel.reset()}_centerAtStop(e){this.viewModel.centerAt(e)}_handleStopFieldCreation(e){const t=this._newPlaceholderStop;if(!t)return;const s=J(e),i=null!=s?this.viewModel.layer?.stops.at(s):void 0;if(t===i){const e=this.acquireSearch(i);e.when((()=>{this.renderNow(),e.focus()}))}this._newPlaceholderStop=null}_handleStopInputBlur(e,t){if(this._saveLayer.opened)return;this.removeHandles(N);if(!!e.selectedResult&&null!=t.geometry&&null!=e.selectedResult?.feature.geometry&&t.geometry===e.selectedResult?.feature.geometry)return void this._pointerDownUpHandle?.pause();const s=null==t.geometry&&null==e.selectedResult?.feature.geometry,i=null!=t.geometry&&null!=e.selectedResult?.feature.geometry&&t.geometry!==e.selectedResult?.feature.geometry;if((s||i)&&"none"===e.activeMenu&&e.searchTerm)return e.search(),void this._pointerDownUpHandle?.pause();e.searchTerm||(this._viewClickHandle?.resume(),clearTimeout(this._autoStopRemovalTimeoutId),this._autoStopRemovalTimeoutId=setTimeout((()=>{this.destroyed||(this._viewClickHandle?.pause(),"searching"!==e.viewModel.state?this._pointerPressedSearchSuggestionStop||(null!=t.geometry&&(t.geometry=null,this._getDirections()),this.scheduleRender()):this._pointerDownUpHandle?.pause())}),this._autoStopRemovalDelay))}_handleStopInputFocus(e,t){this._pointerDownUpHandle?.resume();const{view:s}=this;if(this.hasHandles(N)||!s)return;const r=s.cursor;this.addHandles([i((()=>{s.cursor=r})),o((()=>e.searchTerm),(t=>{e.destroyed||(s.cursor=t.length?r:"copy")}),n)],N),this._activeStop=t}_prepViewClick(){const{view:e}=this.viewModel;r(e),r(e.surface);const t=s(e,"click",this._handleViewClick.bind(this)),i=s(e.surface,"click",(()=>{clearTimeout(this._autoStopRemovalTimeoutId),i.pause()}));return{remove(){i.remove(),t.remove()},pause(){i.pause(),t.pause()},resume(){i.resume(),t.resume()}}}_prepPointerDownUpClick(){const e=s(document,"pointerdown",(e=>{this._pointerPressedSearchSuggestionStop=F(e)?this._activeStop:null})),t=s(document,"pointerup",(e=>{this._pointerDownUpHandle?.pause();const t=F(e),s=this._activeStop;t||s!==this._pointerPressedSearchSuggestionStop||this._removeStop(s),this.scheduleRender(),this._pointerPressedSearchSuggestionStop=t?s:null}));return{remove(){t.remove(),e.remove()},pause(){t.pause(),e.pause()},resume(){e.resume()}}}_handleViewClick(e){e.stopPropagation();const t=this._activeStop,s=t?this._stopsToSearches.get(t):null;t&&s&&!s.searchTerm&&(s.search(e.mapPoint).then((e=>{const i=e?.results[0].results;if(!i)return;const{feature:r,name:o}=i[0];t.geometry=r.geometry,t.name=o,s.searchTerm=o})),this.scheduleRender()),this._viewClickHandle?.pause(),clearTimeout(this._autoStopRemovalTimeoutId)}_addNewPlaceholder(){if(this._pointerDownUpHandle?.pause(),this._newPlaceholderStop)return;const e=new p({symbol:new v});this.viewModel.layer?.stops.add(e),this._newPlaceholderStop=e}_handleReverseStops(){this._reverseStops()}_reverseStops(){const e=this.viewModel.layer?.stops??[];e.reverse();for(const t of e)t.sequence=null;this._getDirections()}_handleRemoveStop(e){const{layer:t}=this.viewModel;if(!t)return;const s=J(e.currentTarget);if(null==s)return;const{stops:i,routeInfo:r}=t,o=i.at(s);this._removeStop(o),null==o.geometry&&null!=r||this._getDirections()}_removeStop(e){const{stops:t}=this.viewModel.layer;!e||t.length<=2||(this._disposeSearch(e),t.remove(e))}_handleDepartureOptionChange(e){const t=e.currentTarget,s=t.item(t.selectedIndex);s.value===f.NOW?(this._departureTimeOption=f.NOW,this.viewModel.departureTime=f.NOW,this.removeHandles(V),this._getDirections()):s.value===f.DEPART_AT?(this._departureTimeOption=f.DEPART_AT,this.addHandles(o((()=>[this._datePicker.value,this._timePicker.value]),(()=>{this._updateDepartureTime(),this._getDirections()}),n),V)):(this._departureTimeOption=f.UNSPECIFIED,this.viewModel.departureTime=null,this._getDirections())}_updateDepartureTime(){const e=this._datePicker.value,t=this._timePicker.value;e&&t&&(this.viewModel.departureTime=new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes()))}_renderTimeControls(){return E("div",{class:M.departureTimeControls,key:"esri-directions__time-controls",role:"group"},this._datePicker.render(),this._timePicker.render())}_renderSectionSplitter(){return E("div",{class:M.sectionSplitter})}_renderSaveContainer(){const{saveButton:e,saveAsButton:t,printButton:s,layerDetails:i}=this.visibleElements;return e||t||s||i?E("div",{class:M.saveSection,key:M.saveSection},this._renderSaveButtons(),this._renderRouteLayerDetailsLink()):null}_renderSaveButtons(){const{saveButton:e,saveAsButton:t,printButton:s}=this.visibleElements;return e||t||s?E("div",{class:M.saveButtons,key:M.saveButtons},this._renderSaveButton(),this._renderSaveAsButton(),this._renderPrintButton()):null}_renderSaveButton(){if(!this.visibleElements.saveButton)return null;const{portalItem:e,routeInfo:t}=this.viewModel.layer,s=e?.itemControl,i=null!=t&&("admin"===s||"update"===s);return E("calcite-button",{appearance:"outline",class:M.saveButton,disabled:!i,iconStart:"save",key:M.saveButton,label:this.messagesCommon.save,onclick:()=>{this._handleSaveButtonClick()},width:"full"},this.messagesCommon.save)}_renderSaveAsButton(){if(!this.visibleElements.saveAsButton)return null;const e=null==this.viewModel.layer.routeInfo;return E("div",{class:M.saveAsButtonPopover,key:M.saveAsButtonPopover},E("calcite-button",{afterCreate:e=>{this._saveAsButtonNode=e},appearance:"outline",class:M.saveAsButton,disabled:e,iconStart:"duplicate",key:M.saveAsButton,label:this.messagesCommon.saveAs,onclick:()=>this._handleSaveAsButtonClick(),width:"full"},this.messagesCommon.saveAs))}_renderSavePopover(){return E("calcite-popover",{label:this._saveLayer.label,open:this._saveLayer.opened,overlayPositioning:"fixed",referenceElement:this._saveAsButtonNode},this._saveLayer.render())}_handleSaveAsButtonClick(){this._saveLayer.opened?this._saveLayer.close():this._saveLayer.open(this.viewModel.layer)}_renderPrintButton(){return this.visibleElements.printButton?E("calcite-button",{appearance:"outline",class:M.printButton,iconStart:"print",key:M.printButton,label:this.messagesCommon.print}):null}_renderRouteLayerDetailsLink(){if(!this.visibleElements.layerDetails)return null;const{portalItem:e}=this.viewModel.layer;if(!e)return null;const{id:t,portal:{url:s}}=e,i=`${s}/home/item.html?id=${t}`;return E("calcite-link",{class:M.layerDetailsLink,href:i,key:M.layerDetailsLink,target:"_blank"},this.messages.viewLayerDetails)}_handleSaveButtonClick(){this.viewModel.layer.save()}_renderDirectionsContainer(){return E("div",{class:this.classes(M.directionsSection,M.section),key:"esri-directions__container"},this._renderDirectionsContainerContent())}_renderLoader(){return E("div",{class:M.loader,key:"loader"})}_renderWarningCard(){return E("div",{class:M.warningCard,role:"alert"},E("div",{class:M.warningHeader},E("span",{"aria-hidden":"true",class:L.noticeTriangle}),E(P,{class:M.warningHeading,level:this.headingLevel},this.messagesCommon.warning)),E("div",{class:M.warningMessage},this._getErrorMessage()))}_renderDirectionsContainerContent(){const{layer:e,state:t}=this.viewModel,s="routing"===t;return"error"===t?this._renderWarningCard():s?this._renderLoader():null!=e.directionLines?E("div",{"aria-disabled":this._saveLayer.opened.toString(),class:this.classes(M.summary,this._saveLayer.opened&&I.buttonDisabled),key:"esri-directions__summary",role:"group"},this._renderCosts(),this._renderRouteActions(),this._renderManeuverSections()):E("div",{class:I.empty,key:"esri-directions__placeholder"},this._renderPlaceholder(),E(P,{class:M.message,level:this.headingLevel},this.messages.directionsPlaceholder))}_renderPlaceholder(){return E("svg",{class:I.emptyIllustration,viewBox:"0 0 256 256",xmlns:"http://www.w3.org/2000/svg"},E("path",{d:"M192 36c-15.477 0-24 6.034-24 16.99v45.822l24 24 24-24v-45.82C216 42.033 207.477 36 192 36zm20 61.155l-20 20-20-20V52.99c0-8.62 6.73-12.99 20-12.99s20 4.37 20 12.99zM192 52a12 12 0 1 0 12 12 12.013 12.013 0 0 0-12-12zm0 20a8 8 0 1 1 8-8 8.008 8.008 0 0 1-8 8zM92 140.99C92 130.035 83.477 124 68 124s-24 6.034-24 16.99v45.822l24 24 24-24zm-4 44.165l-20 20-20-20V140.99c0-8.62 6.73-12.99 20-12.99s20 4.37 20 12.99zM68 140a12 12 0 1 0 12 12 12.013 12.013 0 0 0-12-12zm0 20a8 8 0 1 1 8-8 8.008 8.008 0 0 1-8 8zm84-44h16v4h-16zm-24 80h4v12h-12v-4h8zm0-28h4v16h-4zm0-52h12v4h-8v8h-4zm0 24h4v16h-4zm-36 64h16v4H92z",fill:"currentcolor"}))}_renderMessage(e){return E(P,{class:M.messageHeading,level:this.headingLevel},e)}_renderRouteActions(){return E("div",{class:M.routeActions},E("button",{"aria-label":this.messages.clearRoute,bind:this,class:this.classes(M.clearRouteButton,I.button,I.buttonTertiary),onclick:this._handleClearRouteClick,tabIndex:0,type:"button"},this.messages.clearRoute))}_getSections(){const{layer:e}=this.viewModel;if(!e)return null;const{directionPoints:t,directionLines:s,stops:i}=e;if(null==t||null==s)return null;const r=[];let o=null;for(const n of t){const{objectId:e,stopId:t}=n;if(null!=t){const e=i.find((({objectId:e})=>e===t)),s=0===r.length;null!=o&&o.stop===e||(o={stop:e,directions:[],open:s},r.push(o));continue}if(null==o)continue;const a=s.find((({directionPointId:t})=>t===e));null!=a&&o.directions.push({directionPoint:n,directionLine:a})}return r}_renderManeuverSections(){return null==this._sections?null:E("div",{class:M.maneuvers,role:"group"},this._sections.map(((e,t)=>{const{open:s}=e;let i;e.directions.length>0&&s&&(i=E("ol",{class:M.maneuverList},e.directions.map((e=>this._renderManeuver(e)))));const r=this._sections.length>2,o=t===this._sections.length-1,n={[M.collapsibleSection]:r},a={[L.down]:!s,[L.up]:s};let l;if(r&&!o){const t=s?this.messagesCommon.close:this.messagesCommon.open;l=E("header",{class:this.classes(M.maneuverSectionHeader,M.maneuverSectionToggle),key:M.maneuverSectionHeader},E("div",{"aria-expanded":s.toString(),"aria-label":t,bind:this,class:M.maneuverSectionHeaderButton,"data-maneuver-section":e,onclick:this._handleSectionToggle,onkeydown:this._handleSectionToggle,role:"button",tabIndex:0,title:t},E(P,{class:M.maneuverSectionTitle,level:this.headingLevel},e.stop.name),E("span",{"aria-hidden":"true",class:this.classes(a)})))}else l=E("header",{class:M.maneuverSectionHeader,key:M.maneuverSectionHeader},E(P,{class:M.maneuverSectionTitle,level:this.headingLevel},e.stop.name));return E("section",{class:this.classes(M.maneuverSection,n),key:t},l,i)})))}_handleSectionToggle(e){const t=Q(e.currentTarget);t&&(t.open=!t.open)}_renderCosts(){const e=this._getCostSummary(),{directionPoints:t}=this.viewModel.layer;if(null==t||null==e)return null;const{distance:s,duration:i}=e,{primaryCosts:r,secondaryCosts:o,zoomToRoute:n}=this.messages,a=this._renderEta();return E("div",{"aria-label":n,bind:this,class:M.directionCosts,onclick:this._handleSummaryInteraction,onkeydown:this._handleSummaryInteraction,role:"button",tabIndex:0,title:n},E("div",{class:M.costsDetails,role:"group"},E("div",{class:M.primaryCosts,title:r},i),E("div",{class:M.verticalSplitter}),E("div",{class:M.secondaryCosts,title:o},s)),a)}_renderEta(){const{directionPoints:e}=this.viewModel.layer,{eta:t}=this.messages;if(null==e)return null;const s=e.at(-1).arrivalTime,i=U("short-time");return s&&this._departureTimeOption!==f.UNSPECIFIED?E("div",{class:M.arrivalTimeContainer,title:t},E("span",{class:M.arrivalTime},O(s,i))," ",$(s)):null}_handleSummaryInteraction(){this._activeManeuver=null,this._focusedManeuver=null,this.viewModel.clearHighlights(),this.zoomToRoute()}_getErrorMessage(){switch(this.viewModel.lastError?.name){case"directions-view-model:unable-to-route":return this.messages.errors.unableToRoute;case"directions-view-model:service-metadata-unavailable":return this.messages.errors.unableToLoadServiceMetadata;default:return this.messages.errors.unknownError}}_normalizeSearchSources(e){this._overrideDefaultSources(e),this._applyLocatorSourceOverrides(e)}_overrideDefaultSources(e){e.viewModel.defaultSources.forEach((e=>{e.autoNavigate=!1}))}_applyLocatorSourceOverrides({allSources:e}){for(const t of e)"url"in t&&t.url&&(t.locationType??="street",T(t.url)&&this.apiKey&&null==t.apiKey&&(t.apiKey=this.apiKey,t.url=C))}_disposeSearch(e){if(!e||!this._stopsToSearches.has(e))return;const t=this._stopsToSearches.get(e);this.removeHandles(t),t.destroy(),this._stopsToSearches.delete(e)}_renderManeuver(e){const{directionPoint:t,directionLine:s}=e,{distance:i,duration:r}=s,{messages:o,messagesUnits:n,unit:a}=this,l=y(n,i??0,a),c=w(r??0),d=l&&c?`${l}&nbsp;&middot;&nbsp;${c}`:`${l}${c}`,u=this._getFormattedManeuverText(t),{objectId:h,directionPointType:p}=t,v=b(p),m=`esri-directions__maneuver-${h}`,_=`esri-directions__intermediate-costs-${h}`,g={[M.maneuverActive]:this._activeManeuver===s};return E("li",{"aria-labelledby":`${m} ${_}`,bind:this,class:this.classes(M.maneuver,g),"data-maneuver":s,key:s,onblur:this._handleManeuverBlur,onclick:this._handleManeuverClick,onfocus:this._handleManeuverFocus,onkeydown:this._handleManeuverClick,onmouseout:this._handleManeuverMouseOut,onmouseover:this._handleManeuverMouseOver,tabIndex:0},v?E("calcite-icon",{alt:"",class:M.maneuverIcon,icon:v}):null,E("div",{class:M.maneuverCostsContainer},E("span",{id:m,innerHTML:u??""}),E("div",{class:M.maneuverCosts},E("div",{class:M.horizontalSplitter}),E("div",{"aria-hidden":"true",class:M.intermediateCost,id:_,innerHTML:d,title:o.intermediateCosts}))))}_handleManeuverClick(e){const t=X(e.currentTarget);if(!t)return;if(this._activeManeuver===t)return this._activeManeuver=null,void this.zoomToRoute();this._activeManeuver=t;const{geometry:s}=t;this.viewModel.centerAt(s),this.viewModel.highlight(t)}_handleManeuverMouseOver(e){if(this._activeManeuver||this._focusedManeuver)return;const t=X(e.currentTarget);t&&this.viewModel.highlight(t)}_handleManeuverMouseOut(){this._activeManeuver||this._focusedManeuver||this.viewModel.clearHighlights()}_handleManeuverBlur(){this._activeManeuver||(this._focusedManeuver=null,this.viewModel.clearHighlights())}_handleManeuverFocus(e){if(this._activeManeuver)return;const t=X(e.currentTarget);t&&(this._focusedManeuver=t,this.viewModel.highlight(t))}_getFormattedManeuverText(e){const{displayText:t,name:s,intersectingName:i}=e;if(null==t)return"";let r=t;return null!=s&&r.includes(s)&&(r=r.replace(s,`<strong>${s}</strong>`)),null!=i&&r.includes(i)&&(r=r.replace(i,`<strong>${i}</strong>`)),r}_getCostSummary(){const{messagesUnits:e,unit:t,viewModel:s}=this,{routeInfo:i}=s.layer;if(null==i)return null;const r=i.totalDistance??0,o=i.totalDuration??0;return{distance:y(e,r,t),duration:w(o)}}async _getDirections(){const e=this.viewModel.layer?.stops.filter((({geometry:e})=>null!=e));if(e&&!(e.length<2))try{await this.viewModel.getDirections()}catch{}}};e([c()],q.prototype,"apiKey",null),e([c(h)],q.prototype,"defaultUnit",void 0),e([c()],q.prototype,"goToOverride",null),e([c()],q.prototype,"headingLevel",void 0),e([c()],q.prototype,"iconClass",void 0),e([c()],q.prototype,"icon",void 0),e([c()],q.prototype,"label",null),e([c({readOnly:!0})],q.prototype,"lastRoute",null),e([c()],q.prototype,"layer",null),e([c()],q.prototype,"maxStops",null),e([c(),A("esri/widgets/Directions/t9n/Directions")],q.prototype,"messages",void 0),e([c(),A("esri/t9n/common")],q.prototype,"messagesCommon",void 0),e([c(),A("esri/core/t9n/Units")],q.prototype,"messagesUnits",void 0),e([c()],q.prototype,"searchProperties",void 0),e([c()],q.prototype,"unit",null),e([c()],q.prototype,"view",null),e([c({type:g})],q.prototype,"viewModel",void 0),e([c()],q.prototype,"visibleElements",void 0),e([d("visibleElements")],q.prototype,"castVisibleElements",null),e([H()],q.prototype,"_handleStopIconClick",null),e([H()],q.prototype,"_handleClearRouteClick",null),e([H()],q.prototype,"_handleReverseStops",null),e([H()],q.prototype,"_handleRemoveStop",null),e([H()],q.prototype,"_handleSectionToggle",null),e([H()],q.prototype,"_handleSummaryInteraction",null),e([H()],q.prototype,"_handleManeuverClick",null),q=e([u("esri.widgets.Directions")],q);const G=q;function Y(e){return e?.["data-mode"]}function J(e){return e?.["data-stop-index"]}function Q(e){return e?.["data-maneuver-section"]}function X(e){return e?.["data-maneuver"]}export{G as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.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"./DistanceMeasurement2D/DistanceMeasurement2DViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as a}from"./support/legacyIcon.js";import{MeasurementWidgetContent as l}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-distance-measurement-2d",c={base:m,newMeasurementButton:`${m}__clear-button`,widgetIcon:a.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 active(){return this.viewModel.active}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}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}render(){const{messages:e,messagesCommon:s,unit:i,unitOptions:o,viewModel:r}=this,{active:a,measurementLabel: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(l,{active:a,measurementItems:[{key:"distance",title:e.distance,value:p}],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)}};e([s({readOnly:!0})],d.prototype,"active",null),e([s()],d.prototype,"iconClass",void 0),e([s()],d.prototype,"icon",void 0),e([s()],d.prototype,"label",null),e([s()],d.prototype,"uiStrings",void 0),e([s(),p("esri/widgets/DistanceMeasurement2D/t9n/DistanceMeasurement2D")],d.prototype,"messages",void 0),e([s(),p("esri/t9n/common")],d.prototype,"messagesCommon",void 0),e([s()],d.prototype,"unit",null),e([s()],d.prototype,"unitOptions",null),e([s()],d.prototype,"view",null),e([s({type:r})],d.prototype,"viewModel",void 0),e([s({type:Boolean})],d.prototype,"visible",null),d=e([i("esri.widgets.DistanceMeasurement2D")],d);const v=d;export{v 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"./DistanceMeasurement2D/DistanceMeasurement2DViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as a}from"./support/legacyIcon.js";import{MeasurementWidgetContent as l}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-distance-measurement-2d",c={base:m,newMeasurementButton:`${m}__clear-button`,widgetIcon:a.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 active(){return this.viewModel.active}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}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}render(){const{messages:e,messagesCommon:s,unit:i,unitOptions:o,viewModel:r}=this,{active:a,measurementLabel: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(l,{active:a,measurementItems:[{key:"distance",title:e.distance,value:p}],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)}};e([s({readOnly:!0})],d.prototype,"active",null),e([s()],d.prototype,"iconClass",void 0),e([s()],d.prototype,"icon",void 0),e([s()],d.prototype,"label",null),e([s()],d.prototype,"uiStrings",void 0),e([s(),p("esri/widgets/DistanceMeasurement2D/t9n/DistanceMeasurement2D")],d.prototype,"messages",void 0),e([s(),p("esri/t9n/common")],d.prototype,"messagesCommon",void 0),e([s()],d.prototype,"unit",null),e([s()],d.prototype,"unitOptions",null),e([s()],d.prototype,"view",null),e([s({type:r})],d.prototype,"viewModel",void 0),e([s({type:Boolean})],d.prototype,"visible",null),d=e([i("esri.widgets.DistanceMeasurement2D")],d);const v=d;export{v as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as t}from"../../../core/arrayUtils.js";import{loadCalciteComponents as o}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{tsx as s}from"../../support/jsxFactory.js";const i={base:"esri-editor__actions"},e=()=>o({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js")});function r({buttons:o,key:e}){return s("div",{key:e??"footer-actions",slot:"footer",class:i.base},o.filter(t).map((({disabled:t,onClick:o,label:i,...e},r)=>s("calcite-button",{key:`action-${r}`,slot:"footer-actions",disabled:t??!1,onclick:o,width:"full",...e},i))))}export{r as FooterActions,i as css,e as loadFooterActionsComponents};
5
+ import{isSome as t}from"../../../core/arrayUtils.js";import{loadCalciteComponents as o}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{tsx as s}from"../../support/jsxFactory.js";const i={base:"esri-editor__actions"},e=()=>o({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js")});function r({buttons:o,key:e}){return s("div",{class:i.base,key:e??"footer-actions",slot:"footer"},o.filter(t).map((({disabled:t,onClick:o,label:i,...e},r)=>s("calcite-button",{disabled:t??!1,key:`action-${r}`,onclick:o,slot:"footer-actions",width:"full",...e},i))))}export{r as FooterActions,i as css,e as loadFooterActionsComponents};
@@ -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{warningIcon as e}from"../icons.js";import{loadCalciteComponents as o}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{tsx as s,tsxFragment as i}from"../../support/jsxFactory.js";const t={notice:"esri-editor__notice"},r=()=>o({notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js")});function n({workflow:o,messages:t}){return s(i,null,o?.reliesOnOwnerAdminPrivileges?s(c,{message:t.ownerAdminNotice}):void 0,o?.hasInvalidFormTemplate?s(c,{message:t.formFieldUpdateError,icon:e}):void 0,o?.hasUnsupportedFields?s(c,{message:t.formFieldUnsupportedUpdateError,icon:e}):void 0)}function c({message:e,...o}){return s("calcite-notice",{open:!0,scale:"s",class:t.notice,...o},s("div",{slot:"message"},e))}export{c as Notice,n as Notices,t as css,r as loadNoticesComponents};
5
+ import{warningIcon as e}from"../icons.js";import{loadCalciteComponents as o}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{tsx as s,tsxFragment as i}from"../../support/jsxFactory.js";const t={notice:"esri-editor__notice"},r=()=>o({notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js")});function n({workflow:o,messages:t}){return s(i,null,o?.reliesOnOwnerAdminPrivileges?s(c,{message:t.ownerAdminNotice}):void 0,o?.hasInvalidFormTemplate?s(c,{icon:e,message:t.formFieldUpdateError}):void 0,o?.hasUnsupportedFields?s(c,{icon:e,message:t.formFieldUnsupportedUpdateError}):void 0)}function c({message:e,...o}){return s("calcite-notice",{class:t.notice,open:!0,scale:"s",...o},s("div",{slot:"message"},e))}export{c as Notice,n as Notices,t as css,r as loadNoticesComponents};
@@ -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{loadCalciteComponents as e}from"../../support/componentsUtils.js";import{classes as t}from"../../support/widgetUtils.js";import{tsx as s}from"../../support/jsxFactory.js";const n="esri-editor__panel-content",o={base:n,message:`${n}__message`,section:`${n}__section`,sectionGroup:`${n}__section__group`,scrimContainer:`${n}__scrim-container`},i=()=>e({scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")});function c(e,...n){return s("div",{key:e?.key??"panel-content",class:t(o.base,e?.showScrimOverlay?o.scrimContainer:void 0)},...n,e?.showScrimOverlay?s("calcite-scrim",null):void 0)}function r(e,...t){return s("div",{key:e?.key??"panel-content-message",class:o.message,"data-testid":"panel-content-message"},...t)}function a(e,...t){return s("div",{key:e?.key??"panel-content-section",class:o.section},...t)}function p(e,...t){return s("div",{key:e?.key??"panel-content-section-group",class:o.sectionGroup},...t)}export{c as PanelContent,r as PanelContentMessage,a as PanelContentSection,p as PanelContentSectionGroup,o as css,i as loadPanelContentComponents};
5
+ import{loadCalciteComponents as e}from"../../support/componentsUtils.js";import{classes as t}from"../../support/widgetUtils.js";import{tsx as s}from"../../support/jsxFactory.js";const n="esri-editor__panel-content",o={base:n,message:`${n}__message`,section:`${n}__section`,sectionGroup:`${n}__section__group`,scrimContainer:`${n}__scrim-container`},i=()=>e({scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")});function c(e,...n){return s("div",{class:t(o.base,e?.showScrimOverlay?o.scrimContainer:void 0),key:e?.key??"panel-content"},...n,e?.showScrimOverlay?s("calcite-scrim",null):void 0)}function r(e,...t){return s("div",{class:o.message,"data-testid":"panel-content-message",key:e?.key??"panel-content-message"},...t)}function a(e,...t){return s("div",{class:o.section,key:e?.key??"panel-content-section"},...t)}function p(e,...t){return s("div",{class:o.sectionGroup,key:e?.key??"panel-content-section-group"},...t)}export{c as PanelContent,r as PanelContentMessage,a as PanelContentSection,p as PanelContentSectionGroup,o as css,i as loadPanelContentComponents};
@@ -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{loadSettingsComponents as e,Settings as o}from"./Settings.js";import{loadCalciteComponents as t}from"../../support/componentsUtils.js";import{tsx as n}from"../../support/jsxFactory.js";const s={base:"esri-editor__panel-toolbar"},a=()=>Promise.all([t({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js")}),e()]);function r({editorViewModel:e,messagesCommon:t,visibleElements:a}){const{sketchViewModel:r}=e;return n("div",{key:"panel-toolbar",class:s.base},n(o,{editorViewModel:e,messagesCommon:t,visibleElements:a}),a.undoRedoButtons&&[n("calcite-button",{key:"undo-button",label:t.undo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"undo",scale:"l",disabled:!r.canUndo(),onclick:()=>r.undo()},t.undo),n("calcite-button",{key:"redo-button",label:t.redo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"redo",scale:"l",disabled:!r.canRedo(),onclick:()=>r.redo()},t.redo)])}export{r as PanelToolbar,s as css,a as loadPanelToolbarComponents};
5
+ import{loadSettingsComponents as e,Settings as o}from"./Settings.js";import{loadCalciteComponents as t}from"../../support/componentsUtils.js";import{tsx as n}from"../../support/jsxFactory.js";const s={base:"esri-editor__panel-toolbar"},a=()=>Promise.all([t({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js")}),e()]);function r({editorViewModel:e,messagesCommon:t,visibleElements:a}){const{sketchViewModel:r}=e;return n("div",{class:s.base,key:"panel-toolbar"},n(o,{editorViewModel:e,messagesCommon:t,visibleElements:a}),a.undoRedoButtons?[n("calcite-button",{alignment:"center",appearance:"transparent",disabled:!r.canUndo(),iconStart:"undo",key:"undo-button",kind:"neutral",label:t.undo,onclick:()=>r.undo(),scale:"l"},t.undo),n("calcite-button",{alignment:"center",appearance:"transparent",disabled:!r.canRedo(),iconStart:"redo",key:"redo-button",kind:"neutral",label:t.redo,onclick:()=>r.redo(),scale:"l"},t.redo)]:null)}export{r as PanelToolbar,s as css,a as loadPanelToolbarComponents};
@@ -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{warningIcon as t}from"../icons.js";import{loadCalciteComponents as e}from"../../support/componentsUtils.js";import{Heading as i}from"../../support/Heading.js";import"../../support/widgetUtils.js";import{tsx as s}from"../../support/jsxFactory.js";const a="esri-editor__prompt",o={base:a,header:`${a}__header`,heading:`${a}__header__heading`,message:`${a}__message`,divider:`${a}__divider`,actions:`${a}__actions`},c=()=>e({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")});function r({actions:e,context:a,headingLevel:c,message:r,title:p}){const d=e.secondary;let m;switch(a){case"danger":m="danger";break;case"info":m="brand";break;default:m="neutral"}const l=s("calcite-button",{afterCreate:n,appearance:"solid",key:"prompt-primary-button",kind:m,onclick:e.primary.action,scale:"m",width:d?"half":"full","data-testid":"primary-prompt-button"},e.primary.label),u=d&&s("calcite-button",{appearance:"outline",key:"prompt-secondary-button",kind:m,onclick:d.action,scale:"m",width:"half","data-testid":"secondary-prompt-button"},d.label);return s("calcite-scrim",{key:"prompt","data-testid":"prompt"},s("div",{class:`${o.base}--${a}`},s("div",{class:o.header},s("calcite-icon",{icon:t}),s(i,{class:o.heading,level:c},p)),s("div",{class:o.message},r),s("div",{class:o.divider}),s("div",{class:o.actions},u,l)))}function n(t){requestAnimationFrame((()=>t.setFocus()))}export{r as Prompt,o as css,c as loadPromptComponents};
5
+ import{warningIcon as t}from"../icons.js";import{loadCalciteComponents as e}from"../../support/componentsUtils.js";import{Heading as i}from"../../support/Heading.js";import"../../support/widgetUtils.js";import{tsx as s}from"../../support/jsxFactory.js";const a="esri-editor__prompt",o={base:a,header:`${a}__header`,heading:`${a}__header__heading`,message:`${a}__message`,divider:`${a}__divider`,actions:`${a}__actions`},c=()=>e({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")});function r({actions:e,context:a,headingLevel:c,message:r,title:p}){const d=e.secondary;let m;switch(a){case"danger":m="danger";break;case"info":m="brand";break;default:m="neutral"}const l=s("calcite-button",{afterCreate:n,appearance:"solid","data-testid":"primary-prompt-button",key:"prompt-primary-button",kind:m,onclick:e.primary.action,scale:"m",width:d?"half":"full"},e.primary.label),u=d&&s("calcite-button",{appearance:"outline","data-testid":"secondary-prompt-button",key:"prompt-secondary-button",kind:m,onclick:d.action,scale:"m",width:"half"},d.label);return s("calcite-scrim",{"data-testid":"prompt",key:"prompt"},s("div",{class:`${o.base}--${a}`},s("div",{class:o.header},s("calcite-icon",{icon:t}),s(i,{class:o.heading,level:c},p)),s("div",{class:o.message},r),s("div",{class:o.divider}),s("div",{class:o.actions},u,l)))}function n(t){requestAnimationFrame((()=>t.setFocus()))}export{r as Prompt,o as css,c as loadPromptComponents};
@@ -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{loadCalciteComponents as t}from"../../support/componentsUtils.js";import o from"../../support/SketchTooltipControls.js";import s from"../../support/SnappingControls.js";import"../../support/widgetUtils.js";import{tsx as e}from"../../support/jsxFactory.js";import i from"../../support/SketchTooltipControls/VisibleElements.js";import n from"../../support/SnappingControls/VisibleElements.js";const p={settingsContainer:"esri-editor__settings"},r=()=>t({accordion:()=>import("@esri/calcite-components/dist/components/calcite-accordion.js"),"accordion-item":()=>import("@esri/calcite-components/dist/components/calcite-accordion-item.js")});function l({editorViewModel:t,messagesCommon:r,visibleElements:l}){const{labelOptions:c,snappingOptions:a,tooltipOptions:m,view:g}=t,d=[];return l.sketchTooltipControls&&d.push(e(o,{tooltipOptions:m,labelOptions:c,visibleElements:l.sketchTooltipControlsElements??new i,viewType:g?.type})),l.snappingControls&&d.push(e(s,{snappingOptions:a,view:g,visibleElements:l.snappingControlsElements??new n,afterCreate:t=>t.layerListOpen=!1})),0===d.length?null:e("calcite-accordion",{key:"settings",class:p.settingsContainer,appearance:"transparent"},e("calcite-accordion-item",{heading:r.settings,iconStart:"gear","data-testid":"settings"},d))}export{l as Settings,p as css,r as loadSettingsComponents};
5
+ import{loadCalciteComponents as t}from"../../support/componentsUtils.js";import o from"../../support/SketchTooltipControls.js";import s from"../../support/SnappingControls.js";import"../../support/widgetUtils.js";import{tsx as e}from"../../support/jsxFactory.js";import i from"../../support/SketchTooltipControls/VisibleElements.js";import n from"../../support/SnappingControls/VisibleElements.js";const p={settingsContainer:"esri-editor__settings"},r=()=>t({accordion:()=>import("@esri/calcite-components/dist/components/calcite-accordion.js"),"accordion-item":()=>import("@esri/calcite-components/dist/components/calcite-accordion-item.js")});function l({editorViewModel:t,messagesCommon:r,visibleElements:l}){const{labelOptions:c,snappingOptions:a,tooltipOptions:m,view:g}=t,d=[];return l.sketchTooltipControls&&d.push(e(o,{labelOptions:c,tooltipOptions:m,viewType:g?.type,visibleElements:l.sketchTooltipControlsElements??new i})),l.snappingControls&&d.push(e(s,{afterCreate:t=>t.layerListOpen=!1,snappingOptions:a,view:g,visibleElements:l.snappingControlsElements??new n})),0===d.length?null:e("calcite-accordion",{appearance:"transparent",class:p.settingsContainer,key:"settings"},e("calcite-accordion-item",{"data-testid":"settings",heading:r.settings,iconStart:"gear"},d))}export{l as Settings,p as css,r as loadSettingsComponents};
@@ -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{substitute as e}from"../../../intl/substitute.js";import{loadFooterActionsComponents as t,FooterActions as o}from"./FooterActions.js";import{loadNoticesComponents as n,Notices as a}from"./Notices.js";import{loadPanelContentComponents as r,PanelContentMessage as s,PanelContentSectionGroup as i,PanelContentSection as l,PanelContent as u}from"./PanelContent.js";import{Heading as c,incrementHeadingLevel as m}from"../../support/Heading.js";import"../../support/widgetUtils.js";import{tsx as d,tsxFragment as p}from"../../support/jsxFactory.js";const f=()=>Promise.all([t(),n(),r()]);function h({editorViewModel:t,headingLevel:n,messages:r,messagesCommon:f,onDelete:h,onSave:g,renderAttachments:v,renderFeatureForm:w}){const{activeWorkflow:k,syncing:F}=t;if(!k)return null;const y=k.type,b="activeWorkflow"in k?k.activeWorkflow:void 0,j=b?.type,P=t.featureFormViewModel,S=b&&!b.hasPendingEdits||"update"===y&&!k.hasPendingEdits||F||P.updating,C="update"===y&&"create-features"!==j?f.update:f.create,A="create-features"===y&&"create-new"===k.createFeatureState,M="create-features"===y?k.numPendingFeatures:0,T=M>1?e(r.createFeaturesTemplate,{numFeatures:M}):C,V=k.shouldShowAttachments&&!t.featureFormViewModel.activeRelationshipInput,W=P.inputs.every((e=>!e.visible))&&!V?d(s,{key:"panel-content-message"},e(r.clickToFinishTemplate,{button:C})):d(l,{key:"panel-content-section"},d(a,{workflow:k,messages:r}),d(i,null,w(),V&&d("div",{key:"attachments"},d(c,{level:m(n)},r.attachments),v())));return d(p,null,d(u,{key:"attribute-panel-content",showScrimOverlay:A},W),d(o,{buttons:[{onClick:g,disabled:S,label:T},t.shouldShowDeleteButton?{appearance:"outline",onClick:h,disabled:F,kind:"danger",label:f.delete}:void 0]}))}export{h as UpdateFeaturePanelContent,f as loadUpdateFeaturePanelContentComponents};
5
+ import{substitute as e}from"../../../intl/substitute.js";import{loadFooterActionsComponents as t,FooterActions as o}from"./FooterActions.js";import{loadNoticesComponents as n,Notices as a}from"./Notices.js";import{loadPanelContentComponents as r,PanelContentMessage as s,PanelContentSectionGroup as i,PanelContentSection as l,PanelContent as u}from"./PanelContent.js";import{Heading as c,incrementHeadingLevel as m}from"../../support/Heading.js";import"../../support/widgetUtils.js";import{tsx as d,tsxFragment as p}from"../../support/jsxFactory.js";const f=()=>Promise.all([t(),n(),r()]);function h({editorViewModel:t,headingLevel:n,messages:r,messagesCommon:f,onDelete:h,onSave:g,renderAttachments:v,renderFeatureForm:w}){const{activeWorkflow:k,syncing:F}=t;if(!k)return null;const y=k.type,b="activeWorkflow"in k?k.activeWorkflow:void 0,j=b?.type,P=t.featureFormViewModel,S=b&&!b.hasPendingEdits||"update"===y&&!k.hasPendingEdits||F||P.updating,C="update"===y&&"create-features"!==j?f.update:f.create,A="create-features"===y&&"create-new"===k.createFeatureState,M="create-features"===y?k.numPendingFeatures:0,T=M>1?e(r.createFeaturesTemplate,{numFeatures:M}):C,V=k.shouldShowAttachments&&!t.featureFormViewModel.activeRelationshipInput,W=P.inputs.every((e=>!e.visible))&&!V?d(s,{key:"panel-content-message"},e(r.clickToFinishTemplate,{button:C})):d(l,{key:"panel-content-section"},d(a,{messages:r,workflow:k}),d(i,null,w(),V?d("div",{key:"attachments"},d(c,{level:m(n)},r.attachments),v()):null));return d(p,null,d(u,{key:"attribute-panel-content",showScrimOverlay:A},W),d(o,{buttons:[{onClick:g,disabled:S,label:T},t.shouldShowDeleteButton?{appearance:"outline",onClick:h,disabled:F,kind:"danger",label:f.delete}:void 0]}))}export{h as UpdateFeaturePanelContent,f as loadUpdateFeaturePanelContentComponents};
@@ -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{MultipleModelsError as e,NoModelError as t}from"../../../geometry/support/meshErrors.js";import{Convert3DFailedError as s}from"../../../layers/graphics/sources/support/uploadAssetErrors.js";import{loadFooterActionsComponents as o,FooterActions as i}from"./FooterActions.js";import{loadPanelContentComponents as l,PanelContent as r,PanelContentSection as n}from"./PanelContent.js";import{loadCalciteComponents as c}from"../../support/componentsUtils.js";import{classes as a}from"../../support/widgetUtils.js";import{tsx as p,tsxFragment as d}from"../../support/jsxFactory.js";const u="esri-editor__upload-details",m={base:u,status:`${u}__status`,titleWrapper:`${u}__title-wrapper`,title:`${u}__title`,description:`${u}__description`,loader:`${u}__loader`,iconSuccess:`${u}__icon ${u}__icon--success`,iconError:`${u}__icon ${u}__icon--error`,fileList:`${u}__file-list`,file:`${u}__file`,fileIcon:`${u}__file-icon`,fileName:`${u}__file-name`},f=()=>Promise.all([c({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")}),o(),l()]);function _(e){const{messages:t,key:s,upload:o}=e;return p(d,null,p(r,{key:s??"upload-details"},p(n,null,g(e))),"error"===o.state?p(i,{key:"upload-details-footer-actions",buttons:[{onClick:()=>o.retry(),label:t.modelUploads.error.uploadNew,iconStart:"upload-to"}]}):null)}function g(e){const t=y(e);return t?p("div",{class:m.base,key:"upload-details-content","data-testid":"upload-details"},p("div",{class:m.status,key:"status"},t.iconContent,p("div",{key:"text",class:m.titleWrapper},p("div",{key:"title",class:m.title},t.title),p("div",{key:"description",class:m.description},t.description))),k(e.upload)):null}function y({helpMessage:e,messages:t,upload:s}){switch(s.state){case"pending":{const{title:e,description:o}=t.modelUploads.pending;return{title:e,description:o,iconContent:p("calcite-loader",{"aria-hidden":!0,class:m.loader,label:"",scale:"s",type:"determinate",value:Math.min(Math.round(100*s.progress),1===s.progress?100:99)})}}case"success":{const{title:s}=t.modelUploads.success;return{title:s,description:e||t.helpMessages3d.mesh,iconContent:p("calcite-icon",{class:a(m.iconSuccess),icon:"check",scale:"l"})}}case"error":{const{title:e}=t.modelUploads.error;return{title:e,description:$(s.error,t),iconContent:p("calcite-icon",{class:a(m.iconError),icon:"exclamation-mark-circle",scale:"l"})}}default:return null}}function $(o,i){if(!o)return null;const l=i.modelUploads.error.messages;switch(o.constructor){case t:return l.noModel;case e:return l.multipleModels;case s:return l.conversionFailed;default:return l.default}}function k(e){return p("div",{class:m.fileList,key:"file-list"},e.files.map((e=>p("div",{class:m.file,key:`file-${e.name}`},p("calcite-icon",{class:m.fileIcon,icon:j(e),scale:"s"}),p("span",{class:m.fileName},h(e.name))))))}function h(e){return e.split("/").pop()?.split("\\").pop()??""}function j(e){const t=e.name.split(".").pop()?.toLowerCase();return(t?b[t]:null)??v}const v="file",C="file-shape",U="file-image",b={glb:C,gltf:C,jpeg:U,jpg:U,png:U,svg:U,zip:"file-zip"};export{_ as UploadDetails,m as css,f as loadUploadDetailsComponents};
5
+ import{MultipleModelsError as e,NoModelError as t}from"../../../geometry/support/meshErrors.js";import{Convert3DFailedError as s}from"../../../layers/graphics/sources/support/uploadAssetErrors.js";import{loadFooterActionsComponents as o,FooterActions as i}from"./FooterActions.js";import{loadPanelContentComponents as l,PanelContent as r,PanelContentSection as n}from"./PanelContent.js";import{loadCalciteComponents as c}from"../../support/componentsUtils.js";import{classes as a}from"../../support/widgetUtils.js";import{tsx as p,tsxFragment as d}from"../../support/jsxFactory.js";const u="esri-editor__upload-details",m={base:u,status:`${u}__status`,titleWrapper:`${u}__title-wrapper`,title:`${u}__title`,description:`${u}__description`,loader:`${u}__loader`,iconSuccess:`${u}__icon ${u}__icon--success`,iconError:`${u}__icon ${u}__icon--error`,fileList:`${u}__file-list`,file:`${u}__file`,fileIcon:`${u}__file-icon`,fileName:`${u}__file-name`},f=()=>Promise.all([c({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")}),o(),l()]);function _(e){const{messages:t,key:s,upload:o}=e;return p(d,null,p(r,{key:s??"upload-details"},p(n,null,g(e))),"error"===o.state?p(i,{buttons:[{onClick:()=>o.retry(),label:t.modelUploads.error.uploadNew,iconStart:"upload-to"}],key:"upload-details-footer-actions"}):null)}function g(e){const t=y(e);return t?p("div",{class:m.base,"data-testid":"upload-details",key:"upload-details-content"},p("div",{class:m.status,key:"status"},t.iconContent,p("div",{class:m.titleWrapper,key:"text"},p("div",{class:m.title,key:"title"},t.title),p("div",{class:m.description,key:"description"},t.description))),k(e.upload)):null}function y({helpMessage:e,messages:t,upload:s}){switch(s.state){case"pending":{const{title:e,description:o}=t.modelUploads.pending;return{title:e,description:o,iconContent:p("calcite-loader",{"aria-hidden":!0,class:m.loader,label:"",scale:"s",type:"determinate",value:Math.min(Math.round(100*s.progress),1===s.progress?100:99)})}}case"success":{const{title:s}=t.modelUploads.success;return{title:s,description:e||t.helpMessages3d.mesh,iconContent:p("calcite-icon",{class:a(m.iconSuccess),icon:"check",scale:"l"})}}case"error":{const{title:e}=t.modelUploads.error;return{title:e,description:$(s.error,t),iconContent:p("calcite-icon",{class:a(m.iconError),icon:"exclamation-mark-circle",scale:"l"})}}default:return null}}function $(o,i){if(!o)return null;const l=i.modelUploads.error.messages;switch(o.constructor){case t:return l.noModel;case e:return l.multipleModels;case s:return l.conversionFailed;default:return l.default}}function k(e){return p("div",{class:m.fileList,key:"file-list"},e.files.map((e=>p("div",{class:m.file,key:`file-${e.name}`},p("calcite-icon",{class:m.fileIcon,icon:j(e),scale:"s"}),p("span",{class:m.fileName},h(e.name))))))}function h(e){return e.split("/").pop()?.split("\\").pop()??""}function j(e){const t=e.name.split(".").pop()?.toLowerCase();return(t?b[t]:null)??v}const v="file",C="file-shape",U="file-image",b={glb:C,gltf:C,jpeg:U,jpg:U,png:U,svg:U,zip:"file-zip"};export{_ as UploadDetails,m as css,f as loadUploadDetailsComponents};
package/widgets/Editor.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Logger.js";import{createResolver as s}from"../core/promiseUtils.js";import{watch as o,initial as r,on as i,when as a}from"../core/reactiveUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import d from"./Attachments.js";import m from"./FeatureForm.js";import p from"./FeatureTemplates.js";import c from"./Spinner.js";import h from"./Widget.js";import{css as u}from"./Editor/css.js";import{workflowDeprecation as g}from"./Editor/deprecationUtils.js";import w from"./Editor/EditorViewModel.js";import{warningIcon as f}from"./Editor/icons.js";import{isModelUpload as v}from"./Editor/modelUploadUtils.js";import _ from"./Editor/VisibleElements.js";import{loadCreateFeaturesPanelContentComponents as y,CreateFeaturesPanelContent as k}from"./Editor/components/CreateFeaturesPanelContent.js";import{loadFeatureListComponents as F,FeatureList as M}from"./Editor/components/FeatureList.js";import{loadFooterActionsComponents as b,FooterActions as C}from"./Editor/components/FooterActions.js";import{loadNoticesComponents as W,Notice as A}from"./Editor/components/Notices.js";import{loadPanelContentComponents as E,PanelContent as T,PanelContentSection as j,PanelContentMessage as P}from"./Editor/components/PanelContent.js";import{PanelToolbar as L,loadPanelToolbarComponents as U}from"./Editor/components/PanelToolbar.js";import{loadPromptComponents as I,Prompt as S}from"./Editor/components/Prompt.js";import{loadUpdateFeaturePanelContentComponents as D,UpdateFeaturePanelContent as x}from"./Editor/components/UpdateFeaturePanelContent.js";import{loadUploadDetailsComponents as O,UploadDetails as B}from"./Editor/components/UploadDetails.js";import{renderItem as V}from"./FeatureTemplates/ItemList.js";import{loadCalciteComponents as G}from"./support/componentsUtils.js";import{globalCss as H}from"./support/globalCss.js";import{incrementHeadingLevel as R,Heading as q}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as N}from"./support/decorators/messageBundle.js";import{vmEvent as z}from"./support/decorators/vmEvent.js";import{tsx as $}from"./support/jsxFactory.js";import{substitute as J}from"../intl/substitute.js";const K="esri.widgets.Editor",Q=t.getLogger(K);let X=class extends h{constructor(e,t){super(e,t),this._featureForm=new m,this._attachments=new d({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new p({enableListScroll:!1,renderItemContentEnd:e=>e.supportsUpload?$("calcite-icon",{key:"upload-icon",class:u.templateItemContentEnd,icon:"upload-to"}):null,renderItemLabel:e=>e.label,renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new c,this.headingLevel=4,this.iconClass=u.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new w,this.visibleElements=new _,this._renderSelectIcon=()=>$("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({heading:e,key:t},...s)=>$("calcite-flow-item",{closable:!1,heading:e,headingLevel:this.headingLevel,key:t,loading:this._loading,onCalciteFlowItemBack:this._onBack},$(L,{editorViewModel:this.viewModel,messagesCommon:this.messagesCommon,visibleElements:this.visibleElements}),...s),this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&v(t.data.creationInfo))return this._showPrompt("success"===t.data.upload?.state?e.modelUploads.cancelPlacementPrompt:e.modelUploads.cancelUploadPrompt);const s="create"===t?.type;return this._showPrompt({title:e[s?"cancelAddTitle":"cancelEditTitle"],message:e[s?"cancelAddWarningMessage":"cancelEditWarningMessage"],yesLabel:e[s?"discardFeature":"discardEdits"],noLabel:e[s?"continueAdding":"continueEditing"]})},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPrompt({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._onSave=()=>{this.viewModel.saveWorkflow()},this._onDelete=()=>{const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onBack=e=>(e?.stopPropagation(),this.viewModel.back()),this._onAttachmentAdd=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.back()):this._attachments.addAttachment().then((()=>e.back())))},this._onAttachmentUpdate=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.back()):this._attachments.updateAttachment().then((()=>e.back())))},this._onAttachmentDelete=()=>{const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}},this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.back(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null}}initialize(){this.addHandles([o((()=>R(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),r),i((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then((t=>t?e.allow():e.deny()))})),o((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt}),r),o((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),r),a((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),r),a((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),a((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:o,cancel:r}]=e;this._prompt={title:t.errorWarningTitle,message:J(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{r(),this._clearPrompt()}}}}})),o((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),o((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return Promise.all([G({"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js")}),y(),F(),b(),W(),E(),U(),I(),D(),O()])}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger"}}get _loading(){const{viewModel:e}=this;return e.syncing||e.updating||this._attachments.submitting}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get useDeprecatedCreateWorkflow(){return this.viewModel.useDeprecatedCreateWorkflow}set useDeprecatedCreateWorkflow(e){this.viewModel.useDeprecatedCreateWorkflow=e}get hideTemplatesForInactiveLayers(){return this.viewModel.hideTemplatesForInactiveLayers}set hideTemplatesForInactiveLayers(e){this.viewModel.hideTemplatesForInactiveLayers=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}startCreateWorkflowAtFeatureTypeSelection(){return g(Q,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return g(Q,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return g(Q,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this,t=this.classes(u.base,H.widget,H.panel);return e?$("div",{key:"base",class:t},$("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e)))),this._prompt?$(S,{...this._prompt,headingLevel:this.headingLevel}):void 0):$("div",{key:"empty",class:t})}_renderPage(e){switch(e){case"disabled":break;case"ready":return this._renderReady();case"awaiting-feature-creation-info":return this._renderAwaitingFeatureCreationInfo();case"creating-features-upload-details":return this._renderUploadDetails();case"creating-features":return this._renderCreatingFeatures();case"editing-new-feature":case"editing-existing-feature":case"editing-attributes":return this._renderUpdateFeature();case"awaiting-update-feature-candidate":return this._renderFeatureList();case"adding-attachment":return this._renderAttachmentAdding();case"editing-attachment":return this._renderAttachmentEditing()}return $("div",{key:"empty-page"})}_renderAwaitingFeatureCreationInfo(){const{EditorPanel:e,messages:t}=this;return $(e,{heading:t.selectTemplate,key:"templates-panel"},$(T,{key:"feature-templates"},$(j,null,this._featureTemplates.render())))}_renderUploadDetails(){const{EditorPanel:e,activeWorkflow:t,messages:s}=this;if("create-features"!==t?.type)return null;const o=t.data.upload;return o?$(e,{heading:s.createFeatures,key:"upload-details-panel"},$(B,{helpMessage:this._helpMessage,messages:s,upload:o})):null}_renderCreatingFeatures(){const{EditorPanel:e,activeWorkflow:t,messages:s,messagesCommon:o,headingLevel:r,viewModel:i}=this;if(!t)return null;const a="create-features"===t.type&&t.numPendingFeatures>0||"update"===t.type&&"create-features"===t?.activeWorkflow?.type&&t.activeWorkflow?.numPendingFeatures>0;return $(e,{key:"create-features-panel",heading:s.createFeatures},a?$(x,{editorViewModel:i,headingLevel:r,messages:s,messagesCommon:o,onDelete:this._onDelete,onSave:this._onSave,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render()}):$(k,{helpMessage:this._helpMessage}))}_renderUpdateFeature(){const{EditorPanel:e,messages:t,messagesCommon:s,headingLevel:o,viewModel:r}=this;return $(e,{key:"update-feature-panel",heading:t.editFeature},$(x,{editorViewModel:r,headingLevel:o,messages:t,messagesCommon:s,onDelete:this._onDelete,onSave:this._onSave,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render()}))}_renderCustomTemplateGroupContent(e){const{messages:t,viewModel:s}=this;let o=null;return e.group.items.some((e=>(s.itemHasUnsupportedFields(e)?o=t.formFieldUnsupportedCreateError:s.itemHasInvalidFormTemplate(e)&&(o=t.formFieldCreateError),o))),o?$(A,{message:o,icon:f}):null}_renderAttachmentAdding(){const{EditorPanel:e,_attachments:t,messages:s,messagesCommon:o}=this;return $(e,{key:"attachment-adding-panel",heading:s.addAttachment},$(T,{key:"attachments"},t.render()),$(C,{buttons:[{label:t.submitting?o.cancel:o.add,disabled:t.submitting||!t.selectedFile,onClick:this._onAttachmentAdd}]}))}_renderAttachmentEditing(){const{EditorPanel:e,_attachments:t,activeWorkflow:s,messages:o,messagesCommon:r}=this;return s?$(e,{key:"attachment-editing-panel",heading:o.editAttachment},$(T,{key:"attachments"},t.render()),s.shouldAllowAttachmentEditing?$(C,{buttons:[{label:r.update,disabled:t.submitting||!t.selectedFile,onClick:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,onClick:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]}):void 0):null}_renderReady(){const{EditorPanel:e,messages:t,viewModel:s}=this,o=this._helpMessage;return $(e,{key:"landing-panel",heading:t.widgetLabel},$(T,{key:"landing-content"},s.editableItems.length?[$(j,{key:"edit-actions"},this._renderUpdateActions()),$(j,{key:"create-actions"},this._renderCreateActions())]:$(P,{key:"no-content"},t.noEditableLayers)),o?$("div",{key:"footer-actions",slot:"footer",class:u.helpMessage},o):void 0)}get _helpMessage(){const{activeWorkflow:e,messages:t,view:s}=this,o=e?.helpMessage;return o?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[o]:void 0}_renderUpdateActions(){const{messages:e,messagesCommon:t,viewModel:s}=this,o={id:"select",label:t.select};return $("div",{key:"update-actions",class:u.updateActions},$(q,{level:R(this.headingLevel)},e.editFeatures),$("calcite-list",{class:u.updateActionsList,selectionMode:"single",selectionAppearance:"border"},V({disabled:!s.canUpdate,grouped:!1,item:o,selectedItem:"awaiting-feature-to-update"===s.activeWorkflow?.stepId?o:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){return $("div",{key:"create-actions"},$(q,{level:R(this.headingLevel)},this.messages.createFeatures),$("div",{key:"templates",class:u.featureTemplatesContainer},this._featureTemplates.render()))}_renderFeatureList(){const{EditorPanel:e,viewModel:t}=this,{activeWorkflow:s}=t;if("update"!==s?.type)return null;const o=s.data.candidates,r=J(this.messages.multipleFeaturesTemplate,{total:o.length});return $(e,{heading:r,key:"feature-list"},$(M,{editableItems:t.editableItems,filterText:this._filterText,id:this.id,messagesTemplates:this.messagesTemplates,onFilterTextChange:e=>this._filterText=e,onSelectFeature:(e,s)=>t.selectFeature(e,s),workflow:s}))}_showPrompt({title:e,message:t,yesLabel:o,noLabel:r}){const i=s(),{view:a}=this,n=a?.focused;return this._prompt={title:e,message:t,context:"danger",actions:{primary:{label:o,action:()=>i.resolve(!0)},secondary:{label:r,action:()=>i.resolve(!1)}}},i.promise.finally((()=>{this._clearPrompt(),n&&a?.focus()}))}};e([n()],X.prototype,"_featureForm",void 0),e([n()],X.prototype,"_attachments",void 0),e([n()],X.prototype,"_featureTemplates",void 0),e([n()],X.prototype,"_filterText",void 0),e([n()],X.prototype,"_prompt",void 0),e([n()],X.prototype,"_spinner",void 0),e([n()],X.prototype,"_deleteButtonCommonInfo",null),e([n()],X.prototype,"_loading",null),e([n({readOnly:!0})],X.prototype,"activeWorkflow",null),e([n()],X.prototype,"allowedWorkflows",null),e([n()],X.prototype,"useDeprecatedCreateWorkflow",null),e([n()],X.prototype,"headingLevel",void 0),e([n()],X.prototype,"hideTemplatesForInactiveLayers",null),e([n()],X.prototype,"iconClass",void 0),e([n()],X.prototype,"label",null),e([n()],X.prototype,"labelOptions",null),e([n()],X.prototype,"layerInfos",null),e([n(),N("esri/widgets/Editor/t9n/Editor")],X.prototype,"messages",void 0),e([n(),N("esri/t9n/common")],X.prototype,"messagesCommon",void 0),e([n(),N("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],X.prototype,"messagesTemplates",void 0),e([n()],X.prototype,"snappingOptions",null),e([n()],X.prototype,"tooltipOptions",null),e([n()],X.prototype,"supportingWidgetDefaults",void 0),e([n()],X.prototype,"view",null),e([n(),z(["workflow-cancel","workflow-commit"])],X.prototype,"viewModel",void 0),e([n({type:_,nonNullable:!0})],X.prototype,"visibleElements",void 0),e([n()],X.prototype,"_helpMessage",null),X=e([l(K)],X);const Y=X;export{Y as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Logger.js";import{createResolver as s}from"../core/promiseUtils.js";import{watch as o,initial as r,on as i,when as a}from"../core/reactiveUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import d from"./Attachments.js";import m from"./FeatureForm.js";import p from"./FeatureTemplates.js";import c from"./Spinner.js";import h from"./Widget.js";import{css as u}from"./Editor/css.js";import{workflowDeprecation as g}from"./Editor/deprecationUtils.js";import w from"./Editor/EditorViewModel.js";import{warningIcon as f}from"./Editor/icons.js";import{isModelUpload as v}from"./Editor/modelUploadUtils.js";import _ from"./Editor/VisibleElements.js";import{loadCreateFeaturesPanelContentComponents as y,CreateFeaturesPanelContent as k}from"./Editor/components/CreateFeaturesPanelContent.js";import{loadFeatureListComponents as F,FeatureList as M}from"./Editor/components/FeatureList.js";import{loadFooterActionsComponents as b,FooterActions as C}from"./Editor/components/FooterActions.js";import{loadNoticesComponents as W,Notice as A}from"./Editor/components/Notices.js";import{loadPanelContentComponents as E,PanelContent as T,PanelContentSection as j,PanelContentMessage as P}from"./Editor/components/PanelContent.js";import{PanelToolbar as L,loadPanelToolbarComponents as U}from"./Editor/components/PanelToolbar.js";import{loadPromptComponents as I,Prompt as S}from"./Editor/components/Prompt.js";import{loadUpdateFeaturePanelContentComponents as D,UpdateFeaturePanelContent as x}from"./Editor/components/UpdateFeaturePanelContent.js";import{loadUploadDetailsComponents as O,UploadDetails as B}from"./Editor/components/UploadDetails.js";import{renderItem as V}from"./FeatureTemplates/ItemList.js";import{loadCalciteComponents as G}from"./support/componentsUtils.js";import{globalCss as H}from"./support/globalCss.js";import{incrementHeadingLevel as R,Heading as q}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as N}from"./support/decorators/messageBundle.js";import{vmEvent as z}from"./support/decorators/vmEvent.js";import{tsx as $}from"./support/jsxFactory.js";import{substitute as J}from"../intl/substitute.js";const K="esri.widgets.Editor",Q=t.getLogger(K);let X=class extends h{constructor(e,t){super(e,t),this._featureForm=new m,this._attachments=new d({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new p({enableListScroll:!1,renderItemContentEnd:e=>e.supportsUpload?$("calcite-icon",{class:u.templateItemContentEnd,icon:"upload-to",key:"upload-icon"}):null,renderItemLabel:e=>e.label,renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new c,this.headingLevel=4,this.iconClass=u.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new w,this.visibleElements=new _,this._renderSelectIcon=()=>$("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({heading:e,key:t},...s)=>$("calcite-flow-item",{closable:!1,heading:e,headingLevel:this.headingLevel,key:t,loading:this._loading,onCalciteFlowItemBack:this._onBack},$(L,{editorViewModel:this.viewModel,messagesCommon:this.messagesCommon,visibleElements:this.visibleElements}),...s),this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&v(t.data.creationInfo))return this._showPrompt("success"===t.data.upload?.state?e.modelUploads.cancelPlacementPrompt:e.modelUploads.cancelUploadPrompt);const s="create"===t?.type;return this._showPrompt({title:e[s?"cancelAddTitle":"cancelEditTitle"],message:e[s?"cancelAddWarningMessage":"cancelEditWarningMessage"],yesLabel:e[s?"discardFeature":"discardEdits"],noLabel:e[s?"continueAdding":"continueEditing"]})},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPrompt({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._onSave=()=>{this.viewModel.saveWorkflow()},this._onDelete=()=>{const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onBack=e=>(e?.stopPropagation(),this.viewModel.back()),this._onAttachmentAdd=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.back()):this._attachments.addAttachment().then((()=>e.back())))},this._onAttachmentUpdate=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.back()):this._attachments.updateAttachment().then((()=>e.back())))},this._onAttachmentDelete=()=>{const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}},this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.back(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null}}initialize(){this.addHandles([o((()=>R(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),r),i((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then((t=>t?e.allow():e.deny()))})),o((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt}),r),o((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),r),a((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),r),a((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),a((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:o,cancel:r}]=e;this._prompt={title:t.errorWarningTitle,message:J(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{r(),this._clearPrompt()}}}}})),o((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),o((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return Promise.all([G({"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js")}),y(),F(),b(),W(),E(),U(),I(),D(),O()])}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger"}}get _loading(){const{viewModel:e}=this;return e.syncing||e.updating||this._attachments.submitting}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get useDeprecatedCreateWorkflow(){return this.viewModel.useDeprecatedCreateWorkflow}set useDeprecatedCreateWorkflow(e){this.viewModel.useDeprecatedCreateWorkflow=e}get hideTemplatesForInactiveLayers(){return this.viewModel.hideTemplatesForInactiveLayers}set hideTemplatesForInactiveLayers(e){this.viewModel.hideTemplatesForInactiveLayers=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}startCreateWorkflowAtFeatureTypeSelection(){return g(Q,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return g(Q,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return g(Q,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this,t=this.classes(u.base,H.widget,H.panel);return e?$("div",{class:t,key:"base"},$("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e)))),this._prompt?$(S,{...this._prompt,headingLevel:this.headingLevel}):void 0):$("div",{class:t,key:"empty"})}_renderPage(e){switch(e){case"disabled":break;case"ready":return this._renderReady();case"awaiting-feature-creation-info":return this._renderAwaitingFeatureCreationInfo();case"creating-features-upload-details":return this._renderUploadDetails();case"creating-features":return this._renderCreatingFeatures();case"editing-new-feature":case"editing-existing-feature":case"editing-attributes":return this._renderUpdateFeature();case"awaiting-update-feature-candidate":return this._renderFeatureList();case"adding-attachment":return this._renderAttachmentAdding();case"editing-attachment":return this._renderAttachmentEditing()}return $("div",{key:"empty-page"})}_renderAwaitingFeatureCreationInfo(){const{EditorPanel:e,messages:t}=this;return $(e,{heading:t.selectTemplate,key:"templates-panel"},$(T,{key:"feature-templates"},$(j,null,this._featureTemplates.render())))}_renderUploadDetails(){const{EditorPanel:e,activeWorkflow:t,messages:s}=this;if("create-features"!==t?.type)return null;const o=t.data.upload;return o?$(e,{heading:s.createFeatures,key:"upload-details-panel"},$(B,{helpMessage:this._helpMessage,messages:s,upload:o})):null}_renderCreatingFeatures(){const{EditorPanel:e,activeWorkflow:t,messages:s,messagesCommon:o,headingLevel:r,viewModel:i}=this;if(!t)return null;const a="create-features"===t.type&&t.numPendingFeatures>0||"update"===t.type&&"create-features"===t?.activeWorkflow?.type&&t.activeWorkflow?.numPendingFeatures>0;return $(e,{heading:s.createFeatures,key:"create-features-panel"},a?$(x,{editorViewModel:i,headingLevel:r,messages:s,messagesCommon:o,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render(),onDelete:this._onDelete,onSave:this._onSave}):$(k,{helpMessage:this._helpMessage}))}_renderUpdateFeature(){const{EditorPanel:e,messages:t,messagesCommon:s,headingLevel:o,viewModel:r}=this;return $(e,{heading:t.editFeature,key:"update-feature-panel"},$(x,{editorViewModel:r,headingLevel:o,messages:t,messagesCommon:s,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render(),onDelete:this._onDelete,onSave:this._onSave}))}_renderCustomTemplateGroupContent(e){const{messages:t,viewModel:s}=this;let o=null;return e.group.items.some((e=>(s.itemHasUnsupportedFields(e)?o=t.formFieldUnsupportedCreateError:s.itemHasInvalidFormTemplate(e)&&(o=t.formFieldCreateError),o))),o?$(A,{icon:f,message:o}):null}_renderAttachmentAdding(){const{EditorPanel:e,_attachments:t,messages:s,messagesCommon:o}=this;return $(e,{heading:s.addAttachment,key:"attachment-adding-panel"},$(T,{key:"attachments"},t.render()),$(C,{buttons:[{label:t.submitting?o.cancel:o.add,disabled:t.submitting||!t.selectedFile,onClick:this._onAttachmentAdd}]}))}_renderAttachmentEditing(){const{EditorPanel:e,_attachments:t,activeWorkflow:s,messages:o,messagesCommon:r}=this;return s?$(e,{heading:o.editAttachment,key:"attachment-editing-panel"},$(T,{key:"attachments"},t.render()),s.shouldAllowAttachmentEditing?$(C,{buttons:[{label:r.update,disabled:t.submitting||!t.selectedFile,onClick:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,onClick:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]}):void 0):null}_renderReady(){const{EditorPanel:e,messages:t,viewModel:s}=this,o=this._helpMessage;return $(e,{heading:t.widgetLabel,key:"landing-panel"},$(T,{key:"landing-content"},s.editableItems.length?[$(j,{key:"edit-actions"},this._renderUpdateActions()),$(j,{key:"create-actions"},this._renderCreateActions())]:$(P,{key:"no-content"},t.noEditableLayers)),o?$("div",{class:u.helpMessage,key:"footer-actions",slot:"footer"},o):void 0)}get _helpMessage(){const{activeWorkflow:e,messages:t,view:s}=this,o=e?.helpMessage;return o?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[o]:void 0}_renderUpdateActions(){const{messages:e,messagesCommon:t,viewModel:s}=this,o={id:"select",label:t.select};return $("div",{class:u.updateActions,key:"update-actions"},$(q,{level:R(this.headingLevel)},e.editFeatures),$("calcite-list",{class:u.updateActionsList,selectionAppearance:"border",selectionMode:"single"},V({disabled:!s.canUpdate,grouped:!1,item:o,selectedItem:"awaiting-feature-to-update"===s.activeWorkflow?.stepId?o:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){return $("div",{key:"create-actions"},$(q,{level:R(this.headingLevel)},this.messages.createFeatures),$("div",{class:u.featureTemplatesContainer,key:"templates"},this._featureTemplates.render()))}_renderFeatureList(){const{EditorPanel:e,viewModel:t}=this,{activeWorkflow:s}=t;if("update"!==s?.type)return null;const o=s.data.candidates,r=J(this.messages.multipleFeaturesTemplate,{total:o.length});return $(e,{heading:r,key:"feature-list"},$(M,{editableItems:t.editableItems,filterText:this._filterText,id:this.id,messagesTemplates:this.messagesTemplates,workflow:s,onFilterTextChange:e=>this._filterText=e,onSelectFeature:(e,s)=>t.selectFeature(e,s)}))}_showPrompt({title:e,message:t,yesLabel:o,noLabel:r}){const i=s(),{view:a}=this,n=a?.focused;return this._prompt={title:e,message:t,context:"danger",actions:{primary:{label:o,action:()=>i.resolve(!0)},secondary:{label:r,action:()=>i.resolve(!1)}}},i.promise.finally((()=>{this._clearPrompt(),n&&a?.focus()}))}};e([n()],X.prototype,"_featureForm",void 0),e([n()],X.prototype,"_attachments",void 0),e([n()],X.prototype,"_featureTemplates",void 0),e([n()],X.prototype,"_filterText",void 0),e([n()],X.prototype,"_prompt",void 0),e([n()],X.prototype,"_spinner",void 0),e([n()],X.prototype,"_deleteButtonCommonInfo",null),e([n()],X.prototype,"_loading",null),e([n({readOnly:!0})],X.prototype,"activeWorkflow",null),e([n()],X.prototype,"allowedWorkflows",null),e([n()],X.prototype,"useDeprecatedCreateWorkflow",null),e([n()],X.prototype,"headingLevel",void 0),e([n()],X.prototype,"hideTemplatesForInactiveLayers",null),e([n()],X.prototype,"iconClass",void 0),e([n()],X.prototype,"label",null),e([n()],X.prototype,"labelOptions",null),e([n()],X.prototype,"layerInfos",null),e([n(),N("esri/widgets/Editor/t9n/Editor")],X.prototype,"messages",void 0),e([n(),N("esri/t9n/common")],X.prototype,"messagesCommon",void 0),e([n(),N("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],X.prototype,"messagesTemplates",void 0),e([n()],X.prototype,"snappingOptions",null),e([n()],X.prototype,"tooltipOptions",null),e([n()],X.prototype,"supportingWidgetDefaults",void 0),e([n()],X.prototype,"view",null),e([n(),z(["workflow-cancel","workflow-commit"])],X.prototype,"viewModel",void 0),e([n({type:_,nonNullable:!0})],X.prototype,"visibleElements",void 0),e([n()],X.prototype,"_helpMessage",null),X=e([l(K)],X);const Y=X;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 e}from"../../../chunks/tslib.es6.js";import"../../../intl.js";import{destroyMaybe as t}from"../../../core/maybe.js";import{watch as s}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 i}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{legendItemCss as c}from"../css.js";import{Statistics as l}from"./Statistics.js";import{getTranslatedLineTitle as n}from"../support/intlUtils.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{tsx as p,tsxFragment as d}from"../../support/jsxFactory.js";import{substitute as h}from"../../../intl/substitute.js";let m=class extends r{constructor(e,t){super(e,t),this.checkboxVisible=!0,this.expanded=!1}loadDependencies(){return a({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}initialize(){this._statistics=new l(this._statisticsProps),this.addHandles(s((()=>this._statisticsProps),(e=>this._statistics.set(e))))}destroy(){this._statistics=t(this._statistics)}render(){const e=this.expanded;return p("div",{key:this,class:this.classes(c.base,{[c.disabled]:this.disabled,[c.expanded]:e})},this._renderColorIndicator(),p("div",{key:"header",class:c.header},this._renderLabelWithCheckbox(),this._renderCollapseToggleButton()),e&&p("div",{key:"content",class:c.content},this._statistics.render()))}get disabled(){return!this.line.available}get _statisticsProps(){return{line:this.line,effectiveUnits:this.effectiveUnits}}_renderColorIndicator(){return p("div",{key:"color-indicator",class:c.colorIndicator,styles:{backgroundColor:this.line.color.toCss()}})}_renderCollapseToggleButton(){const{expanded:e,messages:t}=this,s=e?t.hideDetails:t.showDetails;return p("calcite-action",{appearance:"transparent",bind:this,class:c.collapseToggle,"data-testid":"legend-toggle",icon:e?"chevron-up":"chevron-down",key:"collapse-toggle",onclick:this._onCollapseToggleClick,scale:"s",text:s})}_onCollapseToggleClick(){this.onExpandedToggle()}_renderLabelWithCheckbox(){const{line:e,checkboxVisible:t,disabled:s,messages:o}=this,i=`label-${e.id}`;return p("calcite-label",{key:i,class:c.label,disabled:s,layout:"inline"},t&&this._renderCheckbox(e.id),n(e,o))}_renderCheckbox(e){const{disabled:t,line:s,messages:o}=this,i=s.visible,r=`${e}-checkbox`,l=i?o.hideProfile:o.showProfile,a=h(l,{name:n(s,o)});return p(d,null,p("calcite-checkbox",{checked:i,class:c.checkbox,disabled:t,id:r,key:"checkbox",onCalciteCheckboxChange:()=>s.toggleVisibility()}),p("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:r,placement:"top"},a))}};e([o()],m.prototype,"checkboxVisible",void 0),e([o()],m.prototype,"disabled",null),e([o({nonNullable:!0})],m.prototype,"effectiveUnits",void 0),e([o()],m.prototype,"expanded",void 0),e([o({nonNullable:!0})],m.prototype,"line",void 0),e([o()],m.prototype,"messages",void 0),e([o()],m.prototype,"onExpandedToggle",void 0),e([o()],m.prototype,"_statistics",void 0),m=e([i("esri.widgets.ElevationProfile.LegendItem")],m);export{m as LegendItem};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../intl.js";import{destroyMaybe as t}from"../../../core/maybe.js";import{watch as s}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 i}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{legendItemCss as c}from"../css.js";import{Statistics as l}from"./Statistics.js";import{getTranslatedLineTitle as n}from"../support/intlUtils.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{tsx as p,tsxFragment as d}from"../../support/jsxFactory.js";import{substitute as h}from"../../../intl/substitute.js";let m=class extends r{constructor(e,t){super(e,t),this.checkboxVisible=!0,this.expanded=!1}loadDependencies(){return a({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}initialize(){this._statistics=new l(this._statisticsProps),this.addHandles(s((()=>this._statisticsProps),(e=>this._statistics.set(e))))}destroy(){this._statistics=t(this._statistics)}render(){const e=this.expanded;return p("div",{class:this.classes(c.base,{[c.disabled]:this.disabled,[c.expanded]:e}),key:this},this._renderColorIndicator(),p("div",{class:c.header,key:"header"},this._renderLabelWithCheckbox(),this._renderCollapseToggleButton()),e?p("div",{class:c.content,key:"content"},this._statistics.render()):null)}get disabled(){return!this.line.available}get _statisticsProps(){return{line:this.line,effectiveUnits:this.effectiveUnits}}_renderColorIndicator(){return p("div",{class:c.colorIndicator,key:"color-indicator",styles:{backgroundColor:this.line.color.toCss()}})}_renderCollapseToggleButton(){const{expanded:e,messages:t}=this,s=e?t.hideDetails:t.showDetails;return p("calcite-action",{appearance:"transparent",bind:this,class:c.collapseToggle,"data-testid":"legend-toggle",icon:e?"chevron-up":"chevron-down",key:"collapse-toggle",onclick:this._onCollapseToggleClick,scale:"s",text:s})}_onCollapseToggleClick(){this.onExpandedToggle()}_renderLabelWithCheckbox(){const{line:e,checkboxVisible:t,disabled:s,messages:o}=this,i=`label-${e.id}`;return p("calcite-label",{class:c.label,disabled:s,key:i,layout:"inline"},t?this._renderCheckbox(e.id):null,n(e,o))}_renderCheckbox(e){const{disabled:t,line:s,messages:o}=this,i=s.visible,r=`${e}-checkbox`,l=i?o.hideProfile:o.showProfile,a=h(l,{name:n(s,o)});return p(d,null,p("calcite-checkbox",{checked:i,class:c.checkbox,disabled:t,id:r,key:"checkbox",onCalciteCheckboxChange:()=>s.toggleVisibility()}),p("calcite-tooltip",{overlayPositioning:"fixed",placement:"top",referenceElement:r},a))}};e([o()],m.prototype,"checkboxVisible",void 0),e([o()],m.prototype,"disabled",null),e([o({nonNullable:!0})],m.prototype,"effectiveUnits",void 0),e([o()],m.prototype,"expanded",void 0),e([o({nonNullable:!0})],m.prototype,"line",void 0),e([o()],m.prototype,"messages",void 0),e([o()],m.prototype,"onExpandedToggle",void 0),e([o()],m.prototype,"_statistics",void 0),m=e([i("esri.widgets.ElevationProfile.LegendItem")],m);export{m as LegendItem};
@@ -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/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 i}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{settingsCss as s}from"../css.js";import{loadCalciteComponents as n}from"../../support/componentsUtils.js";import{UnitSelect as c}from"../../support/UnitSelect.js";import"../../support/widgetUtils.js";import{tsx as a}from"../../support/jsxFactory.js";let p=class extends r{constructor(){super(...arguments),this.messages=null,this._popover=null,this._popoverIsOpen=!1,this._onPopoverAfterCreate=e=>{this._popover=e},this._onUniformChartScalingChange=e=>{this.onUniformChartScalingChange(e.target.checked)}}loadDependencies(){return n({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}initialize(){const e=()=>this._popover;this.addHandles([t(e,"calcitePopoverOpen",(()=>this._popoverIsOpen=!0)),t(e,"calcitePopoverClose",(()=>this._popoverIsOpen=!1))])}render(){const{id:e,messages:t,visibleElements:o}=this,{unitSelector:i,uniformChartScalingToggle:r}=o;if(!t||!i&&!r)return a("div",{key:`${e}-empty`});const n=`${e}__action`,c=this._popoverIsOpen?t.hideSettings:t.showSettings;return a("div",{key:this,class:s.base},a("calcite-popover",{afterCreate:this._onPopoverAfterCreate,autoClose:!0,label:c,overlayPositioning:"fixed",referenceElement:n,placement:"bottom-end"},this._renderPopoverContent()),a("calcite-action",{appearance:"transparent",icon:"gear",id:n,scale:"s",text:c,label:c,"data-testid":"settings-button"}))}_renderPopoverContent(){const{unitSelector:e,uniformChartScalingToggle:t}=this.visibleElements;return a("div",{class:s.popoverContent},e&&this._renderUnitSelector(),t&&this._renderUniformChartScalingToggle())}_renderUnitSelector(){const{messages:e}=this;return a(c,{key:"unit-selector-label",onChange:this.onUnitChange,options:this.unitOptions,selectLabel:e?.unitSelectLabel??"",value:this.unit})}_renderUniformChartScalingToggle(){const{messages:e}=this,t=this.uniformChartScaling,o=`${this.id}__uniform-chart-scaling-toggle`,i=e?.[t?"uniformChartScalingDisable":"uniformChartScalingEnable"]??"";return a("calcite-label",{class:s.uniformChartScalingLabel,key:"uniform-chart-scaling-label",layout:"inline"},a("calcite-checkbox",{checked:t,class:s.uniformChartScalingCheckbox,id:o,onCalciteCheckboxChange:this._onUniformChartScalingChange}),a("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:o},i),e?.uniformChartScalingLabel)}};e([o()],p.prototype,"messages",void 0),e([o()],p.prototype,"onUniformChartScalingChange",void 0),e([o()],p.prototype,"onUnitChange",void 0),e([o()],p.prototype,"uniformChartScaling",void 0),e([o()],p.prototype,"unit",void 0),e([o()],p.prototype,"unitOptions",void 0),e([o()],p.prototype,"visibleElements",void 0),e([o()],p.prototype,"_popover",void 0),e([o()],p.prototype,"_popoverIsOpen",void 0),p=e([i("esri.widgets.ElevationProfile.components.SettingsButton")],p);export{p as SettingsButton};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{on 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 i}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{settingsCss as s}from"../css.js";import{loadCalciteComponents as n}from"../../support/componentsUtils.js";import{UnitSelect as c}from"../../support/UnitSelect.js";import"../../support/widgetUtils.js";import{tsx as a}from"../../support/jsxFactory.js";let p=class extends r{constructor(){super(...arguments),this.messages=null,this._popover=null,this._popoverIsOpen=!1,this._onPopoverAfterCreate=e=>{this._popover=e},this._onUniformChartScalingChange=e=>{this.onUniformChartScalingChange(e.target.checked)}}loadDependencies(){return n({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}initialize(){const e=()=>this._popover;this.addHandles([t(e,"calcitePopoverOpen",(()=>this._popoverIsOpen=!0)),t(e,"calcitePopoverClose",(()=>this._popoverIsOpen=!1))])}render(){const{id:e,messages:t,visibleElements:o}=this,{unitSelector:i,uniformChartScalingToggle:r}=o;if(!t||!i&&!r)return a("div",{key:`${e}-empty`});const n=`${e}__action`,c=this._popoverIsOpen?t.hideSettings:t.showSettings;return a("div",{class:s.base,key:this},a("calcite-popover",{afterCreate:this._onPopoverAfterCreate,autoClose:!0,label:c,overlayPositioning:"fixed",placement:"bottom-end",referenceElement:n},this._renderPopoverContent()),a("calcite-action",{appearance:"transparent","data-testid":"settings-button",icon:"gear",id:n,label:c,scale:"s",text:c}))}_renderPopoverContent(){const{unitSelector:e,uniformChartScalingToggle:t}=this.visibleElements;return a("div",{class:s.popoverContent},e?this._renderUnitSelector():null,t?this._renderUniformChartScalingToggle():null)}_renderUnitSelector(){const{messages:e}=this;return a(c,{key:"unit-selector-label",options:this.unitOptions,selectLabel:e?.unitSelectLabel??"",value:this.unit,onChange:this.onUnitChange})}_renderUniformChartScalingToggle(){const{messages:e}=this,t=this.uniformChartScaling,o=`${this.id}__uniform-chart-scaling-toggle`,i=e?.[t?"uniformChartScalingDisable":"uniformChartScalingEnable"]??"";return a("calcite-label",{class:s.uniformChartScalingLabel,key:"uniform-chart-scaling-label",layout:"inline"},a("calcite-checkbox",{checked:t,class:s.uniformChartScalingCheckbox,id:o,onCalciteCheckboxChange:this._onUniformChartScalingChange}),a("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:o},i),e?.uniformChartScalingLabel)}};e([o()],p.prototype,"messages",void 0),e([o()],p.prototype,"onUniformChartScalingChange",void 0),e([o()],p.prototype,"onUnitChange",void 0),e([o()],p.prototype,"uniformChartScaling",void 0),e([o()],p.prototype,"unit",void 0),e([o()],p.prototype,"unitOptions",void 0),e([o()],p.prototype,"visibleElements",void 0),e([o()],p.prototype,"_popover",void 0),e([o()],p.prototype,"_popoverIsOpen",void 0),p=e([i("esri.widgets.ElevationProfile.components.SettingsButton")],p);export{p as SettingsButton};
@@ -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{throttle as e}from"../../../core/throttle.js";import{formatDecimal as s,formatAngleDegrees as i}from"../../../core/unitFormatUtils.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 o}from"../../../core/accessorSupport/decorators/subclass.js";import a from"../../Widget.js";import{statisticsCss as n}from"../css.js";import{getConfig as c,notAvailable as l}from"../support/constants.js";import{loadCalciteComponents as p}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as d}from"../../support/decorators/messageBundle.js";import{tsx as m}from"../../support/jsxFactory.js";const u=100;let h=class extends a{constructor(t,s){super(t,s),this._updateLayout=t=>{const e=t.parentElement,s=t.style.display;e?.removeChild(t),document.body.appendChild(t),t.style.display="block";let i=80;for(const r of t.childNodes)r instanceof HTMLElement&&(i=Math.max(i,r.offsetWidth));document.body.removeChild(t),e?.appendChild(t),t.style.display=s,t.style.setProperty("--max-width",`${i}px`)},this._updateLayoutThrottled=e(this._updateLayout,u)}loadDependencies(){return p({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}initialize(){this.addHandles(this._updateLayoutThrottled)}render(){return m("div",{bind:this,class:n.base,afterCreate:this._updateLayout,afterUpdate:this._updateLayoutThrottled},this._renderStatistics())}_renderStatistics(){const t=this._messages?.statistics;return t?[this._renderDistanceStatistic("maxDistance",t.maxDistance),this._renderElevationStatistic("elevationGain",t.gain),this._renderElevationStatistic("elevationLoss",t.loss),this._renderElevationStatistic("minElevation",t.minElevation),this._renderElevationStatistic("maxElevation",t.maxElevation),this._renderElevationStatistic("avgElevation",t.avgElevation),this._renderSlopeStatistic("maxPositiveSlope","maxNegativeSlope",t.maxSlope),this._renderSlopeStatistic("avgPositiveSlope","avgNegativeSlope",t.avgSlope)]:[]}_renderDistanceStatistic(t,e){const i=c().formatPrecision,r=this._renderValue(t,(t=>{const e=this.effectiveUnits.distance;return s(this._messagesUnits,t,e,i)}));return this._renderStatistic(e,r)}_renderElevationStatistic(t,e){const i=c().formatPrecision,r=this._renderValue(t,(t=>{const e=this.effectiveUnits.elevation;return s(this._messagesUnits,t,e,i)}));return this._renderStatistic(e,r)}_renderSlopeStatistic(t,e,s){const r=c().formatPrecision,o=m("div",{key:"slope-up",class:n.slopeValue},m("calcite-icon",{icon:"arrow-up",scale:"s"}),this._renderValue(t,(t=>i(t,"degrees","geographic","geographic",r))),m("calcite-icon",{icon:"arrow-down",scale:"s"}),this._renderValue(e,(t=>i(t,"degrees","geographic","geographic",r))));return this._renderStatistic(s,o)}_renderStatistic(t,e){return m("div",{class:n.statistic},m("label",{class:n.statisticLabel},t),m("div",{class:n.statisticValue},e))}_renderValue(t,e){const s=this.line,i=1===s.progress?s.statistics:null,r=i?.[t];return null!=r?e(r):l}};t([r()],h.prototype,"effectiveUnits",void 0),t([r()],h.prototype,"line",void 0),t([r(),d("esri/widgets/ElevationProfile/t9n/ElevationProfile")],h.prototype,"_messages",void 0),t([r(),d("esri/core/t9n/Units")],h.prototype,"_messagesUnits",void 0),h=t([o("esri.widgets.ElevationProfile.Statistics")],h);export{h as Statistics};
5
+ import{_ as t}from"../../../chunks/tslib.es6.js";import{throttle as e}from"../../../core/throttle.js";import{formatDecimal as s,formatAngleDegrees as i}from"../../../core/unitFormatUtils.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 o}from"../../../core/accessorSupport/decorators/subclass.js";import a from"../../Widget.js";import{statisticsCss as n}from"../css.js";import{getConfig as c,notAvailable as l}from"../support/constants.js";import{loadCalciteComponents as p}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{messageBundle as d}from"../../support/decorators/messageBundle.js";import{tsx as m}from"../../support/jsxFactory.js";const u=100;let h=class extends a{constructor(t,s){super(t,s),this._updateLayout=t=>{const e=t.parentElement,s=t.style.display;e?.removeChild(t),document.body.appendChild(t),t.style.display="block";let i=80;for(const r of t.childNodes)r instanceof HTMLElement&&(i=Math.max(i,r.offsetWidth));document.body.removeChild(t),e?.appendChild(t),t.style.display=s,t.style.setProperty("--max-width",`${i}px`)},this._updateLayoutThrottled=e(this._updateLayout,u)}loadDependencies(){return p({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}initialize(){this.addHandles(this._updateLayoutThrottled)}render(){return m("div",{afterCreate:this._updateLayout,afterUpdate:this._updateLayoutThrottled,bind:this,class:n.base},this._renderStatistics())}_renderStatistics(){const t=this._messages?.statistics;return t?[this._renderDistanceStatistic("maxDistance",t.maxDistance),this._renderElevationStatistic("elevationGain",t.gain),this._renderElevationStatistic("elevationLoss",t.loss),this._renderElevationStatistic("minElevation",t.minElevation),this._renderElevationStatistic("maxElevation",t.maxElevation),this._renderElevationStatistic("avgElevation",t.avgElevation),this._renderSlopeStatistic("maxPositiveSlope","maxNegativeSlope",t.maxSlope),this._renderSlopeStatistic("avgPositiveSlope","avgNegativeSlope",t.avgSlope)]:[]}_renderDistanceStatistic(t,e){const i=c().formatPrecision,r=this._renderValue(t,(t=>{const e=this.effectiveUnits.distance;return s(this._messagesUnits,t,e,i)}));return this._renderStatistic(e,r)}_renderElevationStatistic(t,e){const i=c().formatPrecision,r=this._renderValue(t,(t=>{const e=this.effectiveUnits.elevation;return s(this._messagesUnits,t,e,i)}));return this._renderStatistic(e,r)}_renderSlopeStatistic(t,e,s){const r=c().formatPrecision,o=m("div",{class:n.slopeValue,key:"slope-up"},m("calcite-icon",{icon:"arrow-up",scale:"s"}),this._renderValue(t,(t=>i(t,"degrees","geographic","geographic",r))),m("calcite-icon",{icon:"arrow-down",scale:"s"}),this._renderValue(e,(t=>i(t,"degrees","geographic","geographic",r))));return this._renderStatistic(s,o)}_renderStatistic(t,e){return m("div",{class:n.statistic},m("label",{class:n.statisticLabel},t),m("div",{class:n.statisticValue},e))}_renderValue(t,e){const s=this.line,i=1===s.progress?s.statistics:null,r=i?.[t];return null!=r?e(r):l}};t([r()],h.prototype,"effectiveUnits",void 0),t([r()],h.prototype,"line",void 0),t([r(),d("esri/widgets/ElevationProfile/t9n/ElevationProfile")],h.prototype,"_messages",void 0),t([r(),d("esri/core/t9n/Units")],h.prototype,"_messagesUnits",void 0),h=t([o("esri.widgets.ElevationProfile.Statistics")],h);export{h as Statistics};