@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{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{closest as t}from"../core/domUtils.js";import{on as i,eventKey as s}from"../core/events.js";import{HandleOwnerMixin as l}from"../core/HandleOwner.js";import{init as a,whenTrue as n}from"../core/watchUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as c}from"../core/accessorSupport/decorators/cast.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import d from"./Slider.js";import u from"./Widget.js";import{getScalePreviewSource as m,getScalePreviewSpriteBackgroundPosition as h}from"./ScaleRangeSlider/scalePreviewUtils.js";import p from"./ScaleRangeSlider/ScaleRanges.js";import v from"./ScaleRangeSlider/ScaleRangeSliderViewModel.js";import _ from"./support/Popover.js";import{accessibleHandler as S}from"./support/decorators/accessibleHandler.js";import{messageBundle as g}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as M}from"./support/jsxFactory.js";import{isRTL as w,storeNode as f}from"./support/widgetUtils.js";import{formatNumber as b}from"../intl/number.js";import{substitute as y}from"../intl/substitute.js";const x={base:"esri-scale-range-slider",scaleIndicator:"esri-scale-range-slider__scale-indicator",scaleIndicatorIcon:"esri-scale-range-slider__scale-indicator-icon",scaleIndicatorContainer:"esri-scale-range-slider__scale-indicator-container",scaleMenuContainer:"esri-scale-range-slider__scale-menu-container",scaleMenuToggle:"esri-scale-range-slider__scale-menu-toggle",scaleMenuToggleText:"esri-scale-range-slider__scale-menu-toggle-text",scaleMenuToggleIcon:"esri-scale-range-slider__scale-menu-toggle-icon",scaleMenuToggleActive:"esri-scale-range-slider__scale-menu-toggle--active",scaleMenu:"esri-scale-range-slider__scale-menu",scaleMenuList:"esri-scale-range-slider__scale-menu-list",scaleMenuListItem:"esri-scale-range-slider__scale-menu-item",scaleMenuListItemActive:"esri-scale-range-slider__scale-menu-item--active",scaleMenuScroller:"esri-scale-range-slider__scale-menu-scroller",scaleItemLabel:"esri-scale-range-slider__scale-item-label",scaleItemValue:"esri-scale-range-slider__scale-item-value",scaleItemValueEditable:"esri-scale-range-slider__scale-item-value--editable",scalePreview:"esri-scale-range-slider__scale-preview",scalePreviewThumbnail:"esri-scale-range-slider__scale-preview-thumbnail",slider:"esri-slider",expandIcon:"geoscene-icon-down",heading:"esri-widget__heading",hidden:"esri-hidden",input:"esri-input",button:"esri-button",disabled:"esri-disabled",widget:"esri-widget"},I={preview:!0},T={maximumFractionDigits:0},C=e=>`1:${b(e,T)}`,R=e=>{const t=/[^\d.\s]/g,i=e.replace(/.*\(/,"").replace(/\).*$/,"").replace(/.*:/,"").replace(t,"");return parseFloat(i)};let L=class extends(l(u)){constructor(e,l){super(e,l),this._activeMenu=null,this._activeMenuNode=null,this._activeMenuToggleNode=null,this._activeThumb=null,this._customMaxScale=-1,this._customMinScale=-1,this._focusedMenuItemIndex=-1,this._previewAutoCloseTimeoutId=null,this._previewPopover=new _({owner:this,placement:"top",anchorElement:()=>0===this._activeThumb?this._minThumbNode:this._maxThumbNode,offset:[0,16],renderContentFunction:this.renderScalePreview}),this._maxScaleMenuPopover=new _({owner:this,placement:"bottom-end",anchorElement:()=>this._activeMenuToggleNode,renderContentFunction:this.renderMaxScaleMenu}),this._minScaleMenuPopover=new _({owner:this,placement:"bottom-start",anchorElement:()=>this._activeMenuToggleNode,renderContentFunction:this.renderMinScaleMenu}),this._scaleMenuNode=null,this._slider=new d({thumbCreatedFunction:(e,t,s)=>{0===e&&(this._minThumbNode=s),1===e&&(this._maxThumbNode=s),this.own([i(s,"mouseenter",(()=>{const{visibleElements:{preview:t}}=this;this._activeThumb=e,this._previewPopover.open=t,this.scheduleRender()})),i(s,"mouseleave",(()=>{this._previewAutoCloseTimeoutId||(this._activeThumb=null,this._previewPopover.open=!1,this.scheduleRender())}))])}}),this.disabled=!1,this.label=void 0,this.layer=null,this.maxScale=null,this.maxScaleLimit=null,this.messages=null,this.minScale=null,this.minScaleLimit=null,this.region="US",this.view=null,this.viewModel=new v,this.visibleElements=I,this._handleScaleMenuToggleClick=e=>{const s=e.currentTarget,l=s.getAttribute("data-type"),a="menu-closing-click-handle";if(this.handles.remove(a),l===this._activeMenu)return this._setActiveMenu(null),void(this._activeMenuToggleNode=null);this._setActiveMenu(l),this._activeMenuToggleNode=s,this.handles.add(i(document,"mousedown",(e=>{const i=e.target,s=t(i,`.${x.scaleMenuToggle}`),l=s&&s.getAttribute("data-type");if(s&&l===this._activeMenu)return;!l&&this._scaleMenuNode&&!this._scaleMenuNode.contains(i)&&(this._setActiveMenu(null),this.handles.remove(a),this.scheduleRender())})),a)},this._afterMenuListCreate=e=>{this._activeMenuNode=e,e.children[0].focus({preventScroll:!0})},this._handleCustomScaleEntry=e=>{this._setScaleFromMenuSelection(e),this._customMaxScale=-1,this._customMinScale=-1},this._handleCustomScaleInputBlur=()=>{"max"===this._activeMenu?this._customMaxScale=-1:this._customMinScale=-1},this._handleCustomScaleInputKeyDown=e=>{const t=e.currentTarget,{handleCustomScaleSelect:i}=t["data-render-props"],{key:s,ctrlKey:l,metaKey:a}=e,{viewModel:{scaleRanges:n}}=this;if("Enter"===s){const s=R(t.value);return i(isNaN(s)?-1:n.clampScale(s)),e.preventDefault(),void e.stopPropagation()}if(s.length>1||l||a)return;/[:,.\d]/.test(s)||(e.preventDefault(),e.stopPropagation())},this._handleScaleMenuKeyDown=e=>{const t=s(e);if("Escape"===t||"Tab"===t)return this._setActiveMenu(null),void this._activeMenuToggleNode.focus();if("ArrowUp"!==t&&"ArrowDown"!==t)return;const i=this._activeMenuNode.children,l=this._focusedMenuItemIndex,a="ArrowUp"===t?(0===l?i.length:l)-1:(l+1)%i.length;e.preventDefault(),e.stopPropagation(),i[a].focus(),this._focusedMenuItemIndex=a}}initialize(){this.own([a(this,"viewModel",(e=>this._slider.viewModel=e?e.sliderViewModel:null)),a(this,"_interactive",(e=>{this._slider.disabled=!e,e||this._setActiveMenu(null)})),this._slider.on("thumb-drag",(({index:e})=>{const{visibleElements:{preview:t}}=this;this._activeThumb=e,this._previewPopover.open=t,clearTimeout(this._previewAutoCloseTimeoutId);const i=250;this._previewAutoCloseTimeoutId=setTimeout((()=>{this._previewAutoCloseTimeoutId=null,this._activeThumb=null,this._previewPopover.open=!1,this.scheduleRender()}),i)})),n(this,"view.stationary",(()=>this.scheduleRender()))])}destroy(){this._previewPopover.destroy(),this._previewPopover=null,this._maxScaleMenuPopover.destroy(),this._maxScaleMenuPopover=null,this._minScaleMenuPopover.destroy(),this._minScaleMenuPopover=null,this._slider.destroy(),this._slider=null}get _effectiveMaxScale(){return 0===this.maxScale?this.maxScaleLimit:this.maxScale}get _effectiveMinScale(){return 0===this.minScale?this.minScaleLimit:this.minScale}get _interactive(){return"disabled"!==this.get("viewModel.state")&&!this.disabled}castVisibleElements(e){return{...I,...e}}render(){const{_interactive:e,_slider:t,label:i,messages:s,view:l,viewModel:{scaleRanges:a,state:n}}=this,r=s.scaleRangeLabels[a.findScaleRangeByIndex(t.values[0]).id],c=s.scaleRangeLabels[a.findScaleRangeByIndex(t.values[1]).id];return t.layout=w(this.container)?"horizontal-reversed":"horizontal",M("div",{"aria-label":i,class:this.classes(x.base,x.widget,e?null:x.disabled)},"ready"===n&&l?this.renderCurrentScaleIndicator():null,t.render(),M("div",{class:x.scaleMenuContainer,key:"scale-menu-toggles"},this.renderScaleMenuToggle("min",r),this.renderScaleMenuToggle("max",c)))}renderMinScaleMenu(){const{_effectiveMaxScale:e,minScaleLimit:t,view:i,viewModel:{scaleRanges:s}}=this,l=i?i.scale:void 0;return this.renderScaleMenu({type:"min",min:t,max:s.findScaleRange(e).minScale,map:l})}renderMaxScaleMenu(){const{_effectiveMinScale:e,maxScaleLimit:t,view:i,viewModel:{scaleRanges:s}}=this,l=i?i.scale:void 0;return this.renderScaleMenu({type:"max",min:s.findScaleRange(e).maxScale,max:t,map:l})}renderScalePreview(){const{_activeThumb:e,_slider:t,region:i,viewModel:{scaleRanges:s}}=this,l=0===e?t.values[0]:t.values[1],a=Object.keys(p.RecommendedScales).indexOf(s.findScaleRangeByIndex(l).id),n={backgroundImage:m(i),backgroundPosition:h(a)};return M("div",{class:x.scalePreview},M("div",{class:x.scalePreviewThumbnail,styles:n}))}renderScaleMenu({map:e,min:t,max:i,type:s}){const l=p.fromScaleRange({minScale:t,maxScale:i}),a=this.messages.featuredScaleLabels,n=p.RecommendedScales,r=Object.keys(n).filter((e=>l.contains(n[e]))).map((e=>this.renderScaleMenuItem({scaleLabel:a[e],scaleValue:n[e],valueVisible:"world"!==e,handleNamedScaleSelect:this._handleRecommendedScaleClick}))),{_customMaxScale:c,_customMinScale:o,messages:d}=this,u="max"===s?c:o;return M("div",{bind:this,class:x.scaleMenu,"data-type":s,id:`${this.id}__scale-menu--${s}`,key:`${s}-scale-menu`,afterCreate:f,"data-node-ref":"_scaleMenuNode",onkeydown:this._handleScaleMenuKeyDown},M("div",{class:x.scaleMenuScroller},M("ul",{class:x.scaleMenuList,afterCreate:this._afterMenuListCreate},this.renderScaleMenuItem({scaleValue:u,scaleLabel:d.featuredScaleLabels.custom,valueVisible:!1,handleNamedScaleSelect:this._handleScaleSelection,handleCustomScaleSelect:this._handleCustomScaleEntry}),null!=e?this.renderScaleMenuItem({scaleValue:e,scaleLabel:d.featuredScaleLabels.current,valueVisible:!0,handleNamedScaleSelect:this._handleRecommendedScaleClick}):null,r)))}_handleScaleSelection(){"max"===this._activeMenu?this._customMaxScale=this._effectiveMaxScale:this._customMinScale=this._effectiveMinScale}renderScaleMenuToggle(e,t){const{_activeMenu:i,_interactive:s}=this,l=i===e;return M("button",{"aria-controls":l?`${this.id}__scale-menu--${e}`:"","aria-pressed":l?"true":"false",class:this.classes(x.scaleMenuToggle,l?x.scaleMenuToggleActive:null),"data-type":e,key:`${e}-scale-menu-toggle`,onclick:this._handleScaleMenuToggleClick,disabled:!s,type:"button"},M("div",{class:x.scaleMenuToggleText,"aria-label":t,title:t},t),M("span",{class:this.classes(x.scaleMenuToggleIcon,x.expandIcon),"aria-hidden":"true"}))}renderScaleMenuItem(e){const{scaleValue:t,scaleLabel:i,valueVisible:s,handleNamedScaleSelect:l,handleCustomScaleSelect:a=null}=e,{id:n}=this,r=`${n}__custom-scale-input`;return M("li",{bind:this,class:x.scaleMenuListItem,"data-scale":t,key:i,onclick:l,onkeydown:l,tabIndex:-1},M("label",{class:x.scaleItemLabel,for:r},i),t>-1?a?M("input",{afterCreate:this._focusAndSelectInputOnCreate,class:this.classes(x.scaleItemValue,x.scaleItemValueEditable),"data-render-props":e,id:r,key:"value",value:C(t),onkeydown:this._handleCustomScaleInputKeyDown,onblur:this._handleCustomScaleInputBlur}):s?M("div",{class:x.scaleItemValue,key:"value"},C(t)):null:null)}_focusAndSelectInputOnCreate(e){e.focus(),e.select()}renderCurrentScaleIndicator(){const{_slider:e,messages:t,view:i,viewModel:{scaleRanges:s}}=this,l=s.clampScale(i.scale),a=this.viewModel.mapScaleToSlider(l),n=a/e.max,r=t.scaleRangeLabels[s.findScaleRangeByIndex(a).id],c=y(t.currentScaleTooltip,{scaleLabel:r});return M("div",{class:x.scaleIndicatorContainer,key:"scale-indicator"},M("div",{"aria-label":c,class:x.scaleIndicator,styles:{left:(w(this.container)?-1:1)*n*100+"%"},title:c},this.renderCurrentScaleIndicatorIcon()))}renderCurrentScaleIndicatorIcon(){return M("svg",{class:x.scaleIndicatorIcon,height:"8",width:"8",viewBox:"0 0 8 8",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},M("polygon",{points:"4 0 8 8 0 8"}))}_handleRecommendedScaleClick(e){const t=e.currentTarget,i=Number(t["data-scale"]);this._setScaleFromMenuSelection(i)}_setScaleFromMenuSelection(e){"max"===this._activeMenu?this.maxScale=Math.min(e,this._effectiveMinScale-1):this.minScale=Math.max(e,this._effectiveMaxScale+1),this._setActiveMenu(null),this._activeMenuToggleNode.focus()}_setActiveMenu(e){this._activeMenu=e,this._maxScaleMenuPopover.open="max"===e,this._minScaleMenuPopover.open="min"===e,this._focusedMenuItemIndex=e?0:-1}};e([r()],L.prototype,"_slider",void 0),e([r()],L.prototype,"_effectiveMaxScale",null),e([r()],L.prototype,"_effectiveMinScale",null),e([r({readOnly:!0})],L.prototype,"_interactive",null),e([r()],L.prototype,"disabled",void 0),e([r({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],L.prototype,"label",void 0),e([r({aliasOf:"viewModel.layer"})],L.prototype,"layer",void 0),e([r({aliasOf:"viewModel.maxScale"})],L.prototype,"maxScale",void 0),e([r({aliasOf:"viewModel.maxScaleLimit"})],L.prototype,"maxScaleLimit",void 0),e([r(),g("geoscene/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider")],L.prototype,"messages",void 0),e([r({aliasOf:"viewModel.minScale"})],L.prototype,"minScale",void 0),e([r({aliasOf:"viewModel.minScaleLimit"})],L.prototype,"minScaleLimit",void 0),e([r()],L.prototype,"region",void 0),e([r({aliasOf:"viewModel.view"})],L.prototype,"view",void 0),e([r()],L.prototype,"viewModel",void 0),e([r()],L.prototype,"visibleElements",void 0),e([c("visibleElements")],L.prototype,"castVisibleElements",null),e([S()],L.prototype,"_handleScaleSelection",null),e([S()],L.prototype,"_handleRecommendedScaleClick",null),L=e([o("geoscene.widgets.ScaleRangeSlider")],L);const j=L;export{j as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{closest as t}from"../core/domUtils.js";import{on as i,eventKey as s}from"../core/events.js";import{HandleOwnerMixin as l}from"../core/HandleOwner.js";import{init as a,whenTrue as n}from"../core/watchUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as c}from"../core/accessorSupport/decorators/cast.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import d from"./Slider.js";import u from"./Widget.js";import{getScalePreviewSource as m,getScalePreviewSpriteBackgroundPosition as h}from"./ScaleRangeSlider/scalePreviewUtils.js";import p from"./ScaleRangeSlider/ScaleRanges.js";import v from"./ScaleRangeSlider/ScaleRangeSliderViewModel.js";import _ from"./support/Popover.js";import{accessibleHandler as S}from"./support/decorators/accessibleHandler.js";import{messageBundle as g}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as M}from"./support/jsxFactory.js";import{isRTL as w,storeNode as f}from"./support/widgetUtils.js";import{formatNumber as b}from"../intl/number.js";import{substitute as y}from"../intl/substitute.js";const x={base:"geoscene-scale-range-slider",scaleIndicator:"geoscene-scale-range-slider__scale-indicator",scaleIndicatorIcon:"geoscene-scale-range-slider__scale-indicator-icon",scaleIndicatorContainer:"geoscene-scale-range-slider__scale-indicator-container",scaleMenuContainer:"geoscene-scale-range-slider__scale-menu-container",scaleMenuToggle:"geoscene-scale-range-slider__scale-menu-toggle",scaleMenuToggleText:"geoscene-scale-range-slider__scale-menu-toggle-text",scaleMenuToggleIcon:"geoscene-scale-range-slider__scale-menu-toggle-icon",scaleMenuToggleActive:"geoscene-scale-range-slider__scale-menu-toggle--active",scaleMenu:"geoscene-scale-range-slider__scale-menu",scaleMenuList:"geoscene-scale-range-slider__scale-menu-list",scaleMenuListItem:"geoscene-scale-range-slider__scale-menu-item",scaleMenuListItemActive:"geoscene-scale-range-slider__scale-menu-item--active",scaleMenuScroller:"geoscene-scale-range-slider__scale-menu-scroller",scaleItemLabel:"geoscene-scale-range-slider__scale-item-label",scaleItemValue:"geoscene-scale-range-slider__scale-item-value",scaleItemValueEditable:"geoscene-scale-range-slider__scale-item-value--editable",scalePreview:"geoscene-scale-range-slider__scale-preview",scalePreviewThumbnail:"geoscene-scale-range-slider__scale-preview-thumbnail",slider:"geoscene-slider",expandIcon:"geoscene-icon-down",heading:"geoscene-widget__heading",hidden:"geoscene-hidden",input:"geoscene-input",button:"geoscene-button",disabled:"geoscene-disabled",widget:"geoscene-widget"},I={preview:!0},T={maximumFractionDigits:0},C=e=>`1:${b(e,T)}`,R=e=>{const t=/[^\d.\s]/g,i=e.replace(/.*\(/,"").replace(/\).*$/,"").replace(/.*:/,"").replace(t,"");return parseFloat(i)};let L=class extends(l(u)){constructor(e,l){super(e,l),this._activeMenu=null,this._activeMenuNode=null,this._activeMenuToggleNode=null,this._activeThumb=null,this._customMaxScale=-1,this._customMinScale=-1,this._focusedMenuItemIndex=-1,this._previewAutoCloseTimeoutId=null,this._previewPopover=new _({owner:this,placement:"top",anchorElement:()=>0===this._activeThumb?this._minThumbNode:this._maxThumbNode,offset:[0,16],renderContentFunction:this.renderScalePreview}),this._maxScaleMenuPopover=new _({owner:this,placement:"bottom-end",anchorElement:()=>this._activeMenuToggleNode,renderContentFunction:this.renderMaxScaleMenu}),this._minScaleMenuPopover=new _({owner:this,placement:"bottom-start",anchorElement:()=>this._activeMenuToggleNode,renderContentFunction:this.renderMinScaleMenu}),this._scaleMenuNode=null,this._slider=new d({thumbCreatedFunction:(e,t,s)=>{0===e&&(this._minThumbNode=s),1===e&&(this._maxThumbNode=s),this.own([i(s,"mouseenter",(()=>{const{visibleElements:{preview:t}}=this;this._activeThumb=e,this._previewPopover.open=t,this.scheduleRender()})),i(s,"mouseleave",(()=>{this._previewAutoCloseTimeoutId||(this._activeThumb=null,this._previewPopover.open=!1,this.scheduleRender())}))])}}),this.disabled=!1,this.label=void 0,this.layer=null,this.maxScale=null,this.maxScaleLimit=null,this.messages=null,this.minScale=null,this.minScaleLimit=null,this.region="US",this.view=null,this.viewModel=new v,this.visibleElements=I,this._handleScaleMenuToggleClick=e=>{const s=e.currentTarget,l=s.getAttribute("data-type"),a="menu-closing-click-handle";if(this.handles.remove(a),l===this._activeMenu)return this._setActiveMenu(null),void(this._activeMenuToggleNode=null);this._setActiveMenu(l),this._activeMenuToggleNode=s,this.handles.add(i(document,"mousedown",(e=>{const i=e.target,s=t(i,`.${x.scaleMenuToggle}`),l=s&&s.getAttribute("data-type");if(s&&l===this._activeMenu)return;!l&&this._scaleMenuNode&&!this._scaleMenuNode.contains(i)&&(this._setActiveMenu(null),this.handles.remove(a),this.scheduleRender())})),a)},this._afterMenuListCreate=e=>{this._activeMenuNode=e,e.children[0].focus({preventScroll:!0})},this._handleCustomScaleEntry=e=>{this._setScaleFromMenuSelection(e),this._customMaxScale=-1,this._customMinScale=-1},this._handleCustomScaleInputBlur=()=>{"max"===this._activeMenu?this._customMaxScale=-1:this._customMinScale=-1},this._handleCustomScaleInputKeyDown=e=>{const t=e.currentTarget,{handleCustomScaleSelect:i}=t["data-render-props"],{key:s,ctrlKey:l,metaKey:a}=e,{viewModel:{scaleRanges:n}}=this;if("Enter"===s){const s=R(t.value);return i(isNaN(s)?-1:n.clampScale(s)),e.preventDefault(),void e.stopPropagation()}if(s.length>1||l||a)return;/[:,.\d]/.test(s)||(e.preventDefault(),e.stopPropagation())},this._handleScaleMenuKeyDown=e=>{const t=s(e);if("Escape"===t||"Tab"===t)return this._setActiveMenu(null),void this._activeMenuToggleNode.focus();if("ArrowUp"!==t&&"ArrowDown"!==t)return;const i=this._activeMenuNode.children,l=this._focusedMenuItemIndex,a="ArrowUp"===t?(0===l?i.length:l)-1:(l+1)%i.length;e.preventDefault(),e.stopPropagation(),i[a].focus(),this._focusedMenuItemIndex=a}}initialize(){this.own([a(this,"viewModel",(e=>this._slider.viewModel=e?e.sliderViewModel:null)),a(this,"_interactive",(e=>{this._slider.disabled=!e,e||this._setActiveMenu(null)})),this._slider.on("thumb-drag",(({index:e})=>{const{visibleElements:{preview:t}}=this;this._activeThumb=e,this._previewPopover.open=t,clearTimeout(this._previewAutoCloseTimeoutId);const i=250;this._previewAutoCloseTimeoutId=setTimeout((()=>{this._previewAutoCloseTimeoutId=null,this._activeThumb=null,this._previewPopover.open=!1,this.scheduleRender()}),i)})),n(this,"view.stationary",(()=>this.scheduleRender()))])}destroy(){this._previewPopover.destroy(),this._previewPopover=null,this._maxScaleMenuPopover.destroy(),this._maxScaleMenuPopover=null,this._minScaleMenuPopover.destroy(),this._minScaleMenuPopover=null,this._slider.destroy(),this._slider=null}get _effectiveMaxScale(){return 0===this.maxScale?this.maxScaleLimit:this.maxScale}get _effectiveMinScale(){return 0===this.minScale?this.minScaleLimit:this.minScale}get _interactive(){return"disabled"!==this.get("viewModel.state")&&!this.disabled}castVisibleElements(e){return{...I,...e}}render(){const{_interactive:e,_slider:t,label:i,messages:s,view:l,viewModel:{scaleRanges:a,state:n}}=this,r=s.scaleRangeLabels[a.findScaleRangeByIndex(t.values[0]).id],c=s.scaleRangeLabels[a.findScaleRangeByIndex(t.values[1]).id];return t.layout=w(this.container)?"horizontal-reversed":"horizontal",M("div",{"aria-label":i,class:this.classes(x.base,x.widget,e?null:x.disabled)},"ready"===n&&l?this.renderCurrentScaleIndicator():null,t.render(),M("div",{class:x.scaleMenuContainer,key:"scale-menu-toggles"},this.renderScaleMenuToggle("min",r),this.renderScaleMenuToggle("max",c)))}renderMinScaleMenu(){const{_effectiveMaxScale:e,minScaleLimit:t,view:i,viewModel:{scaleRanges:s}}=this,l=i?i.scale:void 0;return this.renderScaleMenu({type:"min",min:t,max:s.findScaleRange(e).minScale,map:l})}renderMaxScaleMenu(){const{_effectiveMinScale:e,maxScaleLimit:t,view:i,viewModel:{scaleRanges:s}}=this,l=i?i.scale:void 0;return this.renderScaleMenu({type:"max",min:s.findScaleRange(e).maxScale,max:t,map:l})}renderScalePreview(){const{_activeThumb:e,_slider:t,region:i,viewModel:{scaleRanges:s}}=this,l=0===e?t.values[0]:t.values[1],a=Object.keys(p.RecommendedScales).indexOf(s.findScaleRangeByIndex(l).id),n={backgroundImage:m(i),backgroundPosition:h(a)};return M("div",{class:x.scalePreview},M("div",{class:x.scalePreviewThumbnail,styles:n}))}renderScaleMenu({map:e,min:t,max:i,type:s}){const l=p.fromScaleRange({minScale:t,maxScale:i}),a=this.messages.featuredScaleLabels,n=p.RecommendedScales,r=Object.keys(n).filter((e=>l.contains(n[e]))).map((e=>this.renderScaleMenuItem({scaleLabel:a[e],scaleValue:n[e],valueVisible:"world"!==e,handleNamedScaleSelect:this._handleRecommendedScaleClick}))),{_customMaxScale:c,_customMinScale:o,messages:d}=this,u="max"===s?c:o;return M("div",{bind:this,class:x.scaleMenu,"data-type":s,id:`${this.id}__scale-menu--${s}`,key:`${s}-scale-menu`,afterCreate:f,"data-node-ref":"_scaleMenuNode",onkeydown:this._handleScaleMenuKeyDown},M("div",{class:x.scaleMenuScroller},M("ul",{class:x.scaleMenuList,afterCreate:this._afterMenuListCreate},this.renderScaleMenuItem({scaleValue:u,scaleLabel:d.featuredScaleLabels.custom,valueVisible:!1,handleNamedScaleSelect:this._handleScaleSelection,handleCustomScaleSelect:this._handleCustomScaleEntry}),null!=e?this.renderScaleMenuItem({scaleValue:e,scaleLabel:d.featuredScaleLabels.current,valueVisible:!0,handleNamedScaleSelect:this._handleRecommendedScaleClick}):null,r)))}_handleScaleSelection(){"max"===this._activeMenu?this._customMaxScale=this._effectiveMaxScale:this._customMinScale=this._effectiveMinScale}renderScaleMenuToggle(e,t){const{_activeMenu:i,_interactive:s}=this,l=i===e;return M("button",{"aria-controls":l?`${this.id}__scale-menu--${e}`:"","aria-pressed":l?"true":"false",class:this.classes(x.scaleMenuToggle,l?x.scaleMenuToggleActive:null),"data-type":e,key:`${e}-scale-menu-toggle`,onclick:this._handleScaleMenuToggleClick,disabled:!s,type:"button"},M("div",{class:x.scaleMenuToggleText,"aria-label":t,title:t},t),M("span",{class:this.classes(x.scaleMenuToggleIcon,x.expandIcon),"aria-hidden":"true"}))}renderScaleMenuItem(e){const{scaleValue:t,scaleLabel:i,valueVisible:s,handleNamedScaleSelect:l,handleCustomScaleSelect:a=null}=e,{id:n}=this,r=`${n}__custom-scale-input`;return M("li",{bind:this,class:x.scaleMenuListItem,"data-scale":t,key:i,onclick:l,onkeydown:l,tabIndex:-1},M("label",{class:x.scaleItemLabel,for:r},i),t>-1?a?M("input",{afterCreate:this._focusAndSelectInputOnCreate,class:this.classes(x.scaleItemValue,x.scaleItemValueEditable),"data-render-props":e,id:r,key:"value",value:C(t),onkeydown:this._handleCustomScaleInputKeyDown,onblur:this._handleCustomScaleInputBlur}):s?M("div",{class:x.scaleItemValue,key:"value"},C(t)):null:null)}_focusAndSelectInputOnCreate(e){e.focus(),e.select()}renderCurrentScaleIndicator(){const{_slider:e,messages:t,view:i,viewModel:{scaleRanges:s}}=this,l=s.clampScale(i.scale),a=this.viewModel.mapScaleToSlider(l),n=a/e.max,r=t.scaleRangeLabels[s.findScaleRangeByIndex(a).id],c=y(t.currentScaleTooltip,{scaleLabel:r});return M("div",{class:x.scaleIndicatorContainer,key:"scale-indicator"},M("div",{"aria-label":c,class:x.scaleIndicator,styles:{left:(w(this.container)?-1:1)*n*100+"%"},title:c},this.renderCurrentScaleIndicatorIcon()))}renderCurrentScaleIndicatorIcon(){return M("svg",{class:x.scaleIndicatorIcon,height:"8",width:"8",viewBox:"0 0 8 8",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},M("polygon",{points:"4 0 8 8 0 8"}))}_handleRecommendedScaleClick(e){const t=e.currentTarget,i=Number(t["data-scale"]);this._setScaleFromMenuSelection(i)}_setScaleFromMenuSelection(e){"max"===this._activeMenu?this.maxScale=Math.min(e,this._effectiveMinScale-1):this.minScale=Math.max(e,this._effectiveMaxScale+1),this._setActiveMenu(null),this._activeMenuToggleNode.focus()}_setActiveMenu(e){this._activeMenu=e,this._maxScaleMenuPopover.open="max"===e,this._minScaleMenuPopover.open="min"===e,this._focusedMenuItemIndex=e?0:-1}};e([r()],L.prototype,"_slider",void 0),e([r()],L.prototype,"_effectiveMaxScale",null),e([r()],L.prototype,"_effectiveMinScale",null),e([r({readOnly:!0})],L.prototype,"_interactive",null),e([r()],L.prototype,"disabled",void 0),e([r({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],L.prototype,"label",void 0),e([r({aliasOf:"viewModel.layer"})],L.prototype,"layer",void 0),e([r({aliasOf:"viewModel.maxScale"})],L.prototype,"maxScale",void 0),e([r({aliasOf:"viewModel.maxScaleLimit"})],L.prototype,"maxScaleLimit",void 0),e([r(),g("geoscene/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider")],L.prototype,"messages",void 0),e([r({aliasOf:"viewModel.minScale"})],L.prototype,"minScale",void 0),e([r({aliasOf:"viewModel.minScaleLimit"})],L.prototype,"minScaleLimit",void 0),e([r()],L.prototype,"region",void 0),e([r({aliasOf:"viewModel.view"})],L.prototype,"view",void 0),e([r()],L.prototype,"viewModel",void 0),e([r()],L.prototype,"visibleElements",void 0),e([c("visibleElements")],L.prototype,"castVisibleElements",null),e([S()],L.prototype,"_handleScaleSelection",null),e([S()],L.prototype,"_handleRecommendedScaleClick",null),L=e([o("geoscene.widgets.ScaleRangeSlider")],L);const j=L;export{j 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 s}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 t from"../Widget.js";import o from"./SearchViewModel.js";import{accessibleHandler as l}from"../support/decorators/accessibleHandler.js";import{messageBundle as i}from"../support/decorators/messageBundle.js";import"../../core/Logger.js";import{tsx as u}from"../support/jsxFactory.js";import"../support/widgetUtils.js";const n={base:"esri-search-result-renderer esri-widget",anchor:"esri-widget__anchor",showMoreResults:"esri-search-result-renderer__more-results--show-more-results",moreResults:"esri-search-result-renderer__more-results",moreResultsList:"esri-search-result-renderer__more-results-list",moreResultsHeader:"esri-search-result-renderer__more-results-header",moreResultsItem:"esri-search-result-renderer__more-results-item",moreResultsListHeader:"esri-search-result-renderer__more-results-list-header"};let c=class extends t{constructor(e,s){super(e,s),this.messages=null,this.showMoreResultsOpen=!1,this.viewModel=null}render(){const e={[n.showMoreResults]:this.showMoreResultsOpen};return u("div",{class:n.base},u("div",{key:"esri-search-renderer__container",class:this.classes(n.moreResults,e)},this.renderSearchResultName(),this.renderMoreResults()))}renderMoreResults(){return u("div",{key:"esri-search-renderer__more-results"},this.renderMoreResultsButton(),this.renderMoreResultsLists())}renderSearchResultName(){var e;const s=null==(e=this.viewModel)?void 0:e.selectedResult,r=s&&s.name||"";return u("div",{key:"esri-search-renderer__result-name",class:n.moreResultsItem},r)}renderMoreResultsLists(){var e;const s=null==(e=this.viewModel)?void 0:e.results,{resultCount:r}=this.viewModel;if(r<2)return null;const t=s.map((e=>this.renderMoreResultsList(e)));return u("div",{key:"esri-search-renderer__more-results-container",class:n.moreResultsList},t)}renderMoreResultsButton(){const{messages:e}=this,{resultCount:s}=this.viewModel;return s<2?null:u("div",{key:"esri-search-renderer__more-results-button",class:n.moreResultsItem},u("a",{class:n.anchor,href:"#",bind:this,onclick:this._showMoreResultsClick,onkeydown:this._showMoreResultsClick},this.showMoreResultsOpen?e.hideMoreResults:e.showMoreResults))}renderMoreResultsHeader(e,s){return u("div",{key:`esri-search-result-renderer__header-${s}`,class:n.moreResultsListHeader},e)}renderMoreResultsList(e){var s,r;const{results:t}=e,o=t.length,l=!!o,i=null==(s=this.viewModel)?void 0:s.selectedResult,n=1===o&&t[0]===i,c=this._getSourceName(e.source,e.sourceIndex),d=(null==(r=this.viewModel)?void 0:r.results.length)>1&&!n?this.renderMoreResultsHeader(c,e.sourceIndex):null,a=l&&t.map(((e,s)=>this.renderMoreResultsListItem(e,s))),h=l&&!n?u("ul",{key:`esri-search-result-renderer__list-${e.sourceIndex}`},a):null;return l?u("div",{key:`esri-search-result-renderer__results-${e.sourceIndex}`},d,h):null}renderMoreResultsListItem(e,s){return e!==this.get("viewModel.selectedResult")?u("li",{key:`esri-search-result-renderer__list-item-${s}`},u("a",{class:n.anchor,href:"#",tabindex:"0",bind:this,"data-result":e,onclick:this._selectResultClick,onkeydown:this._selectResultClick},e.name)):null}_showMoreResultsClick(e){e.preventDefault(),this.showMoreResultsOpen=!this.showMoreResultsOpen;const s=this.get("viewModel.view.popup");s&&s.reposition()}_selectResultClick(e){e.preventDefault();const s=e.currentTarget["data-result"];this.viewModel&&this.viewModel.select(s)}_getSourceName(e,s){return s===o.ALL_INDEX?this.messages.all:e.name}};e([s(),i("geoscene/widgets/Search/t9n/Search")],c.prototype,"messages",void 0),e([s()],c.prototype,"showMoreResultsOpen",void 0),e([s()],c.prototype,"viewModel",void 0),e([l()],c.prototype,"_showMoreResultsClick",null),e([l()],c.prototype,"_selectResultClick",null),c=e([r("geoscene.widgets.Search.SearchResultRenderer")],c);const d=c;export{d as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import t from"../Widget.js";import o from"./SearchViewModel.js";import{accessibleHandler as l}from"../support/decorators/accessibleHandler.js";import{messageBundle as i}from"../support/decorators/messageBundle.js";import"../../core/Logger.js";import{tsx as u}from"../support/jsxFactory.js";import"../support/widgetUtils.js";const n={base:"geoscene-search-result-renderer geoscene-widget",anchor:"geoscene-widget__anchor",showMoreResults:"geoscene-search-result-renderer__more-results--show-more-results",moreResults:"geoscene-search-result-renderer__more-results",moreResultsList:"geoscene-search-result-renderer__more-results-list",moreResultsHeader:"geoscene-search-result-renderer__more-results-header",moreResultsItem:"geoscene-search-result-renderer__more-results-item",moreResultsListHeader:"geoscene-search-result-renderer__more-results-list-header"};let c=class extends t{constructor(e,s){super(e,s),this.messages=null,this.showMoreResultsOpen=!1,this.viewModel=null}render(){const e={[n.showMoreResults]:this.showMoreResultsOpen};return u("div",{class:n.base},u("div",{key:"geoscene-search-renderer__container",class:this.classes(n.moreResults,e)},this.renderSearchResultName(),this.renderMoreResults()))}renderMoreResults(){return u("div",{key:"geoscene-search-renderer__more-results"},this.renderMoreResultsButton(),this.renderMoreResultsLists())}renderSearchResultName(){var e;const s=null==(e=this.viewModel)?void 0:e.selectedResult,r=s&&s.name||"";return u("div",{key:"geoscene-search-renderer__result-name",class:n.moreResultsItem},r)}renderMoreResultsLists(){var e;const s=null==(e=this.viewModel)?void 0:e.results,{resultCount:r}=this.viewModel;if(r<2)return null;const t=s.map((e=>this.renderMoreResultsList(e)));return u("div",{key:"geoscene-search-renderer__more-results-container",class:n.moreResultsList},t)}renderMoreResultsButton(){const{messages:e}=this,{resultCount:s}=this.viewModel;return s<2?null:u("div",{key:"geoscene-search-renderer__more-results-button",class:n.moreResultsItem},u("a",{class:n.anchor,href:"#",bind:this,onclick:this._showMoreResultsClick,onkeydown:this._showMoreResultsClick},this.showMoreResultsOpen?e.hideMoreResults:e.showMoreResults))}renderMoreResultsHeader(e,s){return u("div",{key:`geoscene-search-result-renderer__header-${s}`,class:n.moreResultsListHeader},e)}renderMoreResultsList(e){var s,r;const{results:t}=e,o=t.length,l=!!o,i=null==(s=this.viewModel)?void 0:s.selectedResult,n=1===o&&t[0]===i,c=this._getSourceName(e.source,e.sourceIndex),d=(null==(r=this.viewModel)?void 0:r.results.length)>1&&!n?this.renderMoreResultsHeader(c,e.sourceIndex):null,a=l&&t.map(((e,s)=>this.renderMoreResultsListItem(e,s))),h=l&&!n?u("ul",{key:`geoscene-search-result-renderer__list-${e.sourceIndex}`},a):null;return l?u("div",{key:`geoscene-search-result-renderer__results-${e.sourceIndex}`},d,h):null}renderMoreResultsListItem(e,s){return e!==this.get("viewModel.selectedResult")?u("li",{key:`geoscene-search-result-renderer__list-item-${s}`},u("a",{class:n.anchor,href:"#",tabindex:"0",bind:this,"data-result":e,onclick:this._selectResultClick,onkeydown:this._selectResultClick},e.name)):null}_showMoreResultsClick(e){e.preventDefault(),this.showMoreResultsOpen=!this.showMoreResultsOpen;const s=this.get("viewModel.view.popup");s&&s.reposition()}_selectResultClick(e){e.preventDefault();const s=e.currentTarget["data-result"];this.viewModel&&this.viewModel.select(s)}_getSourceName(e,s){return s===o.ALL_INDEX?this.messages.all:e.name}};e([s(),i("geoscene/widgets/Search/t9n/Search")],c.prototype,"messages",void 0),e([s()],c.prototype,"showMoreResultsOpen",void 0),e([s()],c.prototype,"viewModel",void 0),e([l()],c.prototype,"_showMoreResultsClick",null),e([l()],c.prototype,"_selectResultClick",null),c=e([r("geoscene.widgets.Search.SearchResultRenderer")],c);const d=c;export{d as default};
package/widgets/Search.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{eventKey as t}from"../core/events.js";import s from"../core/Handles.js";import{escapeRegExpString as i}from"../core/string.js";import{watch as r,on as n,init as o}from"../core/watchUtils.js";import{aliasOf as a}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as u}from"../core/accessorSupport/decorators/property.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import c from"./Widget.js";import h from"./Search/SearchResultRenderer.js";import d from"./Search/SearchViewModel.js";import{storeNode as g,keepMenuItemWithinView as p,isActivationKey as _}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as v}from"./support/decorators/vmEvent.js";import{tsx as M}from"./support/jsxFactory.js";import{substitute as I}from"../intl/substitute.js";const w={base:"esri-search esri-widget",loader:"esri-widget__loader",loaderText:"esri-widget__loader-text",loaderAnimation:"esri-widget__loader-animation",esriInput:"esri-input",hasMultipleSources:"esri-search--multiple-sources",isLoading:"esri-search--loading",isSearching:"esri-search--searching",showSuggestions:"esri-search--show-suggestions",showSources:"esri-search--sources",showWarning:"esri-search--warning",container:"esri-search__container",input:"esri-search__input",inputContainer:"esri-search__input-container",form:"esri-search__form",submitButton:"esri-search__submit-button",sourcesButton:"esri-search__sources-button",clearButton:"esri-search__clear-button",sourceName:"esri-search__source-name",suggestionsMenu:"esri-search__suggestions-menu",suggestionList:"esri-search__suggestions-list",suggestionListCurrentLocation:"esri-search__suggestions-list--current-location",sourcesMenu:"esri-search__sources-menu",source:"esri-search__source",warningMenu:"esri-search__warning-menu",warningMenuBody:"esri-search__warning-body",warningMenuHeader:"esri-search__warning-header",warningMenuText:"esri-search__warning-text",noValueText:"esri-search__no-value-text",geosceneWidgetDisabled:"esri-widget--disabled",button:"esri-widget--button",fallbackText:"geoscene-icon-font-fallback-text",header:"esri-widget__heading",locate:"geoscene-icon-locate-circled",menu:"esri-menu",menuList:"esri-menu__list",menuItem:"esri-menu__list-item",menuItemActive:"esri-menu__list-item--active",menuItemFocus:"esri-menu__list-item--focus",menuHeader:"esri-menu__header",loadingIcon:"geoscene-icon-loading-indicator esri-rotating",searchIcon:"geoscene-icon-search",dropdownIcon:"geoscene-icon-down-arrow esri-search__sources-button--down",dropupIcon:"geoscene-icon-up-arrow esri-search__sources-button--up",clearIcon:"geoscene-icon-close",noticeIcon:"geoscene-icon-notice-triangle",widgetIcon:"geoscene-icon-search",disabled:"esri-disabled"},S=/<[a-z/][\s\S]*>/i;let b=class extends c{constructor(e,t){super(e,t),this._activeMenuItemIndex=-1,this._handles=new s,this._inputNode=null,this._menuItemCount=0,this._sourceMenuButtonNode=null,this._sourceListNode=null,this._suggestionListNode=null,this._searchResultRenderer=new h,this._locateFailed=null,this._container=null,this.activeMenu="none",this.activeSource=null,this.activeSourceIndex=null,this.allPlaceholder=null,this.allSources=null,this.autoNavigate=null,this.autoSelect=null,this.defaultSources=null,this.disabled=!1,this.goToOverride=null,this.iconClass=w.widgetIcon,this.includeDefaultSources=null,this.label=void 0,this.locationEnabled=null,this.maxResults=null,this.maxSuggestions=null,this.messages=null,this.messagesCommon=null,this.minSuggestCharacters=null,this.popupEnabled=null,this.popupTemplate=null,this.portal=null,this.resultGraphic=null,this.resultGraphicEnabled=null,this.results=null,this.searchAllEnabled=null,this.searchTerm=null,this.selectedResult=null,this.sources=null,this.suggestions=null,this.suggestionsEnabled=null,this.view=null,this.viewModel=new d,this._clearActiveMenu=()=>{this.activeMenu="none"},this._removeActiveMenu=e=>{var t;const s=e.relatedTarget;s&&null!=(t=this._container)&&t.contains(s)||this._clearActiveMenu()},this.own(r(this,"searchTerm",(e=>{(e&&"warning"===this.activeMenu||!e&&!this.get("viewModel.selectedSuggestion.location"))&&this._clearActiveMenu()})),n(this,"viewModel.allSources","change",(()=>this._watchSourceChanges())),o(this,"activeMenu",(()=>this._resetActiveMenuItemIndex())),o(this,"viewModel.defaultPopupTemplate",(e=>{e&&(e.content=this._renderSearchResultsContent.bind(this))})))}destroy(){this._handles.destroy(),this._handles=null,this._cancelSuggest(),this._cancelSearch(),this._searchResultRenderer&&(this._searchResultRenderer.viewModel=null,this._searchResultRenderer.destroy(),this._searchResultRenderer=null)}get displayedSearchTerm(){return`${this.viewModel.searchTerm}`.trim()}get inputId(){return this._buildId("input")}get suggestionsMenuId(){return this._buildId("suggest-menu")}get sourceMenuId(){return this._buildId("source-menu")}get sourceMenuButtonId(){return this._buildId("source-menu-button")}clear(){}focus(){var e;null==(e=this._inputNode)||e.focus(),this.emit("search-focus")}blur(){var e;null==(e=this._inputNode)||e.blur(),this.emit("search-blur")}search(e){this._clearActiveMenu(),this._cancelSuggest(),this._cancelSearch();const t=new AbortController,{signal:s}=t;return this._searchController=t,this.viewModel.search(e,{signal:s}).catch((e=>{if(this._searchController===t)return this._clearActiveMenu(),this._searchController=null,e})).then((e=>{if(this._searchController===t)return this.activeMenu=e.numResults?"none":"warning",this._searchController=null,e}))}suggest(e){this._cancelSuggest();const t=new AbortController,{signal:s}=t;return this._suggestController=t,this.viewModel.suggest(e,null,{signal:s}).then((e=>{if(this._suggestController===t)return this._suggestController=null,e.numResults&&this._openSuggestionMenu(),this._scrollToTopSuggestion(),e})).catch((()=>{if(this._suggestController===t)return this._suggestController=null,null}))}render(){const{state:e}=this.viewModel,t={[w.disabled]:"disabled"===e,[w.geosceneWidgetDisabled]:this.disabled};return M("div",{class:this.classes(w.base,t)},"loading"===e?this.renderLoader():this.renderContainer())}renderSubmitButton(){const{messages:e}=this;return M("button",{"aria-label":e.searchButtonTitle,bind:this,class:this.classes(w.submitButton,w.button),key:"esri-search__submit-button",onclick:this._handleSearchButtonClick,title:e.searchButtonTitle,type:"button"},M("span",{"aria-hidden":"true",class:w.searchIcon}))}renderWarningMenu(){return M("div",{key:"esri-search__error-menu",class:this.classes(w.menu,w.warningMenu)},M("div",{class:w.warningMenuBody},this.renderWarning()))}renderSourceMenuButton(){const{messages:e,activeMenu:t,sourceMenuId:s,sourceMenuButtonId:i}=this,{activeSourceIndex:r,allSources:n}=this.viewModel;return n.length>1?M("button",{id:i,key:"esri-search__source-menu-button",bind:this,"aria-label":e.searchIn,title:e.searchIn,"aria-haspopup":"true","aria-expanded":("source"===t).toString(),"aria-controls":s,class:this.classes(w.sourcesButton,w.button),onclick:this._handleSourcesMenuToggleClick,onfocus:this._handleSourcesMenuToggleFocus,afterCreate:g,"data-node-ref":"_sourceMenuButtonNode",type:"button"},M("span",{"aria-hidden":"true",class:w.dropdownIcon}),M("span",{"aria-hidden":"true",class:w.dropupIcon}),M("span",{class:w.sourceName},this._getSourceName(r))):null}renderSourcesList(){const{allSources:e,searchAllEnabled:t}=this.viewModel,{_activeMenuItemIndex:s,activeMenu:i,sourceMenuId:r,sourceMenuButtonId:n}=this,o="source"===i&&s>-1?this._buildId("source-item",s):null;return e.length>1?M("ul",{"aria-activedescendant":o,"aria-labelledby":n,id:r,role:"menu",bind:this,afterCreate:g,onkeydown:this._handleSourceMenuKeydown,onkeyup:this._handleSourceMenuKeyup,"data-node-ref":"_sourceListNode",class:w.menuList,tabIndex:-1},t?this.renderSource(d.ALL_INDEX):null,e.map(((e,t)=>this.renderSource(t))).toArray()):null}renderSourcesMenu(){const{allSources:e}=this.viewModel;return e.length>1?M("div",{key:"esri-search__source-menu",class:this.classes(w.menu,w.sourcesMenu)},this.renderSourcesList()):null}renderLoader(){const{messages:e,messagesCommon:t}=this;return M("div",{class:w.loader,key:"base-loader"},M("span",{"aria-hidden":"true",class:w.loaderAnimation}),M("span",{class:w.fallbackText},e.searchButtonTitle),M("span",{class:w.loaderText},t.loading))}renderContainer(){const{allSources:e,state:t}=this.viewModel,{activeMenu:s}=this,i={[w.hasMultipleSources]:e.length>1,[w.isLoading]:"loading"===t,[w.isSearching]:"searching"===t,[w.showWarning]:"warning"===s,[w.showSources]:"source"===s,[w.showSuggestions]:"suggestion"===s};return M("div",{tabIndex:-1,afterCreate:e=>{this._container=e,e.addEventListener("focusout",this._removeActiveMenu)},afterRemoved:e=>{e.removeEventListener("focusout",this._removeActiveMenu)},class:this.classes(i,w.container),key:"base-container"},this.renderSourceMenuButton(),this.renderSourcesMenu(),this.renderInputContainer(),this.renderSubmitButton(),this.renderWarningMenu())}renderClearButton(){return this.searchTerm?M("button",{bind:this,class:this.classes(w.clearButton,w.button),key:"esri-search__clear-button",onclick:this._handleClearButtonClick,onfocus:this._clearActiveMenu,title:this.messages.clearButtonTitle,type:"button"},M("span",{"aria-hidden":"true",class:w.clearIcon})):null}renderLocationGroup(){const{messages:e,locationEnabled:t,displayedSearchTerm:s}=this,i=t&&!s,r="suggestion"===this.activeMenu&&0===this._activeMenuItemIndex;return i?M("ul",{role:"group",key:"esri-search__suggestion-list-current-location",class:this.classes(w.menuList,w.suggestionList,w.suggestionListCurrentLocation)},M("li",{bind:this,"data-current-location-item":!0,onclick:this._handleUseCurrentLocationClick,id:this._buildId("suggestion-item",0),"aria-selected":("suggestion"===this.activeMenu&&0===this._activeMenuItemIndex).toString(),role:"option",class:this.classes(w.menuItem,r?w.menuItemFocus:null)},M("span",{"aria-hidden":"true",class:w.locate})," ",e.useCurrentLocation)):null}renderInput(){const{activeMenu:e,locationEnabled:t,displayedSearchTerm:s,messages:i,suggestionsMenuId:r,inputId:n,_activeMenuItemIndex:o}=this,{maxInputLength:a,placeholder:u,searchTerm:l,suggestionCount:c}=this.viewModel,h=!(!(t&&!s)&&!c),d="suggestion"===e&&o>-1?this._buildId("suggestion-item",o):null;return M("input",{"aria-activedescendant":d,"aria-autocomplete":"list","aria-expanded":(h&&"suggestion"===e).toString(),"aria-controls":h?r:null,"aria-haspopup":"listbox","aria-label":i.searchButtonTitle,bind:this,placeholder:u,maxlength:a,autocomplete:"off",type:"text",class:this.classes(w.esriInput,w.input),value:l,id:n,role:"combobox",onkeyup:this._handleInputKeyup,onclick:this._openSuggestionMenu,oninput:this._handleInputPaste,onpaste:this._handleInputPaste,afterCreate:g,"data-node-ref":"_inputNode",onfocus:this.focus,onblur:this.blur,title:l?"":u})}renderForm(){return M("form",{key:"esri-search__form",bind:this,class:w.form,onsubmit:this._formSubmit,role:"search"},this.renderInput())}renderSuggestList(e){const{sourceIndex:t}=e,s=e.results.length,i=e.results;return s?M("ul",{role:"group",key:`esri-search__suggestion-list-${t}`,class:this.classes(w.menuList,w.suggestionList)},i.map((e=>this.renderSuggestion(e,this._menuItemCount++)))):null}renderSuggestionsGroup(){const{suggestions:e}=this.viewModel;return e?e.map((e=>[this.renderSuggestionHeader(e),this.renderSuggestList(e)])):null}renderSuggestionsMenu(){const{displayedSearchTerm:e,locationEnabled:t,suggestionsMenuId:s,inputId:i}=this,{suggestionCount:r}=this.viewModel,n=t&&!e||r;return this._menuItemCount=0,n?M("div",{id:s,key:"esri-search__suggestions-menu",class:this.classes(w.menu,w.suggestionsMenu),role:"listbox","aria-labelledby":i,bind:this,afterCreate:g,"data-node-ref":"_suggestionListNode"},this.renderLocationGroup(),this.renderSuggestionsGroup()):null}renderInputContainer(){return M("div",{key:"esri-search__input-container",class:w.inputContainer},this.renderForm(),this.renderSuggestionsMenu(),this.renderClearButton())}renderSuggestionHeader(e){const{allSources:t,activeSourceIndex:s}=this.viewModel,{sourceIndex:i}=e,r=e.results.length,n=t.length>1&&s===d.ALL_INDEX;return r&&n?M("div",{key:`esri-search__suggestion-header-${i}`,class:w.menuHeader},this._getSourceName(i)):null}renderSuggestion(e,t){const{_activeMenuItemIndex:s,messages:i}=this,{searchTerm:r}=this.viewModel;if(r){const{text:n}=e,o=n||i.untitledResult,a=S.test(o),u=[];if(a)u.push(M("div",{innerHTML:o}));else{const e=this._splitResult(o,r),t=r.toLowerCase();e.forEach(((e,s)=>{e&&e.length&&(e.toLowerCase()===t?u.push(M("strong",{key:s},e)):u.push(e))}))}const l="suggestion"===this.activeMenu&&s===t;return M("li",{bind:this,id:this._buildId("suggestion-item",t),"aria-selected":("suggestion"===this.activeMenu&&this._activeMenuItemIndex===t).toString(),onclick:this._handleSuggestionClick,key:`esri-search__suggestion_${t}`,"data-suggestion":e,role:"option",class:this.classes(w.menuItem,l?w.menuItemFocus:null)},u)}}renderSource(e){const{activeSourceIndex:t,searchAllEnabled:s}=this.viewModel,i={[w.menuItemActive]:e===t,[w.menuItemFocus]:"source"===this.activeMenu&&e===(s?this._activeMenuItemIndex-1:this._activeMenuItemIndex)},r=s?e+1:e;return M("li",{bind:this,key:`esri-search__source-${e}`,id:this._buildId("source-item",r),"aria-checked":(e===t).toString(),onclick:this._handleSourceClick,"data-source-index":e,role:"menuitemradio",class:this.classes(w.source,w.menuItem,i)},this._getSourceName(e))}renderNoResultsWarning(e){const{messages:t}=this,s=e?I(t.noResultsFoundForValue,{value:`"${e}"`}):t.noResultsFound;return M("div",{key:"esri-search__no_results"},M("div",{class:w.warningMenuHeader},t.noResults),M("div",{class:w.warningMenuText},s))}renderEmptySearchWarning(){const{messages:e}=this;return M("div",{key:"esri-search__empty-search"},M("span",{"aria-hidden":"true",class:w.noticeIcon}),M("span",{class:w.noValueText},e.emptyValue))}renderLocateWarning(){const{messages:e}=this;return M("div",{key:"esri-search__locate-error"},M("span",{"aria-hidden":"true",class:w.noticeIcon}),M("span",{class:w.noValueText},e.locateError))}renderWarning(){var e;const{displayedSearchTerm:t,_locateFailed:s}=this,{viewModel:i}=this;return s?this.renderLocateWarning():null!=(e=i.selectedSuggestion)&&e.location||t?this.renderNoResultsWarning(t):this.renderEmptySearchWarning()}_resetActiveMenuItemIndex(){this._activeMenuItemIndex=-1}_buildId(e,t){return`${this.id}-${e}${void 0===t?"":`-${t}`}`}_watchSourceChanges(){const{_handles:e,viewModel:{allSources:t}}=this,s="sources";e.remove(s),t.forEach((t=>e.add(r(t,"name",(()=>this.scheduleRender())),s)))}_handleSourcesMenuToggleFocus(){"source"!==this.activeMenu&&this._clearActiveMenu()}_handleSourcesMenuToggleClick(){const e="source"===this.activeMenu;var t;(this.activeMenu=e?"none":"source",this.renderNow(),"source"===this.activeMenu)&&(null==(t=this._sourceListNode)||t.focus())}_handleClearButtonClick(){this.viewModel.clear(),this._focus()}_handleSearchButtonClick(){this.search()}_handleSuggestionClick(e){const t=e.currentTarget["data-suggestion"];t&&(this._focus(),this.search(t))}_handleUseCurrentLocationClick(){this._useCurrentLocation()}_useCurrentLocation(){this._focus("none"),this._cancelSuggest(),this._cancelSearch();const e=new AbortController,{signal:t}=e;this._searchController=e,this.viewModel.searchNearby({signal:t}).then((e=>{this.activeMenu=e.numResults?"none":"warning"})).catch((()=>{this._locateFailed=!0,this.activeMenu="warning"})).then((()=>{this._searchController=null}))}_handleSourceClick(e){this._setSourceFromMenuItem(e.currentTarget)}_setSourceFromMenuItem(e){var t;if(!e)return;const s=e["data-source-index"];this.viewModel.activeSourceIndex=s,this._clearActiveMenu(),null==(t=this._sourceMenuButtonNode)||t.focus()}_cancelSuggest(){this._suggestController&&(this._suggestController.abort(),this._suggestController=null)}_cancelSearch(){this._searchController&&(this._searchController.abort(),this._searchController=null),this._locateFailed=!1}_handleInputKeyup(e){var s;const i=t(e);if(e.ctrlKey||e.metaKey||"Copy"===i||"ArrowLeft"===i||"ArrowRight"===i||"Shift"===i)return;if("Tab"===i||"Escape"===i||e.shiftKey&&"Tab"===i)return this._cancelSuggest(),void("Escape"===i&&this._clearActiveMenu());const r="Home"===i||"End"===i||"ArrowUp"===i||"ArrowDown"===i;if("Enter"===i&&this._activeMenuItemIndex<0)return void this._cancelSuggest();const n=null==(s=this._suggestionListNode)?void 0:s.getElementsByTagName("li");if(null!=n&&n.length){if("suggestion"!==this.activeMenu&&this._openSuggestionMenu(),r)return e.preventDefault(),this._cancelSuggest(),void this._handleItemNavigation(i,n,this._suggestionListNode);const t=n[this._activeMenuItemIndex];if("Enter"===i&&t){const e=t["data-suggestion"];return void(e?(this._focus(),this.search(e)):t["data-current-location-item"]&&this._useCurrentLocation())}}this.viewModel.searchTerm&&this.suggest()}_handleItemNavigation(e,t,s){const i=this._activeMenuItemIndex;"Home"===e&&(this._activeMenuItemIndex=0),"End"===e&&(this._activeMenuItemIndex=t.length-1),"ArrowUp"===e&&(this._activeMenuItemIndex=this._activeMenuItemIndex<=0?t.length-1:this._activeMenuItemIndex-1),"ArrowDown"===e&&(this._activeMenuItemIndex=this._activeMenuItemIndex===t.length-1?0:this._activeMenuItemIndex+1),i!==this._activeMenuItemIndex&&p(t[this._activeMenuItemIndex],s)}_scrollToTopSuggestion(){this._suggestionListNode&&(this._suggestionListNode.scrollTop=0)}_openSuggestionMenu(){this.activeMenu="suggestion"}_handleInputPaste(e){const t=e.target;this.viewModel.searchTerm!==t.value&&(this.viewModel.searchTerm=t.value),this.viewModel.searchTerm&&this.suggest()}_handleSourceMenuKeydown(e){const s=t(e);if(_(s)){e.preventDefault();const t=this._sourceListNode.getElementsByTagName("li")[this._activeMenuItemIndex];this._setSourceFromMenuItem(t)}else"ArrowUp"!==s&&"ArrowDown"!==s&&"End"!==s&&"Home"!==s||e.preventDefault()}_handleSourceMenuKeyup(e){var s;const i=t(e),r="ArrowUp"===i||"ArrowDown"===i||"End"===i||"Home"===i;var n;if(r&&e.preventDefault(),"Escape"===i)return this._clearActiveMenu(),void(null==(n=this._sourceMenuButtonNode)||n.focus());const o=null==(s=this._sourceListNode)?void 0:s.getElementsByTagName("li");return o&&0!==o.length&&r?("source"!==this.activeMenu&&(this.activeMenu="source"),void this._handleItemNavigation(i,o,this._sourceListNode.parentElement)):void 0}_focus(e){this.focus(),e&&(this.activeMenu=e)}_formSubmit(e){e.preventDefault(),-1===this._activeMenuItemIndex&&this.search()}_getSourceName(e){const{messages:t}=this,s=this.viewModel,{allSources:i}=s,r=i.getItemAt(e);return e===d.ALL_INDEX?t.all:r&&r.name||t.untitledSource}_splitResult(e,t){const s=i(t);return e.replace(new RegExp(`(^|)(${s})(|$)`,"ig"),"$1|$2|$3").split("|")}_renderSearchResultsContent(){return this._searchResultRenderer.showMoreResultsOpen=!1,this._searchResultRenderer.viewModel=this.viewModel,this._searchResultRenderer}};e([u()],b.prototype,"_activeMenuItemIndex",void 0),e([u()],b.prototype,"displayedSearchTerm",null),e([u({readOnly:!0})],b.prototype,"inputId",null),e([u({readOnly:!0})],b.prototype,"suggestionsMenuId",null),e([u({readOnly:!0})],b.prototype,"sourceMenuId",null),e([u({readOnly:!0})],b.prototype,"sourceMenuButtonId",null),e([u()],b.prototype,"activeMenu",void 0),e([a("viewModel.activeSource")],b.prototype,"activeSource",void 0),e([a("viewModel.activeSourceIndex")],b.prototype,"activeSourceIndex",void 0),e([a("viewModel.allPlaceholder")],b.prototype,"allPlaceholder",void 0),e([a("viewModel.allSources")],b.prototype,"allSources",void 0),e([a("viewModel.autoNavigate")],b.prototype,"autoNavigate",void 0),e([a("viewModel.autoSelect")],b.prototype,"autoSelect",void 0),e([a("viewModel.defaultSources")],b.prototype,"defaultSources",void 0),e([u()],b.prototype,"disabled",void 0),e([a("viewModel.goToOverride")],b.prototype,"goToOverride",void 0),e([u()],b.prototype,"iconClass",void 0),e([a("viewModel.includeDefaultSources")],b.prototype,"includeDefaultSources",void 0),e([u({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],b.prototype,"label",void 0),e([a("viewModel.locationEnabled")],b.prototype,"locationEnabled",void 0),e([a("viewModel.maxResults")],b.prototype,"maxResults",void 0),e([a("viewModel.maxSuggestions")],b.prototype,"maxSuggestions",void 0),e([u(),m("geoscene/widgets/Search/t9n/Search")],b.prototype,"messages",void 0),e([u(),m("geoscene/t9n/common")],b.prototype,"messagesCommon",void 0),e([a("viewModel.minSuggestCharacters")],b.prototype,"minSuggestCharacters",void 0),e([a("viewModel.popupEnabled")],b.prototype,"popupEnabled",void 0),e([a("viewModel.popupTemplate")],b.prototype,"popupTemplate",void 0),e([a("viewModel.portal")],b.prototype,"portal",void 0),e([a("viewModel.resultGraphic")],b.prototype,"resultGraphic",void 0),e([a("viewModel.resultGraphicEnabled")],b.prototype,"resultGraphicEnabled",void 0),e([a("viewModel.results")],b.prototype,"results",void 0),e([a("viewModel.searchAllEnabled")],b.prototype,"searchAllEnabled",void 0),e([a("viewModel.searchTerm")],b.prototype,"searchTerm",void 0),e([a("viewModel.selectedResult")],b.prototype,"selectedResult",void 0),e([a("viewModel.sources")],b.prototype,"sources",void 0),e([a("viewModel.suggestions")],b.prototype,"suggestions",void 0),e([a("viewModel.suggestionsEnabled")],b.prototype,"suggestionsEnabled",void 0),e([a("viewModel.view")],b.prototype,"view",void 0),e([v(["search-complete","search-clear","search-start","select-result","suggest-start","suggest-complete"]),u({type:d})],b.prototype,"viewModel",void 0),e([a("viewModel.clear")],b.prototype,"clear",null),b=e([l("geoscene.widgets.Search")],b);const y=b;export{y as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{eventKey as t}from"../core/events.js";import s from"../core/Handles.js";import{escapeRegExpString as i}from"../core/string.js";import{watch as r,on as n,init as o}from"../core/watchUtils.js";import{aliasOf as a}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as u}from"../core/accessorSupport/decorators/property.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import c from"./Widget.js";import h from"./Search/SearchResultRenderer.js";import d from"./Search/SearchViewModel.js";import{storeNode as g,keepMenuItemWithinView as p,isActivationKey as _}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as v}from"./support/decorators/vmEvent.js";import{tsx as M}from"./support/jsxFactory.js";import{substitute as I}from"../intl/substitute.js";const w={base:"geoscene-search geoscene-widget",loader:"geoscene-widget__loader",loaderText:"geoscene-widget__loader-text",loaderAnimation:"geoscene-widget__loader-animation",esriInput:"geoscene-input",hasMultipleSources:"geoscene-search--multiple-sources",isLoading:"geoscene-search--loading",isSearching:"geoscene-search--searching",showSuggestions:"geoscene-search--show-suggestions",showSources:"geoscene-search--sources",showWarning:"geoscene-search--warning",container:"geoscene-search__container",input:"geoscene-search__input",inputContainer:"geoscene-search__input-container",form:"geoscene-search__form",submitButton:"geoscene-search__submit-button",sourcesButton:"geoscene-search__sources-button",clearButton:"geoscene-search__clear-button",sourceName:"geoscene-search__source-name",suggestionsMenu:"geoscene-search__suggestions-menu",suggestionList:"geoscene-search__suggestions-list",suggestionListCurrentLocation:"geoscene-search__suggestions-list--current-location",sourcesMenu:"geoscene-search__sources-menu",source:"geoscene-search__source",warningMenu:"geoscene-search__warning-menu",warningMenuBody:"geoscene-search__warning-body",warningMenuHeader:"geoscene-search__warning-header",warningMenuText:"geoscene-search__warning-text",noValueText:"geoscene-search__no-value-text",geosceneWidgetDisabled:"geoscene-widget--disabled",button:"geoscene-widget--button",fallbackText:"geoscene-icon-font-fallback-text",header:"geoscene-widget__heading",locate:"geoscene-icon-locate-circled",menu:"geoscene-menu",menuList:"geoscene-menu__list",menuItem:"geoscene-menu__list-item",menuItemActive:"geoscene-menu__list-item--active",menuItemFocus:"geoscene-menu__list-item--focus",menuHeader:"geoscene-menu__header",loadingIcon:"geoscene-icon-loading-indicator geoscene-rotating",searchIcon:"geoscene-icon-search",dropdownIcon:"geoscene-icon-down-arrow geoscene-search__sources-button--down",dropupIcon:"geoscene-icon-up-arrow geoscene-search__sources-button--up",clearIcon:"geoscene-icon-close",noticeIcon:"geoscene-icon-notice-triangle",widgetIcon:"geoscene-icon-search",disabled:"geoscene-disabled"},S=/<[a-z/][\s\S]*>/i;let b=class extends c{constructor(e,t){super(e,t),this._activeMenuItemIndex=-1,this._handles=new s,this._inputNode=null,this._menuItemCount=0,this._sourceMenuButtonNode=null,this._sourceListNode=null,this._suggestionListNode=null,this._searchResultRenderer=new h,this._locateFailed=null,this._container=null,this.activeMenu="none",this.activeSource=null,this.activeSourceIndex=null,this.allPlaceholder=null,this.allSources=null,this.autoNavigate=null,this.autoSelect=null,this.defaultSources=null,this.disabled=!1,this.goToOverride=null,this.iconClass=w.widgetIcon,this.includeDefaultSources=null,this.label=void 0,this.locationEnabled=null,this.maxResults=null,this.maxSuggestions=null,this.messages=null,this.messagesCommon=null,this.minSuggestCharacters=null,this.popupEnabled=null,this.popupTemplate=null,this.portal=null,this.resultGraphic=null,this.resultGraphicEnabled=null,this.results=null,this.searchAllEnabled=null,this.searchTerm=null,this.selectedResult=null,this.sources=null,this.suggestions=null,this.suggestionsEnabled=null,this.view=null,this.viewModel=new d,this._clearActiveMenu=()=>{this.activeMenu="none"},this._removeActiveMenu=e=>{var t;const s=e.relatedTarget;s&&null!=(t=this._container)&&t.contains(s)||this._clearActiveMenu()},this.own(r(this,"searchTerm",(e=>{(e&&"warning"===this.activeMenu||!e&&!this.get("viewModel.selectedSuggestion.location"))&&this._clearActiveMenu()})),n(this,"viewModel.allSources","change",(()=>this._watchSourceChanges())),o(this,"activeMenu",(()=>this._resetActiveMenuItemIndex())),o(this,"viewModel.defaultPopupTemplate",(e=>{e&&(e.content=this._renderSearchResultsContent.bind(this))})))}destroy(){this._handles.destroy(),this._handles=null,this._cancelSuggest(),this._cancelSearch(),this._searchResultRenderer&&(this._searchResultRenderer.viewModel=null,this._searchResultRenderer.destroy(),this._searchResultRenderer=null)}get displayedSearchTerm(){return`${this.viewModel.searchTerm}`.trim()}get inputId(){return this._buildId("input")}get suggestionsMenuId(){return this._buildId("suggest-menu")}get sourceMenuId(){return this._buildId("source-menu")}get sourceMenuButtonId(){return this._buildId("source-menu-button")}clear(){}focus(){var e;null==(e=this._inputNode)||e.focus(),this.emit("search-focus")}blur(){var e;null==(e=this._inputNode)||e.blur(),this.emit("search-blur")}search(e){this._clearActiveMenu(),this._cancelSuggest(),this._cancelSearch();const t=new AbortController,{signal:s}=t;return this._searchController=t,this.viewModel.search(e,{signal:s}).catch((e=>{if(this._searchController===t)return this._clearActiveMenu(),this._searchController=null,e})).then((e=>{if(this._searchController===t)return this.activeMenu=e.numResults?"none":"warning",this._searchController=null,e}))}suggest(e){this._cancelSuggest();const t=new AbortController,{signal:s}=t;return this._suggestController=t,this.viewModel.suggest(e,null,{signal:s}).then((e=>{if(this._suggestController===t)return this._suggestController=null,e.numResults&&this._openSuggestionMenu(),this._scrollToTopSuggestion(),e})).catch((()=>{if(this._suggestController===t)return this._suggestController=null,null}))}render(){const{state:e}=this.viewModel,t={[w.disabled]:"disabled"===e,[w.geosceneWidgetDisabled]:this.disabled};return M("div",{class:this.classes(w.base,t)},"loading"===e?this.renderLoader():this.renderContainer())}renderSubmitButton(){const{messages:e}=this;return M("button",{"aria-label":e.searchButtonTitle,bind:this,class:this.classes(w.submitButton,w.button),key:"geoscene-search__submit-button",onclick:this._handleSearchButtonClick,title:e.searchButtonTitle,type:"button"},M("span",{"aria-hidden":"true",class:w.searchIcon}))}renderWarningMenu(){return M("div",{key:"geoscene-search__error-menu",class:this.classes(w.menu,w.warningMenu)},M("div",{class:w.warningMenuBody},this.renderWarning()))}renderSourceMenuButton(){const{messages:e,activeMenu:t,sourceMenuId:s,sourceMenuButtonId:i}=this,{activeSourceIndex:r,allSources:n}=this.viewModel;return n.length>1?M("button",{id:i,key:"geoscene-search__source-menu-button",bind:this,"aria-label":e.searchIn,title:e.searchIn,"aria-haspopup":"true","aria-expanded":("source"===t).toString(),"aria-controls":s,class:this.classes(w.sourcesButton,w.button),onclick:this._handleSourcesMenuToggleClick,onfocus:this._handleSourcesMenuToggleFocus,afterCreate:g,"data-node-ref":"_sourceMenuButtonNode",type:"button"},M("span",{"aria-hidden":"true",class:w.dropdownIcon}),M("span",{"aria-hidden":"true",class:w.dropupIcon}),M("span",{class:w.sourceName},this._getSourceName(r))):null}renderSourcesList(){const{allSources:e,searchAllEnabled:t}=this.viewModel,{_activeMenuItemIndex:s,activeMenu:i,sourceMenuId:r,sourceMenuButtonId:n}=this,o="source"===i&&s>-1?this._buildId("source-item",s):null;return e.length>1?M("ul",{"aria-activedescendant":o,"aria-labelledby":n,id:r,role:"menu",bind:this,afterCreate:g,onkeydown:this._handleSourceMenuKeydown,onkeyup:this._handleSourceMenuKeyup,"data-node-ref":"_sourceListNode",class:w.menuList,tabIndex:-1},t?this.renderSource(d.ALL_INDEX):null,e.map(((e,t)=>this.renderSource(t))).toArray()):null}renderSourcesMenu(){const{allSources:e}=this.viewModel;return e.length>1?M("div",{key:"geoscene-search__source-menu",class:this.classes(w.menu,w.sourcesMenu)},this.renderSourcesList()):null}renderLoader(){const{messages:e,messagesCommon:t}=this;return M("div",{class:w.loader,key:"base-loader"},M("span",{"aria-hidden":"true",class:w.loaderAnimation}),M("span",{class:w.fallbackText},e.searchButtonTitle),M("span",{class:w.loaderText},t.loading))}renderContainer(){const{allSources:e,state:t}=this.viewModel,{activeMenu:s}=this,i={[w.hasMultipleSources]:e.length>1,[w.isLoading]:"loading"===t,[w.isSearching]:"searching"===t,[w.showWarning]:"warning"===s,[w.showSources]:"source"===s,[w.showSuggestions]:"suggestion"===s};return M("div",{tabIndex:-1,afterCreate:e=>{this._container=e,e.addEventListener("focusout",this._removeActiveMenu)},afterRemoved:e=>{e.removeEventListener("focusout",this._removeActiveMenu)},class:this.classes(i,w.container),key:"base-container"},this.renderSourceMenuButton(),this.renderSourcesMenu(),this.renderInputContainer(),this.renderSubmitButton(),this.renderWarningMenu())}renderClearButton(){return this.searchTerm?M("button",{bind:this,class:this.classes(w.clearButton,w.button),key:"geoscene-search__clear-button",onclick:this._handleClearButtonClick,onfocus:this._clearActiveMenu,title:this.messages.clearButtonTitle,type:"button"},M("span",{"aria-hidden":"true",class:w.clearIcon})):null}renderLocationGroup(){const{messages:e,locationEnabled:t,displayedSearchTerm:s}=this,i=t&&!s,r="suggestion"===this.activeMenu&&0===this._activeMenuItemIndex;return i?M("ul",{role:"group",key:"geoscene-search__suggestion-list-current-location",class:this.classes(w.menuList,w.suggestionList,w.suggestionListCurrentLocation)},M("li",{bind:this,"data-current-location-item":!0,onclick:this._handleUseCurrentLocationClick,id:this._buildId("suggestion-item",0),"aria-selected":("suggestion"===this.activeMenu&&0===this._activeMenuItemIndex).toString(),role:"option",class:this.classes(w.menuItem,r?w.menuItemFocus:null)},M("span",{"aria-hidden":"true",class:w.locate})," ",e.useCurrentLocation)):null}renderInput(){const{activeMenu:e,locationEnabled:t,displayedSearchTerm:s,messages:i,suggestionsMenuId:r,inputId:n,_activeMenuItemIndex:o}=this,{maxInputLength:a,placeholder:u,searchTerm:l,suggestionCount:c}=this.viewModel,h=!(!(t&&!s)&&!c),d="suggestion"===e&&o>-1?this._buildId("suggestion-item",o):null;return M("input",{"aria-activedescendant":d,"aria-autocomplete":"list","aria-expanded":(h&&"suggestion"===e).toString(),"aria-controls":h?r:null,"aria-haspopup":"listbox","aria-label":i.searchButtonTitle,bind:this,placeholder:u,maxlength:a,autocomplete:"off",type:"text",class:this.classes(w.esriInput,w.input),value:l,id:n,role:"combobox",onkeyup:this._handleInputKeyup,onclick:this._openSuggestionMenu,oninput:this._handleInputPaste,onpaste:this._handleInputPaste,afterCreate:g,"data-node-ref":"_inputNode",onfocus:this.focus,onblur:this.blur,title:l?"":u})}renderForm(){return M("form",{key:"geoscene-search__form",bind:this,class:w.form,onsubmit:this._formSubmit,role:"search"},this.renderInput())}renderSuggestList(e){const{sourceIndex:t}=e,s=e.results.length,i=e.results;return s?M("ul",{role:"group",key:`geoscene-search__suggestion-list-${t}`,class:this.classes(w.menuList,w.suggestionList)},i.map((e=>this.renderSuggestion(e,this._menuItemCount++)))):null}renderSuggestionsGroup(){const{suggestions:e}=this.viewModel;return e?e.map((e=>[this.renderSuggestionHeader(e),this.renderSuggestList(e)])):null}renderSuggestionsMenu(){const{displayedSearchTerm:e,locationEnabled:t,suggestionsMenuId:s,inputId:i}=this,{suggestionCount:r}=this.viewModel,n=t&&!e||r;return this._menuItemCount=0,n?M("div",{id:s,key:"geoscene-search__suggestions-menu",class:this.classes(w.menu,w.suggestionsMenu),role:"listbox","aria-labelledby":i,bind:this,afterCreate:g,"data-node-ref":"_suggestionListNode"},this.renderLocationGroup(),this.renderSuggestionsGroup()):null}renderInputContainer(){return M("div",{key:"geoscene-search__input-container",class:w.inputContainer},this.renderForm(),this.renderSuggestionsMenu(),this.renderClearButton())}renderSuggestionHeader(e){const{allSources:t,activeSourceIndex:s}=this.viewModel,{sourceIndex:i}=e,r=e.results.length,n=t.length>1&&s===d.ALL_INDEX;return r&&n?M("div",{key:`geoscene-search__suggestion-header-${i}`,class:w.menuHeader},this._getSourceName(i)):null}renderSuggestion(e,t){const{_activeMenuItemIndex:s,messages:i}=this,{searchTerm:r}=this.viewModel;if(r){const{text:n}=e,o=n||i.untitledResult,a=S.test(o),u=[];if(a)u.push(M("div",{innerHTML:o}));else{const e=this._splitResult(o,r),t=r.toLowerCase();e.forEach(((e,s)=>{e&&e.length&&(e.toLowerCase()===t?u.push(M("strong",{key:s},e)):u.push(e))}))}const l="suggestion"===this.activeMenu&&s===t;return M("li",{bind:this,id:this._buildId("suggestion-item",t),"aria-selected":("suggestion"===this.activeMenu&&this._activeMenuItemIndex===t).toString(),onclick:this._handleSuggestionClick,key:`geoscene-search__suggestion_${t}`,"data-suggestion":e,role:"option",class:this.classes(w.menuItem,l?w.menuItemFocus:null)},u)}}renderSource(e){const{activeSourceIndex:t,searchAllEnabled:s}=this.viewModel,i={[w.menuItemActive]:e===t,[w.menuItemFocus]:"source"===this.activeMenu&&e===(s?this._activeMenuItemIndex-1:this._activeMenuItemIndex)},r=s?e+1:e;return M("li",{bind:this,key:`geoscene-search__source-${e}`,id:this._buildId("source-item",r),"aria-checked":(e===t).toString(),onclick:this._handleSourceClick,"data-source-index":e,role:"menuitemradio",class:this.classes(w.source,w.menuItem,i)},this._getSourceName(e))}renderNoResultsWarning(e){const{messages:t}=this,s=e?I(t.noResultsFoundForValue,{value:`"${e}"`}):t.noResultsFound;return M("div",{key:"geoscene-search__no_results"},M("div",{class:w.warningMenuHeader},t.noResults),M("div",{class:w.warningMenuText},s))}renderEmptySearchWarning(){const{messages:e}=this;return M("div",{key:"geoscene-search__empty-search"},M("span",{"aria-hidden":"true",class:w.noticeIcon}),M("span",{class:w.noValueText},e.emptyValue))}renderLocateWarning(){const{messages:e}=this;return M("div",{key:"geoscene-search__locate-error"},M("span",{"aria-hidden":"true",class:w.noticeIcon}),M("span",{class:w.noValueText},e.locateError))}renderWarning(){var e;const{displayedSearchTerm:t,_locateFailed:s}=this,{viewModel:i}=this;return s?this.renderLocateWarning():null!=(e=i.selectedSuggestion)&&e.location||t?this.renderNoResultsWarning(t):this.renderEmptySearchWarning()}_resetActiveMenuItemIndex(){this._activeMenuItemIndex=-1}_buildId(e,t){return`${this.id}-${e}${void 0===t?"":`-${t}`}`}_watchSourceChanges(){const{_handles:e,viewModel:{allSources:t}}=this,s="sources";e.remove(s),t.forEach((t=>e.add(r(t,"name",(()=>this.scheduleRender())),s)))}_handleSourcesMenuToggleFocus(){"source"!==this.activeMenu&&this._clearActiveMenu()}_handleSourcesMenuToggleClick(){const e="source"===this.activeMenu;var t;(this.activeMenu=e?"none":"source",this.renderNow(),"source"===this.activeMenu)&&(null==(t=this._sourceListNode)||t.focus())}_handleClearButtonClick(){this.viewModel.clear(),this._focus()}_handleSearchButtonClick(){this.search()}_handleSuggestionClick(e){const t=e.currentTarget["data-suggestion"];t&&(this._focus(),this.search(t))}_handleUseCurrentLocationClick(){this._useCurrentLocation()}_useCurrentLocation(){this._focus("none"),this._cancelSuggest(),this._cancelSearch();const e=new AbortController,{signal:t}=e;this._searchController=e,this.viewModel.searchNearby({signal:t}).then((e=>{this.activeMenu=e.numResults?"none":"warning"})).catch((()=>{this._locateFailed=!0,this.activeMenu="warning"})).then((()=>{this._searchController=null}))}_handleSourceClick(e){this._setSourceFromMenuItem(e.currentTarget)}_setSourceFromMenuItem(e){var t;if(!e)return;const s=e["data-source-index"];this.viewModel.activeSourceIndex=s,this._clearActiveMenu(),null==(t=this._sourceMenuButtonNode)||t.focus()}_cancelSuggest(){this._suggestController&&(this._suggestController.abort(),this._suggestController=null)}_cancelSearch(){this._searchController&&(this._searchController.abort(),this._searchController=null),this._locateFailed=!1}_handleInputKeyup(e){var s;const i=t(e);if(e.ctrlKey||e.metaKey||"Copy"===i||"ArrowLeft"===i||"ArrowRight"===i||"Shift"===i)return;if("Tab"===i||"Escape"===i||e.shiftKey&&"Tab"===i)return this._cancelSuggest(),void("Escape"===i&&this._clearActiveMenu());const r="Home"===i||"End"===i||"ArrowUp"===i||"ArrowDown"===i;if("Enter"===i&&this._activeMenuItemIndex<0)return void this._cancelSuggest();const n=null==(s=this._suggestionListNode)?void 0:s.getElementsByTagName("li");if(null!=n&&n.length){if("suggestion"!==this.activeMenu&&this._openSuggestionMenu(),r)return e.preventDefault(),this._cancelSuggest(),void this._handleItemNavigation(i,n,this._suggestionListNode);const t=n[this._activeMenuItemIndex];if("Enter"===i&&t){const e=t["data-suggestion"];return void(e?(this._focus(),this.search(e)):t["data-current-location-item"]&&this._useCurrentLocation())}}this.viewModel.searchTerm&&this.suggest()}_handleItemNavigation(e,t,s){const i=this._activeMenuItemIndex;"Home"===e&&(this._activeMenuItemIndex=0),"End"===e&&(this._activeMenuItemIndex=t.length-1),"ArrowUp"===e&&(this._activeMenuItemIndex=this._activeMenuItemIndex<=0?t.length-1:this._activeMenuItemIndex-1),"ArrowDown"===e&&(this._activeMenuItemIndex=this._activeMenuItemIndex===t.length-1?0:this._activeMenuItemIndex+1),i!==this._activeMenuItemIndex&&p(t[this._activeMenuItemIndex],s)}_scrollToTopSuggestion(){this._suggestionListNode&&(this._suggestionListNode.scrollTop=0)}_openSuggestionMenu(){this.activeMenu="suggestion"}_handleInputPaste(e){const t=e.target;this.viewModel.searchTerm!==t.value&&(this.viewModel.searchTerm=t.value),this.viewModel.searchTerm&&this.suggest()}_handleSourceMenuKeydown(e){const s=t(e);if(_(s)){e.preventDefault();const t=this._sourceListNode.getElementsByTagName("li")[this._activeMenuItemIndex];this._setSourceFromMenuItem(t)}else"ArrowUp"!==s&&"ArrowDown"!==s&&"End"!==s&&"Home"!==s||e.preventDefault()}_handleSourceMenuKeyup(e){var s;const i=t(e),r="ArrowUp"===i||"ArrowDown"===i||"End"===i||"Home"===i;var n;if(r&&e.preventDefault(),"Escape"===i)return this._clearActiveMenu(),void(null==(n=this._sourceMenuButtonNode)||n.focus());const o=null==(s=this._sourceListNode)?void 0:s.getElementsByTagName("li");return o&&0!==o.length&&r?("source"!==this.activeMenu&&(this.activeMenu="source"),void this._handleItemNavigation(i,o,this._sourceListNode.parentElement)):void 0}_focus(e){this.focus(),e&&(this.activeMenu=e)}_formSubmit(e){e.preventDefault(),-1===this._activeMenuItemIndex&&this.search()}_getSourceName(e){const{messages:t}=this,s=this.viewModel,{allSources:i}=s,r=i.getItemAt(e);return e===d.ALL_INDEX?t.all:r&&r.name||t.untitledSource}_splitResult(e,t){const s=i(t);return e.replace(new RegExp(`(^|)(${s})(|$)`,"ig"),"$1|$2|$3").split("|")}_renderSearchResultsContent(){return this._searchResultRenderer.showMoreResultsOpen=!1,this._searchResultRenderer.viewModel=this.viewModel,this._searchResultRenderer}};e([u()],b.prototype,"_activeMenuItemIndex",void 0),e([u()],b.prototype,"displayedSearchTerm",null),e([u({readOnly:!0})],b.prototype,"inputId",null),e([u({readOnly:!0})],b.prototype,"suggestionsMenuId",null),e([u({readOnly:!0})],b.prototype,"sourceMenuId",null),e([u({readOnly:!0})],b.prototype,"sourceMenuButtonId",null),e([u()],b.prototype,"activeMenu",void 0),e([a("viewModel.activeSource")],b.prototype,"activeSource",void 0),e([a("viewModel.activeSourceIndex")],b.prototype,"activeSourceIndex",void 0),e([a("viewModel.allPlaceholder")],b.prototype,"allPlaceholder",void 0),e([a("viewModel.allSources")],b.prototype,"allSources",void 0),e([a("viewModel.autoNavigate")],b.prototype,"autoNavigate",void 0),e([a("viewModel.autoSelect")],b.prototype,"autoSelect",void 0),e([a("viewModel.defaultSources")],b.prototype,"defaultSources",void 0),e([u()],b.prototype,"disabled",void 0),e([a("viewModel.goToOverride")],b.prototype,"goToOverride",void 0),e([u()],b.prototype,"iconClass",void 0),e([a("viewModel.includeDefaultSources")],b.prototype,"includeDefaultSources",void 0),e([u({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],b.prototype,"label",void 0),e([a("viewModel.locationEnabled")],b.prototype,"locationEnabled",void 0),e([a("viewModel.maxResults")],b.prototype,"maxResults",void 0),e([a("viewModel.maxSuggestions")],b.prototype,"maxSuggestions",void 0),e([u(),m("geoscene/widgets/Search/t9n/Search")],b.prototype,"messages",void 0),e([u(),m("geoscene/t9n/common")],b.prototype,"messagesCommon",void 0),e([a("viewModel.minSuggestCharacters")],b.prototype,"minSuggestCharacters",void 0),e([a("viewModel.popupEnabled")],b.prototype,"popupEnabled",void 0),e([a("viewModel.popupTemplate")],b.prototype,"popupTemplate",void 0),e([a("viewModel.portal")],b.prototype,"portal",void 0),e([a("viewModel.resultGraphic")],b.prototype,"resultGraphic",void 0),e([a("viewModel.resultGraphicEnabled")],b.prototype,"resultGraphicEnabled",void 0),e([a("viewModel.results")],b.prototype,"results",void 0),e([a("viewModel.searchAllEnabled")],b.prototype,"searchAllEnabled",void 0),e([a("viewModel.searchTerm")],b.prototype,"searchTerm",void 0),e([a("viewModel.selectedResult")],b.prototype,"selectedResult",void 0),e([a("viewModel.sources")],b.prototype,"sources",void 0),e([a("viewModel.suggestions")],b.prototype,"suggestions",void 0),e([a("viewModel.suggestionsEnabled")],b.prototype,"suggestionsEnabled",void 0),e([a("viewModel.view")],b.prototype,"view",void 0),e([v(["search-complete","search-clear","search-start","select-result","suggest-start","suggest-complete"]),u({type:d})],b.prototype,"viewModel",void 0),e([a("viewModel.clear")],b.prototype,"clear",null),b=e([l("geoscene.widgets.Search")],b);const y=b;export{y 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-shadow-cast",i={base:e,geosceneWidget:"esri-widget--panel esri-widget",geosceneWidgetDisabled:"esri-widget--disabled",widgetIcon:"geoscene-icon-measure-building-height-shadow",timeRange:`${e}__time-range`,timeRangePrimaryTick:`${e}__time-range__primary-tick`,timeRangePrimaryTickLabel:`${e}__time-range__primary-tick-label`,timeRangeSecondaryTick:`${e}__time-range__secondary-tick`,timeRangeAMPMLabel:`${e}__time-range__ampm`,timeRangeIndicator:`${e}__time-range__indicator`,datePickerContainer:`${e}__date-picker-container`,visualization:`${e}__visualization`,visualizationSelect:`${e}__visualization__select`,visualizationConfigHidden:`${e}__visualization__config--hidden`},a=`${e}__tz-picker`,_={base:a,select:`${a}__select`,selectFocused:`${a}__select--focused`,hiddenSelect:`${a}__hidden-select`},t=`${e}__label`,n=`${e}__threshold-config`,r={base:n,valueLabel:`${n}__value-label`},s=`${e}__duration-config`,c={base:s,radioGroup:`${s}__radio-group`},o=`${e}__discrete-config`,d={base:o},l=`${e}__tooltip`,g={base:l,content:`${l}__content`};export{e as BASE,i as CSS,o as DISCRETE_CONFIGURATOR_BASE,d as DISCRETE_CONFIGURATOR_CSS,s as DURATION_CONFIGURATOR_BASE,c as DURATION_CONFIGURATOR_CSS,t as LABEL,n as THRESHOLD_CONFIGURATOR_BASE,r as THRESHOLD_CONFIGURATOR_CSS,a as TIMEZONE_PICKER_BASE,_ as TIMEZONE_PICKER_CSS,l as TOOLTIP_BASE,g as TOOLTIP_CSS};
5
+ const e="geoscene-shadow-cast",i={base:e,geosceneWidget:"geoscene-widget--panel geoscene-widget",geosceneWidgetDisabled:"geoscene-widget--disabled",widgetIcon:"geoscene-icon-measure-building-height-shadow",timeRange:`${e}__time-range`,timeRangePrimaryTick:`${e}__time-range__primary-tick`,timeRangePrimaryTickLabel:`${e}__time-range__primary-tick-label`,timeRangeSecondaryTick:`${e}__time-range__secondary-tick`,timeRangeAMPMLabel:`${e}__time-range__ampm`,timeRangeIndicator:`${e}__time-range__indicator`,datePickerContainer:`${e}__date-picker-container`,visualization:`${e}__visualization`,visualizationSelect:`${e}__visualization__select`,visualizationConfigHidden:`${e}__visualization__config--hidden`},a=`${e}__tz-picker`,_={base:a,select:`${a}__select`,selectFocused:`${a}__select--focused`,hiddenSelect:`${a}__hidden-select`},t=`${e}__label`,n=`${e}__threshold-config`,r={base:n,valueLabel:`${n}__value-label`},s=`${e}__duration-config`,c={base:s,radioGroup:`${s}__radio-group`},o=`${e}__discrete-config`,d={base:o},l=`${e}__tooltip`,g={base:l,content:`${l}__content`};export{e as BASE,i as CSS,o as DISCRETE_CONFIGURATOR_BASE,d as DISCRETE_CONFIGURATOR_CSS,s as DURATION_CONFIGURATOR_BASE,c as DURATION_CONFIGURATOR_CSS,t as LABEL,n as THRESHOLD_CONFIGURATOR_BASE,r as THRESHOLD_CONFIGURATOR_CSS,a as TIMEZONE_PICKER_BASE,_ as TIMEZONE_PICKER_CSS,l as TOOLTIP_BASE,g as TOOLTIP_CSS};
package/widgets/Sketch.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 t from"../core/Collection.js";import{handlesGroup as o}from"../core/handleUtils.js";import{removeMaybe as i,destroyMaybe as s,isNone as n,isSome as l}from"../core/maybe.js";import{aliasOf as a}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import p from"../views/interactive/snapping/SnappingOptions.js";import u from"./Widget.js";import h from"./Sketch/SketchViewModel.js";import v from"./support/SelectionToolbar.js";import g from"./support/SnappingControls.js";import{isRTL as m}from"./support/widgetUtils.js";import{messageBundle as _}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as b}from"./support/jsxFactory.js";import{substitute as f}from"../intl/substitute.js";const y={base:"esri-sketch",verticalLayout:"esri-sketch--vertical",panel:"esri-sketch__panel",infoPanel:"esri-sketch__info-panel",section:"esri-sketch__section",toolSection:"esri-sketch__tool-section",infoSection:"esri-sketch__info-section",infoCountSection:"esri-sketch__info-count-section",menuContainer:"esri-sketch__menu-container",menuHeader:"esri-sketch__menu-header",menuTitle:"esri-sketch__menu-title",featureCountBadge:"esri-sketch__feature-count-badge",featureCountText:"esri-sketch__feature-count-text",featureCountNumber:"esri-sketch__feature-count-number",actionToggle:"esri-sketch__action-toggle",actionToggleOn:"esri-sketch__action-toggle--on",actionTitle:"esri-sketch__item-action-title",actionIcon:"esri-sketch__item-action-icon",disabled:"esri-disabled",geosceneWidget:"esri-widget",rotating:"esri-rotating",widgetIcon:"geoscene-icon-edit"},C={createTools:{point:!0,polyline:!0,polygon:!0,rectangle:!0,circle:!0},selectionTools:{"rectangle-selection":!0,"lasso-selection":!0},undoRedoMenu:!0,settingsMenu:!0,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0}};let M=class extends u{constructor(e,o){super(e,o),this._activeCreateOptions=null,this._defaultViewModel=null,this._menuOpen=!1,this._selectionToolbar=null,this._selectionHandlesGroup=null,this._snappingControls=null,this._viewModelHandlesGroup=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.createGraphic=null,this.creationMode="continuous",this.defaultCreateOptions=null,this.defaultUpdateOptions=null,this.iconClass=y.widgetIcon,this.label=void 0,this.layer=null,this.layout="horizontal",this.messages=null,this.snappingOptions=new p,this.updateGraphics=new t,this.view=null,this.visibleElements={...C},this._activateCreateTool=this._activateCreateTool.bind(this),null!=e&&e.viewModel||(this._defaultViewModel=new h,this.viewModel=this._defaultViewModel)}initialize(){const{layer:e,view:t}=this,i=new v({view:"2d"===(null==t?void 0:t.type)?t:null,layers:e?[e]:null});this._selectionHandlesGroup=o([i.watch("activeToolInfo",(e=>{e&&this.viewModel.cancel()})),i.on("complete",(e=>this._onSelectionOperationComplete(e)))]),this._selectionToolbar=i,this._setUpSnappingControls()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-action.js"),import("@esri/calcite-components/dist/components/calcite-icon.js")])}destroy(){this._selectionToolbar.destroy(),this._cleanupViewModel(),this._selectionHandlesGroup=i(this._selectionHandlesGroup),this._snappingControls=s(this._snappingControls)}get activeTool(){const e=this._selectionToolbar.activeToolInfo;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}return this.viewModel.activeTool}get state(){return this._selectionToolbar.activeToolInfo?"active":this.viewModel.state}set viewModel(e){e!==this._get("viewModel")&&((n(this._defaultViewModel)||this._defaultViewModel!==e)&&this._cleanupViewModel(),this._set("viewModel",e),this.viewModel&&(this._viewModelHandlesGroup=o([this.viewModel.on("create",(e=>{this.scheduleRender(),this._onCreateOperation(e)})),this.viewModel.on("update",(()=>this.scheduleRender())),this.viewModel.on("delete",(e=>this.emit("delete",e))),this.viewModel.on("undo",(()=>this.scheduleRender())),this.viewModel.on("redo",(()=>this.scheduleRender())),this.viewModel.watch("layer",(e=>{this._selectionToolbar.layers=e?[e]:null})),this.viewModel.watch("view",(e=>{this._selectionToolbar.view="2d"===(null==e?void 0:e.type)?e:null,this._setUpSnappingControls()})),this.viewModel.watch("state",(()=>this.notifyChange("state")))])))}castVisibleElements(e){const t={...C,...e,createTools:{...C.createTools,...null==e?void 0:e.createTools},selectionTools:{...C.selectionTools,...null==e?void 0:e.selectionTools},snappingControlsElements:{...C.snappingControlsElements,...null==e?void 0:e.snappingControlsElements}};return l(this._snappingControls)&&(this._snappingControls.visibleElements=t.snappingControlsElements),t}create(e,t){this._activeCreateOptions=t||null,this.viewModel.create(e,t)}update(e,t){return this.viewModel.update(e,t)}complete(){}cancel(){this._selectionToolbar.cancel(),this.viewModel.cancel()}undo(){var e;this.viewModel.undo(),null==(e=this.view)||e.focus()}redo(){var e;this.viewModel.redo(),null==(e=this.view)||e.focus()}delete(){}render(){const{label:e,layout:t,viewModel:{state:o}}=this;return b("div",{"aria-label":e,class:this.classes(y.base,y.geosceneWidget,{[y.disabled]:"disabled"===o,[y.verticalLayout]:"vertical"===t})},b("div",{role:"toolbar",class:y.panel},this.renderTopPanelContents()),b("div",{class:this.classes(y.panel,y.infoPanel)},this.renderInfoPanelContents()))}renderTopPanelContents(){const e=this.classes(y.section,y.toolSection),{availableCreateTools:t,visibleElements:o}=this;return[b("div",{role:"menu",key:"selection-button-container",class:e},this.renderDefaultSelectionButton(),this.renderSelectionToolbar()),t&&t.length?b("div",{role:"menu",class:e},this.renderDrawButtons()):null,o.undoRedoMenu?b("div",{role:"menu",key:"undo-redo-menu-button-container",class:e},this.renderUndoRedoMenuButtons()):null,o.settingsMenu?b("div",{key:"settings-menu-button-container",class:y.section},this.renderSettingsMenuButton()):null]}renderInfoPanelContents(){return this._menuOpen?this.renderSettingsMenu():this.updateGraphics.length?[b("div",{class:this.classes(y.section,y.infoSection,y.infoCountSection),key:"feature-count-container"},this.renderFeatureCount()),b("div",{class:this.classes(y.section,y.infoSection),key:"delete-button-container"},this.renderDeleteButton())]:void 0}renderSettingsMenu(){const{settings:e}=this.messages;return[b("div",{role:"menu",class:y.menuContainer,key:"settings-menu-container"},b("header",{class:y.menuHeader,key:"settings-menu-header"},b("span",{class:y.menuTitle},e)),this.renderSnappingControls())]}renderSnappingControls(){const{snappingControls:e}=this.visibleElements;if(l(this._snappingControls)&&e)return this._snappingControls.render()}renderFeatureCount(){const{layout:e,messages:t,updateGraphics:{length:o}}=this,i=f(1===o?t.featureCount:t.featuresCount,{count:o});return b("div",{class:y.featureCountBadge,"aria-label":i},b("span",{class:y.featureCountNumber},"vertical"===e?o:i))}renderDeleteButton(){const e=this.messages.deleteFeature;return b("calcite-action",{bind:this,label:e,onclick:this.delete,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:"trash"}))}renderDefaultSelectionButton(){if(!this.viewModel.updateOnGraphicClick)return;const e=this.messages.selectFeature;return b("calcite-action",{active:"ready"===this.state,bind:this,label:e,onclick:this._activateDefaultSelectTool,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:"cursor"}))}renderSelectionToolbar(){var e;if("2d"!==(null==(e=this.view)?void 0:e.type))return;const t=this.visibleElements.selectionTools;return this._selectionToolbar.visibleElements={lassoTool:!!t["lasso-selection"],rectangleTool:!!t["rectangle-selection"]},this._selectionToolbar.render()}renderDrawButtons(){const e=this.visibleElements.createTools;return this.availableCreateTools.map((t=>"point"===t&&e.point?this.renderPointButton():"polyline"===t&&e.polyline?this.renderPolylineButton():"polygon"===t&&e.polygon?this.renderPolygonButton():"rectangle"===t&&e.rectangle?this.renderRectangleButton():"circle"===t&&e.circle?this.renderCircleButton():void 0))}renderPointButton(){const e="point",t=this.messages.drawPoint;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"pin"}))}renderPolygonButton(){const e="polygon",t=this.messages.drawPolygon;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"polygon"}))}renderPolylineButton(){const e="polyline",t=this.messages.drawPolyline;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"line"}))}renderCircleButton(){const e="circle",t=this.messages.drawCircle;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"circle"}))}renderRectangleButton(){const e="rectangle",t=this.messages.drawRectangle;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"rectangle"}))}renderUndoRedoMenuButtons(){return[this.renderUndoButton(),this.renderRedoButton()]}renderUndoButton(){const e=this.messages.undo;return b("calcite-action",{disabled:!this.viewModel.canUndo(),bind:this,label:e,onclick:this.undo,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:m(this.container)?"redo":"undo"}))}renderRedoButton(){const e=this.messages.redo;return b("calcite-action",{disabled:!this.viewModel.canRedo(),bind:this,label:e,onclick:this.redo,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:m(this.container)?"undo":"redo"}))}renderSettingsMenuButton(){const e=this.messages.settings;return b("calcite-action",{active:this._menuOpen,bind:this,label:e,onclick:this._toggleMenu,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:"gear"}))}_activateCreateTool(e){this.activeTool!==e?(this._selectionToolbar.cancel(),this.create(e)):this.cancel()}_onCreateOperation(e){if("complete"!==e.state)return;const{creationMode:t}=this,{type:o}=e;if("create"===o){const{tool:o,graphic:i}=e,s=this._activeCreateOptions;this._activeCreateOptions=null,"continuous"===t?this.create(o,s):"update"===t&&this.update([i])}}_toggleMenu(){this._menuOpen=!this._menuOpen,this.scheduleRender()}_onSelectionOperationComplete(e){const{viewModel:{defaultUpdateOptions:t}}=this,{selection:o}=e;if(!e.aborted&&o.length){const e=t.tool,i=o.length>1&&"reshape"===e?"transform":e;this.update(o,{...t,tool:i})}this.notifyChange("state")}_activateDefaultSelectTool(){var e;this.cancel(),null==(e=this.view)||e.focus()}_cleanupViewModel(){this._defaultViewModel=s(this._defaultViewModel),this._viewModelHandlesGroup=i(this._viewModelHandlesGroup)}_setUpSnappingControls(){const{snappingOptions:e,view:t}=this;if(this._snappingControls=s(this._snappingControls),!e||!t)return;const o=new g({snappingOptions:e,view:t,visibleElements:this.visibleElements.snappingControlsElements});this._snappingControls=o}};e([c()],M.prototype,"activeTool",null),e([c({cast:e=>{if(!e||!e.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle"]);return e.filter((e=>t.has(e)))}})],M.prototype,"availableCreateTools",void 0),e([a("viewModel.createGraphic")],M.prototype,"createGraphic",void 0),e([c()],M.prototype,"creationMode",void 0),e([a("viewModel.defaultCreateOptions")],M.prototype,"defaultCreateOptions",void 0),e([a("viewModel.defaultUpdateOptions")],M.prototype,"defaultUpdateOptions",void 0),e([c()],M.prototype,"iconClass",void 0),e([c({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],M.prototype,"label",void 0),e([a("viewModel.layer")],M.prototype,"layer",void 0),e([c({type:["horizontal","vertical"]})],M.prototype,"layout",void 0),e([c(),_("geoscene/widgets/Sketch/t9n/Sketch")],M.prototype,"messages",void 0),e([a("viewModel.snappingOptions")],M.prototype,"snappingOptions",void 0),e([c()],M.prototype,"state",null),e([a("viewModel.updateGraphics")],M.prototype,"updateGraphics",void 0),e([a("viewModel.view")],M.prototype,"view",void 0),e([c(),w(["create","update","undo","redo"])],M.prototype,"viewModel",null),e([c()],M.prototype,"visibleElements",void 0),e([r("visibleElements")],M.prototype,"castVisibleElements",null),e([a("viewModel.complete")],M.prototype,"complete",null),e([a("viewModel.delete")],M.prototype,"delete",null),M=e([d("geoscene.widgets.Sketch")],M);const T=M;export{T as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{handlesGroup as o}from"../core/handleUtils.js";import{removeMaybe as i,destroyMaybe as s,isNone as n,isSome as l}from"../core/maybe.js";import{aliasOf as a}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import p from"../views/interactive/snapping/SnappingOptions.js";import u from"./Widget.js";import h from"./Sketch/SketchViewModel.js";import v from"./support/SelectionToolbar.js";import g from"./support/SnappingControls.js";import{isRTL as m}from"./support/widgetUtils.js";import{messageBundle as _}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as b}from"./support/jsxFactory.js";import{substitute as f}from"../intl/substitute.js";const y={base:"geoscene-sketch",verticalLayout:"geoscene-sketch--vertical",panel:"geoscene-sketch__panel",infoPanel:"geoscene-sketch__info-panel",section:"geoscene-sketch__section",toolSection:"geoscene-sketch__tool-section",infoSection:"geoscene-sketch__info-section",infoCountSection:"geoscene-sketch__info-count-section",menuContainer:"geoscene-sketch__menu-container",menuHeader:"geoscene-sketch__menu-header",menuTitle:"geoscene-sketch__menu-title",featureCountBadge:"geoscene-sketch__feature-count-badge",featureCountText:"geoscene-sketch__feature-count-text",featureCountNumber:"geoscene-sketch__feature-count-number",actionToggle:"geoscene-sketch__action-toggle",actionToggleOn:"geoscene-sketch__action-toggle--on",actionTitle:"geoscene-sketch__item-action-title",actionIcon:"geoscene-sketch__item-action-icon",disabled:"geoscene-disabled",geosceneWidget:"geoscene-widget",rotating:"geoscene-rotating",widgetIcon:"geoscene-icon-edit"},C={createTools:{point:!0,polyline:!0,polygon:!0,rectangle:!0,circle:!0},selectionTools:{"rectangle-selection":!0,"lasso-selection":!0},undoRedoMenu:!0,settingsMenu:!0,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0}};let M=class extends u{constructor(e,o){super(e,o),this._activeCreateOptions=null,this._defaultViewModel=null,this._menuOpen=!1,this._selectionToolbar=null,this._selectionHandlesGroup=null,this._snappingControls=null,this._viewModelHandlesGroup=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.createGraphic=null,this.creationMode="continuous",this.defaultCreateOptions=null,this.defaultUpdateOptions=null,this.iconClass=y.widgetIcon,this.label=void 0,this.layer=null,this.layout="horizontal",this.messages=null,this.snappingOptions=new p,this.updateGraphics=new t,this.view=null,this.visibleElements={...C},this._activateCreateTool=this._activateCreateTool.bind(this),null!=e&&e.viewModel||(this._defaultViewModel=new h,this.viewModel=this._defaultViewModel)}initialize(){const{layer:e,view:t}=this,i=new v({view:"2d"===(null==t?void 0:t.type)?t:null,layers:e?[e]:null});this._selectionHandlesGroup=o([i.watch("activeToolInfo",(e=>{e&&this.viewModel.cancel()})),i.on("complete",(e=>this._onSelectionOperationComplete(e)))]),this._selectionToolbar=i,this._setUpSnappingControls()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-action.js"),import("@esri/calcite-components/dist/components/calcite-icon.js")])}destroy(){this._selectionToolbar.destroy(),this._cleanupViewModel(),this._selectionHandlesGroup=i(this._selectionHandlesGroup),this._snappingControls=s(this._snappingControls)}get activeTool(){const e=this._selectionToolbar.activeToolInfo;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}return this.viewModel.activeTool}get state(){return this._selectionToolbar.activeToolInfo?"active":this.viewModel.state}set viewModel(e){e!==this._get("viewModel")&&((n(this._defaultViewModel)||this._defaultViewModel!==e)&&this._cleanupViewModel(),this._set("viewModel",e),this.viewModel&&(this._viewModelHandlesGroup=o([this.viewModel.on("create",(e=>{this.scheduleRender(),this._onCreateOperation(e)})),this.viewModel.on("update",(()=>this.scheduleRender())),this.viewModel.on("delete",(e=>this.emit("delete",e))),this.viewModel.on("undo",(()=>this.scheduleRender())),this.viewModel.on("redo",(()=>this.scheduleRender())),this.viewModel.watch("layer",(e=>{this._selectionToolbar.layers=e?[e]:null})),this.viewModel.watch("view",(e=>{this._selectionToolbar.view="2d"===(null==e?void 0:e.type)?e:null,this._setUpSnappingControls()})),this.viewModel.watch("state",(()=>this.notifyChange("state")))])))}castVisibleElements(e){const t={...C,...e,createTools:{...C.createTools,...null==e?void 0:e.createTools},selectionTools:{...C.selectionTools,...null==e?void 0:e.selectionTools},snappingControlsElements:{...C.snappingControlsElements,...null==e?void 0:e.snappingControlsElements}};return l(this._snappingControls)&&(this._snappingControls.visibleElements=t.snappingControlsElements),t}create(e,t){this._activeCreateOptions=t||null,this.viewModel.create(e,t)}update(e,t){return this.viewModel.update(e,t)}complete(){}cancel(){this._selectionToolbar.cancel(),this.viewModel.cancel()}undo(){var e;this.viewModel.undo(),null==(e=this.view)||e.focus()}redo(){var e;this.viewModel.redo(),null==(e=this.view)||e.focus()}delete(){}render(){const{label:e,layout:t,viewModel:{state:o}}=this;return b("div",{"aria-label":e,class:this.classes(y.base,y.geosceneWidget,{[y.disabled]:"disabled"===o,[y.verticalLayout]:"vertical"===t})},b("div",{role:"toolbar",class:y.panel},this.renderTopPanelContents()),b("div",{class:this.classes(y.panel,y.infoPanel)},this.renderInfoPanelContents()))}renderTopPanelContents(){const e=this.classes(y.section,y.toolSection),{availableCreateTools:t,visibleElements:o}=this;return[b("div",{role:"menu",key:"selection-button-container",class:e},this.renderDefaultSelectionButton(),this.renderSelectionToolbar()),t&&t.length?b("div",{role:"menu",class:e},this.renderDrawButtons()):null,o.undoRedoMenu?b("div",{role:"menu",key:"undo-redo-menu-button-container",class:e},this.renderUndoRedoMenuButtons()):null,o.settingsMenu?b("div",{key:"settings-menu-button-container",class:y.section},this.renderSettingsMenuButton()):null]}renderInfoPanelContents(){return this._menuOpen?this.renderSettingsMenu():this.updateGraphics.length?[b("div",{class:this.classes(y.section,y.infoSection,y.infoCountSection),key:"feature-count-container"},this.renderFeatureCount()),b("div",{class:this.classes(y.section,y.infoSection),key:"delete-button-container"},this.renderDeleteButton())]:void 0}renderSettingsMenu(){const{settings:e}=this.messages;return[b("div",{role:"menu",class:y.menuContainer,key:"settings-menu-container"},b("header",{class:y.menuHeader,key:"settings-menu-header"},b("span",{class:y.menuTitle},e)),this.renderSnappingControls())]}renderSnappingControls(){const{snappingControls:e}=this.visibleElements;if(l(this._snappingControls)&&e)return this._snappingControls.render()}renderFeatureCount(){const{layout:e,messages:t,updateGraphics:{length:o}}=this,i=f(1===o?t.featureCount:t.featuresCount,{count:o});return b("div",{class:y.featureCountBadge,"aria-label":i},b("span",{class:y.featureCountNumber},"vertical"===e?o:i))}renderDeleteButton(){const e=this.messages.deleteFeature;return b("calcite-action",{bind:this,label:e,onclick:this.delete,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:"trash"}))}renderDefaultSelectionButton(){if(!this.viewModel.updateOnGraphicClick)return;const e=this.messages.selectFeature;return b("calcite-action",{active:"ready"===this.state,bind:this,label:e,onclick:this._activateDefaultSelectTool,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:"cursor"}))}renderSelectionToolbar(){var e;if("2d"!==(null==(e=this.view)?void 0:e.type))return;const t=this.visibleElements.selectionTools;return this._selectionToolbar.visibleElements={lassoTool:!!t["lasso-selection"],rectangleTool:!!t["rectangle-selection"]},this._selectionToolbar.render()}renderDrawButtons(){const e=this.visibleElements.createTools;return this.availableCreateTools.map((t=>"point"===t&&e.point?this.renderPointButton():"polyline"===t&&e.polyline?this.renderPolylineButton():"polygon"===t&&e.polygon?this.renderPolygonButton():"rectangle"===t&&e.rectangle?this.renderRectangleButton():"circle"===t&&e.circle?this.renderCircleButton():void 0))}renderPointButton(){const e="point",t=this.messages.drawPoint;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"pin"}))}renderPolygonButton(){const e="polygon",t=this.messages.drawPolygon;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"polygon"}))}renderPolylineButton(){const e="polyline",t=this.messages.drawPolyline;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"line"}))}renderCircleButton(){const e="circle",t=this.messages.drawCircle;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"circle"}))}renderRectangleButton(){const e="rectangle",t=this.messages.drawRectangle;return b("calcite-action",{active:this.activeTool===e,bind:this,label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t},b("calcite-icon",{scale:"s",icon:"rectangle"}))}renderUndoRedoMenuButtons(){return[this.renderUndoButton(),this.renderRedoButton()]}renderUndoButton(){const e=this.messages.undo;return b("calcite-action",{disabled:!this.viewModel.canUndo(),bind:this,label:e,onclick:this.undo,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:m(this.container)?"redo":"undo"}))}renderRedoButton(){const e=this.messages.redo;return b("calcite-action",{disabled:!this.viewModel.canRedo(),bind:this,label:e,onclick:this.redo,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:m(this.container)?"undo":"redo"}))}renderSettingsMenuButton(){const e=this.messages.settings;return b("calcite-action",{active:this._menuOpen,bind:this,label:e,onclick:this._toggleMenu,scale:"s",text:e,title:e},b("calcite-icon",{scale:"s",icon:"gear"}))}_activateCreateTool(e){this.activeTool!==e?(this._selectionToolbar.cancel(),this.create(e)):this.cancel()}_onCreateOperation(e){if("complete"!==e.state)return;const{creationMode:t}=this,{type:o}=e;if("create"===o){const{tool:o,graphic:i}=e,s=this._activeCreateOptions;this._activeCreateOptions=null,"continuous"===t?this.create(o,s):"update"===t&&this.update([i])}}_toggleMenu(){this._menuOpen=!this._menuOpen,this.scheduleRender()}_onSelectionOperationComplete(e){const{viewModel:{defaultUpdateOptions:t}}=this,{selection:o}=e;if(!e.aborted&&o.length){const e=t.tool,i=o.length>1&&"reshape"===e?"transform":e;this.update(o,{...t,tool:i})}this.notifyChange("state")}_activateDefaultSelectTool(){var e;this.cancel(),null==(e=this.view)||e.focus()}_cleanupViewModel(){this._defaultViewModel=s(this._defaultViewModel),this._viewModelHandlesGroup=i(this._viewModelHandlesGroup)}_setUpSnappingControls(){const{snappingOptions:e,view:t}=this;if(this._snappingControls=s(this._snappingControls),!e||!t)return;const o=new g({snappingOptions:e,view:t,visibleElements:this.visibleElements.snappingControlsElements});this._snappingControls=o}};e([c()],M.prototype,"activeTool",null),e([c({cast:e=>{if(!e||!e.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle"]);return e.filter((e=>t.has(e)))}})],M.prototype,"availableCreateTools",void 0),e([a("viewModel.createGraphic")],M.prototype,"createGraphic",void 0),e([c()],M.prototype,"creationMode",void 0),e([a("viewModel.defaultCreateOptions")],M.prototype,"defaultCreateOptions",void 0),e([a("viewModel.defaultUpdateOptions")],M.prototype,"defaultUpdateOptions",void 0),e([c()],M.prototype,"iconClass",void 0),e([c({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],M.prototype,"label",void 0),e([a("viewModel.layer")],M.prototype,"layer",void 0),e([c({type:["horizontal","vertical"]})],M.prototype,"layout",void 0),e([c(),_("geoscene/widgets/Sketch/t9n/Sketch")],M.prototype,"messages",void 0),e([a("viewModel.snappingOptions")],M.prototype,"snappingOptions",void 0),e([c()],M.prototype,"state",null),e([a("viewModel.updateGraphics")],M.prototype,"updateGraphics",void 0),e([a("viewModel.view")],M.prototype,"view",void 0),e([c(),w(["create","update","undo","redo"])],M.prototype,"viewModel",null),e([c()],M.prototype,"visibleElements",void 0),e([r("visibleElements")],M.prototype,"castVisibleElements",null),e([a("viewModel.complete")],M.prototype,"complete",null),e([a("viewModel.delete")],M.prototype,"delete",null),M=e([d("geoscene.widgets.Sketch")],M);const T=M;export{T as default};
package/widgets/Slice.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{ignoreAbortErrors as t}from"../core/promiseUtils.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 i}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import r from"./Slice/SliceViewModel.js";import{Heading as c}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as a}from"./support/jsxFactory.js";const d="esri-slice",u={buttonDisabled:"esri-button--disabled",layerIncludeButton:"esri-slice__cross",widgetIcon:"geoscene-icon-slice",base:`${d} esri-widget esri-widget--panel`,layerList:`${d}__settings`,layerListHeading:"esri-slice__settings-title",layerItem:`${d}__layer-item`,layerItemTitle:`${d}__layer-item__title`,container:`${d}__container`,actionSection:"esri-slice__actions",hint:`${d}__hint`,hintText:`${d}__hint-text`,panelError:`${d}__panel--error`,newSliceButton:`${d}__clear-button esri-button esri-button--primary`,excludeButton:`${d}__exclude-button esri-button esri-button--secondary`,cancelButton:`${d}__cancel-button esri-button esri-button--secondary`};let p=class extends l{constructor(e,t){super(e,t),this.headingLevel=3,this.iconClass=u.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new r}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-icon.js")])}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}render(){const e=this.viewModel.supported,t=this.viewModel.active,s="disabled"===this.viewModel.state,i="ready"===this.viewModel.state,o="slicing"===this.viewModel.state||"sliced"===this.viewModel.state,l="exclude"===this.viewModel.layersMode,{messages:r}=this,n=s&&u.buttonDisabled,d=t&&!o||l?null:a("button",{disabled:s,class:this.classes(u.newSliceButton,n),bind:this,onclick:this._onNewSliceClick,key:"esri-slice__clear",type:"button"},r.newSlice),p=o&&!l?a("button",{class:this.classes(u.excludeButton,n),bind:this,onclick:()=>{this.viewModel.enterExcludeLayerMode()},key:"esri-slice__exclude",type:"button"},r.excludeLayer):null,y=t&&l?a("button",{class:this.classes(u.cancelButton,n),bind:this,onclick:()=>{this.viewModel.exitExcludeLayerMode()},key:"esri-slice__cancel-exclude",type:"button"},r.cancel):null;let h=null;t&&(l?h=r.excludeHint:i&&(h=r.hint));const v=h?a("div",{class:u.hint,key:"esri-slice__hint"},a("p",{class:u.hintText},h)):null,m=this.excludedLayers?this.excludedLayers.toArray().map((e=>this._renderLayerItem({uid:e.uid,title:e.title,onClick:()=>(this.excludedLayers.remove(e),!1)}))):[];this.excludeGroundSurface&&m.push(this._renderLayerItem({uid:"ground",title:r.ground,onClick:()=>(this.excludeGroundSurface=!1,!1)}));const _=!l&&o&&m.length>0?a("div",{class:u.layerList,key:"esri-slice__settings"},a(c,{class:u.layerListHeading,level:this.headingLevel},r.excludedLayers),a("ul",null,m)):null,b=a("div",{class:u.panelError,key:"esri-slice__unsupported"},a("p",null,r.unsupported)),w=a("div",{class:u.actionSection},p,y,d),g=this.visible?a("div",{class:u.container},e?[v,_,w]:b):null;return a("div",{class:u.base,role:"presentation"},g)}_renderLayerItem(e){return a("li",{class:u.layerItem,key:e.uid},a("calcite-button",{appearance:"transparent",class:u.layerIncludeButton,"icon-start":"x",scale:"s",title:this.messages.includeLayer,bind:this,onclick:e.onClick}),a("div",{class:u.layerItemTitle},e.title))}_onNewSliceClick(){t(this.viewModel.start())}};e([s("viewModel.active")],p.prototype,"active",void 0),e([i({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",null),e([s("viewModel.excludedLayers")],p.prototype,"excludedLayers",void 0),e([s("viewModel.excludeGroundSurface")],p.prototype,"excludeGroundSurface",void 0),e([i()],p.prototype,"headingLevel",void 0),e([i()],p.prototype,"iconClass",void 0),e([i({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),e([i(),n("geoscene/widgets/Slice/t9n/Slice")],p.prototype,"messages",void 0),e([s("viewModel.view")],p.prototype,"view",void 0),e([i({type:r})],p.prototype,"viewModel",void 0),e([s("viewModel.visible")],p.prototype,"visible",void 0),p=e([o("geoscene.widgets.Slice")],p);const y=p;export{y as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.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 i}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import r from"./Slice/SliceViewModel.js";import{Heading as c}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as a}from"./support/jsxFactory.js";const d="geoscene-slice",u={buttonDisabled:"geoscene-button--disabled",layerIncludeButton:"geoscene-slice__cross",widgetIcon:"geoscene-icon-slice",base:`${d} geoscene-widget geoscene-widget--panel`,layerList:`${d}__settings`,layerListHeading:"geoscene-slice__settings-title",layerItem:`${d}__layer-item`,layerItemTitle:`${d}__layer-item__title`,container:`${d}__container`,actionSection:"geoscene-slice__actions",hint:`${d}__hint`,hintText:`${d}__hint-text`,panelError:`${d}__panel--error`,newSliceButton:`${d}__clear-button geoscene-button geoscene-button--primary`,excludeButton:`${d}__exclude-button geoscene-button geoscene-button--secondary`,cancelButton:`${d}__cancel-button geoscene-button geoscene-button--secondary`};let p=class extends l{constructor(e,t){super(e,t),this.headingLevel=3,this.iconClass=u.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new r}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-icon.js")])}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}render(){const e=this.viewModel.supported,t=this.viewModel.active,s="disabled"===this.viewModel.state,i="ready"===this.viewModel.state,o="slicing"===this.viewModel.state||"sliced"===this.viewModel.state,l="exclude"===this.viewModel.layersMode,{messages:r}=this,n=s&&u.buttonDisabled,d=t&&!o||l?null:a("button",{disabled:s,class:this.classes(u.newSliceButton,n),bind:this,onclick:this._onNewSliceClick,key:"geoscene-slice__clear",type:"button"},r.newSlice),p=o&&!l?a("button",{class:this.classes(u.excludeButton,n),bind:this,onclick:()=>{this.viewModel.enterExcludeLayerMode()},key:"geoscene-slice__exclude",type:"button"},r.excludeLayer):null,y=t&&l?a("button",{class:this.classes(u.cancelButton,n),bind:this,onclick:()=>{this.viewModel.exitExcludeLayerMode()},key:"geoscene-slice__cancel-exclude",type:"button"},r.cancel):null;let h=null;t&&(l?h=r.excludeHint:i&&(h=r.hint));const v=h?a("div",{class:u.hint,key:"geoscene-slice__hint"},a("p",{class:u.hintText},h)):null,m=this.excludedLayers?this.excludedLayers.toArray().map((e=>this._renderLayerItem({uid:e.uid,title:e.title,onClick:()=>(this.excludedLayers.remove(e),!1)}))):[];this.excludeGroundSurface&&m.push(this._renderLayerItem({uid:"ground",title:r.ground,onClick:()=>(this.excludeGroundSurface=!1,!1)}));const _=!l&&o&&m.length>0?a("div",{class:u.layerList,key:"geoscene-slice__settings"},a(c,{class:u.layerListHeading,level:this.headingLevel},r.excludedLayers),a("ul",null,m)):null,b=a("div",{class:u.panelError,key:"geoscene-slice__unsupported"},a("p",null,r.unsupported)),w=a("div",{class:u.actionSection},p,y,d),g=this.visible?a("div",{class:u.container},e?[v,_,w]:b):null;return a("div",{class:u.base,role:"presentation"},g)}_renderLayerItem(e){return a("li",{class:u.layerItem,key:e.uid},a("calcite-button",{appearance:"transparent",class:u.layerIncludeButton,"icon-start":"x",scale:"s",title:this.messages.includeLayer,bind:this,onclick:e.onClick}),a("div",{class:u.layerItemTitle},e.title))}_onNewSliceClick(){t(this.viewModel.start())}};e([s("viewModel.active")],p.prototype,"active",void 0),e([i({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",null),e([s("viewModel.excludedLayers")],p.prototype,"excludedLayers",void 0),e([s("viewModel.excludeGroundSurface")],p.prototype,"excludeGroundSurface",void 0),e([i()],p.prototype,"headingLevel",void 0),e([i()],p.prototype,"iconClass",void 0),e([i({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),e([i(),n("geoscene/widgets/Slice/t9n/Slice")],p.prototype,"messages",void 0),e([s("viewModel.view")],p.prototype,"view",void 0),e([i({type:r})],p.prototype,"viewModel",void 0),e([s("viewModel.visible")],p.prototype,"visible",void 0),p=e([o("geoscene.widgets.Slice")],p);const y=p;export{y as default};
package/widgets/Slider.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 t from"../core/Collection.js";import{deprecatedProperty as i}from"../core/deprecate.js";import{eventKey as n}from"../core/events.js";import s from"../core/Logger.js";import{isSome as o}from"../core/maybe.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./Slider/SliderViewModel.js";import{onResize as m}from"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";import{substitute as p}from"../intl/substitute.js";const v={base:"esri-slider",reversed:"esri-slider--reversed",horizontalLayout:"esri-slider--horizontal",verticalLayout:"esri-slider--vertical",contentElement:"esri-slider__content",extraContentElement:"esri-slider__extra-content",trackElement:"esri-slider__track",ticksContainerElement:"esri-slider__ticks",tickElement:"esri-slider__tick",tickLabelElement:"esri-slider__tick-label",maxElement:"esri-slider__max",minElement:"esri-slider__min",maxElementInteractive:"esri-slider__max--interactive",minElementInteractive:"esri-slider__min--interactive",rangeElementActive:"esri-slider__range--active",rangeInput:"esri-slider__range-input",anchorElement:"esri-slider__anchor",movingAnchorElement:"esri-slider__anchor--moving",lastMovedAnchorElement:"esri-slider__anchor--moved",anchorElementActive:"esri-slider__anchor--active",anchorElementIndexPrefix:"esri-slider__anchor-",segmentElement:"esri-slider__segment",segmentElementIndexPrefix:"esri-slider__segment-",segmentElementInteractive:"esri-slider__segment--interactive",segmentElementActive:"esri-slider__segment--active",effectiveSegmentElement:"esri-slider__effective-segment",effectiveMaxSegmentElement:"esri-slider__effective-max-segment",effectiveMinSegmentElement:"esri-slider__effective-min-segment",thumbElement:"esri-slider__thumb",labelElement:"esri-slider__label",labelElementInteractive:"esri-slider__label--interactive",labelInput:"esri-slider__label-input",geosceneWidget:"esri-widget",widgetIcon:"geoscene-icon-edit",disabled:"esri-disabled",hidden:"esri-hidden"},g={showInput:"Enter",hideInput1:"Enter",hideInput2:"Escape",hideInput3:"Tab",moveAnchorUp:"ArrowUp",moveAnchorDown:"ArrowDown",moveAnchorLeft:"ArrowLeft",moveAnchorRight:"ArrowRight",moveAnchorToMax:"End",moveAnchorToMin:"Home"},f="geoscene.widgets.Slider",b=s.getLogger("geoscene.widgets.Slider"),E={labels:!1,rangeLabels:!1};let x=class extends d{constructor(e,i){super(e,i),this._activeLabelInputIndex=null,this._anchorElements=[],this._dragged=!1,this._dragStartInfo=null,this._focusedAnchorIndex=null,this._isMinInputActive=!1,this._isMaxInputActive=!1,this._lastMovedHandleIndex=null,this._positionPrecision=5,this._segmentDragStartInfo=null,this._trackHeight=null,this._trackWidth=null,this._zIndices=null,this._zIndexOffset=3,this.disabled=!1,this.draggableSegmentsEnabled=!0,this.effectiveMax=null,this.effectiveMin=null,this.effectiveSegmentElements=new t,this.extraNodes=[],this.inputCreatedFunction=null,this.inputFormatFunction=null,this.inputParseFunction=null,this.label=void 0,this.labelElements=new t,this.labelInputsEnabled=!1,this.labelFormatFunction=null,this.labels=null,this.max=null,this.maxLabelElement=null,this.messages=null,this.min=null,this.minLabelElement=null,this.precision=4,this.rangeLabelInputsEnabled=!1,this.segmentElements=new t,this.snapOnClickEnabled=!0,this.steps=null,this.syncedSegmentsEnabled=!1,this.thumbsConstrained=!0,this.thumbCreatedFunction=null,this.thumbElements=new t,this.tickElements=new t,this.trackElement=null,this.values=null,this.viewModel=new c,this.visibleElements={...E},this._onAnchorPointerDown=this._onAnchorPointerDown.bind(this),this._onAnchorPointerMove=this._onAnchorPointerMove.bind(this),this._onAnchorPointerUp=this._onAnchorPointerUp.bind(this),this._onLabelPointerDown=this._onLabelPointerDown.bind(this),this._onLabelPointerUp=this._onLabelPointerUp.bind(this),this._onSegmentPointerDown=this._onSegmentPointerDown.bind(this),this._onSegmentPointerMove=this._onSegmentPointerMove.bind(this),this._onSegmentPointerUp=this._onSegmentPointerUp.bind(this),this._onTrackPointerDown=this._onTrackPointerDown.bind(this),this._onTrackPointerMove=this._onTrackPointerMove.bind(this),this._onTrackPointerUp=this._onTrackPointerUp.bind(this)}destroy(){document.removeEventListener("pointerup",this._onLabelPointerUp),document.removeEventListener("pointermove",this._onLabelPointerMove),document.removeEventListener("pointerup",this._onAnchorPointerUp),document.removeEventListener("pointermove",this._onAnchorPointerMove),this.labelElements.removeAll(),this.labelElements.destroy(),this.segmentElements.removeAll(),this.segmentElements.destroy(),this.effectiveSegmentElements.removeAll(),this.effectiveSegmentElements.destroy(),this.thumbElements.removeAll(),this.thumbElements.destroy(),this.tickElements.removeAll(),this.tickElements.destroy()}set labelsVisible(e){i(b,"labelsVisible",{replacement:"visibleElements.labels",version:"4.15"}),this.visibleElements={...this.visibleElements,labels:e}}set layout(e){-1===["vertical","vertical-reversed","horizontal","horizontal-reversed"].indexOf(e)&&(e="horizontal"),this._set("layout",e)}set rangeLabelsVisible(e){i(b,"rangeLabelsVisible",{replacement:"visibleElements.rangeLabels",version:"4.15"}),this.visibleElements={...this.visibleElements,rangeLabels:e}}get state(){const{_activeLabelInputIndex:e,_isMaxInputActive:t,_isMinInputActive:i,_dragStartInfo:n,_segmentDragStartInfo:s,disabled:r,viewModel:a}=this,l=o(n)||o(s);return r?"disabled":!(null===e&&!t&&!i)?"editing":l?"dragging":a.state}set tickConfigs(e){this._set("tickConfigs",e),this.scheduleRender()}castVisibleElements(e){return{...E,...e}}render(){const{label:e}=this,t=this.classes(v.base,v.geosceneWidget,this._isHorizontalLayout()?v.horizontalLayout:v.verticalLayout,this._isReversedLayout()?v.reversed:null,this._isDisabled()?v.disabled:null);return this._storeTrackDimensions(),_("div",{"aria-label":e,class:t,"touch-action":"none",bind:this,afterCreate:this._afterContainerCreate},this.renderContent())}toNextStep(e){this._toStep(e,1)}toPreviousStep(e){this._toStep(e,-1)}renderContent(){const{max:e,min:t}=this;if(o(t)&&o(e)&&!(t>=e))return[this.renderMin(),this.renderSliderContainer(),this.renderMax()]}renderSliderContainer(){return _("div",{key:"slider-container",bind:this,class:v.contentElement},this.renderTrackElement(),this.renderTicksContainer(),this.renderExtraContentElements())}renderTrackElement(){return _("div",{afterCreate:this._afterTrackCreate,afterRemoved:this._afterTrackRemoved,bind:this,class:v.trackElement,"data-node-ref":"trackElement","touch-action":"none"},this.renderEffectiveSegmentElements(),this.renderSegmentElements(),this.renderAnchorElements())}renderEffectiveSegmentElements(){if(!this.trackElement||!this.values||!this.values.length)return;const e=o(this.effectiveMax),t=o(this.effectiveMin);if(!e&&!t)return;const{max:i,min:n,viewModel:s}=this,r=s.getBounds(),a=[];return t&&a.push(this.renderEffectiveSegmentElement(n,r.min,v.effectiveMinSegmentElement)),e&&a.push(this.renderEffectiveSegmentElement(r.max,i,v.effectiveMaxSegmentElement)),a}renderSegmentElements(){if(!this.trackElement||!this.values||!this.values.length)return;const e=this.values.length,t=[];for(let i=0;i<=e;i++)t.push(this.renderSegmentElement(i));return t}renderSegmentElement(e){const{_trackHeight:t,_trackWidth:i,draggableSegmentsEnabled:n,id:s,state:r,values:a}=this,l=this._isHorizontalLayout(),h=l?i:t,d=this.viewModel.getBounds(),c=this._positionFromValue(d.max),m=this._positionFromValue(d.min),u=e===a.length?null:e,p=0===e?null:e-1,g=o(u),f=o(p);let b,E;const x=[...a].sort(((e,t)=>e-t));this._isReversedLayout()?(b=f?this._positionFromValue(x[p]):m,E=g?this._positionFromValue(x[u]):c):(b=g?this._positionFromValue(x[u]):c,E=f?this._positionFromValue(x[p]):m);const k=this._applyPrecisionToPosition(100*E/h),y=(b-E)/h,I=l?`transform: translate(${k}%, 0px) scale(${y}, 1);`:`transform: translate(0px, ${k}%) scale(1, ${y});`,P=this.classes(v.segmentElement,v.segmentElementIndexPrefix+e,n&&g&&f&&"disabled"!==r?v.segmentElementInteractive:null);return _("div",{afterCreate:this._afterSegmentCreate,afterRemoved:this._afterSegmentRemoved,bind:this,class:P,"data-max-thumb-index":u,"data-min-thumb-index":p,"data-segment-index":e,key:`${s}-segment-${e}`,style:I,"touch-action":"none"})}renderEffectiveSegmentElement(e,t,i){const{_trackHeight:n,_trackWidth:s}=this,o=this._positionFromValue(e),r=this._positionFromValue(t),a=this._isHorizontalLayout(),l=a?s:n,h=this._applyPrecisionToPosition(100*o/l),d=(r-o)/l,c=a?`transform: translate(${h}%, 0px) scale(${d}, 1);`:`transform: translate(0px, ${h}%) scale(1, ${d});`,m=this.classes(v.segmentElement,v.effectiveSegmentElement,i);return _("div",{afterCreate:this._afterEffectiveSegmentCreate,afterRemoved:this._afterEffectiveSegmentRemoved,bind:this,class:m,style:c,"touch-action":"none"})}renderAnchorElements(){const{trackElement:e,values:t}=this;if(t&&t.length)return this._zIndices=t.map(((e,i)=>{const n=this._positionFromValue(e),s=this._positionToPercent(n),o=(this._isHorizontalLayout()?s>50:s<50)?-1:1;return this._zIndexOffset+(t.length+o*i)})),e&&t&&t.length?t.map(((e,t)=>this.renderAnchorElement(e,t))):null}renderAnchorElement(e,t){const i=this._positionFromValue(e),n=this._valueFromPosition(i);if(!o(n)||isNaN(n))return;const{_dragStartInfo:s,_lastMovedHandleIndex:r,id:a,layout:l,values:h,visibleElements:{labels:d}}=this,c=s&&s.index===t,m=r===t,u=this.classes(v.anchorElement,v.anchorElementIndexPrefix+t,c?v.movingAnchorElement:null,m?v.lastMovedAnchorElement:null),g=this.labels.values[t],f=this._getStyleForAnchor(e,t,c||m),{min:b,max:E}=this.viewModel.getBoundsForValueAtIndex(t),{messages:x}=this,k=2===h.length?p(0===t?x.rangeMinimum:x.rangeMaximum,{value:e}):g,y=1===h.length?null:0===t?`${a}-handle-${t+1}`:t===h.length-1?`${a}-handle-${t-1}`:`${a}-handle-${t-1} ${a}-handle-${t+1}`;return _("div",{afterCreate:this._afterAnchorCreate,afterUpdate:this._afterAnchorUpdate,afterRemoved:this._afterAnchorRemoved,"aria-controls":y,"aria-label":x.sliderValue,"aria-labelledby":d?`${a}-label-${t}`:null,"aria-orientation":l,"aria-valuemax":E.toString(),"aria-valuemin":b.toString(),"aria-valuenow":e.toString(),"aria-valuetext":k,bind:this,class:u,"data-thumb-index":t,"data-value":e,id:`${a}-handle-${t}`,key:`${a}-handle-${t}`,onkeydown:this._onAnchorKeyDown,"touch-action":"none",role:"slider",style:f,tabIndex:0},_("span",{afterCreate:this._afterThumbCreate,afterRemoved:this._afterThumbRemoved,bind:this,class:v.thumbElement,"data-thumb-index":t,"touch-action":"none"}),this.renderThumbLabel(t))}renderThumbLabel(e){const{id:t,labels:i,labelInputsEnabled:n,state:s}=this,o=this.visibleElements.labels,r=i.values[e],a=this.classes(v.labelElement,o?null:v.hidden,n&&"disabled"!==s?v.labelElementInteractive:null);return _("span",{afterCreate:this._afterLabelCreate,afterRemoved:this._afterLabelRemoved,"aria-hidden":(!o).toString(),bind:this,class:a,"data-thumb-index":e,key:`${t}-label-${e}`,id:`${t}-label-${e}`,role:n?"button":null,"touch-action":"none"},this._activeLabelInputIndex===e?this.renderValueInput(e):r)}renderValueInput(e){const t=this.values[e];return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.sliderValue,bind:this,class:v.labelInput,"data-input-type":"thumb","data-input-index":e,required:!0,tabIndex:0,type:"text",value:this._formatInputValue(t,"value",e),onblur:this._onLabelInputBlur,onkeydown:this._onInputKeyDown})}renderMax(){const{_isMaxInputActive:e,labels:t,rangeLabelInputsEnabled:i,state:n}=this,s=this.visibleElements.rangeLabels,o=this.classes(v.maxElement,{[v.hidden]:!s,[v.maxElementInteractive]:i&&"disabled"!==n,[v.rangeElementActive]:e});return _("div",{"aria-hidden":(!s).toString(),afterCreate:this._afterMaxLabelCreate,bind:this,class:o,onclick:this._onMaxLabelClick,onkeydown:this._onMaxLabelKeyDown,role:i?"button":null,tabIndex:i?0:null},e?this.renderMaxInput():t.max)}renderMin(){const{_isMinInputActive:e,labels:t,rangeLabelInputsEnabled:i,state:n}=this,s=this.visibleElements.rangeLabels,o=this.classes(v.minElement,{[v.hidden]:!s,[v.minElementInteractive]:i&&"disabled"!==n,[v.rangeElementActive]:e});return _("div",{"aria-hidden":(!s).toString(),afterCreate:this._afterMinLabelCreate,bind:this,class:o,onclick:this._onMinLabelClick,onkeydown:this._onMinLabelKeyDown,role:i?"button":null,tabIndex:i?0:null},e?this.renderMinInput():t.min)}renderMaxInput(){return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.maximumValue,bind:this,class:v.rangeInput,"data-input-type":"max",required:!0,tabIndex:0,type:"text",value:this._formatInputValue(this.max,"max"),onblur:this._onMaxInputBlur,onkeydown:this._onInputKeyDown})}renderMinInput(){return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.minimumValue,bind:this,class:v.rangeInput,"data-input-type":"min",required:!0,tabIndex:0,type:"text",value:this._formatInputValue(this.min,"min"),onblur:this._onMinInputBlur,onkeydown:this._onInputKeyDown})}renderExtraContentElements(){return _("div",{bind:this,class:v.extraContentElement},this.extraNodes)}renderTicksContainer(){if(this.tickConfigs&&this.trackElement&&(0!==this._trackHeight||0!==this._trackWidth))return this.tickConfigs.map(((e,t)=>_("div",{key:"ticks-container",class:this.classes(v.ticksContainerElement)},this.renderTicks(e,t))))}renderTicks(e,i){const{mode:n,values:s}=e;if(this.tickElements.getItemAt(i)||this.tickElements.add(new t,i),"position"===n){const t=Array.isArray(s)?s:[s];return this._calculateTickPositions(t).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}if("percent"===n&&Array.isArray(s)){const{max:t,min:n}=this,o=t-n,r=s.map((e=>this._applyPrecisionToPosition(e/100*o+n)));return this._calculateTickPositions(r).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}const o=Array.isArray(s)&&s.length?s[0]:isNaN(s)?null:s,r=this._getTickCounts(o,e);return this._calculateEquidistantTickPositions(r).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}renderTickGroup(e,t,i,n){const s="position"===e.mode?Array.isArray(e.values)?e.values[t]:e.values:this._valueFromPosition(n);if(o(s)&&!isNaN(s))return _("div",{afterCreate:this._afterTickGroupCreate,afterRemoved:this._afterTickGroupRemoved,bind:this,"data-config":e,"data-position":n,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":s,onclick:this._onTickGroupClick,key:`tick-group-${t}`},this.renderTickLine(e,t,i,s),e.labelsVisible?this.renderTickLabel(e,t,i,s):null)}renderTickLine(e,t,i,n){return _("div",{afterCreate:this._afterTickLineCreate,"aria-valuenow":n.toString(),bind:this,class:v.tickElement,"data-config":e,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":n,key:`tick-label-${t}`,style:this._getPositionStyleForElement(n)})}renderTickLabel(e,t,i,n){const s=e.labelFormatFunction?e.labelFormatFunction(n,"tick",t):this.viewModel.getLabelForValue(n,"tick",t);return _("div",{afterCreate:this._afterTickLabelCreate,"aria-label":s,"aria-valuenow":n.toString(),"aria-valuetext":s,bind:this,class:v.tickLabelElement,"data-config":e,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":n,key:`tick-label-${t}`,style:`transform: translate(-50%); ${this._getPositionStyleForElement(n)}`},s)}_afterContainerCreate(e){this.own(m(e,(()=>this.scheduleRender())))}_afterTrackCreate(e){this._set("trackElement",e),e.addEventListener("pointerdown",this._onTrackPointerDown),this.scheduleRender()}_afterTrackRemoved(e){e.removeEventListener("pointerdown",this._onTrackPointerDown),document.removeEventListener("pointermove",this._onTrackPointerMove),document.removeEventListener("pointerup",this._onTrackPointerUp)}_afterSegmentCreate(e){this.segmentElements.add(e),e.addEventListener("pointerdown",this._onSegmentPointerDown)}_afterSegmentRemoved(e){this.segmentElements.remove(e),e.removeEventListener("pointerdown",this._onSegmentPointerDown)}_afterEffectiveSegmentCreate(e){this.effectiveSegmentElements.add(e)}_afterEffectiveSegmentRemoved(e){this.effectiveSegmentElements.remove(e)}_afterAnchorCreate(e){if(this._anchorElements.push(e),e.addEventListener("pointerdown",this._onAnchorPointerDown),this.thumbCreatedFunction){const t=e["data-thumb-index"],i=e["data-value"],n=this.thumbElements.getItemAt(t)||null,s=this.labelElements.getItemAt(t)||null;this.thumbCreatedFunction(t,i,n,s)}}_afterAnchorUpdate(e){if(o(this._focusedAnchorIndex)){e["data-thumb-index"]===this._focusedAnchorIndex&&(e.focus(),this._focusedAnchorIndex=null)}}_afterAnchorRemoved(e){const t=this._anchorElements.indexOf(e,0);t>-1&&this._anchorElements.splice(t,1),e.removeEventListener("pointerdown",this._onAnchorPointerDown)}_afterThumbCreate(e){this.thumbElements.add(e)}_afterThumbRemoved(e){this.thumbElements.remove(e)}_afterLabelCreate(e){this.labelElements.add(e),e.addEventListener("pointerdown",this._onLabelPointerDown),e.addEventListener("pointerup",this._onLabelPointerUp)}_afterLabelRemoved(e){this.labelElements.remove(e),e.removeEventListener("pointerdown",this._onLabelPointerDown),e.removeEventListener("pointerup",this._onLabelPointerUp)}_afterInputCreate(e){if(e.focus(),e.select(),this.inputCreatedFunction){const t=e.getAttribute("data-input-type"),i="thumb"===t?e["data-input-index"]:null;this.inputCreatedFunction(e,t,i)}}_afterTickLineCreate(e){const t=e["data-tick-config-index"],i=e["data-tick-group-index"],n=this.tickElements.getItemAt(t);n.getItemAt(i)?n.getItemAt(i).tickElement=e:n.add({groupElement:null,tickElement:e,labelElement:null},i)}_afterTickLabelCreate(e){const t=e["data-tick-config-index"],i=e["data-tick-group-index"],n=this.tickElements.getItemAt(t);n.getItemAt(i)?n.getItemAt(i).labelElement=e:n.add({groupElement:null,labelElement:e,tickElement:null},i)}_afterTickGroupRemoved(e){const t=e["data-tick-config-index"],i=this.tickElements.items[t],n=null==i?void 0:i.find((t=>t.groupElement===e));n&&i.remove(n)}_afterTickGroupCreate(e){const t=e["data-config"];if(t&&t.tickCreatedFunction){var i,n;const s=e["data-tick-config-index"],o=e["data-tick-group-index"],r=e["data-value"],a=null==(i=this.tickElements)||null==(n=i.getItemAt(s))?void 0:n.getItemAt(o);if(a){a.groupElement=e;const i=a.tickElement||null,n=a.labelElement||null;t.tickCreatedFunction(r,i,n)}}}_afterMaxLabelCreate(e){this._set("maxLabelElement",e)}_afterMinLabelCreate(e){this._set("minLabelElement",e)}_onAnchorKeyDown(e){if(this._isDisabled()||"editing"===this.state)return;const{target:t}=e,i=n(e),{_anchorElements:s,values:r}=this,a=t["data-thumb-index"],l=s[a],h=r[a],d=[g.moveAnchorUp,g.moveAnchorDown,g.moveAnchorLeft,g.moveAnchorRight];if(i===g.showInput&&this.labelInputsEnabled)this._activeLabelInputIndex=a,this.notifyChange("state");else if(d.indexOf(i)>-1){e.preventDefault();const{steps:t}=this,n=i===g.moveAnchorUp||i===g.moveAnchorRight?1:-1;if(o(t))this._toStep(a,this._isReversedLayout()?-1*n:n);else{const{precision:e}=this,t=this._getPositionOfElement(l),i=this._valueFromPosition(t),s=this._isHorizontalLayout()?n:-1*n;let o;o=0===e?this._positionFromValue(i+s):1===e?this._positionFromValue(i+.1*s):t+s,this._toPosition(a,o)}const s=this.values[a];h!==s&&this._emitThumbChangeEvent({index:a,oldValue:h,value:s})}else if(i===g.moveAnchorToMax||i===g.moveAnchorToMin){e.preventDefault();const{min:t,max:n}=this._getAnchorBoundsInPixels(a),s=this._isPositionInverted()?i===g.moveAnchorToMax?t:n:i===g.moveAnchorToMin?t:n;this._toPosition(a,s);const o=this.values[a];h!==o&&this._emitThumbChangeEvent({index:a,oldValue:h,value:o})}}_onAnchorPointerDown(e){if(this._isDisabled())return;const{target:t,clientX:i,clientY:n}=e,s=t["data-thumb-index"];void 0!==s&&(e.preventDefault(),this._anchorElements[s]&&this._anchorElements[s].focus(),this._storeTrackDimensions(),this._dragStartInfo={clientX:i,clientY:n,index:s,position:this._getPositionOfElement(this._anchorElements[s])},this.notifyChange("state"),document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove))}_onAnchorPointerMove(e){if("editing"===this.state||!this._dragStartInfo)return;e.preventDefault();const{values:t,_anchorElements:i,_dragged:n,_dragStartInfo:s,_dragStartInfo:{index:o,position:r}}=this,{clientX:a,clientY:l}=e,h=n?"drag":"start",d=i[o],c=this._getPositionOfElement(d),m=this._applyPrecisionToPosition(this._isHorizontalLayout()?r+a-s.clientX:r+l-s.clientY);if(c===m)return;const u=t[o];this._dragged=!0,this._toPosition(o,m);const _=this.values[o];n?u!==_&&this._emitThumbDragEvent({index:o,state:h,value:_}):this._emitThumbDragEvent({index:o,state:h,value:u})}_onAnchorPointerUp(e){if(document.removeEventListener("pointerup",this._onAnchorPointerUp),document.removeEventListener("pointermove",this._onAnchorPointerMove),!this._dragStartInfo)return;e.preventDefault();const{index:t}=this._dragStartInfo,i=this._dragged,n=this.values[t];this._dragged=!1,this._dragStartInfo=null,this._lastMovedHandleIndex=t,this.notifyChange("state"),i?this._emitThumbDragEvent({index:t,state:"stop",value:n}):(this.scheduleRender(),"editing"!==this.state&&this._emitThumbClickEvent({index:t,value:n}))}_onTrackPointerDown(e){const{_dragStartInfo:t,snapOnClickEnabled:i,state:n,values:s}=this;if(this._isDisabled()||"editing"===n||t)return;if(document.addEventListener("pointermove",this._onTrackPointerMove),document.addEventListener("pointerup",this._onTrackPointerUp),!i||!s.length)return;const{steps:r}=this,{clientX:a,clientY:l}=e,h=this._getCursorPositionFromEvent(e),d=this._valueFromPosition(h),c=this._getIndexOfNearestValue(d),m=s[c],u=s.some(((e,t)=>e===m&&t!==c))&&d>m?this.values.lastIndexOf(m):c;if(!o(u))return;const _=s[u],p=o(r)?this._calculateNearestStepPosition(h):h;this._toPosition(u,p),this._dragged=!0,this._dragStartInfo={clientX:a,clientY:l,index:u,position:p},this._focusedAnchorIndex=u,this.notifyChange("state"),this._emitThumbDragEvent({index:u,state:"start",value:_});const v=this.values[u];_!==v&&this._emitThumbDragEvent({index:u,state:"drag",value:v}),document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove)}_onTrackPointerMove(e){e.preventDefault(),this._dragged=!0}_onTrackPointerUp(e){if(e.preventDefault(),document.removeEventListener("pointermove",this._onTrackPointerMove),document.removeEventListener("pointerup",this._onTrackPointerUp),this.snapOnClickEnabled||(this._dragged=!1),!this._dragged){const t=this._getCursorPositionFromEvent(e),i=this._valueFromPosition(t);this._emitTrackClickEvent({value:i})}}_onSegmentPointerDown(e){e.preventDefault();const t=e.target,i=t["data-segment-index"],n=t["data-min-thumb-index"],s=t["data-max-thumb-index"];if(this._isDisabled()||!o(n)||!o(s))return;e.stopPropagation(),this._storeTrackDimensions(),document.addEventListener("pointerup",this._onSegmentPointerUp);const r=this._getAnchorDetails(n),a=this._getAnchorDetails(s);var l,h;this.syncedSegmentsEnabled?(this.segmentElements.forEach((e=>e.classList.add(v.segmentElementActive))),this._anchorElements.forEach((e=>e.classList.add(v.anchorElementActive)))):(this.segmentElements.getItemAt(i).classList.add(v.segmentElementActive),null==(l=this._anchorElements[r.index])||l.classList.add(v.anchorElementActive),null==(h=this._anchorElements[a.index])||h.classList.add(v.anchorElementActive));this._segmentDragStartInfo={cursorPosition:this._getCursorPositionFromEvent(e),index:i,details:this._normalizeSegmentDetails({min:r,max:a})},this.draggableSegmentsEnabled&&(document.addEventListener("pointermove",this._onSegmentPointerMove),this.notifyChange("state"),this._emitSegmentDragEvent({index:i,state:"start",thumbIndices:[n,s]}))}_onSegmentPointerMove(e){if(!this._segmentDragStartInfo)return;e.preventDefault();const{_trackHeight:t,_trackWidth:i,_segmentDragStartInfo:{index:n,cursorPosition:s,details:{min:o,max:r}}}=this,{index:a,position:l,value:h}=o,{index:d,position:c,value:m}=r;this._dragged=!0;const u=this._getCursorPositionFromEvent(e);if(u===s)return;const _=this._positionToPercent(s),p=this._positionToPercent(u)-_,v=this._positionToPercent(l)+p,g=this._positionToPercent(c)+p,{min:f}=this._getAnchorBoundsAsPercents(a),{max:b}=this._getAnchorBoundsAsPercents(d);let E=!1,x=!1;if(v<f?E=!0:g>b&&(x=!0),E){const{min:e,max:t}=this.viewModel.getBoundsForValueAtIndex(a),i=this._isPositionInverted()?t:e,n=i,s=m+(i-h),o=s-this.values[d];return void(this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(o):this._updateAnchorValues([a,d],[n,s]))}if(x){const{min:e,max:t}=this.viewModel.getBoundsForValueAtIndex(d),i=this._isPositionInverted()?e:t,n=i,s=h+(i-m),o=s-this.values[a];return void(this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(o):this._updateAnchorValues([a,d],[s,n]))}const k=this._isHorizontalLayout()?i:t,y=g/100*k,I=v/100*k,P=this.values,A=[P[a],P[d]],L=this._getValueForAnchorAtPosition(a,I),S=this._getValueForAnchorAtPosition(d,y);this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(L-A[0]):this._updateAnchorValues([a,d],[L,S]);[this.values[a],this.values[d]].every(((e,t)=>e===A[t]))||this._emitSegmentDragEvent({index:n,state:"drag",thumbIndices:[a,d]})}_onSegmentPointerUp(e){if(e.preventDefault(),document.removeEventListener("pointerup",this._onSegmentPointerUp),document.removeEventListener("pointermove",this._onSegmentPointerMove),!this._segmentDragStartInfo)return;const{_dragged:t,max:i,min:n,values:s}=this,{index:o,details:{min:{index:r},max:{index:a}}}=this._segmentDragStartInfo;if(this.segmentElements.forEach((e=>e.classList.remove(v.segmentElementActive))),this._anchorElements.forEach((e=>e.classList.remove(v.anchorElementActive))),this.draggableSegmentsEnabled){const e=i-n,t=s[r],l=s[a];this._lastMovedHandleIndex=t===l?t>e/2?r:a:null,this._dragged=!1,this._segmentDragStartInfo=null,this.notifyChange("state"),this._emitSegmentDragEvent({index:o,state:"stop",thumbIndices:[r,a]})}if(!t){const t=this._getCursorPositionFromEvent(e),i=this._valueFromPosition(t);this._emitSegmentClickEvent({index:o,value:i,thumbIndices:[r,a]})}}_onTickGroupClick(e){const t=e.target;if(t["data-config"]){const e=t["data-tick-config-index"],i=t["data-tick-group-index"],n=t["data-value"];this._emitTickClickEvent({configIndex:e,groupIndex:i,value:n})}}_storeTrackDimensions(){if(this.trackElement){const e=this._getDimensions(this.trackElement);this._trackHeight=e.height,this._trackWidth=e.width}}_onLabelPointerDown(){this._isDisabled()||(this._dragged=!1,document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove))}_onLabelPointerMove(){this._isDisabled()||(this._dragged=!0)}_onLabelPointerUp(e){if(this._isDisabled())return;const t=e.target["data-thumb-index"];this.labelInputsEnabled&&!this._dragged&&o(t)&&(this._activeLabelInputIndex=t),this._dragged=!1,this.notifyChange("state"),document.removeEventListener("pointerup",this._onLabelPointerUp),document.removeEventListener("pointermove",this._onLabelPointerMove)}_onLabelInputBlur(e){const{_activeLabelInputIndex:t,values:i,viewModel:n}=this,s=e.target.value;if(this._activeLabelInputIndex=null,this.notifyChange("state"),!s)return;const o=this._parseInputValue(s,"value",t),r=i[t],{min:a,max:l}=this.viewModel.getBoundsForValueAtIndex(t);if(o<a||o>l)return;n.setValue(t,o);const h=this.values[t];r!==h&&this._emitThumbChangeEvent({index:t,oldValue:r,value:h})}_onInputKeyDown(e){if(this._isDisabled())return;const{target:t}=e,i=n(e),{hideInput1:s,hideInput2:r,hideInput3:a}=g,{_activeLabelInputIndex:l,_anchorElements:h}=this,d=t;if(i===s||i===r||i===a){e.stopPropagation();const t=l;d.blur(),o(t)?h[t].focus():d.parentElement.focus()}}_onMaxLabelClick(){this._isDisabled()||(this._emitRangeLabelClickEvent({type:"max-click",value:this.max}),this.rangeLabelInputsEnabled&&(this._isMaxInputActive=!0,this.notifyChange("state")))}_onMaxLabelKeyDown(e){this._isDisabled()||n(e)!==g.showInput||(this._isMaxInputActive=!0,this.notifyChange("state"))}_onMaxInputBlur(e){const t=e.target.value;if(this._isMaxInputActive=!1,this.notifyChange("state"),!t)return;const i=this.max,n=this._parseInputValue(t,"max");n<=this.min||(this.viewModel.set("max",n),this.max!==i&&this._emitMaxChangeEvent({oldValue:i,value:this.max}))}_onMinLabelClick(){this._isDisabled()||(this._emitRangeLabelClickEvent({type:"min-click",value:this.min}),this.rangeLabelInputsEnabled&&(this._isMinInputActive=!0,this.notifyChange("state")))}_onMinLabelKeyDown(e){this._isDisabled()||n(e)!==g.showInput||(this._isMinInputActive=!0,this.notifyChange("state"))}_onMinInputBlur(e){const t=e.target.value;if(this._isMinInputActive=!1,this.notifyChange("state"),!t)return;const i=this.min,n=this._parseInputValue(t,"min");n>=this.max||(this.viewModel.set("min",n),this.min!==i&&this._emitMinChangeEvent({oldValue:i,value:this.min}))}_isDisabled(){return this.disabled||"disabled"===this.state}_positionFromValue(e){const{max:t,min:i}=this,n=t-i;if(0===n)return 0;const{_trackHeight:s,_trackWidth:o}=this,r=this._isHorizontalLayout();let a=r?parseFloat((o*(e-i)/n).toFixed(2)):parseFloat((s*(t-e)/n).toFixed(2));return this._isReversedLayout()&&(a=r?o-a:s-a),a}_valueFromPosition(e){const{_trackHeight:t,_trackWidth:i,max:n,min:s,precision:o}=this,r=n-s;let a=this._isHorizontalLayout()?e*r/i+s:r*(1e3-e/t*1e3)/1e3+s;return this._isReversedLayout()&&(a=n+s-a),parseFloat(a.toFixed(o))}_positionToPercent(e){const{_trackHeight:t,_trackWidth:i}=this,n=100*e/(this._isHorizontalLayout()?i:t);return this._applyPrecisionToPosition(n)}_applyPrecisionToPosition(e){return parseFloat(e.toFixed(this._positionPrecision))}_isPositionInverted(){const{layout:e}=this;return"horizontal-reversed"===e||"vertical"===e}_isHorizontalLayout(){return this.layout.indexOf("horizontal")>-1}_isReversedLayout(){return this.layout.indexOf("reversed")>-1}_normalizeSegmentDetails(e){if(this._isPositionInverted()){const{min:t,max:i}=e;return{min:i,max:t}}return e}_parseInputValue(e,t,i){return this.inputParseFunction?this.inputParseFunction(e,t,i):this.viewModel.defaultInputParseFunction(e)}_formatInputValue(e,t,i){return this.inputFormatFunction?this.inputFormatFunction(e,t,i):this.viewModel.defaultInputFormatFunction(e)}_getAnchorDetails(e){const t=[...this.values].sort(((e,t)=>e-t))[e],i=this.values.indexOf(t);return{index:i,position:this._getPositionOfElement(this._anchorElements[i]),value:t}}_updateAnchorStyle(e,t){const i=this._anchorElements[e];i&&(this._isHorizontalLayout()?i.style.left=`${t}`:i.style.top=`${t}`)}_getStyleForAnchor(e,t,i){const n=this._getPositionStyleForElement(e);if(1===this.values.length)return`${n}`;const s=this._zIndices[t];return`${n}; z-index: ${i?this._zIndexOffset+s:s}`}_getPositionStyleForElement(e){const t=this._positionFromValue(e),i=this._positionToPercent(t);return`${this._isHorizontalLayout()?"left":"top"}: ${i+"%"}`}_getPositionOfElement(e){const t=this._getDimensions(e.offsetParent),i=this._getDimensions(e);return this._isHorizontalLayout()?this._applyPrecisionToPosition(i.left-t.left):this._applyPrecisionToPosition(i.top-t.top)}_updateAnchorValues(e,t){e.forEach(((e,i)=>this._toValue(e,t[i])))}_updateAnchorValuesByDifference(e){const{min:t,max:i,values:n}=this;n.forEach(((n,s)=>this._toValue(s,Math.max(Math.min(n+e,i),t))))}_toValue(e,t){if(o(this.steps)){t=this._getStepValues()[this._getIndexOfNearestStepValue(t)]}this._updateAnchorStyle(e,this._getPositionStyleForElement(t)),this.viewModel.setValue(e,t)}_toPosition(e,t){const i=o(this.steps)?this._getStepValueForAnchorAtPosition(e,t):this._getValueForAnchorAtPosition(e,t);this._updateAnchorStyle(e,this._getPositionStyleForElement(i)),this.viewModel.setValue(e,i)}_getValueForAnchorAtPosition(e,t){const{min:i,max:n}=this._getAnchorBoundsInPixels(e),{min:s,max:o}=this.viewModel.getBoundsForValueAtIndex(e);let r,a,l=null;return this._isPositionInverted()?(r=s,a=o):(r=o,a=s),l=t>n?r:t<i?a:this._valueFromPosition(t),l>o?l=o:l<s&&(l=s),l}_getStepValueForAnchorAtPosition(e,t){const i=this._getStepValues(),n=this._calculateNearestStepPosition(t),s=this._getValueForAnchorAtPosition(e,n);return i[this._getIndexOfNearestStepValue(s)]}_getAnchorBoundsAsPercents(e){const{min:t,max:i}=this._getAnchorBoundsInPixels(e);return{min:this._positionToPercent(t),max:this._positionToPercent(i)}}_getAnchorBoundsInPixels(e){const{_anchorElements:t,_trackHeight:i,_trackWidth:n,effectiveMax:s,effectiveMin:r,thumbsConstrained:a}=this,l=t[e-1],h=t[e+1],d=this._isHorizontalLayout()?n:i,c=o(s)?this._isPositionInverted()?d-this._positionFromValue(s):this._positionFromValue(s):d,m=o(r)?this._isPositionInverted()?d-this._positionFromValue(r):this._positionFromValue(r):0;return a?this._isPositionInverted()?{max:l?this._getPositionOfElement(l):c,min:h?this._getPositionOfElement(h):m}:{max:h?this._getPositionOfElement(h):c,min:l?this._getPositionOfElement(l):m}:{max:c,min:m}}_getIndexOfNearestValue(e){return this.values.indexOf(this.values.reduce(((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t)))}_getCursorPositionFromEvent(e){const t=this._getDimensions(this.trackElement);return this._isHorizontalLayout()?e.clientX-t.left:e.clientY-t.top}_getStepValues(){const{steps:e}=this;if(Array.isArray(e))return e;const{max:t,min:i}=this,n=Math.ceil((t-i)/e),s=[];for(let o=0;o<=n;o++){const n=i+e*o;s.push(n>t?t:n)}return s}_toStep(e,t){const{values:i,viewModel:n}=this,s=i[e],o=this._getStepValues(),r=o.indexOf(s);let a=null;if(r>-1){let i=o[r+t];isNaN(i)&&(i=o[r]);const n=this._positionFromValue(i);a=this._getStepValueForAnchorAtPosition(e,n)}else{a=o[this._getIndexOfNearestStepValue(s)+t]}n.setValue(e,a)}_getIndexOfNearestStepValue(e){const{steps:t}=this;if(!o(t))return null;const i=this._getStepValues(),n=i.reduce(((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t));return i.indexOf(n)}_calculateNearestStepPosition(e){const t=this._valueFromPosition(e),i=this._getIndexOfNearestStepValue(t),n=this._getStepValues();return this._positionFromValue(n[i])}_getTickCounts(e,t){const{mode:i}=t;return"count"===i||"position"===i?e||0:"percent"===i&&100/e||0}_calculateTickPositions(e){return e.map((e=>this._positionFromValue(e)))}_calculateEquidistantTickPositions(e){const{_trackWidth:t,_trackHeight:i}=this,n=this._isHorizontalLayout()?t:i,s=n/(e-1),o=[];if(1===e)return[n/2];for(let r=0;r<e;r++){const e=r*s;e<=n&&o.push(e)}return o}_getDimensions(e){try{return e.getBoundingClientRect()}catch(t){if("object"==typeof t&&null!==t)return new DOMRect(0,0,0,0);throw t}}_emitTrackClickEvent(e){this.emit("track-click",{...e,type:"track-click"})}_emitTickClickEvent(e){this.emit("tick-click",{...e,type:"tick-click"})}_emitMaxChangeEvent(e){this.emit("max-change",{...e,type:"max-change"})}_emitMinChangeEvent(e){this.emit("min-change",{...e,type:"min-change"})}_emitThumbChangeEvent(e){this.emit("thumb-change",{...e,type:"thumb-change"})}_emitThumbClickEvent(e){this.emit("thumb-click",{...e,type:"thumb-click"})}_emitThumbDragEvent(e){this.emit("thumb-drag",{...e,type:"thumb-drag"})}_emitSegmentClickEvent(e){this.emit("segment-click",{...e,type:"segment-click"})}_emitSegmentDragEvent(e){this.emit("segment-drag",{...e,type:"segment-drag"})}_emitRangeLabelClickEvent(e){this.emit(e.type,{...e})}};e([l()],x.prototype,"disabled",void 0),e([l()],x.prototype,"draggableSegmentsEnabled",void 0),e([r("viewModel.effectiveMax")],x.prototype,"effectiveMax",void 0),e([r("viewModel.effectiveMin")],x.prototype,"effectiveMin",void 0),e([l({readOnly:!0})],x.prototype,"effectiveSegmentElements",void 0),e([l()],x.prototype,"extraNodes",void 0),e([l()],x.prototype,"inputCreatedFunction",void 0),e([r("viewModel.inputFormatFunction")],x.prototype,"inputFormatFunction",void 0),e([r("viewModel.inputParseFunction")],x.prototype,"inputParseFunction",void 0),e([l({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],x.prototype,"label",void 0),e([l({readOnly:!0})],x.prototype,"labelElements",void 0),e([l()],x.prototype,"labelInputsEnabled",void 0),e([r("viewModel.labelFormatFunction")],x.prototype,"labelFormatFunction",void 0),e([r("viewModel.labels")],x.prototype,"labels",void 0),e([l()],x.prototype,"labelsVisible",null),e([l({value:"horizontal"})],x.prototype,"layout",null),e([r("viewModel.max")],x.prototype,"max",void 0),e([l({readOnly:!0})],x.prototype,"maxLabelElement",void 0),e([l(),u("geoscene/widgets/Slider/t9n/Slider")],x.prototype,"messages",void 0),e([r("viewModel.min")],x.prototype,"min",void 0),e([l({readOnly:!0})],x.prototype,"minLabelElement",void 0),e([r("viewModel.precision")],x.prototype,"precision",void 0),e([l()],x.prototype,"rangeLabelInputsEnabled",void 0),e([l()],x.prototype,"rangeLabelsVisible",null),e([l({readOnly:!0})],x.prototype,"segmentElements",void 0),e([l()],x.prototype,"snapOnClickEnabled",void 0),e([l({readOnly:!0})],x.prototype,"state",null),e([l()],x.prototype,"steps",void 0),e([l()],x.prototype,"syncedSegmentsEnabled",void 0),e([r("viewModel.thumbsConstrained")],x.prototype,"thumbsConstrained",void 0),e([l()],x.prototype,"thumbCreatedFunction",void 0),e([l({readOnly:!0})],x.prototype,"thumbElements",void 0),e([l()],x.prototype,"tickConfigs",null),e([l({readOnly:!0})],x.prototype,"tickElements",void 0),e([l({readOnly:!0})],x.prototype,"trackElement",void 0),e([r("viewModel.values")],x.prototype,"values",void 0),e([l()],x.prototype,"viewModel",void 0),e([l()],x.prototype,"visibleElements",void 0),e([a("visibleElements")],x.prototype,"castVisibleElements",null),x=e([h(f)],x);const k=x;export{k as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{deprecatedProperty as i}from"../core/deprecate.js";import{eventKey as n}from"../core/events.js";import s from"../core/Logger.js";import{isSome as o}from"../core/maybe.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./Slider/SliderViewModel.js";import{onResize as m}from"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";import{substitute as p}from"../intl/substitute.js";const v={base:"geoscene-slider",reversed:"geoscene-slider--reversed",horizontalLayout:"geoscene-slider--horizontal",verticalLayout:"geoscene-slider--vertical",contentElement:"geoscene-slider__content",extraContentElement:"geoscene-slider__extra-content",trackElement:"geoscene-slider__track",ticksContainerElement:"geoscene-slider__ticks",tickElement:"geoscene-slider__tick",tickLabelElement:"geoscene-slider__tick-label",maxElement:"geoscene-slider__max",minElement:"geoscene-slider__min",maxElementInteractive:"geoscene-slider__max--interactive",minElementInteractive:"geoscene-slider__min--interactive",rangeElementActive:"geoscene-slider__range--active",rangeInput:"geoscene-slider__range-input",anchorElement:"geoscene-slider__anchor",movingAnchorElement:"geoscene-slider__anchor--moving",lastMovedAnchorElement:"geoscene-slider__anchor--moved",anchorElementActive:"geoscene-slider__anchor--active",anchorElementIndexPrefix:"geoscene-slider__anchor-",segmentElement:"geoscene-slider__segment",segmentElementIndexPrefix:"geoscene-slider__segment-",segmentElementInteractive:"geoscene-slider__segment--interactive",segmentElementActive:"geoscene-slider__segment--active",effectiveSegmentElement:"geoscene-slider__effective-segment",effectiveMaxSegmentElement:"geoscene-slider__effective-max-segment",effectiveMinSegmentElement:"geoscene-slider__effective-min-segment",thumbElement:"geoscene-slider__thumb",labelElement:"geoscene-slider__label",labelElementInteractive:"geoscene-slider__label--interactive",labelInput:"geoscene-slider__label-input",geosceneWidget:"geoscene-widget",widgetIcon:"geoscene-icon-edit",disabled:"geoscene-disabled",hidden:"geoscene-hidden"},g={showInput:"Enter",hideInput1:"Enter",hideInput2:"Escape",hideInput3:"Tab",moveAnchorUp:"ArrowUp",moveAnchorDown:"ArrowDown",moveAnchorLeft:"ArrowLeft",moveAnchorRight:"ArrowRight",moveAnchorToMax:"End",moveAnchorToMin:"Home"},f="geoscene.widgets.Slider",b=s.getLogger("geoscene.widgets.Slider"),E={labels:!1,rangeLabels:!1};let x=class extends d{constructor(e,i){super(e,i),this._activeLabelInputIndex=null,this._anchorElements=[],this._dragged=!1,this._dragStartInfo=null,this._focusedAnchorIndex=null,this._isMinInputActive=!1,this._isMaxInputActive=!1,this._lastMovedHandleIndex=null,this._positionPrecision=5,this._segmentDragStartInfo=null,this._trackHeight=null,this._trackWidth=null,this._zIndices=null,this._zIndexOffset=3,this.disabled=!1,this.draggableSegmentsEnabled=!0,this.effectiveMax=null,this.effectiveMin=null,this.effectiveSegmentElements=new t,this.extraNodes=[],this.inputCreatedFunction=null,this.inputFormatFunction=null,this.inputParseFunction=null,this.label=void 0,this.labelElements=new t,this.labelInputsEnabled=!1,this.labelFormatFunction=null,this.labels=null,this.max=null,this.maxLabelElement=null,this.messages=null,this.min=null,this.minLabelElement=null,this.precision=4,this.rangeLabelInputsEnabled=!1,this.segmentElements=new t,this.snapOnClickEnabled=!0,this.steps=null,this.syncedSegmentsEnabled=!1,this.thumbsConstrained=!0,this.thumbCreatedFunction=null,this.thumbElements=new t,this.tickElements=new t,this.trackElement=null,this.values=null,this.viewModel=new c,this.visibleElements={...E},this._onAnchorPointerDown=this._onAnchorPointerDown.bind(this),this._onAnchorPointerMove=this._onAnchorPointerMove.bind(this),this._onAnchorPointerUp=this._onAnchorPointerUp.bind(this),this._onLabelPointerDown=this._onLabelPointerDown.bind(this),this._onLabelPointerUp=this._onLabelPointerUp.bind(this),this._onSegmentPointerDown=this._onSegmentPointerDown.bind(this),this._onSegmentPointerMove=this._onSegmentPointerMove.bind(this),this._onSegmentPointerUp=this._onSegmentPointerUp.bind(this),this._onTrackPointerDown=this._onTrackPointerDown.bind(this),this._onTrackPointerMove=this._onTrackPointerMove.bind(this),this._onTrackPointerUp=this._onTrackPointerUp.bind(this)}destroy(){document.removeEventListener("pointerup",this._onLabelPointerUp),document.removeEventListener("pointermove",this._onLabelPointerMove),document.removeEventListener("pointerup",this._onAnchorPointerUp),document.removeEventListener("pointermove",this._onAnchorPointerMove),this.labelElements.removeAll(),this.labelElements.destroy(),this.segmentElements.removeAll(),this.segmentElements.destroy(),this.effectiveSegmentElements.removeAll(),this.effectiveSegmentElements.destroy(),this.thumbElements.removeAll(),this.thumbElements.destroy(),this.tickElements.removeAll(),this.tickElements.destroy()}set labelsVisible(e){i(b,"labelsVisible",{replacement:"visibleElements.labels",version:"4.15"}),this.visibleElements={...this.visibleElements,labels:e}}set layout(e){-1===["vertical","vertical-reversed","horizontal","horizontal-reversed"].indexOf(e)&&(e="horizontal"),this._set("layout",e)}set rangeLabelsVisible(e){i(b,"rangeLabelsVisible",{replacement:"visibleElements.rangeLabels",version:"4.15"}),this.visibleElements={...this.visibleElements,rangeLabels:e}}get state(){const{_activeLabelInputIndex:e,_isMaxInputActive:t,_isMinInputActive:i,_dragStartInfo:n,_segmentDragStartInfo:s,disabled:r,viewModel:a}=this,l=o(n)||o(s);return r?"disabled":!(null===e&&!t&&!i)?"editing":l?"dragging":a.state}set tickConfigs(e){this._set("tickConfigs",e),this.scheduleRender()}castVisibleElements(e){return{...E,...e}}render(){const{label:e}=this,t=this.classes(v.base,v.geosceneWidget,this._isHorizontalLayout()?v.horizontalLayout:v.verticalLayout,this._isReversedLayout()?v.reversed:null,this._isDisabled()?v.disabled:null);return this._storeTrackDimensions(),_("div",{"aria-label":e,class:t,"touch-action":"none",bind:this,afterCreate:this._afterContainerCreate},this.renderContent())}toNextStep(e){this._toStep(e,1)}toPreviousStep(e){this._toStep(e,-1)}renderContent(){const{max:e,min:t}=this;if(o(t)&&o(e)&&!(t>=e))return[this.renderMin(),this.renderSliderContainer(),this.renderMax()]}renderSliderContainer(){return _("div",{key:"slider-container",bind:this,class:v.contentElement},this.renderTrackElement(),this.renderTicksContainer(),this.renderExtraContentElements())}renderTrackElement(){return _("div",{afterCreate:this._afterTrackCreate,afterRemoved:this._afterTrackRemoved,bind:this,class:v.trackElement,"data-node-ref":"trackElement","touch-action":"none"},this.renderEffectiveSegmentElements(),this.renderSegmentElements(),this.renderAnchorElements())}renderEffectiveSegmentElements(){if(!this.trackElement||!this.values||!this.values.length)return;const e=o(this.effectiveMax),t=o(this.effectiveMin);if(!e&&!t)return;const{max:i,min:n,viewModel:s}=this,r=s.getBounds(),a=[];return t&&a.push(this.renderEffectiveSegmentElement(n,r.min,v.effectiveMinSegmentElement)),e&&a.push(this.renderEffectiveSegmentElement(r.max,i,v.effectiveMaxSegmentElement)),a}renderSegmentElements(){if(!this.trackElement||!this.values||!this.values.length)return;const e=this.values.length,t=[];for(let i=0;i<=e;i++)t.push(this.renderSegmentElement(i));return t}renderSegmentElement(e){const{_trackHeight:t,_trackWidth:i,draggableSegmentsEnabled:n,id:s,state:r,values:a}=this,l=this._isHorizontalLayout(),h=l?i:t,d=this.viewModel.getBounds(),c=this._positionFromValue(d.max),m=this._positionFromValue(d.min),u=e===a.length?null:e,p=0===e?null:e-1,g=o(u),f=o(p);let b,E;const x=[...a].sort(((e,t)=>e-t));this._isReversedLayout()?(b=f?this._positionFromValue(x[p]):m,E=g?this._positionFromValue(x[u]):c):(b=g?this._positionFromValue(x[u]):c,E=f?this._positionFromValue(x[p]):m);const k=this._applyPrecisionToPosition(100*E/h),y=(b-E)/h,I=l?`transform: translate(${k}%, 0px) scale(${y}, 1);`:`transform: translate(0px, ${k}%) scale(1, ${y});`,P=this.classes(v.segmentElement,v.segmentElementIndexPrefix+e,n&&g&&f&&"disabled"!==r?v.segmentElementInteractive:null);return _("div",{afterCreate:this._afterSegmentCreate,afterRemoved:this._afterSegmentRemoved,bind:this,class:P,"data-max-thumb-index":u,"data-min-thumb-index":p,"data-segment-index":e,key:`${s}-segment-${e}`,style:I,"touch-action":"none"})}renderEffectiveSegmentElement(e,t,i){const{_trackHeight:n,_trackWidth:s}=this,o=this._positionFromValue(e),r=this._positionFromValue(t),a=this._isHorizontalLayout(),l=a?s:n,h=this._applyPrecisionToPosition(100*o/l),d=(r-o)/l,c=a?`transform: translate(${h}%, 0px) scale(${d}, 1);`:`transform: translate(0px, ${h}%) scale(1, ${d});`,m=this.classes(v.segmentElement,v.effectiveSegmentElement,i);return _("div",{afterCreate:this._afterEffectiveSegmentCreate,afterRemoved:this._afterEffectiveSegmentRemoved,bind:this,class:m,style:c,"touch-action":"none"})}renderAnchorElements(){const{trackElement:e,values:t}=this;if(t&&t.length)return this._zIndices=t.map(((e,i)=>{const n=this._positionFromValue(e),s=this._positionToPercent(n),o=(this._isHorizontalLayout()?s>50:s<50)?-1:1;return this._zIndexOffset+(t.length+o*i)})),e&&t&&t.length?t.map(((e,t)=>this.renderAnchorElement(e,t))):null}renderAnchorElement(e,t){const i=this._positionFromValue(e),n=this._valueFromPosition(i);if(!o(n)||isNaN(n))return;const{_dragStartInfo:s,_lastMovedHandleIndex:r,id:a,layout:l,values:h,visibleElements:{labels:d}}=this,c=s&&s.index===t,m=r===t,u=this.classes(v.anchorElement,v.anchorElementIndexPrefix+t,c?v.movingAnchorElement:null,m?v.lastMovedAnchorElement:null),g=this.labels.values[t],f=this._getStyleForAnchor(e,t,c||m),{min:b,max:E}=this.viewModel.getBoundsForValueAtIndex(t),{messages:x}=this,k=2===h.length?p(0===t?x.rangeMinimum:x.rangeMaximum,{value:e}):g,y=1===h.length?null:0===t?`${a}-handle-${t+1}`:t===h.length-1?`${a}-handle-${t-1}`:`${a}-handle-${t-1} ${a}-handle-${t+1}`;return _("div",{afterCreate:this._afterAnchorCreate,afterUpdate:this._afterAnchorUpdate,afterRemoved:this._afterAnchorRemoved,"aria-controls":y,"aria-label":x.sliderValue,"aria-labelledby":d?`${a}-label-${t}`:null,"aria-orientation":l,"aria-valuemax":E.toString(),"aria-valuemin":b.toString(),"aria-valuenow":e.toString(),"aria-valuetext":k,bind:this,class:u,"data-thumb-index":t,"data-value":e,id:`${a}-handle-${t}`,key:`${a}-handle-${t}`,onkeydown:this._onAnchorKeyDown,"touch-action":"none",role:"slider",style:f,tabIndex:0},_("span",{afterCreate:this._afterThumbCreate,afterRemoved:this._afterThumbRemoved,bind:this,class:v.thumbElement,"data-thumb-index":t,"touch-action":"none"}),this.renderThumbLabel(t))}renderThumbLabel(e){const{id:t,labels:i,labelInputsEnabled:n,state:s}=this,o=this.visibleElements.labels,r=i.values[e],a=this.classes(v.labelElement,o?null:v.hidden,n&&"disabled"!==s?v.labelElementInteractive:null);return _("span",{afterCreate:this._afterLabelCreate,afterRemoved:this._afterLabelRemoved,"aria-hidden":(!o).toString(),bind:this,class:a,"data-thumb-index":e,key:`${t}-label-${e}`,id:`${t}-label-${e}`,role:n?"button":null,"touch-action":"none"},this._activeLabelInputIndex===e?this.renderValueInput(e):r)}renderValueInput(e){const t=this.values[e];return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.sliderValue,bind:this,class:v.labelInput,"data-input-type":"thumb","data-input-index":e,required:!0,tabIndex:0,type:"text",value:this._formatInputValue(t,"value",e),onblur:this._onLabelInputBlur,onkeydown:this._onInputKeyDown})}renderMax(){const{_isMaxInputActive:e,labels:t,rangeLabelInputsEnabled:i,state:n}=this,s=this.visibleElements.rangeLabels,o=this.classes(v.maxElement,{[v.hidden]:!s,[v.maxElementInteractive]:i&&"disabled"!==n,[v.rangeElementActive]:e});return _("div",{"aria-hidden":(!s).toString(),afterCreate:this._afterMaxLabelCreate,bind:this,class:o,onclick:this._onMaxLabelClick,onkeydown:this._onMaxLabelKeyDown,role:i?"button":null,tabIndex:i?0:null},e?this.renderMaxInput():t.max)}renderMin(){const{_isMinInputActive:e,labels:t,rangeLabelInputsEnabled:i,state:n}=this,s=this.visibleElements.rangeLabels,o=this.classes(v.minElement,{[v.hidden]:!s,[v.minElementInteractive]:i&&"disabled"!==n,[v.rangeElementActive]:e});return _("div",{"aria-hidden":(!s).toString(),afterCreate:this._afterMinLabelCreate,bind:this,class:o,onclick:this._onMinLabelClick,onkeydown:this._onMinLabelKeyDown,role:i?"button":null,tabIndex:i?0:null},e?this.renderMinInput():t.min)}renderMaxInput(){return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.maximumValue,bind:this,class:v.rangeInput,"data-input-type":"max",required:!0,tabIndex:0,type:"text",value:this._formatInputValue(this.max,"max"),onblur:this._onMaxInputBlur,onkeydown:this._onInputKeyDown})}renderMinInput(){return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.minimumValue,bind:this,class:v.rangeInput,"data-input-type":"min",required:!0,tabIndex:0,type:"text",value:this._formatInputValue(this.min,"min"),onblur:this._onMinInputBlur,onkeydown:this._onInputKeyDown})}renderExtraContentElements(){return _("div",{bind:this,class:v.extraContentElement},this.extraNodes)}renderTicksContainer(){if(this.tickConfigs&&this.trackElement&&(0!==this._trackHeight||0!==this._trackWidth))return this.tickConfigs.map(((e,t)=>_("div",{key:"ticks-container",class:this.classes(v.ticksContainerElement)},this.renderTicks(e,t))))}renderTicks(e,i){const{mode:n,values:s}=e;if(this.tickElements.getItemAt(i)||this.tickElements.add(new t,i),"position"===n){const t=Array.isArray(s)?s:[s];return this._calculateTickPositions(t).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}if("percent"===n&&Array.isArray(s)){const{max:t,min:n}=this,o=t-n,r=s.map((e=>this._applyPrecisionToPosition(e/100*o+n)));return this._calculateTickPositions(r).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}const o=Array.isArray(s)&&s.length?s[0]:isNaN(s)?null:s,r=this._getTickCounts(o,e);return this._calculateEquidistantTickPositions(r).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}renderTickGroup(e,t,i,n){const s="position"===e.mode?Array.isArray(e.values)?e.values[t]:e.values:this._valueFromPosition(n);if(o(s)&&!isNaN(s))return _("div",{afterCreate:this._afterTickGroupCreate,afterRemoved:this._afterTickGroupRemoved,bind:this,"data-config":e,"data-position":n,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":s,onclick:this._onTickGroupClick,key:`tick-group-${t}`},this.renderTickLine(e,t,i,s),e.labelsVisible?this.renderTickLabel(e,t,i,s):null)}renderTickLine(e,t,i,n){return _("div",{afterCreate:this._afterTickLineCreate,"aria-valuenow":n.toString(),bind:this,class:v.tickElement,"data-config":e,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":n,key:`tick-label-${t}`,style:this._getPositionStyleForElement(n)})}renderTickLabel(e,t,i,n){const s=e.labelFormatFunction?e.labelFormatFunction(n,"tick",t):this.viewModel.getLabelForValue(n,"tick",t);return _("div",{afterCreate:this._afterTickLabelCreate,"aria-label":s,"aria-valuenow":n.toString(),"aria-valuetext":s,bind:this,class:v.tickLabelElement,"data-config":e,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":n,key:`tick-label-${t}`,style:`transform: translate(-50%); ${this._getPositionStyleForElement(n)}`},s)}_afterContainerCreate(e){this.own(m(e,(()=>this.scheduleRender())))}_afterTrackCreate(e){this._set("trackElement",e),e.addEventListener("pointerdown",this._onTrackPointerDown),this.scheduleRender()}_afterTrackRemoved(e){e.removeEventListener("pointerdown",this._onTrackPointerDown),document.removeEventListener("pointermove",this._onTrackPointerMove),document.removeEventListener("pointerup",this._onTrackPointerUp)}_afterSegmentCreate(e){this.segmentElements.add(e),e.addEventListener("pointerdown",this._onSegmentPointerDown)}_afterSegmentRemoved(e){this.segmentElements.remove(e),e.removeEventListener("pointerdown",this._onSegmentPointerDown)}_afterEffectiveSegmentCreate(e){this.effectiveSegmentElements.add(e)}_afterEffectiveSegmentRemoved(e){this.effectiveSegmentElements.remove(e)}_afterAnchorCreate(e){if(this._anchorElements.push(e),e.addEventListener("pointerdown",this._onAnchorPointerDown),this.thumbCreatedFunction){const t=e["data-thumb-index"],i=e["data-value"],n=this.thumbElements.getItemAt(t)||null,s=this.labelElements.getItemAt(t)||null;this.thumbCreatedFunction(t,i,n,s)}}_afterAnchorUpdate(e){if(o(this._focusedAnchorIndex)){e["data-thumb-index"]===this._focusedAnchorIndex&&(e.focus(),this._focusedAnchorIndex=null)}}_afterAnchorRemoved(e){const t=this._anchorElements.indexOf(e,0);t>-1&&this._anchorElements.splice(t,1),e.removeEventListener("pointerdown",this._onAnchorPointerDown)}_afterThumbCreate(e){this.thumbElements.add(e)}_afterThumbRemoved(e){this.thumbElements.remove(e)}_afterLabelCreate(e){this.labelElements.add(e),e.addEventListener("pointerdown",this._onLabelPointerDown),e.addEventListener("pointerup",this._onLabelPointerUp)}_afterLabelRemoved(e){this.labelElements.remove(e),e.removeEventListener("pointerdown",this._onLabelPointerDown),e.removeEventListener("pointerup",this._onLabelPointerUp)}_afterInputCreate(e){if(e.focus(),e.select(),this.inputCreatedFunction){const t=e.getAttribute("data-input-type"),i="thumb"===t?e["data-input-index"]:null;this.inputCreatedFunction(e,t,i)}}_afterTickLineCreate(e){const t=e["data-tick-config-index"],i=e["data-tick-group-index"],n=this.tickElements.getItemAt(t);n.getItemAt(i)?n.getItemAt(i).tickElement=e:n.add({groupElement:null,tickElement:e,labelElement:null},i)}_afterTickLabelCreate(e){const t=e["data-tick-config-index"],i=e["data-tick-group-index"],n=this.tickElements.getItemAt(t);n.getItemAt(i)?n.getItemAt(i).labelElement=e:n.add({groupElement:null,labelElement:e,tickElement:null},i)}_afterTickGroupRemoved(e){const t=e["data-tick-config-index"],i=this.tickElements.items[t],n=null==i?void 0:i.find((t=>t.groupElement===e));n&&i.remove(n)}_afterTickGroupCreate(e){const t=e["data-config"];if(t&&t.tickCreatedFunction){var i,n;const s=e["data-tick-config-index"],o=e["data-tick-group-index"],r=e["data-value"],a=null==(i=this.tickElements)||null==(n=i.getItemAt(s))?void 0:n.getItemAt(o);if(a){a.groupElement=e;const i=a.tickElement||null,n=a.labelElement||null;t.tickCreatedFunction(r,i,n)}}}_afterMaxLabelCreate(e){this._set("maxLabelElement",e)}_afterMinLabelCreate(e){this._set("minLabelElement",e)}_onAnchorKeyDown(e){if(this._isDisabled()||"editing"===this.state)return;const{target:t}=e,i=n(e),{_anchorElements:s,values:r}=this,a=t["data-thumb-index"],l=s[a],h=r[a],d=[g.moveAnchorUp,g.moveAnchorDown,g.moveAnchorLeft,g.moveAnchorRight];if(i===g.showInput&&this.labelInputsEnabled)this._activeLabelInputIndex=a,this.notifyChange("state");else if(d.indexOf(i)>-1){e.preventDefault();const{steps:t}=this,n=i===g.moveAnchorUp||i===g.moveAnchorRight?1:-1;if(o(t))this._toStep(a,this._isReversedLayout()?-1*n:n);else{const{precision:e}=this,t=this._getPositionOfElement(l),i=this._valueFromPosition(t),s=this._isHorizontalLayout()?n:-1*n;let o;o=0===e?this._positionFromValue(i+s):1===e?this._positionFromValue(i+.1*s):t+s,this._toPosition(a,o)}const s=this.values[a];h!==s&&this._emitThumbChangeEvent({index:a,oldValue:h,value:s})}else if(i===g.moveAnchorToMax||i===g.moveAnchorToMin){e.preventDefault();const{min:t,max:n}=this._getAnchorBoundsInPixels(a),s=this._isPositionInverted()?i===g.moveAnchorToMax?t:n:i===g.moveAnchorToMin?t:n;this._toPosition(a,s);const o=this.values[a];h!==o&&this._emitThumbChangeEvent({index:a,oldValue:h,value:o})}}_onAnchorPointerDown(e){if(this._isDisabled())return;const{target:t,clientX:i,clientY:n}=e,s=t["data-thumb-index"];void 0!==s&&(e.preventDefault(),this._anchorElements[s]&&this._anchorElements[s].focus(),this._storeTrackDimensions(),this._dragStartInfo={clientX:i,clientY:n,index:s,position:this._getPositionOfElement(this._anchorElements[s])},this.notifyChange("state"),document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove))}_onAnchorPointerMove(e){if("editing"===this.state||!this._dragStartInfo)return;e.preventDefault();const{values:t,_anchorElements:i,_dragged:n,_dragStartInfo:s,_dragStartInfo:{index:o,position:r}}=this,{clientX:a,clientY:l}=e,h=n?"drag":"start",d=i[o],c=this._getPositionOfElement(d),m=this._applyPrecisionToPosition(this._isHorizontalLayout()?r+a-s.clientX:r+l-s.clientY);if(c===m)return;const u=t[o];this._dragged=!0,this._toPosition(o,m);const _=this.values[o];n?u!==_&&this._emitThumbDragEvent({index:o,state:h,value:_}):this._emitThumbDragEvent({index:o,state:h,value:u})}_onAnchorPointerUp(e){if(document.removeEventListener("pointerup",this._onAnchorPointerUp),document.removeEventListener("pointermove",this._onAnchorPointerMove),!this._dragStartInfo)return;e.preventDefault();const{index:t}=this._dragStartInfo,i=this._dragged,n=this.values[t];this._dragged=!1,this._dragStartInfo=null,this._lastMovedHandleIndex=t,this.notifyChange("state"),i?this._emitThumbDragEvent({index:t,state:"stop",value:n}):(this.scheduleRender(),"editing"!==this.state&&this._emitThumbClickEvent({index:t,value:n}))}_onTrackPointerDown(e){const{_dragStartInfo:t,snapOnClickEnabled:i,state:n,values:s}=this;if(this._isDisabled()||"editing"===n||t)return;if(document.addEventListener("pointermove",this._onTrackPointerMove),document.addEventListener("pointerup",this._onTrackPointerUp),!i||!s.length)return;const{steps:r}=this,{clientX:a,clientY:l}=e,h=this._getCursorPositionFromEvent(e),d=this._valueFromPosition(h),c=this._getIndexOfNearestValue(d),m=s[c],u=s.some(((e,t)=>e===m&&t!==c))&&d>m?this.values.lastIndexOf(m):c;if(!o(u))return;const _=s[u],p=o(r)?this._calculateNearestStepPosition(h):h;this._toPosition(u,p),this._dragged=!0,this._dragStartInfo={clientX:a,clientY:l,index:u,position:p},this._focusedAnchorIndex=u,this.notifyChange("state"),this._emitThumbDragEvent({index:u,state:"start",value:_});const v=this.values[u];_!==v&&this._emitThumbDragEvent({index:u,state:"drag",value:v}),document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove)}_onTrackPointerMove(e){e.preventDefault(),this._dragged=!0}_onTrackPointerUp(e){if(e.preventDefault(),document.removeEventListener("pointermove",this._onTrackPointerMove),document.removeEventListener("pointerup",this._onTrackPointerUp),this.snapOnClickEnabled||(this._dragged=!1),!this._dragged){const t=this._getCursorPositionFromEvent(e),i=this._valueFromPosition(t);this._emitTrackClickEvent({value:i})}}_onSegmentPointerDown(e){e.preventDefault();const t=e.target,i=t["data-segment-index"],n=t["data-min-thumb-index"],s=t["data-max-thumb-index"];if(this._isDisabled()||!o(n)||!o(s))return;e.stopPropagation(),this._storeTrackDimensions(),document.addEventListener("pointerup",this._onSegmentPointerUp);const r=this._getAnchorDetails(n),a=this._getAnchorDetails(s);var l,h;this.syncedSegmentsEnabled?(this.segmentElements.forEach((e=>e.classList.add(v.segmentElementActive))),this._anchorElements.forEach((e=>e.classList.add(v.anchorElementActive)))):(this.segmentElements.getItemAt(i).classList.add(v.segmentElementActive),null==(l=this._anchorElements[r.index])||l.classList.add(v.anchorElementActive),null==(h=this._anchorElements[a.index])||h.classList.add(v.anchorElementActive));this._segmentDragStartInfo={cursorPosition:this._getCursorPositionFromEvent(e),index:i,details:this._normalizeSegmentDetails({min:r,max:a})},this.draggableSegmentsEnabled&&(document.addEventListener("pointermove",this._onSegmentPointerMove),this.notifyChange("state"),this._emitSegmentDragEvent({index:i,state:"start",thumbIndices:[n,s]}))}_onSegmentPointerMove(e){if(!this._segmentDragStartInfo)return;e.preventDefault();const{_trackHeight:t,_trackWidth:i,_segmentDragStartInfo:{index:n,cursorPosition:s,details:{min:o,max:r}}}=this,{index:a,position:l,value:h}=o,{index:d,position:c,value:m}=r;this._dragged=!0;const u=this._getCursorPositionFromEvent(e);if(u===s)return;const _=this._positionToPercent(s),p=this._positionToPercent(u)-_,v=this._positionToPercent(l)+p,g=this._positionToPercent(c)+p,{min:f}=this._getAnchorBoundsAsPercents(a),{max:b}=this._getAnchorBoundsAsPercents(d);let E=!1,x=!1;if(v<f?E=!0:g>b&&(x=!0),E){const{min:e,max:t}=this.viewModel.getBoundsForValueAtIndex(a),i=this._isPositionInverted()?t:e,n=i,s=m+(i-h),o=s-this.values[d];return void(this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(o):this._updateAnchorValues([a,d],[n,s]))}if(x){const{min:e,max:t}=this.viewModel.getBoundsForValueAtIndex(d),i=this._isPositionInverted()?e:t,n=i,s=h+(i-m),o=s-this.values[a];return void(this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(o):this._updateAnchorValues([a,d],[s,n]))}const k=this._isHorizontalLayout()?i:t,y=g/100*k,I=v/100*k,P=this.values,A=[P[a],P[d]],L=this._getValueForAnchorAtPosition(a,I),S=this._getValueForAnchorAtPosition(d,y);this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(L-A[0]):this._updateAnchorValues([a,d],[L,S]);[this.values[a],this.values[d]].every(((e,t)=>e===A[t]))||this._emitSegmentDragEvent({index:n,state:"drag",thumbIndices:[a,d]})}_onSegmentPointerUp(e){if(e.preventDefault(),document.removeEventListener("pointerup",this._onSegmentPointerUp),document.removeEventListener("pointermove",this._onSegmentPointerMove),!this._segmentDragStartInfo)return;const{_dragged:t,max:i,min:n,values:s}=this,{index:o,details:{min:{index:r},max:{index:a}}}=this._segmentDragStartInfo;if(this.segmentElements.forEach((e=>e.classList.remove(v.segmentElementActive))),this._anchorElements.forEach((e=>e.classList.remove(v.anchorElementActive))),this.draggableSegmentsEnabled){const e=i-n,t=s[r],l=s[a];this._lastMovedHandleIndex=t===l?t>e/2?r:a:null,this._dragged=!1,this._segmentDragStartInfo=null,this.notifyChange("state"),this._emitSegmentDragEvent({index:o,state:"stop",thumbIndices:[r,a]})}if(!t){const t=this._getCursorPositionFromEvent(e),i=this._valueFromPosition(t);this._emitSegmentClickEvent({index:o,value:i,thumbIndices:[r,a]})}}_onTickGroupClick(e){const t=e.target;if(t["data-config"]){const e=t["data-tick-config-index"],i=t["data-tick-group-index"],n=t["data-value"];this._emitTickClickEvent({configIndex:e,groupIndex:i,value:n})}}_storeTrackDimensions(){if(this.trackElement){const e=this._getDimensions(this.trackElement);this._trackHeight=e.height,this._trackWidth=e.width}}_onLabelPointerDown(){this._isDisabled()||(this._dragged=!1,document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove))}_onLabelPointerMove(){this._isDisabled()||(this._dragged=!0)}_onLabelPointerUp(e){if(this._isDisabled())return;const t=e.target["data-thumb-index"];this.labelInputsEnabled&&!this._dragged&&o(t)&&(this._activeLabelInputIndex=t),this._dragged=!1,this.notifyChange("state"),document.removeEventListener("pointerup",this._onLabelPointerUp),document.removeEventListener("pointermove",this._onLabelPointerMove)}_onLabelInputBlur(e){const{_activeLabelInputIndex:t,values:i,viewModel:n}=this,s=e.target.value;if(this._activeLabelInputIndex=null,this.notifyChange("state"),!s)return;const o=this._parseInputValue(s,"value",t),r=i[t],{min:a,max:l}=this.viewModel.getBoundsForValueAtIndex(t);if(o<a||o>l)return;n.setValue(t,o);const h=this.values[t];r!==h&&this._emitThumbChangeEvent({index:t,oldValue:r,value:h})}_onInputKeyDown(e){if(this._isDisabled())return;const{target:t}=e,i=n(e),{hideInput1:s,hideInput2:r,hideInput3:a}=g,{_activeLabelInputIndex:l,_anchorElements:h}=this,d=t;if(i===s||i===r||i===a){e.stopPropagation();const t=l;d.blur(),o(t)?h[t].focus():d.parentElement.focus()}}_onMaxLabelClick(){this._isDisabled()||(this._emitRangeLabelClickEvent({type:"max-click",value:this.max}),this.rangeLabelInputsEnabled&&(this._isMaxInputActive=!0,this.notifyChange("state")))}_onMaxLabelKeyDown(e){this._isDisabled()||n(e)!==g.showInput||(this._isMaxInputActive=!0,this.notifyChange("state"))}_onMaxInputBlur(e){const t=e.target.value;if(this._isMaxInputActive=!1,this.notifyChange("state"),!t)return;const i=this.max,n=this._parseInputValue(t,"max");n<=this.min||(this.viewModel.set("max",n),this.max!==i&&this._emitMaxChangeEvent({oldValue:i,value:this.max}))}_onMinLabelClick(){this._isDisabled()||(this._emitRangeLabelClickEvent({type:"min-click",value:this.min}),this.rangeLabelInputsEnabled&&(this._isMinInputActive=!0,this.notifyChange("state")))}_onMinLabelKeyDown(e){this._isDisabled()||n(e)!==g.showInput||(this._isMinInputActive=!0,this.notifyChange("state"))}_onMinInputBlur(e){const t=e.target.value;if(this._isMinInputActive=!1,this.notifyChange("state"),!t)return;const i=this.min,n=this._parseInputValue(t,"min");n>=this.max||(this.viewModel.set("min",n),this.min!==i&&this._emitMinChangeEvent({oldValue:i,value:this.min}))}_isDisabled(){return this.disabled||"disabled"===this.state}_positionFromValue(e){const{max:t,min:i}=this,n=t-i;if(0===n)return 0;const{_trackHeight:s,_trackWidth:o}=this,r=this._isHorizontalLayout();let a=r?parseFloat((o*(e-i)/n).toFixed(2)):parseFloat((s*(t-e)/n).toFixed(2));return this._isReversedLayout()&&(a=r?o-a:s-a),a}_valueFromPosition(e){const{_trackHeight:t,_trackWidth:i,max:n,min:s,precision:o}=this,r=n-s;let a=this._isHorizontalLayout()?e*r/i+s:r*(1e3-e/t*1e3)/1e3+s;return this._isReversedLayout()&&(a=n+s-a),parseFloat(a.toFixed(o))}_positionToPercent(e){const{_trackHeight:t,_trackWidth:i}=this,n=100*e/(this._isHorizontalLayout()?i:t);return this._applyPrecisionToPosition(n)}_applyPrecisionToPosition(e){return parseFloat(e.toFixed(this._positionPrecision))}_isPositionInverted(){const{layout:e}=this;return"horizontal-reversed"===e||"vertical"===e}_isHorizontalLayout(){return this.layout.indexOf("horizontal")>-1}_isReversedLayout(){return this.layout.indexOf("reversed")>-1}_normalizeSegmentDetails(e){if(this._isPositionInverted()){const{min:t,max:i}=e;return{min:i,max:t}}return e}_parseInputValue(e,t,i){return this.inputParseFunction?this.inputParseFunction(e,t,i):this.viewModel.defaultInputParseFunction(e)}_formatInputValue(e,t,i){return this.inputFormatFunction?this.inputFormatFunction(e,t,i):this.viewModel.defaultInputFormatFunction(e)}_getAnchorDetails(e){const t=[...this.values].sort(((e,t)=>e-t))[e],i=this.values.indexOf(t);return{index:i,position:this._getPositionOfElement(this._anchorElements[i]),value:t}}_updateAnchorStyle(e,t){const i=this._anchorElements[e];i&&(this._isHorizontalLayout()?i.style.left=`${t}`:i.style.top=`${t}`)}_getStyleForAnchor(e,t,i){const n=this._getPositionStyleForElement(e);if(1===this.values.length)return`${n}`;const s=this._zIndices[t];return`${n}; z-index: ${i?this._zIndexOffset+s:s}`}_getPositionStyleForElement(e){const t=this._positionFromValue(e),i=this._positionToPercent(t);return`${this._isHorizontalLayout()?"left":"top"}: ${i+"%"}`}_getPositionOfElement(e){const t=this._getDimensions(e.offsetParent),i=this._getDimensions(e);return this._isHorizontalLayout()?this._applyPrecisionToPosition(i.left-t.left):this._applyPrecisionToPosition(i.top-t.top)}_updateAnchorValues(e,t){e.forEach(((e,i)=>this._toValue(e,t[i])))}_updateAnchorValuesByDifference(e){const{min:t,max:i,values:n}=this;n.forEach(((n,s)=>this._toValue(s,Math.max(Math.min(n+e,i),t))))}_toValue(e,t){if(o(this.steps)){t=this._getStepValues()[this._getIndexOfNearestStepValue(t)]}this._updateAnchorStyle(e,this._getPositionStyleForElement(t)),this.viewModel.setValue(e,t)}_toPosition(e,t){const i=o(this.steps)?this._getStepValueForAnchorAtPosition(e,t):this._getValueForAnchorAtPosition(e,t);this._updateAnchorStyle(e,this._getPositionStyleForElement(i)),this.viewModel.setValue(e,i)}_getValueForAnchorAtPosition(e,t){const{min:i,max:n}=this._getAnchorBoundsInPixels(e),{min:s,max:o}=this.viewModel.getBoundsForValueAtIndex(e);let r,a,l=null;return this._isPositionInverted()?(r=s,a=o):(r=o,a=s),l=t>n?r:t<i?a:this._valueFromPosition(t),l>o?l=o:l<s&&(l=s),l}_getStepValueForAnchorAtPosition(e,t){const i=this._getStepValues(),n=this._calculateNearestStepPosition(t),s=this._getValueForAnchorAtPosition(e,n);return i[this._getIndexOfNearestStepValue(s)]}_getAnchorBoundsAsPercents(e){const{min:t,max:i}=this._getAnchorBoundsInPixels(e);return{min:this._positionToPercent(t),max:this._positionToPercent(i)}}_getAnchorBoundsInPixels(e){const{_anchorElements:t,_trackHeight:i,_trackWidth:n,effectiveMax:s,effectiveMin:r,thumbsConstrained:a}=this,l=t[e-1],h=t[e+1],d=this._isHorizontalLayout()?n:i,c=o(s)?this._isPositionInverted()?d-this._positionFromValue(s):this._positionFromValue(s):d,m=o(r)?this._isPositionInverted()?d-this._positionFromValue(r):this._positionFromValue(r):0;return a?this._isPositionInverted()?{max:l?this._getPositionOfElement(l):c,min:h?this._getPositionOfElement(h):m}:{max:h?this._getPositionOfElement(h):c,min:l?this._getPositionOfElement(l):m}:{max:c,min:m}}_getIndexOfNearestValue(e){return this.values.indexOf(this.values.reduce(((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t)))}_getCursorPositionFromEvent(e){const t=this._getDimensions(this.trackElement);return this._isHorizontalLayout()?e.clientX-t.left:e.clientY-t.top}_getStepValues(){const{steps:e}=this;if(Array.isArray(e))return e;const{max:t,min:i}=this,n=Math.ceil((t-i)/e),s=[];for(let o=0;o<=n;o++){const n=i+e*o;s.push(n>t?t:n)}return s}_toStep(e,t){const{values:i,viewModel:n}=this,s=i[e],o=this._getStepValues(),r=o.indexOf(s);let a=null;if(r>-1){let i=o[r+t];isNaN(i)&&(i=o[r]);const n=this._positionFromValue(i);a=this._getStepValueForAnchorAtPosition(e,n)}else{a=o[this._getIndexOfNearestStepValue(s)+t]}n.setValue(e,a)}_getIndexOfNearestStepValue(e){const{steps:t}=this;if(!o(t))return null;const i=this._getStepValues(),n=i.reduce(((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t));return i.indexOf(n)}_calculateNearestStepPosition(e){const t=this._valueFromPosition(e),i=this._getIndexOfNearestStepValue(t),n=this._getStepValues();return this._positionFromValue(n[i])}_getTickCounts(e,t){const{mode:i}=t;return"count"===i||"position"===i?e||0:"percent"===i&&100/e||0}_calculateTickPositions(e){return e.map((e=>this._positionFromValue(e)))}_calculateEquidistantTickPositions(e){const{_trackWidth:t,_trackHeight:i}=this,n=this._isHorizontalLayout()?t:i,s=n/(e-1),o=[];if(1===e)return[n/2];for(let r=0;r<e;r++){const e=r*s;e<=n&&o.push(e)}return o}_getDimensions(e){try{return e.getBoundingClientRect()}catch(t){if("object"==typeof t&&null!==t)return new DOMRect(0,0,0,0);throw t}}_emitTrackClickEvent(e){this.emit("track-click",{...e,type:"track-click"})}_emitTickClickEvent(e){this.emit("tick-click",{...e,type:"tick-click"})}_emitMaxChangeEvent(e){this.emit("max-change",{...e,type:"max-change"})}_emitMinChangeEvent(e){this.emit("min-change",{...e,type:"min-change"})}_emitThumbChangeEvent(e){this.emit("thumb-change",{...e,type:"thumb-change"})}_emitThumbClickEvent(e){this.emit("thumb-click",{...e,type:"thumb-click"})}_emitThumbDragEvent(e){this.emit("thumb-drag",{...e,type:"thumb-drag"})}_emitSegmentClickEvent(e){this.emit("segment-click",{...e,type:"segment-click"})}_emitSegmentDragEvent(e){this.emit("segment-drag",{...e,type:"segment-drag"})}_emitRangeLabelClickEvent(e){this.emit(e.type,{...e})}};e([l()],x.prototype,"disabled",void 0),e([l()],x.prototype,"draggableSegmentsEnabled",void 0),e([r("viewModel.effectiveMax")],x.prototype,"effectiveMax",void 0),e([r("viewModel.effectiveMin")],x.prototype,"effectiveMin",void 0),e([l({readOnly:!0})],x.prototype,"effectiveSegmentElements",void 0),e([l()],x.prototype,"extraNodes",void 0),e([l()],x.prototype,"inputCreatedFunction",void 0),e([r("viewModel.inputFormatFunction")],x.prototype,"inputFormatFunction",void 0),e([r("viewModel.inputParseFunction")],x.prototype,"inputParseFunction",void 0),e([l({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],x.prototype,"label",void 0),e([l({readOnly:!0})],x.prototype,"labelElements",void 0),e([l()],x.prototype,"labelInputsEnabled",void 0),e([r("viewModel.labelFormatFunction")],x.prototype,"labelFormatFunction",void 0),e([r("viewModel.labels")],x.prototype,"labels",void 0),e([l()],x.prototype,"labelsVisible",null),e([l({value:"horizontal"})],x.prototype,"layout",null),e([r("viewModel.max")],x.prototype,"max",void 0),e([l({readOnly:!0})],x.prototype,"maxLabelElement",void 0),e([l(),u("geoscene/widgets/Slider/t9n/Slider")],x.prototype,"messages",void 0),e([r("viewModel.min")],x.prototype,"min",void 0),e([l({readOnly:!0})],x.prototype,"minLabelElement",void 0),e([r("viewModel.precision")],x.prototype,"precision",void 0),e([l()],x.prototype,"rangeLabelInputsEnabled",void 0),e([l()],x.prototype,"rangeLabelsVisible",null),e([l({readOnly:!0})],x.prototype,"segmentElements",void 0),e([l()],x.prototype,"snapOnClickEnabled",void 0),e([l({readOnly:!0})],x.prototype,"state",null),e([l()],x.prototype,"steps",void 0),e([l()],x.prototype,"syncedSegmentsEnabled",void 0),e([r("viewModel.thumbsConstrained")],x.prototype,"thumbsConstrained",void 0),e([l()],x.prototype,"thumbCreatedFunction",void 0),e([l({readOnly:!0})],x.prototype,"thumbElements",void 0),e([l()],x.prototype,"tickConfigs",null),e([l({readOnly:!0})],x.prototype,"tickElements",void 0),e([l({readOnly:!0})],x.prototype,"trackElement",void 0),e([r("viewModel.values")],x.prototype,"values",void 0),e([l()],x.prototype,"viewModel",void 0),e([l()],x.prototype,"visibleElements",void 0),e([a("visibleElements")],x.prototype,"castVisibleElements",null),x=e([h(f)],x);const k=x;export{k 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 i}from"../chunks/tslib.es6.js";import{isNone as s}from"../core/maybe.js";import{after as e}from"../core/promiseUtils.js";import{watch as o}from"../core/watchUtils.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 r}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import p from"./Spinner/SpinnerViewModel.js";import"./support/widgetUtils.js";import"../core/Logger.js";import{tsx as l}from"./support/jsxFactory.js";const c={base:"esri-spinner",spinnerStart:"esri-spinner--start",spinnerFinish:"esri-spinner--finish"};let h=class extends a{constructor(i,s){super(i,s),this._animationDelay=500,this._animationPromise=null,this.location=null,this.view=null,this.viewModel=new p,this.visible=!1}initialize(){this.own([o(this,"visible",(i=>this._visibleChange(i)))])}destroy(){this._animationPromise=null}show(i){const{location:s,promise:e}=i;s&&(this.viewModel.location=s),this.visible=!0;const o=()=>this.hide();e&&e.catch((()=>{})).then(o)}hide(){this.visible=!1}render(){const{visible:i}=this,{screenLocation:s}=this.viewModel,e=!!s,o=i&&e,t=!i&&e,r={[c.spinnerStart]:o,[c.spinnerFinish]:t},n=this._getPositionStyles();return l("div",{class:this.classes(c.base,r),styles:n})}_visibleChange(i){if(i)return void(this.viewModel.screenLocationEnabled=!0);const s=e(this._animationDelay);this._animationPromise=s,s.catch((()=>{})).then((()=>{this._animationPromise===s&&(this.viewModel.screenLocationEnabled=!1,this._animationPromise=null)}))}_getPositionStyles(){const{screenLocation:i,view:e}=this.viewModel;if(!e||s(i))return{};const{padding:o}=e;return{left:i.x-o.left+"px",top:i.y-o.top+"px"}}};i([t("viewModel.location")],h.prototype,"location",void 0),i([t("viewModel.view")],h.prototype,"view",void 0),i([r({type:p})],h.prototype,"viewModel",void 0),i([t("viewModel.visible")],h.prototype,"visible",void 0),h=i([n("geoscene.widgets.Spinner")],h);const m=h;export{m as default};
5
+ import{_ as i}from"../chunks/tslib.es6.js";import{isNone as s}from"../core/maybe.js";import{after as e}from"../core/promiseUtils.js";import{watch as o}from"../core/watchUtils.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 r}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import p from"./Spinner/SpinnerViewModel.js";import"./support/widgetUtils.js";import"../core/Logger.js";import{tsx as l}from"./support/jsxFactory.js";const c={base:"geoscene-spinner",spinnerStart:"geoscene-spinner--start",spinnerFinish:"geoscene-spinner--finish"};let h=class extends a{constructor(i,s){super(i,s),this._animationDelay=500,this._animationPromise=null,this.location=null,this.view=null,this.viewModel=new p,this.visible=!1}initialize(){this.own([o(this,"visible",(i=>this._visibleChange(i)))])}destroy(){this._animationPromise=null}show(i){const{location:s,promise:e}=i;s&&(this.viewModel.location=s),this.visible=!0;const o=()=>this.hide();e&&e.catch((()=>{})).then(o)}hide(){this.visible=!1}render(){const{visible:i}=this,{screenLocation:s}=this.viewModel,e=!!s,o=i&&e,t=!i&&e,r={[c.spinnerStart]:o,[c.spinnerFinish]:t},n=this._getPositionStyles();return l("div",{class:this.classes(c.base,r),styles:n})}_visibleChange(i){if(i)return void(this.viewModel.screenLocationEnabled=!0);const s=e(this._animationDelay);this._animationPromise=s,s.catch((()=>{})).then((()=>{this._animationPromise===s&&(this.viewModel.screenLocationEnabled=!1,this._animationPromise=null)}))}_getPositionStyles(){const{screenLocation:i,view:e}=this.viewModel;if(!e||s(i))return{};const{padding:o}=e;return{left:i.x-o.left+"px",top:i.y-o.top+"px"}}};i([t("viewModel.location")],h.prototype,"location",void 0),i([t("viewModel.view")],h.prototype,"view",void 0),i([r({type:p})],h.prototype,"viewModel",void 0),i([t("viewModel.visible")],h.prototype,"visible",void 0),h=i([n("geoscene.widgets.Spinner")],h);const m=h;export{m as default};