@geoscene/core 4.23.9 → 4.23.12

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 (229) hide show
  1. package/assets/geoscene/core/workers/chunks/6f827a32646bab0a8777.js +1 -1
  2. package/assets/geoscene/core/workers/chunks/7f91f70ef69a7e24f8e2.js +1 -1
  3. package/assets/geoscene/core/workers/chunks/85fde4b92b0c212f5ff6.js +1 -1
  4. package/assets/geoscene/core/workers/chunks/9f458f10dc65b185f66e.js +1 -1
  5. package/assets/geoscene/themes/base/_Overlay.scss +2 -2
  6. package/assets/geoscene/themes/base/_OverlayItem.scss +12 -12
  7. package/assets/geoscene/themes/base/_Ui.scss +32 -32
  8. package/assets/geoscene/themes/base/_View.scss +31 -31
  9. package/assets/geoscene/themes/base/_animation.scss +6 -6
  10. package/assets/geoscene/themes/base/_core.scss +2 -2
  11. package/assets/geoscene/themes/base/_mixins.scss +43 -43
  12. package/assets/geoscene/themes/base/icons/style.css +190 -190
  13. package/assets/geoscene/themes/base/icons/style.scss +376 -376
  14. package/assets/geoscene/themes/base/icons/variables.scss +187 -187
  15. package/assets/geoscene/themes/base/widgets/_AreaMeasurement2D.scss +4 -4
  16. package/assets/geoscene/themes/base/widgets/_AreaMeasurement3D.scss +4 -4
  17. package/assets/geoscene/themes/base/widgets/_Attachments.scss +48 -48
  18. package/assets/geoscene/themes/base/widgets/_Attribution.scss +9 -9
  19. package/assets/geoscene/themes/base/widgets/_BasemapGallery.scss +39 -39
  20. package/assets/geoscene/themes/base/widgets/_BasemapLayerList.scss +100 -100
  21. package/assets/geoscene/themes/base/widgets/_BasemapToggle.scss +22 -22
  22. package/assets/geoscene/themes/base/widgets/_BinaryColorSizeSlider.scss +2 -2
  23. package/assets/geoscene/themes/base/widgets/_Bookmarks.scss +48 -48
  24. package/assets/geoscene/themes/base/widgets/_BuildingDisciplinesTree.scss +3 -3
  25. package/assets/geoscene/themes/base/widgets/_BuildingExplorer.scss +4 -4
  26. package/assets/geoscene/themes/base/widgets/_BuildingLevelPicker.scss +4 -4
  27. package/assets/geoscene/themes/base/widgets/_BuildingPhasePicker.scss +4 -4
  28. package/assets/geoscene/themes/base/widgets/_ButtonMenu.scss +21 -21
  29. package/assets/geoscene/themes/base/widgets/_ClassedColorSlider.scss +2 -2
  30. package/assets/geoscene/themes/base/widgets/_ClassedSizeSlider.scss +2 -2
  31. package/assets/geoscene/themes/base/widgets/_ColorPicker.scss +3 -3
  32. package/assets/geoscene/themes/base/widgets/_ColorSizeSlider.scss +2 -2
  33. package/assets/geoscene/themes/base/widgets/_ColorSlider.scss +2 -2
  34. package/assets/geoscene/themes/base/widgets/_Compass.scss +3 -3
  35. package/assets/geoscene/themes/base/widgets/_CoordinateConversion.scss +51 -51
  36. package/assets/geoscene/themes/base/widgets/_DatePicker.scss +34 -34
  37. package/assets/geoscene/themes/base/widgets/_Daylight.scss +63 -63
  38. package/assets/geoscene/themes/base/widgets/_DirectLineMeasurement3D.scss +2 -2
  39. package/assets/geoscene/themes/base/widgets/_Directions.scss +98 -98
  40. package/assets/geoscene/themes/base/widgets/_DistanceMeasurement2D.scss +2 -2
  41. package/assets/geoscene/themes/base/widgets/_Editor.scss +56 -56
  42. package/assets/geoscene/themes/base/widgets/_ElevationProfile.scss +19 -19
  43. package/assets/geoscene/themes/base/widgets/_Expand.scss +58 -58
  44. package/assets/geoscene/themes/base/widgets/_Feature.scss +13 -13
  45. package/assets/geoscene/themes/base/widgets/_FeatureContent.scss +24 -24
  46. package/assets/geoscene/themes/base/widgets/_FeatureForm.scss +36 -36
  47. package/assets/geoscene/themes/base/widgets/_FeatureMedia.scss +17 -17
  48. package/assets/geoscene/themes/base/widgets/_FeatureTable.scss +26 -26
  49. package/assets/geoscene/themes/base/widgets/_FeatureTemplates.scss +9 -9
  50. package/assets/geoscene/themes/base/widgets/_FloorFilter.scss +93 -93
  51. package/assets/geoscene/themes/base/widgets/_Grid.scss +6 -6
  52. package/assets/geoscene/themes/base/widgets/_HeatmapSlider.scss +2 -2
  53. package/assets/geoscene/themes/base/widgets/_Histogram.scss +10 -10
  54. package/assets/geoscene/themes/base/widgets/_HistogramRangeSlider.scss +27 -27
  55. package/assets/geoscene/themes/base/widgets/_IdentityForm.scss +5 -5
  56. package/assets/geoscene/themes/base/widgets/_IdentityModal.scss +13 -13
  57. package/assets/geoscene/themes/base/widgets/_ItemList.scss +18 -18
  58. package/assets/geoscene/themes/base/widgets/_LayerList.scss +89 -89
  59. package/assets/geoscene/themes/base/widgets/_Legend.scss +95 -95
  60. package/assets/geoscene/themes/base/widgets/_LineOfSight.scss +9 -9
  61. package/assets/geoscene/themes/base/widgets/_NavigationToggle.scss +14 -14
  62. package/assets/geoscene/themes/base/widgets/_OpacitySlider.scss +2 -2
  63. package/assets/geoscene/themes/base/widgets/_Popup.scss +167 -167
  64. package/assets/geoscene/themes/base/widgets/_Print.scss +52 -52
  65. package/assets/geoscene/themes/base/widgets/_ScaleBar.scss +28 -28
  66. package/assets/geoscene/themes/base/widgets/_ScaleRangeSlider.scss +29 -29
  67. package/assets/geoscene/themes/base/widgets/_Search.scss +50 -50
  68. package/assets/geoscene/themes/base/widgets/_SearchResultRenderer.scss +7 -7
  69. package/assets/geoscene/themes/base/widgets/_SelectionToolbar.scss +3 -3
  70. package/assets/geoscene/themes/base/widgets/_ShadowCast.scss +17 -17
  71. package/assets/geoscene/themes/base/widgets/_SizeSlider.scss +2 -2
  72. package/assets/geoscene/themes/base/widgets/_Sketch.scss +24 -24
  73. package/assets/geoscene/themes/base/widgets/_Slice.scss +5 -5
  74. package/assets/geoscene/themes/base/widgets/_Slider.scss +70 -70
  75. package/assets/geoscene/themes/base/widgets/_SnappingControls.scss +16 -16
  76. package/assets/geoscene/themes/base/widgets/_Spinner.scss +12 -12
  77. package/assets/geoscene/themes/base/widgets/_Swipe.scss +15 -15
  78. package/assets/geoscene/themes/base/widgets/_TableList.scss +57 -57
  79. package/assets/geoscene/themes/base/widgets/_TimePicker.scss +3 -3
  80. package/assets/geoscene/themes/base/widgets/_TimeSlider.scss +28 -28
  81. package/assets/geoscene/themes/base/widgets/_UtilityNetworkTrace.scss +8 -8
  82. package/assets/geoscene/themes/base/widgets/_Weather.scss +2 -2
  83. package/assets/geoscene/themes/base/widgets/_Widget.scss +95 -95
  84. package/assets/geoscene/themes/base/widgets/_Zoom.scss +8 -8
  85. package/assets/geoscene/themes/dark/main.css +1 -1
  86. package/assets/geoscene/themes/dark/main.scss +3 -3
  87. package/assets/geoscene/themes/dark-blue/main.css +1 -1
  88. package/assets/geoscene/themes/dark-blue/main.scss +3 -3
  89. package/assets/geoscene/themes/dark-green/main.css +1 -1
  90. package/assets/geoscene/themes/dark-green/main.scss +3 -3
  91. package/assets/geoscene/themes/dark-purple/main.css +1 -1
  92. package/assets/geoscene/themes/dark-purple/main.scss +3 -3
  93. package/assets/geoscene/themes/dark-red/main.css +1 -1
  94. package/assets/geoscene/themes/dark-red/main.scss +3 -3
  95. package/assets/geoscene/themes/light/main.css +1 -1
  96. package/assets/geoscene/themes/light/main.scss +2 -2
  97. package/assets/geoscene/themes/light/view.css +1 -1
  98. package/assets/geoscene/themes/light-blue/main.css +1 -1
  99. package/assets/geoscene/themes/light-blue/main.scss +3 -3
  100. package/assets/geoscene/themes/light-green/main.css +1 -1
  101. package/assets/geoscene/themes/light-green/main.scss +3 -3
  102. package/assets/geoscene/themes/light-purple/main.css +1 -1
  103. package/assets/geoscene/themes/light-purple/main.scss +3 -3
  104. package/assets/geoscene/themes/light-red/main.css +1 -1
  105. package/assets/geoscene/themes/light-red/main.scss +3 -3
  106. package/identity/IdentityForm.js +1 -1
  107. package/identity/IdentityManagerBase.js +1 -1
  108. package/identity/IdentityModal.js +1 -1
  109. package/interfaces.d.ts +1 -1
  110. package/package.json +1 -1
  111. package/portal/schemas/definitions.js +1 -1
  112. package/portal/schemas/sceneLayerItem.js +1 -1
  113. package/support/basemapDefinitions.js +1 -1
  114. package/support/groundUtils.js +1 -1
  115. package/symbols/support/styleUtils.js +1 -1
  116. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  117. package/views/2d/layers/support/clusterUtils.js +1 -1
  118. package/views/2d/navigation/ZoomBox.js +1 -1
  119. package/views/3d/externalRenderers.js +1 -1
  120. package/views/3d/layers/I3SMeshView3D.js +1 -1
  121. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  122. package/views/BreakpointsOwner.js +1 -1
  123. package/views/DOMContainer.js +1 -1
  124. package/views/input/BrowserEventSource.js +1 -1
  125. package/views/overlay/LineOverlayItem.js +1 -1
  126. package/views/overlay/TextOverlayItem.js +1 -1
  127. package/views/overlay/ViewOverlay.js +1 -1
  128. package/views/ui/Component.js +1 -1
  129. package/views/ui/UI.js +1 -1
  130. package/views/webgl/context-util.js +1 -1
  131. package/widgets/AreaMeasurement2D.js +1 -1
  132. package/widgets/AreaMeasurement3D.js +1 -1
  133. package/widgets/Attachments.js +1 -1
  134. package/widgets/Attribution.js +1 -1
  135. package/widgets/BasemapGallery.js +1 -1
  136. package/widgets/BasemapLayerList.js +1 -1
  137. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  138. package/widgets/BasemapToggle.js +1 -1
  139. package/widgets/Bookmarks.js +1 -1
  140. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
  141. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
  142. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  143. package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
  144. package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
  145. package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
  146. package/widgets/BuildingExplorer.js +1 -1
  147. package/widgets/Compass.js +1 -1
  148. package/widgets/CoordinateConversion.js +1 -1
  149. package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
  150. package/widgets/Daylight.js +1 -1
  151. package/widgets/DirectLineMeasurement3D.js +1 -1
  152. package/widgets/Directions/support/resources.js +1 -1
  153. package/widgets/Directions.js +1 -1
  154. package/widgets/DistanceMeasurement2D.js +1 -1
  155. package/widgets/Editor/deprecationUtils.js +1 -1
  156. package/widgets/Editor.js +1 -1
  157. package/widgets/ElevationProfile/css.js +1 -1
  158. package/widgets/Expand.js +1 -1
  159. package/widgets/Feature/FeatureAttachments.js +1 -1
  160. package/widgets/Feature/FeatureContent.js +1 -1
  161. package/widgets/Feature/FeatureExpression.js +1 -1
  162. package/widgets/Feature/FeatureFields.js +1 -1
  163. package/widgets/Feature/FeatureMedia.js +1 -1
  164. package/widgets/Feature/support/FeatureElementInfo.js +1 -1
  165. package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
  166. package/widgets/Feature/support/featureUtils.js +1 -1
  167. package/widgets/Feature.js +1 -1
  168. package/widgets/FeatureForm.js +1 -1
  169. package/widgets/FeatureTable/AttachmentsColumn.js +1 -1
  170. package/widgets/FeatureTable/FieldColumn.js +1 -1
  171. package/widgets/FeatureTable/Grid/Column.js +1 -1
  172. package/widgets/FeatureTable/Grid/EditorColumn.js +1 -1
  173. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  174. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  175. package/widgets/FeatureTable.js +1 -1
  176. package/widgets/FeatureTemplates/ItemList.js +1 -1
  177. package/widgets/FeatureTemplates.js +1 -1
  178. package/widgets/FloorFilter.js +1 -1
  179. package/widgets/Fullscreen.js +1 -1
  180. package/widgets/Histogram.js +1 -1
  181. package/widgets/HistogramRangeSlider.js +1 -1
  182. package/widgets/Home.js +1 -1
  183. package/widgets/LayerList/ListItemPanel.js +1 -1
  184. package/widgets/LayerList.js +1 -1
  185. package/widgets/Legend/styles/Card.js +1 -1
  186. package/widgets/Legend/styles/Classic.js +1 -1
  187. package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
  188. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  189. package/widgets/Legend.js +1 -1
  190. package/widgets/LineOfSight.js +1 -1
  191. package/widgets/Locate.js +1 -1
  192. package/widgets/Measurement.js +1 -1
  193. package/widgets/NavigationToggle.js +1 -1
  194. package/widgets/Popup.js +1 -1
  195. package/widgets/Print.js +1 -1
  196. package/widgets/ScaleBar.js +1 -1
  197. package/widgets/ScaleRangeSlider.js +1 -1
  198. package/widgets/Search/SearchResultRenderer.js +1 -1
  199. package/widgets/Search.js +1 -1
  200. package/widgets/ShadowCast/css.js +1 -1
  201. package/widgets/Sketch.js +1 -1
  202. package/widgets/Slice.js +1 -1
  203. package/widgets/Slider.js +1 -1
  204. package/widgets/Spinner.js +1 -1
  205. package/widgets/Swipe.js +1 -1
  206. package/widgets/TableList.js +1 -1
  207. package/widgets/TimeSlider.js +1 -1
  208. package/widgets/Track.js +1 -1
  209. package/widgets/UtilityNetworkTrace.js +1 -1
  210. package/widgets/Weather/css.js +1 -1
  211. package/widgets/Widget.js +1 -1
  212. package/widgets/Zoom/IconButton.js +1 -1
  213. package/widgets/Zoom.js +1 -1
  214. package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
  215. package/widgets/smartMapping/ClassedColorSlider.js +1 -1
  216. package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
  217. package/widgets/smartMapping/ColorSizeSlider.js +1 -1
  218. package/widgets/smartMapping/ColorSlider.js +1 -1
  219. package/widgets/smartMapping/HeatmapSlider.js +1 -1
  220. package/widgets/smartMapping/OpacitySlider.js +1 -1
  221. package/widgets/smartMapping/SizeSlider.js +1 -1
  222. package/widgets/support/ColorPicker.js +1 -1
  223. package/widgets/support/DatePicker.js +1 -1
  224. package/widgets/support/Heading.js +1 -1
  225. package/widgets/support/Popover.js +1 -1
  226. package/widgets/support/SelectionToolbar.js +1 -1
  227. package/widgets/support/SnappingControls.js +1 -1
  228. package/widgets/support/TimePicker.js +1 -1
  229. package/widgets/support/widgetThemeUtils.js +1 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{getAssetUrl as e}from"../../../assets.js";import{isNone as t}from"../../../core/maybe.js";const n="esri-directions",r={base:`${n} esri-widget esri-widget--panel`,directionsButton:`${n}__button`,clearRouteButton:`${n}__clear-route-button`,scroller:`${n}__scroller`,panelContent:`${n}__panel-content`,panelContentLoading:`${n}__panel-content--loading`,panelContentError:`${n}__panel-content--error`,panelContentSignIn:`${n}__panel-content--sign-in`,loader:`${n}__loader`,message:`${n}__message`,travelModeSelect:`${n}__travel-modes-select`,departureTime:`${n}__departure-time`,departureTimeSelect:`${n}__departure-time-select`,directionsSection:`${n}__directions-section`,departureTimeControls:`${n}__departure-time-controls`,section:`${n}__section`,summary:`${n}__summary`,stopIcon:`${n}__stop-icon`,interactiveStopIcon:`${n}__stop-icon--interactive`,removeStopButton:`${n}__remove-stop`,removeStop:`${n}__remove-stop-icon`,reverseStops:`${n}__reverse-stops`,stopIconContainer:`${n}__stop-icon-container`,lastStopIconContainer:`${n}__stop-icon-container--last`,stopHandle:`${n}__stop-handle`,stopInput:`${n}__stop-input`,stopOptions:`${n}__stop-options`,stopHandleIcon:`${n}__stop-handle-icon`,verticalSplitter:`${n}__vertical-splitter`,stopRow:`${n}__stop-row`,stopRowGhost:`${n}__stop-row-ghost`,validStopRow:`${n}__stop-row--valid`,stops:`${n}__stops`,addStop:`${n}__add-stop`,addStopText:`${n}__add-stop-text`,directionCosts:`${n}__costs`,costsDetails:`${n}__costs-details`,primaryCosts:`${n}__costs-value`,secondaryCosts:`${n}__other-costs-total`,routeActions:`${n}__route-actions`,maneuvers:`${n}__maneuvers`,maneuverList:`${n}__maneuver-list`,maneuverSection:`${n}__maneuver-section`,maneuverSectionHeader:`${n}__maneuver-section-header`,maneuverSectionHeaderButton:`${n}__maneuver-section-header-toggle-button`,maneuverSectionTitle:`${n}__maneuver-section-title`,collapsibleSection:`${n}__maneuver-section--collapsible`,maneuverSectionToggle:`${n}__maneuver-section-toggle`,maneuver:`${n}__maneuver`,maneuverActive:`${n}__maneuver--active`,maneuverCosts:`${n}__maneuver-costs`,maneuverCostsContainer:`${n}__maneuver-costs-container`,maneuverIcon:`${n}__maneuver-icon`,cumulativeCost:`${n}__cost--cumulative`,intermediateCost:`${n}__cost--intermediate`,horizontalSplitter:`${n}__horizontal-splitter`,sectionSplitter:`${n}__section-splitter`,disclaimer:`${n}__disclaimer`,signInContent:`${n}__sign-in-content`,signInButton:`${n}__sign-in-button`,contentTitle:`${n}__content-title`,warningCard:`${n}__warning-card`,warningHeader:`${n}__warning-header`,warningHeading:`${n}__warning-heading`,warningMessage:`${n}__warning-message`,stopsIcon:"geoscene-icon-radio-unchecked",lastStopIcon:"geoscene-icon-radio-checked",handleIcon:"geoscene-icon-handle-vertical",addStopIcon:"geoscene-icon-plus",removeStopIcon:"geoscene-icon-trash",reverseStopIcon:"geoscene-icon-up-down-arrows",openIcon:"geoscene-icon-down",closeIcon:"geoscene-icon-up",warningIcon:"geoscene-icon-notice-triangle",widgetIcon:"geoscene-icon-directions",button:"esri-button",buttonSecondary:"esri-button--secondary",buttonTertiary:"esri-button--tertiary",emptyContent:"esri-widget__content--empty",emptyIllustration:"esri-widget__content-illustration--empty",select:"esri-select",screenReaderText:"geoscene-icon-font-fallback-text"},o=new Map([["bear-left","bear-left"],["bear-right","bear-right"],["central-fork","fork-middle"],["door","walk-through-door"],["elevator","elevator"],["escalator","escalator"],["left-fork","fork-left"],["left-ramp","ramp-left"],["left-turn","left"],["left-turn-and-immediate-left-turn","left-left"],["left-turn-and-immediate-right-turn","left-right"],["off-ferry","disembark"],["on-ferry","embark"],["pedestrian-ramp","take-pedestrian-ramp"],["right-fork","fork-right"],["right-ramp","exit-highway-right"],["right-ramp","ramp-right"],["right-turn","right"],["right-turn-and-immediate-left-turn","right-left"],["right-turn-and-immediate-right-turn","right-right"],["roundabout","roundabout-left"],["sharp-left","sharp-left"],["sharp-right","sharp-right"],["stairs","stairs"],["straight","straight"],["u-turn","u-turn-left"]]);var i;!function(e){e.NOW="now",e.DEPART_BY="depart-by",e.UNSPECIFIED="unspecified"}(i||(i={}));const a=()=>e("geoscene/themes/base/images/maneuvers/");function s(e){if(t(e)||!o.has(e))return null;const n=o.get(e),r=2===window.devicePixelRatio?"@2x":"";return`${a()}${n}${r}.png`}export{r as CSS,i as DepartureTime,s as getIconPath,a as getManeuversIconDir};
5
+ import{getAssetUrl as e}from"../../../assets.js";import{isNone as t}from"../../../core/maybe.js";const n="geoscene-directions",r={base:`${n} geoscene-widget geoscene-widget--panel`,directionsButton:`${n}__button`,clearRouteButton:`${n}__clear-route-button`,scroller:`${n}__scroller`,panelContent:`${n}__panel-content`,panelContentLoading:`${n}__panel-content--loading`,panelContentError:`${n}__panel-content--error`,panelContentSignIn:`${n}__panel-content--sign-in`,loader:`${n}__loader`,message:`${n}__message`,travelModeSelect:`${n}__travel-modes-select`,departureTime:`${n}__departure-time`,departureTimeSelect:`${n}__departure-time-select`,directionsSection:`${n}__directions-section`,departureTimeControls:`${n}__departure-time-controls`,section:`${n}__section`,summary:`${n}__summary`,stopIcon:`${n}__stop-icon`,interactiveStopIcon:`${n}__stop-icon--interactive`,removeStopButton:`${n}__remove-stop`,removeStop:`${n}__remove-stop-icon`,reverseStops:`${n}__reverse-stops`,stopIconContainer:`${n}__stop-icon-container`,lastStopIconContainer:`${n}__stop-icon-container--last`,stopHandle:`${n}__stop-handle`,stopInput:`${n}__stop-input`,stopOptions:`${n}__stop-options`,stopHandleIcon:`${n}__stop-handle-icon`,verticalSplitter:`${n}__vertical-splitter`,stopRow:`${n}__stop-row`,stopRowGhost:`${n}__stop-row-ghost`,validStopRow:`${n}__stop-row--valid`,stops:`${n}__stops`,addStop:`${n}__add-stop`,addStopText:`${n}__add-stop-text`,directionCosts:`${n}__costs`,costsDetails:`${n}__costs-details`,primaryCosts:`${n}__costs-value`,secondaryCosts:`${n}__other-costs-total`,routeActions:`${n}__route-actions`,maneuvers:`${n}__maneuvers`,maneuverList:`${n}__maneuver-list`,maneuverSection:`${n}__maneuver-section`,maneuverSectionHeader:`${n}__maneuver-section-header`,maneuverSectionHeaderButton:`${n}__maneuver-section-header-toggle-button`,maneuverSectionTitle:`${n}__maneuver-section-title`,collapsibleSection:`${n}__maneuver-section--collapsible`,maneuverSectionToggle:`${n}__maneuver-section-toggle`,maneuver:`${n}__maneuver`,maneuverActive:`${n}__maneuver--active`,maneuverCosts:`${n}__maneuver-costs`,maneuverCostsContainer:`${n}__maneuver-costs-container`,maneuverIcon:`${n}__maneuver-icon`,cumulativeCost:`${n}__cost--cumulative`,intermediateCost:`${n}__cost--intermediate`,horizontalSplitter:`${n}__horizontal-splitter`,sectionSplitter:`${n}__section-splitter`,disclaimer:`${n}__disclaimer`,signInContent:`${n}__sign-in-content`,signInButton:`${n}__sign-in-button`,contentTitle:`${n}__content-title`,warningCard:`${n}__warning-card`,warningHeader:`${n}__warning-header`,warningHeading:`${n}__warning-heading`,warningMessage:`${n}__warning-message`,stopsIcon:"geoscene-icon-radio-unchecked",lastStopIcon:"geoscene-icon-radio-checked",handleIcon:"geoscene-icon-handle-vertical",addStopIcon:"geoscene-icon-plus",removeStopIcon:"geoscene-icon-trash",reverseStopIcon:"geoscene-icon-up-down-arrows",openIcon:"geoscene-icon-down",closeIcon:"geoscene-icon-up",warningIcon:"geoscene-icon-notice-triangle",widgetIcon:"geoscene-icon-directions",button:"geoscene-button",buttonSecondary:"geoscene-button--secondary",buttonTertiary:"geoscene-button--tertiary",emptyContent:"geoscene-widget__content--empty",emptyIllustration:"geoscene-widget__content-illustration--empty",select:"geoscene-select",screenReaderText:"geoscene-icon-font-fallback-text"},o=new Map([["bear-left","bear-left"],["bear-right","bear-right"],["central-fork","fork-middle"],["door","walk-through-door"],["elevator","elevator"],["escalator","escalator"],["left-fork","fork-left"],["left-ramp","ramp-left"],["left-turn","left"],["left-turn-and-immediate-left-turn","left-left"],["left-turn-and-immediate-right-turn","left-right"],["off-ferry","disembark"],["on-ferry","embark"],["pedestrian-ramp","take-pedestrian-ramp"],["right-fork","fork-right"],["right-ramp","exit-highway-right"],["right-ramp","ramp-right"],["right-turn","right"],["right-turn-and-immediate-left-turn","right-left"],["right-turn-and-immediate-right-turn","right-right"],["roundabout","roundabout-left"],["sharp-left","sharp-left"],["sharp-right","sharp-right"],["stairs","stairs"],["straight","straight"],["u-turn","u-turn-left"]]);var i;!function(e){e.NOW="now",e.DEPART_BY="depart-by",e.UNSPECIFIED="unspecified"}(i||(i={}));const a=()=>e("geoscene/themes/base/images/maneuvers/");function s(e){if(t(e)||!o.has(e))return null;const n=o.get(e),r=2===window.devicePixelRatio?"@2x":"";return`${a()}${n}${r}.png`}export{r as CSS,i as DepartureTime,s as getIconPath,a as getManeuversIconDir};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../Graphic.js";import"../intl.js";import s from"../core/Collection.js";import{on as i,pausable as o}from"../core/events.js";import r from"../core/Handles.js";import{isNone as n,isSome as a,unwrap as l,unwrapOrValue as c}from"../core/maybe.js";import{watch as d,initial as h,when as u,on as p}from"../core/reactiveUtils.js";import{aliasOf as m}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as v}from"../core/accessorSupport/decorators/property.js";import{subclass as _}from"../core/accessorSupport/decorators/subclass.js";import g from"../rest/support/Stop.js";import S from"./Search.js";import w from"./Widget.js";import y from"./Directions/DirectionsViewModel.js";import{formatDistance as M,formatTime as b,isTimeUnits as f}from"./Directions/support/directionsUtils.js";import{DepartureTime as T,CSS as C,getIconPath as I}from"./Directions/support/resources.js";import{isArcGISWorldGeocoder as k,meteredArcGISLocatorUrl as R}from"./Search/support/locatorUtils.js";import D from"./support/DatePicker.js";import{Heading as P,incrementHeadingLevel as j}from"./support/Heading.js";import x from"./support/TimePicker.js";import{accessibleHandler as H}from"./support/decorators/accessibleHandler.js";import{messageBundle as U}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as L}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import z from"sortablejs";import{substitute as E}from"../intl/substitute.js";import{formatDate as A,convertDateFormatToIntlOptions as O}from"../intl/date.js";import{formatNumber as $}from"../intl/number.js";function N(e){const t=e.getTimezoneOffset(),s=t>0?"-":"+",i=60,o=Math.abs(Math.floor(t/i)),r=Math.abs(Math.floor(t)%i),n={minimumIntegerDigits:2};return`GMT${s}${$(o,n)}${$(r,n)}`}function B(){return[{},{}]}function F(e){return e.results[0].results[0]}function V(e){return!(null==e.composedPath||!e.composedPath().find((e=>{var t;return null==(t=e.classList)?void 0:t.contains("esri-search__suggestions-list")})))}const W={awaitingViewClickStop:"awaiting-view-click-stop"},K=100,q=500;let Y=class extends w{constructor(e,t){super(e,t),this._autoStopRemovalDelay=K,this._departureTime=T.NOW,this._datePicker=new D,this._handles=new r,this._newPlaceholderStop=null,this._pointerPressedSearchSuggestionStop=null,this._sections=null,this._stops=new s(B()),this._stopsToSearches=new Map,this._timePicker=new x,this.apiKey=null,this.goToOverride=null,this.headingLevel=2,this.iconClass=C.widgetIcon,this.label=void 0,this.lastRoute=null,this.maxStops=null,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.routeServiceUrl=void 0,this.routeSymbol=null,this.searchProperties=null,this.stopSymbols=null,this.view=null,this.viewModel=new y,this._setUpDragAndDropStops=e=>{this._sortable=z.create(e,{draggable:`.${C.validStopRow}`,ghostClass:C.stopRowGhost,handle:`.${C.stopHandle}`,onEnd:this._handleStopInputDragEnd})},this._handleDragHandlePointerDown=()=>this._stops.forEach((e=>this._acquireSearch(e).activeMenu="none")),this._handleStopInputDragEnd=({oldIndex:e,newIndex:t,target:s})=>{if(e===t)return;const{children:i}=s,o=i[t],r=i[e],n=t-e<0;s.insertBefore(o,n?r.nextElementSibling:r);const a=this._stops;a.reorder(a.getItemAt(e),t),this._processStops()}}initialize(){this.own([d((()=>this.viewModel.lastRoute),(()=>{this._activeManeuver=null,this._focusedManeuver=null,this._sections=this._getSections(),this.scheduleRender()}),h),d((()=>[this.viewModel.selectedTravelMode,this.viewModel.departureTime]),(()=>{this.viewModel.stops.length>1&&this.getDirections()}),h),u((()=>this.view),((e,t)=>{if(t&&(this._viewClickHandle=null,this._handles.remove(t)),e){const t=this._prepPointerDownUpClick(),s=this._prepViewClick();t.pause(),s.pause(),this._handles.add([i(e.surface,"mousedown",(()=>this._autoStopRemovalDelay=q)),i(e.surface,"mouseup",(()=>this._autoStopRemovalDelay=K)),t,s],this.view.surface),this._pointerDownUpHandle=t,this._viewClickHandle=s}}),h),u((()=>0===this.viewModel.stops.length),(()=>{this._stops.drain((e=>{this._disposeSearch(e)})),this._stops.addMany(B()),this.scheduleRender()})),u((()=>n(this.viewModel.serviceDescription)),(()=>{this.viewModel.load()}),h)])}destroy(){this._datePicker.destroy(),this._timePicker.destroy(),this._stopsToSearches.forEach((e=>e.destroy())),this._sortable&&this._sortable.destroy()}getDirections(){return null}zoomToRoute(){}render(){return L("div",{class:this.classes(C.base,C.scroller)},this._renderPanelContent())}_renderPanelContent(){const{viewModel:{state:e}}=this,t="initializing"===e,s="error"===e&&!this.viewModel.serviceDescription,i="unauthenticated"===e,o={[C.panelContentLoading]:t,[C.panelContentError]:s,[C.panelContentSignIn]:i},r=t?"presentation":"group",n=i?this._renderSignIn():s?this._renderMessage(this._getErrorMessage()):t?this._renderLoader():this._renderReadyContent();return L("div",{class:this.classes(C.panelContent,o),role:r},n)}_renderReadyContent(){return[this._renderStopsContainer(),this._renderTravelModeOptions(),this._renderDepartureTimeControls(),this._renderSectionSplitter(),this._renderDirectionsContainer()]}_renderSignIn(){return L("div",{key:"sign-in",class:C.signInContent},L(P,{class:C.contentTitle,level:this.headingLevel},this.messages.widgetLabel),this._renderPlaceholder(),L(P,{level:j(this.headingLevel)},this.messages.signInRequired),L("button",{class:this.classes(C.button,C.buttonSecondary,C.signInButton),tabIndex:0,onclick:this._handleSignInClick,bind:this,type:"button"},this.messagesCommon.auth.signIn))}_handleSignInClick(){this.viewModel.load().catch((()=>{}))}_renderTravelModeOptions(){const{selectedTravelMode:e,travelModes:t}=this.viewModel;if(0===t.length)return null;const s=a(e)?e.name:this.messages.travelMode;return L("select",{"aria-label":s,bind:this,class:this.classes(C.travelModeSelect,C.select),key:"esri-directions__travel-mode-options",onchange:this._handleTravelModeChange,title:s},t.map((t=>{const s=a(e)&&t.id===e.id;return L("option",{key:t,"data-mode":t,selected:s,value:t.id},t.name)})))}_handleTravelModeChange(e){const t=e.currentTarget,s=t.item(t.selectedIndex);this.viewModel.selectedTravelMode=s["data-mode"]}_renderStopsContainer(){return L("div",{class:C.section,key:"esri-directions__stops-container",role:"group"},this._renderStops())}_renderDepartureTimeControls(){const e=this._departureTime,{messages:t}=this,s=t.departureTime;return L("div",{class:C.departureTime,key:"esri-directions__departure-time-controls",role:"group"},L("select",{"aria-label":s,bind:this,class:this.classes(C.departureTimeSelect,C.select),onchange:this._handleDepartureOptionChange,title:s},L("option",{value:T.NOW,selected:e===T.NOW},t.leaveNow),L("option",{value:T.DEPART_BY,selected:e===T.DEPART_BY},t.departBy),L("option",{value:T.UNSPECIFIED,selected:e===T.UNSPECIFIED},t.timeUnspecified)),e===T.DEPART_BY?this._renderTimeControls():null)}_renderStops(){const e=this._stops;let t=0;e.forEach((e=>{"none"!==this._acquireSearch(e).activeMenu&&(t+=1)}));const s=e.toArray().map(((s,i)=>{const o=e.length,r=i>1&&!s.result,n={[C.stopsIcon]:i>=0&&i<o-1,[C.lastStopIcon]:i===o-1},a={[C.lastStopIconContainer]:i===o-1},l={[C.validStopRow]:!r},c=e.getItemAt(o-1),d=c&&c.result,h=e.getItemAt(i+1),u=h&&h.result,p=i===o-1,m=i===o-2,v=2===o&&0===i||o>2&&!p&&!m||o>2&&m&&u||o>2&&p&&!s.result,_=2===o||3===o&&!d||r,g=this._acquireSearch(s),{messages:S}=this,{removeStop:w,reverseStops:y,unlocated:M}=S,b=E(S.stopLabelTemplate,{number:i+1,label:s.result?s.result.name:M}),f=`${this.id}__stop--${i}`,T=!!g.searchTerm&&!!g.selectedResult&&!!s.result&&g.selectedResult===s.result,I={zIndex:"none"!==g.activeMenu?""+t--:""};return L("li",{"aria-label":b,afterCreate:this._handleStopFieldCreation,bind:this,class:this.classes(C.stopRow,l),id:f,key:i,"data-stop-index":i,styles:I},L("div",{class:C.stopHandle},L("span",{"aria-hidden":"true",class:this.classes(C.stopIcon,C.handleIcon,C.stopHandleIcon,C.interactiveStopIcon),onpointerdown:this._handleDragHandlePointerDown}),L("div",{bind:this,"aria-labelledby":f,class:this.classes(C.stopIconContainer,a),"data-stop-index":i,onclick:this._handleStopIconClick,onkeydown:this._handleStopIconClick,role:"button"},L("span",{class:this.classes(C.stopIcon,n),tabindex:T?"0":null}))),L("div",{class:C.stopInput},g.render()),L("div",{class:C.stopOptions,role:"group"},L("div",{"aria-label":w,class:C.removeStopButton,bind:this,"data-stop-index":i,hidden:_,onkeydown:this._handleRemoveStop,onclick:this._handleRemoveStop,role:"button",tabIndex:0,title:w},L("span",{"aria-hidden":"true",class:this.classes(C.stopIcon,C.removeStop,C.removeStopIcon,C.interactiveStopIcon)}),L("span",{class:C.screenReaderText},"removeStopTitle")),L("div",{"aria-label":y,class:C.reverseStops,bind:this,hidden:v,onkeydown:this._handleReverseStops,onclick:this._handleReverseStops,role:"button",tabIndex:0,title:y},L("span",{"aria-hidden":"true",class:this.classes(C.stopIcon,C.reverseStopIcon,C.interactiveStopIcon)}),L("span",{class:C.screenReaderText},"removeStopTitle"))))})),i=e.every((e=>{const t=this._stopsToSearches.get(e);return e.result&&t.selectedResult===e.result})),o=this._stops.length>=this.maxStops,r=this.messages.addStop,n=e.length>=2&&i&&!o?L("div",{"aria-label":r,bind:this,class:C.addStop,key:"esri-directions__add-stop",onfocus:this._handleAddStopFocus,tabIndex:0},L("span",{"aria-hidden":"true",class:this.classes(C.addStopIcon,C.stopIcon,C.interactiveStopIcon)}),L("div",{"aria-hidden":"true",class:C.addStopText},r)):null;return L("div",null,L("ol",{class:C.stops,role:"group",afterCreate:this._setUpDragAndDropStops},s),n)}_handleStopIconClick(e){const t=e.currentTarget["data-stop-index"],s=this._stops.getItemAt(t);s&&s.result&&this._centerAtStop(s)}_handleClearRouteClick(){this.viewModel.reset()}_centerAtStop(e){this.viewModel.centerAt(e.result.feature)}_handleStopFieldCreation(e){const t=this._newPlaceholderStop;if(!t)return;const s=e["data-stop-index"],i=this._stops.getItemAt(s);if(t===i){const e=this._acquireSearch(i);e.when((()=>{this.renderNow(),e.focus()}))}this._newPlaceholderStop=null}_handleStopInputBlur(e,t){this._handles.remove(W.awaitingViewClickStop),this.view.cursor=this._previousCursor;if(!e.selectedResult||!t.result||e.selectedResult!==t.result)return"none"!==e.activeMenu||!e.searchTerm||e.selectedResult===t.result&&(e.selectedResult||t.result)?void(e.searchTerm||(this._viewClickHandle.resume(),clearTimeout(this._autoStopRemovalTimeoutId),this._autoStopRemovalTimeoutId=setTimeout((()=>{if(this.destroyed)return;if(this._viewClickHandle.pause(),"searching"===e.viewModel.state)return void this._pointerDownUpHandle.pause();if(this._pointerPressedSearchSuggestionStop)return;!!t.result&&(t.result=null,this._processStops()),this.scheduleRender()}),this._autoStopRemovalDelay))):(e.search(),void this._pointerDownUpHandle.pause());this._pointerDownUpHandle.pause()}_handleStopInputFocus(e,t){if(this._pointerDownUpHandle.resume(),this._handles.has(W.awaitingViewClickStop))return;const{view:s,view:{cursor:i}}=this;this._previousCursor=i,this._handles.add(d((()=>e.searchTerm),(e=>{s.cursor=0===e.length?"copy":i}),h),W.awaitingViewClickStop),this._activeStop=t}_prepViewClick(){const{view:e}=this.viewModel,t=o(e,"click",this._handleViewClick.bind(this)),s=o(e.surface,"click",(()=>{clearTimeout(this._autoStopRemovalTimeoutId),s.pause()}));return{remove(){s.remove(),t.remove()},pause(){s.pause(),t.pause()},resume(){s.resume(),t.resume()}}}_prepPointerDownUpClick(){const e=o(document,"pointerdown",(e=>{this._pointerPressedSearchSuggestionStop=V(e)?this._activeStop:null})),t=o(document,"pointerup",(e=>{this._pointerDownUpHandle.pause();const t=V(e),s=this._activeStop;t||s!==this._pointerPressedSearchSuggestionStop||this._removeStop(s),this.scheduleRender(),this._pointerPressedSearchSuggestionStop=t?this._activeStop:null}));return{remove(){t.remove(),e.remove()},pause(){t.pause(),e.pause()},resume(){e.resume()}}}_handleViewClick(e){const t=this._stopsToSearches.get(this._activeStop);t&&!t.searchTerm&&(t.search(e.mapPoint).then((e=>{const s=F(e),i=this._activeStop;i.result=s,i.result.feature.attributes.Name=s.name,t.searchTerm=s.name})),this.scheduleRender()),this._viewClickHandle.pause(),clearTimeout(this._autoStopRemovalTimeoutId)}_handleAddStopFocus(){this._addNewPlaceholder()}_addNewPlaceholder(){if(this._pointerDownUpHandle.pause(),this._newPlaceholderStop)return;const e={};this._stops.add(e),this._newPlaceholderStop=e}_handleReverseStops(){this._reverseStops()}_reverseStops(){this._stops.reverse(),this._processStops()}_handleRemoveStop(e){const t=e.currentTarget["data-stop-index"];this._removeStop(this._stops.getItemAt(t)),this._processStops()}_removeStop(e){this._stops.length<=2||(this._disposeSearch(e),this._stops.remove(e))}_handleDepartureOptionChange(e){const t=e.currentTarget,s=t.item(t.selectedIndex);s.value===T.NOW?(this._departureTime=T.NOW,this.viewModel.departureTime=T.NOW,this._handles.remove("departure-time-controls")):s.value===T.DEPART_BY?(this._departureTime=T.DEPART_BY,this._handles.add([d((()=>this._datePicker.value),(()=>this._updateDepartureTime()),h),d((()=>this._timePicker.value),(()=>this._updateDepartureTime()),h)],"departure-time-controls")):(this._departureTime=T.UNSPECIFIED,this.viewModel.departureTime=null)}_updateDepartureTime(){const e=this._datePicker.value,t=this._timePicker.value;e&&t&&(this.viewModel.departureTime=new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes()))}_renderTimeControls(){return L("div",{class:C.departureTimeControls,key:"esri-directions__time-controls",role:"group"},this._datePicker.render(),this._timePicker.render())}_renderSectionSplitter(){return L("div",{class:C.sectionSplitter})}_renderDirectionsContainer(){return L("div",{class:this.classes(C.directionsSection,C.section),key:"esri-directions__container"},this._renderDirectionsContainerContent())}_renderLoader(){return L("div",{class:C.loader,key:"loader"})}_renderWarningCard(){return L("div",{class:C.warningCard,role:"alert"},L("div",{class:C.warningHeader},L("span",{class:C.warningIcon,"aria-hidden":"true"}),L(P,{class:C.warningHeading,level:this.headingLevel},this.messagesCommon.warning)),L("div",{class:C.warningMessage},this._getErrorMessage()))}_renderDirectionsContainerContent(){const{lastRoute:e,viewModel:{state:t}}=this,s="routing"===t;return"error"===t?this._renderWarningCard():s?this._renderLoader():a(e)&&a(e.directionLines)?L("div",{class:C.summary,key:"esri-directions__summary",role:"group"},this._renderCosts(),this._renderRouteActions(),this._renderManeuverSections()):L("div",{key:"esri-directions__placeholder",class:C.emptyContent},this._renderPlaceholder(),L(P,{class:C.message,level:this.headingLevel},this.messages.directionsPlaceholder))}_renderPlaceholder(){return L("svg",{class:C.emptyIllustration,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256"},L("path",{fill:"currentcolor",d:"M192 36c-15.477 0-24 6.034-24 16.99v45.822l24 24 24-24v-45.82C216 42.033 207.477 36 192 36zm20 61.155l-20 20-20-20V52.99c0-8.62 6.73-12.99 20-12.99s20 4.37 20 12.99zM192 52a12 12 0 1 0 12 12 12.013 12.013 0 0 0-12-12zm0 20a8 8 0 1 1 8-8 8.008 8.008 0 0 1-8 8zM92 140.99C92 130.035 83.477 124 68 124s-24 6.034-24 16.99v45.822l24 24 24-24zm-4 44.165l-20 20-20-20V140.99c0-8.62 6.73-12.99 20-12.99s20 4.37 20 12.99zM68 140a12 12 0 1 0 12 12 12.013 12.013 0 0 0-12-12zm0 20a8 8 0 1 1 8-8 8.008 8.008 0 0 1-8 8zm84-44h16v4h-16zm-24 80h4v12h-12v-4h8zm0-28h4v16h-4zm0-52h12v4h-8v8h-4zm0 24h4v16h-4zm-36 64h16v4H92z"}))}_renderMessage(e){return L(P,{level:this.headingLevel},e)}_renderRouteActions(){return L("div",{class:C.routeActions},L("button",{"aria-label":this.messages.clearRoute,class:this.classes(C.clearRouteButton,C.button,C.buttonTertiary),tabIndex:0,onclick:this._handleClearRouteClick,bind:this,type:"button"},this.messages.clearRoute))}_getSections(){if(n(this.lastRoute))return null;const{directionPoints:e,directionLines:t,stops:s}=this.lastRoute;if(n(e)||n(t))return null;const i=[];let o=null;for(const r of e){const{objectId:e,stopId:l}=r;if(a(l)){const e=s.find((e=>e.objectId===l)),t=0===i.length;(n(o)||o.stop!==e)&&(o={stop:e,directions:[],open:t},i.push(o));continue}if(n(o))continue;const c=t.find((t=>t.directionPointId===e));n(c)||o.directions.push({directionPoint:r,directionLine:c})}return i}_renderManeuverSections(){return n(this._sections)?null:L("div",{class:C.maneuvers,role:"group"},this._sections.map(((e,t)=>{const{open:s}=e;let i;e.directions.length>0&&s&&(i=L("ol",{class:C.maneuverList},e.directions.map((e=>this._renderManeuver(e)))));const o=l(this._sections).length>2,r=t===l(this._sections).length-1,n={[C.collapsibleSection]:o},a={[C.openIcon]:!s,[C.closeIcon]:s};let c;if(o&&!r){const t=s?this.messagesCommon.open:this.messagesCommon.close;c=L("header",{class:this.classes(C.maneuverSectionHeader,C.maneuverSectionToggle),key:"esri-directions__maneuver-section-header"},L("div",{"aria-expanded":s.toString(),"aria-label":t,bind:this,class:C.maneuverSectionHeaderButton,"data-maneuver-section":e,onkeydown:this._handleSectionToggle,onclick:this._handleSectionToggle,role:"button",tabIndex:0,title:t},L(P,{class:C.maneuverSectionTitle,level:this.headingLevel},e.stop.name),L("span",{"aria-hidden":"true",class:this.classes(a)})))}else c=L("header",{class:C.maneuverSectionHeader,key:"esri-directions__maneuver-section-header"},L(P,{class:C.maneuverSectionTitle,level:this.headingLevel},e.stop.name));return L("section",{class:this.classes(C.maneuverSection,n),key:t},c,i)})))}_handleSectionToggle(e){const t=e.currentTarget["data-maneuver-section"];t.open=!t.open}_renderCosts(){const{lastRoute:e}=this;if(n(e))return null;const t=this._getCostSummary(),{directionPoints:s}=e;if(n(s)||n(t))return null;const i=s.getItemAt(s.length-1).arrivalTime,{primary:o,secondary:r}=t,{eta:l,etaTemplate:c,primaryCosts:d,secondaryCosts:h,zoomToRoute:u}=this.messages,p=O("short-time"),m=a(i)?`<strong>${A(i,p)}</strong>`:null,v=a(i)?`${N(i)}`:null,_=E(c,{time:m,gmt:v});return L("div",{"aria-label":u,bind:this,class:C.directionCosts,onkeydown:this._handleSummaryInteraction,onclick:this._handleSummaryInteraction,role:"button",tabIndex:0,title:u},L("div",{class:C.costsDetails,role:"group"},L("div",{"aria-label":d,class:C.primaryCosts,title:d},o),L("div",{class:C.verticalSplitter}),L("div",{"aria-label":h,class:C.secondaryCosts,title:h},r)),L("div",{"aria-label":l,innerHTML:_,title:l}))}_handleSummaryInteraction(){this._activeManeuver=null,this._focusedManeuver=null,this.viewModel.clearHighlights(),this.zoomToRoute()}_getErrorMessage(){const{messages:e,viewModel:{error:t}}=this;if(a(t))switch(t.name){case"directions-view-model:unable-to-route":return e.errors.unableToRoute;case"directions-view-model:service-metadata-unavailable":return e.errors.unableToLoadServiceMetadata}return e.errors.unknownError}_normalizeSearchSources(e){this._overrideDefaultSources(e),this._applyLocatorSourceOverrides(e)}_overrideDefaultSources(e){e.viewModel.defaultSources.forEach((e=>{e.autoNavigate=!1}))}_applyLocatorSourceOverrides({allSources:e}){0!==e.length&&e.forEach((e=>{"url"in e&&e.url&&(null===e.locationType&&(e.locationType="street"),k(e.url)&&this.apiKey&&null==e.apiKey&&(e.apiKey=this.apiKey,e.url=R))}))}_acquireSearch(e){const t=this.get("viewModel.view");if(this._stopsToSearches.has(e)){const s=this._stopsToSearches.get(e);return s.view=t,this._overrideDefaultSources(s),s}const s=new S({view:t,resultGraphicEnabled:!1,popupEnabled:!1,...this.searchProperties});return this._normalizeSearchSources(s),this._handles.add([p((()=>s.allSources),"change",(()=>this._normalizeSearchSources(s))),s.on("select-result",(()=>{e.result=s.selectedResult,e.result.feature.attributes.Name=s.selectedResult.name,this._processStops(),this.scheduleRender()})),s.on("search-focus",(()=>this._handleStopInputFocus(s,e))),s.on("search-blur",(()=>this._handleStopInputBlur(s,e)))],s),this._stopsToSearches.set(e,s),s}_disposeSearch(e){this._stopsToSearches.get(e).destroy(),this._stopsToSearches.delete(e)}_processStops(){const e=this._stops.filter((e=>!!e.result)).map((e=>g.fromJSON(e.result.feature.toJSON())));this.viewModel.stops=e,e.length>1&&this.getDirections()}_renderManeuver(e){const t="",{directionsLengthUnits:s}=this.viewModel.routeParameters,{directionPoint:i,directionLine:o}=e,{distance:r,duration:n}=o,{messages:l,messagesUnits:d}=this,h=M(l,d,c(r,0),{fromUnits:"meters",toUnits:s}),u=b(c(n,0),"minutes"),p=h&&u?`${h}&nbsp;&middot;&nbsp;${u}`:`${h}${u}`,m=this._getFormattedManeuverText(i),{objectId:v,directionPointType:_}=i,g=I(_),S=`esri-directions__maneuver-${v}`,w=`esri-directions__cumulative-costs-${v}`,y=`esri-directions__intermediate-costs-${v}`,f={[C.maneuverActive]:this._activeManeuver===o};return L("li",{"aria-labelledby":`${S} ${w} ${y}`,bind:this,class:this.classes(C.maneuver,f),"data-maneuver":o,key:o,onclick:this._handleManeuverClick,onkeydown:this._handleManeuverClick,onfocus:this._handleManeuverFocus,onmouseover:this._handleManeuverMouseOver,onmouseout:this._handleManeuverMouseOut,onblur:this._handleManeuverBlur,tabIndex:0},a(g)&&L("img",{alt:"",class:C.maneuverIcon,src:g}),L("div",{class:C.maneuverCostsContainer},L("span",{id:S,innerHTML:c(m,"")}),L("div",{class:C.maneuverCosts},L("div",{class:C.horizontalSplitter}),L("div",{id:w,"aria-label":l.cumulativeCosts,class:C.cumulativeCost,innerHTML:t,title:l.cumulativeCosts}),L("div",{id:y,"aria-label":l.intermediateCosts,class:C.intermediateCost,innerHTML:p,title:l.intermediateCosts}))))}_handleManeuverClick(e){const s=e.currentTarget["data-maneuver"];if(this._activeManeuver===s)return this._activeManeuver=null,void this.zoomToRoute();this._activeManeuver=s;const{geometry:i,symbol:o}=s,r=new t({geometry:i,symbol:o});this.viewModel.centerAt(r),this.viewModel.highlightSegment(r)}_handleManeuverMouseOver(e){if(this._activeManeuver||this._focusedManeuver)return;const s=e.currentTarget["data-maneuver"],{geometry:i,symbol:o}=s,r=new t({geometry:i,symbol:o});this.viewModel.highlightSegment(r)}_handleManeuverMouseOut(){this._activeManeuver||this._focusedManeuver||this.viewModel.clearHighlights()}_handleManeuverBlur(){this._activeManeuver||(this._focusedManeuver=null,this.viewModel.clearHighlights())}_handleManeuverFocus(e){if(this._activeManeuver)return;const s=e.currentTarget["data-maneuver"];this._focusedManeuver=s;const{geometry:i,symbol:o}=s,r=new t({geometry:i,symbol:o});this.viewModel.highlightSegment(r)}_getFormattedManeuverText(e){const{displayText:t,name:s,intersectingName:i}=e;if(n(t))return"";let o=t;return a(s)&&o.includes(s)&&(o=o.replace(s,`<strong>${s}</strong>`)),a(i)&&o.includes(i)&&(o=o.replace(i,`<strong>${i}</strong>`)),o}_getCostSummary(){const{viewModel:{impedanceAttribute:e,routeParameters:t},lastRoute:s}=this;if(n(e)||n(s))return null;const{routeInfo:i}=s;let{totalDuration:o,totalDistance:r}=i;const{directionsLengthUnits:l}=t;r=a(r)?r:0,o=a(o)?o:0;const c=M(this.messages,this.messagesUnits,r,{fromUnits:"meters",toUnits:l}),d=b(o,"minutes"),[h,u]=f(e.units)?[d,c]:[c,d];return{primary:h,secondary:u}}};e([m("viewModel.apiKey")],Y.prototype,"apiKey",void 0),e([m("viewModel.goToOverride")],Y.prototype,"goToOverride",void 0),e([v()],Y.prototype,"headingLevel",void 0),e([v()],Y.prototype,"iconClass",void 0),e([v({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],Y.prototype,"label",void 0),e([m("viewModel.lastRoute")],Y.prototype,"lastRoute",void 0),e([m("viewModel.maxStops")],Y.prototype,"maxStops",void 0),e([v(),U("geoscene/widgets/Directions/t9n/Directions")],Y.prototype,"messages",void 0),e([v(),U("geoscene/t9n/common")],Y.prototype,"messagesCommon",void 0),e([v(),U("geoscene/core/t9n/Units")],Y.prototype,"messagesUnits",void 0),e([m("viewModel.routeServiceUrl")],Y.prototype,"routeServiceUrl",void 0),e([m("viewModel.routeSymbol")],Y.prototype,"routeSymbol",void 0),e([v()],Y.prototype,"searchProperties",void 0),e([m("viewModel.stopSymbols")],Y.prototype,"stopSymbols",void 0),e([m("viewModel.view")],Y.prototype,"view",void 0),e([v({type:y})],Y.prototype,"viewModel",void 0),e([m("viewModel.getDirections")],Y.prototype,"getDirections",null),e([m("viewModel.zoomToRoute")],Y.prototype,"zoomToRoute",null),e([H()],Y.prototype,"_handleStopIconClick",null),e([H()],Y.prototype,"_handleClearRouteClick",null),e([H()],Y.prototype,"_handleReverseStops",null),e([H()],Y.prototype,"_handleRemoveStop",null),e([H()],Y.prototype,"_handleSectionToggle",null),e([H()],Y.prototype,"_handleSummaryInteraction",null),e([H()],Y.prototype,"_handleManeuverClick",null),Y=e([_("geoscene.widgets.Directions")],Y);const G=Y;export{G as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../Graphic.js";import"../intl.js";import s from"../core/Collection.js";import{on as i,pausable as o}from"../core/events.js";import r from"../core/Handles.js";import{isNone as n,isSome as a,unwrap as l,unwrapOrValue as c}from"../core/maybe.js";import{watch as d,initial as h,when as u,on as p}from"../core/reactiveUtils.js";import{aliasOf as m}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as v}from"../core/accessorSupport/decorators/property.js";import{subclass as _}from"../core/accessorSupport/decorators/subclass.js";import g from"../rest/support/Stop.js";import S from"./Search.js";import w from"./Widget.js";import y from"./Directions/DirectionsViewModel.js";import{formatDistance as M,formatTime as b,isTimeUnits as f}from"./Directions/support/directionsUtils.js";import{DepartureTime as T,CSS as C,getIconPath as I}from"./Directions/support/resources.js";import{isArcGISWorldGeocoder as k,meteredArcGISLocatorUrl as R}from"./Search/support/locatorUtils.js";import D from"./support/DatePicker.js";import{Heading as P,incrementHeadingLevel as j}from"./support/Heading.js";import x from"./support/TimePicker.js";import{accessibleHandler as H}from"./support/decorators/accessibleHandler.js";import{messageBundle as U}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as L}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import z from"sortablejs";import{substitute as E}from"../intl/substitute.js";import{formatDate as A,convertDateFormatToIntlOptions as O}from"../intl/date.js";import{formatNumber as $}from"../intl/number.js";function N(e){const t=e.getTimezoneOffset(),s=t>0?"-":"+",i=60,o=Math.abs(Math.floor(t/i)),r=Math.abs(Math.floor(t)%i),n={minimumIntegerDigits:2};return`GMT${s}${$(o,n)}${$(r,n)}`}function B(){return[{},{}]}function F(e){return e.results[0].results[0]}function V(e){return!(null==e.composedPath||!e.composedPath().find((e=>{var t;return null==(t=e.classList)?void 0:t.contains("geoscene-search__suggestions-list")})))}const W={awaitingViewClickStop:"awaiting-view-click-stop"},K=100,q=500;let Y=class extends w{constructor(e,t){super(e,t),this._autoStopRemovalDelay=K,this._departureTime=T.NOW,this._datePicker=new D,this._handles=new r,this._newPlaceholderStop=null,this._pointerPressedSearchSuggestionStop=null,this._sections=null,this._stops=new s(B()),this._stopsToSearches=new Map,this._timePicker=new x,this.apiKey=null,this.goToOverride=null,this.headingLevel=2,this.iconClass=C.widgetIcon,this.label=void 0,this.lastRoute=null,this.maxStops=null,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.routeServiceUrl=void 0,this.routeSymbol=null,this.searchProperties=null,this.stopSymbols=null,this.view=null,this.viewModel=new y,this._setUpDragAndDropStops=e=>{this._sortable=z.create(e,{draggable:`.${C.validStopRow}`,ghostClass:C.stopRowGhost,handle:`.${C.stopHandle}`,onEnd:this._handleStopInputDragEnd})},this._handleDragHandlePointerDown=()=>this._stops.forEach((e=>this._acquireSearch(e).activeMenu="none")),this._handleStopInputDragEnd=({oldIndex:e,newIndex:t,target:s})=>{if(e===t)return;const{children:i}=s,o=i[t],r=i[e],n=t-e<0;s.insertBefore(o,n?r.nextElementSibling:r);const a=this._stops;a.reorder(a.getItemAt(e),t),this._processStops()}}initialize(){this.own([d((()=>this.viewModel.lastRoute),(()=>{this._activeManeuver=null,this._focusedManeuver=null,this._sections=this._getSections(),this.scheduleRender()}),h),d((()=>[this.viewModel.selectedTravelMode,this.viewModel.departureTime]),(()=>{this.viewModel.stops.length>1&&this.getDirections()}),h),u((()=>this.view),((e,t)=>{if(t&&(this._viewClickHandle=null,this._handles.remove(t)),e){const t=this._prepPointerDownUpClick(),s=this._prepViewClick();t.pause(),s.pause(),this._handles.add([i(e.surface,"mousedown",(()=>this._autoStopRemovalDelay=q)),i(e.surface,"mouseup",(()=>this._autoStopRemovalDelay=K)),t,s],this.view.surface),this._pointerDownUpHandle=t,this._viewClickHandle=s}}),h),u((()=>0===this.viewModel.stops.length),(()=>{this._stops.drain((e=>{this._disposeSearch(e)})),this._stops.addMany(B()),this.scheduleRender()})),u((()=>n(this.viewModel.serviceDescription)),(()=>{this.viewModel.load()}),h)])}destroy(){this._datePicker.destroy(),this._timePicker.destroy(),this._stopsToSearches.forEach((e=>e.destroy())),this._sortable&&this._sortable.destroy()}getDirections(){return null}zoomToRoute(){}render(){return L("div",{class:this.classes(C.base,C.scroller)},this._renderPanelContent())}_renderPanelContent(){const{viewModel:{state:e}}=this,t="initializing"===e,s="error"===e&&!this.viewModel.serviceDescription,i="unauthenticated"===e,o={[C.panelContentLoading]:t,[C.panelContentError]:s,[C.panelContentSignIn]:i},r=t?"presentation":"group",n=i?this._renderSignIn():s?this._renderMessage(this._getErrorMessage()):t?this._renderLoader():this._renderReadyContent();return L("div",{class:this.classes(C.panelContent,o),role:r},n)}_renderReadyContent(){return[this._renderStopsContainer(),this._renderTravelModeOptions(),this._renderDepartureTimeControls(),this._renderSectionSplitter(),this._renderDirectionsContainer()]}_renderSignIn(){return L("div",{key:"sign-in",class:C.signInContent},L(P,{class:C.contentTitle,level:this.headingLevel},this.messages.widgetLabel),this._renderPlaceholder(),L(P,{level:j(this.headingLevel)},this.messages.signInRequired),L("button",{class:this.classes(C.button,C.buttonSecondary,C.signInButton),tabIndex:0,onclick:this._handleSignInClick,bind:this,type:"button"},this.messagesCommon.auth.signIn))}_handleSignInClick(){this.viewModel.load().catch((()=>{}))}_renderTravelModeOptions(){const{selectedTravelMode:e,travelModes:t}=this.viewModel;if(0===t.length)return null;const s=a(e)?e.name:this.messages.travelMode;return L("select",{"aria-label":s,bind:this,class:this.classes(C.travelModeSelect,C.select),key:"geoscene-directions__travel-mode-options",onchange:this._handleTravelModeChange,title:s},t.map((t=>{const s=a(e)&&t.id===e.id;return L("option",{key:t,"data-mode":t,selected:s,value:t.id},t.name)})))}_handleTravelModeChange(e){const t=e.currentTarget,s=t.item(t.selectedIndex);this.viewModel.selectedTravelMode=s["data-mode"]}_renderStopsContainer(){return L("div",{class:C.section,key:"geoscene-directions__stops-container",role:"group"},this._renderStops())}_renderDepartureTimeControls(){const e=this._departureTime,{messages:t}=this,s=t.departureTime;return L("div",{class:C.departureTime,key:"geoscene-directions__departure-time-controls",role:"group"},L("select",{"aria-label":s,bind:this,class:this.classes(C.departureTimeSelect,C.select),onchange:this._handleDepartureOptionChange,title:s},L("option",{value:T.NOW,selected:e===T.NOW},t.leaveNow),L("option",{value:T.DEPART_BY,selected:e===T.DEPART_BY},t.departBy),L("option",{value:T.UNSPECIFIED,selected:e===T.UNSPECIFIED},t.timeUnspecified)),e===T.DEPART_BY?this._renderTimeControls():null)}_renderStops(){const e=this._stops;let t=0;e.forEach((e=>{"none"!==this._acquireSearch(e).activeMenu&&(t+=1)}));const s=e.toArray().map(((s,i)=>{const o=e.length,r=i>1&&!s.result,n={[C.stopsIcon]:i>=0&&i<o-1,[C.lastStopIcon]:i===o-1},a={[C.lastStopIconContainer]:i===o-1},l={[C.validStopRow]:!r},c=e.getItemAt(o-1),d=c&&c.result,h=e.getItemAt(i+1),u=h&&h.result,p=i===o-1,m=i===o-2,v=2===o&&0===i||o>2&&!p&&!m||o>2&&m&&u||o>2&&p&&!s.result,_=2===o||3===o&&!d||r,g=this._acquireSearch(s),{messages:S}=this,{removeStop:w,reverseStops:y,unlocated:M}=S,b=E(S.stopLabelTemplate,{number:i+1,label:s.result?s.result.name:M}),f=`${this.id}__stop--${i}`,T=!!g.searchTerm&&!!g.selectedResult&&!!s.result&&g.selectedResult===s.result,I={zIndex:"none"!==g.activeMenu?""+t--:""};return L("li",{"aria-label":b,afterCreate:this._handleStopFieldCreation,bind:this,class:this.classes(C.stopRow,l),id:f,key:i,"data-stop-index":i,styles:I},L("div",{class:C.stopHandle},L("span",{"aria-hidden":"true",class:this.classes(C.stopIcon,C.handleIcon,C.stopHandleIcon,C.interactiveStopIcon),onpointerdown:this._handleDragHandlePointerDown}),L("div",{bind:this,"aria-labelledby":f,class:this.classes(C.stopIconContainer,a),"data-stop-index":i,onclick:this._handleStopIconClick,onkeydown:this._handleStopIconClick,role:"button"},L("span",{class:this.classes(C.stopIcon,n),tabindex:T?"0":null}))),L("div",{class:C.stopInput},g.render()),L("div",{class:C.stopOptions,role:"group"},L("div",{"aria-label":w,class:C.removeStopButton,bind:this,"data-stop-index":i,hidden:_,onkeydown:this._handleRemoveStop,onclick:this._handleRemoveStop,role:"button",tabIndex:0,title:w},L("span",{"aria-hidden":"true",class:this.classes(C.stopIcon,C.removeStop,C.removeStopIcon,C.interactiveStopIcon)}),L("span",{class:C.screenReaderText},"removeStopTitle")),L("div",{"aria-label":y,class:C.reverseStops,bind:this,hidden:v,onkeydown:this._handleReverseStops,onclick:this._handleReverseStops,role:"button",tabIndex:0,title:y},L("span",{"aria-hidden":"true",class:this.classes(C.stopIcon,C.reverseStopIcon,C.interactiveStopIcon)}),L("span",{class:C.screenReaderText},"removeStopTitle"))))})),i=e.every((e=>{const t=this._stopsToSearches.get(e);return e.result&&t.selectedResult===e.result})),o=this._stops.length>=this.maxStops,r=this.messages.addStop,n=e.length>=2&&i&&!o?L("div",{"aria-label":r,bind:this,class:C.addStop,key:"geoscene-directions__add-stop",onfocus:this._handleAddStopFocus,tabIndex:0},L("span",{"aria-hidden":"true",class:this.classes(C.addStopIcon,C.stopIcon,C.interactiveStopIcon)}),L("div",{"aria-hidden":"true",class:C.addStopText},r)):null;return L("div",null,L("ol",{class:C.stops,role:"group",afterCreate:this._setUpDragAndDropStops},s),n)}_handleStopIconClick(e){const t=e.currentTarget["data-stop-index"],s=this._stops.getItemAt(t);s&&s.result&&this._centerAtStop(s)}_handleClearRouteClick(){this.viewModel.reset()}_centerAtStop(e){this.viewModel.centerAt(e.result.feature)}_handleStopFieldCreation(e){const t=this._newPlaceholderStop;if(!t)return;const s=e["data-stop-index"],i=this._stops.getItemAt(s);if(t===i){const e=this._acquireSearch(i);e.when((()=>{this.renderNow(),e.focus()}))}this._newPlaceholderStop=null}_handleStopInputBlur(e,t){this._handles.remove(W.awaitingViewClickStop),this.view.cursor=this._previousCursor;if(!e.selectedResult||!t.result||e.selectedResult!==t.result)return"none"!==e.activeMenu||!e.searchTerm||e.selectedResult===t.result&&(e.selectedResult||t.result)?void(e.searchTerm||(this._viewClickHandle.resume(),clearTimeout(this._autoStopRemovalTimeoutId),this._autoStopRemovalTimeoutId=setTimeout((()=>{if(this.destroyed)return;if(this._viewClickHandle.pause(),"searching"===e.viewModel.state)return void this._pointerDownUpHandle.pause();if(this._pointerPressedSearchSuggestionStop)return;!!t.result&&(t.result=null,this._processStops()),this.scheduleRender()}),this._autoStopRemovalDelay))):(e.search(),void this._pointerDownUpHandle.pause());this._pointerDownUpHandle.pause()}_handleStopInputFocus(e,t){if(this._pointerDownUpHandle.resume(),this._handles.has(W.awaitingViewClickStop))return;const{view:s,view:{cursor:i}}=this;this._previousCursor=i,this._handles.add(d((()=>e.searchTerm),(e=>{s.cursor=0===e.length?"copy":i}),h),W.awaitingViewClickStop),this._activeStop=t}_prepViewClick(){const{view:e}=this.viewModel,t=o(e,"click",this._handleViewClick.bind(this)),s=o(e.surface,"click",(()=>{clearTimeout(this._autoStopRemovalTimeoutId),s.pause()}));return{remove(){s.remove(),t.remove()},pause(){s.pause(),t.pause()},resume(){s.resume(),t.resume()}}}_prepPointerDownUpClick(){const e=o(document,"pointerdown",(e=>{this._pointerPressedSearchSuggestionStop=V(e)?this._activeStop:null})),t=o(document,"pointerup",(e=>{this._pointerDownUpHandle.pause();const t=V(e),s=this._activeStop;t||s!==this._pointerPressedSearchSuggestionStop||this._removeStop(s),this.scheduleRender(),this._pointerPressedSearchSuggestionStop=t?this._activeStop:null}));return{remove(){t.remove(),e.remove()},pause(){t.pause(),e.pause()},resume(){e.resume()}}}_handleViewClick(e){const t=this._stopsToSearches.get(this._activeStop);t&&!t.searchTerm&&(t.search(e.mapPoint).then((e=>{const s=F(e),i=this._activeStop;i.result=s,i.result.feature.attributes.Name=s.name,t.searchTerm=s.name})),this.scheduleRender()),this._viewClickHandle.pause(),clearTimeout(this._autoStopRemovalTimeoutId)}_handleAddStopFocus(){this._addNewPlaceholder()}_addNewPlaceholder(){if(this._pointerDownUpHandle.pause(),this._newPlaceholderStop)return;const e={};this._stops.add(e),this._newPlaceholderStop=e}_handleReverseStops(){this._reverseStops()}_reverseStops(){this._stops.reverse(),this._processStops()}_handleRemoveStop(e){const t=e.currentTarget["data-stop-index"];this._removeStop(this._stops.getItemAt(t)),this._processStops()}_removeStop(e){this._stops.length<=2||(this._disposeSearch(e),this._stops.remove(e))}_handleDepartureOptionChange(e){const t=e.currentTarget,s=t.item(t.selectedIndex);s.value===T.NOW?(this._departureTime=T.NOW,this.viewModel.departureTime=T.NOW,this._handles.remove("departure-time-controls")):s.value===T.DEPART_BY?(this._departureTime=T.DEPART_BY,this._handles.add([d((()=>this._datePicker.value),(()=>this._updateDepartureTime()),h),d((()=>this._timePicker.value),(()=>this._updateDepartureTime()),h)],"departure-time-controls")):(this._departureTime=T.UNSPECIFIED,this.viewModel.departureTime=null)}_updateDepartureTime(){const e=this._datePicker.value,t=this._timePicker.value;e&&t&&(this.viewModel.departureTime=new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes()))}_renderTimeControls(){return L("div",{class:C.departureTimeControls,key:"geoscene-directions__time-controls",role:"group"},this._datePicker.render(),this._timePicker.render())}_renderSectionSplitter(){return L("div",{class:C.sectionSplitter})}_renderDirectionsContainer(){return L("div",{class:this.classes(C.directionsSection,C.section),key:"geoscene-directions__container"},this._renderDirectionsContainerContent())}_renderLoader(){return L("div",{class:C.loader,key:"loader"})}_renderWarningCard(){return L("div",{class:C.warningCard,role:"alert"},L("div",{class:C.warningHeader},L("span",{class:C.warningIcon,"aria-hidden":"true"}),L(P,{class:C.warningHeading,level:this.headingLevel},this.messagesCommon.warning)),L("div",{class:C.warningMessage},this._getErrorMessage()))}_renderDirectionsContainerContent(){const{lastRoute:e,viewModel:{state:t}}=this,s="routing"===t;return"error"===t?this._renderWarningCard():s?this._renderLoader():a(e)&&a(e.directionLines)?L("div",{class:C.summary,key:"geoscene-directions__summary",role:"group"},this._renderCosts(),this._renderRouteActions(),this._renderManeuverSections()):L("div",{key:"geoscene-directions__placeholder",class:C.emptyContent},this._renderPlaceholder(),L(P,{class:C.message,level:this.headingLevel},this.messages.directionsPlaceholder))}_renderPlaceholder(){return L("svg",{class:C.emptyIllustration,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256"},L("path",{fill:"currentcolor",d:"M192 36c-15.477 0-24 6.034-24 16.99v45.822l24 24 24-24v-45.82C216 42.033 207.477 36 192 36zm20 61.155l-20 20-20-20V52.99c0-8.62 6.73-12.99 20-12.99s20 4.37 20 12.99zM192 52a12 12 0 1 0 12 12 12.013 12.013 0 0 0-12-12zm0 20a8 8 0 1 1 8-8 8.008 8.008 0 0 1-8 8zM92 140.99C92 130.035 83.477 124 68 124s-24 6.034-24 16.99v45.822l24 24 24-24zm-4 44.165l-20 20-20-20V140.99c0-8.62 6.73-12.99 20-12.99s20 4.37 20 12.99zM68 140a12 12 0 1 0 12 12 12.013 12.013 0 0 0-12-12zm0 20a8 8 0 1 1 8-8 8.008 8.008 0 0 1-8 8zm84-44h16v4h-16zm-24 80h4v12h-12v-4h8zm0-28h4v16h-4zm0-52h12v4h-8v8h-4zm0 24h4v16h-4zm-36 64h16v4H92z"}))}_renderMessage(e){return L(P,{level:this.headingLevel},e)}_renderRouteActions(){return L("div",{class:C.routeActions},L("button",{"aria-label":this.messages.clearRoute,class:this.classes(C.clearRouteButton,C.button,C.buttonTertiary),tabIndex:0,onclick:this._handleClearRouteClick,bind:this,type:"button"},this.messages.clearRoute))}_getSections(){if(n(this.lastRoute))return null;const{directionPoints:e,directionLines:t,stops:s}=this.lastRoute;if(n(e)||n(t))return null;const i=[];let o=null;for(const r of e){const{objectId:e,stopId:l}=r;if(a(l)){const e=s.find((e=>e.objectId===l)),t=0===i.length;(n(o)||o.stop!==e)&&(o={stop:e,directions:[],open:t},i.push(o));continue}if(n(o))continue;const c=t.find((t=>t.directionPointId===e));n(c)||o.directions.push({directionPoint:r,directionLine:c})}return i}_renderManeuverSections(){return n(this._sections)?null:L("div",{class:C.maneuvers,role:"group"},this._sections.map(((e,t)=>{const{open:s}=e;let i;e.directions.length>0&&s&&(i=L("ol",{class:C.maneuverList},e.directions.map((e=>this._renderManeuver(e)))));const o=l(this._sections).length>2,r=t===l(this._sections).length-1,n={[C.collapsibleSection]:o},a={[C.openIcon]:!s,[C.closeIcon]:s};let c;if(o&&!r){const t=s?this.messagesCommon.open:this.messagesCommon.close;c=L("header",{class:this.classes(C.maneuverSectionHeader,C.maneuverSectionToggle),key:"geoscene-directions__maneuver-section-header"},L("div",{"aria-expanded":s.toString(),"aria-label":t,bind:this,class:C.maneuverSectionHeaderButton,"data-maneuver-section":e,onkeydown:this._handleSectionToggle,onclick:this._handleSectionToggle,role:"button",tabIndex:0,title:t},L(P,{class:C.maneuverSectionTitle,level:this.headingLevel},e.stop.name),L("span",{"aria-hidden":"true",class:this.classes(a)})))}else c=L("header",{class:C.maneuverSectionHeader,key:"geoscene-directions__maneuver-section-header"},L(P,{class:C.maneuverSectionTitle,level:this.headingLevel},e.stop.name));return L("section",{class:this.classes(C.maneuverSection,n),key:t},c,i)})))}_handleSectionToggle(e){const t=e.currentTarget["data-maneuver-section"];t.open=!t.open}_renderCosts(){const{lastRoute:e}=this;if(n(e))return null;const t=this._getCostSummary(),{directionPoints:s}=e;if(n(s)||n(t))return null;const i=s.getItemAt(s.length-1).arrivalTime,{primary:o,secondary:r}=t,{eta:l,etaTemplate:c,primaryCosts:d,secondaryCosts:h,zoomToRoute:u}=this.messages,p=O("short-time"),m=a(i)?`<strong>${A(i,p)}</strong>`:null,v=a(i)?`${N(i)}`:null,_=E(c,{time:m,gmt:v});return L("div",{"aria-label":u,bind:this,class:C.directionCosts,onkeydown:this._handleSummaryInteraction,onclick:this._handleSummaryInteraction,role:"button",tabIndex:0,title:u},L("div",{class:C.costsDetails,role:"group"},L("div",{"aria-label":d,class:C.primaryCosts,title:d},o),L("div",{class:C.verticalSplitter}),L("div",{"aria-label":h,class:C.secondaryCosts,title:h},r)),L("div",{"aria-label":l,innerHTML:_,title:l}))}_handleSummaryInteraction(){this._activeManeuver=null,this._focusedManeuver=null,this.viewModel.clearHighlights(),this.zoomToRoute()}_getErrorMessage(){const{messages:e,viewModel:{error:t}}=this;if(a(t))switch(t.name){case"directions-view-model:unable-to-route":return e.errors.unableToRoute;case"directions-view-model:service-metadata-unavailable":return e.errors.unableToLoadServiceMetadata}return e.errors.unknownError}_normalizeSearchSources(e){this._overrideDefaultSources(e),this._applyLocatorSourceOverrides(e)}_overrideDefaultSources(e){e.viewModel.defaultSources.forEach((e=>{e.autoNavigate=!1}))}_applyLocatorSourceOverrides({allSources:e}){0!==e.length&&e.forEach((e=>{"url"in e&&e.url&&(null===e.locationType&&(e.locationType="street"),k(e.url)&&this.apiKey&&null==e.apiKey&&(e.apiKey=this.apiKey,e.url=R))}))}_acquireSearch(e){const t=this.get("viewModel.view");if(this._stopsToSearches.has(e)){const s=this._stopsToSearches.get(e);return s.view=t,this._overrideDefaultSources(s),s}const s=new S({view:t,resultGraphicEnabled:!1,popupEnabled:!1,...this.searchProperties});return this._normalizeSearchSources(s),this._handles.add([p((()=>s.allSources),"change",(()=>this._normalizeSearchSources(s))),s.on("select-result",(()=>{e.result=s.selectedResult,e.result.feature.attributes.Name=s.selectedResult.name,this._processStops(),this.scheduleRender()})),s.on("search-focus",(()=>this._handleStopInputFocus(s,e))),s.on("search-blur",(()=>this._handleStopInputBlur(s,e)))],s),this._stopsToSearches.set(e,s),s}_disposeSearch(e){this._stopsToSearches.get(e).destroy(),this._stopsToSearches.delete(e)}_processStops(){const e=this._stops.filter((e=>!!e.result)).map((e=>g.fromJSON(e.result.feature.toJSON())));this.viewModel.stops=e,e.length>1&&this.getDirections()}_renderManeuver(e){const t="",{directionsLengthUnits:s}=this.viewModel.routeParameters,{directionPoint:i,directionLine:o}=e,{distance:r,duration:n}=o,{messages:l,messagesUnits:d}=this,h=M(l,d,c(r,0),{fromUnits:"meters",toUnits:s}),u=b(c(n,0),"minutes"),p=h&&u?`${h}&nbsp;&middot;&nbsp;${u}`:`${h}${u}`,m=this._getFormattedManeuverText(i),{objectId:v,directionPointType:_}=i,g=I(_),S=`geoscene-directions__maneuver-${v}`,w=`geoscene-directions__cumulative-costs-${v}`,y=`geoscene-directions__intermediate-costs-${v}`,f={[C.maneuverActive]:this._activeManeuver===o};return L("li",{"aria-labelledby":`${S} ${w} ${y}`,bind:this,class:this.classes(C.maneuver,f),"data-maneuver":o,key:o,onclick:this._handleManeuverClick,onkeydown:this._handleManeuverClick,onfocus:this._handleManeuverFocus,onmouseover:this._handleManeuverMouseOver,onmouseout:this._handleManeuverMouseOut,onblur:this._handleManeuverBlur,tabIndex:0},a(g)&&L("img",{alt:"",class:C.maneuverIcon,src:g}),L("div",{class:C.maneuverCostsContainer},L("span",{id:S,innerHTML:c(m,"")}),L("div",{class:C.maneuverCosts},L("div",{class:C.horizontalSplitter}),L("div",{id:w,"aria-label":l.cumulativeCosts,class:C.cumulativeCost,innerHTML:t,title:l.cumulativeCosts}),L("div",{id:y,"aria-label":l.intermediateCosts,class:C.intermediateCost,innerHTML:p,title:l.intermediateCosts}))))}_handleManeuverClick(e){const s=e.currentTarget["data-maneuver"];if(this._activeManeuver===s)return this._activeManeuver=null,void this.zoomToRoute();this._activeManeuver=s;const{geometry:i,symbol:o}=s,r=new t({geometry:i,symbol:o});this.viewModel.centerAt(r),this.viewModel.highlightSegment(r)}_handleManeuverMouseOver(e){if(this._activeManeuver||this._focusedManeuver)return;const s=e.currentTarget["data-maneuver"],{geometry:i,symbol:o}=s,r=new t({geometry:i,symbol:o});this.viewModel.highlightSegment(r)}_handleManeuverMouseOut(){this._activeManeuver||this._focusedManeuver||this.viewModel.clearHighlights()}_handleManeuverBlur(){this._activeManeuver||(this._focusedManeuver=null,this.viewModel.clearHighlights())}_handleManeuverFocus(e){if(this._activeManeuver)return;const s=e.currentTarget["data-maneuver"];this._focusedManeuver=s;const{geometry:i,symbol:o}=s,r=new t({geometry:i,symbol:o});this.viewModel.highlightSegment(r)}_getFormattedManeuverText(e){const{displayText:t,name:s,intersectingName:i}=e;if(n(t))return"";let o=t;return a(s)&&o.includes(s)&&(o=o.replace(s,`<strong>${s}</strong>`)),a(i)&&o.includes(i)&&(o=o.replace(i,`<strong>${i}</strong>`)),o}_getCostSummary(){const{viewModel:{impedanceAttribute:e,routeParameters:t},lastRoute:s}=this;if(n(e)||n(s))return null;const{routeInfo:i}=s;let{totalDuration:o,totalDistance:r}=i;const{directionsLengthUnits:l}=t;r=a(r)?r:0,o=a(o)?o:0;const c=M(this.messages,this.messagesUnits,r,{fromUnits:"meters",toUnits:l}),d=b(o,"minutes"),[h,u]=f(e.units)?[d,c]:[c,d];return{primary:h,secondary:u}}};e([m("viewModel.apiKey")],Y.prototype,"apiKey",void 0),e([m("viewModel.goToOverride")],Y.prototype,"goToOverride",void 0),e([v()],Y.prototype,"headingLevel",void 0),e([v()],Y.prototype,"iconClass",void 0),e([v({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],Y.prototype,"label",void 0),e([m("viewModel.lastRoute")],Y.prototype,"lastRoute",void 0),e([m("viewModel.maxStops")],Y.prototype,"maxStops",void 0),e([v(),U("geoscene/widgets/Directions/t9n/Directions")],Y.prototype,"messages",void 0),e([v(),U("geoscene/t9n/common")],Y.prototype,"messagesCommon",void 0),e([v(),U("geoscene/core/t9n/Units")],Y.prototype,"messagesUnits",void 0),e([m("viewModel.routeServiceUrl")],Y.prototype,"routeServiceUrl",void 0),e([m("viewModel.routeSymbol")],Y.prototype,"routeSymbol",void 0),e([v()],Y.prototype,"searchProperties",void 0),e([m("viewModel.stopSymbols")],Y.prototype,"stopSymbols",void 0),e([m("viewModel.view")],Y.prototype,"view",void 0),e([v({type:y})],Y.prototype,"viewModel",void 0),e([m("viewModel.getDirections")],Y.prototype,"getDirections",null),e([m("viewModel.zoomToRoute")],Y.prototype,"zoomToRoute",null),e([H()],Y.prototype,"_handleStopIconClick",null),e([H()],Y.prototype,"_handleClearRouteClick",null),e([H()],Y.prototype,"_handleReverseStops",null),e([H()],Y.prototype,"_handleRemoveStop",null),e([H()],Y.prototype,"_handleSectionToggle",null),e([H()],Y.prototype,"_handleSummaryInteraction",null),e([H()],Y.prototype,"_handleManeuverClick",null),Y=e([_("geoscene.widgets.Directions")],Y);const G=Y;export{G as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import a from"./DistanceMeasurement2D/DistanceMeasurement2DViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as m}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const c="esri-distance-measurement-2d",p={buttonDisabled:"esri-button--disabled",widgetIcon:"geoscene-icon-measure-line",base:`${c} esri-widget esri-widget--panel`,container:`${c}__container`,hint:`${c}__hint`,hintText:`${c}__hint-text`,panelError:`${c}__panel--error`,measurement:`${c}__measurement`,measurementItem:`${c}__measurement-item`,measurementItemDisabled:`${c}__measurement-item--disabled`,measurementItemTitle:`${c}__measurement-item-title`,measurementItemValue:`${c}__measurement-item-value`,settings:`${c}__settings`,units:`${c}__units`,unitsLabel:`${c}__units-label`,unitsSelect:`${c}__units-select esri-select`,unitsSelectWrapper:`${c}__units-select-wrapper`,actionSection:`${c}__actions`,newMeasurementButton:`${c}__clear-button esri-button esri-button--primary`};let d=class extends o{constructor(e,t){super(e,t),this.iconClass=p.widgetIcon,this.label=void 0,this.messages=null,this.messagesUnits=null,this.unit=null,this.unitOptions=null,this.view=null,this.viewModel=new a}render(){const{id:e,messages:t,messagesUnits:i,viewModel:n,visible:r}=this,{active:o,supported:a,measurementLabel:l,state:u,unit:c,unitOptions:d}=n,v="disabled"===u,b="measuring"===u||"measured"===u,_=o&&"ready"===u?m("section",{key:"hint",class:p.hint},m("p",{class:p.hintText},t.hint)):null,w=a?null:m("section",{key:"unsupported",class:p.panelError},m("p",null,t.unsupported)),h=(e,t,s)=>t?m("div",{key:`${s}-enabled`,class:p.measurementItem},m("span",{class:p.measurementItemTitle},e),m("span",{class:p.measurementItemValue},t)):m("div",{key:`${s}-disabled`,class:this.classes(p.measurementItem,p.measurementItemDisabled),"aria-disabled":"true"},m("span",{class:p.measurementItemTitle},e)),g=b?m("section",{key:"measurement",class:p.measurement},h(t.distance,l,"distance")):null,y=`${e}-units`,M=b?m("section",{key:"units",class:p.units},m("label",{class:p.unitsLabel,for:y},t.unit),m("div",{class:p.unitsSelectWrapper},m("select",{class:p.unitsSelect,id:y,onchange:this._changeUnit,bind:this,value:c},d.map((e=>{var t;return m("option",{key:e,value:e},s(e)?i.systems[e]:null==(t=i.units[e])?void 0:t.pluralCapitalized)}))))):null,$=b?m("div",{key:"settings",class:p.settings},M):null,j=!a||o&&!b?null:m("div",{class:p.actionSection},m("button",{disabled:v,class:this.classes(p.newMeasurementButton,v&&p.buttonDisabled),bind:this,onclick:this._newMeasurement,title:t.newMeasurement,"aria-label":t.newMeasurement,type:"button"},t.newMeasurement)),f=r?m("div",{class:p.container},w,_,$,g,j):null;return m("div",{class:p.base},f)}_newMeasurement(){t(this.viewModel.start())}_changeUnit(e){const t=e.target,s=t.options[t.selectedIndex];s&&(this.viewModel.unit=s.value)}};e([i("viewModel.active")],d.prototype,"active",void 0),e([n()],d.prototype,"iconClass",void 0),e([n({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],d.prototype,"label",void 0),e([n()],d.prototype,"uiStrings",void 0),e([n(),u("geoscene/widgets/DistanceMeasurement2D/t9n/DistanceMeasurement2D")],d.prototype,"messages",void 0),e([n(),u("geoscene/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([i("viewModel.unit")],d.prototype,"unit",void 0),e([i("viewModel.unitOptions")],d.prototype,"unitOptions",void 0),e([i("viewModel.view")],d.prototype,"view",void 0),e([n({type:a})],d.prototype,"viewModel",void 0),e([i("viewModel.visible")],d.prototype,"visible",void 0),e([l()],d.prototype,"_newMeasurement",null),e([l()],d.prototype,"_changeUnit",null),d=e([r("geoscene.widgets.DistanceMeasurement2D")],d);const v=d;export{v as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import a from"./DistanceMeasurement2D/DistanceMeasurement2DViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as m}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const c="geoscene-distance-measurement-2d",p={buttonDisabled:"geoscene-button--disabled",widgetIcon:"geoscene-icon-measure-line",base:`${c} geoscene-widget geoscene-widget--panel`,container:`${c}__container`,hint:`${c}__hint`,hintText:`${c}__hint-text`,panelError:`${c}__panel--error`,measurement:`${c}__measurement`,measurementItem:`${c}__measurement-item`,measurementItemDisabled:`${c}__measurement-item--disabled`,measurementItemTitle:`${c}__measurement-item-title`,measurementItemValue:`${c}__measurement-item-value`,settings:`${c}__settings`,units:`${c}__units`,unitsLabel:`${c}__units-label`,unitsSelect:`${c}__units-select geoscene-select`,unitsSelectWrapper:`${c}__units-select-wrapper`,actionSection:`${c}__actions`,newMeasurementButton:`${c}__clear-button geoscene-button geoscene-button--primary`};let d=class extends o{constructor(e,t){super(e,t),this.iconClass=p.widgetIcon,this.label=void 0,this.messages=null,this.messagesUnits=null,this.unit=null,this.unitOptions=null,this.view=null,this.viewModel=new a}render(){const{id:e,messages:t,messagesUnits:i,viewModel:n,visible:r}=this,{active:o,supported:a,measurementLabel:l,state:u,unit:c,unitOptions:d}=n,v="disabled"===u,b="measuring"===u||"measured"===u,_=o&&"ready"===u?m("section",{key:"hint",class:p.hint},m("p",{class:p.hintText},t.hint)):null,w=a?null:m("section",{key:"unsupported",class:p.panelError},m("p",null,t.unsupported)),h=(e,t,s)=>t?m("div",{key:`${s}-enabled`,class:p.measurementItem},m("span",{class:p.measurementItemTitle},e),m("span",{class:p.measurementItemValue},t)):m("div",{key:`${s}-disabled`,class:this.classes(p.measurementItem,p.measurementItemDisabled),"aria-disabled":"true"},m("span",{class:p.measurementItemTitle},e)),g=b?m("section",{key:"measurement",class:p.measurement},h(t.distance,l,"distance")):null,y=`${e}-units`,M=b?m("section",{key:"units",class:p.units},m("label",{class:p.unitsLabel,for:y},t.unit),m("div",{class:p.unitsSelectWrapper},m("select",{class:p.unitsSelect,id:y,onchange:this._changeUnit,bind:this,value:c},d.map((e=>{var t;return m("option",{key:e,value:e},s(e)?i.systems[e]:null==(t=i.units[e])?void 0:t.pluralCapitalized)}))))):null,$=b?m("div",{key:"settings",class:p.settings},M):null,j=!a||o&&!b?null:m("div",{class:p.actionSection},m("button",{disabled:v,class:this.classes(p.newMeasurementButton,v&&p.buttonDisabled),bind:this,onclick:this._newMeasurement,title:t.newMeasurement,"aria-label":t.newMeasurement,type:"button"},t.newMeasurement)),f=r?m("div",{class:p.container},w,_,$,g,j):null;return m("div",{class:p.base},f)}_newMeasurement(){t(this.viewModel.start())}_changeUnit(e){const t=e.target,s=t.options[t.selectedIndex];s&&(this.viewModel.unit=s.value)}};e([i("viewModel.active")],d.prototype,"active",void 0),e([n()],d.prototype,"iconClass",void 0),e([n({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],d.prototype,"label",void 0),e([n()],d.prototype,"uiStrings",void 0),e([n(),u("geoscene/widgets/DistanceMeasurement2D/t9n/DistanceMeasurement2D")],d.prototype,"messages",void 0),e([n(),u("geoscene/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([i("viewModel.unit")],d.prototype,"unit",void 0),e([i("viewModel.unitOptions")],d.prototype,"unitOptions",void 0),e([i("viewModel.view")],d.prototype,"view",void 0),e([n({type:a})],d.prototype,"viewModel",void 0),e([i("viewModel.visible")],d.prototype,"visible",void 0),e([l()],d.prototype,"_newMeasurement",null),e([l()],d.prototype,"_changeUnit",null),d=e([r("geoscene.widgets.DistanceMeasurement2D")],d);const v=d;export{v as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{deprecated as e}from"../../core/deprecate.js";function t(t,r,s){e(t,"`"+r+"` is deprecated, because it instantiates the deprecated class 'geoscene.widgets.Editor.CreateWorkflow'",{replacement:s,version:"4.23",see:"https://developers.geoscene.cn/javascript/latest/api-reference/esri-widgets-Editor-CreateFeaturesWorkflow.html"})}export{t as workflowDeprecation};
5
+ import{deprecated as e}from"../../core/deprecate.js";function t(t,r,s){e(t,"`"+r+"` is deprecated, because it instantiates the deprecated class 'geoscene.widgets.Editor.CreateWorkflow'",{replacement:s,version:"4.23",see:"https://developers.geoscene.cn/javascript/latest/api-reference/geoscene-widgets-Editor-CreateFeaturesWorkflow.html"})}export{t as workflowDeprecation};
package/widgets/Editor.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{HandleOwnerMixin as t}from"../core/HandleOwner.js";import s from"../core/Logger.js";import{isSome as i}from"../core/maybe.js";import{watch as a}from"../core/reactiveUtils.js";import{init as r,on as o,watch as n,whenNot as l}from"../core/watchUtils.js";import{aliasOf as d}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as c}from"../core/accessorSupport/decorators/cast.js";import{property as p}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import{getDisplayFieldName as m}from"../layers/support/fieldUtils.js";import u from"../views/interactive/snapping/SnappingOptions.js";import g from"./Attachments.js";import v from"./FeatureForm.js";import _ from"./FeatureTemplates.js";import w from"./Spinner.js";import f from"./Widget.js";import{workflowDeprecation as k}from"./Editor/deprecationUtils.js";import y from"./Editor/EditorViewModel.js";import{ItemList as b}from"./FeatureTemplates/ItemList.js";import{Heading as C,incrementHeadingLevel as M}from"./support/Heading.js";import A from"./support/SnappingControls.js";import{accessibleHandler as F}from"./support/decorators/accessibleHandler.js";import{messageBundle as W}from"./support/decorators/messageBundle.js";import{vmEvent as T}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import{classes as E}from"./support/widgetUtils.js";import{substitute as B}from"../intl/substitute.js";const P={base:"esri-editor esri-widget esri-widget--panel",scroller:"esri-editor__scroller",content:"esri-editor__content",contentGroup:"esri-editor__content-group",message:"esri-editor__message",controls:"esri-editor__controls",progressBar:"esri-editor__progress-bar",promptContainer:"esri-editor__prompt",promptHeader:"esri-editor__prompt__header",promptHeading:"esri-editor__prompt__header__heading",promptMessage:"esri-editor__prompt__message",promptDivider:"esri-editor__prompt__divider",promptActions:"esri-editor__prompt__actions",promptOption:"esri-editor__prompt__option",promptOptionPrimary:"esri-editor__prompt__option--primary",promptOptionNegative:"esri-editor__prompt__option--negative",promptOptionPositive:"esri-editor__prompt__option--positive",controlButton:"esri-editor__control-button",overlay:"esri-editor__overlay",warningIcon:"geoscene-icon-notice-triangle",widgetIcon:"geoscene-icon-edit",button:"esri-button",buttonDisabled:"esri-button--disabled",buttonSecondary:"esri-button--secondary",buttonTertiary:"esri-button--tertiary",input:"esri-input",interactive:"esri-interactive",select:"esri-select",panelToolbar:"esri-editor__panel-toolbar",panelToolbarSnappingButton:"esri-editor__panel-toolbar__snapping-button",panelContent:"esri-editor__panel-content",panelContentSection:"esri-editor__panel-content--section",updateFeaturesActionButtons:"esri-editor__update-features-action-buttons",updateFeaturesActionButtonsButton:"esri-editor__update-features-action-buttons--button",featureTemplatesContainer:"esri-editor__feature-templates-container",snappingControlsPopover:"esri-editor__snapping-controls-popover",scrimOverlay:"esri-editor__scrim-overlay"},j={undoRedoButtons:!1};function L(e){e.focus()}const x="geoscene.widgets.Editor",U=s.getLogger(x);let V=class extends(t(f)){constructor(e,t){super(e,t),this._candidateCommitted=!1,this._featureForm=new v,this._stateStack=[],this._attachments=new g({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new _({enableListScroll:!1}),this._filterText="",this._prompt=null,this._spinner=new w,this._snappingPopover=null,this.activeWorkflow=null,this.allowedWorkflows=null,this.useDeprecatedCreateWorkflow=!1,this.headingLevel=4,this.iconClass=P.widgetIcon,this.label=void 0,this.layerInfos=null,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.snappingOptions=new u,this.supportingWidgetDefaults=null,this.view=null,this.viewModel=new y,this.visibleElements={...j},this._setCandidateFeature=(e,t=!1)=>{if(this._candidateCommitted)return;const s=this._assertActiveUpdateWorkflow();s.data.edits.feature=e,t&&(s.next(),this._candidateCommitted=!0)},this._handleSave=this._handleSave.bind(this),this._handleBack=this._handleBack.bind(this),this._handleDone=this._handleDone.bind(this),this._handleDelete=this._handleDelete.bind(this),this._handleAdd=this._handleAdd.bind(this),this._handleEdit=this._handleEdit.bind(this),this._handleAttachmentAdd=this._handleAttachmentAdd.bind(this),this._handleAttachmentUpdate=this._handleAttachmentUpdate.bind(this),this._handleAttachmentDelete=this._handleAttachmentDelete.bind(this),this.EditorPanel=this.EditorPanel.bind(this)}initialize(){const{view:e,snappingOptions:t}=this;this._snappingControls=new A({snappingOptions:t,view:e,visibleElements:{header:!1}}),this.own([r(this,"headingLevel",(e=>{this._featureForm.headingLevel=M(e),this._featureTemplates.headingLevel=M(e)})),this.viewModel.featureTemplatesViewModel.on("select",(({item:e})=>this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(e):this.startCreateFeaturesWorkflowAtFeatureCreation(e))),a((()=>this.viewModel.state),((e,t)=>{const s=this._stateStack.indexOf(e);-1===s?this._stateStack.push(t):this._stateStack.splice(s)})),r(this,"viewModel",(e=>{this._featureForm.viewModel=e?e.featureFormViewModel:null,this._attachments.viewModel=e?e.attachmentsViewModel:null,this._featureTemplates.viewModel=e?e.featureTemplatesViewModel:null,this._spinner.viewModel=e?e.spinnerViewModel:null})),r(this,"view",((e,t)=>{const s=`editor-${this.id}-spinner`;t&&t.ui.remove(this._spinner,s),e&&e.ui.add(this._spinner,{key:s,position:"manual"})})),o(this,"viewModel.sketchViewModel","create",(()=>{this.scheduleRender()})),o(this,"viewModel.activeWorkflow","cancel-request",(({controller:e})=>{const{messages:t,messagesCommon:s}=this;this._prompt={title:t.cancelRequestTitle,message:t.cancelRequestWarningMessage,context:"danger",actions:{primary:{label:s.form.yes,action:()=>{e.allow(),this._prompt=null}},secondary:{label:s.form.no,action:()=>(e.deny(),this._prompt=null)}}},this.scheduleRender()})),r(this,"supportingWidgetDefaults",(e=>{e&&(this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch))})),n(this,"_attachments.error",(e=>{if(!e)return;const{messages:t,messagesCommon:s}=this;this._prompt={title:t.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:s.form.ok,action:()=>{this._prompt=null}}}}})),n(this,"viewModel.failures",(e=>{if(!e)return;const{messages:t}=this,[{error:s,retry:i,cancel:a}]=e;this._prompt={title:t.errorWarningTitle,message:B(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{i(),this._prompt=null}},secondary:{label:t.ignore,action:()=>(a(),this._prompt=null)}}}})),n(this,"viewModel.state",(e=>{"awaiting-feature-to-update"===e&&(this._filterText=""),"awaiting-update-feature-candidate"===e&&(this._candidateCommitted=!1)})),n(this,["_attachments.selectedFile","_attachments.submitting"],(()=>this.scheduleRender())),l(this,"viewModel.activeWorkflow",(()=>this._featureTemplates.filterText=""))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy(),this._snappingControls.destroy()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-action.js"),import("@esri/calcite-components/dist/components/calcite-action-menu.js"),import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-flow.js"),import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-loader.js"),import("@esri/calcite-components/dist/components/calcite-panel.js"),import("@esri/calcite-components/dist/components/calcite-popover.js"),import("@esri/calcite-components/dist/components/calcite-popover-manager.js"),import("@esri/calcite-components/dist/components/calcite-scrim.js"),import("@esri/calcite-components/dist/components/calcite-tooltip-manager.js")])}castVisibleElements(e){return{...j,...e}}startCreateWorkflowAtFeatureTypeSelection(){return k(U,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return k(U,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return k(U,"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{_attachments:e,_prompt:t,viewModel:s}=this;if(!s)return S("div",{class:P.base});const{state:a}=s,r=i(t)?S("calcite-scrim",null,this.renderPrompt(t)):null;return S("div",{class:P.base},s.syncing||e.submitting?this.renderProgressBar():null,S("calcite-flow",null,this._stateStack.map((e=>this.renderState(e))),this.renderState(a)),r)}renderState(e){switch(e){case"disabled":break;case"ready":return this.renderLanding(e);case"awaiting-feature-creation-info":return this.renderTemplates(e);case"creating-features":case"editing-new-feature":case"editing-existing-feature":return this.renderAttributeEditing(e);case"awaiting-feature-to-update":return this.renderFeatureUpdating(e);case"awaiting-update-feature-candidate":return this.renderFeatureList(e);case"awaiting-feature-to-create":return this.renderFeatureCreation(e);case"adding-attachment":return this.renderAttachmentAdding(e);case"editing-attachment":return this.renderAttachmentEditing(e)}return S("div",null)}isPanelActive(e){return this.viewModel.state===e}renderTemplates(e){const{EditorPanel:t,headingLevel:s,messages:i,messagesCommon:a,_handleBack:r,_snappingControls:o,viewModel:{sketchViewModel:n}}=this;return S(t,{active:this.isPanelActive(e),key:"templates-panel",handleBack:r,heading:i.selectTemplate,headingLevel:s,messages:i,messagesCommon:a,sketchViewModel:n,snappingControls:o},this._featureTemplates.render())}renderAttributeEditing(e){const{activeWorkflow:t,EditorPanel:s,messages:i,messagesCommon:a,headingLevel:r,_handleBack:o,_snappingControls:n,viewModel:l}=this,{sketchViewModel:d}=l,c=l.featureFormViewModel;if("create-features"===t.type&&t.pendingFeatures.length<1)return this.renderFeatureCreation(e);const p="update"===t.type&&!t.data.edits.modified||l.syncing,h="update"===t.type?i.editFeature:i.createFeatures,m="update"===t.type?a.update:a.create,u="create-features"===t.type&&"create-new"===t.createFeatureState,g=[{label:"create-features"===t.type&&t.numPendingFeatures>1?B(i.createFeaturesTemplate,{numFeatures:t.numPendingFeatures}):m,type:"primary",disabled:p,clickHandler:this._handleSave}];let v=!1;return"update"===t.type&&(t.data.editableItem.hasAttachments&&(v=!0),t.data.editableItem.supports.includes("delete")&&g.push({label:a.delete,type:"tertiary",clickHandler:this._handleDelete})),S(s,{active:this.isPanelActive(e),key:"attribute-editing-panel",heading:h,headingLevel:r,showContentScrim:u,handleBack:o,messages:i,messagesCommon:a,sketchViewModel:d,snappingControls:n},S("div",{class:P.panelContentSection},S("div",{class:P.contentGroup},c.inputFields.length>0?this._featureForm.render():this.renderMessage(B(i.clickToFinishTemplate,{button:m})),v?S("div",{key:"attachments"},S("div",null,i.attachments),this._attachments.render()):null)),S("div",{class:this._prompt?"":P.scrimOverlay},this.renderControls(g)))}renderAttachmentAdding(e){const{_attachments:t,EditorPanel:s,_handleBack:i,headingLevel:a,messages:r,messagesCommon:o,_snappingControls:n,viewModel:{sketchViewModel:l}}=this,d=[{label:t.submitting?o.cancel:o.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._handleAttachmentAdd}];return S(s,{active:this.isPanelActive(e),key:"attachment-adding-panel",heading:r.addAttachment,headingLevel:a,handleBack:i,messages:r,messagesCommon:o,sketchViewModel:l,snappingControls:n},S("div",{class:this.classes(P.content,P.scroller)},t.render()),this.renderControls(d))}renderAttachmentEditing(e){const{_attachments:t,EditorPanel:s,_handleBack:i,headingLevel:a,messages:r,messagesCommon:o,_snappingControls:n,viewModel:{sketchViewModel:l}}=this,d=[{label:o.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._handleAttachmentUpdate},{label:o.delete,disabled:t.submitting,type:"tertiary",clickHandler:this._handleAttachmentDelete}];return S(s,{active:this.isPanelActive(e),key:"attachment-editing-panel",heading:r.editAttachment,headingLevel:a,handleBack:i,messages:r,messagesCommon:o,sketchViewModel:l,snappingControls:n},S("div",{class:this.classes(P.content,P.scroller)},t.render()),this.renderControls(d))}renderFeatureUpdating(e){const{EditorPanel:t,_handleBack:s,headingLevel:i,messages:a,messagesCommon:r,_snappingControls:o,viewModel:{sketchViewModel:n}}=this;return S(t,{active:this.isPanelActive(e),key:"feature-updating-panel",heading:a.selectFeature,headingLevel:i,handleBack:s,messages:a,messagesCommon:r,sketchViewModel:n,snappingControls:o},S("div",{class:this.classes(P.content,P.scroller)},this.renderMessage(a.selectFeatureToEdit)))}renderMessage(e){return S("div",{class:P.message},e)}renderFeatureCreation(e){const{EditorPanel:t,_handleBack:s,headingLevel:i,messages:a,messagesCommon:r,_snappingControls:o,viewModel:n}=this,{sketchViewModel:l}=n,d=n.sketchViewModel,c=this._assertActiveCreateWorkflow().data.creationInfo.layer,p=d.canUndo()&&d.createGraphic?d.createGraphic:null,h=this._getSketchingTip(c.geometryType,p);return S(t,{active:this.isPanelActive(e),key:"feature-creation-panel",heading:a.placeFeature,headingLevel:i,handleBack:s,messages:a,messagesCommon:r,sketchViewModel:l,snappingControls:o},S("div",{class:this.classes(P.content,P.scroller)},this.renderMessage(h)))}renderControls(e){return S("div",{class:P.controls,key:"controls"},e.map((({disabled:e=!1,label:t,type:s,clickHandler:i},a)=>this.renderButton({label:t,class:this.classes(P.controlButton,P.button,"secondary"===s?P.buttonSecondary:"tertiary"===s?P.buttonTertiary:null,e?P.buttonDisabled:null),disabled:e,clickHandler:i,key:a}))))}renderPrompt({title:e,message:t,context:s,actions:i}){const a=!!i.secondary,r=S("calcite-button",{appearance:"solid",color:"danger"===s?"red":"blue",width:a?"half":"full",onclick:i.primary.action,key:"prompt-primary-button",afterCreate:L},i.primary.label),o=a?S("calcite-button",{appearance:"clear",color:"danger"===s?"red":"blue",width:"half",onclick:i.secondary.action,key:"prompt-secondary-button"},i.secondary.label):null;return S("div",{class:`${P.promptContainer}--${s}`},S("div",{class:P.promptHeader},S("calcite-icon",{icon:"exclamation-mark-triangle"}),S(C,{class:P.promptHeading,level:this.headingLevel},e)),S("div",{class:P.promptMessage},t),S("div",{class:P.promptDivider}),S("div",{class:P.promptActions},o,r))}renderProgressBar(){return S("div",{class:this.classes(P.progressBar),key:"progress-bar"})}renderButton(e){return S("button",{class:e.class,disabled:e.disabled,key:e.key,onclick:e.clickHandler,type:"button"},e.label)}renderLanding(e){const{EditorPanel:t,headingLevel:s,messages:i,messagesCommon:a,_snappingControls:r,viewModel:{sketchViewModel:o}}=this;return S(t,{active:this.isPanelActive(e),key:"landing-panel",heading:i.widgetLabel,headingLevel:s,showBackButton:!1,messages:i,messagesCommon:a,sketchViewModel:o,snappingControls:r},S("div",{key:"edit-actions",class:P.panelContentSection},this.renderUpdateActions()),S("div",{key:"create-actions",class:P.panelContentSection},this.renderCreateActions()))}renderUpdateActions(){const{messages:e,messagesCommon:t}=this;return S("div",null,S(C,{level:M(this.headingLevel)},e.editFeatures),S("div",{class:P.updateFeaturesActionButtons},S("calcite-action",{text:t.select,textEnabled:!0,icon:"cursor",alignment:"start",class:P.updateFeaturesActionButtonsButton,onclick:this._handleEdit})))}renderCreateActions(){const{messages:e}=this;return S("div",null,S(C,{level:M(this.headingLevel)},e.createFeatures),S("div",{key:"templates",class:P.featureTemplatesContainer},this._featureTemplates.render()))}renderFeatureList(e){const{EditorPanel:t,_handleBack:s,headingLevel:i,messages:a,messagesCommon:r,messagesTemplates:o,_snappingControls:n,viewModel:{editableItems:l,sketchViewModel:d}}=this,c=this._assertActiveUpdateWorkflow().data.candidates,p=B(a.multipleFeaturesTemplate,{total:c.length}),h=new Map;let m=0;c.map((e=>({label:this._getLabel(e),id:e.attributes[e.layer.objectIdField],data:e}))).filter((e=>{const{label:t,data:s}=e,i=this._filterText.toLowerCase(),{title:a}=s.layer,r=this.viewModel.editableItems.find((e=>e.layer===s.layer));return r.supports.indexOf("update")>-1&&(!i||t.toLowerCase().indexOf(i)>-1||a.toLowerCase().indexOf(i)>-1)})).forEach((e=>{m++;const t=e.data.layer;h.has(t)?h.get(t).items.push(e):h.set(t,{id:`${t.id}`,label:t.title,items:[e]})}));const u=l.filter((({layer:e})=>h.has(e))).map((({layer:e})=>h.get(e))).toArray(),g=m>10||this._filterText.length>0;return S(t,{active:this.isPanelActive(e),key:"feature-list",heading:p,headingLevel:i,handleBack:s,messages:a,messagesCommon:r,sketchViewModel:d,snappingControls:n},b({id:this.id,enableListScroll:!1,filterEnabled:g,filterText:this._filterText,items:u,messages:{filterPlaceholder:o.filterPlaceholder,noItems:o.noItems,noMatches:o.noMatches},onItemMouseEnter:({data:e})=>this._setCandidateFeature(e),onItemMouseLeave:()=>this._setCandidateFeature(null),onItemSelect:({data:e})=>this._setCandidateFeature(e,!0),onFilterChange:e=>this._filterText=e}))}EditorPanel(e,...t){const{active:s,handleBack:i,heading:a,headingLevel:r,key:o,messages:n,messagesCommon:l,showBackButton:d,showContentScrim:c,sketchViewModel:p,snappingControls:h}=e;return S("calcite-panel",{bind:this,key:o,heading:a,headingLevel:r,showBackButton:null==d||d,beforeBack:null!=i?i:null,onCalcitePanelScroll:this._onSnappingPopoverPanelScroll},S("calcite-popover-manager",{autoClose:s,class:P.panelToolbar},S("calcite-popover",{afterCreate:this._afterSnappingPopoverCreated,afterUpdate:this._afterSnappingPopoverUpdated,bind:this,label:n.snappingSettings,heading:n.snappingSettings,"reference-element":`${o}__snappingButton`,"overlay-positioning":"fixed",placement:"bottom"},S("div",{class:P.snappingControlsPopover},h.render())),S("calcite-button",{id:`${o}__snappingButton`,text:n.snapping,appearance:"transparent",color:"neutral",alignment:"icon-end-space-between","icon-start":"vertex-gps","icon-end":"caret-down",width:"full",class:P.panelToolbarSnappingButton},n.snapping),this.visibleElements.undoRedoButtons?[S("calcite-button",{key:"undo-button",text:l.undo,appearance:"transparent",color:"neutral",alignment:"center","icon-start":"undo",scale:"l",disabled:!p.canUndo(),onclick:p.undo.bind(p)}),S("calcite-button",{key:"redo-button",text:l.redo,appearance:"transparent",color:"neutral",alignment:"center","icon-start":"redo",scale:"l",disabled:!p.canRedo(),onclick:p.redo.bind(p)})]:null),S("div",{class:E(P.panelContent,P.scroller)},t,c?S("calcite-scrim",null):null))}_onSnappingPopoverPanelScroll(){var e;null!=(e=this._snappingPopover)&&e.open&&this._snappingPopover.toggle()}_afterSnappingPopoverCreated(e){this._snappingPopover=e}_afterSnappingPopoverUpdated(e){this._snappingPopover=e}_getSketchingTip(e,t){const{messages:s}=this;if("point"===e)return s.tips.clickToAddPoint;if("polygon"===e||"polyline"===e){if(!t)return s.tips.clickToStart;const i=t.geometry,a="polygon"===e?"rings":"paths",[r]=i[a];return"polygon"===e&&r<4?s.tips.clickToContinue:s.tips.clickToContinueThenDoubleClickToEnd}return s.tips.clickToAddFeature}_getLabel(e){const t=e.layer;if(!t)return null;const{objectIdField:s}=t,{attributes:i}=e,a=m(t);return a&&i[a]&&`${i[a]}`||B(this.messages.untitledFeatureTemplate,{id:i[s]})}_handleDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.viewModel.deleteFeatureFromWorkflow(),this._prompt=null}},secondary:{label:e.keepFeature,action:()=>this._prompt=null}}}}_handleSave(){const{featureFormViewModel:e}=this.viewModel;e.submit(),!e.submittable||e.validateContingencyConstraints(e.getValues(),{includeIncompleteViolations:!0}).length>0||this.viewModel.activeWorkflow.commit()}_handleAttachmentAdd(){const{_attachments:e}=this,{activeWorkflow:t}=this.viewModel;e.addAttachment().then((()=>t.previous()))}_handleAttachmentUpdate(){const{_attachments:e}=this,{activeWorkflow:t}=this.viewModel;e.updateAttachment().then((()=>t.previous()))}_handleAttachmentDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{const{_attachments:e}=this,{activeWorkflow:t}=this.viewModel;e.deleteAttachment(e.viewModel.activeAttachmentInfo).then((()=>{t.previous(),this._prompt=null}))}},secondary:{label:e.keepAttachment,action:()=>this._prompt=null}}}}_handleAdd(){this.viewModel.canCreate}_handleEdit(){this.viewModel.canUpdate&&this.viewModel.startUpdateWorkflowAtFeatureSelection()}_handleDone(){this.viewModel.cancelWorkflow({force:!0})}async _handleBack(){const{messages:e}=this,t=this.activeWorkflow,s=()=>{t.hasPreviousStep?t.previous({cancelCurrentStep:!0}):this.viewModel.cancelWorkflow({force:!0})};if("create"===t.type||"create-features"===t.type&&t.numPendingFeatures>0||"update"===t.type&&t.data.edits.modified){const{type:i}=t,a="create"===i?e.cancelAddWarningMessage:e.cancelEditWarningMessage,r="create"===i?e.cancelAddTitle:e.cancelEditTitle,o="create"===i?e.continueAdding:e.continueEditing,n="create"===i?e.discardFeature:e.discardEdits;return this._prompt={title:r,message:a,context:"danger",actions:{primary:{label:n,action:()=>{s(),this._prompt=null}},secondary:{label:o,action:()=>this._prompt=null}}},this.scheduleRender(),Promise.reject()}s()}_assertActiveCreateWorkflow(){const{type:e}=this.viewModel.activeWorkflow;if("create"===e||"create-features"===e)return this.viewModel.activeWorkflow;throw Error("Expected activeWorkflow to be instance of CreateWorkflow or CreateFeaturesWorkflow")}_assertActiveUpdateWorkflow(){if("update"===this.viewModel.activeWorkflow.type)return this.viewModel.activeWorkflow;throw Error("Expected activeWorkflow to be an UpdateWorkflow")}};e([p()],V.prototype,"_attachments",void 0),e([d("viewModel.activeWorkflow")],V.prototype,"activeWorkflow",void 0),e([d("viewModel.allowedWorkflows")],V.prototype,"allowedWorkflows",void 0),e([p()],V.prototype,"useDeprecatedCreateWorkflow",void 0),e([p()],V.prototype,"headingLevel",void 0),e([p()],V.prototype,"iconClass",void 0),e([p({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],V.prototype,"label",void 0),e([d("viewModel.layerInfos")],V.prototype,"layerInfos",void 0),e([p(),W("geoscene/widgets/Editor/t9n/Editor")],V.prototype,"messages",void 0),e([p(),W("geoscene/t9n/common")],V.prototype,"messagesCommon",void 0),e([p(),W("geoscene/widgets/FeatureTemplates/t9n/FeatureTemplates")],V.prototype,"messagesTemplates",void 0),e([d("viewModel.snappingOptions")],V.prototype,"snappingOptions",void 0),e([p()],V.prototype,"supportingWidgetDefaults",void 0),e([d("viewModel.view")],V.prototype,"view",void 0),e([p(),T(["workflow-cancel","workflow-commit"])],V.prototype,"viewModel",void 0),e([p()],V.prototype,"visibleElements",void 0),e([c("visibleElements")],V.prototype,"castVisibleElements",null),e([F()],V.prototype,"_handleDelete",null),e([F()],V.prototype,"_handleAttachmentAdd",null),e([F()],V.prototype,"_handleAttachmentUpdate",null),e([F()],V.prototype,"_handleAttachmentDelete",null),e([F()],V.prototype,"_handleAdd",null),e([F()],V.prototype,"_handleEdit",null),e([F()],V.prototype,"_handleDone",null),V=e([h(x)],V);const D=V;export{D as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{HandleOwnerMixin as t}from"../core/HandleOwner.js";import s from"../core/Logger.js";import{isSome as i}from"../core/maybe.js";import{watch as a}from"../core/reactiveUtils.js";import{init as r,on as o,watch as n,whenNot as l}from"../core/watchUtils.js";import{aliasOf as d}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as c}from"../core/accessorSupport/decorators/cast.js";import{property as p}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import{getDisplayFieldName as m}from"../layers/support/fieldUtils.js";import u from"../views/interactive/snapping/SnappingOptions.js";import g from"./Attachments.js";import v from"./FeatureForm.js";import _ from"./FeatureTemplates.js";import w from"./Spinner.js";import f from"./Widget.js";import{workflowDeprecation as k}from"./Editor/deprecationUtils.js";import y from"./Editor/EditorViewModel.js";import{ItemList as b}from"./FeatureTemplates/ItemList.js";import{Heading as C,incrementHeadingLevel as M}from"./support/Heading.js";import A from"./support/SnappingControls.js";import{accessibleHandler as F}from"./support/decorators/accessibleHandler.js";import{messageBundle as W}from"./support/decorators/messageBundle.js";import{vmEvent as T}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import{classes as E}from"./support/widgetUtils.js";import{substitute as B}from"../intl/substitute.js";const P={base:"geoscene-editor geoscene-widget geoscene-widget--panel",scroller:"geoscene-editor__scroller",content:"geoscene-editor__content",contentGroup:"geoscene-editor__content-group",message:"geoscene-editor__message",controls:"geoscene-editor__controls",progressBar:"geoscene-editor__progress-bar",promptContainer:"geoscene-editor__prompt",promptHeader:"geoscene-editor__prompt__header",promptHeading:"geoscene-editor__prompt__header__heading",promptMessage:"geoscene-editor__prompt__message",promptDivider:"geoscene-editor__prompt__divider",promptActions:"geoscene-editor__prompt__actions",promptOption:"geoscene-editor__prompt__option",promptOptionPrimary:"geoscene-editor__prompt__option--primary",promptOptionNegative:"geoscene-editor__prompt__option--negative",promptOptionPositive:"geoscene-editor__prompt__option--positive",controlButton:"geoscene-editor__control-button",overlay:"geoscene-editor__overlay",warningIcon:"geoscene-icon-notice-triangle",widgetIcon:"geoscene-icon-edit",button:"geoscene-button",buttonDisabled:"geoscene-button--disabled",buttonSecondary:"geoscene-button--secondary",buttonTertiary:"geoscene-button--tertiary",input:"geoscene-input",interactive:"geoscene-interactive",select:"geoscene-select",panelToolbar:"geoscene-editor__panel-toolbar",panelToolbarSnappingButton:"geoscene-editor__panel-toolbar__snapping-button",panelContent:"geoscene-editor__panel-content",panelContentSection:"geoscene-editor__panel-content--section",updateFeaturesActionButtons:"geoscene-editor__update-features-action-buttons",updateFeaturesActionButtonsButton:"geoscene-editor__update-features-action-buttons--button",featureTemplatesContainer:"geoscene-editor__feature-templates-container",snappingControlsPopover:"geoscene-editor__snapping-controls-popover",scrimOverlay:"geoscene-editor__scrim-overlay"},j={undoRedoButtons:!1};function L(e){e.focus()}const x="geoscene.widgets.Editor",U=s.getLogger(x);let V=class extends(t(f)){constructor(e,t){super(e,t),this._candidateCommitted=!1,this._featureForm=new v,this._stateStack=[],this._attachments=new g({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new _({enableListScroll:!1}),this._filterText="",this._prompt=null,this._spinner=new w,this._snappingPopover=null,this.activeWorkflow=null,this.allowedWorkflows=null,this.useDeprecatedCreateWorkflow=!1,this.headingLevel=4,this.iconClass=P.widgetIcon,this.label=void 0,this.layerInfos=null,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.snappingOptions=new u,this.supportingWidgetDefaults=null,this.view=null,this.viewModel=new y,this.visibleElements={...j},this._setCandidateFeature=(e,t=!1)=>{if(this._candidateCommitted)return;const s=this._assertActiveUpdateWorkflow();s.data.edits.feature=e,t&&(s.next(),this._candidateCommitted=!0)},this._handleSave=this._handleSave.bind(this),this._handleBack=this._handleBack.bind(this),this._handleDone=this._handleDone.bind(this),this._handleDelete=this._handleDelete.bind(this),this._handleAdd=this._handleAdd.bind(this),this._handleEdit=this._handleEdit.bind(this),this._handleAttachmentAdd=this._handleAttachmentAdd.bind(this),this._handleAttachmentUpdate=this._handleAttachmentUpdate.bind(this),this._handleAttachmentDelete=this._handleAttachmentDelete.bind(this),this.EditorPanel=this.EditorPanel.bind(this)}initialize(){const{view:e,snappingOptions:t}=this;this._snappingControls=new A({snappingOptions:t,view:e,visibleElements:{header:!1}}),this.own([r(this,"headingLevel",(e=>{this._featureForm.headingLevel=M(e),this._featureTemplates.headingLevel=M(e)})),this.viewModel.featureTemplatesViewModel.on("select",(({item:e})=>this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(e):this.startCreateFeaturesWorkflowAtFeatureCreation(e))),a((()=>this.viewModel.state),((e,t)=>{const s=this._stateStack.indexOf(e);-1===s?this._stateStack.push(t):this._stateStack.splice(s)})),r(this,"viewModel",(e=>{this._featureForm.viewModel=e?e.featureFormViewModel:null,this._attachments.viewModel=e?e.attachmentsViewModel:null,this._featureTemplates.viewModel=e?e.featureTemplatesViewModel:null,this._spinner.viewModel=e?e.spinnerViewModel:null})),r(this,"view",((e,t)=>{const s=`editor-${this.id}-spinner`;t&&t.ui.remove(this._spinner,s),e&&e.ui.add(this._spinner,{key:s,position:"manual"})})),o(this,"viewModel.sketchViewModel","create",(()=>{this.scheduleRender()})),o(this,"viewModel.activeWorkflow","cancel-request",(({controller:e})=>{const{messages:t,messagesCommon:s}=this;this._prompt={title:t.cancelRequestTitle,message:t.cancelRequestWarningMessage,context:"danger",actions:{primary:{label:s.form.yes,action:()=>{e.allow(),this._prompt=null}},secondary:{label:s.form.no,action:()=>(e.deny(),this._prompt=null)}}},this.scheduleRender()})),r(this,"supportingWidgetDefaults",(e=>{e&&(this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch))})),n(this,"_attachments.error",(e=>{if(!e)return;const{messages:t,messagesCommon:s}=this;this._prompt={title:t.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:s.form.ok,action:()=>{this._prompt=null}}}}})),n(this,"viewModel.failures",(e=>{if(!e)return;const{messages:t}=this,[{error:s,retry:i,cancel:a}]=e;this._prompt={title:t.errorWarningTitle,message:B(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{i(),this._prompt=null}},secondary:{label:t.ignore,action:()=>(a(),this._prompt=null)}}}})),n(this,"viewModel.state",(e=>{"awaiting-feature-to-update"===e&&(this._filterText=""),"awaiting-update-feature-candidate"===e&&(this._candidateCommitted=!1)})),n(this,["_attachments.selectedFile","_attachments.submitting"],(()=>this.scheduleRender())),l(this,"viewModel.activeWorkflow",(()=>this._featureTemplates.filterText=""))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy(),this._snappingControls.destroy()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-action.js"),import("@esri/calcite-components/dist/components/calcite-action-menu.js"),import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-flow.js"),import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-loader.js"),import("@esri/calcite-components/dist/components/calcite-panel.js"),import("@esri/calcite-components/dist/components/calcite-popover.js"),import("@esri/calcite-components/dist/components/calcite-popover-manager.js"),import("@esri/calcite-components/dist/components/calcite-scrim.js"),import("@esri/calcite-components/dist/components/calcite-tooltip-manager.js")])}castVisibleElements(e){return{...j,...e}}startCreateWorkflowAtFeatureTypeSelection(){return k(U,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return k(U,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return k(U,"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{_attachments:e,_prompt:t,viewModel:s}=this;if(!s)return S("div",{class:P.base});const{state:a}=s,r=i(t)?S("calcite-scrim",null,this.renderPrompt(t)):null;return S("div",{class:P.base},s.syncing||e.submitting?this.renderProgressBar():null,S("calcite-flow",null,this._stateStack.map((e=>this.renderState(e))),this.renderState(a)),r)}renderState(e){switch(e){case"disabled":break;case"ready":return this.renderLanding(e);case"awaiting-feature-creation-info":return this.renderTemplates(e);case"creating-features":case"editing-new-feature":case"editing-existing-feature":return this.renderAttributeEditing(e);case"awaiting-feature-to-update":return this.renderFeatureUpdating(e);case"awaiting-update-feature-candidate":return this.renderFeatureList(e);case"awaiting-feature-to-create":return this.renderFeatureCreation(e);case"adding-attachment":return this.renderAttachmentAdding(e);case"editing-attachment":return this.renderAttachmentEditing(e)}return S("div",null)}isPanelActive(e){return this.viewModel.state===e}renderTemplates(e){const{EditorPanel:t,headingLevel:s,messages:i,messagesCommon:a,_handleBack:r,_snappingControls:o,viewModel:{sketchViewModel:n}}=this;return S(t,{active:this.isPanelActive(e),key:"templates-panel",handleBack:r,heading:i.selectTemplate,headingLevel:s,messages:i,messagesCommon:a,sketchViewModel:n,snappingControls:o},this._featureTemplates.render())}renderAttributeEditing(e){const{activeWorkflow:t,EditorPanel:s,messages:i,messagesCommon:a,headingLevel:r,_handleBack:o,_snappingControls:n,viewModel:l}=this,{sketchViewModel:d}=l,c=l.featureFormViewModel;if("create-features"===t.type&&t.pendingFeatures.length<1)return this.renderFeatureCreation(e);const p="update"===t.type&&!t.data.edits.modified||l.syncing,h="update"===t.type?i.editFeature:i.createFeatures,m="update"===t.type?a.update:a.create,u="create-features"===t.type&&"create-new"===t.createFeatureState,g=[{label:"create-features"===t.type&&t.numPendingFeatures>1?B(i.createFeaturesTemplate,{numFeatures:t.numPendingFeatures}):m,type:"primary",disabled:p,clickHandler:this._handleSave}];let v=!1;return"update"===t.type&&(t.data.editableItem.hasAttachments&&(v=!0),t.data.editableItem.supports.includes("delete")&&g.push({label:a.delete,type:"tertiary",clickHandler:this._handleDelete})),S(s,{active:this.isPanelActive(e),key:"attribute-editing-panel",heading:h,headingLevel:r,showContentScrim:u,handleBack:o,messages:i,messagesCommon:a,sketchViewModel:d,snappingControls:n},S("div",{class:P.panelContentSection},S("div",{class:P.contentGroup},c.inputFields.length>0?this._featureForm.render():this.renderMessage(B(i.clickToFinishTemplate,{button:m})),v?S("div",{key:"attachments"},S("div",null,i.attachments),this._attachments.render()):null)),S("div",{class:this._prompt?"":P.scrimOverlay},this.renderControls(g)))}renderAttachmentAdding(e){const{_attachments:t,EditorPanel:s,_handleBack:i,headingLevel:a,messages:r,messagesCommon:o,_snappingControls:n,viewModel:{sketchViewModel:l}}=this,d=[{label:t.submitting?o.cancel:o.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._handleAttachmentAdd}];return S(s,{active:this.isPanelActive(e),key:"attachment-adding-panel",heading:r.addAttachment,headingLevel:a,handleBack:i,messages:r,messagesCommon:o,sketchViewModel:l,snappingControls:n},S("div",{class:this.classes(P.content,P.scroller)},t.render()),this.renderControls(d))}renderAttachmentEditing(e){const{_attachments:t,EditorPanel:s,_handleBack:i,headingLevel:a,messages:r,messagesCommon:o,_snappingControls:n,viewModel:{sketchViewModel:l}}=this,d=[{label:o.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._handleAttachmentUpdate},{label:o.delete,disabled:t.submitting,type:"tertiary",clickHandler:this._handleAttachmentDelete}];return S(s,{active:this.isPanelActive(e),key:"attachment-editing-panel",heading:r.editAttachment,headingLevel:a,handleBack:i,messages:r,messagesCommon:o,sketchViewModel:l,snappingControls:n},S("div",{class:this.classes(P.content,P.scroller)},t.render()),this.renderControls(d))}renderFeatureUpdating(e){const{EditorPanel:t,_handleBack:s,headingLevel:i,messages:a,messagesCommon:r,_snappingControls:o,viewModel:{sketchViewModel:n}}=this;return S(t,{active:this.isPanelActive(e),key:"feature-updating-panel",heading:a.selectFeature,headingLevel:i,handleBack:s,messages:a,messagesCommon:r,sketchViewModel:n,snappingControls:o},S("div",{class:this.classes(P.content,P.scroller)},this.renderMessage(a.selectFeatureToEdit)))}renderMessage(e){return S("div",{class:P.message},e)}renderFeatureCreation(e){const{EditorPanel:t,_handleBack:s,headingLevel:i,messages:a,messagesCommon:r,_snappingControls:o,viewModel:n}=this,{sketchViewModel:l}=n,d=n.sketchViewModel,c=this._assertActiveCreateWorkflow().data.creationInfo.layer,p=d.canUndo()&&d.createGraphic?d.createGraphic:null,h=this._getSketchingTip(c.geometryType,p);return S(t,{active:this.isPanelActive(e),key:"feature-creation-panel",heading:a.placeFeature,headingLevel:i,handleBack:s,messages:a,messagesCommon:r,sketchViewModel:l,snappingControls:o},S("div",{class:this.classes(P.content,P.scroller)},this.renderMessage(h)))}renderControls(e){return S("div",{class:P.controls,key:"controls"},e.map((({disabled:e=!1,label:t,type:s,clickHandler:i},a)=>this.renderButton({label:t,class:this.classes(P.controlButton,P.button,"secondary"===s?P.buttonSecondary:"tertiary"===s?P.buttonTertiary:null,e?P.buttonDisabled:null),disabled:e,clickHandler:i,key:a}))))}renderPrompt({title:e,message:t,context:s,actions:i}){const a=!!i.secondary,r=S("calcite-button",{appearance:"solid",color:"danger"===s?"red":"blue",width:a?"half":"full",onclick:i.primary.action,key:"prompt-primary-button",afterCreate:L},i.primary.label),o=a?S("calcite-button",{appearance:"clear",color:"danger"===s?"red":"blue",width:"half",onclick:i.secondary.action,key:"prompt-secondary-button"},i.secondary.label):null;return S("div",{class:`${P.promptContainer}--${s}`},S("div",{class:P.promptHeader},S("calcite-icon",{icon:"exclamation-mark-triangle"}),S(C,{class:P.promptHeading,level:this.headingLevel},e)),S("div",{class:P.promptMessage},t),S("div",{class:P.promptDivider}),S("div",{class:P.promptActions},o,r))}renderProgressBar(){return S("div",{class:this.classes(P.progressBar),key:"progress-bar"})}renderButton(e){return S("button",{class:e.class,disabled:e.disabled,key:e.key,onclick:e.clickHandler,type:"button"},e.label)}renderLanding(e){const{EditorPanel:t,headingLevel:s,messages:i,messagesCommon:a,_snappingControls:r,viewModel:{sketchViewModel:o}}=this;return S(t,{active:this.isPanelActive(e),key:"landing-panel",heading:i.widgetLabel,headingLevel:s,showBackButton:!1,messages:i,messagesCommon:a,sketchViewModel:o,snappingControls:r},S("div",{key:"edit-actions",class:P.panelContentSection},this.renderUpdateActions()),S("div",{key:"create-actions",class:P.panelContentSection},this.renderCreateActions()))}renderUpdateActions(){const{messages:e,messagesCommon:t}=this;return S("div",null,S(C,{level:M(this.headingLevel)},e.editFeatures),S("div",{class:P.updateFeaturesActionButtons},S("calcite-action",{text:t.select,textEnabled:!0,icon:"cursor",alignment:"start",class:P.updateFeaturesActionButtonsButton,onclick:this._handleEdit})))}renderCreateActions(){const{messages:e}=this;return S("div",null,S(C,{level:M(this.headingLevel)},e.createFeatures),S("div",{key:"templates",class:P.featureTemplatesContainer},this._featureTemplates.render()))}renderFeatureList(e){const{EditorPanel:t,_handleBack:s,headingLevel:i,messages:a,messagesCommon:r,messagesTemplates:o,_snappingControls:n,viewModel:{editableItems:l,sketchViewModel:d}}=this,c=this._assertActiveUpdateWorkflow().data.candidates,p=B(a.multipleFeaturesTemplate,{total:c.length}),h=new Map;let m=0;c.map((e=>({label:this._getLabel(e),id:e.attributes[e.layer.objectIdField],data:e}))).filter((e=>{const{label:t,data:s}=e,i=this._filterText.toLowerCase(),{title:a}=s.layer,r=this.viewModel.editableItems.find((e=>e.layer===s.layer));return r.supports.indexOf("update")>-1&&(!i||t.toLowerCase().indexOf(i)>-1||a.toLowerCase().indexOf(i)>-1)})).forEach((e=>{m++;const t=e.data.layer;h.has(t)?h.get(t).items.push(e):h.set(t,{id:`${t.id}`,label:t.title,items:[e]})}));const u=l.filter((({layer:e})=>h.has(e))).map((({layer:e})=>h.get(e))).toArray(),g=m>10||this._filterText.length>0;return S(t,{active:this.isPanelActive(e),key:"feature-list",heading:p,headingLevel:i,handleBack:s,messages:a,messagesCommon:r,sketchViewModel:d,snappingControls:n},b({id:this.id,enableListScroll:!1,filterEnabled:g,filterText:this._filterText,items:u,messages:{filterPlaceholder:o.filterPlaceholder,noItems:o.noItems,noMatches:o.noMatches},onItemMouseEnter:({data:e})=>this._setCandidateFeature(e),onItemMouseLeave:()=>this._setCandidateFeature(null),onItemSelect:({data:e})=>this._setCandidateFeature(e,!0),onFilterChange:e=>this._filterText=e}))}EditorPanel(e,...t){const{active:s,handleBack:i,heading:a,headingLevel:r,key:o,messages:n,messagesCommon:l,showBackButton:d,showContentScrim:c,sketchViewModel:p,snappingControls:h}=e;return S("calcite-panel",{bind:this,key:o,heading:a,headingLevel:r,showBackButton:null==d||d,beforeBack:null!=i?i:null,onCalcitePanelScroll:this._onSnappingPopoverPanelScroll},S("calcite-popover-manager",{autoClose:s,class:P.panelToolbar},S("calcite-popover",{afterCreate:this._afterSnappingPopoverCreated,afterUpdate:this._afterSnappingPopoverUpdated,bind:this,label:n.snappingSettings,heading:n.snappingSettings,"reference-element":`${o}__snappingButton`,"overlay-positioning":"fixed",placement:"bottom"},S("div",{class:P.snappingControlsPopover},h.render())),S("calcite-button",{id:`${o}__snappingButton`,text:n.snapping,appearance:"transparent",color:"neutral",alignment:"icon-end-space-between","icon-start":"vertex-gps","icon-end":"caret-down",width:"full",class:P.panelToolbarSnappingButton},n.snapping),this.visibleElements.undoRedoButtons?[S("calcite-button",{key:"undo-button",text:l.undo,appearance:"transparent",color:"neutral",alignment:"center","icon-start":"undo",scale:"l",disabled:!p.canUndo(),onclick:p.undo.bind(p)}),S("calcite-button",{key:"redo-button",text:l.redo,appearance:"transparent",color:"neutral",alignment:"center","icon-start":"redo",scale:"l",disabled:!p.canRedo(),onclick:p.redo.bind(p)})]:null),S("div",{class:E(P.panelContent,P.scroller)},t,c?S("calcite-scrim",null):null))}_onSnappingPopoverPanelScroll(){var e;null!=(e=this._snappingPopover)&&e.open&&this._snappingPopover.toggle()}_afterSnappingPopoverCreated(e){this._snappingPopover=e}_afterSnappingPopoverUpdated(e){this._snappingPopover=e}_getSketchingTip(e,t){const{messages:s}=this;if("point"===e)return s.tips.clickToAddPoint;if("polygon"===e||"polyline"===e){if(!t)return s.tips.clickToStart;const i=t.geometry,a="polygon"===e?"rings":"paths",[r]=i[a];return"polygon"===e&&r<4?s.tips.clickToContinue:s.tips.clickToContinueThenDoubleClickToEnd}return s.tips.clickToAddFeature}_getLabel(e){const t=e.layer;if(!t)return null;const{objectIdField:s}=t,{attributes:i}=e,a=m(t);return a&&i[a]&&`${i[a]}`||B(this.messages.untitledFeatureTemplate,{id:i[s]})}_handleDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.viewModel.deleteFeatureFromWorkflow(),this._prompt=null}},secondary:{label:e.keepFeature,action:()=>this._prompt=null}}}}_handleSave(){const{featureFormViewModel:e}=this.viewModel;e.submit(),!e.submittable||e.validateContingencyConstraints(e.getValues(),{includeIncompleteViolations:!0}).length>0||this.viewModel.activeWorkflow.commit()}_handleAttachmentAdd(){const{_attachments:e}=this,{activeWorkflow:t}=this.viewModel;e.addAttachment().then((()=>t.previous()))}_handleAttachmentUpdate(){const{_attachments:e}=this,{activeWorkflow:t}=this.viewModel;e.updateAttachment().then((()=>t.previous()))}_handleAttachmentDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{const{_attachments:e}=this,{activeWorkflow:t}=this.viewModel;e.deleteAttachment(e.viewModel.activeAttachmentInfo).then((()=>{t.previous(),this._prompt=null}))}},secondary:{label:e.keepAttachment,action:()=>this._prompt=null}}}}_handleAdd(){this.viewModel.canCreate}_handleEdit(){this.viewModel.canUpdate&&this.viewModel.startUpdateWorkflowAtFeatureSelection()}_handleDone(){this.viewModel.cancelWorkflow({force:!0})}async _handleBack(){const{messages:e}=this,t=this.activeWorkflow,s=()=>{t.hasPreviousStep?t.previous({cancelCurrentStep:!0}):this.viewModel.cancelWorkflow({force:!0})};if("create"===t.type||"create-features"===t.type&&t.numPendingFeatures>0||"update"===t.type&&t.data.edits.modified){const{type:i}=t,a="create"===i?e.cancelAddWarningMessage:e.cancelEditWarningMessage,r="create"===i?e.cancelAddTitle:e.cancelEditTitle,o="create"===i?e.continueAdding:e.continueEditing,n="create"===i?e.discardFeature:e.discardEdits;return this._prompt={title:r,message:a,context:"danger",actions:{primary:{label:n,action:()=>{s(),this._prompt=null}},secondary:{label:o,action:()=>this._prompt=null}}},this.scheduleRender(),Promise.reject()}s()}_assertActiveCreateWorkflow(){const{type:e}=this.viewModel.activeWorkflow;if("create"===e||"create-features"===e)return this.viewModel.activeWorkflow;throw Error("Expected activeWorkflow to be instance of CreateWorkflow or CreateFeaturesWorkflow")}_assertActiveUpdateWorkflow(){if("update"===this.viewModel.activeWorkflow.type)return this.viewModel.activeWorkflow;throw Error("Expected activeWorkflow to be an UpdateWorkflow")}};e([p()],V.prototype,"_attachments",void 0),e([d("viewModel.activeWorkflow")],V.prototype,"activeWorkflow",void 0),e([d("viewModel.allowedWorkflows")],V.prototype,"allowedWorkflows",void 0),e([p()],V.prototype,"useDeprecatedCreateWorkflow",void 0),e([p()],V.prototype,"headingLevel",void 0),e([p()],V.prototype,"iconClass",void 0),e([p({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],V.prototype,"label",void 0),e([d("viewModel.layerInfos")],V.prototype,"layerInfos",void 0),e([p(),W("geoscene/widgets/Editor/t9n/Editor")],V.prototype,"messages",void 0),e([p(),W("geoscene/t9n/common")],V.prototype,"messagesCommon",void 0),e([p(),W("geoscene/widgets/FeatureTemplates/t9n/FeatureTemplates")],V.prototype,"messagesTemplates",void 0),e([d("viewModel.snappingOptions")],V.prototype,"snappingOptions",void 0),e([p()],V.prototype,"supportingWidgetDefaults",void 0),e([d("viewModel.view")],V.prototype,"view",void 0),e([p(),T(["workflow-cancel","workflow-commit"])],V.prototype,"viewModel",void 0),e([p()],V.prototype,"visibleElements",void 0),e([c("visibleElements")],V.prototype,"castVisibleElements",null),e([F()],V.prototype,"_handleDelete",null),e([F()],V.prototype,"_handleAttachmentAdd",null),e([F()],V.prototype,"_handleAttachmentUpdate",null),e([F()],V.prototype,"_handleAttachmentDelete",null),e([F()],V.prototype,"_handleAdd",null),e([F()],V.prototype,"_handleEdit",null),e([F()],V.prototype,"_handleDone",null),V=e([h(x)],V);const D=V;export{D as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- const e="esri-elevation-profile",t={geosceneWidget:"esri-widget--panel esri-widget",geosceneWidgetDisabled:"esri-widget--disabled",buttonDisabled:"esri-button--disabled",widgetIcon:"geoscene-icon-elevation-profile",base:`${e}`,portrait:`${e}--portrait`,refined:`${e}--refined`,mainContainer:`${e}__main-container`,promptContainer:`${e}__prompt-container`,header:`${e}__header`,zoomOutButton:`${e}__zoom-out-button geoscene-icon-zoom-out-magnifying-glass`,clearButton:`${e}__clear-button geoscene-icon-trash`,actionButton:`${e}__action-button esri-button`,sketchButton:`${e}__sketch-button esri-button--primary`,sketchCancelButton:`${e}__sketch-cancel-button esri-button--secondary`,sketchDoneButton:`${e}__sketch-done-button esri-button--primary`,selectButton:`${e}__select-button esri-button--secondary`,selectCancelButton:`${e}__select-cancel-button esri-button--secondary`,chartContainer:`${e}__chart-container`,chartSpinner:`${e}__chart-spinner geoscene-icon-loading-indicator esri-rotating`,chartSpinnerVisible:`${e}__chart-spinner--visible`,chartSpinnerSmall:`${e}__chart-spinner--small`,footer:`${e}__footer`},o="esri-elevation-profile-chart",i={line:"amcharts-LineSeries",cursorEnabled:"amcharts-cursor--enabled",axisTooltip:"amcharts-axis-tooltip",seriesTooltip:"amcharts-series-tooltip"},n={base:"esri-elevation-profile-legend"},a="esri-elevation-profile-legend-item",r={base:a,disabled:`${a}--disabled`,expanded:`${a}--expanded`,colorIndicator:`${a}__color-indicator`,header:`${a}__header`,content:`${a}__content`,collapseToggle:`${a}__collapse-toggle esri-button esri-button--tertiary`,collapseToggleIcon:`${a}__collapse-toggle__icon geoscene-icon-down`,label:`${a}__label`,labelDisabled:`${a}__label--disabled`,checkbox:`${a}__checkbox`},s="esri-elevation-profile-statistics",c={base:s,statistic:`${s}__statistic`,statisticLabel:`${s}__statistic__label`,statisticValue:`${s}__statistic__value`,slopeValue:`${s}__slope-value`,slopeUpIcon:"geoscene-icon-arrow-up",slopeDownIcon:"geoscene-icon-arrow-down"},l="esri-elevation-profile-settings",_={base:`${l} geoscene-icon-handle-vertical`,popoverContent:`${l}__popover-content`,select:`${l}__select esri-select`,selectLabel:`${l}__select-label`,checkboxLabel:`${l}__checkbox-label`,checkbox:`${l}__checkbox`,uniformChartScalingCheckbox:`${l}__uniform-chart-scaling-checkbox`};export{o as CHART_BASE,i as CHART_CSS,t as CSS,n as LEGEND_CSS,a as LEGEND_ITEM_BASE,r as LEGEND_ITEM_CSS,_ as SETTINGS_CSS,c as STATISTICS_CSS};
5
+ const e="geoscene-elevation-profile",t={geosceneWidget:"geoscene-widget--panel geoscene-widget",geosceneWidgetDisabled:"geoscene-widget--disabled",buttonDisabled:"geoscene-button--disabled",widgetIcon:"geoscene-icon-elevation-profile",base:`${e}`,portrait:`${e}--portrait`,refined:`${e}--refined`,mainContainer:`${e}__main-container`,promptContainer:`${e}__prompt-container`,header:`${e}__header`,zoomOutButton:`${e}__zoom-out-button geoscene-icon-zoom-out-magnifying-glass`,clearButton:`${e}__clear-button geoscene-icon-trash`,actionButton:`${e}__action-button geoscene-button`,sketchButton:`${e}__sketch-button geoscene-button--primary`,sketchCancelButton:`${e}__sketch-cancel-button geoscene-button--secondary`,sketchDoneButton:`${e}__sketch-done-button geoscene-button--primary`,selectButton:`${e}__select-button geoscene-button--secondary`,selectCancelButton:`${e}__select-cancel-button geoscene-button--secondary`,chartContainer:`${e}__chart-container`,chartSpinner:`${e}__chart-spinner geoscene-icon-loading-indicator geoscene-rotating`,chartSpinnerVisible:`${e}__chart-spinner--visible`,chartSpinnerSmall:`${e}__chart-spinner--small`,footer:`${e}__footer`},o="geoscene-elevation-profile-chart",i={line:"amcharts-LineSeries",cursorEnabled:"amcharts-cursor--enabled",axisTooltip:"amcharts-axis-tooltip",seriesTooltip:"amcharts-series-tooltip"},n={base:"geoscene-elevation-profile-legend"},a="geoscene-elevation-profile-legend-item",r={base:a,disabled:`${a}--disabled`,expanded:`${a}--expanded`,colorIndicator:`${a}__color-indicator`,header:`${a}__header`,content:`${a}__content`,collapseToggle:`${a}__collapse-toggle geoscene-button geoscene-button--tertiary`,collapseToggleIcon:`${a}__collapse-toggle__icon geoscene-icon-down`,label:`${a}__label`,labelDisabled:`${a}__label--disabled`,checkbox:`${a}__checkbox`},s="geoscene-elevation-profile-statistics",c={base:s,statistic:`${s}__statistic`,statisticLabel:`${s}__statistic__label`,statisticValue:`${s}__statistic__value`,slopeValue:`${s}__slope-value`,slopeUpIcon:"geoscene-icon-arrow-up",slopeDownIcon:"geoscene-icon-arrow-down"},l="geoscene-elevation-profile-settings",_={base:`${l} geoscene-icon-handle-vertical`,popoverContent:`${l}__popover-content`,select:`${l}__select geoscene-select`,selectLabel:`${l}__select-label`,checkboxLabel:`${l}__checkbox-label`,checkbox:`${l}__checkbox`,uniformChartScalingCheckbox:`${l}__uniform-chart-scaling-checkbox`};export{o as CHART_BASE,i as CHART_CSS,t as CSS,n as LEGEND_CSS,a as LEGEND_ITEM_BASE,r as LEGEND_ITEM_CSS,_ as SETTINGS_CSS,c as STATISTICS_CSS};
package/widgets/Expand.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{aliasOf as t}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import r from"./Expand/ExpandViewModel.js";import{isWidget as a,hasDomNode as d}from"./support/widget.js";import{messageBundle as i}from"./support/decorators/messageBundle.js";import{accessibleHandler as p}from"./support/decorators/accessibleHandler.js";import{tsx as l}from"./support/jsxFactory.js";const c={base:"esri-expand esri-widget",modeAuto:"esri-expand--auto",modeDrawer:"esri-expand--drawer",modeFloating:"esri-expand--floating",container:"esri-expand__container",containerExpanded:"esri-expand__container--expanded",panel:"esri-expand__panel",button:"esri-widget--button",text:"geoscene-icon-font-fallback-text",icon:"esri-collapse__icon",iconExpanded:"esri-expand__icon--expanded",iconNumber:"esri-expand__icon-number",iconNumberExpanded:"esri-expand__icon-number--expanded",expandIcon:"geoscene-icon-expand",collapseIcon:"geoscene-icon-collapse",content:"esri-expand__content",contentExpanded:"esri-expand__content--expanded",expandMask:"esri-expand__mask",expandMaskExpanded:"esri-expand__mask--expanded"};let u=class extends s{constructor(e,t){super(e,t),this.autoCollapse=null,this.closeOnEsc=!0,this.collapseTooltip="",this.content="",this.expanded=null,this.expandTooltip="",this.group=null,this.iconNumber=0,this.label=void 0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.view=null,this.viewModel=new r,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,null==o||o.focus())}}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 collapseIconClass(){return c.collapseIcon}set collapseIconClass(e){e?this._override("collapseIconClass",e):this._clearOverride("collapseIconClass")}get expandIconClass(){return a(this.content)?this.content.iconClass:c.expandIcon}set expandIconClass(e){e?this._override("expandIconClass",e):this._clearOverride("expandIconClass")}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[c.modeAuto]:"auto"===e,[c.modeDrawer]:"drawer"===e,[c.modeFloating]:"floating"===e};return l("div",{class:this.classes(c.base,t),onkeydown:this._handleKeyDown},this.renderMask(),this.renderContainer())}renderContainer(){const{expanded:e}=this,t={[c.containerExpanded]:e};return l("div",{class:this.classes(c.container,t)},this.renderPanel(),this.renderContent())}renderMask(){const{expanded:e}=this,t={[c.expandMaskExpanded]:e};return l("div",{bind:this,onclick:this._toggle,class:this.classes(c.expandMask,t)})}renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?l("span",{key:"expand__icon-number",class:c.iconNumber},t):null}renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?l("span",{key:"expand__expand-icon-number",class:this.classes(c.iconNumber,c.iconNumberExpanded)},e):null}renderIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[c.iconExpanded]:o,[e]:o,[t]:!o};return e===t&&(n[e]=!0),l("span",{"aria-hidden":"true",class:this.classes(c.icon,n)})}renderTitle(){return l("span",{class:c.text},this.expandTitle)}renderExpandButton(){const{expanded:e,expandTitle:t,contentId:o}=this;return l("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":o,"aria-expanded":e?"true":"false",bind:this,class:c.button,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabindex:"0",title:t},this.renderBadgeNumber(),this.renderIcon(),this.renderTitle())}renderPanel(){return l("div",{class:c.panel},this.renderExpandButton(),this.renderPanelNumber())}renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[c.contentExpanded]:e},s={id:t,role:"region",class:this.classes(c.content,n)};return"string"==typeof o?l("div",{key:"content__string",innerHTML:o,...s}):a(o)?l("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?l("div",{key:"content__html-element",bind:o,afterCreate:this._attachToNode,...s}):d(o)?l("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([o({readOnly:!0})],u.prototype,"contentId",null),e([o({readOnly:!0})],u.prototype,"expandTitle",null),e([t("viewModel.autoCollapse")],u.prototype,"autoCollapse",void 0),e([o()],u.prototype,"closeOnEsc",void 0),e([o()],u.prototype,"collapseIconClass",null),e([o()],u.prototype,"collapseTooltip",void 0),e([o()],u.prototype,"content",void 0),e([t("viewModel.expanded")],u.prototype,"expanded",void 0),e([o()],u.prototype,"expandIconClass",null),e([o()],u.prototype,"expandTooltip",void 0),e([t("viewModel.group")],u.prototype,"group",void 0),e([o()],u.prototype,"iconNumber",void 0),e([o({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],u.prototype,"label",void 0),e([o(),i("geoscene/widgets/Expand/t9n/Expand")],u.prototype,"messages",void 0),e([o(),i("geoscene/t9n/common")],u.prototype,"messagesCommon",void 0),e([o()],u.prototype,"mode",void 0),e([t("viewModel.view")],u.prototype,"view",void 0),e([o({type:r})],u.prototype,"viewModel",void 0),e([p()],u.prototype,"_toggle",null),u=e([n("geoscene.widgets.Expand")],u);const x=u;export{x as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{aliasOf as t}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import r from"./Expand/ExpandViewModel.js";import{isWidget as a,hasDomNode as d}from"./support/widget.js";import{messageBundle as i}from"./support/decorators/messageBundle.js";import{accessibleHandler as p}from"./support/decorators/accessibleHandler.js";import{tsx as l}from"./support/jsxFactory.js";const c={base:"geoscene-expand geoscene-widget",modeAuto:"geoscene-expand--auto",modeDrawer:"geoscene-expand--drawer",modeFloating:"geoscene-expand--floating",container:"geoscene-expand__container",containerExpanded:"geoscene-expand__container--expanded",panel:"geoscene-expand__panel",button:"geoscene-widget--button",text:"geoscene-icon-font-fallback-text",icon:"geoscene-collapse__icon",iconExpanded:"geoscene-expand__icon--expanded",iconNumber:"geoscene-expand__icon-number",iconNumberExpanded:"geoscene-expand__icon-number--expanded",expandIcon:"geoscene-icon-expand",collapseIcon:"geoscene-icon-collapse",content:"geoscene-expand__content",contentExpanded:"geoscene-expand__content--expanded",expandMask:"geoscene-expand__mask",expandMaskExpanded:"geoscene-expand__mask--expanded"};let u=class extends s{constructor(e,t){super(e,t),this.autoCollapse=null,this.closeOnEsc=!0,this.collapseTooltip="",this.content="",this.expanded=null,this.expandTooltip="",this.group=null,this.iconNumber=0,this.label=void 0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.view=null,this.viewModel=new r,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,null==o||o.focus())}}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 collapseIconClass(){return c.collapseIcon}set collapseIconClass(e){e?this._override("collapseIconClass",e):this._clearOverride("collapseIconClass")}get expandIconClass(){return a(this.content)?this.content.iconClass:c.expandIcon}set expandIconClass(e){e?this._override("expandIconClass",e):this._clearOverride("expandIconClass")}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[c.modeAuto]:"auto"===e,[c.modeDrawer]:"drawer"===e,[c.modeFloating]:"floating"===e};return l("div",{class:this.classes(c.base,t),onkeydown:this._handleKeyDown},this.renderMask(),this.renderContainer())}renderContainer(){const{expanded:e}=this,t={[c.containerExpanded]:e};return l("div",{class:this.classes(c.container,t)},this.renderPanel(),this.renderContent())}renderMask(){const{expanded:e}=this,t={[c.expandMaskExpanded]:e};return l("div",{bind:this,onclick:this._toggle,class:this.classes(c.expandMask,t)})}renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?l("span",{key:"expand__icon-number",class:c.iconNumber},t):null}renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?l("span",{key:"expand__expand-icon-number",class:this.classes(c.iconNumber,c.iconNumberExpanded)},e):null}renderIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[c.iconExpanded]:o,[e]:o,[t]:!o};return e===t&&(n[e]=!0),l("span",{"aria-hidden":"true",class:this.classes(c.icon,n)})}renderTitle(){return l("span",{class:c.text},this.expandTitle)}renderExpandButton(){const{expanded:e,expandTitle:t,contentId:o}=this;return l("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":o,"aria-expanded":e?"true":"false",bind:this,class:c.button,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabindex:"0",title:t},this.renderBadgeNumber(),this.renderIcon(),this.renderTitle())}renderPanel(){return l("div",{class:c.panel},this.renderExpandButton(),this.renderPanelNumber())}renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[c.contentExpanded]:e},s={id:t,role:"region",class:this.classes(c.content,n)};return"string"==typeof o?l("div",{key:"content__string",innerHTML:o,...s}):a(o)?l("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?l("div",{key:"content__html-element",bind:o,afterCreate:this._attachToNode,...s}):d(o)?l("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([o({readOnly:!0})],u.prototype,"contentId",null),e([o({readOnly:!0})],u.prototype,"expandTitle",null),e([t("viewModel.autoCollapse")],u.prototype,"autoCollapse",void 0),e([o()],u.prototype,"closeOnEsc",void 0),e([o()],u.prototype,"collapseIconClass",null),e([o()],u.prototype,"collapseTooltip",void 0),e([o()],u.prototype,"content",void 0),e([t("viewModel.expanded")],u.prototype,"expanded",void 0),e([o()],u.prototype,"expandIconClass",null),e([o()],u.prototype,"expandTooltip",void 0),e([t("viewModel.group")],u.prototype,"group",void 0),e([o()],u.prototype,"iconNumber",void 0),e([o({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],u.prototype,"label",void 0),e([o(),i("geoscene/widgets/Expand/t9n/Expand")],u.prototype,"messages",void 0),e([o(),i("geoscene/t9n/common")],u.prototype,"messagesCommon",void 0),e([o()],u.prototype,"mode",void 0),e([t("viewModel.view")],u.prototype,"view",void 0),e([o({type:r})],u.prototype,"viewModel",void 0),e([p()],u.prototype,"_toggle",null),u=e([n("geoscene.widgets.Expand")],u);const x=u;export{x as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{init as t}from"../../core/watchUtils.js";import{aliasOf as o}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import i from"../Attachments.js";import a from"../Widget.js";import p from"./FeatureAttachments/FeatureAttachmentsViewModel.js";import n from"./support/FeatureElementInfo.js";import"../support/widgetUtils.js";import"../../core/Logger.js";import{tsx as l}from"../support/jsxFactory.js";const d={base:"esri-feature-attachments"};let c=class extends a{constructor(e,t){super(e,t),this._featureElementInfo=null,this.attachmentsWidget=new i,this.description=null,this.displayType=null,this.graphic=null,this.headingLevel=2,this.title=null,this.viewModel=new p}initialize(){this._featureElementInfo=new n,t(this,["viewModel.description","viewModel.title","headingLevel"],(()=>this._setupFeatureElementInfo())),t(this,"viewModel.graphic",(e=>this.attachmentsWidget.graphic=e))}destroy(){this.attachmentsWidget.destroy(),this._featureElementInfo.destroy()}render(){var e;const{attachmentsWidget:t}=this;return l("div",{class:d.base},null==(e=this._featureElementInfo)?void 0:e.render(),null==t?void 0:t.render())}_setupFeatureElementInfo(){const{description:e,title:t,headingLevel:o}=this;this._featureElementInfo.set({description:e,title:t,headingLevel:o})}};e([r({readOnly:!0})],c.prototype,"attachmentsWidget",void 0),e([o("viewModel.description")],c.prototype,"description",void 0),e([o("attachmentsWidget.displayType")],c.prototype,"displayType",void 0),e([o("viewModel.graphic")],c.prototype,"graphic",void 0),e([r()],c.prototype,"headingLevel",void 0),e([o("viewModel.title")],c.prototype,"title",void 0),e([r({type:p})],c.prototype,"viewModel",void 0),c=e([s("geoscene.widgets.Feature.FeatureAttachments")],c);const m=c;export{m as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{init as t}from"../../core/watchUtils.js";import{aliasOf as o}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import i from"../Attachments.js";import a from"../Widget.js";import p from"./FeatureAttachments/FeatureAttachmentsViewModel.js";import n from"./support/FeatureElementInfo.js";import"../support/widgetUtils.js";import"../../core/Logger.js";import{tsx as l}from"../support/jsxFactory.js";const d={base:"geoscene-feature-attachments"};let c=class extends a{constructor(e,t){super(e,t),this._featureElementInfo=null,this.attachmentsWidget=new i,this.description=null,this.displayType=null,this.graphic=null,this.headingLevel=2,this.title=null,this.viewModel=new p}initialize(){this._featureElementInfo=new n,t(this,["viewModel.description","viewModel.title","headingLevel"],(()=>this._setupFeatureElementInfo())),t(this,"viewModel.graphic",(e=>this.attachmentsWidget.graphic=e))}destroy(){this.attachmentsWidget.destroy(),this._featureElementInfo.destroy()}render(){var e;const{attachmentsWidget:t}=this;return l("div",{class:d.base},null==(e=this._featureElementInfo)?void 0:e.render(),null==t?void 0:t.render())}_setupFeatureElementInfo(){const{description:e,title:t,headingLevel:o}=this;this._featureElementInfo.set({description:e,title:t,headingLevel:o})}};e([r({readOnly:!0})],c.prototype,"attachmentsWidget",void 0),e([o("viewModel.description")],c.prototype,"description",void 0),e([o("attachmentsWidget.displayType")],c.prototype,"displayType",void 0),e([o("viewModel.graphic")],c.prototype,"graphic",void 0),e([r()],c.prototype,"headingLevel",void 0),e([o("viewModel.title")],c.prototype,"title",void 0),e([r({type:p})],c.prototype,"viewModel",void 0),c=e([s("geoscene.widgets.Feature.FeatureAttachments")],c);const m=c;export{m as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{aliasOf as r}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as t}from"../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../Widget.js";import a from"./FeatureContent/FeatureContentViewModel.js";import{shouldOpenInNewTab as i}from"./support/featureUtils.js";import{isWidget as d}from"../support/widget.js";import{tsx as n}from"../support/jsxFactory.js";const c={base:"esri-feature-content",loaderContainer:"esri-feature-content__loader-container",loader:"esri-feature-content__loader"};let l=class extends s{constructor(e,r){super(e,r),this.creator=null,this.graphic=null,this.viewModel=null,this._addTargetToAnchors=e=>{Array.from(e.querySelectorAll("a")).forEach((e=>{i(e.href)&&!e.hasAttribute("target")&&e.setAttribute("target","_blank")}))}}renderLoading(){return n("div",{class:c.loaderContainer,key:"loader"},n("div",{class:c.loader}))}renderCreated(){var e;const r=null==(e=this.viewModel)?void 0:e.created;return r?r instanceof HTMLElement?n("div",{key:r,bind:r,afterCreate:this._attachToNode}):d(r)?n("div",{key:r},!r.destroyed&&r.render()):n("div",{key:r,innerHTML:r,afterCreate:this._addTargetToAnchors}):null}render(){var e;const r=null==(e=this.viewModel)?void 0:e.state;return n("div",{class:c.base},"loading"===r?this.renderLoading():this.renderCreated())}_attachToNode(e){const r=this;e.appendChild(r)}};e([r("viewModel.creator")],l.prototype,"creator",void 0),e([r("viewModel.graphic")],l.prototype,"graphic",void 0),e([t({type:a})],l.prototype,"viewModel",void 0),l=e([o("geoscene.widgets.Feature.FeatureContent")],l);const p=l;export{p as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{aliasOf as r}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as t}from"../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../Widget.js";import a from"./FeatureContent/FeatureContentViewModel.js";import{shouldOpenInNewTab as i}from"./support/featureUtils.js";import{isWidget as d}from"../support/widget.js";import{tsx as n}from"../support/jsxFactory.js";const c={base:"geoscene-feature-content",loaderContainer:"geoscene-feature-content__loader-container",loader:"geoscene-feature-content__loader"};let l=class extends s{constructor(e,r){super(e,r),this.creator=null,this.graphic=null,this.viewModel=null,this._addTargetToAnchors=e=>{Array.from(e.querySelectorAll("a")).forEach((e=>{i(e.href)&&!e.hasAttribute("target")&&e.setAttribute("target","_blank")}))}}renderLoading(){return n("div",{class:c.loaderContainer,key:"loader"},n("div",{class:c.loader}))}renderCreated(){var e;const r=null==(e=this.viewModel)?void 0:e.created;return r?r instanceof HTMLElement?n("div",{key:r,bind:r,afterCreate:this._attachToNode}):d(r)?n("div",{key:r},!r.destroyed&&r.render()):n("div",{key:r,innerHTML:r,afterCreate:this._addTargetToAnchors}):null}render(){var e;const r=null==(e=this.viewModel)?void 0:e.state;return n("div",{class:c.base},"loading"===r?this.renderLoading():this.renderCreated())}_attachToNode(e){const r=this;e.appendChild(r)}};e([r("viewModel.creator")],l.prototype,"creator",void 0),e([r("viewModel.graphic")],l.prototype,"graphic",void 0),e([t({type:a})],l.prototype,"viewModel",void 0),l=e([o("geoscene.widgets.Feature.FeatureContent")],l);const p=l;export{p as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{init as t}from"../../core/watchUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import i from"../Widget.js";import r from"./FeatureContent.js";import n from"./FeatureFields.js";import d from"./FeatureMedia.js";import a from"./FeatureExpression/FeatureExpressionViewModel.js";import"../support/widgetUtils.js";import"../../core/Logger.js";import{tsx as l}from"../support/jsxFactory.js";const p={iconLoading:"geoscene-icon-loading-indicator esri-rotating",base:"esri-feature-expression",loadingSpinnerContainer:"esri-feature__loading-container",spinner:"esri-feature__loading-spinner"};let c=class extends i{constructor(e,t){super(e,t),this.viewModel=new a}initialize(){t(this,"viewModel.contentElementViewModel",(()=>this._setupExpressionWidget()))}destroy(){this._destroyContentWidget()}renderLoading(){return l("div",{key:"loading-container",class:p.loadingSpinnerContainer},l("span",{class:this.classes(p.iconLoading,p.spinner)}))}render(){var e;const{state:t}=this.viewModel;return l("div",{class:p.base},"loading"===t?this.renderLoading():"disabled"===t?null:null==(e=this._contentWidget)?void 0:e.render())}_destroyContentWidget(){const{_contentWidget:e}=this;e&&(e.viewModel=null,e.destroy()),this._contentWidget=null}_setupExpressionWidget(){const{contentElementViewModel:e,contentElement:t}=this.viewModel,o=null==t?void 0:t.type;this._destroyContentWidget();const s=e?"fields"===o?new n({viewModel:e}):"media"===o?new d({viewModel:e}):"text"===o?new r({viewModel:e}):null:null;this._contentWidget=s,this.scheduleRender()}};e([o({type:a})],c.prototype,"viewModel",void 0),c=e([s("geoscene.widgets.Feature.FeatureExpression")],c);const u=c;export{u as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{init as t}from"../../core/watchUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import i from"../Widget.js";import r from"./FeatureContent.js";import n from"./FeatureFields.js";import d from"./FeatureMedia.js";import a from"./FeatureExpression/FeatureExpressionViewModel.js";import"../support/widgetUtils.js";import"../../core/Logger.js";import{tsx as l}from"../support/jsxFactory.js";const p={iconLoading:"geoscene-icon-loading-indicator geoscene-rotating",base:"geoscene-feature-expression",loadingSpinnerContainer:"geoscene-feature__loading-container",spinner:"geoscene-feature__loading-spinner"};let c=class extends i{constructor(e,t){super(e,t),this.viewModel=new a}initialize(){t(this,"viewModel.contentElementViewModel",(()=>this._setupExpressionWidget()))}destroy(){this._destroyContentWidget()}renderLoading(){return l("div",{key:"loading-container",class:p.loadingSpinnerContainer},l("span",{class:this.classes(p.iconLoading,p.spinner)}))}render(){var e;const{state:t}=this.viewModel;return l("div",{class:p.base},"loading"===t?this.renderLoading():"disabled"===t?null:null==(e=this._contentWidget)?void 0:e.render())}_destroyContentWidget(){const{_contentWidget:e}=this;e&&(e.viewModel=null,e.destroy()),this._contentWidget=null}_setupExpressionWidget(){const{contentElementViewModel:e,contentElement:t}=this.viewModel,o=null==t?void 0:t.type;this._destroyContentWidget();const s=e?"fields"===o?new n({viewModel:e}):"media"===o?new d({viewModel:e}):"text"===o?new r({viewModel:e}):null:null;this._contentWidget=s,this.scheduleRender()}};e([o({type:a})],c.prototype,"viewModel",void 0),c=e([s("geoscene.widgets.Feature.FeatureExpression")],c);const u=c;export{u as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{init as t}from"../../core/watchUtils.js";import{aliasOf as s}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import l from"./FeatureFields/FeatureFieldsViewModel.js";import a from"./support/FeatureElementInfo.js";import{autoLink as d}from"../support/uriUtils.js";import"../support/widgetUtils.js";import{messageBundle as n}from"../support/decorators/messageBundle.js";import"../../core/Logger.js";import{tsx as p}from"../support/jsxFactory.js";const f={base:"esri-feature-fields",fieldHeader:"esri-feature-fields__field-header",fieldData:"esri-feature-fields__field-data",fieldDataDate:"esri-feature-fields__field-data--date",esriTable:"esri-widget__table"};let u=class extends o{constructor(e,t){super(e,t),this._featureElementInfo=null,this.attributes=null,this.description=null,this.expressionInfos=null,this.fieldInfos=null,this.title=null,this.viewModel=new l,this.messages=null,this.messagesURIUtils=null}initialize(){this._featureElementInfo=new a,t(this,["viewModel.description","viewModel.title"],(()=>this._setupFeatureElementInfo()))}destroy(){this._featureElementInfo.destroy()}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),a="number"==typeof o&&!l?this._forceLTR(o):d(this.messagesURIUtils,o),n={[f.fieldDataDate]:l};return p("tr",{key:`fields-element-info-row-${r}-${t}`},p("th",{key:`fields-element-info-row-header-${r}-${t}`,class:f.fieldHeader,innerHTML:i}),p("td",{key:`fields-element-info-row-data-${r}-${t}`,class:this.classes(f.fieldData,n),innerHTML:a}))}renderFields(){const{formattedFieldInfos:e}=this.viewModel;return null!=e&&e.length?p("table",{class:f.esriTable,summary:this.messages.fieldsSummary},p("tbody",null,e.map(((e,t)=>this.renderFieldInfo(e,t))))):null}render(){var e;return p("div",{class:f.base},null==(e=this._featureElementInfo)?void 0:e.render(),this.renderFields())}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo.set({description:e,title:t})}_forceLTR(e){return`&lrm;${e}`}};e([s("viewModel.attributes")],u.prototype,"attributes",void 0),e([s("viewModel.description")],u.prototype,"description",void 0),e([s("viewModel.expressionInfos")],u.prototype,"expressionInfos",void 0),e([s("viewModel.fieldInfos")],u.prototype,"fieldInfos",void 0),e([s("viewModel.title")],u.prototype,"title",void 0),e([r({type:l})],u.prototype,"viewModel",void 0),e([r(),n("geoscene/widgets/Feature/t9n/Feature")],u.prototype,"messages",void 0),e([r(),n("geoscene/widgets/support/t9n/uriUtils")],u.prototype,"messagesURIUtils",void 0),u=e([i("geoscene.widgets.Feature.FeatureFields")],u);const m=u;export{m as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{init as t}from"../../core/watchUtils.js";import{aliasOf as s}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import l from"./FeatureFields/FeatureFieldsViewModel.js";import a from"./support/FeatureElementInfo.js";import{autoLink as d}from"../support/uriUtils.js";import"../support/widgetUtils.js";import{messageBundle as n}from"../support/decorators/messageBundle.js";import"../../core/Logger.js";import{tsx as p}from"../support/jsxFactory.js";const f={base:"geoscene-feature-fields",fieldHeader:"geoscene-feature-fields__field-header",fieldData:"geoscene-feature-fields__field-data",fieldDataDate:"geoscene-feature-fields__field-data--date",esriTable:"geoscene-widget__table"};let u=class extends o{constructor(e,t){super(e,t),this._featureElementInfo=null,this.attributes=null,this.description=null,this.expressionInfos=null,this.fieldInfos=null,this.title=null,this.viewModel=new l,this.messages=null,this.messagesURIUtils=null}initialize(){this._featureElementInfo=new a,t(this,["viewModel.description","viewModel.title"],(()=>this._setupFeatureElementInfo()))}destroy(){this._featureElementInfo.destroy()}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),a="number"==typeof o&&!l?this._forceLTR(o):d(this.messagesURIUtils,o),n={[f.fieldDataDate]:l};return p("tr",{key:`fields-element-info-row-${r}-${t}`},p("th",{key:`fields-element-info-row-header-${r}-${t}`,class:f.fieldHeader,innerHTML:i}),p("td",{key:`fields-element-info-row-data-${r}-${t}`,class:this.classes(f.fieldData,n),innerHTML:a}))}renderFields(){const{formattedFieldInfos:e}=this.viewModel;return null!=e&&e.length?p("table",{class:f.esriTable,summary:this.messages.fieldsSummary},p("tbody",null,e.map(((e,t)=>this.renderFieldInfo(e,t))))):null}render(){var e;return p("div",{class:f.base},null==(e=this._featureElementInfo)?void 0:e.render(),this.renderFields())}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo.set({description:e,title:t})}_forceLTR(e){return`&lrm;${e}`}};e([s("viewModel.attributes")],u.prototype,"attributes",void 0),e([s("viewModel.description")],u.prototype,"description",void 0),e([s("viewModel.expressionInfos")],u.prototype,"expressionInfos",void 0),e([s("viewModel.fieldInfos")],u.prototype,"fieldInfos",void 0),e([s("viewModel.title")],u.prototype,"title",void 0),e([r({type:l})],u.prototype,"viewModel",void 0),e([r(),n("geoscene/widgets/Feature/t9n/Feature")],u.prototype,"messages",void 0),e([r(),n("geoscene/widgets/support/t9n/uriUtils")],u.prototype,"messagesURIUtils",void 0),u=e([i("geoscene.widgets.Feature.FeatureFields")],u);const m=u;export{m as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{eventKey as t}from"../../core/events.js";import{init as i}from"../../core/watchUtils.js";import{aliasOf as r}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../Widget.js";import n from"./FeatureMedia/FeatureMediaViewModel.js";import l from"./support/FeatureElementInfo.js";import{shouldOpenInNewTab as d}from"./support/featureUtils.js";import{loadChartsModule as c,getColorSet as m}from"../support/chartUtils.js";import{isRTL as u}from"../support/widgetUtils.js";import{messageBundle as h}from"../support/decorators/messageBundle.js";import"../../core/Logger.js";import{tsx as p}from"../support/jsxFactory.js";import{isDarkTheme as f}from"../support/widgetThemeUtils.js";const v={base:"esri-feature-media",mediaContainer:"esri-feature-media__container",mediaItemContainer:"esri-feature-media__item-container",mediaItem:"esri-feature-media__item",mediaItemTitle:"esri-feature-media__item-title",mediaItemCaption:"esri-feature-media__item-caption",mediaPrevious:"esri-feature-media__previous",mediaPreviousIconLTR:"esri-feature-media__previous-icon",mediaPreviousIconRTL:"esri-feature-media__previous-icon--rtl",mediaNext:"esri-feature-media__next",mediaNextIconLTR:"esri-feature-media__next-icon",mediaNextIconRTL:"esri-feature-media__next-icon--rtl",mediaChart:"esri-feature-media__chart",mediaButton:"esri-feature-media__button",mediaIcon:"esri-feature-media__icon",iconLeftTriangleArrow:"geoscene-icon-left-triangle-arrow",iconRightTriangleArrow:"geoscene-icon-right-triangle-arrow"},_=.05,I=.95,M=15;let w=class extends s{constructor(e,t){super(e,t),this._refreshTimer=null,this._refreshIntervalInfo=null,this._featureElementInfo=null,this.attributes=null,this.activeMediaInfoIndex=null,this.description=null,this.fieldInfoMap=null,this.layer=null,this.mediaInfos=null,this.popupTemplate=null,this.relatedInfos=null,this.title=null,this.viewModel=new n,this.messages=null,this._getChartDependencies=async e=>{const t=await c(),{destroyed:i,viewModel:r}=this;if(i||!r||!e)return;const{activeMediaInfo:a}=r;this._renderChart({chartDiv:e,mediaInfo:a,chartsModule:t})}}initialize(){this._featureElementInfo=new l,this.own(i(this,["viewModel.activeMediaInfo","viewModel.activeMediaInfoIndex"],(()=>this._setupMediaRefreshTimer())),i(this,["viewModel.description","viewModel.title"],(()=>this._setupFeatureElementInfo())))}destroy(){this._clearMediaRefreshTimer(),this._featureElementInfo.destroy()}render(){var e;return p("div",{bind:this,class:v.base,onkeyup:this._handleMediaKeyup},null==(e=this._featureElementInfo)?void 0:e.render(),this.renderMedia())}renderMedia(){const{formattedMediaInfoCount:e}=this.viewModel;return e?p("div",{key:"media-element-container",class:v.mediaContainer},this.renderMediaPageButton("previous"),this.renderMediaInfo(),this.renderMediaPageButton("next")):null}renderImageMediaInfo(e){const{_refreshIntervalInfo:t}=this,{activeMediaInfoIndex:i,formattedMediaInfoCount:r}=this.viewModel,{value:a,refreshInterval:o,altText:s,title:n,type:l}=e,{sourceURL:c,linkURL:m}=a,u=d(m)?"_blank":"_self",h="_blank"===u?"noreferrer":"",f=o?t:null,v=f?f.timestamp:0,_=f?f.sourceURL:c,I=p("img",{alt:s||n,key:`media-${l}-${i}-${r}-${v}`,src:_}),M=m?p("a",{title:n,href:m,rel:h,target:u},I):null;return M||I}renderChartMediaInfo(e){const{activeMediaInfoIndex:t,formattedMediaInfoCount:i}=this.viewModel;return p("div",{key:`media-${e.type}-${t}-${i}`,bind:this,class:v.mediaChart,afterCreate:this._getChartDependencies})}renderMediaInfoType(){const{activeMediaInfo:e}=this.viewModel;return e?"image"===e.type?this.renderImageMediaInfo(e):-1!==e.type.indexOf("chart")?this.renderChartMediaInfo(e):null:null}renderMediaInfo(){const{activeMediaInfo:e}=this.viewModel;if(!e)return null;const t=e.title?p("div",{key:"media-title",class:v.mediaItemTitle,innerHTML:e.title}):null,i=e.caption?p("div",{key:"media-caption",class:v.mediaItemCaption,innerHTML:e.caption}):null;return p("div",{key:"media-container",class:v.mediaItemContainer},p("div",{key:"media-item-container",class:v.mediaItem},this.renderMediaInfoType()),t,i)}renderMediaPageButton(e){if(this.viewModel.formattedMediaInfoCount<2)return null;const t="previous"===e,i=t?this.messages.previous:this.messages.next,r=t?this.classes(v.mediaButton,v.mediaPrevious):this.classes(v.mediaButton,v.mediaNext),a=t?this.classes(v.mediaIcon,v.mediaPreviousIconLTR,v.iconLeftTriangleArrow):this.classes(v.mediaIcon,v.mediaNextIconLTR,v.iconRightTriangleArrow),o=t?this.classes(v.mediaIcon,v.mediaPreviousIconRTL,v.iconRightTriangleArrow):this.classes(v.mediaIcon,v.mediaNextIconRTL,v.iconLeftTriangleArrow),s=t?"media-previous":"media-next",n=t?this._previous:this._next;return p("button",{type:"button",key:s,title:i,"aria-label":i,tabIndex:0,class:r,bind:this,onclick:n},p("span",{"aria-hidden":"true",class:a}),p("span",{"aria-hidden":"true",class:o}))}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo.set({description:e,title:t})}_next(){this.viewModel.next()}_previous(){this.viewModel.previous()}_handleMediaKeyup(e){const i=t(e);"ArrowLeft"===i&&(e.stopPropagation(),this.viewModel.previous()),"ArrowRight"===i&&(e.stopPropagation(),this.viewModel.next())}_renderChart(e){const{abilities:t}=this.viewModel,{chartsModule:i,chartDiv:r,mediaInfo:a}=e,{value:o,type:s}=a,{am4core:n}=i,l=m(n);function d(e){e instanceof n.ColorSet&&l&&(e.list=l)}f()&&n.useTheme(i.am4themes_dark);const c=window.matchMedia("(prefers-reduced-motion: reduce)");t.chartAnimation&&!c.matches?n.useTheme(i.am4themes_animated):n.unuseTheme(i.am4themes_animated),n.useTheme(d);const u="pie-chart"===s?this._createPieChart(e):this._createXYChart(e);r.setAttribute("aria-label",a.altText||a.title),u.data=o.series.map((e=>({tooltip:e.tooltip,value:e.value}))).filter((e=>"pie-chart"!==s||e.value>0))}_customizeChartTooltip(e,t){e.label.wrap=!0,e.label.maxWidth=200,e.autoTextColor=!1,e.getFillFromObject=!1,e.label.fill=t.color("#ffffff"),e.background.fill=t.color({r:0,g:0,b:0,a:.7})}_createPieChart(e){const{chartDiv:t,chartsModule:i}=e,{am4core:r,am4charts:a}=i,o=r.create(t,a.PieChart);o.rtl=u(this.container);const s=o.series.push(new a.PieSeries);return s.labels.template.disabled=!0,s.ticks.template.disabled=!0,s.dataFields.value="value",s.dataFields.category="tooltip",this._customizeChartTooltip(s.tooltip,r),s.slices.template.tooltipText=o.rtl?"{category}: %{value.percent.formatNumber('#.0')}":"{category}: {value.percent.formatNumber('#.0')}%",o}_getMinSeriesValue(e){let t=0;return e.forEach((e=>t=Math.min(e.value,t))),t}_createColumnChart(e,t){const{chartsModule:i,mediaInfo:r}=t,{value:a}=r,{am4core:o,am4charts:s}=i,n=e.xAxes.push(new s.CategoryAxis);n.dataFields.category="tooltip",n.renderer.labels.template.disabled=!0,this._customizeChartTooltip(n.tooltip,o),n.tooltip.events.on("sizechanged",(()=>{n.tooltip.dy=-n.tooltip.contentHeight}));const l=e.yAxes.push(new s.ValueAxis),d=l.renderer.labels.template;l.renderer.minLabelPosition=_,l.renderer.maxLabelPosition=I,l.min=this._getMinSeriesValue(a.series),this._customizeChartTooltip(l.tooltip,o),d.wrap=!0;const c=e.series.push(new s.ColumnSeries);c.dataFields.valueY="value",c.dataFields.categoryX="tooltip",e.cursor=new s.XYCursor,a.series.length>M&&(e.scrollbarX=new o.Scrollbar)}_createBarChart(e,t){const{chartsModule:i,mediaInfo:r}=t,{value:a}=r,{am4core:o,am4charts:s}=i,n=e.yAxes.push(new s.CategoryAxis);n.dataFields.category="tooltip",n.renderer.inversed=!0,n.renderer.labels.template.disabled=!0,this._customizeChartTooltip(n.tooltip,o),n.tooltip.events.on("sizechanged",(()=>{n.tooltip.dx=n.tooltip.contentWidth}));const l=e.xAxes.push(new s.ValueAxis),d=l.renderer.labels.template;l.renderer.minLabelPosition=_,l.renderer.maxLabelPosition=I,l.min=this._getMinSeriesValue(a.series),this._customizeChartTooltip(l.tooltip,o),d.wrap=!0;const c=e.series.push(new s.ColumnSeries);c.dataFields.valueX="value",c.dataFields.categoryY="tooltip",e.cursor=new s.XYCursor,a.series.length>M&&(e.scrollbarY=new o.Scrollbar)}_createLineChart(e,t){const{chartsModule:i,mediaInfo:r}=t,{value:a}=r,{am4core:o,am4charts:s}=i,n=e.xAxes.push(new s.CategoryAxis);n.dataFields.category="tooltip",n.renderer.labels.template.disabled=!0,this._customizeChartTooltip(n.tooltip,o),n.tooltip.events.on("sizechanged",(()=>{n.tooltip.dy=-n.tooltip.contentHeight}));const l=e.yAxes.push(new s.ValueAxis),d=l.renderer.labels.template;l.renderer.minLabelPosition=_,l.renderer.maxLabelPosition=I,l.min=this._getMinSeriesValue(a.series),this._customizeChartTooltip(l.tooltip,o),d.wrap=!0;const c=e.series.push(new s.LineSeries);c.dataFields.categoryX="tooltip",c.dataFields.valueY="value",e.cursor=new s.XYCursor,a.series.length>M&&(e.scrollbarX=new o.Scrollbar)}_createXYChart(e){const{chartDiv:t,chartsModule:i,mediaInfo:r}=e,{type:a}=r,{am4core:o,am4charts:s}=i,n=o.create(t,s.XYChart);return n.rtl=u(this.container),"column-chart"===a&&this._createColumnChart(n,e),"bar-chart"===a&&this._createBarChart(n,e),"line-chart"===a&&this._createLineChart(n,e),n}_clearMediaRefreshTimer(){const{_refreshTimer:e}=this;e&&(clearTimeout(e),this._refreshTimer=null)}_updateMediaInfoTimestamp(e){const t=Date.now();this._refreshIntervalInfo={timestamp:t,sourceURL:this._getImageSource(e,t)},this.scheduleRender()}_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=-1!==e.indexOf("?")?"&":"?",[r,a=""]=e.split("#");return`${r}${i}timestamp=${t}${a?"#":""}${a}`}};e([r("viewModel.attributes")],w.prototype,"attributes",void 0),e([r("viewModel.activeMediaInfoIndex")],w.prototype,"activeMediaInfoIndex",void 0),e([r("viewModel.description")],w.prototype,"description",void 0),e([r("viewModel.fieldInfoMap")],w.prototype,"fieldInfoMap",void 0),e([r("viewModel.layer")],w.prototype,"layer",void 0),e([r("viewModel.mediaInfos")],w.prototype,"mediaInfos",void 0),e([r("viewModel.popupTemplate")],w.prototype,"popupTemplate",void 0),e([r("viewModel.relatedInfos")],w.prototype,"relatedInfos",void 0),e([r("viewModel.title")],w.prototype,"title",void 0),e([a({type:n})],w.prototype,"viewModel",void 0),e([a(),h("geoscene/widgets/Feature/t9n/Feature")],w.prototype,"messages",void 0),w=e([o("geoscene.widgets.Feature.FeatureMedia")],w);const g=w;export{g as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{eventKey as t}from"../../core/events.js";import{init as i}from"../../core/watchUtils.js";import{aliasOf as r}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../Widget.js";import n from"./FeatureMedia/FeatureMediaViewModel.js";import l from"./support/FeatureElementInfo.js";import{shouldOpenInNewTab as d}from"./support/featureUtils.js";import{loadChartsModule as c,getColorSet as m}from"../support/chartUtils.js";import{isRTL as u}from"../support/widgetUtils.js";import{messageBundle as h}from"../support/decorators/messageBundle.js";import"../../core/Logger.js";import{tsx as p}from"../support/jsxFactory.js";import{isDarkTheme as f}from"../support/widgetThemeUtils.js";const v={base:"geoscene-feature-media",mediaContainer:"geoscene-feature-media__container",mediaItemContainer:"geoscene-feature-media__item-container",mediaItem:"geoscene-feature-media__item",mediaItemTitle:"geoscene-feature-media__item-title",mediaItemCaption:"geoscene-feature-media__item-caption",mediaPrevious:"geoscene-feature-media__previous",mediaPreviousIconLTR:"geoscene-feature-media__previous-icon",mediaPreviousIconRTL:"geoscene-feature-media__previous-icon--rtl",mediaNext:"geoscene-feature-media__next",mediaNextIconLTR:"geoscene-feature-media__next-icon",mediaNextIconRTL:"geoscene-feature-media__next-icon--rtl",mediaChart:"geoscene-feature-media__chart",mediaButton:"geoscene-feature-media__button",mediaIcon:"geoscene-feature-media__icon",iconLeftTriangleArrow:"geoscene-icon-left-triangle-arrow",iconRightTriangleArrow:"geoscene-icon-right-triangle-arrow"},_=.05,I=.95,M=15;let w=class extends s{constructor(e,t){super(e,t),this._refreshTimer=null,this._refreshIntervalInfo=null,this._featureElementInfo=null,this.attributes=null,this.activeMediaInfoIndex=null,this.description=null,this.fieldInfoMap=null,this.layer=null,this.mediaInfos=null,this.popupTemplate=null,this.relatedInfos=null,this.title=null,this.viewModel=new n,this.messages=null,this._getChartDependencies=async e=>{const t=await c(),{destroyed:i,viewModel:r}=this;if(i||!r||!e)return;const{activeMediaInfo:a}=r;this._renderChart({chartDiv:e,mediaInfo:a,chartsModule:t})}}initialize(){this._featureElementInfo=new l,this.own(i(this,["viewModel.activeMediaInfo","viewModel.activeMediaInfoIndex"],(()=>this._setupMediaRefreshTimer())),i(this,["viewModel.description","viewModel.title"],(()=>this._setupFeatureElementInfo())))}destroy(){this._clearMediaRefreshTimer(),this._featureElementInfo.destroy()}render(){var e;return p("div",{bind:this,class:v.base,onkeyup:this._handleMediaKeyup},null==(e=this._featureElementInfo)?void 0:e.render(),this.renderMedia())}renderMedia(){const{formattedMediaInfoCount:e}=this.viewModel;return e?p("div",{key:"media-element-container",class:v.mediaContainer},this.renderMediaPageButton("previous"),this.renderMediaInfo(),this.renderMediaPageButton("next")):null}renderImageMediaInfo(e){const{_refreshIntervalInfo:t}=this,{activeMediaInfoIndex:i,formattedMediaInfoCount:r}=this.viewModel,{value:a,refreshInterval:o,altText:s,title:n,type:l}=e,{sourceURL:c,linkURL:m}=a,u=d(m)?"_blank":"_self",h="_blank"===u?"noreferrer":"",f=o?t:null,v=f?f.timestamp:0,_=f?f.sourceURL:c,I=p("img",{alt:s||n,key:`media-${l}-${i}-${r}-${v}`,src:_}),M=m?p("a",{title:n,href:m,rel:h,target:u},I):null;return M||I}renderChartMediaInfo(e){const{activeMediaInfoIndex:t,formattedMediaInfoCount:i}=this.viewModel;return p("div",{key:`media-${e.type}-${t}-${i}`,bind:this,class:v.mediaChart,afterCreate:this._getChartDependencies})}renderMediaInfoType(){const{activeMediaInfo:e}=this.viewModel;return e?"image"===e.type?this.renderImageMediaInfo(e):-1!==e.type.indexOf("chart")?this.renderChartMediaInfo(e):null:null}renderMediaInfo(){const{activeMediaInfo:e}=this.viewModel;if(!e)return null;const t=e.title?p("div",{key:"media-title",class:v.mediaItemTitle,innerHTML:e.title}):null,i=e.caption?p("div",{key:"media-caption",class:v.mediaItemCaption,innerHTML:e.caption}):null;return p("div",{key:"media-container",class:v.mediaItemContainer},p("div",{key:"media-item-container",class:v.mediaItem},this.renderMediaInfoType()),t,i)}renderMediaPageButton(e){if(this.viewModel.formattedMediaInfoCount<2)return null;const t="previous"===e,i=t?this.messages.previous:this.messages.next,r=t?this.classes(v.mediaButton,v.mediaPrevious):this.classes(v.mediaButton,v.mediaNext),a=t?this.classes(v.mediaIcon,v.mediaPreviousIconLTR,v.iconLeftTriangleArrow):this.classes(v.mediaIcon,v.mediaNextIconLTR,v.iconRightTriangleArrow),o=t?this.classes(v.mediaIcon,v.mediaPreviousIconRTL,v.iconRightTriangleArrow):this.classes(v.mediaIcon,v.mediaNextIconRTL,v.iconLeftTriangleArrow),s=t?"media-previous":"media-next",n=t?this._previous:this._next;return p("button",{type:"button",key:s,title:i,"aria-label":i,tabIndex:0,class:r,bind:this,onclick:n},p("span",{"aria-hidden":"true",class:a}),p("span",{"aria-hidden":"true",class:o}))}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo.set({description:e,title:t})}_next(){this.viewModel.next()}_previous(){this.viewModel.previous()}_handleMediaKeyup(e){const i=t(e);"ArrowLeft"===i&&(e.stopPropagation(),this.viewModel.previous()),"ArrowRight"===i&&(e.stopPropagation(),this.viewModel.next())}_renderChart(e){const{abilities:t}=this.viewModel,{chartsModule:i,chartDiv:r,mediaInfo:a}=e,{value:o,type:s}=a,{am4core:n}=i,l=m(n);function d(e){e instanceof n.ColorSet&&l&&(e.list=l)}f()&&n.useTheme(i.am4themes_dark);const c=window.matchMedia("(prefers-reduced-motion: reduce)");t.chartAnimation&&!c.matches?n.useTheme(i.am4themes_animated):n.unuseTheme(i.am4themes_animated),n.useTheme(d);const u="pie-chart"===s?this._createPieChart(e):this._createXYChart(e);r.setAttribute("aria-label",a.altText||a.title),u.data=o.series.map((e=>({tooltip:e.tooltip,value:e.value}))).filter((e=>"pie-chart"!==s||e.value>0))}_customizeChartTooltip(e,t){e.label.wrap=!0,e.label.maxWidth=200,e.autoTextColor=!1,e.getFillFromObject=!1,e.label.fill=t.color("#ffffff"),e.background.fill=t.color({r:0,g:0,b:0,a:.7})}_createPieChart(e){const{chartDiv:t,chartsModule:i}=e,{am4core:r,am4charts:a}=i,o=r.create(t,a.PieChart);o.rtl=u(this.container);const s=o.series.push(new a.PieSeries);return s.labels.template.disabled=!0,s.ticks.template.disabled=!0,s.dataFields.value="value",s.dataFields.category="tooltip",this._customizeChartTooltip(s.tooltip,r),s.slices.template.tooltipText=o.rtl?"{category}: %{value.percent.formatNumber('#.0')}":"{category}: {value.percent.formatNumber('#.0')}%",o}_getMinSeriesValue(e){let t=0;return e.forEach((e=>t=Math.min(e.value,t))),t}_createColumnChart(e,t){const{chartsModule:i,mediaInfo:r}=t,{value:a}=r,{am4core:o,am4charts:s}=i,n=e.xAxes.push(new s.CategoryAxis);n.dataFields.category="tooltip",n.renderer.labels.template.disabled=!0,this._customizeChartTooltip(n.tooltip,o),n.tooltip.events.on("sizechanged",(()=>{n.tooltip.dy=-n.tooltip.contentHeight}));const l=e.yAxes.push(new s.ValueAxis),d=l.renderer.labels.template;l.renderer.minLabelPosition=_,l.renderer.maxLabelPosition=I,l.min=this._getMinSeriesValue(a.series),this._customizeChartTooltip(l.tooltip,o),d.wrap=!0;const c=e.series.push(new s.ColumnSeries);c.dataFields.valueY="value",c.dataFields.categoryX="tooltip",e.cursor=new s.XYCursor,a.series.length>M&&(e.scrollbarX=new o.Scrollbar)}_createBarChart(e,t){const{chartsModule:i,mediaInfo:r}=t,{value:a}=r,{am4core:o,am4charts:s}=i,n=e.yAxes.push(new s.CategoryAxis);n.dataFields.category="tooltip",n.renderer.inversed=!0,n.renderer.labels.template.disabled=!0,this._customizeChartTooltip(n.tooltip,o),n.tooltip.events.on("sizechanged",(()=>{n.tooltip.dx=n.tooltip.contentWidth}));const l=e.xAxes.push(new s.ValueAxis),d=l.renderer.labels.template;l.renderer.minLabelPosition=_,l.renderer.maxLabelPosition=I,l.min=this._getMinSeriesValue(a.series),this._customizeChartTooltip(l.tooltip,o),d.wrap=!0;const c=e.series.push(new s.ColumnSeries);c.dataFields.valueX="value",c.dataFields.categoryY="tooltip",e.cursor=new s.XYCursor,a.series.length>M&&(e.scrollbarY=new o.Scrollbar)}_createLineChart(e,t){const{chartsModule:i,mediaInfo:r}=t,{value:a}=r,{am4core:o,am4charts:s}=i,n=e.xAxes.push(new s.CategoryAxis);n.dataFields.category="tooltip",n.renderer.labels.template.disabled=!0,this._customizeChartTooltip(n.tooltip,o),n.tooltip.events.on("sizechanged",(()=>{n.tooltip.dy=-n.tooltip.contentHeight}));const l=e.yAxes.push(new s.ValueAxis),d=l.renderer.labels.template;l.renderer.minLabelPosition=_,l.renderer.maxLabelPosition=I,l.min=this._getMinSeriesValue(a.series),this._customizeChartTooltip(l.tooltip,o),d.wrap=!0;const c=e.series.push(new s.LineSeries);c.dataFields.categoryX="tooltip",c.dataFields.valueY="value",e.cursor=new s.XYCursor,a.series.length>M&&(e.scrollbarX=new o.Scrollbar)}_createXYChart(e){const{chartDiv:t,chartsModule:i,mediaInfo:r}=e,{type:a}=r,{am4core:o,am4charts:s}=i,n=o.create(t,s.XYChart);return n.rtl=u(this.container),"column-chart"===a&&this._createColumnChart(n,e),"bar-chart"===a&&this._createBarChart(n,e),"line-chart"===a&&this._createLineChart(n,e),n}_clearMediaRefreshTimer(){const{_refreshTimer:e}=this;e&&(clearTimeout(e),this._refreshTimer=null)}_updateMediaInfoTimestamp(e){const t=Date.now();this._refreshIntervalInfo={timestamp:t,sourceURL:this._getImageSource(e,t)},this.scheduleRender()}_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=-1!==e.indexOf("?")?"&":"?",[r,a=""]=e.split("#");return`${r}${i}timestamp=${t}${a?"#":""}${a}`}};e([r("viewModel.attributes")],w.prototype,"attributes",void 0),e([r("viewModel.activeMediaInfoIndex")],w.prototype,"activeMediaInfoIndex",void 0),e([r("viewModel.description")],w.prototype,"description",void 0),e([r("viewModel.fieldInfoMap")],w.prototype,"fieldInfoMap",void 0),e([r("viewModel.layer")],w.prototype,"layer",void 0),e([r("viewModel.mediaInfos")],w.prototype,"mediaInfos",void 0),e([r("viewModel.popupTemplate")],w.prototype,"popupTemplate",void 0),e([r("viewModel.relatedInfos")],w.prototype,"relatedInfos",void 0),e([r("viewModel.title")],w.prototype,"title",void 0),e([a({type:n})],w.prototype,"viewModel",void 0),e([a(),h("geoscene/widgets/Feature/t9n/Feature")],w.prototype,"messages",void 0),w=e([o("geoscene.widgets.Feature.FeatureMedia")],w);const g=w;export{g as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/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/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.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"../../../core/Logger.js";import{tsx as i}from"../../support/jsxFactory.js";const p={base:"esri-feature-element-info",title:"esri-feature-element-info__title",description:"esri-feature-element-info__description"};let n=class extends s{constructor(e,t){super(e,t),this.description=null,this.headingLevel=2,this.title=null}render(){return i("div",{class:p.base},this.renderTitle(),this.renderDescription())}renderTitle(){const{title:e}=this;return e?i(o,{level:this.headingLevel,class:p.title},e):null}renderDescription(){const{description:e}=this;return e?i("div",{key:"description",class:p.description},e):null}};e([t()],n.prototype,"description",void 0),e([t()],n.prototype,"headingLevel",void 0),e([t()],n.prototype,"title",void 0),n=e([r("geoscene.widgets.Feature.support.FeatureElementInfo")],n);const c=n;export{c as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.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"../../../core/Logger.js";import{tsx as i}from"../../support/jsxFactory.js";const p={base:"geoscene-feature-element-info",title:"geoscene-feature-element-info__title",description:"geoscene-feature-element-info__description"};let n=class extends s{constructor(e,t){super(e,t),this.description=null,this.headingLevel=2,this.title=null}render(){return i("div",{class:p.base},this.renderTitle(),this.renderDescription())}renderTitle(){const{title:e}=this;return e?i(o,{level:this.headingLevel,class:p.title},e):null}renderDescription(){const{description:e}=this;return e?i("div",{key:"description",class:p.description},e):null}};e([t()],n.prototype,"description",void 0),e([t()],n.prototype,"headingLevel",void 0),e([t()],n.prototype,"title",void 0),n=e([r("geoscene.widgets.Feature.support.FeatureElementInfo")],n);const c=n;export{c as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Logger.js";import{all as r,eachAlways as t}from"../../../core/promiseUtils.js";import a from"../../../layers/FeatureLayer.js";import{applyTextFormattingHTML as i,htmlEntities as s}from"./featureUtils.js";const n=["$datastore","$map","$layer","$aggregatedfeatures"],o="geoscene.widgets.Feature.support.arcadeFeatureUtils",c=e.getLogger(o);function p(e){return"string"==typeof e?i(s(e)):Array.isArray(e)?l(e):"geoscene.arcade.Dictionary"===(null==e?void 0:e.declaredClass)?u(e):e}function l(e){return`<ul class="esri-widget__list">${e.map((e=>`<li>${"string"==typeof e?i(s(e)):e}</li>`)).join("")}</ul>`}function u(e){return`<table class="esri-widget__table">${e.keys().map((r=>{const t=e.field(r);return`<tr><th>${r}</th><td>${"string"==typeof t?i(s(t)):t}</td></tr>`})).join("")}</table>`}function f({aggregatedFeatures:e,arcadeUtils:r,featureSetVars:t,context:i,viewInfo:s,map:n,graphic:o,interceptor:c}){t.forEach((t=>{const p=t.toLowerCase(),l={map:n,spatialReference:s.sr,interceptor:c};if("$map"===p&&(i.vars[p]=r.convertMapToFeatureSetCollection(l)),"$layer"===p&&(i.vars[p]=r.convertFeatureLayerToFeatureSet({layer:o.sourceLayer,spatialReference:s.sr,interceptor:c})),"$datastore"===p&&(i.vars[p]=r.convertServiceUrlToWorkspace({url:o.sourceLayer.url,spatialReference:s.sr,interceptor:c})),"$aggregatedfeatures"===p){const t=o.layer,{fields:n,objectIdField:l,geometryType:u,spatialReference:f,displayField:d}=t,g=new a({fields:n,objectIdField:l,geometryType:u,spatialReference:f,displayField:d,..."feature"===t.type?{templates:t.templates,typeIdField:t.typeIdField,types:t.types}:null,source:e});i.vars[p]=r.convertFeatureLayerToFeatureSet({layer:g,spatialReference:s.sr,interceptor:c})}}))}function d(){return import("../../../support/arcadeUtils.js")}async function g({graphic:e,view:r}){const{isAggregate:t,layer:a}=e;if(!t||!a||"2d"!==(null==r?void 0:r.type))return[];const i=await r.whenLayerView(a);if(!i.createQuery||!i.queryFeatures)return[];const s=i.createQuery();s.aggregateIds=[e.getObjectId()];const{features:n}=await i.queryFeatures(s);return n}async function y({expressionInfo:e,arcadeUtils:t,interceptor:a,spatialReference:i,map:s,graphic:o,view:p}){if(!e||!e.expression)return null;const l=t.createSyntaxTree(e.expression),u=n.filter((e=>t.hasVariable(l,e))),[d]=await r([g({graphic:o,view:p}),t.loadScriptDependencies(l,!0,u)]),y=t.getViewInfo({spatialReference:i}),m=t.createExecContext(o,y);m.interceptor=a,m.useAsync=!0,f({aggregatedFeatures:d,arcadeUtils:t,featureSetVars:u,context:m,viewInfo:y,map:s,graphic:o,interceptor:a});const w=t.createFunction(l,m);return t.executeAsyncFunction(w,m).catch((r=>c.error("arcade-execution-error",{error:r,graphic:o,expressionInfo:e})))}async function m({expressionInfos:e,spatialReference:r,graphic:a,interceptor:i,map:s,view:n}){if(!e||!e.length)return{};const o=await d(),c={};for(const t of e)c[`expression/${t.name}`]=y({expressionInfo:t,arcadeUtils:o,interceptor:i,spatialReference:r,map:s,graphic:a,view:n});const l=await t(c),u={};for(const t in l)u[t]=p(l[t].value);return u}export{y as createCompiledExpression,m as createCompiledExpressions,d as loadArcadeUtils};
5
+ import e from"../../../core/Logger.js";import{all as r,eachAlways as t}from"../../../core/promiseUtils.js";import a from"../../../layers/FeatureLayer.js";import{applyTextFormattingHTML as i,htmlEntities as s}from"./featureUtils.js";const n=["$datastore","$map","$layer","$aggregatedfeatures"],o="geoscene.widgets.Feature.support.arcadeFeatureUtils",c=e.getLogger(o);function p(e){return"string"==typeof e?i(s(e)):Array.isArray(e)?l(e):"geoscene.arcade.Dictionary"===(null==e?void 0:e.declaredClass)?u(e):e}function l(e){return`<ul class="geoscene-widget__list">${e.map((e=>`<li>${"string"==typeof e?i(s(e)):e}</li>`)).join("")}</ul>`}function u(e){return`<table class="geoscene-widget__table">${e.keys().map((r=>{const t=e.field(r);return`<tr><th>${r}</th><td>${"string"==typeof t?i(s(t)):t}</td></tr>`})).join("")}</table>`}function f({aggregatedFeatures:e,arcadeUtils:r,featureSetVars:t,context:i,viewInfo:s,map:n,graphic:o,interceptor:c}){t.forEach((t=>{const p=t.toLowerCase(),l={map:n,spatialReference:s.sr,interceptor:c};if("$map"===p&&(i.vars[p]=r.convertMapToFeatureSetCollection(l)),"$layer"===p&&(i.vars[p]=r.convertFeatureLayerToFeatureSet({layer:o.sourceLayer,spatialReference:s.sr,interceptor:c})),"$datastore"===p&&(i.vars[p]=r.convertServiceUrlToWorkspace({url:o.sourceLayer.url,spatialReference:s.sr,interceptor:c})),"$aggregatedfeatures"===p){const t=o.layer,{fields:n,objectIdField:l,geometryType:u,spatialReference:f,displayField:d}=t,g=new a({fields:n,objectIdField:l,geometryType:u,spatialReference:f,displayField:d,..."feature"===t.type?{templates:t.templates,typeIdField:t.typeIdField,types:t.types}:null,source:e});i.vars[p]=r.convertFeatureLayerToFeatureSet({layer:g,spatialReference:s.sr,interceptor:c})}}))}function d(){return import("../../../support/arcadeUtils.js")}async function g({graphic:e,view:r}){const{isAggregate:t,layer:a}=e;if(!t||!a||"2d"!==(null==r?void 0:r.type))return[];const i=await r.whenLayerView(a);if(!i.createQuery||!i.queryFeatures)return[];const s=i.createQuery();s.aggregateIds=[e.getObjectId()];const{features:n}=await i.queryFeatures(s);return n}async function y({expressionInfo:e,arcadeUtils:t,interceptor:a,spatialReference:i,map:s,graphic:o,view:p}){if(!e||!e.expression)return null;const l=t.createSyntaxTree(e.expression),u=n.filter((e=>t.hasVariable(l,e))),[d]=await r([g({graphic:o,view:p}),t.loadScriptDependencies(l,!0,u)]),y=t.getViewInfo({spatialReference:i}),m=t.createExecContext(o,y);m.interceptor=a,m.useAsync=!0,f({aggregatedFeatures:d,arcadeUtils:t,featureSetVars:u,context:m,viewInfo:y,map:s,graphic:o,interceptor:a});const w=t.createFunction(l,m);return t.executeAsyncFunction(w,m).catch((r=>c.error("arcade-execution-error",{error:r,graphic:o,expressionInfo:e})))}async function m({expressionInfos:e,spatialReference:r,graphic:a,interceptor:i,map:s,view:n}){if(!e||!e.length)return{};const o=await d(),c={};for(const t of e)c[`expression/${t.name}`]=y({expressionInfo:t,arcadeUtils:o,interceptor:i,spatialReference:r,map:s,graphic:a,view:n});const l=await t(c),u={};for(const t in l)u[t]=p(l[t].value);return u}export{y as createCompiledExpression,m as createCompiledExpressions,d as loadArcadeUtils};