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

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 (313) hide show
  1. package/Graphic.js +1 -1
  2. package/arcade/ArcadeDate.js +1 -1
  3. package/arcade/Feature.js +1 -1
  4. package/arcade/featureSetUtils.js +1 -1
  5. package/arcade/featureset/actions/Adapted.js +1 -1
  6. package/arcade/featureset/actions/GroupBy.js +1 -1
  7. package/arcade/featureset/support/FeatureSet.js +1 -1
  8. package/arcade/featureset/support/FeatureSetIterator.js +1 -1
  9. package/arcade/featureset/support/StatsField.js +1 -1
  10. package/arcade/featureset/support/sqlUtils.js +1 -1
  11. package/arcade/functions/date.js +1 -1
  12. package/arcade/functions/featuresetbase.js +1 -1
  13. package/arcade/functions/featuresetstats.js +1 -1
  14. package/arcade.js +1 -1
  15. package/assets/esri/core/workers/RemoteClient.js +1 -1
  16. package/assets/esri/core/workers/chunks/{2cb36f9686693234991a.js → 07a2dab2f645dcd7d8d6.js} +1 -1
  17. package/assets/esri/core/workers/chunks/07f6175b52366b2c28bd.js +1 -0
  18. package/assets/esri/core/workers/chunks/098073c3b2849f56dad8.js +1 -0
  19. package/assets/esri/core/workers/chunks/{580039dd491854ca325c.js → 21fc02f0d5716c4a7acd.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{072b4e041b8630c513a0.js → 243b1f9b2fba02946481.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{dff1c3c38dda2bd1a9d6.js → 246a954347fe9318190e.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{314c307e30f308a40a28.js → 25b09e9c0511c8e1cf8a.js} +1 -1
  23. package/assets/esri/core/workers/chunks/28a5ef2e2daa4207dd8b.js +1 -0
  24. package/assets/esri/core/workers/chunks/2b017e1aa1be71974c2e.js +1 -0
  25. package/assets/esri/core/workers/chunks/425b5733bb88e6efe242.js +1 -0
  26. package/assets/esri/core/workers/chunks/{c9dfb145f0c1d93e0fbd.js → 4bcca5fffb1fcc2d4353.js} +1 -1
  27. package/assets/esri/core/workers/chunks/4bf1a7e82a68ccee0ee1.js +1 -0
  28. package/assets/esri/core/workers/chunks/4c110c7f4f940ec58010.js +1 -0
  29. package/assets/esri/core/workers/chunks/{bde89b2684b6185992ef.js → 4ed77097e69fa3096ce4.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{1cbaba30f55f00f7498b.js → 51324d042f469f3b8914.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{3f4e9b1663ec521bfe00.js → 542ce10e1872399790b4.js} +1 -1
  32. package/assets/esri/core/workers/chunks/54d2b7e2ac4ba883bee8.js +1 -0
  33. package/assets/esri/core/workers/chunks/54ecb6cae310818d1aa2.js +1 -0
  34. package/assets/esri/core/workers/chunks/57c932e289d89d97da4b.js +1 -0
  35. package/assets/esri/core/workers/chunks/{6403de6fc067cf8f7436.js → 592c1fb531f2be928e8a.js} +1 -1
  36. package/assets/esri/core/workers/chunks/609a475ab395f2ce63e2.js +1 -0
  37. package/assets/esri/core/workers/chunks/{332689bf60d246485993.js → 65186e168dd112ac6221.js} +1 -1
  38. package/assets/esri/core/workers/chunks/6b9248fb2d6aadbce7bb.js +1 -0
  39. package/assets/esri/core/workers/chunks/709465832d306e02df52.js +1 -0
  40. package/assets/esri/core/workers/chunks/{bbc0dcd316c5598bc9ad.js → 74368a5213def6c200a2.js} +1 -1
  41. package/assets/esri/core/workers/chunks/78e7af899d9d50aa7e74.js +1 -0
  42. package/assets/esri/core/workers/chunks/7fe641cf1467496e670a.js +1 -0
  43. package/assets/esri/core/workers/chunks/{df8f62beb36fb9d2ac81.js → 810c8d6ff19976fd1366.js} +1 -1
  44. package/assets/esri/core/workers/chunks/83a15aa4b1c5252c651b.js +1 -0
  45. package/assets/esri/core/workers/chunks/85e436decdd693f240ee.js +1 -0
  46. package/assets/esri/core/workers/chunks/{243a4eed107d363dfad8.js → 887652bbdb3b71d0a089.js} +1 -1
  47. package/assets/esri/core/workers/chunks/896bfda379cf620b63ec.js +1 -0
  48. package/assets/esri/core/workers/chunks/{1f7e041140088f8ac489.js → 97073a60f0ea2a397165.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{101f776316a85b708927.js → a99070ec4c06c435b744.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{21a9c8aa2a9e9990df41.js → b499b4fa771e8c422b43.js} +1 -1
  51. package/assets/esri/core/workers/chunks/bffad8aec92f982cc75a.js +1 -0
  52. package/assets/esri/core/workers/chunks/d414dba3179bcf75bc6b.js +1 -0
  53. package/assets/esri/core/workers/chunks/{b449d6bd5851187d419f.js → d6e5408f9fa6b4bcd118.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{3ca759f72d3bb29e9ea9.js → e14da83329f7771135bc.js} +2 -2
  55. package/assets/esri/core/workers/chunks/{f508ccfde6425dabe9ac.js → ee0bf611d191103a7046.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{ed1fbc1bc8d50453e2f5.js → f793cd41fcd022baeea2.js} +1 -1
  57. package/assets/esri/core/workers/chunks/fb87fd64411b78afea23.js +1 -0
  58. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +2 -0
  59. package/assets/esri/themes/dark/main.css +1 -1
  60. package/assets/esri/themes/light/main.css +1 -1
  61. package/assets/esri/themes/light/view.css +1 -1
  62. package/config.js +1 -1
  63. package/core/Accessor.js +1 -1
  64. package/core/has.js +1 -1
  65. package/core/sql/DateOnly.js +1 -1
  66. package/core/sql/WhereClause.js +1 -1
  67. package/core/sql.js +1 -1
  68. package/identity/IdentityForm.js +1 -1
  69. package/identity/IdentityModal.js +1 -1
  70. package/interfaces.d.ts +28 -199
  71. package/layers/OrientedImageryLayer.js +1 -1
  72. package/layers/graphics/applyEditsUtils.js +5 -0
  73. package/layers/graphics/editingSupport.js +1 -1
  74. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  75. package/layers/mixins/EditBusLayer.js +1 -1
  76. package/layers/orientedImagery/core/CameraOrientationLTP.js +1 -1
  77. package/layers/orientedImagery/core/ElevationSourceDefinitions.js +5 -0
  78. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  79. package/layers/orientedImagery/core/cameraOrientationFactory.js +1 -1
  80. package/layers/orientedImagery/core/utils.js +5 -0
  81. package/layers/orientedImagery/transformations/groundToImageUtils.js +1 -1
  82. package/layers/support/fieldProperties.js +1 -1
  83. package/networks/Network.js +1 -1
  84. package/package.json +1 -1
  85. package/rest/featureService/FeatureService.js +1 -1
  86. package/support/arcadeUtils.js +1 -1
  87. package/support/revision.js +1 -1
  88. package/symbols/support/svgUtils.js +1 -1
  89. package/versionManagement/VersionManagementService.js +1 -1
  90. package/versionManagement/support/EditMomentStack.js +5 -0
  91. package/versionManagement/support/versionManagementUtils.js +1 -1
  92. package/views/2d/engine/Container.js +1 -1
  93. package/views/2d/engine/DisplayObject.js +1 -1
  94. package/views/2d/engine/ManagedCanvas.js +5 -0
  95. package/views/2d/engine/Stage.js +1 -1
  96. package/views/2d/engine/webgl/GroupContainer.js +1 -1
  97. package/views/2d/engine/webgl/Painter.js +1 -1
  98. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  99. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  100. package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
  101. package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
  102. package/views/2d/engine/webgl/effects/HittestEffectVTL.js +1 -1
  103. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  104. package/views/2d/layers/MediaLayerView2D.js +1 -1
  105. package/views/2d/layers/TileLayerView2D.js +1 -1
  106. package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
  107. package/views/2d/layers/graphics/BaseGraphicContainer.js +1 -1
  108. package/views/2d/layers/graphics/GraphicContainer.js +1 -1
  109. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  110. package/views/2d/layers/graphics/HighlightGraphicContainer.js +1 -1
  111. package/views/2d/layers/support/DisplayGL.js +1 -1
  112. package/views/2d/webglDeps.js +1 -1
  113. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  114. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  115. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  116. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  117. package/views/3d/layers/SceneLayerView3D.js +1 -1
  118. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  119. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  120. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  121. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  122. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  123. package/views/3d/layers/graphics/Labeler.js +1 -1
  124. package/views/3d/layers/graphics/graphicUtils.js +1 -1
  125. package/views/3d/layers/i3s/featureEditing.js +1 -1
  126. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  127. package/views/3d/support/buffer/glUtil.js +1 -1
  128. package/views/3d/support/engineContent/line.js +1 -1
  129. package/views/3d/support/viewpointUtils.js +1 -1
  130. package/views/3d/webgl-engine/Stage.js +1 -1
  131. package/views/3d/webgl-engine/effects/RenderPluginInput.js +1 -1
  132. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  133. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  134. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  135. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  136. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  137. package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
  138. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  139. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  140. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  141. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  142. package/views/3d/webgl-engine/lib/TextTextureFactory.js +1 -1
  143. package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
  144. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  145. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  146. package/views/3d/webgl-engine/lib/edgeRendering/edgeProcessing.js +1 -1
  147. package/views/View.js +1 -1
  148. package/views/interactive/tooltip/TooltipContentWithHelpMessage.js +1 -1
  149. package/views/interactive/tooltip/TooltipEditableField.js +1 -1
  150. package/views/interactive/tooltip/constraintUtils.js +1 -1
  151. package/views/interactive/tooltip/content/Fields.js +1 -1
  152. package/views/interactive/tooltip/content/TooltipContentDrawCircle.js +1 -1
  153. package/views/interactive/tooltip/content/TooltipContentDrawMesh.js +1 -1
  154. package/views/interactive/tooltip/content/TooltipContentDrawPoint.js +1 -1
  155. package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
  156. package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
  157. package/views/interactive/tooltip/content/TooltipContentDrawRectangle.js +1 -1
  158. package/views/interactive/tooltip/content/TooltipContentExtentRotate.js +1 -1
  159. package/views/interactive/tooltip/content/TooltipContentExtentScale.js +1 -1
  160. package/views/interactive/tooltip/content/TooltipContentReshapeEdgeOffset.js +1 -1
  161. package/views/interactive/tooltip/content/TooltipContentTransformAbsolute.js +1 -1
  162. package/views/interactive/tooltip/content/TooltipContentTransformRotate.js +1 -1
  163. package/views/interactive/tooltip/content/TooltipContentTransformScale.js +1 -1
  164. package/views/interactive/tooltip/content/TooltipContentTranslateGraphic.js +1 -1
  165. package/views/interactive/tooltip/content/TooltipContentTranslateGraphicXY.js +1 -1
  166. package/views/interactive/tooltip/content/TooltipContentTranslateGraphicZ.js +1 -1
  167. package/views/interactive/tooltip/content/TooltipContentTranslateVertex.js +1 -1
  168. package/views/interactive/tooltip/content/TooltipContentTranslateVertexXY.js +1 -1
  169. package/views/interactive/tooltip/content/TooltipContentTranslateVertexZ.js +1 -1
  170. package/views/support/angularMeasurementUtils.js +1 -1
  171. package/views/webgl/Texture.js +1 -1
  172. package/views/webgl/contextUtils.js +1 -1
  173. package/widgets/AreaMeasurement2D.js +1 -1
  174. package/widgets/AreaMeasurement3D.js +1 -1
  175. package/widgets/Attachments.js +1 -1
  176. package/widgets/Attribution.js +1 -1
  177. package/widgets/BasemapGallery.js +1 -1
  178. package/widgets/BasemapLayerList.js +1 -1
  179. package/widgets/BasemapToggle.js +1 -1
  180. package/widgets/Bookmarks.js +1 -1
  181. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
  182. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
  183. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  184. package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
  185. package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
  186. package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
  187. package/widgets/BuildingExplorer.js +1 -1
  188. package/widgets/Compass.js +1 -1
  189. package/widgets/CoordinateConversion.js +1 -1
  190. package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
  191. package/widgets/Daylight.js +1 -1
  192. package/widgets/DirectLineMeasurement3D.js +1 -1
  193. package/widgets/DirectionalPad.js +1 -1
  194. package/widgets/Directions/components/SaveLayer.js +1 -1
  195. package/widgets/Directions.js +1 -1
  196. package/widgets/DistanceMeasurement2D.js +1 -1
  197. package/widgets/Editor/components/FooterActions.js +1 -1
  198. package/widgets/Editor/components/Notices.js +1 -1
  199. package/widgets/Editor/components/PanelContent.js +1 -1
  200. package/widgets/Editor/components/PanelToolbar.js +1 -1
  201. package/widgets/Editor/components/Prompt.js +1 -1
  202. package/widgets/Editor/components/Settings.js +1 -1
  203. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  204. package/widgets/Editor/components/UploadDetails.js +1 -1
  205. package/widgets/Editor.js +1 -1
  206. package/widgets/ElevationProfile/components/LegendItem.js +1 -1
  207. package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
  208. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  209. package/widgets/ElevationProfile.js +1 -1
  210. package/widgets/Expand.js +1 -1
  211. package/widgets/Feature/FeatureContent.js +1 -1
  212. package/widgets/Feature/FeatureExpression.js +1 -1
  213. package/widgets/Feature/FeatureFields.js +1 -1
  214. package/widgets/Feature/FeatureMedia.js +1 -1
  215. package/widgets/Feature/FeatureRelationship.js +1 -1
  216. package/widgets/Feature/support/FeatureContentMixin.js +1 -1
  217. package/widgets/Feature/support/FeatureElementInfo.js +1 -1
  218. package/widgets/Feature.js +1 -1
  219. package/widgets/FeatureForm.js +1 -1
  220. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  221. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  222. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  223. package/widgets/FeatureTable.js +1 -1
  224. package/widgets/FeatureTemplates/ItemList.js +1 -1
  225. package/widgets/FeatureTemplates.js +1 -1
  226. package/widgets/Features/FeaturesRelatedRecords.js +1 -1
  227. package/widgets/Features.js +1 -1
  228. package/widgets/FloorFilter.js +1 -1
  229. package/widgets/Fullscreen.js +1 -1
  230. package/widgets/Histogram.js +1 -1
  231. package/widgets/HistogramRangeSlider.js +1 -1
  232. package/widgets/Home.js +1 -1
  233. package/widgets/LayerList/ListItemPanel.js +1 -1
  234. package/widgets/LayerList.js +1 -1
  235. package/widgets/Legend/styles/Card.js +1 -1
  236. package/widgets/Legend/styles/Classic.js +1 -1
  237. package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
  238. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  239. package/widgets/LineOfSight.js +1 -1
  240. package/widgets/Locate.js +1 -1
  241. package/widgets/NavigationToggle.js +1 -1
  242. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  243. package/widgets/OrientedImageryViewer.js +1 -1
  244. package/widgets/Popup.js +1 -1
  245. package/widgets/Print.js +1 -1
  246. package/widgets/ScaleRangeSlider.js +1 -1
  247. package/widgets/Search/SearchResultRenderer.js +1 -1
  248. package/widgets/Search.js +1 -1
  249. package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
  250. package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
  251. package/widgets/ShadowCast/components/ShadowTooltipContent.js +1 -1
  252. package/widgets/ShadowCast/components/ThresholdConfigurator.js +1 -1
  253. package/widgets/ShadowCast.js +1 -1
  254. package/widgets/Sketch.js +1 -1
  255. package/widgets/Slice.js +1 -1
  256. package/widgets/Slider.js +1 -1
  257. package/widgets/Swipe.js +1 -1
  258. package/widgets/TableList.js +1 -1
  259. package/widgets/TimeSlider.js +1 -1
  260. package/widgets/Track.js +1 -1
  261. package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js +1 -1
  262. package/widgets/UtilityNetworkAssociations.js +1 -1
  263. package/widgets/UtilityNetworkTrace.js +1 -1
  264. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  265. package/widgets/ValuePicker.js +1 -1
  266. package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
  267. package/widgets/VideoPlayer/components/SettingsButton.js +1 -1
  268. package/widgets/VideoPlayer.js +1 -1
  269. package/widgets/Weather/LabeledSlider.js +1 -1
  270. package/widgets/Weather.js +1 -1
  271. package/widgets/Zoom/IconButton.js +1 -1
  272. package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
  273. package/widgets/smartMapping/ClassedColorSlider.js +1 -1
  274. package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
  275. package/widgets/smartMapping/ColorSizeSlider.js +1 -1
  276. package/widgets/smartMapping/ColorSlider.js +1 -1
  277. package/widgets/smartMapping/HeatmapSlider.js +1 -1
  278. package/widgets/smartMapping/OpacitySlider.js +1 -1
  279. package/widgets/smartMapping/SizeSlider.js +1 -1
  280. package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
  281. package/widgets/support/ColorPicker.js +1 -1
  282. package/widgets/support/DatePicker.js +1 -1
  283. package/widgets/support/Heading.js +1 -1
  284. package/widgets/support/LabeledSwitch.js +1 -1
  285. package/widgets/support/MeasurementWidgetContent.js +1 -1
  286. package/widgets/support/Popover.js +1 -1
  287. package/widgets/support/SelectionToolbar.js +1 -1
  288. package/widgets/support/SketchTooltipControls.js +1 -1
  289. package/widgets/support/SnappingControls.js +1 -1
  290. package/widgets/support/TimePicker.js +1 -1
  291. package/widgets/support/TimezonePicker.js +1 -1
  292. package/widgets/support/UnitSelect.js +1 -1
  293. package/assets/esri/core/workers/chunks/092920c25cac89c038ee.js +0 -1
  294. package/assets/esri/core/workers/chunks/1b3655f5bf5d90fa8730.js +0 -1
  295. package/assets/esri/core/workers/chunks/1cf7bb514e7eefc3e9c6.js +0 -1
  296. package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.js +0 -1
  297. package/assets/esri/core/workers/chunks/2d0d03cbea83c868edba.js +0 -1
  298. package/assets/esri/core/workers/chunks/2e130cb2f1038055c07b.js +0 -1
  299. package/assets/esri/core/workers/chunks/4369a6c1e0a82ab4db6a.js +0 -1
  300. package/assets/esri/core/workers/chunks/4f4a424d1747d04501df.js +0 -1
  301. package/assets/esri/core/workers/chunks/59c00d6fba0fd1c03d01.js +0 -1
  302. package/assets/esri/core/workers/chunks/650a317b6dc245a7060f.js +0 -1
  303. package/assets/esri/core/workers/chunks/7a358b1fd0c0cce59e9b.js +0 -1
  304. package/assets/esri/core/workers/chunks/83d1a1b3d371c991cc4c.js +0 -1
  305. package/assets/esri/core/workers/chunks/c4bb67150ccd01ea6014.js +0 -1
  306. package/assets/esri/core/workers/chunks/c60cf62f374e71e562fc.js +0 -1
  307. package/assets/esri/core/workers/chunks/c8f239c25fe864f0e47a.js +0 -1
  308. package/assets/esri/core/workers/chunks/cad260881653567bc8f9.js +0 -1
  309. package/assets/esri/core/workers/chunks/e55f7fc7eff0074ce0fc.js +0 -1
  310. package/assets/esri/core/workers/chunks/eef27d305023034084a4.js +0 -1
  311. package/assets/esri/core/workers/chunks/f38c54ada9e7012a2960.js +0 -1
  312. package/core/watchUtils.d.ts +0 -4
  313. package/core/watchUtils.js +0 -5
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};
@@ -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{createTask as e}from"../core/asyncUtils.js";import{abortMaybe as i,destroyMaybe as s}from"../core/maybe.js";import{memoize as r}from"../core/memoize.js";import{throwIfAborted as n,createAbortError as o}from"../core/promiseUtils.js";import{watch as a,initial as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import{css as p}from"./ElevationProfile/css.js";import u from"./ElevationProfile/ElevationProfileViewModel.js";import m from"./ElevationProfile/ElevationProfileVisibleElements.js";import{Legend as _}from"./ElevationProfile/components/Legend.js";import{SettingsButton as C}from"./ElevationProfile/components/SettingsButton.js";import{ElevationProfileErrorState as v,getConfig as f,ElevationProfileState as g}from"./ElevationProfile/support/constants.js";import{loadCalciteComponents as y}from"./support/componentsUtils.js";import{globalCss as w}from"./support/globalCss.js";import{onResize as b}from"./support/widgetUtils.js";import{messageBundle as k}from"./support/decorators/messageBundle.js";import{tsx as S,tsxFragment as M}from"./support/jsxFactory.js";var B;!function(t){t.Sketch="sketch",t.SketchCancel="sketch-cancel",t.SketchDone="sketch-done",t.Select="select",t.SelectCancel="select-cancel"}(B||(B={}));const E=[{type:B.Select},{type:B.Sketch}],P={[v.None]:null,[v.NoValidInput]:"noProfile",[v.NoVisibleProfiles]:"noProfile",[v.RefinedButNoChartData]:"noProfile",[v.TooComplex]:"tooComplex",[v.UnknownError]:"unknown",[v.InvalidGeometry]:"invalidGeometry",[v.InvalidElevationInfo]:"invalidElevationInfo"},j=Symbol("resize-observer-handle");let U=class extends d{constructor(t,e){super(t,e),this.viewModel=null,this.visibleElements=new m,this.iconClass=p.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this._chartContainer=null,this._chart=null,this._chartInitTask=null,this._chartIsRefined=!1,this._width=0,this._zoomOutButtonVisible=!1,this._getChartUpdateParamsMemoized=r(((t,e,i,s)=>({chart:t,data:e,stationary:i,messages:s}))),this._onZoomOutButtonClick=()=>{this._chart?.zoomOut()},this._onClearButtonClick=()=>{this.viewModel.clear()},t?.viewModel||(this._defaultViewModel=new u({view:t?.view}),this.viewModel=this._defaultViewModel)}loadDependencies(){return y({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")})}postInitialize(){this.addHandles([a((()=>({container:this._chartContainer,width:this._width})),(({container:t,width:e})=>{this._destroyChart(),null!=t&&e>0&&this._initializeChart(t)}),l),a((()=>this._chartUpdateParams),(()=>this._updateChart(this._chartUpdateParams)),l)])}destroy(){this._destroyChart(),null!=this._defaultViewModel&&this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}get input(){return this.viewModel.input}set input(t){this.viewModel.input=t}get profiles(){return this.viewModel.profiles}set profiles(t){this.viewModel.profiles=t}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(t){this.viewModel.unitOptions=t}get unit(){return this.viewModel.unit}set unit(t){this.viewModel.unit=t}get geodesicDistanceThreshold(){return this.viewModel.geodesicDistanceThreshold}set geodesicDistanceThreshold(t){this.viewModel.geodesicDistanceThreshold=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get visible(){return this.viewModel.visible}set visible(t){this.viewModel.visible=t}get _portrait(){return this._width<f().portraitModePixelBreakpoint}get _chartUpdateParams(){const t=this.view;return this._getChartUpdateParamsMemoized(this._chart,this.viewModel.chartData,null==t||t.stationary,this._chartMessages)}get _chartMessages(){return{...this.messagesUnits,...this.messages}}get _profilesArray(){return this.profiles.toArray()}render(){const{viewModel:t,visible:e}=this;return S("div",{key:this,class:this.classes({[p.base]:e,[w.widget]:e,[w.panel]:e,[w.widgetDisabled]:e&&"disabled"===t.state,[p.portrait]:this._portrait,[p.refined]:1===t.progress}),"aria-label":this.messages.widgetLabel},S("div",{key:"content-wrapper",bind:this,afterCreate:this._onContentWrapperAfterCreate,afterRemoved:this._onContentWrapperRemoved},e&&this._renderContentForState()))}_renderContentForState(){switch(this.viewModel.state){case g.Ready:return this._renderContentForReadyState();case g.Selecting:return this._renderContentForSelectingState();case g.Creating:return this._renderContentForCreatingState();case g.Selected:return this._renderContentForSelectedState();case g.Created:return this._renderContentForCreatedState();case g.Disabled:return this._renderContentForReadyState()}}_renderContentForReadyState(){const{sketchButton:t,selectButton:e}=this.visibleElements,i=this.messages;let s;return s=t&&e?i.readyPrompt:t?i.readyPromptCreateOnly:e?i.readyPromptSelectOnly:i.errors?.noProfile,this._renderContent({prompt:s,chart:!1,actions:E})}_renderContentForSelectingState(){const t=this.view;if(null==t)return null;const e=this.messages[`selectingPrompt-${t.type}`];return this._renderContent({prompt:e,chart:!1,actions:[{type:B.SelectCancel}]})}_renderContentForCreatingState(){const{view:t,viewModel:e}=this;if(null==t)return null;const i=e.hasVertices?[{type:B.SketchCancel},{type:B.SketchDone,disabled:!e.tool.interaction.canStopCreating}]:[{type:B.Select},{type:B.Sketch,disabled:!0}];if(e.errorState===v.NoValidInput){const e=this.messages[`creatingPrompt-${t.type}`];return this._renderContent({chart:!1,actions:i,prompt:e})}const s=this._getErrorMessage();return s?this._renderContent({chart:!1,actions:i,prompt:s}):this._renderContent({chart:!0,actions:i})}_renderContentForSelectedState(){const t=this._getErrorMessage();return t?this._renderContent({chart:!1,actions:E,prompt:t}):this._renderContent({chart:!0,actions:E})}_renderContentForCreatedState(){const t=this._getErrorMessage();return t?this._renderContent({chart:!1,actions:E,prompt:t}):this._renderContent({chart:!0,actions:E})}_getErrorMessage(){const t=P[this.viewModel.errorState];return t?this.messages?.errors?.[t]:null}_renderContent(t){const e=null!=t.prompt?this._renderPrompt(t.prompt):t.chart&&this._renderChart(),{viewModel:i}=this,s=null!=i.input;return S(M,null,S("header",{key:"header",class:p.header},this._zoomOutButtonVisible&&this._renderZoomOutButton(),this.visibleElements.clearButton&&s&&this._renderClearButton(),this.visibleElements.settingsButton&&S(C,{messages:this.messages,onUniformChartScalingChange:t=>i.uniformChartScaling=t,onUnitChange:t=>i.unit=t,uniformChartScaling:i.uniformChartScaling,unit:i.unit,unitOptions:i.unitOptions,visibleElements:this.visibleElements})),S("div",{key:"main-container",class:p.mainContainer},e),this.visibleElements.legend&&S(_,{effectiveUnits:i.effectiveUnits,messages:this.messages,profiles:this._profilesArray}),this._renderActions(t))}_renderZoomOutButton(){return S("calcite-action",{appearance:"transparent",class:p.zoomOutButton,icon:"magnifying-glass-minus",key:"zoom-out",onclick:this._onZoomOutButtonClick,scale:"s",text:this.messages.zoomOut,"data-testid":"zoom-out-button"})}_renderClearButton(){return S("calcite-action",{appearance:"transparent",class:p.clearButton,icon:"trash",key:"clear-profile",onclick:this._onClearButtonClick,scale:"s",text:this.messages.clearProfile,"data-testid":"clear-button"})}_renderPrompt(t){return[S("div",{key:"prompt-container",bind:this,class:p.promptContainer},S("p",null,t))]}_renderChart(){if(!this.visibleElements.chart)return S("div",{key:"empty-chart-container",class:p.chartContainer});const t=this._chartIsRefined||this._canRenderChart();if(!t)return S(M,null,this._renderSpinner({size:"large"}),S("div",{key:"chart-container-empty",class:p.chartContainer}));const{chartData:e,progress:i}=this.viewModel;return S(M,null,null!=e&&i>0&&i<1&&this._renderSpinner({size:t?"small":"large"}),S("div",{key:"chart-container",bind:this,class:p.chartContainer,afterCreate:this._onChartContainerAfterCreate,afterRemoved:this._onChartContainerRemoved}))}_renderSpinner(t){const e="small"===t.size;return S("calcite-loader",{afterCreate:this._onSpinnerAfterCreate,class:this.classes(p.chartSpinner,e&&p.chartSpinnerSmall),exitAnimation:this._onSpinnerExit,inline:e,key:"spinner",label:"",scale:"s"})}_onSpinnerAfterCreate(t){requestAnimationFrame((()=>t.classList.add(p.chartSpinnerVisible)))}_onSpinnerExit(t,e){t.classList.remove(p.chartSpinnerVisible),setTimeout(e,200)}_canRenderChart(){const t=this.viewModel.chartData;if(null==t)return!1;if(!this.viewModel.inputIsSketched)return t.refined;let e=0;for(const{samples:i}of t.lines)e+=null!=i?i.length:0;return t.refined||e<=f().largeChartSamples}_renderActions({actions:t}){const e=t.map((t=>{switch(t.type){case B.Sketch:return this.visibleElements.sketchButton&&this._renderAction({action:t,className:p.sketchButton,label:this.messages.sketchButtonLabel,onClick:this._onSketchButtonClick,primary:!0});case B.SketchCancel:return this.visibleElements.sketchButton&&this._renderAction({action:t,onClick:this._onCancelButtonClick,className:p.sketchCancelButton,label:this.messagesCommon.cancel,primary:!1});case B.SketchDone:return this.visibleElements.sketchButton&&this._renderAction({action:t,onClick:this._onDoneButtonClick,className:p.sketchDoneButton,label:this.messagesCommon.done,primary:!0});case B.Select:return this.visibleElements.selectButton&&this._renderAction({action:t,onClick:this._onSelectButtonClick,className:p.selectButton,label:this.messages.selectButtonLabel,primary:!1});case B.SelectCancel:return this.visibleElements.selectButton&&this._renderAction({action:t,onClick:this._onCancelButtonClick,className:p.selectCancelButton,label:this.messagesCommon.cancel,primary:!1})}})).filter(Boolean);return e.length?S("footer",{key:"footer",class:p.footer},e):null}_renderAction({action:t,className:e,label:i,onClick:s,primary:r}){return S("calcite-button",{appearance:r?"solid":"outline-fill",bind:this,class:this.classes(p.actionButton,e),disabled:t.disabled,key:`action-${t.type}`,onclick:s},i)}_onSketchButtonClick(){this.viewModel.start({mode:"sketch"})}_onSelectButtonClick(){this.viewModel.start({mode:"select"})}_onCancelButtonClick(){this.viewModel.cancel()}_onDoneButtonClick(){this.viewModel.stop()}_onContentWrapperAfterCreate(t){const e=b(t,(t=>{this._width=t.contentRect.width}));this.addHandles(e,j)}_onContentWrapperRemoved(){this.removeHandles(j)}_updateChart(t){const{data:e,chart:i,messages:s,stationary:r}=t;null!=i&&null!=s&&r&&this._canRenderChart()&&(i.update(t),this._chartIsRefined=null!=e&&e.refined)}_onChartContainerAfterCreate(t){this._chartContainer=t}_onChartContainerRemoved(){this._chartContainer=null}_initializeChart(t){i(this._chartInitTask),this._chartInitTask=e((async e=>{const{createChart:i}=await import("./ElevationProfile/support/chartUtils.js");n(e);const r=await i({container:t,abortOptions:{signal:e},onRangeChange:(t,e)=>{this._zoomOutButtonVisible=1!==t||1!==e},onCursorPositionChange:t=>{this.viewModel.hoveredChartPosition=t}});if(e.aborted)throw s(r),o();this._chart=r,this._updateChart(this._chartUpdateParams)}))}_destroyChart(){this._chartInitTask=i(this._chartInitTask),this._chart=s(this._chart),this._chartIsRefined=!1}};t([c({type:u})],U.prototype,"viewModel",void 0),t([c()],U.prototype,"view",null),t([c()],U.prototype,"input",null),t([c()],U.prototype,"profiles",null),t([c()],U.prototype,"unitOptions",null),t([c()],U.prototype,"unit",null),t([c()],U.prototype,"geodesicDistanceThreshold",null),t([c({type:m,nonNullable:!0})],U.prototype,"visibleElements",void 0),t([c()],U.prototype,"iconClass",void 0),t([c()],U.prototype,"icon",void 0),t([c()],U.prototype,"label",null),t([c()],U.prototype,"visible",null),t([c(),k("esri/widgets/ElevationProfile/t9n/ElevationProfile")],U.prototype,"messages",void 0),t([c(),k("esri/t9n/common")],U.prototype,"messagesCommon",void 0),t([c(),k("esri/core/t9n/Units")],U.prototype,"messagesUnits",void 0),t([c()],U.prototype,"_chartContainer",void 0),t([c()],U.prototype,"_chart",void 0),t([c()],U.prototype,"_chartInitTask",void 0),t([c()],U.prototype,"_chartIsRefined",void 0),t([c()],U.prototype,"_width",void 0),t([c()],U.prototype,"_portrait",null),t([c()],U.prototype,"_zoomOutButtonVisible",void 0),t([c()],U.prototype,"_chartUpdateParams",null),t([c()],U.prototype,"_chartMessages",null),t([c()],U.prototype,"_profilesArray",null),U=t([h("esri.widgets.ElevationProfile")],U);const I=U;export{I as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import{createTask as e}from"../core/asyncUtils.js";import{abortMaybe as i,destroyMaybe as s}from"../core/maybe.js";import{memoize as r}from"../core/memoize.js";import{throwIfAborted as n,createAbortError as o}from"../core/promiseUtils.js";import{watch as a,initial as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import{css as p}from"./ElevationProfile/css.js";import u from"./ElevationProfile/ElevationProfileViewModel.js";import m from"./ElevationProfile/ElevationProfileVisibleElements.js";import{Legend as _}from"./ElevationProfile/components/Legend.js";import{SettingsButton as C}from"./ElevationProfile/components/SettingsButton.js";import{ElevationProfileErrorState as v,getConfig as f,ElevationProfileState as g}from"./ElevationProfile/support/constants.js";import{loadCalciteComponents as y}from"./support/componentsUtils.js";import{globalCss as w}from"./support/globalCss.js";import{onResize as b}from"./support/widgetUtils.js";import{messageBundle as k}from"./support/decorators/messageBundle.js";import{tsx as S,tsxFragment as M}from"./support/jsxFactory.js";var B;!function(t){t.Sketch="sketch",t.SketchCancel="sketch-cancel",t.SketchDone="sketch-done",t.Select="select",t.SelectCancel="select-cancel"}(B||(B={}));const E=[{type:B.Select},{type:B.Sketch}],P={[v.None]:null,[v.NoValidInput]:"noProfile",[v.NoVisibleProfiles]:"noProfile",[v.RefinedButNoChartData]:"noProfile",[v.TooComplex]:"tooComplex",[v.UnknownError]:"unknown",[v.InvalidGeometry]:"invalidGeometry",[v.InvalidElevationInfo]:"invalidElevationInfo"},j=Symbol("resize-observer-handle");let U=class extends d{constructor(t,e){super(t,e),this.viewModel=null,this.visibleElements=new m,this.iconClass=p.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this._chartContainer=null,this._chart=null,this._chartInitTask=null,this._chartIsRefined=!1,this._width=0,this._zoomOutButtonVisible=!1,this._getChartUpdateParamsMemoized=r(((t,e,i,s)=>({chart:t,data:e,stationary:i,messages:s}))),this._onZoomOutButtonClick=()=>{this._chart?.zoomOut()},this._onClearButtonClick=()=>{this.viewModel.clear()},t?.viewModel||(this._defaultViewModel=new u({view:t?.view}),this.viewModel=this._defaultViewModel)}loadDependencies(){return y({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")})}postInitialize(){this.addHandles([a((()=>({container:this._chartContainer,width:this._width})),(({container:t,width:e})=>{this._destroyChart(),null!=t&&e>0&&this._initializeChart(t)}),l),a((()=>this._chartUpdateParams),(()=>this._updateChart(this._chartUpdateParams)),l)])}destroy(){this._destroyChart(),null!=this._defaultViewModel&&this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}get input(){return this.viewModel.input}set input(t){this.viewModel.input=t}get profiles(){return this.viewModel.profiles}set profiles(t){this.viewModel.profiles=t}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(t){this.viewModel.unitOptions=t}get unit(){return this.viewModel.unit}set unit(t){this.viewModel.unit=t}get geodesicDistanceThreshold(){return this.viewModel.geodesicDistanceThreshold}set geodesicDistanceThreshold(t){this.viewModel.geodesicDistanceThreshold=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get visible(){return this.viewModel.visible}set visible(t){this.viewModel.visible=t}get _portrait(){return this._width<f().portraitModePixelBreakpoint}get _chartUpdateParams(){const t=this.view;return this._getChartUpdateParamsMemoized(this._chart,this.viewModel.chartData,null==t||t.stationary,this._chartMessages)}get _chartMessages(){return{...this.messagesUnits,...this.messages}}get _profilesArray(){return this.profiles.toArray()}render(){const{viewModel:t,visible:e}=this;return S("div",{"aria-label":this.messages.widgetLabel,class:this.classes({[p.base]:e,[w.widget]:e,[w.panel]:e,[w.widgetDisabled]:e&&"disabled"===t.state,[p.portrait]:this._portrait,[p.refined]:1===t.progress}),key:this},S("div",{afterCreate:this._onContentWrapperAfterCreate,afterRemoved:this._onContentWrapperRemoved,bind:this,key:"content-wrapper"},e?this._renderContentForState():null))}_renderContentForState(){switch(this.viewModel.state){case g.Ready:return this._renderContentForReadyState();case g.Selecting:return this._renderContentForSelectingState();case g.Creating:return this._renderContentForCreatingState();case g.Selected:return this._renderContentForSelectedState();case g.Created:return this._renderContentForCreatedState();case g.Disabled:return this._renderContentForReadyState()}}_renderContentForReadyState(){const{sketchButton:t,selectButton:e}=this.visibleElements,i=this.messages;let s;return s=t&&e?i.readyPrompt:t?i.readyPromptCreateOnly:e?i.readyPromptSelectOnly:i.errors?.noProfile,this._renderContent({prompt:s,chart:!1,actions:E})}_renderContentForSelectingState(){const t=this.view;if(null==t)return null;const e=this.messages[`selectingPrompt-${t.type}`];return this._renderContent({prompt:e,chart:!1,actions:[{type:B.SelectCancel}]})}_renderContentForCreatingState(){const{view:t,viewModel:e}=this;if(null==t)return null;const i=e.hasVertices?[{type:B.SketchCancel},{type:B.SketchDone,disabled:!e.tool.interaction.canStopCreating}]:[{type:B.Select},{type:B.Sketch,disabled:!0}];if(e.errorState===v.NoValidInput){const e=this.messages[`creatingPrompt-${t.type}`];return this._renderContent({chart:!1,actions:i,prompt:e})}const s=this._getErrorMessage();return s?this._renderContent({chart:!1,actions:i,prompt:s}):this._renderContent({chart:!0,actions:i})}_renderContentForSelectedState(){const t=this._getErrorMessage();return t?this._renderContent({chart:!1,actions:E,prompt:t}):this._renderContent({chart:!0,actions:E})}_renderContentForCreatedState(){const t=this._getErrorMessage();return t?this._renderContent({chart:!1,actions:E,prompt:t}):this._renderContent({chart:!0,actions:E})}_getErrorMessage(){const t=P[this.viewModel.errorState];return t?this.messages?.errors?.[t]:null}_renderContent(t){const e=null!=t.prompt?this._renderPrompt(t.prompt):t.chart&&this._renderChart(),{viewModel:i}=this,s=null!=i.input;return S(M,null,S("header",{class:p.header,key:"header"},this._zoomOutButtonVisible?this._renderZoomOutButton():null,this.visibleElements.clearButton&&s?this._renderClearButton():null,this.visibleElements.settingsButton?S(C,{messages:this.messages,uniformChartScaling:i.uniformChartScaling,unit:i.unit,unitOptions:i.unitOptions,visibleElements:this.visibleElements,onUniformChartScalingChange:t=>i.uniformChartScaling=t,onUnitChange:t=>i.unit=t}):null),S("div",{class:p.mainContainer,key:"main-container"},e),this.visibleElements.legend?S(_,{effectiveUnits:i.effectiveUnits,messages:this.messages,profiles:this._profilesArray}):null,this._renderActions(t))}_renderZoomOutButton(){return S("calcite-action",{appearance:"transparent",class:p.zoomOutButton,"data-testid":"zoom-out-button",icon:"magnifying-glass-minus",key:"zoom-out",onclick:this._onZoomOutButtonClick,scale:"s",text:this.messages.zoomOut})}_renderClearButton(){return S("calcite-action",{appearance:"transparent",class:p.clearButton,"data-testid":"clear-button",icon:"trash",key:"clear-profile",onclick:this._onClearButtonClick,scale:"s",text:this.messages.clearProfile})}_renderPrompt(t){return[S("div",{bind:this,class:p.promptContainer,key:"prompt-container"},S("p",null,t))]}_renderChart(){if(!this.visibleElements.chart)return S("div",{class:p.chartContainer,key:"empty-chart-container"});const t=this._chartIsRefined||this._canRenderChart();if(!t)return S(M,null,this._renderSpinner({size:"large"}),S("div",{class:p.chartContainer,key:"chart-container-empty"}));const{chartData:e,progress:i}=this.viewModel;return S(M,null,null!=e&&i>0&&i<1?this._renderSpinner({size:t?"small":"large"}):null,S("div",{afterCreate:this._onChartContainerAfterCreate,afterRemoved:this._onChartContainerRemoved,bind:this,class:p.chartContainer,key:"chart-container"}))}_renderSpinner(t){const e="small"===t.size;return S("calcite-loader",{afterCreate:this._onSpinnerAfterCreate,class:this.classes(p.chartSpinner,e&&p.chartSpinnerSmall),exitAnimation:this._onSpinnerExit,inline:e,key:"spinner",label:"",scale:"s"})}_onSpinnerAfterCreate(t){requestAnimationFrame((()=>t.classList.add(p.chartSpinnerVisible)))}_onSpinnerExit(t,e){t.classList.remove(p.chartSpinnerVisible),setTimeout(e,200)}_canRenderChart(){const t=this.viewModel.chartData;if(null==t)return!1;if(!this.viewModel.inputIsSketched)return t.refined;let e=0;for(const{samples:i}of t.lines)e+=null!=i?i.length:0;return t.refined||e<=f().largeChartSamples}_renderActions({actions:t}){const e=t.map((t=>{switch(t.type){case B.Sketch:return this.visibleElements.sketchButton&&this._renderAction({action:t,className:p.sketchButton,label:this.messages.sketchButtonLabel,onClick:this._onSketchButtonClick,primary:!0});case B.SketchCancel:return this.visibleElements.sketchButton&&this._renderAction({action:t,onClick:this._onCancelButtonClick,className:p.sketchCancelButton,label:this.messagesCommon.cancel,primary:!1});case B.SketchDone:return this.visibleElements.sketchButton&&this._renderAction({action:t,onClick:this._onDoneButtonClick,className:p.sketchDoneButton,label:this.messagesCommon.done,primary:!0});case B.Select:return this.visibleElements.selectButton&&this._renderAction({action:t,onClick:this._onSelectButtonClick,className:p.selectButton,label:this.messages.selectButtonLabel,primary:!1});case B.SelectCancel:return this.visibleElements.selectButton&&this._renderAction({action:t,onClick:this._onCancelButtonClick,className:p.selectCancelButton,label:this.messagesCommon.cancel,primary:!1})}})).filter(Boolean);return e.length?S("footer",{class:p.footer,key:"footer"},e):null}_renderAction({action:t,className:e,label:i,onClick:s,primary:r}){return S("calcite-button",{appearance:r?"solid":"outline-fill",bind:this,class:this.classes(p.actionButton,e),disabled:t.disabled,key:`action-${t.type}`,onclick:s},i)}_onSketchButtonClick(){this.viewModel.start({mode:"sketch"})}_onSelectButtonClick(){this.viewModel.start({mode:"select"})}_onCancelButtonClick(){this.viewModel.cancel()}_onDoneButtonClick(){this.viewModel.stop()}_onContentWrapperAfterCreate(t){const e=b(t,(t=>{this._width=t.contentRect.width}));this.addHandles(e,j)}_onContentWrapperRemoved(){this.removeHandles(j)}_updateChart(t){const{data:e,chart:i,messages:s,stationary:r}=t;null!=i&&null!=s&&r&&this._canRenderChart()&&(i.update(t),this._chartIsRefined=null!=e&&e.refined)}_onChartContainerAfterCreate(t){this._chartContainer=t}_onChartContainerRemoved(){this._chartContainer=null}_initializeChart(t){i(this._chartInitTask),this._chartInitTask=e((async e=>{const{createChart:i}=await import("./ElevationProfile/support/chartUtils.js");n(e);const r=await i({container:t,abortOptions:{signal:e},onRangeChange:(t,e)=>{this._zoomOutButtonVisible=1!==t||1!==e},onCursorPositionChange:t=>{this.viewModel.hoveredChartPosition=t}});if(e.aborted)throw s(r),o();this._chart=r,this._updateChart(this._chartUpdateParams)}))}_destroyChart(){this._chartInitTask=i(this._chartInitTask),this._chart=s(this._chart),this._chartIsRefined=!1}};t([c({type:u})],U.prototype,"viewModel",void 0),t([c()],U.prototype,"view",null),t([c()],U.prototype,"input",null),t([c()],U.prototype,"profiles",null),t([c()],U.prototype,"unitOptions",null),t([c()],U.prototype,"unit",null),t([c()],U.prototype,"geodesicDistanceThreshold",null),t([c({type:m,nonNullable:!0})],U.prototype,"visibleElements",void 0),t([c()],U.prototype,"iconClass",void 0),t([c()],U.prototype,"icon",void 0),t([c()],U.prototype,"label",null),t([c()],U.prototype,"visible",null),t([c(),k("esri/widgets/ElevationProfile/t9n/ElevationProfile")],U.prototype,"messages",void 0),t([c(),k("esri/t9n/common")],U.prototype,"messagesCommon",void 0),t([c(),k("esri/core/t9n/Units")],U.prototype,"messagesUnits",void 0),t([c()],U.prototype,"_chartContainer",void 0),t([c()],U.prototype,"_chart",void 0),t([c()],U.prototype,"_chartInitTask",void 0),t([c()],U.prototype,"_chartIsRefined",void 0),t([c()],U.prototype,"_width",void 0),t([c()],U.prototype,"_portrait",null),t([c()],U.prototype,"_zoomOutButtonVisible",void 0),t([c()],U.prototype,"_chartUpdateParams",null),t([c()],U.prototype,"_chartMessages",null),t([c()],U.prototype,"_profilesArray",null),U=t([h("esri.widgets.ElevationProfile")],U);const I=U;export{I as default};
package/widgets/Expand.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{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import s from"./Expand/ExpandViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{isWidget as d,hasDomNode as l}from"./support/widget.js";import{tsx as p}from"./support/jsxFactory.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{accessibleHandler as u}from"./support/decorators/accessibleHandler.js";const h="esri-expand",m={base:h,modeAuto:`${h}--auto`,modeDrawer:`${h}--drawer`,modeFloating:`${h}--floating`,container:`${h}__container`,containerExpanded:`${h}__container--expanded`,panel:`${h}__panel`,icon:"esri-collapse__icon",iconExpanded:`${h}__icon--expanded`,iconNumber:`${h}__icon-number`,iconNumberExpanded:`${h}__icon-number--expanded`,content:`${h}__content`,contentExpanded:`${h}__content--expanded`,expandMask:`${h}__mask`,expandMaskExpanded:`${h}__mask--expanded`};let x=class extends n{constructor(e,t){super(e,t),this.closeOnEsc=!0,this.collapseIcon=null,this.collapseTooltip="",this.content="",this.expandTooltip="",this.iconClass=null,this.icon=null,this.iconNumber=0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.viewModel=new s,this._handleKeyDown=e=>{const{closeOnEsc:t,_toggleButtonEl:o,expanded:n}=this;if(!n||!t||e.target===o||"Escape"!==e.key)return;("function"==typeof t?t(e):t)&&(this.expanded=!1,o?.focus())}}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get contentId(){return`${this.id}_controls_content`}get expandTitle(){const{expanded:e,messagesCommon:t,collapseTooltip:o,expandTooltip:n}=this;return(e?o||t?.collapse:n||t?.expand)??""}get autoCollapse(){return this.viewModel.autoCollapse}set autoCollapse(e){this.viewModel.autoCollapse=e}get collapseIconClass(){return i.collapse}set collapseIconClass(e){this._overrideIfSome("collapseIconClass",e)}get expanded(){return this.viewModel.expanded}set expanded(e){this.viewModel.expanded=e}get expandIconClass(){return d(this.content)?this.content.iconClass:i.expand}set expandIconClass(e){this._overrideIfSome("expandIconClass",e)}get expandIcon(){return d(this.content)?this.content.icon:void 0}set expandIcon(e){this._overrideIfSome("expandIcon",e)}get group(){return this.viewModel.group}set group(e){this.viewModel.group=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[m.modeAuto]:"auto"===e,[m.modeDrawer]:"drawer"===e,[m.modeFloating]:"floating"===e};return p("div",{class:this.classes(m.base,a.widget,t),onkeydown:this._handleKeyDown},this._renderMask(),this._renderContainer())}_renderContainer(){const{expanded:e}=this,t={[m.containerExpanded]:e};return p("div",{class:this.classes(m.container,t)},this._renderPanel(),this._renderContent())}_renderMask(){const{expanded:e}=this,t={[m.expandMaskExpanded]:e};return p("div",{bind:this,onclick:this._toggle,class:this.classes(m.expandMask,t)})}_renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?p("span",{key:"expand__icon-number",class:m.iconNumber},t):null}_renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?p("span",{key:"expand__expand-icon-number",class:this.classes(m.iconNumber,m.iconNumberExpanded)},e):null}_renderIcon(){const e=(this.expanded?this.collapseIcon:this.expandIcon)??"";return p("calcite-icon",{key:"icon",icon:e,scale:"s"})}_renderLegacyIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[m.iconExpanded]:o};return null!=t&&(n[t]=!o),null!=e&&(n[e]=e===t||o),p("span",{key:"legacy-icon","aria-hidden":"true",class:this.classes(m.icon,n)})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.expandTitle)}_renderExpandButton(){const{expanded:e,expandTitle:t,expandIcon:o,collapseIcon:n,contentId:s}=this;return p("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":s,"aria-expanded":e?"true":"false",bind:this,class:a.widgetButton,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:0,title:t},this._renderBadgeNumber(),!e&&null!=o||e&&null!=n?this._renderIcon():this._renderLegacyIcon(),this._renderTitle())}_renderPanel(){return p("div",{class:m.panel},this._renderExpandButton(),this._renderPanelNumber())}_renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[m.contentExpanded]:e},s={id:t,role:"region",class:this.classes(m.content,n)};return"string"==typeof o?p("div",{key:"content__string",innerHTML:o,...s}):d(o)?p("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?p("div",{key:"content__html-element",bind:o,afterCreate:this._attachToNode,...s}):l(o)?p("div",{key:"content__node",bind:o.domNode,afterCreate:this._attachToNode,...s}):null}_toggle(){this.toggle()}_attachToNode(e){const t=this;e.appendChild(t)}_storeToggleButtonEl(e){this._toggleButtonEl=e}};e([t({readOnly:!0})],x.prototype,"contentId",null),e([t({readOnly:!0})],x.prototype,"expandTitle",null),e([t()],x.prototype,"autoCollapse",null),e([t()],x.prototype,"closeOnEsc",void 0),e([t()],x.prototype,"collapseIconClass",null),e([t()],x.prototype,"collapseIcon",void 0),e([t()],x.prototype,"collapseTooltip",void 0),e([t()],x.prototype,"content",void 0),e([t()],x.prototype,"expanded",null),e([t()],x.prototype,"expandIconClass",null),e([t()],x.prototype,"expandIcon",null),e([t()],x.prototype,"expandTooltip",void 0),e([t()],x.prototype,"group",null),e([t()],x.prototype,"iconClass",void 0),e([t()],x.prototype,"icon",void 0),e([t()],x.prototype,"iconNumber",void 0),e([t()],x.prototype,"label",null),e([t(),c("esri/widgets/Expand/t9n/Expand")],x.prototype,"messages",void 0),e([t(),c("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([t()],x.prototype,"mode",void 0),e([t()],x.prototype,"view",null),e([t({type:s})],x.prototype,"viewModel",void 0),e([u()],x.prototype,"_toggle",null),x=e([o("esri.widgets.Expand")],x);const _=x;export{_ as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import s from"./Expand/ExpandViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{isWidget as d,hasDomNode as l}from"./support/widget.js";import{tsx as p}from"./support/jsxFactory.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{accessibleHandler as u}from"./support/decorators/accessibleHandler.js";const h="esri-expand",m={base:h,modeAuto:`${h}--auto`,modeDrawer:`${h}--drawer`,modeFloating:`${h}--floating`,container:`${h}__container`,containerExpanded:`${h}__container--expanded`,panel:`${h}__panel`,icon:"esri-collapse__icon",iconExpanded:`${h}__icon--expanded`,iconNumber:`${h}__icon-number`,iconNumberExpanded:`${h}__icon-number--expanded`,content:`${h}__content`,contentExpanded:`${h}__content--expanded`,expandMask:`${h}__mask`,expandMaskExpanded:`${h}__mask--expanded`};let x=class extends n{constructor(e,t){super(e,t),this.closeOnEsc=!0,this.collapseIcon=null,this.collapseTooltip="",this.content="",this.expandTooltip="",this.iconClass=null,this.icon=null,this.iconNumber=0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.viewModel=new s,this._handleKeyDown=e=>{const{closeOnEsc:t,_toggleButtonEl:o,expanded:n}=this;if(!n||!t||e.target===o||"Escape"!==e.key)return;("function"==typeof t?t(e):t)&&(this.expanded=!1,o?.focus())}}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get contentId(){return`${this.id}_controls_content`}get expandTitle(){const{expanded:e,messagesCommon:t,collapseTooltip:o,expandTooltip:n}=this;return(e?o||t?.collapse:n||t?.expand)??""}get autoCollapse(){return this.viewModel.autoCollapse}set autoCollapse(e){this.viewModel.autoCollapse=e}get collapseIconClass(){return i.collapse}set collapseIconClass(e){this._overrideIfSome("collapseIconClass",e)}get expanded(){return this.viewModel.expanded}set expanded(e){this.viewModel.expanded=e}get expandIconClass(){return d(this.content)?this.content.iconClass:i.expand}set expandIconClass(e){this._overrideIfSome("expandIconClass",e)}get expandIcon(){return d(this.content)?this.content.icon:void 0}set expandIcon(e){this._overrideIfSome("expandIcon",e)}get group(){return this.viewModel.group}set group(e){this.viewModel.group=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[m.modeAuto]:"auto"===e,[m.modeDrawer]:"drawer"===e,[m.modeFloating]:"floating"===e};return p("div",{class:this.classes(m.base,a.widget,t),onkeydown:this._handleKeyDown},this._renderMask(),this._renderContainer())}_renderContainer(){const{expanded:e}=this,t={[m.containerExpanded]:e};return p("div",{class:this.classes(m.container,t)},this._renderPanel(),this._renderContent())}_renderMask(){const{expanded:e}=this,t={[m.expandMaskExpanded]:e};return p("div",{bind:this,class:this.classes(m.expandMask,t),onclick:this._toggle})}_renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?p("span",{class:m.iconNumber,key:"expand__icon-number"},t):null}_renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?p("span",{class:this.classes(m.iconNumber,m.iconNumberExpanded),key:"expand__expand-icon-number"},e):null}_renderIcon(){const e=(this.expanded?this.collapseIcon:this.expandIcon)??"";return p("calcite-icon",{icon:e,key:"icon",scale:"s"})}_renderLegacyIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[m.iconExpanded]:o};return null!=t&&(n[t]=!o),null!=e&&(n[e]=e===t||o),p("span",{"aria-hidden":"true",class:this.classes(m.icon,n),key:"legacy-icon"})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.expandTitle)}_renderExpandButton(){const{expanded:e,expandTitle:t,expandIcon:o,collapseIcon:n,contentId:s}=this;return p("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":s,"aria-expanded":e?"true":"false",bind:this,class:a.widgetButton,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:0,title:t},this._renderBadgeNumber(),!e&&null!=o||e&&null!=n?this._renderIcon():this._renderLegacyIcon(),this._renderTitle())}_renderPanel(){return p("div",{class:m.panel},this._renderExpandButton(),this._renderPanelNumber())}_renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[m.contentExpanded]:e},s={id:t,role:"region",class:this.classes(m.content,n)};return"string"==typeof o?p("div",{innerHTML:o,key:"content__string",...s}):d(o)?p("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?p("div",{afterCreate:this._attachToNode,bind:o,key:"content__html-element",...s}):l(o)?p("div",{afterCreate:this._attachToNode,bind:o.domNode,key:"content__node",...s}):null}_toggle(){this.toggle()}_attachToNode(e){const t=this;e.appendChild(t)}_storeToggleButtonEl(e){this._toggleButtonEl=e}};e([t({readOnly:!0})],x.prototype,"contentId",null),e([t({readOnly:!0})],x.prototype,"expandTitle",null),e([t()],x.prototype,"autoCollapse",null),e([t()],x.prototype,"closeOnEsc",void 0),e([t()],x.prototype,"collapseIconClass",null),e([t()],x.prototype,"collapseIcon",void 0),e([t()],x.prototype,"collapseTooltip",void 0),e([t()],x.prototype,"content",void 0),e([t()],x.prototype,"expanded",null),e([t()],x.prototype,"expandIconClass",null),e([t()],x.prototype,"expandIcon",null),e([t()],x.prototype,"expandTooltip",void 0),e([t()],x.prototype,"group",null),e([t()],x.prototype,"iconClass",void 0),e([t()],x.prototype,"icon",void 0),e([t()],x.prototype,"iconNumber",void 0),e([t()],x.prototype,"label",null),e([t(),c("esri/widgets/Expand/t9n/Expand")],x.prototype,"messages",void 0),e([t(),c("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([t()],x.prototype,"mode",void 0),e([t()],x.prototype,"view",null),e([t({type:s})],x.prototype,"viewModel",void 0),e([u()],x.prototype,"_toggle",null),x=e([o("esri.widgets.Expand")],x);const _=x;export{_ as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as t}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import s from"./FeatureContent/FeatureContentViewModel.js";import{shouldOpenInNewTab as a}from"./support/featureUtils.js";import{isWidget as i}from"../support/widget.js";import{tsx as d}from"../support/jsxFactory.js";const n="esri-feature-content",c={base:n,loaderContainer:`${n}__loader-container`,loader:`${n}__loader`};let l=class extends o{constructor(e,r){super(e,r),this.viewModel=null,this._addTargetToAnchors=e=>{Array.from(e.querySelectorAll("a")).forEach((e=>{a(e.href)&&!e.hasAttribute("target")&&e.setAttribute("target","_blank")}))}}get creator(){return this.viewModel?.creator}set creator(e){this.viewModel&&(this.viewModel.creator=e)}get graphic(){return this.viewModel?.graphic}set graphic(e){this.viewModel&&(this.viewModel.graphic=e)}render(){const e=this.viewModel?.state;return d("div",{class:c.base},"loading"===e?this._renderLoading():this._renderCreated())}_renderLoading(){return d("div",{class:c.loaderContainer,key:"loader"},d("div",{class:c.loader}))}_renderCreated(){const e=this.viewModel?.created;return e?e instanceof HTMLElement?d("div",{key:e,bind:e,afterCreate:this._attachToNode}):i(e)?d("div",{key:e},!e.destroyed&&e.render()):d("div",{key:e,innerHTML:e,afterCreate:this._addTargetToAnchors}):null}_attachToNode(e){const r=this;e.appendChild(r)}};e([r()],l.prototype,"creator",null),e([r()],l.prototype,"graphic",null),e([r({type:s})],l.prototype,"viewModel",void 0),l=e([t("esri.widgets.Feature.FeatureContent")],l);const p=l;export{p as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.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 t}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import s from"./FeatureContent/FeatureContentViewModel.js";import{shouldOpenInNewTab as a}from"./support/featureUtils.js";import{isWidget as i}from"../support/widget.js";import{tsx as d}from"../support/jsxFactory.js";const n="esri-feature-content",c={base:n,loaderContainer:`${n}__loader-container`,loader:`${n}__loader`};let l=class extends o{constructor(e,r){super(e,r),this.viewModel=null,this._addTargetToAnchors=e=>{Array.from(e.querySelectorAll("a")).forEach((e=>{a(e.href)&&!e.hasAttribute("target")&&e.setAttribute("target","_blank")}))}}get creator(){return this.viewModel?.creator}set creator(e){this.viewModel&&(this.viewModel.creator=e)}get graphic(){return this.viewModel?.graphic}set graphic(e){this.viewModel&&(this.viewModel.graphic=e)}render(){const e=this.viewModel?.state;return d("div",{class:c.base},"loading"===e?this._renderLoading():this._renderCreated())}_renderLoading(){return d("div",{class:c.loaderContainer,key:"loader"},d("div",{class:c.loader}))}_renderCreated(){const e=this.viewModel?.created;return e?e instanceof HTMLElement?d("div",{afterCreate:this._attachToNode,bind:e,key:e}):i(e)?d("div",{key:e},!e.destroyed&&e.render()):d("div",{afterCreate:this._addTargetToAnchors,innerHTML:e,key:e}):null}_attachToNode(e){const r=this;e.appendChild(r)}};e([r()],l.prototype,"creator",null),e([r()],l.prototype,"graphic",null),e([r({type:s})],l.prototype,"viewModel",void 0),l=e([t("esri.widgets.Feature.FeatureContent")],l);const p=l;export{p as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{watch as t,initial as o}from"../../core/reactiveUtils.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 r}from"../../core/accessorSupport/decorators/subclass.js";import i from"../Widget.js";import n from"./FeatureContent.js";import d from"./FeatureFields.js";import l from"./FeatureMedia.js";import a from"./FeatureExpression/FeatureExpressionViewModel.js";import{globalCss as p}from"../support/globalCss.js";import{legacyIcon as c}from"../support/legacyIcon.js";import"../support/widgetUtils.js";import{tsx as m}from"../support/jsxFactory.js";const u="esri-feature",g={base:`${u}-expression`,loadingSpinnerContainer:`${u}__loading-container`,spinner:`${u}__loading-spinner`};let h=class extends i{constructor(e,t){super(e,t),this._contentWidget=null,this.viewModel=new a}initialize(){this.addHandles(t((()=>this.viewModel?.contentElementViewModel),(()=>this._setupExpressionWidget()),o))}destroy(){this._destroyContentWidget()}render(){const{state:e}=this.viewModel;return m("div",{class:g.base},"loading"===e?this._renderLoading():"disabled"===e?null:this._contentWidget?.render())}_renderLoading(){return m("div",{key:"loading-container",class:g.loadingSpinnerContainer},m("span",{class:this.classes(c.loadingIndicator,p.rotating,g.spinner)}))}_destroyContentWidget(){const{_contentWidget:e}=this;e&&(e.viewModel=null,e.destroy()),this._contentWidget=null}_setupExpressionWidget(){const{contentElementViewModel:e,contentElement:t}=this.viewModel,o=t?.type;this._destroyContentWidget();const s=e?"fields"===o?new d({viewModel:e}):"media"===o?new l({viewModel:e}):"text"===o?new n({viewModel:e}):null:null;this._contentWidget=s,this.scheduleRender()}};e([s({type:a})],h.prototype,"viewModel",void 0),h=e([r("esri.widgets.Feature.FeatureExpression")],h);const w=h;export{w as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{watch as t,initial as o}from"../../core/reactiveUtils.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 r}from"../../core/accessorSupport/decorators/subclass.js";import i from"../Widget.js";import n from"./FeatureContent.js";import d from"./FeatureFields.js";import l from"./FeatureMedia.js";import a from"./FeatureExpression/FeatureExpressionViewModel.js";import{globalCss as p}from"../support/globalCss.js";import{legacyIcon as c}from"../support/legacyIcon.js";import"../support/widgetUtils.js";import{tsx as m}from"../support/jsxFactory.js";const u="esri-feature",g={base:`${u}-expression`,loadingSpinnerContainer:`${u}__loading-container`,spinner:`${u}__loading-spinner`};let h=class extends i{constructor(e,t){super(e,t),this._contentWidget=null,this.viewModel=new a}initialize(){this.addHandles(t((()=>this.viewModel?.contentElementViewModel),(()=>this._setupExpressionWidget()),o))}destroy(){this._destroyContentWidget()}render(){const{state:e}=this.viewModel;return m("div",{class:g.base},"loading"===e?this._renderLoading():"disabled"===e?null:this._contentWidget?.render())}_renderLoading(){return m("div",{class:g.loadingSpinnerContainer,key:"loading-container"},m("span",{class:this.classes(c.loadingIndicator,p.rotating,g.spinner)}))}_destroyContentWidget(){const{_contentWidget:e}=this;e&&(e.viewModel=null,e.destroy()),this._contentWidget=null}_setupExpressionWidget(){const{contentElementViewModel:e,contentElement:t}=this.viewModel,o=t?.type;this._destroyContentWidget();const s=e?"fields"===o?new d({viewModel:e}):"media"===o?new l({viewModel:e}):"text"===o?new n({viewModel:e}):null:null;this._contentWidget=s,this.scheduleRender()}};e([s({type:a})],h.prototype,"viewModel",void 0),h=e([r("esri.widgets.Feature.FeatureExpression")],h);const w=h;export{w as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{watch as t,initial as s}from"../../core/reactiveUtils.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import l from"./FeatureFields/FeatureFieldsViewModel.js";import n from"./support/FeatureElementInfo.js";import{globalCss as d}from"../support/globalCss.js";import{autoLink as a}from"../support/uriUtils.js";import"../support/widgetUtils.js";import{messageBundle as p}from"../support/decorators/messageBundle.js";import{tsx as f}from"../support/jsxFactory.js";const u="esri-feature-fields",m={base:u,fieldHeader:`${u}__field-header`,fieldData:`${u}__field-data`,fieldDataDate:`${u}__field-data--date`};let c=class extends o{constructor(e,t){super(e,t),this._featureElementInfo=null,this.viewModel=new l,this.messages=null,this.messagesURIUtils=null}initialize(){this._featureElementInfo=new n,this.addHandles(t((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),s))}destroy(){this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get expressionInfos(){return this.viewModel.expressionInfos}set expressionInfos(e){this.viewModel.expressionInfos=e}get fieldInfos(){return this.viewModel.fieldInfos}set fieldInfos(e){this.viewModel.fieldInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return f("div",{class:m.base},this._featureElementInfo?.render(),this._renderFields())}_renderFieldInfo(e,t){const{attributes:s}=this.viewModel,r=e.fieldName,i=e.label||r,o=s?null==s[r]?"":s[r]:"",l=!(!e.format||!e.format.dateFormat),n="number"==typeof o&&!l?this._forceLTR(o):a(this.messagesURIUtils,o),d={[m.fieldDataDate]:l};return f("tr",{key:`fields-element-info-row-${r}-${t}`},f("th",{key:`fields-element-info-row-header-${r}-${t}`,class:m.fieldHeader,innerHTML:i}),f("td",{key:`fields-element-info-row-data-${r}-${t}`,class:this.classes(m.fieldData,d),innerHTML:n}))}_renderFields(){const{formattedFieldInfos:e}=this.viewModel;return e?.length?f("table",{class:d.table,summary:this.messages.fieldsSummary},f("tbody",null,e.map(((e,t)=>this._renderFieldInfo(e,t))))):null}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_forceLTR(e){return`&lrm;${e}`}};e([r()],c.prototype,"attributes",null),e([r()],c.prototype,"description",null),e([r()],c.prototype,"expressionInfos",null),e([r()],c.prototype,"fieldInfos",null),e([r()],c.prototype,"title",null),e([r({type:l,nonNullable:!0})],c.prototype,"viewModel",void 0),e([r(),p("esri/widgets/Feature/t9n/Feature")],c.prototype,"messages",void 0),e([r(),p("esri/widgets/support/t9n/uriUtils")],c.prototype,"messagesURIUtils",void 0),c=e([i("esri.widgets.Feature.FeatureFields")],c);const h=c;export{h as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{watch as t,initial as s}from"../../core/reactiveUtils.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import l from"./FeatureFields/FeatureFieldsViewModel.js";import n from"./support/FeatureElementInfo.js";import{globalCss as d}from"../support/globalCss.js";import{autoLink as a}from"../support/uriUtils.js";import"../support/widgetUtils.js";import{messageBundle as p}from"../support/decorators/messageBundle.js";import{tsx as f}from"../support/jsxFactory.js";const u="esri-feature-fields",m={base:u,fieldHeader:`${u}__field-header`,fieldData:`${u}__field-data`,fieldDataDate:`${u}__field-data--date`};let c=class extends o{constructor(e,t){super(e,t),this._featureElementInfo=null,this.viewModel=new l,this.messages=null,this.messagesURIUtils=null}initialize(){this._featureElementInfo=new n,this.addHandles(t((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),s))}destroy(){this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get expressionInfos(){return this.viewModel.expressionInfos}set expressionInfos(e){this.viewModel.expressionInfos=e}get fieldInfos(){return this.viewModel.fieldInfos}set fieldInfos(e){this.viewModel.fieldInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return f("div",{class:m.base},this._featureElementInfo?.render(),this._renderFields())}_renderFieldInfo(e,t){const{attributes:s}=this.viewModel,r=e.fieldName,i=e.label||r,o=s?null==s[r]?"":s[r]:"",l=!(!e.format||!e.format.dateFormat),n="number"==typeof o&&!l?this._forceLTR(o):a(this.messagesURIUtils,o),d={[m.fieldDataDate]:l};return f("tr",{key:`fields-element-info-row-${r}-${t}`},f("th",{class:m.fieldHeader,innerHTML:i,key:`fields-element-info-row-header-${r}-${t}`}),f("td",{class:this.classes(m.fieldData,d),innerHTML:n,key:`fields-element-info-row-data-${r}-${t}`}))}_renderFields(){const{formattedFieldInfos:e}=this.viewModel;return e?.length?f("table",{class:d.table,summary:this.messages.fieldsSummary},f("tbody",null,e.map(((e,t)=>this._renderFieldInfo(e,t))))):null}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_forceLTR(e){return`&lrm;${e}`}};e([r()],c.prototype,"attributes",null),e([r()],c.prototype,"description",null),e([r()],c.prototype,"expressionInfos",null),e([r()],c.prototype,"fieldInfos",null),e([r()],c.prototype,"title",null),e([r({type:l,nonNullable:!0})],c.prototype,"viewModel",void 0),e([r(),p("esri/widgets/Feature/t9n/Feature")],c.prototype,"messages",void 0),e([r(),p("esri/widgets/support/t9n/uriUtils")],c.prototype,"messagesURIUtils",void 0),c=e([i("esri.widgets.Feature.FeatureFields")],c);const h=c;export{h as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import"../../intl.js";import{prefersReducedMotion as t}from"../../core/a11yUtils.js";import{eventKey as i}from"../../core/events.js";import{watch as r,initial as a}from"../../core/reactiveUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{getColorsFromRenderer as n}from"../../renderers/support/utils.js";import l from"../Widget.js";import d from"./FeatureMedia/FeatureMediaViewModel.js";import m from"./support/FeatureElementInfo.js";import{shouldOpenInNewTab as c}from"./support/featureUtils.js";import{loadCalciteComponents as p}from"../support/componentsUtils.js";import{isRTL as h}from"../support/widgetUtils.js";import{messageBundle as u}from"../support/decorators/messageBundle.js";import{tsx as f}from"../support/jsxFactory.js";import{isDarkTheme as _}from"../../support/themeUtils.js";import{substitute as v}from"../../intl/substitute.js";const M="esri-feature-media",g={base:M,mediaContainer:`${M}__container`,mediaItemContainer:`${M}__item-container`,mediaItem:`${M}__item`,mediaItemText:`${M}__item-text`,mediaItemTitle:`${M}__item-title`,mediaItemCaption:`${M}__item-caption`,mediaNavigation:`${M}__item-navigation`,mediaPagination:`${M}__pagination`,mediaPaginationText:`${M}__pagination-text`,mediaPrevious:`${M}__previous`,mediaPreviousIconLTR:`${M}__previous-icon`,mediaPreviousIconRTL:`${M}__previous-icon--rtl`,mediaNext:`${M}__next`,mediaNextIconLTR:`${M}__next-icon`,mediaNextIconRTL:`${M}__next-icon--rtl`,mediaChart:`${M}__chart`,mediaPaginationButton:`${M}__pagination-button`,mediaPaginationIcon:`${M}__pagination-icon`,mediaChartRendered:`${M}__chart--rendered`},w=15,I="category",A="value",y="rgba(50, 50, 50, 1)",C=250,x=500,T=200;let b=class extends l{constructor(e,t){super(e,t),this._refreshTimer=null,this._refreshIntervalInfo=null,this._featureElementInfo=null,this._chartRootMap=new WeakMap,this.viewModel=new d,this.messages=null,this._disposeChart=e=>{this._chartRootMap.get(e)?.dispose(),this._chartRootMap.delete(e)},this._createChart=async e=>{const{destroyed:t,viewModel:i}=this;if(t||!i||!e)return;const{createRoot:r}=await import("../support/chartUtilsAm5.js"),a=await r(e);this._chartRootMap.set(e,a),this._renderChart({mediaInfo:i.activeMediaInfo,root:a})}}initialize(){this._featureElementInfo=new m,this.addHandles([r((()=>[this.viewModel?.activeMediaInfo,this.viewModel?.activeMediaInfoIndex]),(()=>this._setupMediaRefreshTimer()),a),r((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),a)])}loadDependencies(){return p({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}destroy(){this._clearMediaRefreshTimer(),this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get activeMediaInfoIndex(){return this.viewModel.activeMediaInfoIndex}set activeMediaInfoIndex(e){this.viewModel.activeMediaInfoIndex=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get fieldInfoMap(){return this.viewModel.fieldInfoMap}set fieldInfoMap(e){this.viewModel.fieldInfoMap=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get mediaInfos(){return this.viewModel.mediaInfos}set mediaInfos(e){this.viewModel.mediaInfos=e}get popupTemplate(){return this.viewModel.popupTemplate}set popupTemplate(e){this.viewModel.popupTemplate=e}get relatedInfos(){return this.viewModel.relatedInfos}set relatedInfos(e){this.viewModel.relatedInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return f("div",{bind:this,class:g.base,onkeyup:this._handleMediaKeyup},this._featureElementInfo?.render(),this._renderMedia())}_renderMedia(){const{formattedMediaInfoCount:e,activeMediaInfoIndex:t}=this.viewModel,i=this._renderMediaText();return e?f("div",{key:"media-element-container",class:g.mediaContainer},this._renderMediaInfo(),f("div",{class:g.mediaNavigation},i,e>1?f("div",{class:g.mediaPagination},this._renderMediaPageButton("previous"),f("span",{class:g.mediaPaginationText},v(this.messages.pageText,{index:t+1,total:e})),this._renderMediaPageButton("next")):null)):null}_renderMediaText(){const{activeMediaInfo:e}=this.viewModel;if(!e)return null;const t=e&&e.title?f("div",{key:"media-title",class:g.mediaItemTitle,innerHTML:e.title}):null,i=e&&e.caption?f("div",{key:"media-caption",class:g.mediaItemCaption,innerHTML:e.caption}):null;return t||i?f("div",{key:"media-text",class:g.mediaItemText},t,i):null}_renderImageMediaInfo(e){const{_refreshIntervalInfo:t}=this,{activeMediaInfoIndex:i,formattedMediaInfoCount:r}=this.viewModel,{value:a,refreshInterval:s,altText:o,title:n,type:l}=e,{sourceURL:d,linkURL:m}=a,p=c(m??void 0)?"_blank":"_self",h="_blank"===p?"noreferrer":"",u=s?t:null,_=u?u.timestamp:0,v=u?u.sourceURL:d,M=f("img",{alt:o||n,key:`media-${l}-${i}-${r}-${_}`,src:v??void 0});return(m?f("a",{title:n,href:m,rel:h,target:p},M):null)??M}_renderChartMediaInfo(e){const{activeMediaInfoIndex:t,formattedMediaInfoCount:i}=this.viewModel;return f("div",{key:`media-${e.type}-${t}-${i}`,bind:this,class:g.mediaChart,afterCreate:this._createChart,afterRemoved:this._disposeChart})}_renderMediaInfoType(){const{activeMediaInfo:e}=this.viewModel;return e?"image"===e.type?this._renderImageMediaInfo(e):e.type.includes("chart")?this._renderChartMediaInfo(e):null:null}_renderMediaInfo(){const{activeMediaInfo:e}=this.viewModel;return e?f("div",{key:"media-container",class:g.mediaItemContainer},f("div",{key:"media-item-container",class:g.mediaItem},this._renderMediaInfoType())):null}_renderMediaPageButton(e){if(this.viewModel.formattedMediaInfoCount<2)return null;const t="previous"===e,i=t?this.messages.previous:this.messages.next,r=t?"chevron-left":"chevron-right",a=t?"media-previous":"media-next",s=t?this._previous:this._next;return f("button",{type:"button",key:a,title:i,"aria-label":i,tabIndex:0,class:g.mediaPaginationButton,bind:this,onclick:s},f("calcite-icon",{class:g.mediaPaginationIcon,scale:"s",icon:r}))}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_next(){this.viewModel.next()}_previous(){this.viewModel.previous()}_getRenderer(){if(!this.viewModel)return;const{isAggregate:e,layer:t}=this.viewModel;return e&&t?.featureReduction&&"renderer"in t.featureReduction?t.featureReduction.renderer:t?.renderer}async _getSeriesColors(e){const{colorAm5:t}=await import("./FeatureMedia/chartCommon.js"),i=new Map;return e.forEach((e=>{e.color&&i.set(e,t(e.color.toCss(!0)))})),i}async _getRendererColors(){const{colorAm5:e}=await import("./FeatureMedia/chartCommon.js"),t=new Map,i=this._getRenderer(),r="default";if(!i)return t;const a=await n(i);a.delete(r);return Array.from(a.values()).every((e=>1===e?.length))?(Array.from(a.keys()).forEach((i=>{const r=a.get(i)?.[0]?.toCss(!0);r&&t.set(i,e(r))})),t):t}_handleMediaKeyup(e){const t=i(e);"ArrowLeft"===t&&(e.stopPropagation(),this.viewModel.previous()),"ArrowRight"===t&&(e.stopPropagation(),this.viewModel.next())}_canAnimateChart(){return!!this.viewModel&&(!!this.viewModel.abilities.chartAnimation&&!t())}_getChartAnimationMS(){return this._canAnimateChart()?C:0}_getChartSeriesAnimationMS(){return this._canAnimateChart()?x:0}async _renderChart(e){const{root:t,mediaInfo:i}=e,{value:r,type:a}=i,{ResponsiveThemeAm5:s,DarkThemeAm5:o,AnimatedThemeAm5:n,ColorSetAm5:l,ThemeAm5:d,esriChartColorSet:m}=await import("./FeatureMedia/chartCommon.js"),c=d.new(t);c.rule("ColorSet").set("colors",m),c.rule("ColorSet").set("reuse",!0);const p=[s.new(t),c];_()&&p.push(o.new(t)),this._canAnimateChart()&&p.push(n.new(t)),t.setThemes(p);const h=await this._getRendererColors(),u=await this._getSeriesColors(r.series),f=l.new(t,{}),v=u.get(r.series[0]),M=v?{lineSettings:{stroke:v}}:void 0,g=r.series.map(((e,t)=>{const i=u.get(e)||h.get(e.fieldName)||f.getIndex(t);return{[I]:e.tooltip,[A]:e.value,columnSettings:{fill:i,stroke:i},...M}})).filter((e=>"pie-chart"!==a||null!=e.value&&e.value>0));"pie-chart"===a?this._createPieChart(e,g):this._createXYChart(e,g)}_getDirection(){return h(this.container)?"rtl":"ltr"}_isInversed(){return!!h(this.container)}async _customizeChartTooltip(e,t="horizontal"){const{colorAm5:i}=await import("./FeatureMedia/chartCommon.js");e.setAll({pointerOrientation:t}),e.get("background")?.setAll({stroke:i(y)}),e.label.setAll({direction:this._getDirection(),oversizedBehavior:"wrap",maxWidth:T})}async _createPieChart(e,t){const{TooltipAm5:i}=await import("./FeatureMedia/chartCommon.js"),{PieChartAm5:r,PieSeriesAm5:a}=await import("./FeatureMedia/pieChart.js"),{mediaInfo:s,root:o}=e,{title:n}=s,l=5,d=s?.altText||s?.title||"",m=o.container.children.push(r.new(o,{ariaLabel:d,focusable:!0,paddingBottom:l,paddingTop:l,paddingLeft:l,paddingRight:l})),c="{category}: {valuePercentTotal.formatNumber('0.00')}%\n ({value})",p=i.new(o,{labelText:c}),h=m.series.push(a.new(o,{name:n,valueField:A,categoryField:I,tooltip:p}));h.ticks.template.set("forceHidden",!0),h.labels.template.set("forceHidden",!0),h.slices.template.states.create("active",{shiftRadius:l}),this._customizeChartTooltip(p),h.slices.template.setAll({ariaLabel:c,focusable:!0,templateField:"columnSettings"}),h.data.setAll(t),h.appear(this._getChartSeriesAnimationMS()),m.appear(this._getChartAnimationMS()),m.root.dom.classList.toggle(g.mediaChartRendered,!0)}_getMinSeriesValue(e){let t=0;return e.forEach((e=>t=Math.min(e.value,t))),t}async _createColumnChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,ColumnSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{mediaInfo:m,root:c}=t,{value:p,title:h}=m;e.setAll({wheelX:"panX",wheelY:"zoomX"});const u=e.xAxes.push(s.new(c,{renderer:o.new(c,{inversed:this._isInversed()}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.yAxes.push(n.new(c,{renderer:l.new(c,{inside:!1}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const _="{categoryX}",v=r.new(c,{labelText:_}),M=e.series.push(d.new(c,{name:h,xAxis:u,yAxis:f,valueYField:A,categoryXField:I,tooltip:v}));this._customizeChartTooltip(v),M.columns.template.setAll({ariaLabel:_,focusable:!0,templateField:"columnSettings"}),p.series.length>w&&e.set("scrollbarX",a.new(c,{orientation:"horizontal"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createBarChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,ColumnSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{mediaInfo:m,root:c}=t,{value:p,title:h}=m;e.setAll({wheelX:"panY",wheelY:"zoomY"});const u=e.yAxes.push(s.new(c,{renderer:l.new(c,{inversed:!0}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.xAxes.push(n.new(c,{renderer:o.new(c,{inside:!1,inversed:this._isInversed()}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const _="{categoryY}",v=r.new(c,{labelText:_}),M=e.series.push(d.new(c,{name:h,xAxis:f,yAxis:u,valueXField:A,categoryYField:I,tooltip:v}));this._customizeChartTooltip(v,"vertical"),M.columns.template.setAll({ariaLabel:_,focusable:!0,templateField:"columnSettings"}),p.series.length>w&&e.set("scrollbarY",a.new(c,{orientation:"vertical"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createLineChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,LineSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{root:m,mediaInfo:c}=t,{value:p,title:h}=c;e.setAll({wheelX:"panX",wheelY:"zoomX"});const u=e.xAxes.push(s.new(m,{renderer:o.new(m,{inversed:this._isInversed()}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.yAxes.push(n.new(m,{renderer:l.new(m,{inside:!1}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const _="{categoryX}",v=r.new(m,{labelText:_}),M=e.series.push(d.new(m,{name:h,xAxis:u,yAxis:f,valueYField:A,categoryXField:I,tooltip:v}));M.strokes.template.setAll({templateField:"lineSettings"}),this._customizeChartTooltip(v,"vertical"),p.series.length>w&&e.set("scrollbarX",a.new(m,{orientation:"horizontal"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createXYChart(e,t){const{XYChartAm5:i,XYCursorAm5:r}=await import("./FeatureMedia/xyChart.js"),{root:a,mediaInfo:s}=e,{type:o}=s,n=s?.altText||s?.title||"",l=a.container.children.push(i.new(a,{ariaLabel:n,focusable:!0,panX:!0,panY:!0}));l.set("cursor",r.new(a,{})),"column-chart"===o&&await this._createColumnChart(l,e,t),"bar-chart"===o&&await this._createBarChart(l,e,t),"line-chart"===o&&await this._createLineChart(l,e,t),l.root.dom.classList.toggle(g.mediaChartRendered,!0)}_clearMediaRefreshTimer(){const{_refreshTimer:e}=this;e&&(clearTimeout(e),this._refreshTimer=null)}_updateMediaInfoTimestamp(e){const t=Date.now();this._refreshIntervalInfo={timestamp:t,sourceURL:e&&this._getImageSource(e,t)}}_setupMediaRefreshTimer(){this._clearMediaRefreshTimer();const{activeMediaInfo:e}=this.viewModel;e&&"image"===e.type&&e.refreshInterval&&this._setRefreshTimeout(e)}_setRefreshTimeout(e){const{refreshInterval:t,value:i}=e;if(!t)return;const r=6e4*t;this._updateMediaInfoTimestamp(i.sourceURL);const a=setInterval((()=>{this._updateMediaInfoTimestamp(i.sourceURL)}),r);this._refreshTimer=a}_getImageSource(e,t){const i=e.includes("?")?"&":"?",[r,a=""]=e.split("#");return`${r}${i}timestamp=${t}${a?"#":""}${a}`}};e([s()],b.prototype,"_refreshIntervalInfo",void 0),e([s()],b.prototype,"attributes",null),e([s()],b.prototype,"activeMediaInfoIndex",null),e([s()],b.prototype,"description",null),e([s()],b.prototype,"fieldInfoMap",null),e([s()],b.prototype,"layer",null),e([s()],b.prototype,"mediaInfos",null),e([s()],b.prototype,"popupTemplate",null),e([s()],b.prototype,"relatedInfos",null),e([s()],b.prototype,"title",null),e([s({type:d})],b.prototype,"viewModel",void 0),e([s(),u("esri/widgets/Feature/t9n/Feature")],b.prototype,"messages",void 0),b=e([o("esri.widgets.Feature.FeatureMedia")],b);const R=b;export{R as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import"../../intl.js";import{prefersReducedMotion as t}from"../../core/a11yUtils.js";import{eventKey as i}from"../../core/events.js";import{watch as r,initial as a}from"../../core/reactiveUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{getColorsFromRenderer as n}from"../../renderers/support/utils.js";import l from"../Widget.js";import d from"./FeatureMedia/FeatureMediaViewModel.js";import m from"./support/FeatureElementInfo.js";import{shouldOpenInNewTab as c}from"./support/featureUtils.js";import{loadCalciteComponents as p}from"../support/componentsUtils.js";import{isRTL as h}from"../support/widgetUtils.js";import{messageBundle as u}from"../support/decorators/messageBundle.js";import{tsx as f}from"../support/jsxFactory.js";import{isDarkTheme as _}from"../../support/themeUtils.js";import{substitute as v}from"../../intl/substitute.js";const M="esri-feature-media",g={base:M,mediaContainer:`${M}__container`,mediaItemContainer:`${M}__item-container`,mediaItem:`${M}__item`,mediaItemText:`${M}__item-text`,mediaItemTitle:`${M}__item-title`,mediaItemCaption:`${M}__item-caption`,mediaNavigation:`${M}__item-navigation`,mediaPagination:`${M}__pagination`,mediaPaginationText:`${M}__pagination-text`,mediaPrevious:`${M}__previous`,mediaPreviousIconLTR:`${M}__previous-icon`,mediaPreviousIconRTL:`${M}__previous-icon--rtl`,mediaNext:`${M}__next`,mediaNextIconLTR:`${M}__next-icon`,mediaNextIconRTL:`${M}__next-icon--rtl`,mediaChart:`${M}__chart`,mediaPaginationButton:`${M}__pagination-button`,mediaPaginationIcon:`${M}__pagination-icon`,mediaChartRendered:`${M}__chart--rendered`},w=15,I="category",A="value",y="rgba(50, 50, 50, 1)",C=250,x=500,T=200;let b=class extends l{constructor(e,t){super(e,t),this._refreshTimer=null,this._refreshIntervalInfo=null,this._featureElementInfo=null,this._chartRootMap=new WeakMap,this.viewModel=new d,this.messages=null,this._disposeChart=e=>{this._chartRootMap.get(e)?.dispose(),this._chartRootMap.delete(e)},this._createChart=async e=>{const{destroyed:t,viewModel:i}=this;if(t||!i||!e)return;const{createRoot:r}=await import("../support/chartUtilsAm5.js"),a=await r(e);this._chartRootMap.set(e,a),this._renderChart({mediaInfo:i.activeMediaInfo,root:a})}}initialize(){this._featureElementInfo=new m,this.addHandles([r((()=>[this.viewModel?.activeMediaInfo,this.viewModel?.activeMediaInfoIndex]),(()=>this._setupMediaRefreshTimer()),a),r((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),a)])}loadDependencies(){return p({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}destroy(){this._clearMediaRefreshTimer(),this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get activeMediaInfoIndex(){return this.viewModel.activeMediaInfoIndex}set activeMediaInfoIndex(e){this.viewModel.activeMediaInfoIndex=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get fieldInfoMap(){return this.viewModel.fieldInfoMap}set fieldInfoMap(e){this.viewModel.fieldInfoMap=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get mediaInfos(){return this.viewModel.mediaInfos}set mediaInfos(e){this.viewModel.mediaInfos=e}get popupTemplate(){return this.viewModel.popupTemplate}set popupTemplate(e){this.viewModel.popupTemplate=e}get relatedInfos(){return this.viewModel.relatedInfos}set relatedInfos(e){this.viewModel.relatedInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return f("div",{bind:this,class:g.base,onkeyup:this._handleMediaKeyup},this._featureElementInfo?.render(),this._renderMedia())}_renderMedia(){const{formattedMediaInfoCount:e,activeMediaInfoIndex:t}=this.viewModel,i=this._renderMediaText();return e?f("div",{class:g.mediaContainer,key:"media-element-container"},this._renderMediaInfo(),f("div",{class:g.mediaNavigation},i,e>1?f("div",{class:g.mediaPagination},this._renderMediaPageButton("previous"),f("span",{class:g.mediaPaginationText},v(this.messages.pageText,{index:t+1,total:e})),this._renderMediaPageButton("next")):null)):null}_renderMediaText(){const{activeMediaInfo:e}=this.viewModel;if(!e)return null;const t=e&&e.title?f("div",{class:g.mediaItemTitle,innerHTML:e.title,key:"media-title"}):null,i=e&&e.caption?f("div",{class:g.mediaItemCaption,innerHTML:e.caption,key:"media-caption"}):null;return t||i?f("div",{class:g.mediaItemText,key:"media-text"},t,i):null}_renderImageMediaInfo(e){const{_refreshIntervalInfo:t}=this,{activeMediaInfoIndex:i,formattedMediaInfoCount:r}=this.viewModel,{value:a,refreshInterval:s,altText:o,title:n,type:l}=e,{sourceURL:d,linkURL:m}=a,p=c(m??void 0)?"_blank":"_self",h="_blank"===p?"noreferrer":"",u=s?t:null,_=u?u.timestamp:0,v=u?u.sourceURL:d,M=f("img",{alt:o||n,key:`media-${l}-${i}-${r}-${_}`,src:v??void 0});return(m?f("a",{href:m,rel:h,target:p,title:n},M):null)??M}_renderChartMediaInfo(e){const{activeMediaInfoIndex:t,formattedMediaInfoCount:i}=this.viewModel;return f("div",{afterCreate:this._createChart,afterRemoved:this._disposeChart,bind:this,class:g.mediaChart,key:`media-${e.type}-${t}-${i}`})}_renderMediaInfoType(){const{activeMediaInfo:e}=this.viewModel;return e?"image"===e.type?this._renderImageMediaInfo(e):e.type.includes("chart")?this._renderChartMediaInfo(e):null:null}_renderMediaInfo(){const{activeMediaInfo:e}=this.viewModel;return e?f("div",{class:g.mediaItemContainer,key:"media-container"},f("div",{class:g.mediaItem,key:"media-item-container"},this._renderMediaInfoType())):null}_renderMediaPageButton(e){if(this.viewModel.formattedMediaInfoCount<2)return null;const t="previous"===e,i=t?this.messages.previous:this.messages.next,r=t?"chevron-left":"chevron-right",a=t?"media-previous":"media-next",s=t?this._previous:this._next;return f("button",{"aria-label":i,bind:this,class:g.mediaPaginationButton,key:a,onclick:s,tabIndex:0,title:i,type:"button"},f("calcite-icon",{class:g.mediaPaginationIcon,icon:r,scale:"s"}))}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_next(){this.viewModel.next()}_previous(){this.viewModel.previous()}_getRenderer(){if(!this.viewModel)return;const{isAggregate:e,layer:t}=this.viewModel;return e&&t?.featureReduction&&"renderer"in t.featureReduction?t.featureReduction.renderer:t?.renderer}async _getSeriesColors(e){const{colorAm5:t}=await import("./FeatureMedia/chartCommon.js"),i=new Map;return e.forEach((e=>{e.color&&i.set(e,t(e.color.toCss(!0)))})),i}async _getRendererColors(){const{colorAm5:e}=await import("./FeatureMedia/chartCommon.js"),t=new Map,i=this._getRenderer(),r="default";if(!i)return t;const a=await n(i);a.delete(r);return Array.from(a.values()).every((e=>1===e?.length))?(Array.from(a.keys()).forEach((i=>{const r=a.get(i)?.[0]?.toCss(!0);r&&t.set(i,e(r))})),t):t}_handleMediaKeyup(e){const t=i(e);"ArrowLeft"===t&&(e.stopPropagation(),this.viewModel.previous()),"ArrowRight"===t&&(e.stopPropagation(),this.viewModel.next())}_canAnimateChart(){return!!this.viewModel&&(!!this.viewModel.abilities.chartAnimation&&!t())}_getChartAnimationMS(){return this._canAnimateChart()?C:0}_getChartSeriesAnimationMS(){return this._canAnimateChart()?x:0}async _renderChart(e){const{root:t,mediaInfo:i}=e,{value:r,type:a}=i,{ResponsiveThemeAm5:s,DarkThemeAm5:o,AnimatedThemeAm5:n,ColorSetAm5:l,ThemeAm5:d,esriChartColorSet:m}=await import("./FeatureMedia/chartCommon.js"),c=d.new(t);c.rule("ColorSet").set("colors",m),c.rule("ColorSet").set("reuse",!0);const p=[s.new(t),c];_()&&p.push(o.new(t)),this._canAnimateChart()&&p.push(n.new(t)),t.setThemes(p);const h=await this._getRendererColors(),u=await this._getSeriesColors(r.series),f=l.new(t,{}),v=u.get(r.series[0]),M=v?{lineSettings:{stroke:v}}:void 0,g=r.series.map(((e,t)=>{const i=u.get(e)||h.get(e.fieldName)||f.getIndex(t);return{[I]:e.tooltip,[A]:e.value,columnSettings:{fill:i,stroke:i},...M}})).filter((e=>"pie-chart"!==a||null!=e.value&&e.value>0));"pie-chart"===a?this._createPieChart(e,g):this._createXYChart(e,g)}_getDirection(){return h(this.container)?"rtl":"ltr"}_isInversed(){return!!h(this.container)}async _customizeChartTooltip(e,t="horizontal"){const{colorAm5:i}=await import("./FeatureMedia/chartCommon.js");e.setAll({pointerOrientation:t}),e.get("background")?.setAll({stroke:i(y)}),e.label.setAll({direction:this._getDirection(),oversizedBehavior:"wrap",maxWidth:T})}async _createPieChart(e,t){const{TooltipAm5:i}=await import("./FeatureMedia/chartCommon.js"),{PieChartAm5:r,PieSeriesAm5:a}=await import("./FeatureMedia/pieChart.js"),{mediaInfo:s,root:o}=e,{title:n}=s,l=5,d=s?.altText||s?.title||"",m=o.container.children.push(r.new(o,{ariaLabel:d,focusable:!0,paddingBottom:l,paddingTop:l,paddingLeft:l,paddingRight:l})),c="{category}: {valuePercentTotal.formatNumber('0.00')}%\n ({value})",p=i.new(o,{labelText:c}),h=m.series.push(a.new(o,{name:n,valueField:A,categoryField:I,tooltip:p}));h.ticks.template.set("forceHidden",!0),h.labels.template.set("forceHidden",!0),h.slices.template.states.create("active",{shiftRadius:l}),this._customizeChartTooltip(p),h.slices.template.setAll({ariaLabel:c,focusable:!0,templateField:"columnSettings"}),h.data.setAll(t),h.appear(this._getChartSeriesAnimationMS()),m.appear(this._getChartAnimationMS()),m.root.dom.classList.toggle(g.mediaChartRendered,!0)}_getMinSeriesValue(e){let t=0;return e.forEach((e=>t=Math.min(e.value,t))),t}async _createColumnChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,ColumnSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{mediaInfo:m,root:c}=t,{value:p,title:h}=m;e.setAll({wheelX:"panX",wheelY:"zoomX"});const u=e.xAxes.push(s.new(c,{renderer:o.new(c,{inversed:this._isInversed()}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.yAxes.push(n.new(c,{renderer:l.new(c,{inside:!1}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const _="{categoryX}",v=r.new(c,{labelText:_}),M=e.series.push(d.new(c,{name:h,xAxis:u,yAxis:f,valueYField:A,categoryXField:I,tooltip:v}));this._customizeChartTooltip(v),M.columns.template.setAll({ariaLabel:_,focusable:!0,templateField:"columnSettings"}),p.series.length>w&&e.set("scrollbarX",a.new(c,{orientation:"horizontal"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createBarChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,ColumnSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{mediaInfo:m,root:c}=t,{value:p,title:h}=m;e.setAll({wheelX:"panY",wheelY:"zoomY"});const u=e.yAxes.push(s.new(c,{renderer:l.new(c,{inversed:!0}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.xAxes.push(n.new(c,{renderer:o.new(c,{inside:!1,inversed:this._isInversed()}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const _="{categoryY}",v=r.new(c,{labelText:_}),M=e.series.push(d.new(c,{name:h,xAxis:f,yAxis:u,valueXField:A,categoryYField:I,tooltip:v}));this._customizeChartTooltip(v,"vertical"),M.columns.template.setAll({ariaLabel:_,focusable:!0,templateField:"columnSettings"}),p.series.length>w&&e.set("scrollbarY",a.new(c,{orientation:"vertical"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createLineChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,LineSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{root:m,mediaInfo:c}=t,{value:p,title:h}=c;e.setAll({wheelX:"panX",wheelY:"zoomX"});const u=e.xAxes.push(s.new(m,{renderer:o.new(m,{inversed:this._isInversed()}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.yAxes.push(n.new(m,{renderer:l.new(m,{inside:!1}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const _="{categoryX}",v=r.new(m,{labelText:_}),M=e.series.push(d.new(m,{name:h,xAxis:u,yAxis:f,valueYField:A,categoryXField:I,tooltip:v}));M.strokes.template.setAll({templateField:"lineSettings"}),this._customizeChartTooltip(v,"vertical"),p.series.length>w&&e.set("scrollbarX",a.new(m,{orientation:"horizontal"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createXYChart(e,t){const{XYChartAm5:i,XYCursorAm5:r}=await import("./FeatureMedia/xyChart.js"),{root:a,mediaInfo:s}=e,{type:o}=s,n=s?.altText||s?.title||"",l=a.container.children.push(i.new(a,{ariaLabel:n,focusable:!0,panX:!0,panY:!0}));l.set("cursor",r.new(a,{})),"column-chart"===o&&await this._createColumnChart(l,e,t),"bar-chart"===o&&await this._createBarChart(l,e,t),"line-chart"===o&&await this._createLineChart(l,e,t),l.root.dom.classList.toggle(g.mediaChartRendered,!0)}_clearMediaRefreshTimer(){const{_refreshTimer:e}=this;e&&(clearTimeout(e),this._refreshTimer=null)}_updateMediaInfoTimestamp(e){const t=Date.now();this._refreshIntervalInfo={timestamp:t,sourceURL:e&&this._getImageSource(e,t)}}_setupMediaRefreshTimer(){this._clearMediaRefreshTimer();const{activeMediaInfo:e}=this.viewModel;e&&"image"===e.type&&e.refreshInterval&&this._setRefreshTimeout(e)}_setRefreshTimeout(e){const{refreshInterval:t,value:i}=e;if(!t)return;const r=6e4*t;this._updateMediaInfoTimestamp(i.sourceURL);const a=setInterval((()=>{this._updateMediaInfoTimestamp(i.sourceURL)}),r);this._refreshTimer=a}_getImageSource(e,t){const i=e.includes("?")?"&":"?",[r,a=""]=e.split("#");return`${r}${i}timestamp=${t}${a?"#":""}${a}`}};e([s()],b.prototype,"_refreshIntervalInfo",void 0),e([s()],b.prototype,"attributes",null),e([s()],b.prototype,"activeMediaInfoIndex",null),e([s()],b.prototype,"description",null),e([s()],b.prototype,"fieldInfoMap",null),e([s()],b.prototype,"layer",null),e([s()],b.prototype,"mediaInfos",null),e([s()],b.prototype,"popupTemplate",null),e([s()],b.prototype,"relatedInfos",null),e([s()],b.prototype,"title",null),e([s({type:d})],b.prototype,"viewModel",void 0),e([s(),u("esri/widgets/Feature/t9n/Feature")],b.prototype,"messages",void 0),b=e([o("esri.widgets.Feature.FeatureMedia")],b);const R=b;export{R as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.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{after as s}from"../../core/promiseUtils.js";import{watch as r,initial as i,on as o}from"../../core/reactiveUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import{cast as l}from"../../core/accessorSupport/decorators/cast.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as a}from"../../core/accessorSupport/decorators/subclass.js";import d from"../Widget.js";import c from"./FeatureRelationship/FeatureRelationshipViewModel.js";import u from"./support/FeatureElementInfo.js";import{loadCalciteComponents as h}from"../support/componentsUtils.js";import{globalCss as p}from"../support/globalCss.js";import{legacyIcon as m}from"../support/legacyIcon.js";import{isRTL as v}from"../support/widgetUtils.js";import{messageBundle as _}from"../support/decorators/messageBundle.js";import{tsx as g}from"../support/jsxFactory.js";import{substitute as w}from"../../intl/substitute.js";const f="esri-feature",b=`${f}-relationship`,y={base:b,listContainer:`${b}__list`,listItem:`${b}__list-item`,listItemHidden:`${b}__list-item--hidden`,listContainerQuerying:`${b}__list--querying`,featureObserver:`${f}__feature-observer`,stickySpinnerContainer:`${f}__sticky-loading-container`,loadingSpinnerContainer:`${f}__loading-container`,spinner:`${f}__loading-spinner`},F={title:!0,description:!0};let I=class extends d{constructor(e,t){super(e,t),this._featureElementInfo=null,this._relatedFeatureIntersectionObserverNode=null,this._relatedFeatureIntersectionObserver=new IntersectionObserver((([e])=>{e?.isIntersecting&&this._increaseFeaturePage()}),{root:window.document}),this.headingLevel=2,this.viewModel=new c,this.messages=null,this.messagesCommon=null,this.visibleElements={...F},this._increaseFeaturePage=()=>{const{state:e,showAllEnabled:t,relatedFeatures:s,featuresPerPage:r,featurePage:i}=this.viewModel;"ready"===e&&t&&s.length>=r*i&&this.viewModel.featurePage++}}initialize(){this._featureElementInfo=new u,this.addHandles([r((()=>[this.viewModel.description,this.viewModel.title,this.headingLevel]),(()=>this._setupFeatureElementInfo()),i),r((()=>[this.viewModel.state,this.viewModel.showAllEnabled,this._relatedFeatureIntersectionObserverNode]),(()=>this._handleRelatedFeatureObserverChange())),o((()=>this.viewModel.relatedFeatureViewModels),"change",(()=>this._setupRelatedFeatureViewModels()))])}loadDependencies(){return h({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js")})}destroy(){this._unobserveRelatedFeatureObserver(),this._featureElementInfo=t(this._featureElementInfo)}get displayShowAllButton(){const{showAllEnabled:e,featureCount:t,displayCount:s,state:r}=this.viewModel;return!e&&!!t&&"ready"===r&&(t>s||0===s)}get displayListItems(){return this.displayShowAllButton||this.viewModel.relatedFeatureViewModels.length>0}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get featureCountDescription(){const{messages:e}=this,{featureCount:t}=this.viewModel;return w(e?.numberRecords,{number:t})}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}castVisibleElements(e){return{...F,...e}}render(){const{state:e}=this.viewModel;return g("div",{class:this.classes(y.base,p.widget)},this._featureElementInfo?.render(),"loading"===e?this._renderLoading():"disabled"===e?this._renderRelationshipNotFound():this._renderRelatedFeatures())}_renderStickyLoading(){return"querying"===this.viewModel.state?g("div",{key:"sticky-loader",class:y.stickySpinnerContainer},this._renderLoadingIcon()):null}_renderLoadingIcon(){return g("span",{class:this.classes(m.loadingIndicator,p.rotating,y.spinner)})}_renderLoading(){return g("div",{key:"loading-container",class:y.loadingSpinnerContainer},this._renderLoadingIcon())}_renderShowAllIconNode(){return g("calcite-icon",{scale:"s",icon:"list",slot:"content-end"})}_renderChevronIconNode(){const e=v(this.container)?"chevron-left":"chevron-right";return g("calcite-icon",{scale:"s",icon:e,slot:"content-end"})}_renderRelatedFeature(e){const{itemDescriptionFieldName:t}=this.viewModel,s=e.title;e.description=t&&e.formattedAttributes?.global[t];const r="loading"===e.state;return g("calcite-list-item",{class:this.classes(y.listItem,{[y.listItemHidden]:r}),key:e.uid,label:s,description:e.description??"",onCalciteListItemSelect:()=>this.emit("select-record",{featureViewModel:e})},this._renderChevronIconNode())}_renderShowAllListItem(){return this.displayShowAllButton?g("calcite-list-item",{key:"show-all-item",label:this.messages?.showAll,description:this.featureCountDescription,onCalciteListItemSelect:()=>this.emit("show-all-records")},this._renderShowAllIconNode()):null}_renderNoRelatedFeaturesMessage(){return g("calcite-notice",{key:"no-related-features-message",icon:"information",open:!0,kind:"brand",scale:"s",width:"full"},g("div",{slot:"message"},this.messages?.noRelatedFeatures))}_renderFeatureObserver(){return g("div",{key:"feature-observer",class:y.featureObserver,bind:this,afterCreate:this._relatedFeatureIntersectionObserverCreated})}_renderList(){const{relatedFeatureViewModels:e}=this.viewModel;return g("calcite-list",null,e.toArray().map((e=>this._renderRelatedFeature(e))),this._renderShowAllListItem())}_renderRelatedFeatures(){const{displayListItems:e}=this,{state:t}=this.viewModel;return g("div",{key:"list-container",class:this.classes(y.listContainer,{[y.listContainerQuerying]:"querying"===t})},e?this._renderList():"ready"===t?this._renderNoRelatedFeaturesMessage():null,this._renderStickyLoading(),this._renderFeatureObserver())}_renderRelationshipNotFound(){return g("calcite-notice",{key:"relationship-not-found",icon:"exclamation-mark-triangle",open:!0,kind:"danger",scale:"s",width:"full"},g("div",{slot:"message"},this.messages?.relationshipNotFound))}_setupRelatedFeatureViewModels(){const{relatedFeatureViewModels:e}=this.viewModel,t="related-feature-viewmodels";this.removeHandles(t),e?.forEach((e=>{this.addHandles(r((()=>[e.title,e.state]),(()=>this.scheduleRender()),i),t)})),this.scheduleRender()}_setupFeatureElementInfo(){const{headingLevel:e,visibleElements:t}=this,s=t.description&&this.description,r=t.title&&this.title;this._featureElementInfo?.set({description:s,title:r,headingLevel:e})}async _handleRelatedFeatureObserverChange(){this._unobserveRelatedFeatureObserver();const{state:e,showAllEnabled:t}=this.viewModel;await s(0),this._relatedFeatureIntersectionObserverNode&&"ready"===e&&t&&this._relatedFeatureIntersectionObserver.observe(this._relatedFeatureIntersectionObserverNode)}_relatedFeatureIntersectionObserverCreated(e){this._relatedFeatureIntersectionObserverNode=e}_unobserveRelatedFeatureObserver(){this._relatedFeatureIntersectionObserverNode&&this._relatedFeatureIntersectionObserver.unobserve(this._relatedFeatureIntersectionObserverNode)}};e([n()],I.prototype,"_relatedFeatureIntersectionObserverNode",void 0),e([n({readOnly:!0})],I.prototype,"displayShowAllButton",null),e([n({readOnly:!0})],I.prototype,"displayListItems",null),e([n()],I.prototype,"description",null),e([n({readOnly:!0})],I.prototype,"featureCountDescription",null),e([n()],I.prototype,"headingLevel",void 0),e([n()],I.prototype,"title",null),e([n({type:c})],I.prototype,"viewModel",void 0),e([n(),_("esri/widgets/Feature/t9n/Feature")],I.prototype,"messages",void 0),e([n(),_("esri/t9n/common")],I.prototype,"messagesCommon",void 0),e([n()],I.prototype,"visibleElements",void 0),e([l("visibleElements")],I.prototype,"castVisibleElements",null),I=e([a("esri.widgets.Feature.FeatureRelationship")],I);const M=I;export{M as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import"../../intl.js";import{destroyMaybe as t}from"../../core/maybe.js";import{after as s}from"../../core/promiseUtils.js";import{watch as r,initial as i,on as o}from"../../core/reactiveUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import{cast as l}from"../../core/accessorSupport/decorators/cast.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as a}from"../../core/accessorSupport/decorators/subclass.js";import d from"../Widget.js";import c from"./FeatureRelationship/FeatureRelationshipViewModel.js";import u from"./support/FeatureElementInfo.js";import{loadCalciteComponents as h}from"../support/componentsUtils.js";import{globalCss as p}from"../support/globalCss.js";import{legacyIcon as m}from"../support/legacyIcon.js";import{isRTL as v}from"../support/widgetUtils.js";import{messageBundle as _}from"../support/decorators/messageBundle.js";import{tsx as g}from"../support/jsxFactory.js";import{substitute as w}from"../../intl/substitute.js";const f="esri-feature",b=`${f}-relationship`,y={base:b,listContainer:`${b}__list`,listItem:`${b}__list-item`,listItemHidden:`${b}__list-item--hidden`,listContainerQuerying:`${b}__list--querying`,featureObserver:`${f}__feature-observer`,stickySpinnerContainer:`${f}__sticky-loading-container`,loadingSpinnerContainer:`${f}__loading-container`,spinner:`${f}__loading-spinner`},F={title:!0,description:!0};let I=class extends d{constructor(e,t){super(e,t),this._featureElementInfo=null,this._relatedFeatureIntersectionObserverNode=null,this._relatedFeatureIntersectionObserver=new IntersectionObserver((([e])=>{e?.isIntersecting&&this._increaseFeaturePage()}),{root:window.document}),this.headingLevel=2,this.viewModel=new c,this.messages=null,this.messagesCommon=null,this.visibleElements={...F},this._increaseFeaturePage=()=>{const{state:e,showAllEnabled:t,relatedFeatures:s,featuresPerPage:r,featurePage:i}=this.viewModel;"ready"===e&&t&&s.length>=r*i&&this.viewModel.featurePage++}}initialize(){this._featureElementInfo=new u,this.addHandles([r((()=>[this.viewModel.description,this.viewModel.title,this.headingLevel]),(()=>this._setupFeatureElementInfo()),i),r((()=>[this.viewModel.state,this.viewModel.showAllEnabled,this._relatedFeatureIntersectionObserverNode]),(()=>this._handleRelatedFeatureObserverChange())),o((()=>this.viewModel.relatedFeatureViewModels),"change",(()=>this._setupRelatedFeatureViewModels()))])}loadDependencies(){return h({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js")})}destroy(){this._unobserveRelatedFeatureObserver(),this._featureElementInfo=t(this._featureElementInfo)}get displayShowAllButton(){const{showAllEnabled:e,featureCount:t,displayCount:s,state:r}=this.viewModel;return!e&&!!t&&"ready"===r&&(t>s||0===s)}get displayListItems(){return this.displayShowAllButton||this.viewModel.relatedFeatureViewModels.length>0}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get featureCountDescription(){const{messages:e}=this,{featureCount:t}=this.viewModel;return w(e?.numberRecords,{number:t})}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}castVisibleElements(e){return{...F,...e}}render(){const{state:e}=this.viewModel;return g("div",{class:this.classes(y.base,p.widget)},this._featureElementInfo?.render(),"loading"===e?this._renderLoading():"disabled"===e?this._renderRelationshipNotFound():this._renderRelatedFeatures())}_renderStickyLoading(){return"querying"===this.viewModel.state?g("div",{class:y.stickySpinnerContainer,key:"sticky-loader"},this._renderLoadingIcon()):null}_renderLoadingIcon(){return g("span",{class:this.classes(m.loadingIndicator,p.rotating,y.spinner)})}_renderLoading(){return g("div",{class:y.loadingSpinnerContainer,key:"loading-container"},this._renderLoadingIcon())}_renderShowAllIconNode(){return g("calcite-icon",{icon:"list",scale:"s",slot:"content-end"})}_renderChevronIconNode(){const e=v(this.container)?"chevron-left":"chevron-right";return g("calcite-icon",{icon:e,scale:"s",slot:"content-end"})}_renderRelatedFeature(e){const{itemDescriptionFieldName:t}=this.viewModel,s=e.title;e.description=t&&e.formattedAttributes?.global[t];const r="loading"===e.state;return g("calcite-list-item",{class:this.classes(y.listItem,{[y.listItemHidden]:r}),description:e.description??"",key:e.uid,label:s,onCalciteListItemSelect:()=>this.emit("select-record",{featureViewModel:e})},this._renderChevronIconNode())}_renderShowAllListItem(){return this.displayShowAllButton?g("calcite-list-item",{description:this.featureCountDescription,key:"show-all-item",label:this.messages?.showAll,onCalciteListItemSelect:()=>this.emit("show-all-records")},this._renderShowAllIconNode()):null}_renderNoRelatedFeaturesMessage(){return g("calcite-notice",{icon:"information",key:"no-related-features-message",kind:"brand",open:!0,scale:"s",width:"full"},g("div",{slot:"message"},this.messages?.noRelatedFeatures))}_renderFeatureObserver(){return g("div",{afterCreate:this._relatedFeatureIntersectionObserverCreated,bind:this,class:y.featureObserver,key:"feature-observer"})}_renderList(){const{relatedFeatureViewModels:e}=this.viewModel;return g("calcite-list",null,e.toArray().map((e=>this._renderRelatedFeature(e))),this._renderShowAllListItem())}_renderRelatedFeatures(){const{displayListItems:e}=this,{state:t}=this.viewModel;return g("div",{class:this.classes(y.listContainer,{[y.listContainerQuerying]:"querying"===t}),key:"list-container"},e?this._renderList():"ready"===t?this._renderNoRelatedFeaturesMessage():null,this._renderStickyLoading(),this._renderFeatureObserver())}_renderRelationshipNotFound(){return g("calcite-notice",{icon:"exclamation-mark-triangle",key:"relationship-not-found",kind:"danger",open:!0,scale:"s",width:"full"},g("div",{slot:"message"},this.messages?.relationshipNotFound))}_setupRelatedFeatureViewModels(){const{relatedFeatureViewModels:e}=this.viewModel,t="related-feature-viewmodels";this.removeHandles(t),e?.forEach((e=>{this.addHandles(r((()=>[e.title,e.state]),(()=>this.scheduleRender()),i),t)})),this.scheduleRender()}_setupFeatureElementInfo(){const{headingLevel:e,visibleElements:t}=this,s=t.description&&this.description,r=t.title&&this.title;this._featureElementInfo?.set({description:s,title:r,headingLevel:e})}async _handleRelatedFeatureObserverChange(){this._unobserveRelatedFeatureObserver();const{state:e,showAllEnabled:t}=this.viewModel;await s(0),this._relatedFeatureIntersectionObserverNode&&"ready"===e&&t&&this._relatedFeatureIntersectionObserver.observe(this._relatedFeatureIntersectionObserverNode)}_relatedFeatureIntersectionObserverCreated(e){this._relatedFeatureIntersectionObserverNode=e}_unobserveRelatedFeatureObserver(){this._relatedFeatureIntersectionObserverNode&&this._relatedFeatureIntersectionObserver.unobserve(this._relatedFeatureIntersectionObserverNode)}};e([n()],I.prototype,"_relatedFeatureIntersectionObserverNode",void 0),e([n({readOnly:!0})],I.prototype,"displayShowAllButton",null),e([n({readOnly:!0})],I.prototype,"displayListItems",null),e([n()],I.prototype,"description",null),e([n({readOnly:!0})],I.prototype,"featureCountDescription",null),e([n()],I.prototype,"headingLevel",void 0),e([n()],I.prototype,"title",null),e([n({type:c})],I.prototype,"viewModel",void 0),e([n(),_("esri/widgets/Feature/t9n/Feature")],I.prototype,"messages",void 0),e([n(),_("esri/t9n/common")],I.prototype,"messagesCommon",void 0),e([n()],I.prototype,"visibleElements",void 0),e([l("visibleElements")],I.prototype,"castVisibleElements",null),I=e([a("esri.widgets.Feature.FeatureRelationship")],I);const M=I;export{M 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"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/Error.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{css as r}from"../resources.js";import{isWidget as t,hasDomNode as s}from"../../support/widget.js";import{tsx as c}from"../../support/jsxFactory.js";const i=i=>{let n=class extends i{constructor(){super(...arguments),this.renderNodeContent=e=>t(e)&&!e.destroyed?c("div",{class:r.contentNode,key:e},e.render()):e instanceof HTMLElement?c("div",{class:r.contentNode,key:e,bind:e,afterCreate:this._attachToNode}):s(e)?c("div",{class:r.contentNode,key:e,bind:e.domNode,afterCreate:this._attachToNode}):null}_attachToNode(e){const o=this;e.appendChild(o)}};return n=e([o("esri.widgets.Feature.ContentMixin")],n),n};export{i as FeatureContentMixin};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/Error.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{css as r}from"../resources.js";import{isWidget as t,hasDomNode as s}from"../../support/widget.js";import{tsx as c}from"../../support/jsxFactory.js";const i=i=>{let n=class extends i{constructor(){super(...arguments),this.renderNodeContent=e=>t(e)&&!e.destroyed?c("div",{class:r.contentNode,key:e},e.render()):e instanceof HTMLElement?c("div",{afterCreate:this._attachToNode,bind:e,class:r.contentNode,key:e}):s(e)?c("div",{afterCreate:this._attachToNode,bind:e.domNode,class:r.contentNode,key:e}):null}_attachToNode(e){const o=this;e.appendChild(o)}};return n=e([o("esri.widgets.Feature.ContentMixin")],n),n};export{i as FeatureContentMixin};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as r}from"../../../core/accessorSupport/decorators/subclass.js";import s from"../../Widget.js";import{Heading as o}from"../../support/Heading.js";import"../../support/widgetUtils.js";import{tsx as i}from"../../support/jsxFactory.js";const p="esri-feature-element-info",n={base:p,title:`${p}__title`,description:`${p}__description`};let c=class extends s{constructor(e,t){super(e,t),this.description=null,this.headingLevel=2,this.title=null}render(){return i("div",{class:n.base},this._renderTitle(),this._renderDescription())}_renderTitle(){const{title:e}=this;return e?i(o,{level:this.headingLevel,class:n.title},e):null}_renderDescription(){const{description:e}=this;return e?i("div",{key:"description",class:n.description},e):null}};e([t()],c.prototype,"description",void 0),e([t()],c.prototype,"headingLevel",void 0),e([t()],c.prototype,"title",void 0),c=e([r("esri.widgets.Feature.support.FeatureElementInfo")],c);const l=c;export{l as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as r}from"../../../core/accessorSupport/decorators/subclass.js";import s from"../../Widget.js";import{Heading as o}from"../../support/Heading.js";import"../../support/widgetUtils.js";import{tsx as i}from"../../support/jsxFactory.js";const p="esri-feature-element-info",n={base:p,title:`${p}__title`,description:`${p}__description`};let c=class extends s{constructor(e,t){super(e,t),this.description=null,this.headingLevel=2,this.title=null}render(){return i("div",{class:n.base},this._renderTitle(),this._renderDescription())}_renderTitle(){const{title:e}=this;return e?i(o,{class:n.title,level:this.headingLevel},e):null}_renderDescription(){const{description:e}=this;return e?i("div",{class:n.description,key:"description"},e):null}};e([t()],c.prototype,"description",void 0),e([t()],c.prototype,"headingLevel",void 0),e([t()],c.prototype,"title",void 0),c=e([r("esri.widgets.Feature.support.FeatureElementInfo")],c);const l=c;export{l 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{watch as t,on as s,initial as i}from"../core/reactiveUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import d from"./Feature/FeatureAttachments.js";import a from"./Feature/FeatureContent.js";import c from"./Feature/FeatureExpression.js";import p from"./Feature/FeatureFields.js";import u from"./Feature/FeatureMedia.js";import m from"./Feature/FeatureRelationship.js";import h from"./Feature/FeatureViewModel.js";import{css as v}from"./Feature/resources.js";import{FeatureContentMixin as y}from"./Feature/support/FeatureContentMixin.js";import{loadCalciteComponents as g}from"./support/componentsUtils.js";import{globalCss as w}from"./support/globalCss.js";import{Heading as _}from"./support/Heading.js";import{legacyIcon as f}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as M}from"./support/decorators/messageBundle.js";import{tsx as E}from"./support/jsxFactory.js";import{substitute as b}from"../intl/substitute.js";var j;const C={title:!0,content:!0,lastEditedInfo:!0},F="relationship-handles";let W=j=class extends(y(l)){constructor(e,t){super(e,t),this._contentWidgets=[],this.flowItems=null,this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.messagesURIUtils=null,this.visibleElements={...C},this.viewModel=new h}initialize(){this.addHandles(t((()=>this.viewModel?.contentViewModels),(()=>this._setupContentWidgets()),i))}loadDependencies(){return g({notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js")})}destroy(){this._destroyContentWidgets()}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get defaultPopupTemplateEnabled(){return this.viewModel.defaultPopupTemplateEnabled}set defaultPopupTemplateEnabled(e){this.viewModel.defaultPopupTemplateEnabled=e}get isTable(){return this.viewModel.isTable}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get spatialReference(){return this.viewModel.spatialReference}set spatialReference(e){this.viewModel.spatialReference=e}get title(){return this.viewModel.title}castVisibleElements(e){return{...C,...e}}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}setActiveMedia(e,t){return this.viewModel.setActiveMedia(e,t)}nextMedia(e){return this.viewModel.nextMedia(e)}previousMedia(e){return this.viewModel.previousMedia(e)}render(){const{state:e}=this.viewModel,t=E("div",{class:v.container,key:"container"},this._renderTitle(),"error"===e?this._renderError():"loading"===e?this._renderLoading():this._renderContentContainer());return E("div",{class:this.classes(v.base,w.widget)},t)}_renderError(){const{messagesCommon:e,messages:t,visibleElements:s}=this;return E("calcite-notice",{open:!0,kind:"danger",icon:"exclamation-mark-circle",scale:"s"},s.title?E("div",{key:"error-title",slot:"title"},e.errorMessage):null,E("div",{key:"error-message",slot:"message"},t.loadingError))}_renderLoading(){return E("div",{key:"loading-container",class:v.loadingSpinnerContainer},E("span",{class:this.classes(f.loadingIndicator,w.rotating,v.spinner)}))}_renderContentContainer(){const{visibleElements:e}=this;return e.content?E("div",{class:v.main},[this._renderContent(),this._renderLastEditInfo()]):null}_renderTitle(){const{visibleElements:e,title:t}=this;return e.title?E(_,{level:this.headingLevel,class:v.title,innerHTML:t}):null}_renderContent(){const e=this.viewModel.content,t="content";if(!e)return null;if(Array.isArray(e))return e.length?E("div",{class:v.contentNode,key:`${t}-content-elements`},e.map(this._renderContentElement,this)):null;if("string"==typeof e){const e=this._contentWidgets[0];return!e||e.destroyed?null:E("div",{class:this.classes(v.contentNode,v.contentNodeText),key:`${t}-content`},e.render())}return this.renderNodeContent(e)}_renderContentElement(e,t){const{visibleElements:s}=this;if("boolean"!=typeof s.content&&!s.content?.[e.type])return null;switch(e.type){case"attachments":return this._renderAttachments(t);case"custom":return this._renderCustom(e,t);case"fields":return this._renderFields(t);case"media":return this._renderMedia(t);case"text":return this._renderText(e,t);case"expression":return this._renderExpression(t);case"relationship":return this._renderRelationship(t);default:return null}}_renderAttachments(e){const t=this._contentWidgets[e];if(!t||t.destroyed)return null;const{state:s,attachmentInfos:i}=t.viewModel;return"loading"===s||i.length>0?E("div",{key:this._buildKey("attachments-element",e),class:this.classes(v.contentElement)},t.render()):null}_renderRelationship(e){const t=this._contentWidgets[e];return t&&!t.destroyed&&this.flowItems?E("div",{key:this._buildKey("relationship-element",e),class:v.contentElement},t.render()):null}_renderExpression(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:E("div",{key:this._buildKey("expression-element",e),class:v.contentElement},t.render())}_renderCustom(e,t){const{creator:s}=e,i=this._contentWidgets[t];return!i||i.destroyed?null:s?E("div",{key:this._buildKey("custom-element",t),class:v.contentElement},i.render()):null}_renderFields(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:E("div",{key:this._buildKey("fields-element",e),class:v.contentElement},t.render())}_renderMedia(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:E("div",{key:this._buildKey("media-element",e),class:v.contentElement},t.render())}_renderLastEditInfo(){const{visibleElements:e,messages:t}=this,{lastEditInfo:s}=this.viewModel;if(!s||!e.lastEditedInfo)return null;const{date:i,user:n}=s,r="edit"===s.type?n?t.lastEditedByUser:t.lastEdited:n?t.lastCreatedByUser:t.lastCreated,o=b(r,{date:i,user:n});return E("div",{key:"edit-info-element",class:this.classes(v.lastEditedInfo,v.contentElement)},o)}_renderText(e,t){const s=e.text,i=this._contentWidgets[t];return!i||i.destroyed?null:s?E("div",{key:this._buildKey("text-element",t),class:this.classes(v.contentElement,v.text)},i.render()):null}_buildKey(e,...t){return`${e}__${this.viewModel?.graphic?.uid||"0"}-${t.join("-")}`}_destroyContentWidget(e){e&&(e.viewModel=null,!e.destroyed&&e.destroy())}_destroyContentWidgets(){this.removeHandles(F),this._contentWidgets.forEach((e=>this._destroyContentWidget(e))),this._contentWidgets=[]}_addFeatureRelationshipHandles(e){const{flowItems:t,visibleElements:i}=this;this.addHandles([s((()=>e),"select-record",(({featureViewModel:e})=>{t&&(e.abilities={relationshipContent:!0},t.push(new j({flowItems:t,viewModel:e,visibleElements:i})))})),s((()=>e),"show-all-records",(()=>{if(!t)return;const{viewModel:s}=e;s.showAllEnabled=!0;const i=new m({visibleElements:{title:!1,description:!1},viewModel:s});this._addFeatureRelationshipHandles(i),t.push(i)}))],F)}_setupContentWidgets(){this._destroyContentWidgets();const{headingLevel:e,visibleElements:t}=this,s=this.viewModel?.content,{contentViewModels:i}=this.viewModel;if(Array.isArray(s))s.forEach(((s,n)=>{if("attachments"===s.type&&(this._contentWidgets[n]=new d({displayType:s.displayType,headingLevel:t.title?e+1:e,viewModel:i[n]})),"fields"===s.type&&(this._contentWidgets[n]=new p({viewModel:i[n]})),"media"===s.type&&(this._contentWidgets[n]=new u({viewModel:i[n]})),"text"===s.type&&(this._contentWidgets[n]=new a({viewModel:i[n]})),"custom"===s.type&&(this._contentWidgets[n]=new a({viewModel:i[n]})),"expression"===s.type&&(this._contentWidgets[n]=new c({viewModel:i[n]})),"relationship"===s.type){const e=new m({viewModel:i[n]});this._addFeatureRelationshipHandles(e),this._contentWidgets[n]=e}}),this);else{const e=i[0];e&&!e.destroyed&&(this._contentWidgets[0]=new a({viewModel:e}))}this.scheduleRender()}};e([n()],W.prototype,"graphic",null),e([n()],W.prototype,"defaultPopupTemplateEnabled",null),e([n()],W.prototype,"flowItems",void 0),e([n()],W.prototype,"headingLevel",void 0),e([n({readOnly:!0})],W.prototype,"isTable",null),e([n()],W.prototype,"label",null),e([n(),M("esri/widgets/Feature/t9n/Feature")],W.prototype,"messages",void 0),e([n(),M("esri/t9n/common")],W.prototype,"messagesCommon",void 0),e([n(),M("esri/widgets/support/t9n/uriUtils")],W.prototype,"messagesURIUtils",void 0),e([n()],W.prototype,"spatialReference",null),e([n({readOnly:!0})],W.prototype,"title",null),e([n()],W.prototype,"visibleElements",void 0),e([r("visibleElements")],W.prototype,"castVisibleElements",null),e([n()],W.prototype,"map",null),e([n()],W.prototype,"view",null),e([n({type:h})],W.prototype,"viewModel",void 0),W=j=e([o("esri.widgets.Feature")],W);const x=W;export{x as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{watch as t,on as s,initial as i}from"../core/reactiveUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import d from"./Feature/FeatureAttachments.js";import a from"./Feature/FeatureContent.js";import c from"./Feature/FeatureExpression.js";import p from"./Feature/FeatureFields.js";import u from"./Feature/FeatureMedia.js";import m from"./Feature/FeatureRelationship.js";import h from"./Feature/FeatureViewModel.js";import{css as v}from"./Feature/resources.js";import{FeatureContentMixin as y}from"./Feature/support/FeatureContentMixin.js";import{loadCalciteComponents as g}from"./support/componentsUtils.js";import{globalCss as w}from"./support/globalCss.js";import{Heading as _}from"./support/Heading.js";import{legacyIcon as f}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as M}from"./support/decorators/messageBundle.js";import{tsx as E}from"./support/jsxFactory.js";import{substitute as b}from"../intl/substitute.js";var j;const C={title:!0,content:!0,lastEditedInfo:!0},F="relationship-handles";let W=j=class extends(y(l)){constructor(e,t){super(e,t),this._contentWidgets=[],this.flowItems=null,this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.messagesURIUtils=null,this.visibleElements={...C},this.viewModel=new h}initialize(){this.addHandles(t((()=>this.viewModel?.contentViewModels),(()=>this._setupContentWidgets()),i))}loadDependencies(){return g({notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js")})}destroy(){this._destroyContentWidgets()}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get defaultPopupTemplateEnabled(){return this.viewModel.defaultPopupTemplateEnabled}set defaultPopupTemplateEnabled(e){this.viewModel.defaultPopupTemplateEnabled=e}get isTable(){return this.viewModel.isTable}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get spatialReference(){return this.viewModel.spatialReference}set spatialReference(e){this.viewModel.spatialReference=e}get title(){return this.viewModel.title}castVisibleElements(e){return{...C,...e}}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}setActiveMedia(e,t){return this.viewModel.setActiveMedia(e,t)}nextMedia(e){return this.viewModel.nextMedia(e)}previousMedia(e){return this.viewModel.previousMedia(e)}render(){const{state:e}=this.viewModel,t=E("div",{class:v.container,key:"container"},this._renderTitle(),"error"===e?this._renderError():"loading"===e?this._renderLoading():this._renderContentContainer());return E("div",{class:this.classes(v.base,w.widget)},t)}_renderError(){const{messagesCommon:e,messages:t,visibleElements:s}=this;return E("calcite-notice",{icon:"exclamation-mark-circle",kind:"danger",open:!0,scale:"s"},s.title?E("div",{key:"error-title",slot:"title"},e.errorMessage):null,E("div",{key:"error-message",slot:"message"},t.loadingError))}_renderLoading(){return E("div",{class:v.loadingSpinnerContainer,key:"loading-container"},E("span",{class:this.classes(f.loadingIndicator,w.rotating,v.spinner)}))}_renderContentContainer(){const{visibleElements:e}=this;return e.content?E("div",{class:v.main},[this._renderContent(),this._renderLastEditInfo()]):null}_renderTitle(){const{visibleElements:e,title:t}=this;return e.title?E(_,{class:v.title,innerHTML:t,level:this.headingLevel}):null}_renderContent(){const e=this.viewModel.content,t="content";if(!e)return null;if(Array.isArray(e))return e.length?E("div",{class:v.contentNode,key:`${t}-content-elements`},e.map(this._renderContentElement,this)):null;if("string"==typeof e){const e=this._contentWidgets[0];return!e||e.destroyed?null:E("div",{class:this.classes(v.contentNode,v.contentNodeText),key:`${t}-content`},e.render())}return this.renderNodeContent(e)}_renderContentElement(e,t){const{visibleElements:s}=this;if("boolean"!=typeof s.content&&!s.content?.[e.type])return null;switch(e.type){case"attachments":return this._renderAttachments(t);case"custom":return this._renderCustom(e,t);case"fields":return this._renderFields(t);case"media":return this._renderMedia(t);case"text":return this._renderText(e,t);case"expression":return this._renderExpression(t);case"relationship":return this._renderRelationship(t);default:return null}}_renderAttachments(e){const t=this._contentWidgets[e];if(!t||t.destroyed)return null;const{state:s,attachmentInfos:i}=t.viewModel;return"loading"===s||i.length>0?E("div",{class:this.classes(v.contentElement),key:this._buildKey("attachments-element",e)},t.render()):null}_renderRelationship(e){const t=this._contentWidgets[e];return t&&!t.destroyed&&this.flowItems?E("div",{class:v.contentElement,key:this._buildKey("relationship-element",e)},t.render()):null}_renderExpression(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:E("div",{class:v.contentElement,key:this._buildKey("expression-element",e)},t.render())}_renderCustom(e,t){const{creator:s}=e,i=this._contentWidgets[t];return!i||i.destroyed?null:s?E("div",{class:v.contentElement,key:this._buildKey("custom-element",t)},i.render()):null}_renderFields(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:E("div",{class:v.contentElement,key:this._buildKey("fields-element",e)},t.render())}_renderMedia(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:E("div",{class:v.contentElement,key:this._buildKey("media-element",e)},t.render())}_renderLastEditInfo(){const{visibleElements:e,messages:t}=this,{lastEditInfo:s}=this.viewModel;if(!s||!e.lastEditedInfo)return null;const{date:i,user:n}=s,r="edit"===s.type?n?t.lastEditedByUser:t.lastEdited:n?t.lastCreatedByUser:t.lastCreated,o=b(r,{date:i,user:n});return E("div",{class:this.classes(v.lastEditedInfo,v.contentElement),key:"edit-info-element"},o)}_renderText(e,t){const s=e.text,i=this._contentWidgets[t];return!i||i.destroyed?null:s?E("div",{class:this.classes(v.contentElement,v.text),key:this._buildKey("text-element",t)},i.render()):null}_buildKey(e,...t){return`${e}__${this.viewModel?.graphic?.uid||"0"}-${t.join("-")}`}_destroyContentWidget(e){e&&(e.viewModel=null,!e.destroyed&&e.destroy())}_destroyContentWidgets(){this.removeHandles(F),this._contentWidgets.forEach((e=>this._destroyContentWidget(e))),this._contentWidgets=[]}_addFeatureRelationshipHandles(e){const{flowItems:t,visibleElements:i}=this;this.addHandles([s((()=>e),"select-record",(({featureViewModel:e})=>{t&&(e.abilities={relationshipContent:!0},t.push(new j({flowItems:t,viewModel:e,visibleElements:i})))})),s((()=>e),"show-all-records",(()=>{if(!t)return;const{viewModel:s}=e;s.showAllEnabled=!0;const i=new m({visibleElements:{title:!1,description:!1},viewModel:s});this._addFeatureRelationshipHandles(i),t.push(i)}))],F)}_setupContentWidgets(){this._destroyContentWidgets();const{headingLevel:e,visibleElements:t}=this,s=this.viewModel?.content,{contentViewModels:i}=this.viewModel;if(Array.isArray(s))s.forEach(((s,n)=>{if("attachments"===s.type&&(this._contentWidgets[n]=new d({displayType:s.displayType,headingLevel:t.title?e+1:e,viewModel:i[n]})),"fields"===s.type&&(this._contentWidgets[n]=new p({viewModel:i[n]})),"media"===s.type&&(this._contentWidgets[n]=new u({viewModel:i[n]})),"text"===s.type&&(this._contentWidgets[n]=new a({viewModel:i[n]})),"custom"===s.type&&(this._contentWidgets[n]=new a({viewModel:i[n]})),"expression"===s.type&&(this._contentWidgets[n]=new c({viewModel:i[n]})),"relationship"===s.type){const e=new m({viewModel:i[n]});this._addFeatureRelationshipHandles(e),this._contentWidgets[n]=e}}),this);else{const e=i[0];e&&!e.destroyed&&(this._contentWidgets[0]=new a({viewModel:e}))}this.scheduleRender()}};e([n()],W.prototype,"graphic",null),e([n()],W.prototype,"defaultPopupTemplateEnabled",null),e([n()],W.prototype,"flowItems",void 0),e([n()],W.prototype,"headingLevel",void 0),e([n({readOnly:!0})],W.prototype,"isTable",null),e([n()],W.prototype,"label",null),e([n(),M("esri/widgets/Feature/t9n/Feature")],W.prototype,"messages",void 0),e([n(),M("esri/t9n/common")],W.prototype,"messagesCommon",void 0),e([n(),M("esri/widgets/support/t9n/uriUtils")],W.prototype,"messagesURIUtils",void 0),e([n()],W.prototype,"spatialReference",null),e([n({readOnly:!0})],W.prototype,"title",null),e([n()],W.prototype,"visibleElements",void 0),e([r("visibleElements")],W.prototype,"castVisibleElements",null),e([n()],W.prototype,"map",null),e([n()],W.prototype,"view",null),e([n({type:h})],W.prototype,"viewModel",void 0),W=j=e([o("esri.widgets.Feature")],W);const x=W;export{x as default};