@geoscene/core 4.34.11 → 4.34.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 (177) hide show
  1. package/README.md +25 -25
  2. package/WebLinkChart.js +1 -1
  3. package/assets/geoscene/css/main.scss +1 -1
  4. package/assets/geoscene/css/view.scss +1 -1
  5. package/assets/geoscene/themes/base/_colorVariables.scss +1 -1
  6. package/assets/geoscene/themes/base/_core.scss +1 -1
  7. package/assets/geoscene/themes/base/_functions.scss +23 -23
  8. package/assets/geoscene/themes/base/_layout.scss +11 -11
  9. package/assets/geoscene/themes/base/_sizes.scss +130 -130
  10. package/assets/geoscene/themes/base/_type.scss +25 -25
  11. package/assets/geoscene/themes/base/colors/css/brand_colors.css +76 -76
  12. package/assets/geoscene/themes/base/colors/css/calcite_core_colors.css +169 -169
  13. package/assets/geoscene/themes/base/colors/css/calcite_core_colors_dark.css +169 -169
  14. package/assets/geoscene/themes/base/colors/css/calcite_gray_colors.css +43 -43
  15. package/assets/geoscene/themes/base/colors/css/calcite_gray_colors_dark.css +43 -43
  16. package/assets/geoscene/themes/base/colors/css/calcite_highlight_colors.css +43 -43
  17. package/assets/geoscene/themes/base/colors/css/calcite_highlight_colors_dark.css +43 -43
  18. package/assets/geoscene/themes/base/colors/css/calcite_vibrant_colors.css +67 -67
  19. package/assets/geoscene/themes/base/colors/css/calcite_vibrant_colors_dark.css +67 -67
  20. package/assets/geoscene/themes/base/colors/css/complete.css +610 -610
  21. package/assets/geoscene/themes/base/colors/css/scss/calcite_core_colors_dark.scss +285 -285
  22. package/assets/geoscene/themes/base/colors/css/scss/calcite_gray_colors_dark.scss +91 -91
  23. package/assets/geoscene/themes/base/colors/css/scss/calcite_highlight_colors_dark.scss +64 -64
  24. package/assets/geoscene/themes/base/colors/css/scss/calcite_vibrant_colors_dark.scss +124 -124
  25. package/assets/geoscene/themes/base/colors/css/scss/complete.scss +11 -11
  26. package/assets/geoscene/themes/base/colors/patterns_json/calcite_core_colors_dark.css +673 -673
  27. package/assets/geoscene/themes/base/colors/patterns_json/calcite_gray_colors_dark.css +169 -169
  28. package/assets/geoscene/themes/base/colors/patterns_json/calcite_highlight_colors_dark.css +169 -169
  29. package/assets/geoscene/themes/base/colors/patterns_json/calcite_vibrant_colors_dark.css +265 -265
  30. package/assets/geoscene/themes/base/colors/patterns_json/scss/calcite_core_colors_dark.scss +964 -964
  31. package/assets/geoscene/themes/base/colors/patterns_json/scss/calcite_gray_colors_dark.scss +263 -263
  32. package/assets/geoscene/themes/base/colors/patterns_json/scss/calcite_highlight_colors_dark.scss +234 -234
  33. package/assets/geoscene/themes/base/colors/patterns_json/scss/calcite_vibrant_colors_dark.scss +347 -347
  34. package/assets/geoscene/themes/base/colors/patterns_json/scss/complete.scss +11 -11
  35. package/assets/geoscene/themes/base/fonts/cdn.scss +2 -2
  36. package/assets/geoscene/themes/base/icons/fonts/CalciteWebCoreIcons.svg +196 -196
  37. package/assets/geoscene/themes/base/widgets/_AreaMeasurement2D.scss +7 -7
  38. package/assets/geoscene/themes/base/widgets/_AreaMeasurement3D.scss +7 -7
  39. package/assets/geoscene/themes/base/widgets/_DirectLineMeasurement3D.scss +7 -7
  40. package/assets/geoscene/themes/base/widgets/_DistanceMeasurement2D.scss +7 -7
  41. package/assets/geoscene/themes/base/widgets/_Measurement.scss +7 -7
  42. package/assets/geoscene/themes/light/view.scss +9 -9
  43. package/assets/geoscene/views/3d/analysis/images/heading-rotate.ts.svg +10 -10
  44. package/assets/geoscene/views/3d/analysis/images/tilt-rotate.ts.svg +11 -11
  45. package/assets/geoscene/views/3d/webgl-engine/lib/intersectorUtils.svg +117 -117
  46. package/assets/geoscene/views/magnifier/mask.ts.svg +5 -5
  47. package/assets/geoscene/views/magnifier/overlay.ts.svg +36 -36
  48. package/geometry/operators/graphicBufferOperator.d.ts +4 -4
  49. package/identity/IdentityModal.js +1 -1
  50. package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
  51. package/package.json +1 -1
  52. package/portal/schemas/definitions.js +1 -1
  53. package/support/actions/actionUtils.js +1 -1
  54. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  55. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  56. package/views/interactive/tooltip/content/TooltipContent.js +1 -1
  57. package/widgets/Attachments.js +1 -1
  58. package/widgets/BasemapGallery.js +1 -1
  59. package/widgets/BasemapLayerList.js +1 -1
  60. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  61. package/widgets/BasemapToggle.js +1 -1
  62. package/widgets/BatchAttributeForm.js +1 -1
  63. package/widgets/Bookmarks.js +1 -1
  64. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
  65. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
  66. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  67. package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
  68. package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
  69. package/widgets/BuildingExplorer.js +1 -1
  70. package/widgets/CatalogLayerList.js +1 -1
  71. package/widgets/Compass.js +1 -1
  72. package/widgets/CoordinateConversion.js +1 -1
  73. package/widgets/Daylight.js +1 -1
  74. package/widgets/DirectionalPad.js +1 -1
  75. package/widgets/Directions.js +1 -1
  76. package/widgets/Editor/components/FeatureList.js +1 -1
  77. package/widgets/Editor/components/FooterActions.js +1 -1
  78. package/widgets/Editor/components/MergeFeaturesList.js +1 -1
  79. package/widgets/Editor/components/Notices.js +1 -1
  80. package/widgets/Editor/components/PanelContent.js +1 -1
  81. package/widgets/Editor/components/PendingFeatureList.js +1 -1
  82. package/widgets/Editor/components/Prompt.js +1 -1
  83. package/widgets/Editor/components/Settings.js +1 -1
  84. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  85. package/widgets/Editor/components/UploadDetails.js +1 -1
  86. package/widgets/Editor.js +1 -1
  87. package/widgets/ElevationProfile/components/LegendItem.js +1 -1
  88. package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
  89. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  90. package/widgets/ElevationProfile.js +1 -1
  91. package/widgets/Expand.js +1 -1
  92. package/widgets/Feature/FeatureExpression.js +1 -1
  93. package/widgets/Feature/FeatureMedia.js +1 -1
  94. package/widgets/Feature/FeatureRelationship.js +1 -1
  95. package/widgets/Feature/FeatureUtilityNetworkAssociationList.js +1 -1
  96. package/widgets/Feature/FeatureUtilityNetworkAssociations.js +1 -1
  97. package/widgets/Feature.js +1 -1
  98. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
  99. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationItemList.js +1 -1
  100. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationSettings.js +1 -1
  101. package/widgets/FeatureForm.js +1 -1
  102. package/widgets/FeatureTable/support/tableUtils.js +1 -1
  103. package/widgets/FeatureTable.js +1 -1
  104. package/widgets/FeatureTemplates.js +1 -1
  105. package/widgets/Features/FeaturesDrillIn.js +1 -1
  106. package/widgets/Features.js +1 -1
  107. package/widgets/FloorFilter.js +1 -1
  108. package/widgets/Fullscreen.js +1 -1
  109. package/widgets/Home.js +1 -1
  110. package/widgets/LayerList/LayerListItem.js +1 -1
  111. package/widgets/LayerList.js +1 -1
  112. package/widgets/Legend/styles/card/CardView.js +1 -1
  113. package/widgets/LineOfSight.js +1 -1
  114. package/widgets/Locate.js +1 -1
  115. package/widgets/NavigationToggle.js +1 -1
  116. package/widgets/OrientedImageryViewer/components/Alert.js +1 -1
  117. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +1 -1
  118. package/widgets/OrientedImageryViewer/components/ImageMeasurementWidget.js +1 -1
  119. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  120. package/widgets/OrientedImageryViewer/components/ImageViewer.js +1 -1
  121. package/widgets/OrientedImageryViewer/components/NavigationActions.js +1 -1
  122. package/widgets/OrientedImageryViewer/components/NavigationSettings.js +1 -1
  123. package/widgets/OrientedImageryViewer/components/NavigationUI360.js +1 -1
  124. package/widgets/OrientedImageryViewer/components/SequentialNavigationUI.js +1 -1
  125. package/widgets/OrientedImageryViewer/components/SketchTools.js +1 -1
  126. package/widgets/OrientedImageryViewer/components/VideoEnhancementTools.js +1 -1
  127. package/widgets/OrientedImageryViewer.js +1 -1
  128. package/widgets/PanoramicVideoViewer.js +1 -1
  129. package/widgets/PanoramicViewer.js +1 -1
  130. package/widgets/Print.js +1 -1
  131. package/widgets/ScaleRangeSlider.js +1 -1
  132. package/widgets/Search/SearchResultRenderer.js +1 -1
  133. package/widgets/Search.js +1 -1
  134. package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
  135. package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
  136. package/widgets/ShadowCast/components/ThresholdConfigurator.js +1 -1
  137. package/widgets/ShadowCast.js +1 -1
  138. package/widgets/Sketch/support/ResponsiveToolbar/OverflowGroup.js +1 -1
  139. package/widgets/Sketch/support/ResponsiveToolbar/ResponsiveToolbar.js +1 -1
  140. package/widgets/Sketch/support/ResponsiveToolbar/SplitButton.js +1 -1
  141. package/widgets/Sketch.js +1 -1
  142. package/widgets/Slice.js +1 -1
  143. package/widgets/TableList.js +1 -1
  144. package/widgets/TimeSlider.js +1 -1
  145. package/widgets/TimeZoneLabel.js +1 -1
  146. package/widgets/Track.js +1 -1
  147. package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js +1 -1
  148. package/widgets/UtilityNetworkAssociations.js +1 -1
  149. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  150. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeaturesDrillIn.js +1 -1
  151. package/widgets/UtilityNetworkTrace.js +1 -1
  152. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  153. package/widgets/ValuePicker/ValuePickerCombobox.js +1 -1
  154. package/widgets/ValuePicker/ValuePickerSlider.js +1 -1
  155. package/widgets/ValuePicker.js +1 -1
  156. package/widgets/VideoPlayer/components/MetadataSection.js +1 -1
  157. package/widgets/VideoPlayer/components/PlayerActionsGroup.js +1 -1
  158. package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
  159. package/widgets/VideoPlayer/components/SettingsButton.js +1 -1
  160. package/widgets/VideoPlayer.js +1 -1
  161. package/widgets/Weather/LabeledSlider.js +1 -1
  162. package/widgets/Weather.js +1 -1
  163. package/widgets/Zoom.js +1 -1
  164. package/widgets/support/ColorPicker.js +1 -1
  165. package/widgets/support/FilterBuilder.js +1 -1
  166. package/widgets/support/FilterCondition.js +1 -1
  167. package/widgets/support/GridControls.js +1 -1
  168. package/widgets/support/LabeledSwitch.js +1 -1
  169. package/widgets/support/MeasurementWidgetContent.js +1 -1
  170. package/widgets/support/SelectionList.js +1 -1
  171. package/widgets/support/SelectionToolbar.js +1 -1
  172. package/widgets/support/SketchTooltipControls.js +1 -1
  173. package/widgets/support/SnappingControls.js +1 -1
  174. package/widgets/support/TimezonePicker.js +1 -1
  175. package/widgets/support/UnitSelect.js +1 -1
  176. package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationList.js +1 -1
  177. package/widgets/support/componentsUtils.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.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{isSome as r}from"../../../../core/arrayUtils.js";import{destroyMaybe as t}from"../../../../core/maybe.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import{subclass as o}from"../../../../core/accessorSupport/decorators/subclass.js";import s from"../../../Widget.js";import i from"./MeasuredContentGroup.js";import l from"./OverflowGroup.js";import n from"./ResponsiveToolbarManager.js";import{SplitButton as d}from"./SplitButton.js";import{loadCalciteComponents as c}from"../../../support/componentsUtils.js";import"../../../support/widgetUtils.js";import{tsx as p}from"../../../support/jsxFactory.js";import"@arcgis/toolkit/dom";const m="geoscene-responsive-toolbar",u={rulerBase:`${m}__ruler`,rulerBarHorizontal:`${m}__ruler--bar`,rulerBarVertical:`${m}__ruler--bar--vertical`,rulerPadVertical:`${m}__ruler--pad--vertical`,rulerPadHorizontal:`${m}__ruler--pad--horizontal`,bar:`${m}__bar`,barHorizontal:`${m}__bar--horizontal`,barVertical:`${m}__bar--vertical`,pad:`${m}__pad`,padVertical:`${m}__pad--vertical`,padHorizontal:`${m}__pad--horizontal`};let h=class extends s{constructor(e){super(e),this.scale="m",this.barStyle="floating",this._measurementManager=new n,this._managedWidgets=new Map}loadDependencies(){return c({"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar")})}destroy(){this._measurementManager=t(this._measurementManager),this._managedWidgets.forEach(e=>e.destroy()),this._managedWidgets.clear()}set layout(e){const r=this._get("layout");this._set("layout",e),this._measurementManager&&(this._measurementManager.layout=e),r!==e&&this.scheduleRender()}get _barClasses(){const e="docked"===this.barStyle,r="vertical"===this.layout;return{[u.barHorizontal]:e&&!r,[u.barVertical]:e&&r,[u.bar]:e,[u.padHorizontal]:!e&&!r,[u.padVertical]:!e&&r,[u.pad]:!e}}render(){const{layout:e,scale:r,barStyle:t}=this,a={layout:e,scale:r,expandDisabled:!0,key:"measured-toolbar"},o="docked"===t?"vertical"===e?u.rulerBarVertical:u.rulerBarHorizontal:"horizontal"===e?u.rulerPadHorizontal:u.rulerPadVertical;return p("div",null,p("div",{afterCreate:e=>{this._measurementManager?.connect(e)},class:this.classes(u.rulerBase,o)}),p("calcite-action-bar",{...a,classes:this._barClasses,floating:"docked"!==t,overflowActionsDisabled:!0},this._renderChildren()))}_renderChildren(){if(!this.children)return;const e=this.children.filter(e=>void 0!==e.properties?.key&&"group-kind"in e.properties),t=new Set,a=e.map(e=>{const r=e.properties,a=r.key;t.add(a);const o="docked"===this.barStyle?r.slot??void 0:void 0,s=r.priority??0,n=r["group-kind"]??"overflow-group",c=r["allow-collapse"]??!0,p=this._managedWidgets.get(a);if(p)return p.children=e.children,p.priority=s,"allowCollapse"in p&&(p.allowCollapse=c),p.slot=o,p.layout=this.layout,p.scale=this.scale,p.measurementManager=this._measurementManager,p;const m={scale:this.scale,priority:s,measurementManager:this._measurementManager,children:e.children,slot:o,layout:this.layout};switch(n){case"split-button":{const e=new d({...m,allowCollapse:c});return this._managedWidgets.set(a,e),e}case"overflow-group":{const e=new l({...m,allowCollapse:c});return this._managedWidgets.set(a,e),e}case"measured-content":{const e=new i({...m});return this._managedWidgets.set(a,e),e}}}).filter(r);return Array.from(this._managedWidgets.keys()).filter(e=>!t.has(e)).forEach(e=>{this._managedWidgets.get(e)?.destroy(),this._managedWidgets.delete(e)}),this._measurementManager?.allocate(),a.map(e=>e.render())}};e([a()],h.prototype,"scale",void 0),e([a({value:"horizontal"})],h.prototype,"layout",null),e([a()],h.prototype,"barStyle",void 0),e([a()],h.prototype,"_measurementManager",void 0),e([a()],h.prototype,"_managedWidgets",void 0),e([a()],h.prototype,"_barClasses",null),h=e([o("geoscene.widgets.Sketch.support.ResponsiveToolbar.ResponsiveToolbar")],h);export{h as default};
5
+ import{__decorate as e}from"tslib";import{isSome as r}from"../../../../core/arrayUtils.js";import{destroyMaybe as t}from"../../../../core/maybe.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import{subclass as o}from"../../../../core/accessorSupport/decorators/subclass.js";import s from"../../../Widget.js";import i from"./MeasuredContentGroup.js";import l from"./OverflowGroup.js";import n from"./ResponsiveToolbarManager.js";import{SplitButton as d}from"./SplitButton.js";import{loadCalciteComponents as c}from"../../../support/componentsUtils.js";import"../../../support/widgetUtils.js";import{tsx as p}from"../../../support/jsxFactory.js";import"@arcgis/toolkit/dom";const m="geoscene-responsive-toolbar",u={rulerBase:`${m}__ruler`,rulerBarHorizontal:`${m}__ruler--bar`,rulerBarVertical:`${m}__ruler--bar--vertical`,rulerPadVertical:`${m}__ruler--pad--vertical`,rulerPadHorizontal:`${m}__ruler--pad--horizontal`,bar:`${m}__bar`,barHorizontal:`${m}__bar--horizontal`,barVertical:`${m}__bar--vertical`,pad:`${m}__pad`,padVertical:`${m}__pad--vertical`,padHorizontal:`${m}__pad--horizontal`};let h=class extends s{constructor(e){super(e),this.scale="m",this.barStyle="floating",this._measurementManager=new n,this._managedWidgets=new Map}loadDependencies(){return c({"action-bar":()=>import("@geoscene/calcite-components/dist/components/calcite-action-bar")})}destroy(){this._measurementManager=t(this._measurementManager),this._managedWidgets.forEach(e=>e.destroy()),this._managedWidgets.clear()}set layout(e){const r=this._get("layout");this._set("layout",e),this._measurementManager&&(this._measurementManager.layout=e),r!==e&&this.scheduleRender()}get _barClasses(){const e="docked"===this.barStyle,r="vertical"===this.layout;return{[u.barHorizontal]:e&&!r,[u.barVertical]:e&&r,[u.bar]:e,[u.padHorizontal]:!e&&!r,[u.padVertical]:!e&&r,[u.pad]:!e}}render(){const{layout:e,scale:r,barStyle:t}=this,a={layout:e,scale:r,expandDisabled:!0,key:"measured-toolbar"},o="docked"===t?"vertical"===e?u.rulerBarVertical:u.rulerBarHorizontal:"horizontal"===e?u.rulerPadHorizontal:u.rulerPadVertical;return p("div",null,p("div",{afterCreate:e=>{this._measurementManager?.connect(e)},class:this.classes(u.rulerBase,o)}),p("calcite-action-bar",{...a,classes:this._barClasses,floating:"docked"!==t,overflowActionsDisabled:!0},this._renderChildren()))}_renderChildren(){if(!this.children)return;const e=this.children.filter(e=>void 0!==e.properties?.key&&"group-kind"in e.properties),t=new Set,a=e.map(e=>{const r=e.properties,a=r.key;t.add(a);const o="docked"===this.barStyle?r.slot??void 0:void 0,s=r.priority??0,n=r["group-kind"]??"overflow-group",c=r["allow-collapse"]??!0,p=this._managedWidgets.get(a);if(p)return p.children=e.children,p.priority=s,"allowCollapse"in p&&(p.allowCollapse=c),p.slot=o,p.layout=this.layout,p.scale=this.scale,p.measurementManager=this._measurementManager,p;const m={scale:this.scale,priority:s,measurementManager:this._measurementManager,children:e.children,slot:o,layout:this.layout};switch(n){case"split-button":{const e=new d({...m,allowCollapse:c});return this._managedWidgets.set(a,e),e}case"overflow-group":{const e=new l({...m,allowCollapse:c});return this._managedWidgets.set(a,e),e}case"measured-content":{const e=new i({...m});return this._managedWidgets.set(a,e),e}}}).filter(r);return Array.from(this._managedWidgets.keys()).filter(e=>!t.has(e)).forEach(e=>{this._managedWidgets.get(e)?.destroy(),this._managedWidgets.delete(e)}),this._measurementManager?.allocate(),a.map(e=>e.render())}};e([a()],h.prototype,"scale",void 0),e([a({value:"horizontal"})],h.prototype,"layout",null),e([a()],h.prototype,"barStyle",void 0),e([a()],h.prototype,"_measurementManager",void 0),e([a()],h.prototype,"_managedWidgets",void 0),e([a()],h.prototype,"_barClasses",null),h=e([o("geoscene.widgets.Sketch.support.ResponsiveToolbar.ResponsiveToolbar")],h);export{h 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.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";import r from"../../../Widget.js";import{WellKnownSizes as i,Icons as n}from"./responsiveToolbarUtils.js";import{ToolbarGroupBase as s}from"./ToolbarGroupBase.js";import{loadCalciteComponents as a}from"../../../support/componentsUtils.js";import"../../../support/widgetUtils.js";import{messageBundle as l}from"../../../support/decorators/messageBundle.js";import{tsx as p,tsxFragment as c}from"../../../support/jsxFactory.js";import"@arcgis/toolkit/dom";const m={splitButtonBase:`${"geoscene-split-button"}--split-part`};let u=class extends(s(r)){constructor(t){super(t),this.allowCollapse=!0,this.messagesCommon=null}loadDependencies(){return a({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group"),"action-menu":()=>import("@esri/calcite-components/dist/components/calcite-action-menu")})}static{this.vnodeSelector="calcite-action-group"}get minimumLength(){const t=this.actionChildren;return t.length?1===t.length?i.action[this.scale]+i.groupSeparator:this.allowCollapse?i.action[this.scale]+i.splitButtonPart[this.layout][this.scale]+i.groupSeparator:i.action[this.scale]*t.length+i.groupSeparator:0}get lengthOptions(){const{actionChildren:t,minimumLength:o,layout:e,scale:r,priority:n,allowCollapse:s}=this;if(t.length<2||n<0||!s)return[o];const a=i.groupSeparator+i.action[r]*t.length;return[i.groupSeparator+i.action[r]+i.splitButtonPart[e][r],a]}render(){if(!this.actionChildren.length)return p(c,null,void 0);const{actionChildren:t,minimumLength:o,budgetedLength:e,layout:r,slot:i,allowCollapse:n}=this,s=!n||t.length<2||e>o;return p("calcite-action-group",{key:"split-button-group",layout:r,onclick:t=>this._handleClick(t.target),slot:i},s?this._renderUnSplit():this._renderSplit())}_renderSplit(){const{activeChildElement:t,layout:o,actionChildren:e,scale:r,messagesCommon:i}=this,s=t??e.at(0);if(!s)return;const a=e.filter(t=>t!==s);return[this._renderManagedAction(s),p("calcite-action-menu",{key:"split-button-dropdown",label:i.more,overlayPositioning:"fixed",placement:"horizontal"===o?"bottom-end":"right-end"},p("calcite-action",{class:`${m.splitButtonBase}--${o}--${this.scale}`,compact:"horizontal"===o,icon:n.splitButton[o],key:"split-button-dropdown-trigger",scale:r,slot:"trigger",text:i.more}),a?.map(t=>this._renderManagedAction(t)))]}_renderUnSplit(){return this.actionChildren.map(t=>this._renderManagedAction(t))}_renderManagedAction(t){return p("calcite-action",{...t?.properties,"data-action-key":t?.properties?.key,text:t?.properties?.text??""})}};t([o()],u.prototype,"minimumLength",null),t([o()],u.prototype,"allowCollapse",void 0),t([o()],u.prototype,"lengthOptions",null),t([o(),l("geoscene/t9n/common")],u.prototype,"messagesCommon",void 0),u=t([e("geoscene.widgets.Sketch.support.ResponsiveToolbar.SplitButton")],u);export{u as SplitButton};
5
+ import{__decorate as t}from"tslib";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";import r from"../../../Widget.js";import{WellKnownSizes as i,Icons as n}from"./responsiveToolbarUtils.js";import{ToolbarGroupBase as s}from"./ToolbarGroupBase.js";import{loadCalciteComponents as a}from"../../../support/componentsUtils.js";import"../../../support/widgetUtils.js";import{messageBundle as l}from"../../../support/decorators/messageBundle.js";import{tsx as p,tsxFragment as c}from"../../../support/jsxFactory.js";import"@arcgis/toolkit/dom";const m={splitButtonBase:`${"geoscene-split-button"}--split-part`};let u=class extends(s(r)){constructor(t){super(t),this.allowCollapse=!0,this.messagesCommon=null}loadDependencies(){return a({action:()=>import("@geoscene/calcite-components/dist/components/calcite-action"),"action-group":()=>import("@geoscene/calcite-components/dist/components/calcite-action-group"),"action-menu":()=>import("@geoscene/calcite-components/dist/components/calcite-action-menu")})}static{this.vnodeSelector="calcite-action-group"}get minimumLength(){const t=this.actionChildren;return t.length?1===t.length?i.action[this.scale]+i.groupSeparator:this.allowCollapse?i.action[this.scale]+i.splitButtonPart[this.layout][this.scale]+i.groupSeparator:i.action[this.scale]*t.length+i.groupSeparator:0}get lengthOptions(){const{actionChildren:t,minimumLength:o,layout:e,scale:r,priority:n,allowCollapse:s}=this;if(t.length<2||n<0||!s)return[o];const a=i.groupSeparator+i.action[r]*t.length;return[i.groupSeparator+i.action[r]+i.splitButtonPart[e][r],a]}render(){if(!this.actionChildren.length)return p(c,null,void 0);const{actionChildren:t,minimumLength:o,budgetedLength:e,layout:r,slot:i,allowCollapse:n}=this,s=!n||t.length<2||e>o;return p("calcite-action-group",{key:"split-button-group",layout:r,onclick:t=>this._handleClick(t.target),slot:i},s?this._renderUnSplit():this._renderSplit())}_renderSplit(){const{activeChildElement:t,layout:o,actionChildren:e,scale:r,messagesCommon:i}=this,s=t??e.at(0);if(!s)return;const a=e.filter(t=>t!==s);return[this._renderManagedAction(s),p("calcite-action-menu",{key:"split-button-dropdown",label:i.more,overlayPositioning:"fixed",placement:"horizontal"===o?"bottom-end":"right-end"},p("calcite-action",{class:`${m.splitButtonBase}--${o}--${this.scale}`,compact:"horizontal"===o,icon:n.splitButton[o],key:"split-button-dropdown-trigger",scale:r,slot:"trigger",text:i.more}),a?.map(t=>this._renderManagedAction(t)))]}_renderUnSplit(){return this.actionChildren.map(t=>this._renderManagedAction(t))}_renderManagedAction(t){return p("calcite-action",{...t?.properties,"data-action-key":t?.properties?.key,text:t?.properties?.text??""})}};t([o()],u.prototype,"minimumLength",null),t([o()],u.prototype,"allowCollapse",void 0),t([o()],u.prototype,"lengthOptions",null),t([o(),l("geoscene/t9n/common")],u.prototype,"messagesCommon",void 0),u=t([e("geoscene.widgets.Sketch.support.ResponsiveToolbar.SplitButton")],u);export{u as SplitButton};
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.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import"../intl.js";import{isSome as t}from"../core/arrayUtils.js";import{handlesGroup as o}from"../core/handleUtils.js";import i from"../core/Logger.js";import{removeMaybe as s,destroyMaybe as l}from"../core/maybe.js";import{ignoreAbortErrors as r}from"../core/promiseUtils.js";import{watch as n,when as a,syncAndInitial as p}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import u from"../views/interactive/sketch/SketchValueOptions.js";import h from"./Widget.js";import v from"./Sketch/SketchViewModel.js";import{VisibleElements as m}from"./Sketch/VisibleElements.js";import g from"./Sketch/support/ResponsiveToolbar/ResponsiveToolbar.js";import{loadCalciteComponents as f}from"./support/componentsUtils.js";import _ from"./support/SelectionToolbar.js";import y from"./support/SketchTooltipControls.js";import b from"./support/SnappingControls.js";import"./support/widgetUtils.js";import{messageBundle as w}from"./support/decorators/messageBundle.js";import{vmEvent as T}from"./support/decorators/vmEvent.js";import{tsx as M}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import C from"./support/SelectionToolbar/VisibleElements.js";import O from"./support/SketchTooltipControls/VisibleElements.js";import{substitute as S}from"../intl/substitute.js";const k="geoscene-sketch",P={base:k,vertical:`${k}--vertical`,docked:`${k}-bar`,floating:`${k}-pad`,chipHorizontal:`${k}__selection-count-chip--horizontal`,chipVertical:`${k}__selection-count-chip--vertical`,chipVerticalSmall:`${k}__selection-count-chip--vertical--s`,popoverWrapper:`${k}__popover-wrapper`},I={point:"pin",polyline:"line",polygon:"polygon",rectangle:"rectangle",circle:"circle",multipoint:"pins",mesh:"i3d-building",freehandPolygon:"freehand-area",freehandPolyline:"freehand",text:"add-text"};let R=class extends h{constructor(e,t){super(e,t),this._activeCustomToolOptions=null,this._selectionToolbar=null,this._viewModelHandlesGroup=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.customToolOptions=null,this.customActions=null,this.toolbarKind="floating",this.contextualToolLocation="separate",this.groupCollapsePriorities=null,this.groupAllowCollapseOptions=null,this.messages=null,this.messagesCommon=null,this.visibleElements=new m,this._defaultViewModel=null,this._calcitePopoverReferenceElement=null,this._relativeLocation="top",this._popoverOpen=!1,this._activateCreateTool=this._activateCreateTool.bind(this),this.viewModel=e?.viewModel||(this._defaultViewModel=new v({creationMode:e?.creationMode??"continuous"}))}initialize(){const{layer:e,view:t}=this,i="2d"===t?.type,l=new _({persistSelection:!1,visibleElements:new C({chip:!1,lassoTool:i,operationTypeControls:!1,pan:!1,pointTool:!1,rectangleTool:i}),view:t,sources:e?[e]:null,scale:this.scale});this.addHandles([n(()=>this.viewModel,e=>{this._viewModelHandlesGroup=s(this._viewModelHandlesGroup),e&&(this._viewModelHandlesGroup=o([e.on("create",()=>this.scheduleRender()),e.on("update",()=>this.scheduleRender()),e.on("delete",e=>this.emit("delete",e)),e.on("undo",()=>this.scheduleRender()),e.on("redo",()=>this.scheduleRender()),n(()=>e.layer,e=>{this._selectionToolbar&&(this._selectionToolbar.sources=e?[e]:null)}),n(()=>e.view,e=>{this._selectionToolbar&&(this._selectionToolbar.view=e)}),n(()=>e.state,()=>this.notifyChange("state"))]))},p),a(()=>l.activeOperation,()=>this.viewModel.cancel()),l.on("complete",e=>this._onSelectionOperationComplete(e)),n(()=>{const{view:e,visibleElements:{selectionTools:t}}=this;return{lassoTool:"3d"!==e?.type&&!!t?.["lasso-selection"],rectangleTool:"3d"!==e?.type&&!!t?.["rectangle-selection"]}},e=>{Object.assign(l.visibleElements,e)},p)]),this._selectionToolbar=l}loadDependencies(){return f({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover")})}destroy(){this._selectionToolbar?.destroy(),this._viewModelHandlesGroup=s(this._viewModelHandlesGroup)}get activeTool(){const e=this._selectionToolbar?.activeOperation;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}const t=this._effectiveAvailableCreateTools,{activeTool:o,activeCreateToolDrawMode:i}=this.viewModel;return"polygon"===o&&"freehand"===i&&t?.includes("freehandPolygon")?"freehandPolygon":"polyline"===o&&"freehand"===i&&t?.includes("freehandPolyline")?"freehandPolyline":this.viewModel.activeTool}get activeTooltip(){return this.viewModel.activeTooltip}get createGraphic(){return this.viewModel.createGraphic}get creationMode(){return this.viewModel.creationMode}set creationMode(e){this.viewModel.creationMode=e}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(e){this.viewModel.defaultCreateOptions=e}get defaultUpdateOptions(){return this.viewModel.defaultUpdateOptions}set defaultUpdateOptions(e){this.viewModel.defaultUpdateOptions=e}get icon(){return"pencil"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}set layout(e){this._set("layout",e),this._selectionToolbar&&(this._selectionToolbar.layout=e)}set scale(e){this._set("scale",e),this._selectionToolbar&&(this._selectionToolbar.scale=e)}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get state(){return this._selectionToolbar?.activeOperation?"active":this.viewModel.state}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get updateGraphics(){return this.viewModel.updateGraphics}get valueOptions(){return this.viewModel.valueOptions}set valueOptions(e){this.viewModel.valueOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set viewModel(e){const t=this._get("viewModel");e!==t&&(t&&t===this._defaultViewModel&&l(t),this._set("viewModel",e))}get _effectiveAvailableCreateTools(){const{availableCreateTools:e,view:t,visibleElements:o}=this,i=e?.filter(e=>!!o.createTools?.[e]);return"3d"===t?.type?i?.filter(e=>"multipoint"!==e):i}create(e,t,o){const i=o?.createOptions??t;return this._activeCustomToolOptions=o,r(this.viewModel.create(e,i))}update(e,t){return r(this.viewModel.update(e,t))}complete(){this.viewModel.complete()}cancel(){this._selectionToolbar?.cancel(),this.viewModel.cancel(),this._activeCustomToolOptions=null}undo(){this.viewModel.undo(),this.view?.focus()}redo(){this.viewModel.redo(),this.view?.focus()}delete(){this.viewModel.delete()}duplicate(){return this.viewModel.duplicate()}dismissFloatingElements(){this._popoverOpen=!1}render(){const{toolbarKind:e,layout:t,scale:o}=this,i=this.customActions?.filter(e=>"selection-toolbar"===e.position);return M("div",null,M("div",{classes:{[P.base]:!0,[P.floating]:"floating"===e,[P.docked]:"docked"===e,[P.vertical]:"vertical"===t}},M(g,{barStyle:e,layout:t,scale:o},this._renderSelectionSetItemGroupInline(),M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("selectionTools")??!0,"group-kind":"split-button",key:"selection-split-button",priority:this.groupCollapsePriorities?.get("selectionTools")??0},this._renderDefaultSelectionButton(),this._selectionToolbar?.render(),i?.map(e=>this._renderToolbarItem(e))),this._renderCreateToolActionGroup(),this._renderUndoRedoMenuItemGroup(),this._renderSettingsMenuItemGroup()),this._renderSelectionSetToolbar(),this._renderSettingsMenuPopover()))}_renderSettingsMenuPopover(){const{messagesCommon:e,snappingOptions:t,view:o,viewModel:i,visibleElements:s}=this;if(!this._calcitePopoverReferenceElement)return;const l={directionModePicker:s.directionModePicker,labelsToggle:s.labelsToggle,tooltipsToggle:s.tooltipsToggle},r="horizontal"===this.layout?"top"===this._relativeLocation?"bottom-end":"top-end":"right-end";return M("calcite-popover",{closable:!0,heading:e.settings,label:e.settings,open:this._popoverOpen,overlayPositioning:"fixed",placement:r,referenceElement:this._calcitePopoverReferenceElement,scale:this.scale,onCalcitePopoverBeforeClose:()=>this._popoverOpen=!1,onCalcitePopoverBeforeOpen:e=>this._remeasurePopoverSizes(e.currentTarget),onCalcitePopoverClose:()=>this._refocusOnView()},M("div",{class:P.popoverWrapper},Object.values(l).includes(!0)?M(y,{sketchOptions:i.sketchOptions,viewType:o?.type,visibleElements:new O(l)}):void 0,s.snappingControls&&o&&t?M(b,{snappingManager:this.viewModel.snappingManager,snappingOptions:t,view:o,visibleElements:s.snappingControlsElements}):void 0))}_renderSelectionSetToolbar(){if("separate"!==this.contextualToolLocation)return;const e=this._renderSelectionSetItemGroup();return e?.length?M(g,{barStyle:this.toolbarKind,layout:this.layout,scale:this.scale},e):void 0}_renderSelectionSetItemGroupInline(){return"separate"===this.contextualToolLocation?[]:this._renderSelectionSetItemGroup()}_renderUndoRedoMenuItemGroup(){return M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("undoRedo")??!0,"group-kind":"split-button",key:"undo-redo-menu",priority:this.groupCollapsePriorities?.get("undoRedo")??10,slot:"actions-end"},this._renderUndoButton(),this._renderRedoButton())}_renderSettingsMenuItemGroup(){const e=[],o=[];this.customActions?.forEach(t=>{"settings-before"===t.position?o.push(t):"settings-after"===t.position&&e.push(t)});const i=[...o.map(e=>this._renderToolbarItem(e)),this._renderSettingsMenuButton(),...e.map(e=>this._renderToolbarItem(e))].filter(t);if(i.length)return M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("settings")??!1,"group-kind":"overflow-group",key:"settings-menu",priority:this.groupCollapsePriorities?.get("settings")??1e3,slot:"actions-end"},i)}_renderSelectionSetItemGroup(){if(!this.updateGraphics.length)return[];const e="inline-end"===this.contextualToolLocation?"actions-end":void 0,t=this.customActions?.filter(e=>"before-selection-set"===e.position),o=this.customActions?.filter(e=>"after-selection-set"===e.position),i=this.groupCollapsePriorities?.get("selectionSet")??100;return[M("div",{"group-kind":"measured-content",key:"selection-count-chip-group",priority:i,slot:e},this._renderFeatureCountChip()),M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("selectionSet")??!1,"group-kind":"overflow-group",key:"selection-set-tool-group",priority:i,slot:e},t?.map(e=>this._renderToolbarItem(e)),this._renderDuplicateButton(),this._renderDeleteButton(),o?.map(e=>this._renderToolbarItem(e)))]}_renderDefaultSelectionButton(){if(!this.viewModel.updateOnGraphicClick)return[];const{messages:e,state:t}=this;return this._renderToolbarItem({id:"pointer-select",text:e.selectFeature,icon:"cursor",onclick:this._activateDefaultSelectTool,active:"ready"===t})}_renderCreateToolActionGroup(){const e=this._effectiveAvailableCreateTools?.flatMap(e=>this._renderBuiltInCreateToolItem(e))??[],t=this.customToolOptions?.flatMap(e=>this._renderCustomToolItem(e))??[];return M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("createTools")??!0,"group-kind":"overflow-group",key:"create-tools-group",priority:this.groupCollapsePriorities?.get("createTools")??100},e,t)}_renderBuiltInCreateToolItem(e){return this._renderToolbarItem({id:`${e}-button`,text:this.messages.draw[e],icon:I[e],onclick:()=>this._activateCreateTool(e),active:this.activeTool===e&&!this._activeCustomToolOptions})}_renderCustomToolItem(e){const{toolKey:t}=e;return this._renderToolbarItem({id:`custom-${e.toolKey}`,text:e.label,icon:e.icon,onclick:()=>this._activateCreateTool(e.toolName,null,e),active:this._activeCustomToolOptions?.toolKey===t})}_renderUndoButton(){return this.visibleElements.undoRedoMenu?this._renderToolbarItem({id:"undo-button",text:this.messages.undo,icon:"undo",disabled:!this.viewModel.canUndo(),onclick:this.undo,flipRTL:!0}):[]}_renderRedoButton(){return this.visibleElements.undoRedoMenu?this._renderToolbarItem({id:"redo-button",text:this.messages.redo,icon:"redo",disabled:!this.viewModel.canRedo(),onclick:this.redo,flipRTL:!0}):[]}_renderSettingsMenuButton(){return this.visibleElements.settingsMenu?this._renderToolbarItem({id:"settings-menu-action",text:this.messagesCommon.settings,icon:"gear",active:this._popoverOpen,onclick:()=>this._popoverOpen=!this._popoverOpen,afterCreate:e=>this._calcitePopoverReferenceElement=e,afterUpdate:e=>this._calcitePopoverReferenceElement=e,afterRemoved:()=>this._calcitePopoverReferenceElement=null}):[]}_renderFeatureCountChip(){if(!this.visibleElements.selectionCountLabel)return[];const{layout:e,messages:t,scale:o,id:i,updateGraphics:{length:s}}=this,l=S(t.selectedCount,{count:s}),r="s"===o?99:999,n=s>r?S(t.selectedCountTruncated,{truncated:r}):s,a="s"===o&&"vertical"===e,p=a?`${i}-selection-chip-small`:`${i}-selection-chip`;return[a?M("span",{classes:{[P.chipVertical]:!0,[P.chipVerticalSmall]:"s"===this.scale},id:p,tabIndex:0,title:l},n):M("calcite-chip",{appearance:"outline",class:"horizontal"===e?P.chipHorizontal:P.chipVertical,id:p,kind:"brand",label:l,scale:"l"===o?"m":"s",tabIndex:0,title:"vertical"===e?l:void 0},"vertical"===e?n:l)]}_renderDuplicateButton(){if(!this.visibleElements.duplicateButton)return[];const{messages:e}=this;return this._renderToolbarItem({id:"duplicate",text:this.updateGraphics.length>1?e.duplicateFeatures:e.duplicateFeature,icon:"copy",onclick:this._onDuplicateSelect})}_renderDeleteButton(){if(!this.visibleElements.deleteButton)return[];const{messages:e}=this,t=this.updateGraphics.length>1?e.deleteFeatures:e.deleteFeature;return this._renderToolbarItem({id:"delete",text:t,icon:"trash",onclick:this.delete})}_renderToolbarItem({id:e,text:t,icon:o,disabled:i,onclick:s,active:l,flipRTL:r,afterCreate:n,afterUpdate:a,afterRemoved:p}){const c=`${this.id}-${e}`;return[M("calcite-action",{active:l,afterCreate:n,afterRemoved:p,afterUpdate:a,bind:this,"data-testid":e,disabled:i||"disabled"===this.state,icon:o,iconFlipRtl:r??!1,id:c,key:e,onclick:s,scale:this.scale,text:t,title:t})]}_remeasurePopoverSizes(e){try{const t=e.parentElement,o=this?.view?.container?.getBoundingClientRect(),i=t?.style;if(!(t&&o&&i&&this.view?.container?.contains(t)))return;const s=this._calcitePopoverReferenceElement;if(!s)return;const{bottom:l,top:r}=s.getBoundingClientRect();if("horizontal"===this.layout){const e=l<o.height/2;e!==("top"===this._relativeLocation)&&(this._relativeLocation=e?"top":"bottom"),e?(i?.setProperty("--sketch-view-height-offset",l-o.top+"px"),i?.setProperty("--sketch-view-margin-offset","30px")):(i?.setProperty("--sketch-view-height-offset",o.bottom-r+"px"),i?.setProperty("--sketch-view-margin-offset","15px"))}else"vertical"===this.layout&&(i.setProperty("--sketch-view-height-offset","15px"),i.setProperty("--sketch-view-margin-offset","15px"));const n=e.shadowRoot?.querySelector("div.header")?.getBoundingClientRect().height;i.setProperty("--sketch-popover-header-offset",`${n}px`)}catch(t){i.getLogger(this.declaredClass).warnOnce("Sketch failed to lay out settings menu.",t)}}_activateCreateTool(e,t,o){const i=this._activeCustomToolOptions;if(o||i){if(o?.toolKey===i?.toolKey)return void this.cancel()}else if(this.activeTool===e)return void this.cancel();this._selectionToolbar?.cancel(),this.create(e,t,o)}_onDuplicateSelect(){const e=this.duplicate(),t=this.viewModel.activeTool;"transform"!==t&&"reshape"!==t||this.update(e,{tool:t})}_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(){this.cancel(),this.view?.focus()}_refocusOnView(){this.activeTool&&this.view?.focus()}};e([c()],R.prototype,"_activeCustomToolOptions",void 0),e([c()],R.prototype,"activeTool",null),e([c({readOnly:!0})],R.prototype,"activeTooltip",null),e([c({cast:e=>{if(!e?.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle","multipoint","freehandPolyline","freehandPolygon","mesh","text"]);return e.filter(e=>t.has(e))}})],R.prototype,"availableCreateTools",void 0),e([c({readOnly:!0})],R.prototype,"createGraphic",null),e([c()],R.prototype,"creationMode",null),e([c()],R.prototype,"customToolOptions",void 0),e([c()],R.prototype,"customActions",void 0),e([c()],R.prototype,"defaultCreateOptions",null),e([c()],R.prototype,"defaultUpdateOptions",null),e([c()],R.prototype,"icon",null),e([c()],R.prototype,"label",null),e([c()],R.prototype,"labelOptions",null),e([c()],R.prototype,"layer",null),e([c({type:["horizontal","vertical"],value:"horizontal"})],R.prototype,"layout",null),e([c({value:"m"})],R.prototype,"scale",null),e([c()],R.prototype,"toolbarKind",void 0),e([c()],R.prototype,"contextualToolLocation",void 0),e([c()],R.prototype,"groupCollapsePriorities",void 0),e([c()],R.prototype,"groupAllowCollapseOptions",void 0),e([c(),w("geoscene/widgets/Sketch/t9n/Sketch")],R.prototype,"messages",void 0),e([c(),w("geoscene/t9n/common")],R.prototype,"messagesCommon",void 0),e([c()],R.prototype,"snappingOptions",null),e([c()],R.prototype,"state",null),e([c()],R.prototype,"tooltipOptions",null),e([c({readOnly:!0})],R.prototype,"updateGraphics",null),e([c({type:u,nonNullable:!0})],R.prototype,"valueOptions",null),e([c()],R.prototype,"view",null),e([c({type:v}),T(["create","update","undo","redo"])],R.prototype,"viewModel",null),e([c({type:m,nonNullable:!0})],R.prototype,"visibleElements",void 0),e([c()],R.prototype,"_effectiveAvailableCreateTools",null),e([c()],R.prototype,"_defaultViewModel",void 0),e([c()],R.prototype,"_calcitePopoverReferenceElement",void 0),e([c()],R.prototype,"_relativeLocation",void 0),e([c()],R.prototype,"_popoverOpen",void 0),R=e([d("geoscene.widgets.Sketch")],R);const E=R;export{E as default};
5
+ import{__decorate as e}from"tslib";import"../intl.js";import{isSome as t}from"../core/arrayUtils.js";import{handlesGroup as o}from"../core/handleUtils.js";import i from"../core/Logger.js";import{removeMaybe as s,destroyMaybe as l}from"../core/maybe.js";import{ignoreAbortErrors as r}from"../core/promiseUtils.js";import{watch as n,when as a,syncAndInitial as p}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import u from"../views/interactive/sketch/SketchValueOptions.js";import h from"./Widget.js";import v from"./Sketch/SketchViewModel.js";import{VisibleElements as m}from"./Sketch/VisibleElements.js";import g from"./Sketch/support/ResponsiveToolbar/ResponsiveToolbar.js";import{loadCalciteComponents as f}from"./support/componentsUtils.js";import _ from"./support/SelectionToolbar.js";import y from"./support/SketchTooltipControls.js";import b from"./support/SnappingControls.js";import"./support/widgetUtils.js";import{messageBundle as w}from"./support/decorators/messageBundle.js";import{vmEvent as T}from"./support/decorators/vmEvent.js";import{tsx as M}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import C from"./support/SelectionToolbar/VisibleElements.js";import O from"./support/SketchTooltipControls/VisibleElements.js";import{substitute as S}from"../intl/substitute.js";const k="geoscene-sketch",P={base:k,vertical:`${k}--vertical`,docked:`${k}-bar`,floating:`${k}-pad`,chipHorizontal:`${k}__selection-count-chip--horizontal`,chipVertical:`${k}__selection-count-chip--vertical`,chipVerticalSmall:`${k}__selection-count-chip--vertical--s`,popoverWrapper:`${k}__popover-wrapper`},I={point:"pin",polyline:"line",polygon:"polygon",rectangle:"rectangle",circle:"circle",multipoint:"pins",mesh:"i3d-building",freehandPolygon:"freehand-area",freehandPolyline:"freehand",text:"add-text"};let R=class extends h{constructor(e,t){super(e,t),this._activeCustomToolOptions=null,this._selectionToolbar=null,this._viewModelHandlesGroup=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.customToolOptions=null,this.customActions=null,this.toolbarKind="floating",this.contextualToolLocation="separate",this.groupCollapsePriorities=null,this.groupAllowCollapseOptions=null,this.messages=null,this.messagesCommon=null,this.visibleElements=new m,this._defaultViewModel=null,this._calcitePopoverReferenceElement=null,this._relativeLocation="top",this._popoverOpen=!1,this._activateCreateTool=this._activateCreateTool.bind(this),this.viewModel=e?.viewModel||(this._defaultViewModel=new v({creationMode:e?.creationMode??"continuous"}))}initialize(){const{layer:e,view:t}=this,i="2d"===t?.type,l=new _({persistSelection:!1,visibleElements:new C({chip:!1,lassoTool:i,operationTypeControls:!1,pan:!1,pointTool:!1,rectangleTool:i}),view:t,sources:e?[e]:null,scale:this.scale});this.addHandles([n(()=>this.viewModel,e=>{this._viewModelHandlesGroup=s(this._viewModelHandlesGroup),e&&(this._viewModelHandlesGroup=o([e.on("create",()=>this.scheduleRender()),e.on("update",()=>this.scheduleRender()),e.on("delete",e=>this.emit("delete",e)),e.on("undo",()=>this.scheduleRender()),e.on("redo",()=>this.scheduleRender()),n(()=>e.layer,e=>{this._selectionToolbar&&(this._selectionToolbar.sources=e?[e]:null)}),n(()=>e.view,e=>{this._selectionToolbar&&(this._selectionToolbar.view=e)}),n(()=>e.state,()=>this.notifyChange("state"))]))},p),a(()=>l.activeOperation,()=>this.viewModel.cancel()),l.on("complete",e=>this._onSelectionOperationComplete(e)),n(()=>{const{view:e,visibleElements:{selectionTools:t}}=this;return{lassoTool:"3d"!==e?.type&&!!t?.["lasso-selection"],rectangleTool:"3d"!==e?.type&&!!t?.["rectangle-selection"]}},e=>{Object.assign(l.visibleElements,e)},p)]),this._selectionToolbar=l}loadDependencies(){return f({action:()=>import("@geoscene/calcite-components/dist/components/calcite-action"),chip:()=>import("@geoscene/calcite-components/dist/components/calcite-chip"),popover:()=>import("@geoscene/calcite-components/dist/components/calcite-popover")})}destroy(){this._selectionToolbar?.destroy(),this._viewModelHandlesGroup=s(this._viewModelHandlesGroup)}get activeTool(){const e=this._selectionToolbar?.activeOperation;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}const t=this._effectiveAvailableCreateTools,{activeTool:o,activeCreateToolDrawMode:i}=this.viewModel;return"polygon"===o&&"freehand"===i&&t?.includes("freehandPolygon")?"freehandPolygon":"polyline"===o&&"freehand"===i&&t?.includes("freehandPolyline")?"freehandPolyline":this.viewModel.activeTool}get activeTooltip(){return this.viewModel.activeTooltip}get createGraphic(){return this.viewModel.createGraphic}get creationMode(){return this.viewModel.creationMode}set creationMode(e){this.viewModel.creationMode=e}get defaultCreateOptions(){return this.viewModel.defaultCreateOptions}set defaultCreateOptions(e){this.viewModel.defaultCreateOptions=e}get defaultUpdateOptions(){return this.viewModel.defaultUpdateOptions}set defaultUpdateOptions(e){this.viewModel.defaultUpdateOptions=e}get icon(){return"pencil"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}set layout(e){this._set("layout",e),this._selectionToolbar&&(this._selectionToolbar.layout=e)}set scale(e){this._set("scale",e),this._selectionToolbar&&(this._selectionToolbar.scale=e)}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get state(){return this._selectionToolbar?.activeOperation?"active":this.viewModel.state}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get updateGraphics(){return this.viewModel.updateGraphics}get valueOptions(){return this.viewModel.valueOptions}set valueOptions(e){this.viewModel.valueOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set viewModel(e){const t=this._get("viewModel");e!==t&&(t&&t===this._defaultViewModel&&l(t),this._set("viewModel",e))}get _effectiveAvailableCreateTools(){const{availableCreateTools:e,view:t,visibleElements:o}=this,i=e?.filter(e=>!!o.createTools?.[e]);return"3d"===t?.type?i?.filter(e=>"multipoint"!==e):i}create(e,t,o){const i=o?.createOptions??t;return this._activeCustomToolOptions=o,r(this.viewModel.create(e,i))}update(e,t){return r(this.viewModel.update(e,t))}complete(){this.viewModel.complete()}cancel(){this._selectionToolbar?.cancel(),this.viewModel.cancel(),this._activeCustomToolOptions=null}undo(){this.viewModel.undo(),this.view?.focus()}redo(){this.viewModel.redo(),this.view?.focus()}delete(){this.viewModel.delete()}duplicate(){return this.viewModel.duplicate()}dismissFloatingElements(){this._popoverOpen=!1}render(){const{toolbarKind:e,layout:t,scale:o}=this,i=this.customActions?.filter(e=>"selection-toolbar"===e.position);return M("div",null,M("div",{classes:{[P.base]:!0,[P.floating]:"floating"===e,[P.docked]:"docked"===e,[P.vertical]:"vertical"===t}},M(g,{barStyle:e,layout:t,scale:o},this._renderSelectionSetItemGroupInline(),M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("selectionTools")??!0,"group-kind":"split-button",key:"selection-split-button",priority:this.groupCollapsePriorities?.get("selectionTools")??0},this._renderDefaultSelectionButton(),this._selectionToolbar?.render(),i?.map(e=>this._renderToolbarItem(e))),this._renderCreateToolActionGroup(),this._renderUndoRedoMenuItemGroup(),this._renderSettingsMenuItemGroup()),this._renderSelectionSetToolbar(),this._renderSettingsMenuPopover()))}_renderSettingsMenuPopover(){const{messagesCommon:e,snappingOptions:t,view:o,viewModel:i,visibleElements:s}=this;if(!this._calcitePopoverReferenceElement)return;const l={directionModePicker:s.directionModePicker,labelsToggle:s.labelsToggle,tooltipsToggle:s.tooltipsToggle},r="horizontal"===this.layout?"top"===this._relativeLocation?"bottom-end":"top-end":"right-end";return M("calcite-popover",{closable:!0,heading:e.settings,label:e.settings,open:this._popoverOpen,overlayPositioning:"fixed",placement:r,referenceElement:this._calcitePopoverReferenceElement,scale:this.scale,onCalcitePopoverBeforeClose:()=>this._popoverOpen=!1,onCalcitePopoverBeforeOpen:e=>this._remeasurePopoverSizes(e.currentTarget),onCalcitePopoverClose:()=>this._refocusOnView()},M("div",{class:P.popoverWrapper},Object.values(l).includes(!0)?M(y,{sketchOptions:i.sketchOptions,viewType:o?.type,visibleElements:new O(l)}):void 0,s.snappingControls&&o&&t?M(b,{snappingManager:this.viewModel.snappingManager,snappingOptions:t,view:o,visibleElements:s.snappingControlsElements}):void 0))}_renderSelectionSetToolbar(){if("separate"!==this.contextualToolLocation)return;const e=this._renderSelectionSetItemGroup();return e?.length?M(g,{barStyle:this.toolbarKind,layout:this.layout,scale:this.scale},e):void 0}_renderSelectionSetItemGroupInline(){return"separate"===this.contextualToolLocation?[]:this._renderSelectionSetItemGroup()}_renderUndoRedoMenuItemGroup(){return M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("undoRedo")??!0,"group-kind":"split-button",key:"undo-redo-menu",priority:this.groupCollapsePriorities?.get("undoRedo")??10,slot:"actions-end"},this._renderUndoButton(),this._renderRedoButton())}_renderSettingsMenuItemGroup(){const e=[],o=[];this.customActions?.forEach(t=>{"settings-before"===t.position?o.push(t):"settings-after"===t.position&&e.push(t)});const i=[...o.map(e=>this._renderToolbarItem(e)),this._renderSettingsMenuButton(),...e.map(e=>this._renderToolbarItem(e))].filter(t);if(i.length)return M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("settings")??!1,"group-kind":"overflow-group",key:"settings-menu",priority:this.groupCollapsePriorities?.get("settings")??1e3,slot:"actions-end"},i)}_renderSelectionSetItemGroup(){if(!this.updateGraphics.length)return[];const e="inline-end"===this.contextualToolLocation?"actions-end":void 0,t=this.customActions?.filter(e=>"before-selection-set"===e.position),o=this.customActions?.filter(e=>"after-selection-set"===e.position),i=this.groupCollapsePriorities?.get("selectionSet")??100;return[M("div",{"group-kind":"measured-content",key:"selection-count-chip-group",priority:i,slot:e},this._renderFeatureCountChip()),M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("selectionSet")??!1,"group-kind":"overflow-group",key:"selection-set-tool-group",priority:i,slot:e},t?.map(e=>this._renderToolbarItem(e)),this._renderDuplicateButton(),this._renderDeleteButton(),o?.map(e=>this._renderToolbarItem(e)))]}_renderDefaultSelectionButton(){if(!this.viewModel.updateOnGraphicClick)return[];const{messages:e,state:t}=this;return this._renderToolbarItem({id:"pointer-select",text:e.selectFeature,icon:"cursor",onclick:this._activateDefaultSelectTool,active:"ready"===t})}_renderCreateToolActionGroup(){const e=this._effectiveAvailableCreateTools?.flatMap(e=>this._renderBuiltInCreateToolItem(e))??[],t=this.customToolOptions?.flatMap(e=>this._renderCustomToolItem(e))??[];return M("div",{"allow-collapse":this.groupAllowCollapseOptions?.get("createTools")??!0,"group-kind":"overflow-group",key:"create-tools-group",priority:this.groupCollapsePriorities?.get("createTools")??100},e,t)}_renderBuiltInCreateToolItem(e){return this._renderToolbarItem({id:`${e}-button`,text:this.messages.draw[e],icon:I[e],onclick:()=>this._activateCreateTool(e),active:this.activeTool===e&&!this._activeCustomToolOptions})}_renderCustomToolItem(e){const{toolKey:t}=e;return this._renderToolbarItem({id:`custom-${e.toolKey}`,text:e.label,icon:e.icon,onclick:()=>this._activateCreateTool(e.toolName,null,e),active:this._activeCustomToolOptions?.toolKey===t})}_renderUndoButton(){return this.visibleElements.undoRedoMenu?this._renderToolbarItem({id:"undo-button",text:this.messages.undo,icon:"undo",disabled:!this.viewModel.canUndo(),onclick:this.undo,flipRTL:!0}):[]}_renderRedoButton(){return this.visibleElements.undoRedoMenu?this._renderToolbarItem({id:"redo-button",text:this.messages.redo,icon:"redo",disabled:!this.viewModel.canRedo(),onclick:this.redo,flipRTL:!0}):[]}_renderSettingsMenuButton(){return this.visibleElements.settingsMenu?this._renderToolbarItem({id:"settings-menu-action",text:this.messagesCommon.settings,icon:"gear",active:this._popoverOpen,onclick:()=>this._popoverOpen=!this._popoverOpen,afterCreate:e=>this._calcitePopoverReferenceElement=e,afterUpdate:e=>this._calcitePopoverReferenceElement=e,afterRemoved:()=>this._calcitePopoverReferenceElement=null}):[]}_renderFeatureCountChip(){if(!this.visibleElements.selectionCountLabel)return[];const{layout:e,messages:t,scale:o,id:i,updateGraphics:{length:s}}=this,l=S(t.selectedCount,{count:s}),r="s"===o?99:999,n=s>r?S(t.selectedCountTruncated,{truncated:r}):s,a="s"===o&&"vertical"===e,p=a?`${i}-selection-chip-small`:`${i}-selection-chip`;return[a?M("span",{classes:{[P.chipVertical]:!0,[P.chipVerticalSmall]:"s"===this.scale},id:p,tabIndex:0,title:l},n):M("calcite-chip",{appearance:"outline",class:"horizontal"===e?P.chipHorizontal:P.chipVertical,id:p,kind:"brand",label:l,scale:"l"===o?"m":"s",tabIndex:0,title:"vertical"===e?l:void 0},"vertical"===e?n:l)]}_renderDuplicateButton(){if(!this.visibleElements.duplicateButton)return[];const{messages:e}=this;return this._renderToolbarItem({id:"duplicate",text:this.updateGraphics.length>1?e.duplicateFeatures:e.duplicateFeature,icon:"copy",onclick:this._onDuplicateSelect})}_renderDeleteButton(){if(!this.visibleElements.deleteButton)return[];const{messages:e}=this,t=this.updateGraphics.length>1?e.deleteFeatures:e.deleteFeature;return this._renderToolbarItem({id:"delete",text:t,icon:"trash",onclick:this.delete})}_renderToolbarItem({id:e,text:t,icon:o,disabled:i,onclick:s,active:l,flipRTL:r,afterCreate:n,afterUpdate:a,afterRemoved:p}){const c=`${this.id}-${e}`;return[M("calcite-action",{active:l,afterCreate:n,afterRemoved:p,afterUpdate:a,bind:this,"data-testid":e,disabled:i||"disabled"===this.state,icon:o,iconFlipRtl:r??!1,id:c,key:e,onclick:s,scale:this.scale,text:t,title:t})]}_remeasurePopoverSizes(e){try{const t=e.parentElement,o=this?.view?.container?.getBoundingClientRect(),i=t?.style;if(!(t&&o&&i&&this.view?.container?.contains(t)))return;const s=this._calcitePopoverReferenceElement;if(!s)return;const{bottom:l,top:r}=s.getBoundingClientRect();if("horizontal"===this.layout){const e=l<o.height/2;e!==("top"===this._relativeLocation)&&(this._relativeLocation=e?"top":"bottom"),e?(i?.setProperty("--sketch-view-height-offset",l-o.top+"px"),i?.setProperty("--sketch-view-margin-offset","30px")):(i?.setProperty("--sketch-view-height-offset",o.bottom-r+"px"),i?.setProperty("--sketch-view-margin-offset","15px"))}else"vertical"===this.layout&&(i.setProperty("--sketch-view-height-offset","15px"),i.setProperty("--sketch-view-margin-offset","15px"));const n=e.shadowRoot?.querySelector("div.header")?.getBoundingClientRect().height;i.setProperty("--sketch-popover-header-offset",`${n}px`)}catch(t){i.getLogger(this.declaredClass).warnOnce("Sketch failed to lay out settings menu.",t)}}_activateCreateTool(e,t,o){const i=this._activeCustomToolOptions;if(o||i){if(o?.toolKey===i?.toolKey)return void this.cancel()}else if(this.activeTool===e)return void this.cancel();this._selectionToolbar?.cancel(),this.create(e,t,o)}_onDuplicateSelect(){const e=this.duplicate(),t=this.viewModel.activeTool;"transform"!==t&&"reshape"!==t||this.update(e,{tool:t})}_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(){this.cancel(),this.view?.focus()}_refocusOnView(){this.activeTool&&this.view?.focus()}};e([c()],R.prototype,"_activeCustomToolOptions",void 0),e([c()],R.prototype,"activeTool",null),e([c({readOnly:!0})],R.prototype,"activeTooltip",null),e([c({cast:e=>{if(!e?.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle","multipoint","freehandPolyline","freehandPolygon","mesh","text"]);return e.filter(e=>t.has(e))}})],R.prototype,"availableCreateTools",void 0),e([c({readOnly:!0})],R.prototype,"createGraphic",null),e([c()],R.prototype,"creationMode",null),e([c()],R.prototype,"customToolOptions",void 0),e([c()],R.prototype,"customActions",void 0),e([c()],R.prototype,"defaultCreateOptions",null),e([c()],R.prototype,"defaultUpdateOptions",null),e([c()],R.prototype,"icon",null),e([c()],R.prototype,"label",null),e([c()],R.prototype,"labelOptions",null),e([c()],R.prototype,"layer",null),e([c({type:["horizontal","vertical"],value:"horizontal"})],R.prototype,"layout",null),e([c({value:"m"})],R.prototype,"scale",null),e([c()],R.prototype,"toolbarKind",void 0),e([c()],R.prototype,"contextualToolLocation",void 0),e([c()],R.prototype,"groupCollapsePriorities",void 0),e([c()],R.prototype,"groupAllowCollapseOptions",void 0),e([c(),w("geoscene/widgets/Sketch/t9n/Sketch")],R.prototype,"messages",void 0),e([c(),w("geoscene/t9n/common")],R.prototype,"messagesCommon",void 0),e([c()],R.prototype,"snappingOptions",null),e([c()],R.prototype,"state",null),e([c()],R.prototype,"tooltipOptions",null),e([c({readOnly:!0})],R.prototype,"updateGraphics",null),e([c({type:u,nonNullable:!0})],R.prototype,"valueOptions",null),e([c()],R.prototype,"view",null),e([c({type:v}),T(["create","update","undo","redo"])],R.prototype,"viewModel",null),e([c({type:m,nonNullable:!0})],R.prototype,"visibleElements",void 0),e([c()],R.prototype,"_effectiveAvailableCreateTools",null),e([c()],R.prototype,"_defaultViewModel",void 0),e([c()],R.prototype,"_calcitePopoverReferenceElement",void 0),e([c()],R.prototype,"_relativeLocation",void 0),e([c()],R.prototype,"_popoverOpen",void 0),R=e([d("geoscene.widgets.Sketch")],R);const E=R;export{E 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.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{deprecateWidget as t}from"../core/deprecate.js";import i from"../core/Logger.js";import{ignoreAbortErrors as s}from"../core/promiseUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import n from"./Slice/SliceViewModel.js";import{loadCalciteComponents as c}from"./support/componentsUtils.js";import{globalCss as a}from"./support/globalCss.js";import{Heading as d}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";const m="geoscene-slice",y={base:m,actions:`${m}__actions`,cancelButton:`${m}__cancel-button`,container:`${m}__container`,error:`${m}__error`,excludeButton:`${m}__exclude-button`,hint:`${m}__hint`,hintText:`${m}__hint-text`,layerItem:`${m}__layer-item`,layerList:`${m}__layer-list`,layerListHeading:`${m}__layer-list-title`,newSliceButton:`${m}__clear-button`};let h=class extends r{constructor(e,l){super(e,l),this.headingLevel=3,this.messages=null,this.viewModel=new n({isDefaultViewModel:!0}),this._onNewSliceClick=()=>{s(this.viewModel.start())},t(i.getLogger(this),"Slice","geoscene-slice",{version:"4.33"})}loadDependencies(){return c({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item"),list:()=>import("@esri/calcite-components/dist/components/calcite-list")})}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get excludedLayers(){return this.viewModel.excludedLayers}set excludedLayers(e){this.viewModel.excludedLayers=e}get excludeGroundSurface(){return this.viewModel.excludeGroundSurface}set excludeGroundSurface(e){this.viewModel.excludeGroundSurface=e}get icon(){return"slice"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}get hasVoxelLayers(){const e=this.viewModel?.view;return null!=e&&e.allLayerViews.some(e=>"voxel-3d"===e.type)}render(){return p("div",{class:this.classes(y.base,a.widget,a.panel),role:"presentation"},this.visible?p("div",{class:y.container},this.viewModel.supported?[this._renderHint(),this._renderLayerList(),this._renderActions()]:this._renderUnsupported()):null)}_renderUnsupported(){return p("div",{class:y.error,key:"unsupported"},p("p",null,this.messages.unsupported))}_renderHint(){const{hasVoxelLayers:e,messages:t,viewModel:i}=this,{active:s,mode:l,state:o}=i;let r=null;return s&&("exclude"===l?r=t.excludeHint:"ready"===o&&(r=e?t.voxelHint:t.hint)),r?p("div",{class:y.hint,key:"hint"},p("p",{class:y.hintText},r),p("p",{class:y.hintText},t.verticalHint)):null}_renderLayerList(){const{excludedLayers:e,excludeGroundSurface:t,headingLevel:i,messages:s,viewModel:l}=this,{mode:o,state:r}=l,n="slicing"===r||"sliced"===r,c=e?e.toArray().map(e=>this._renderLayerItem({uid:e.uid,title:e.title,onClick:()=>(this.excludedLayers.remove(e),!1)})):[];return t&&c.push(this._renderLayerItem({uid:"ground",title:s.ground,onClick:()=>(this.excludeGroundSurface=!1,!1)})),"exclude"!==o&&n&&0!==c.length?p("div",{class:y.layerList,key:"settings"},p(d,{class:y.layerListHeading,level:i},s.excludedLayers),p("calcite-list",{label:s.excludedLayers,selectionMode:"none"},c)):null}_renderActions(){const{messages:e,viewModel:t}=this,{active:i,state:s}=t,l="disabled"===s,o="slicing"===s||"sliced"===s,r="exclude"===t.mode,n=[];return i&&!o||r||n.push(p("calcite-button",{class:y.newSliceButton,disabled:l,key:"new-slice",onclick:this._onNewSliceClick},e.newSlice)),o&&!r&&n.push(p("calcite-button",{appearance:"outline-fill",class:y.excludeButton,disabled:l,key:"exclude",onclick:()=>t.enterExcludeLayerMode()},e.excludeLayer)),i&&r&&n.push(p("calcite-button",{appearance:"outline-fill",class:y.cancelButton,disabled:l,key:"cancel-exclude",onclick:()=>t.exitExcludeLayerMode()},e.cancel)),0===n.length?null:p("div",{class:y.actions},n)}_renderLayerItem(e){const t=this.messages.includeLayer;return p("calcite-list-item",{class:y.layerItem,"data-testid":`list-item-${e.uid}`,key:e.uid,label:e.title??""},p("calcite-action",{icon:"x",onclick:e.onClick,scale:"s",slot:"actions-end",text:t,title:t}))}};e([l()],h.prototype,"active",null),e([l({nonNullable:!0})],h.prototype,"analysis",null),e([l()],h.prototype,"excludedLayers",null),e([l()],h.prototype,"excludeGroundSurface",null),e([l()],h.prototype,"headingLevel",void 0),e([l()],h.prototype,"icon",null),e([l()],h.prototype,"label",null),e([l(),u("geoscene/widgets/Slice/t9n/Slice")],h.prototype,"messages",void 0),e([l()],h.prototype,"view",null),e([l({type:n})],h.prototype,"viewModel",void 0),e([l()],h.prototype,"visible",null),e([l()],h.prototype,"hasVoxelLayers",null),h=e([o("geoscene.widgets.Slice")],h);const v=h;export{v as default};
5
+ import{__decorate as e}from"tslib";import{deprecateWidget as t}from"../core/deprecate.js";import i from"../core/Logger.js";import{ignoreAbortErrors as s}from"../core/promiseUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import n from"./Slice/SliceViewModel.js";import{loadCalciteComponents as c}from"./support/componentsUtils.js";import{globalCss as a}from"./support/globalCss.js";import{Heading as d}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";const m="geoscene-slice",y={base:m,actions:`${m}__actions`,cancelButton:`${m}__cancel-button`,container:`${m}__container`,error:`${m}__error`,excludeButton:`${m}__exclude-button`,hint:`${m}__hint`,hintText:`${m}__hint-text`,layerItem:`${m}__layer-item`,layerList:`${m}__layer-list`,layerListHeading:`${m}__layer-list-title`,newSliceButton:`${m}__clear-button`};let h=class extends r{constructor(e,l){super(e,l),this.headingLevel=3,this.messages=null,this.viewModel=new n({isDefaultViewModel:!0}),this._onNewSliceClick=()=>{s(this.viewModel.start())},t(i.getLogger(this),"Slice","geoscene-slice",{version:"4.33"})}loadDependencies(){return c({action:()=>import("@geoscene/calcite-components/dist/components/calcite-action"),button:()=>import("@geoscene/calcite-components/dist/components/calcite-button"),"list-item":()=>import("@geoscene/calcite-components/dist/components/calcite-list-item"),list:()=>import("@geoscene/calcite-components/dist/components/calcite-list")})}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get excludedLayers(){return this.viewModel.excludedLayers}set excludedLayers(e){this.viewModel.excludedLayers=e}get excludeGroundSurface(){return this.viewModel.excludeGroundSurface}set excludeGroundSurface(e){this.viewModel.excludeGroundSurface=e}get icon(){return"slice"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}get hasVoxelLayers(){const e=this.viewModel?.view;return null!=e&&e.allLayerViews.some(e=>"voxel-3d"===e.type)}render(){return p("div",{class:this.classes(y.base,a.widget,a.panel),role:"presentation"},this.visible?p("div",{class:y.container},this.viewModel.supported?[this._renderHint(),this._renderLayerList(),this._renderActions()]:this._renderUnsupported()):null)}_renderUnsupported(){return p("div",{class:y.error,key:"unsupported"},p("p",null,this.messages.unsupported))}_renderHint(){const{hasVoxelLayers:e,messages:t,viewModel:i}=this,{active:s,mode:l,state:o}=i;let r=null;return s&&("exclude"===l?r=t.excludeHint:"ready"===o&&(r=e?t.voxelHint:t.hint)),r?p("div",{class:y.hint,key:"hint"},p("p",{class:y.hintText},r),p("p",{class:y.hintText},t.verticalHint)):null}_renderLayerList(){const{excludedLayers:e,excludeGroundSurface:t,headingLevel:i,messages:s,viewModel:l}=this,{mode:o,state:r}=l,n="slicing"===r||"sliced"===r,c=e?e.toArray().map(e=>this._renderLayerItem({uid:e.uid,title:e.title,onClick:()=>(this.excludedLayers.remove(e),!1)})):[];return t&&c.push(this._renderLayerItem({uid:"ground",title:s.ground,onClick:()=>(this.excludeGroundSurface=!1,!1)})),"exclude"!==o&&n&&0!==c.length?p("div",{class:y.layerList,key:"settings"},p(d,{class:y.layerListHeading,level:i},s.excludedLayers),p("calcite-list",{label:s.excludedLayers,selectionMode:"none"},c)):null}_renderActions(){const{messages:e,viewModel:t}=this,{active:i,state:s}=t,l="disabled"===s,o="slicing"===s||"sliced"===s,r="exclude"===t.mode,n=[];return i&&!o||r||n.push(p("calcite-button",{class:y.newSliceButton,disabled:l,key:"new-slice",onclick:this._onNewSliceClick},e.newSlice)),o&&!r&&n.push(p("calcite-button",{appearance:"outline-fill",class:y.excludeButton,disabled:l,key:"exclude",onclick:()=>t.enterExcludeLayerMode()},e.excludeLayer)),i&&r&&n.push(p("calcite-button",{appearance:"outline-fill",class:y.cancelButton,disabled:l,key:"cancel-exclude",onclick:()=>t.exitExcludeLayerMode()},e.cancel)),0===n.length?null:p("div",{class:y.actions},n)}_renderLayerItem(e){const t=this.messages.includeLayer;return p("calcite-list-item",{class:y.layerItem,"data-testid":`list-item-${e.uid}`,key:e.uid,label:e.title??""},p("calcite-action",{icon:"x",onclick:e.onClick,scale:"s",slot:"actions-end",text:t,title:t}))}};e([l()],h.prototype,"active",null),e([l({nonNullable:!0})],h.prototype,"analysis",null),e([l()],h.prototype,"excludedLayers",null),e([l()],h.prototype,"excludeGroundSurface",null),e([l()],h.prototype,"headingLevel",void 0),e([l()],h.prototype,"icon",null),e([l()],h.prototype,"label",null),e([l(),u("geoscene/widgets/Slice/t9n/Slice")],h.prototype,"messages",void 0),e([l()],h.prototype,"view",null),e([l({type:n})],h.prototype,"viewModel",void 0),e([l()],h.prototype,"visible",null),e([l()],h.prototype,"hasVoxelLayers",null),h=e([o("geoscene.widgets.Slice")],h);const v=h;export{v as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../core/Collection.js";import{IdentifiableMixin as i}from"../core/Identifiable.js";import{on as o,watch as s,initial as l}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import d from"./LayerList/LayerListItem.js";import{minDragEnabledItems as m,minFilterItems as c,getLayerType as p,removeDestroyedListItems as h,setFilterPredicate as u}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as g}from"./support/componentsUtils.js";import{globalCss as f}from"./support/globalCss.js";import{calciteListFilterProps as I}from"./support/listUtils.js";import{setFocus as b}from"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import{vmEvent as _}from"./support/decorators/vmEvent.js";import{tsx as y}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import{css as w}from"./TableList/css.js";import L from"./TableList/ListItem.js";import E from"./TableList/TableListViewModel.js";import C from"./TableList/TableListVisibleElements.js";import{getItem as F,sortTablesToIds as M}from"./TableList/support/tableListUtils.js";const P="nested",D=t.ofType(L);let j=class extends(i(a)){constructor(e,t){super(e,t),this._rootListEl=null,this._focusRootFlowItem=!1,this._focusPanelFlowItem=!1,this._lastDragDetail=null,this._selectedDragItemLayerUid=null,this._rootGroupUid=`table-${this.uid}`,this.collapsed=!1,this.dragEnabled=!1,this.filterPlaceholder="",this.filterPredicate=null,this.filterText="",this.headingLevel=2,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.messages=null,this.messagesCommon=null,this.minDragEnabledItems=m,this.minFilterItems=c,this.selectedItems=new D,this.selectionMode="none",this.viewModel=new E,this.visibleElements=new C,this._canMove=({dragEl:e,fromEl:t,toEl:i},o)=>{const s="pull"===o?this.listItemCanGiveFunction:this.listItemCanReceiveFunction,l=F(e);if(!l?.sortable)return!1;const r=F(t),n=p(t),a=F(i),d=p(i),m=!!n&&!!d&&n===d,c={selected:l,from:r,to:a},h=t.group,u=i.group;return h&&u&&"function"==typeof s?s.call(null,c):m},this._onCalciteListOrderChange=e=>{const{_lastDragDetail:t}=this,{toEl:i,fromEl:o,dragEl:s,newIndex:l}=e;if(!o||!i||t?.newIndex===l&&t?.dragEl===s&&t?.toEl===i&&t?.fromEl===o)return;this._lastDragDetail=e,this._selectedDragItemLayerUid=s.value;const r=Array.from(o.children).filter(e=>e?.matches("calcite-list-item")).map(e=>e.value);M(this.map?.tables,r)},this._onSelectedDragItemLayerUidChange=e=>{this._selectedDragItemLayerUid=e},this._onTriggerAction=(e,t)=>{this.triggerAction(e,t)},this._onPanelOpen=()=>{this._focusPanelFlowItem=!0}}initialize(){this.addHandles([o(()=>this.viewModel.tableItems,"change",()=>h(this.selectedItems),l),s(()=>[this.filterPredicate,this._rootListEl],()=>u(this._rootListEl,this.filterPredicate))])}loadDependencies(){return g({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice")})}get _dragEnabled(){return this.viewModel.totalItems>=this.minDragEnabledItems&&this.dragEnabled}get _filterEnabled(){return this.viewModel.totalItems>=this.minFilterItems&&this.visibleElements.filter}get _visibleItems(){return this.tableItems?.filter(e=>!e.hidden&&(this.visibleElements.errors||!e.error))}get _openedPanelItems(){return this._visibleItems.filter(({hidden:e,panel:t})=>!e&&t?.open&&!t.disabled&&t.flowEnabled)}get icon(){return"table"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get tableItems(){return this.viewModel.tableItems}get tables(){return this.viewModel.tables}set tables(e){this.viewModel.tables=e}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const e=this.viewModel?.state,t={[f.hidden]:"loading"===e,[f.disabled]:"disabled"===e};return y("div",{class:this.classes(w.base,f.widget,f.panel,t)},this._renderItems())}_renderNoItemsMessage(){return y("div",{slot:"message"},this.messages.noItemsToDisplay)}_renderNoItems(){return y("div",{class:w.itemMessage,key:"geoscene-layer-list__no-items"},y("calcite-notice",{icon:"information",kind:"info",open:!0,width:"full"},this._renderNoItemsMessage()))}_renderPanelFlowItems(){const{_openedPanelItems:e}=this;return e.toArray().map(({title:t,panel:i},o)=>{const s=()=>this._handlePanelFlowItemBack(i);return y("calcite-flow-item",{afterCreate:this._focusPanelFlowItemNode,afterUpdate:this._focusPanelFlowItemNode,bind:this,description:t,heading:i.title,headingLevel:this.headingLevel,key:`flow-panel-${i.uid}`,selected:o===e.length-1,onCalciteFlowItemBack:e=>{e.preventDefault(),s()}},i.render(),y("calcite-button",{appearance:"transparent",onclick:s,slot:"footer-actions",width:"full"},this.messagesCommon.back))})}_handlePanelFlowItemBack(e){e.open=!1,this._focusRootFlowItem=!0}_focusRootFlowItemNode(e){this._focusRootFlowItem&&(this._focusRootFlowItem=!1,b(e))}_focusPanelFlowItemNode(e){this._focusPanelFlowItem&&(this._focusPanelFlowItem=!1,b(e))}_renderItems(){const{visible:e,collapsed:t,visibleElements:{closeButton:i,collapseButton:o,heading:s,flow:l},_dragEnabled:r,_visibleItems:n,_filterEnabled:a,_rootGroupUid:d,_openedPanelItems:m,selectionMode:c,messages:p,filterPlaceholder:h,filterText:u}=this,g=[y("calcite-flow-item",{afterCreate:this._focusRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,bind:this,closable:i,closed:!e,collapsed:t,collapsible:o,heading:s?p.widgetLabel:void 0,headingLevel:this.headingLevel,key:"root-flow-item",selected:!m.length,onCalciteFlowItemClose:()=>this.visible=!1},n?.length?null:this._renderNoItems(),y("calcite-list",{afterCreate:e=>{this._rootListEl=e},afterRemoved:()=>{this._rootListEl=null},canPull:e=>this._canMove(e,"pull"),canPut:e=>this._canMove(e,"put"),"data-layer-type":d,displayMode:P,dragEnabled:r,filterEnabled:a,filterPlaceholder:h,filterProps:I,filterText:a?u:"",group:d,key:"root-list",label:p.widgetLabel,selectionAppearance:"border",selectionMode:c,onCalciteListChange:e=>this._handleCalciteListChange(e),onCalciteListDragEnd:e=>this._handleCalciteListDragEnd(e.detail),onCalciteListFilter:e=>this.filterText=e.currentTarget?.filterText??"",onCalciteListOrderChange:e=>this._onCalciteListOrderChange(e.detail)},n.toArray().map(e=>this._renderItem(e)),a?y("div",{class:w.filterNoResults,slot:"filter-no-results"},y("calcite-notice",{kind:"info",open:!0,width:"full"},this._renderNoItemsMessage())):null)),this._renderPanelFlowItems()];return e?l?y("calcite-flow",{key:"root-flow"},g):g:null}_handleCalciteListDragEnd(e){const{fromEl:t,dragEl:i,oldIndex:o}=e;t.insertBefore(i,t.children[o])}_renderItem(e){return y(d,{canMove:this._canMove,css:w,displayMode:P,dragEnabled:this.dragEnabled,item:e,key:`layerListItem-${e.layer.uid}`,listModeDisabled:this.viewModel.listModeDisabled,messages:this.messages,messagesCommon:this.messagesCommon,rootGroupUid:this._rootGroupUid,selectedDragItemLayerUid:this._selectedDragItemLayerUid,selectedItems:this.selectedItems,selectionMode:this.selectionMode,visibleElements:this.visibleElements,onAction:this._onTriggerAction,onPanelOpen:this._onPanelOpen,onSelectedDragItemLayerUidChange:this._onSelectedDragItemLayerUidChange})}_handleCalciteListChange(e){const{selectionMode:t,selectedItems:i}=this;if("none"===t)return;const o=e.target.selectedItems.map(e=>F(e)).filter(Boolean);i.removeAll(),i.addMany(o)}};e([r()],j.prototype,"_rootListEl",void 0),e([r()],j.prototype,"_focusRootFlowItem",void 0),e([r()],j.prototype,"_focusPanelFlowItem",void 0),e([r()],j.prototype,"_dragEnabled",null),e([r()],j.prototype,"_filterEnabled",null),e([r()],j.prototype,"_visibleItems",null),e([r()],j.prototype,"_openedPanelItems",null),e([r()],j.prototype,"collapsed",void 0),e([r()],j.prototype,"dragEnabled",void 0),e([r()],j.prototype,"filterPlaceholder",void 0),e([r()],j.prototype,"filterPredicate",void 0),e([r()],j.prototype,"filterText",void 0),e([r()],j.prototype,"headingLevel",void 0),e([r()],j.prototype,"icon",null),e([r()],j.prototype,"label",null),e([r()],j.prototype,"listItemCanGiveFunction",void 0),e([r()],j.prototype,"listItemCanReceiveFunction",void 0),e([r()],j.prototype,"listItemCreatedFunction",null),e([r()],j.prototype,"map",null),e([r(),v("geoscene/widgets/TableList/t9n/TableList")],j.prototype,"messages",void 0),e([r(),v("geoscene/t9n/common")],j.prototype,"messagesCommon",void 0),e([r()],j.prototype,"minDragEnabledItems",void 0),e([r()],j.prototype,"minFilterItems",void 0),e([r({type:D})],j.prototype,"selectedItems",void 0),e([r()],j.prototype,"selectionMode",void 0),e([r({readOnly:!0})],j.prototype,"tableItems",null),e([r()],j.prototype,"tables",null),e([_("trigger-action"),r({type:E})],j.prototype,"viewModel",void 0),e([r({type:C,nonNullable:!0})],j.prototype,"visibleElements",void 0),j=e([n("geoscene.widgets.TableList")],j);const T=j;export{T as default};
5
+ import{__decorate as e}from"tslib";import t from"../core/Collection.js";import{IdentifiableMixin as i}from"../core/Identifiable.js";import{on as o,watch as s,initial as l}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import d from"./LayerList/LayerListItem.js";import{minDragEnabledItems as m,minFilterItems as c,getLayerType as p,removeDestroyedListItems as h,setFilterPredicate as u}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as g}from"./support/componentsUtils.js";import{globalCss as f}from"./support/globalCss.js";import{calciteListFilterProps as I}from"./support/listUtils.js";import{setFocus as b}from"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import{vmEvent as _}from"./support/decorators/vmEvent.js";import{tsx as y}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import{css as w}from"./TableList/css.js";import L from"./TableList/ListItem.js";import E from"./TableList/TableListViewModel.js";import C from"./TableList/TableListVisibleElements.js";import{getItem as F,sortTablesToIds as M}from"./TableList/support/tableListUtils.js";const P="nested",D=t.ofType(L);let j=class extends(i(a)){constructor(e,t){super(e,t),this._rootListEl=null,this._focusRootFlowItem=!1,this._focusPanelFlowItem=!1,this._lastDragDetail=null,this._selectedDragItemLayerUid=null,this._rootGroupUid=`table-${this.uid}`,this.collapsed=!1,this.dragEnabled=!1,this.filterPlaceholder="",this.filterPredicate=null,this.filterText="",this.headingLevel=2,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.messages=null,this.messagesCommon=null,this.minDragEnabledItems=m,this.minFilterItems=c,this.selectedItems=new D,this.selectionMode="none",this.viewModel=new E,this.visibleElements=new C,this._canMove=({dragEl:e,fromEl:t,toEl:i},o)=>{const s="pull"===o?this.listItemCanGiveFunction:this.listItemCanReceiveFunction,l=F(e);if(!l?.sortable)return!1;const r=F(t),n=p(t),a=F(i),d=p(i),m=!!n&&!!d&&n===d,c={selected:l,from:r,to:a},h=t.group,u=i.group;return h&&u&&"function"==typeof s?s.call(null,c):m},this._onCalciteListOrderChange=e=>{const{_lastDragDetail:t}=this,{toEl:i,fromEl:o,dragEl:s,newIndex:l}=e;if(!o||!i||t?.newIndex===l&&t?.dragEl===s&&t?.toEl===i&&t?.fromEl===o)return;this._lastDragDetail=e,this._selectedDragItemLayerUid=s.value;const r=Array.from(o.children).filter(e=>e?.matches("calcite-list-item")).map(e=>e.value);M(this.map?.tables,r)},this._onSelectedDragItemLayerUidChange=e=>{this._selectedDragItemLayerUid=e},this._onTriggerAction=(e,t)=>{this.triggerAction(e,t)},this._onPanelOpen=()=>{this._focusPanelFlowItem=!0}}initialize(){this.addHandles([o(()=>this.viewModel.tableItems,"change",()=>h(this.selectedItems),l),s(()=>[this.filterPredicate,this._rootListEl],()=>u(this._rootListEl,this.filterPredicate))])}loadDependencies(){return g({button:()=>import("@geoscene/calcite-components/dist/components/calcite-button"),flow:()=>import("@geoscene/calcite-components/dist/components/calcite-flow"),"flow-item":()=>import("@geoscene/calcite-components/dist/components/calcite-flow-item"),list:()=>import("@geoscene/calcite-components/dist/components/calcite-list"),notice:()=>import("@geoscene/calcite-components/dist/components/calcite-notice")})}get _dragEnabled(){return this.viewModel.totalItems>=this.minDragEnabledItems&&this.dragEnabled}get _filterEnabled(){return this.viewModel.totalItems>=this.minFilterItems&&this.visibleElements.filter}get _visibleItems(){return this.tableItems?.filter(e=>!e.hidden&&(this.visibleElements.errors||!e.error))}get _openedPanelItems(){return this._visibleItems.filter(({hidden:e,panel:t})=>!e&&t?.open&&!t.disabled&&t.flowEnabled)}get icon(){return"table"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get tableItems(){return this.viewModel.tableItems}get tables(){return this.viewModel.tables}set tables(e){this.viewModel.tables=e}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const e=this.viewModel?.state,t={[f.hidden]:"loading"===e,[f.disabled]:"disabled"===e};return y("div",{class:this.classes(w.base,f.widget,f.panel,t)},this._renderItems())}_renderNoItemsMessage(){return y("div",{slot:"message"},this.messages.noItemsToDisplay)}_renderNoItems(){return y("div",{class:w.itemMessage,key:"geoscene-layer-list__no-items"},y("calcite-notice",{icon:"information",kind:"info",open:!0,width:"full"},this._renderNoItemsMessage()))}_renderPanelFlowItems(){const{_openedPanelItems:e}=this;return e.toArray().map(({title:t,panel:i},o)=>{const s=()=>this._handlePanelFlowItemBack(i);return y("calcite-flow-item",{afterCreate:this._focusPanelFlowItemNode,afterUpdate:this._focusPanelFlowItemNode,bind:this,description:t,heading:i.title,headingLevel:this.headingLevel,key:`flow-panel-${i.uid}`,selected:o===e.length-1,onCalciteFlowItemBack:e=>{e.preventDefault(),s()}},i.render(),y("calcite-button",{appearance:"transparent",onclick:s,slot:"footer-actions",width:"full"},this.messagesCommon.back))})}_handlePanelFlowItemBack(e){e.open=!1,this._focusRootFlowItem=!0}_focusRootFlowItemNode(e){this._focusRootFlowItem&&(this._focusRootFlowItem=!1,b(e))}_focusPanelFlowItemNode(e){this._focusPanelFlowItem&&(this._focusPanelFlowItem=!1,b(e))}_renderItems(){const{visible:e,collapsed:t,visibleElements:{closeButton:i,collapseButton:o,heading:s,flow:l},_dragEnabled:r,_visibleItems:n,_filterEnabled:a,_rootGroupUid:d,_openedPanelItems:m,selectionMode:c,messages:p,filterPlaceholder:h,filterText:u}=this,g=[y("calcite-flow-item",{afterCreate:this._focusRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,bind:this,closable:i,closed:!e,collapsed:t,collapsible:o,heading:s?p.widgetLabel:void 0,headingLevel:this.headingLevel,key:"root-flow-item",selected:!m.length,onCalciteFlowItemClose:()=>this.visible=!1},n?.length?null:this._renderNoItems(),y("calcite-list",{afterCreate:e=>{this._rootListEl=e},afterRemoved:()=>{this._rootListEl=null},canPull:e=>this._canMove(e,"pull"),canPut:e=>this._canMove(e,"put"),"data-layer-type":d,displayMode:P,dragEnabled:r,filterEnabled:a,filterPlaceholder:h,filterProps:I,filterText:a?u:"",group:d,key:"root-list",label:p.widgetLabel,selectionAppearance:"border",selectionMode:c,onCalciteListChange:e=>this._handleCalciteListChange(e),onCalciteListDragEnd:e=>this._handleCalciteListDragEnd(e.detail),onCalciteListFilter:e=>this.filterText=e.currentTarget?.filterText??"",onCalciteListOrderChange:e=>this._onCalciteListOrderChange(e.detail)},n.toArray().map(e=>this._renderItem(e)),a?y("div",{class:w.filterNoResults,slot:"filter-no-results"},y("calcite-notice",{kind:"info",open:!0,width:"full"},this._renderNoItemsMessage())):null)),this._renderPanelFlowItems()];return e?l?y("calcite-flow",{key:"root-flow"},g):g:null}_handleCalciteListDragEnd(e){const{fromEl:t,dragEl:i,oldIndex:o}=e;t.insertBefore(i,t.children[o])}_renderItem(e){return y(d,{canMove:this._canMove,css:w,displayMode:P,dragEnabled:this.dragEnabled,item:e,key:`layerListItem-${e.layer.uid}`,listModeDisabled:this.viewModel.listModeDisabled,messages:this.messages,messagesCommon:this.messagesCommon,rootGroupUid:this._rootGroupUid,selectedDragItemLayerUid:this._selectedDragItemLayerUid,selectedItems:this.selectedItems,selectionMode:this.selectionMode,visibleElements:this.visibleElements,onAction:this._onTriggerAction,onPanelOpen:this._onPanelOpen,onSelectedDragItemLayerUidChange:this._onSelectedDragItemLayerUidChange})}_handleCalciteListChange(e){const{selectionMode:t,selectedItems:i}=this;if("none"===t)return;const o=e.target.selectedItems.map(e=>F(e)).filter(Boolean);i.removeAll(),i.addMany(o)}};e([r()],j.prototype,"_rootListEl",void 0),e([r()],j.prototype,"_focusRootFlowItem",void 0),e([r()],j.prototype,"_focusPanelFlowItem",void 0),e([r()],j.prototype,"_dragEnabled",null),e([r()],j.prototype,"_filterEnabled",null),e([r()],j.prototype,"_visibleItems",null),e([r()],j.prototype,"_openedPanelItems",null),e([r()],j.prototype,"collapsed",void 0),e([r()],j.prototype,"dragEnabled",void 0),e([r()],j.prototype,"filterPlaceholder",void 0),e([r()],j.prototype,"filterPredicate",void 0),e([r()],j.prototype,"filterText",void 0),e([r()],j.prototype,"headingLevel",void 0),e([r()],j.prototype,"icon",null),e([r()],j.prototype,"label",null),e([r()],j.prototype,"listItemCanGiveFunction",void 0),e([r()],j.prototype,"listItemCanReceiveFunction",void 0),e([r()],j.prototype,"listItemCreatedFunction",null),e([r()],j.prototype,"map",null),e([r(),v("geoscene/widgets/TableList/t9n/TableList")],j.prototype,"messages",void 0),e([r(),v("geoscene/t9n/common")],j.prototype,"messagesCommon",void 0),e([r()],j.prototype,"minDragEnabledItems",void 0),e([r()],j.prototype,"minFilterItems",void 0),e([r({type:D})],j.prototype,"selectedItems",void 0),e([r()],j.prototype,"selectionMode",void 0),e([r({readOnly:!0})],j.prototype,"tableItems",null),e([r()],j.prototype,"tables",null),e([_("trigger-action"),r({type:E})],j.prototype,"viewModel",void 0),e([r({type:C,nonNullable:!0})],j.prototype,"visibleElements",void 0),j=e([n("geoscene.widgets.TableList")],j);const T=j;export{T 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.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{equals as e}from"../core/arrayUtils.js";import{neverReached as i}from"../core/compilerUtils.js";import{watch as a,initial as s}from"../core/reactiveUtils.js";import{truncateDate as r,offsetDate as o}from"../core/timeUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import"../core/Logger.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as m,convertDateFormatToIntlOptions as u}from"../intl/date.js";import{unknown as c,system as d}from"../time/constants.js";import p from"../time/TimeInterval.js";import h from"./Slider.js";import v from"./Widget.js";import{loadCalciteComponents as f}from"./support/componentsUtils.js";import{globalCss as y}from"./support/globalCss.js";import{onResize as g}from"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{vmEvent as x}from"./support/decorators/vmEvent.js";import{tsx as w}from"./support/jsxFactory.js";import{getCalciteModeClass as E}from"../support/modeUtils.js";import{css as k}from"./TimeSlider/css.js";import j from"./TimeSlider/TimeSliderViewModel.js";const T=3,_=858,S=[{minor:{value:100,unit:"milliseconds"},major:{value:1,unit:"seconds"},format:{second:"numeric"}},{minor:{value:500,unit:"milliseconds"},major:{value:5,unit:"seconds"},format:{second:"numeric"}},{minor:{value:1,unit:"seconds"},major:{value:20,unit:"seconds"},format:{minute:"numeric",second:"numeric"}},{minor:{value:2,unit:"seconds"},major:{value:30,unit:"seconds"},format:{minute:"numeric",second:"numeric"}},{minor:{value:10,unit:"seconds"},major:{value:1,unit:"minutes"},format:{minute:"numeric"}},{minor:{value:15,unit:"seconds"},major:{value:5,unit:"minutes"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:1,unit:"minutes"},major:{value:20,unit:"minutes"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:5,unit:"minutes"},major:{value:2,unit:"hours"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:15,unit:"minutes"},major:{value:6,unit:"hours"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:1,unit:"hours"},major:{value:1,unit:"days"},format:{day:"numeric",month:"short"}},{minor:{value:6,unit:"hours"},major:{value:1,unit:"weeks"},format:{day:"numeric",month:"short"}},{minor:{value:1,unit:"days"},major:{value:1,unit:"months"},format:{month:"long"}},{minor:{value:2,unit:"days"},major:{value:1,unit:"months"},format:{month:"short"}},{minor:{value:3,unit:"days"},major:{value:1,unit:"months"},format:{month:"short"}},{minor:{value:4,unit:"days"},major:{value:3,unit:"months"},format:{month:"short",year:"numeric"}},{minor:{value:1,unit:"weeks"},major:{value:1,unit:"years"},format:{year:"numeric"}},{minor:{value:1,unit:"months"},major:{value:1,unit:"years"},format:{year:"numeric"}},{minor:{value:2,unit:"months"},major:{value:2,unit:"years"},format:{year:"numeric"}},{minor:{value:1,unit:"years"},major:{value:1,unit:"decades"},format:{year:"numeric"}},{minor:{value:2,unit:"years"},major:{value:5,unit:"decades"},format:{year:"numeric"}},{minor:{value:5,unit:"decades"},major:{value:10,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:1,unit:"centuries"},major:{value:10,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:2,unit:"centuries"},major:{value:20,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:5,unit:"centuries"},major:{value:50,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:10,unit:"centuries"},major:{value:100,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:20,unit:"centuries"},major:{value:200,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:50,unit:"centuries"},major:{value:500,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:100,unit:"centuries"},major:{value:1e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:200,unit:"centuries"},major:{value:1e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:500,unit:"centuries"},major:{value:5e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:1e3,unit:"centuries"},major:{value:1e4,unit:"centuries"},format:{era:"short",year:"numeric"}}];function M(t){return w("div",{class:k.warning},w("calcite-icon",{class:k.warningIcon,icon:"exclamation-mark-triangle"}),w("calcite-label",{alignment:"center",class:k.warningLabel,scale:"s"},t))}let F=class extends v{constructor(t,e){super(t,e),this._allLayouts=["auto","compact","wide"],this._ignoreNextSliderUpdate=!1,this._slider=new h({precision:0,visibleElements:{rangeLabels:!1},rangeLabelInputsEnabled:!1,thumbsConstrained:!1}),this._tickFormat=null,this.disabled=!1,this.labelFormatFunction=null,this.messages=null,this.tickConfigs=null,this.timeVisible=!1,this.viewModel=new j}initialize(){this.addHandles([a(()=>this._slider.values,t=>{if(this._ignoreNextSliderUpdate)return void(this._ignoreNextSliderUpdate=!1);const e=this.viewModel.valuesToTimeExtent(t);this.timeExtent?e?this.timeExtent.equals(e)||(this.timeExtent=e):this.timeExtent=null:e&&(this.timeExtent=e)}),a(()=>this.effectiveStops,()=>this._updateSliderSteps(),s)])}loadDependencies(){return f({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),"action-menu":()=>import("@esri/calcite-components/dist/components/calcite-action-menu"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),label:()=>import("@esri/calcite-components/dist/components/calcite-label")})}destroy(){this._slider.destroy(),this._tickFormat=null}get _dateFormat(){return this._getIntlOptions("short-date")}get _timeFormat(){return this._getIntlOptions("long-time")}get actions(){return this.viewModel.actions}set actions(t){this.viewModel.actions=t}get effectiveStops(){return this.viewModel.effectiveStops}get fullTimeExtent(){return this.viewModel.fullTimeExtent}set fullTimeExtent(t){this.viewModel.fullTimeExtent=t}get icon(){return"clock"}set icon(t){this._overrideIfSome("icon",t)}get interactive(){return!(this.disabled||"disabled"===this.viewModel.state||this.timeZone===c)}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}set layout(t){this._set("layout",this._allLayouts.includes(t)?t:"auto")}get loop(){return this.viewModel.loop}set loop(t){this.viewModel.loop=t}get mode(){return this.viewModel.mode}set mode(t){this.viewModel.mode=t}get playRate(){return this.viewModel.playRate}set playRate(t){this.viewModel.playRate=t}get stops(){return this.viewModel.stops}set stops(t){this.viewModel.stops=t}get tickFormats(){const{timeZone:t}=this;return S.map(({minor:e,major:i,format:a})=>({minor:new p(e),major:new p(i),format:{...a,timeZone:t}}))}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(t){this.viewModel.timeExtent=t}get timeZone(){return this.viewModel.view?.timeZone??d}set timeZone(t){this._overrideIfSome("timeZone",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}next(){return this.viewModel.next()}play(){return this.viewModel.play()}previous(){return this.viewModel.previous()}stop(){return this.viewModel.stop()}render(){const{_slider:t,actions:i,domNode:a,effectiveStops:s,fullTimeExtent:r,interactive:o,messages:n,mode:l,tickConfigs:u,timeExtent:c,timeVisible:d,viewModel:{state:p,timeExtentValues:h}}=this;if(r){const{start:e,end:i}=r;if(e&&i){const a=e.getTime(),s=i.getTime(),r=t.min!==a||t.max!==s;if(r&&(t.min=a,t.max=s),u)t.tickConfigs!==u&&(t.tickConfigs=u);else{const e=(s-a)/(t.trackElement?.offsetWidth||400),i=this.tickFormats.find(({minor:t})=>t.toMilliseconds()>T*e)??this.tickFormats.at(-1),o=i&&this._tickFormat!==i;if(o&&(this._tickFormat=i),r||o){const e={mode:"position",values:this._getTickPositions(i.minor),labelsVisible:!1,tickCreatedFunction:(t,e)=>{e?.classList.add(k.sliderMinorTick)}},a={mode:"position",values:this._getTickPositions(i.major),labelsVisible:!0,tickCreatedFunction:(t,e)=>{e?.classList.add(k.sliderMajorTick)},labelFormatFunction:t=>m(t,i.format)};t.tickConfigs=[e,a]}}}}const v=!this.fullTimeExtent?.start||!this.fullTimeExtent.end||!this.timeExtent||this.timeExtent.isAllTime||this.timeExtent.isEmpty||this.timeExtent.start&&(this.timeExtent.start<this.fullTimeExtent.start||this.timeExtent.start>this.fullTimeExtent.end)||this.timeExtent.end&&(this.timeExtent.end>this.fullTimeExtent.end||this.timeExtent.end<this.fullTimeExtent.start);if(v)switch(this._ignoreNextSliderUpdate=!0,l){case"time-window":t.values=[t.min,t.max];break;case"instant":case"cumulative-from-end":t.values=[t.min];break;case"cumulative-from-start":t.values=[t.max]}else h?e(t.values,h)||(t.values=h):t.values=null;t.disabled=!o;const f=v||!o||!s?.length,b="auto"===this.layout?a.clientWidth<_?"compact":"wide":this.layout,x=w("calcite-button",{appearance:"transparent",bind:this,class:k.play,disabled:f,iconStart:"playing"===p?"pause":"play",kind:"neutral",label:"playing"===p?n.control.stop:n.control.play,onclick:this._playOrStopClick,scale:"wide"===b?"l":"m",width:"full"}),j=this.labelFormatFunction?w("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:k.timeExtentStartDate,"data-date":c?[c.start,c.end]:null,"data-layout":b,"data-type":"extent",key:k.timeExtentStartDate}):!c||c.isAllTime?M(n.noTimeExtent):c.isEmpty?M(n.emptyTimeExtent):[c?.start&&w("div",{class:k.timeExtentStartGroup,key:k.timeExtentStartGroup},w("calcite-label",{alignment:"center",class:k.timeExtentStartDate,key:k.timeExtentStartDate,scale:"s"},this._formatDate(c.start)),d?w("calcite-label",{alignment:"center",class:k.timeExtentStartTime,key:k.timeExtentStartTime,scale:"s"},this._formatTime(c.start)):null),c.start&&c.end&&c.start.getTime()!==c.end.getTime()&&w("div",{class:k.timeExtentSeparator,key:k.timeExtentSeparator}),c?.end&&(!c.start||c.start.getTime()!==c.end.getTime())&&w("div",{class:k.timeExtentEndGroup,key:k.timeExtentEndGroup},w("calcite-label",{alignment:"center",class:k.timeExtentEndDate,key:k.timeExtentEndDate,scale:"s"},this._formatDate(c.end)),d?w("calcite-label",{alignment:"center",class:k.timeExtentEndTime,key:k.timeExtentEndTime,scale:"s"},this._formatTime(c.end)):null)],S=w("div",{class:k.timeExtent},j),F=this.labelFormatFunction?w("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:k.minDate,"data-date":r?.start,"data-layout":b,"data-type":"min",key:k.minDate}):r?.start&&[w("calcite-label",{class:k.minDate,key:k.minDate,scale:"s"},this._formatDate(r.start)),d&&w("calcite-label",{class:k.minTime,key:k.minTime,scale:"s"},this._formatTime(r.start))],D=w("div",{class:k.min},F),C=w("div",{class:k.slider},t.render()),L=this.labelFormatFunction?w("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:k.maxDate,"data-date":r?.end,"data-layout":b,"data-type":"max",key:k.maxDate}):r?.end&&[w("calcite-label",{class:k.maxDate,key:k.maxDate,scale:"s"},this._formatDate(r.end)),d&&w("calcite-label",{class:k.maxTime,key:k.maxTime,scale:"s"},this._formatTime(r.end))],U=w("div",{class:k.max},L),Z=w("calcite-button",{appearance:"transparent",bind:this,class:k.previous,disabled:f||"playing"===p,iconStart:"reverse",kind:"neutral",label:n.pagination.previous,onclick:this._previousClick,scale:"wide"===b?"l":"m",width:"full"}),R=w("calcite-button",{appearance:"transparent",bind:this,class:k.next,disabled:f||"playing"===p,iconStart:"forward",kind:"neutral",label:n.pagination.next,onclick:this._nextClick,scale:"wide"===b?"l":"m",width:"full"}),I=i?.length>0,O=I&&w("calcite-action-menu",{class:k.actions,label:n.options},i.toArray().map(t=>w("calcite-action",{bind:this,icon:t.icon,id:t.id,onclick:()=>this.viewModel.triggerAction(t),text:t.title,textEnabled:!0})));return w("div",{afterCreate:t=>{this.addHandles(g(t,()=>this.scheduleRender()))},"aria-label":n.widgetLabel,class:this.classes(k.timeSlider,y.widget,`${k.timeSliderMode}${l}`,`${k.timeSliderLayout}${b}`,!o&&k.timeSliderDisabled,v&&k.timeSliderOutOfBounds,I&&k.hasActions,E(this.container))},"wide"===b&&w("div",{class:k.timeSliderRow},w("div",{class:k.playbackControls},[x,S,D,C,U,Z,R]),O),"compact"===b&&[w("div",{class:k.timeSliderRow,key:"time-slider-row-1"},[S,O]),w("div",{class:k.timeSliderRow,key:"time-slider-row-2"},[C]),w("div",{class:k.timeSliderRow,key:"time-slider-row-3"},[D,Z,x,R,U])])}updateWebDocument(t){this.viewModel?.updateWebDocument(t)}_createLabel(t){if(!this.labelFormatFunction)return;const e=t.getAttribute("data-type"),i=t.getAttribute("data-layout"),a=t["data-date"];this.labelFormatFunction(a,e,t,i)}_formatDate(t){return m(t,this._dateFormat)}_formatTime(t){return m(t,this._timeFormat)}_getIntlOptions(t){const{timeZone:e}=this;return{...u(t),timeZone:e}}_getTickPositions(t){const{fullTimeExtent:e}=this;if(!e?.start||!e.end)return[];const{start:i,end:a}=e,s=[],{value:n,unit:l}=t;let m=r(i,l,this.timeZone);for(;m.getTime()<=a.getTime();)m.getTime()>=i.getTime()&&s.push(m.getTime()),m=o(m,n,l,this.timeZone);return s}_updateSliderSteps(){this._slider.steps=this.effectiveStops&&this.effectiveStops.length>0?this.effectiveStops.map(t=>t.getTime()):null}_playOrStopClick(){switch(this.viewModel.state){case"ready":this.viewModel.play();break;case"playing":this.viewModel.stop();break;case"disabled":break;default:i(this.viewModel.state)}}_previousClick(){this.viewModel.previous()}_nextClick(){this.viewModel.next()}};t([n()],F.prototype,"_dateFormat",null),t([n()],F.prototype,"_timeFormat",null),t([n()],F.prototype,"actions",null),t([n()],F.prototype,"disabled",void 0),t([n()],F.prototype,"effectiveStops",null),t([n()],F.prototype,"fullTimeExtent",null),t([n()],F.prototype,"icon",null),t([n({readOnly:!0})],F.prototype,"interactive",null),t([n()],F.prototype,"label",null),t([n()],F.prototype,"labelFormatFunction",void 0),t([n({value:"auto"})],F.prototype,"layout",null),t([n()],F.prototype,"loop",null),t([n(),b("geoscene/widgets/TimeSlider/t9n/TimeSlider")],F.prototype,"messages",void 0),t([n()],F.prototype,"mode",null),t([n()],F.prototype,"playRate",null),t([n()],F.prototype,"stops",null),t([n()],F.prototype,"tickConfigs",void 0),t([n()],F.prototype,"tickFormats",null),t([n()],F.prototype,"timeExtent",null),t([n({nonNullable:!0})],F.prototype,"timeVisible",void 0),t([n()],F.prototype,"timeZone",null),t([n()],F.prototype,"view",null),t([n({type:j}),x("trigger-action")],F.prototype,"viewModel",void 0),F=t([l("geoscene.widgets.TimeSlider")],F);const D=F;export{D as default};
5
+ import{__decorate as t}from"tslib";import{equals as e}from"../core/arrayUtils.js";import{neverReached as i}from"../core/compilerUtils.js";import{watch as a,initial as s}from"../core/reactiveUtils.js";import{truncateDate as r,offsetDate as o}from"../core/timeUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import"../core/Logger.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as m,convertDateFormatToIntlOptions as u}from"../intl/date.js";import{unknown as c,system as d}from"../time/constants.js";import p from"../time/TimeInterval.js";import h from"./Slider.js";import v from"./Widget.js";import{loadCalciteComponents as f}from"./support/componentsUtils.js";import{globalCss as y}from"./support/globalCss.js";import{onResize as g}from"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{vmEvent as x}from"./support/decorators/vmEvent.js";import{tsx as w}from"./support/jsxFactory.js";import{getCalciteModeClass as E}from"../support/modeUtils.js";import{css as k}from"./TimeSlider/css.js";import j from"./TimeSlider/TimeSliderViewModel.js";const T=3,_=858,S=[{minor:{value:100,unit:"milliseconds"},major:{value:1,unit:"seconds"},format:{second:"numeric"}},{minor:{value:500,unit:"milliseconds"},major:{value:5,unit:"seconds"},format:{second:"numeric"}},{minor:{value:1,unit:"seconds"},major:{value:20,unit:"seconds"},format:{minute:"numeric",second:"numeric"}},{minor:{value:2,unit:"seconds"},major:{value:30,unit:"seconds"},format:{minute:"numeric",second:"numeric"}},{minor:{value:10,unit:"seconds"},major:{value:1,unit:"minutes"},format:{minute:"numeric"}},{minor:{value:15,unit:"seconds"},major:{value:5,unit:"minutes"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:1,unit:"minutes"},major:{value:20,unit:"minutes"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:5,unit:"minutes"},major:{value:2,unit:"hours"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:15,unit:"minutes"},major:{value:6,unit:"hours"},format:{hour:"numeric",minute:"numeric"}},{minor:{value:1,unit:"hours"},major:{value:1,unit:"days"},format:{day:"numeric",month:"short"}},{minor:{value:6,unit:"hours"},major:{value:1,unit:"weeks"},format:{day:"numeric",month:"short"}},{minor:{value:1,unit:"days"},major:{value:1,unit:"months"},format:{month:"long"}},{minor:{value:2,unit:"days"},major:{value:1,unit:"months"},format:{month:"short"}},{minor:{value:3,unit:"days"},major:{value:1,unit:"months"},format:{month:"short"}},{minor:{value:4,unit:"days"},major:{value:3,unit:"months"},format:{month:"short",year:"numeric"}},{minor:{value:1,unit:"weeks"},major:{value:1,unit:"years"},format:{year:"numeric"}},{minor:{value:1,unit:"months"},major:{value:1,unit:"years"},format:{year:"numeric"}},{minor:{value:2,unit:"months"},major:{value:2,unit:"years"},format:{year:"numeric"}},{minor:{value:1,unit:"years"},major:{value:1,unit:"decades"},format:{year:"numeric"}},{minor:{value:2,unit:"years"},major:{value:5,unit:"decades"},format:{year:"numeric"}},{minor:{value:5,unit:"decades"},major:{value:10,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:1,unit:"centuries"},major:{value:10,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:2,unit:"centuries"},major:{value:20,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:5,unit:"centuries"},major:{value:50,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:10,unit:"centuries"},major:{value:100,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:20,unit:"centuries"},major:{value:200,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:50,unit:"centuries"},major:{value:500,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:100,unit:"centuries"},major:{value:1e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:200,unit:"centuries"},major:{value:1e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:500,unit:"centuries"},major:{value:5e3,unit:"centuries"},format:{era:"short",year:"numeric"}},{minor:{value:1e3,unit:"centuries"},major:{value:1e4,unit:"centuries"},format:{era:"short",year:"numeric"}}];function M(t){return w("div",{class:k.warning},w("calcite-icon",{class:k.warningIcon,icon:"exclamation-mark-triangle"}),w("calcite-label",{alignment:"center",class:k.warningLabel,scale:"s"},t))}let F=class extends v{constructor(t,e){super(t,e),this._allLayouts=["auto","compact","wide"],this._ignoreNextSliderUpdate=!1,this._slider=new h({precision:0,visibleElements:{rangeLabels:!1},rangeLabelInputsEnabled:!1,thumbsConstrained:!1}),this._tickFormat=null,this.disabled=!1,this.labelFormatFunction=null,this.messages=null,this.tickConfigs=null,this.timeVisible=!1,this.viewModel=new j}initialize(){this.addHandles([a(()=>this._slider.values,t=>{if(this._ignoreNextSliderUpdate)return void(this._ignoreNextSliderUpdate=!1);const e=this.viewModel.valuesToTimeExtent(t);this.timeExtent?e?this.timeExtent.equals(e)||(this.timeExtent=e):this.timeExtent=null:e&&(this.timeExtent=e)}),a(()=>this.effectiveStops,()=>this._updateSliderSteps(),s)])}loadDependencies(){return f({action:()=>import("@geoscene/calcite-components/dist/components/calcite-action"),"action-menu":()=>import("@geoscene/calcite-components/dist/components/calcite-action-menu"),button:()=>import("@geoscene/calcite-components/dist/components/calcite-button"),icon:()=>import("@geoscene/calcite-components/dist/components/calcite-icon"),label:()=>import("@geoscene/calcite-components/dist/components/calcite-label")})}destroy(){this._slider.destroy(),this._tickFormat=null}get _dateFormat(){return this._getIntlOptions("short-date")}get _timeFormat(){return this._getIntlOptions("long-time")}get actions(){return this.viewModel.actions}set actions(t){this.viewModel.actions=t}get effectiveStops(){return this.viewModel.effectiveStops}get fullTimeExtent(){return this.viewModel.fullTimeExtent}set fullTimeExtent(t){this.viewModel.fullTimeExtent=t}get icon(){return"clock"}set icon(t){this._overrideIfSome("icon",t)}get interactive(){return!(this.disabled||"disabled"===this.viewModel.state||this.timeZone===c)}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}set layout(t){this._set("layout",this._allLayouts.includes(t)?t:"auto")}get loop(){return this.viewModel.loop}set loop(t){this.viewModel.loop=t}get mode(){return this.viewModel.mode}set mode(t){this.viewModel.mode=t}get playRate(){return this.viewModel.playRate}set playRate(t){this.viewModel.playRate=t}get stops(){return this.viewModel.stops}set stops(t){this.viewModel.stops=t}get tickFormats(){const{timeZone:t}=this;return S.map(({minor:e,major:i,format:a})=>({minor:new p(e),major:new p(i),format:{...a,timeZone:t}}))}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(t){this.viewModel.timeExtent=t}get timeZone(){return this.viewModel.view?.timeZone??d}set timeZone(t){this._overrideIfSome("timeZone",t)}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}next(){return this.viewModel.next()}play(){return this.viewModel.play()}previous(){return this.viewModel.previous()}stop(){return this.viewModel.stop()}render(){const{_slider:t,actions:i,domNode:a,effectiveStops:s,fullTimeExtent:r,interactive:o,messages:n,mode:l,tickConfigs:u,timeExtent:c,timeVisible:d,viewModel:{state:p,timeExtentValues:h}}=this;if(r){const{start:e,end:i}=r;if(e&&i){const a=e.getTime(),s=i.getTime(),r=t.min!==a||t.max!==s;if(r&&(t.min=a,t.max=s),u)t.tickConfigs!==u&&(t.tickConfigs=u);else{const e=(s-a)/(t.trackElement?.offsetWidth||400),i=this.tickFormats.find(({minor:t})=>t.toMilliseconds()>T*e)??this.tickFormats.at(-1),o=i&&this._tickFormat!==i;if(o&&(this._tickFormat=i),r||o){const e={mode:"position",values:this._getTickPositions(i.minor),labelsVisible:!1,tickCreatedFunction:(t,e)=>{e?.classList.add(k.sliderMinorTick)}},a={mode:"position",values:this._getTickPositions(i.major),labelsVisible:!0,tickCreatedFunction:(t,e)=>{e?.classList.add(k.sliderMajorTick)},labelFormatFunction:t=>m(t,i.format)};t.tickConfigs=[e,a]}}}}const v=!this.fullTimeExtent?.start||!this.fullTimeExtent.end||!this.timeExtent||this.timeExtent.isAllTime||this.timeExtent.isEmpty||this.timeExtent.start&&(this.timeExtent.start<this.fullTimeExtent.start||this.timeExtent.start>this.fullTimeExtent.end)||this.timeExtent.end&&(this.timeExtent.end>this.fullTimeExtent.end||this.timeExtent.end<this.fullTimeExtent.start);if(v)switch(this._ignoreNextSliderUpdate=!0,l){case"time-window":t.values=[t.min,t.max];break;case"instant":case"cumulative-from-end":t.values=[t.min];break;case"cumulative-from-start":t.values=[t.max]}else h?e(t.values,h)||(t.values=h):t.values=null;t.disabled=!o;const f=v||!o||!s?.length,b="auto"===this.layout?a.clientWidth<_?"compact":"wide":this.layout,x=w("calcite-button",{appearance:"transparent",bind:this,class:k.play,disabled:f,iconStart:"playing"===p?"pause":"play",kind:"neutral",label:"playing"===p?n.control.stop:n.control.play,onclick:this._playOrStopClick,scale:"wide"===b?"l":"m",width:"full"}),j=this.labelFormatFunction?w("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:k.timeExtentStartDate,"data-date":c?[c.start,c.end]:null,"data-layout":b,"data-type":"extent",key:k.timeExtentStartDate}):!c||c.isAllTime?M(n.noTimeExtent):c.isEmpty?M(n.emptyTimeExtent):[c?.start&&w("div",{class:k.timeExtentStartGroup,key:k.timeExtentStartGroup},w("calcite-label",{alignment:"center",class:k.timeExtentStartDate,key:k.timeExtentStartDate,scale:"s"},this._formatDate(c.start)),d?w("calcite-label",{alignment:"center",class:k.timeExtentStartTime,key:k.timeExtentStartTime,scale:"s"},this._formatTime(c.start)):null),c.start&&c.end&&c.start.getTime()!==c.end.getTime()&&w("div",{class:k.timeExtentSeparator,key:k.timeExtentSeparator}),c?.end&&(!c.start||c.start.getTime()!==c.end.getTime())&&w("div",{class:k.timeExtentEndGroup,key:k.timeExtentEndGroup},w("calcite-label",{alignment:"center",class:k.timeExtentEndDate,key:k.timeExtentEndDate,scale:"s"},this._formatDate(c.end)),d?w("calcite-label",{alignment:"center",class:k.timeExtentEndTime,key:k.timeExtentEndTime,scale:"s"},this._formatTime(c.end)):null)],S=w("div",{class:k.timeExtent},j),F=this.labelFormatFunction?w("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:k.minDate,"data-date":r?.start,"data-layout":b,"data-type":"min",key:k.minDate}):r?.start&&[w("calcite-label",{class:k.minDate,key:k.minDate,scale:"s"},this._formatDate(r.start)),d&&w("calcite-label",{class:k.minTime,key:k.minTime,scale:"s"},this._formatTime(r.start))],D=w("div",{class:k.min},F),C=w("div",{class:k.slider},t.render()),L=this.labelFormatFunction?w("div",{afterCreate:this._createLabel,afterUpdate:this._createLabel,bind:this,class:k.maxDate,"data-date":r?.end,"data-layout":b,"data-type":"max",key:k.maxDate}):r?.end&&[w("calcite-label",{class:k.maxDate,key:k.maxDate,scale:"s"},this._formatDate(r.end)),d&&w("calcite-label",{class:k.maxTime,key:k.maxTime,scale:"s"},this._formatTime(r.end))],U=w("div",{class:k.max},L),Z=w("calcite-button",{appearance:"transparent",bind:this,class:k.previous,disabled:f||"playing"===p,iconStart:"reverse",kind:"neutral",label:n.pagination.previous,onclick:this._previousClick,scale:"wide"===b?"l":"m",width:"full"}),R=w("calcite-button",{appearance:"transparent",bind:this,class:k.next,disabled:f||"playing"===p,iconStart:"forward",kind:"neutral",label:n.pagination.next,onclick:this._nextClick,scale:"wide"===b?"l":"m",width:"full"}),I=i?.length>0,O=I&&w("calcite-action-menu",{class:k.actions,label:n.options},i.toArray().map(t=>w("calcite-action",{bind:this,icon:t.icon,id:t.id,onclick:()=>this.viewModel.triggerAction(t),text:t.title,textEnabled:!0})));return w("div",{afterCreate:t=>{this.addHandles(g(t,()=>this.scheduleRender()))},"aria-label":n.widgetLabel,class:this.classes(k.timeSlider,y.widget,`${k.timeSliderMode}${l}`,`${k.timeSliderLayout}${b}`,!o&&k.timeSliderDisabled,v&&k.timeSliderOutOfBounds,I&&k.hasActions,E(this.container))},"wide"===b&&w("div",{class:k.timeSliderRow},w("div",{class:k.playbackControls},[x,S,D,C,U,Z,R]),O),"compact"===b&&[w("div",{class:k.timeSliderRow,key:"time-slider-row-1"},[S,O]),w("div",{class:k.timeSliderRow,key:"time-slider-row-2"},[C]),w("div",{class:k.timeSliderRow,key:"time-slider-row-3"},[D,Z,x,R,U])])}updateWebDocument(t){this.viewModel?.updateWebDocument(t)}_createLabel(t){if(!this.labelFormatFunction)return;const e=t.getAttribute("data-type"),i=t.getAttribute("data-layout"),a=t["data-date"];this.labelFormatFunction(a,e,t,i)}_formatDate(t){return m(t,this._dateFormat)}_formatTime(t){return m(t,this._timeFormat)}_getIntlOptions(t){const{timeZone:e}=this;return{...u(t),timeZone:e}}_getTickPositions(t){const{fullTimeExtent:e}=this;if(!e?.start||!e.end)return[];const{start:i,end:a}=e,s=[],{value:n,unit:l}=t;let m=r(i,l,this.timeZone);for(;m.getTime()<=a.getTime();)m.getTime()>=i.getTime()&&s.push(m.getTime()),m=o(m,n,l,this.timeZone);return s}_updateSliderSteps(){this._slider.steps=this.effectiveStops&&this.effectiveStops.length>0?this.effectiveStops.map(t=>t.getTime()):null}_playOrStopClick(){switch(this.viewModel.state){case"ready":this.viewModel.play();break;case"playing":this.viewModel.stop();break;case"disabled":break;default:i(this.viewModel.state)}}_previousClick(){this.viewModel.previous()}_nextClick(){this.viewModel.next()}};t([n()],F.prototype,"_dateFormat",null),t([n()],F.prototype,"_timeFormat",null),t([n()],F.prototype,"actions",null),t([n()],F.prototype,"disabled",void 0),t([n()],F.prototype,"effectiveStops",null),t([n()],F.prototype,"fullTimeExtent",null),t([n()],F.prototype,"icon",null),t([n({readOnly:!0})],F.prototype,"interactive",null),t([n()],F.prototype,"label",null),t([n()],F.prototype,"labelFormatFunction",void 0),t([n({value:"auto"})],F.prototype,"layout",null),t([n()],F.prototype,"loop",null),t([n(),b("geoscene/widgets/TimeSlider/t9n/TimeSlider")],F.prototype,"messages",void 0),t([n()],F.prototype,"mode",null),t([n()],F.prototype,"playRate",null),t([n()],F.prototype,"stops",null),t([n()],F.prototype,"tickConfigs",void 0),t([n()],F.prototype,"tickFormats",null),t([n()],F.prototype,"timeExtent",null),t([n({nonNullable:!0})],F.prototype,"timeVisible",void 0),t([n()],F.prototype,"timeZone",null),t([n()],F.prototype,"view",null),t([n({type:j}),x("trigger-action")],F.prototype,"viewModel",void 0),F=t([l("geoscene.widgets.TimeSlider")],F);const D=F;export{D as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{deprecateWidget as t}from"../core/deprecate.js";import i from"../core/Logger.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import{systemTimeZone as r,system as n,unknown as a}from"../time/constants.js";import c from"./Widget.js";import{loadCalciteComponents as l}from"./support/componentsUtils.js";import{globalCss as d}from"./support/globalCss.js";import{isRTL as p}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as h}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import{css as b}from"./TimeZoneLabel/css.js";import g from"./TimeZoneLabel/TimeZoneLabelViewModel.js";let u=class extends c{constructor(e,s){super(e,s),this.disabled=!1,this.expanded=!1,this.messages=null,this.viewModel=new g,this._onExpanderClick=()=>{this.expanded=!this.expanded},t(i.getLogger(this),"Time Zone Label","geoscene-time-zone-label",{version:"4.33"})}loadDependencies(){return l({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),"input-time-zone":()=>import("@esri/calcite-components/dist/components/calcite-input-time-zone"),label:()=>import("@esri/calcite-components/dist/components/calcite-label")})}get expandDirection(){if(!this.view||!this.container)return"end";const e=p();switch(this.view.ui.getPosition(this.container)){case"top-right":case"bottom-right":case"top-trailing":case"bottom-trailing":return e?"end":"start";case"top-left":case"bottom-left":case"top-leading":case"bottom-leading":return e?"start":"end";default:return"end"}}set expandDirection(e){this._overrideIfSome("expandDirection",e)}get icon(){return"time-zone"}set icon(e){this._overrideIfSome("icon",e)}get interactive(){return!(this.disabled||"disabled"===this.viewModel.state)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const{expandDirection:e,interactive:t,label:i}=this,s=this.classes(b.base,d.widget,!t&&d.disabled),o=[this._renderExpander(),this._renderName(),this._renderBadge()];return"start"===e&&o.reverse(),h("div",{"aria-label":i,class:s},o)}_getIcon(){const{expanded:e,expandDirection:t}=this;return e?p()?"start"===t?"chevrons-left":"chevrons-right":"start"===t?"chevrons-right":"chevrons-left":"time-zone"}_renderExpander(){const{interactive:e,label:t}=this,i=this._getIcon();return h("calcite-action",{active:!1,class:b.expander,disabled:!e,icon:i,key:b.expander,onclick:this._onExpanderClick,scale:"s",text:t,title:t})}_renderBadge(){const{expanded:e,interactive:t}=this;return h("div",{class:this.classes(b.badge,!e&&b.badgeHidden,!t&&b.badgeDisabled)},h("calcite-icon",{class:b.badgeIcon,icon:"time-zone",scale:"s"}))}_renderName(){const e=this.viewModel.view?.timeZone,t=e===n?r:e,i=e===a;return[h("calcite-label",{class:this.classes(b.label,(!this.expanded||!i)&&b.labelHidden,!this.interactive&&b.labelDisabled)},this.messages.noAdjustment),h("calcite-input-time-zone",{class:this.classes(b.name,(!this.expanded||!t||i)&&b.nameHidden),disabled:!this.interactive,mode:"region",readOnly:!0,value:t})]}};e([s()],u.prototype,"disabled",void 0),e([s()],u.prototype,"expandDirection",null),e([s()],u.prototype,"expanded",void 0),e([s()],u.prototype,"icon",null),e([s({readOnly:!0})],u.prototype,"interactive",null),e([s()],u.prototype,"label",null),e([s(),m("geoscene/widgets/TimeZoneLabel/t9n/TimeZoneLabel")],u.prototype,"messages",void 0),e([s()],u.prototype,"view",null),e([s()],u.prototype,"viewModel",void 0),u=e([o("geoscene.widgets.TimeZoneLabel")],u);const v=u;export{v as default};
5
+ import{__decorate as e}from"tslib";import{deprecateWidget as t}from"../core/deprecate.js";import i from"../core/Logger.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import{systemTimeZone as r,system as n,unknown as a}from"../time/constants.js";import c from"./Widget.js";import{loadCalciteComponents as l}from"./support/componentsUtils.js";import{globalCss as d}from"./support/globalCss.js";import{isRTL as p}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as h}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import{css as b}from"./TimeZoneLabel/css.js";import g from"./TimeZoneLabel/TimeZoneLabelViewModel.js";let u=class extends c{constructor(e,s){super(e,s),this.disabled=!1,this.expanded=!1,this.messages=null,this.viewModel=new g,this._onExpanderClick=()=>{this.expanded=!this.expanded},t(i.getLogger(this),"Time Zone Label","geoscene-time-zone-label",{version:"4.33"})}loadDependencies(){return l({action:()=>import("@geoscene/calcite-components/dist/components/calcite-action"),icon:()=>import("@geoscene/calcite-components/dist/components/calcite-icon"),"input-time-zone":()=>import("@geoscene/calcite-components/dist/components/calcite-input-time-zone"),label:()=>import("@geoscene/calcite-components/dist/components/calcite-label")})}get expandDirection(){if(!this.view||!this.container)return"end";const e=p();switch(this.view.ui.getPosition(this.container)){case"top-right":case"bottom-right":case"top-trailing":case"bottom-trailing":return e?"end":"start";case"top-left":case"bottom-left":case"top-leading":case"bottom-leading":return e?"start":"end";default:return"end"}}set expandDirection(e){this._overrideIfSome("expandDirection",e)}get icon(){return"time-zone"}set icon(e){this._overrideIfSome("icon",e)}get interactive(){return!(this.disabled||"disabled"===this.viewModel.state)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const{expandDirection:e,interactive:t,label:i}=this,s=this.classes(b.base,d.widget,!t&&d.disabled),o=[this._renderExpander(),this._renderName(),this._renderBadge()];return"start"===e&&o.reverse(),h("div",{"aria-label":i,class:s},o)}_getIcon(){const{expanded:e,expandDirection:t}=this;return e?p()?"start"===t?"chevrons-left":"chevrons-right":"start"===t?"chevrons-right":"chevrons-left":"time-zone"}_renderExpander(){const{interactive:e,label:t}=this,i=this._getIcon();return h("calcite-action",{active:!1,class:b.expander,disabled:!e,icon:i,key:b.expander,onclick:this._onExpanderClick,scale:"s",text:t,title:t})}_renderBadge(){const{expanded:e,interactive:t}=this;return h("div",{class:this.classes(b.badge,!e&&b.badgeHidden,!t&&b.badgeDisabled)},h("calcite-icon",{class:b.badgeIcon,icon:"time-zone",scale:"s"}))}_renderName(){const e=this.viewModel.view?.timeZone,t=e===n?r:e,i=e===a;return[h("calcite-label",{class:this.classes(b.label,(!this.expanded||!i)&&b.labelHidden,!this.interactive&&b.labelDisabled)},this.messages.noAdjustment),h("calcite-input-time-zone",{class:this.classes(b.name,(!this.expanded||!t||i)&&b.nameHidden),disabled:!this.interactive,mode:"region",readOnly:!0,value:t})]}};e([s()],u.prototype,"disabled",void 0),e([s()],u.prototype,"expandDirection",null),e([s()],u.prototype,"expanded",void 0),e([s()],u.prototype,"icon",null),e([s({readOnly:!0})],u.prototype,"interactive",null),e([s()],u.prototype,"label",null),e([s(),m("geoscene/widgets/TimeZoneLabel/t9n/TimeZoneLabel")],u.prototype,"messages",void 0),e([s()],u.prototype,"view",null),e([s()],u.prototype,"viewModel",void 0),u=e([o("geoscene.widgets.TimeZoneLabel")],u);const v=u;export{v as default};
package/widgets/Track.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.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as o}from"tslib";import{deprecateWidget as e}from"../core/deprecate.js";import t from"../core/Logger.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{vmEvent as c}from"./support/decorators/vmEvent.js";import{tsx as p}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import d from"./Track/TrackViewModel.js";const g={base:"geoscene-track"};let m=class extends s{constructor(o,i){super(o,i),this.messages=null,this.viewModel=new d,this._toggleTracking=()=>{const o=this.viewModel;o&&"feature-unsupported"!==o.state&&"disabled"!==o.state&&("tracking"!==o.state&&"waiting"!==o.state?this.viewModel.start():this.viewModel.stop())},e(t.getLogger(this),"Track","geoscene-track",{version:"4.32"})}loadDependencies(){return a({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")})}get geolocationOptions(){return this.viewModel.geolocationOptions}set geolocationOptions(o){this.viewModel.geolocationOptions=o}get goToLocationEnabled(){return this.viewModel.goToLocationEnabled}set goToLocationEnabled(o){this.viewModel.goToLocationEnabled=o}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(o){this.viewModel.goToOverride=o}get graphic(){return this.viewModel.graphic}set graphic(o){this.viewModel.graphic=o}get icon(){return"compass-north-circle"}set icon(o){this._overrideIfSome("icon",o)}get label(){return this.messages?.widgetLabel??""}set label(o){this._overrideIfSome("label",o)}get rotationEnabled(){return this.viewModel.rotationEnabled}set rotationEnabled(o){this.viewModel.rotationEnabled=o}get scale(){return this.viewModel.scale}set scale(o){this.viewModel.scale=o}get tracking(){return this.viewModel.tracking}get view(){return this.viewModel.view}set view(o){this.viewModel.view=o}start(){this.viewModel.start()}stop(){this.viewModel.stop()}render(){const{viewModel:o,messages:e,icon:t}=this,i=o?.state,r="tracking"===i,s=this._localizeError(this.viewModel?.error),a=(r?e?.stopTracking:e?.startTracking)??"",l="feature-unsupported"===i,c=("tracking"===i?"pause":void 0)??t;return p("div",{class:this.classes(g.base,n.widget)},!l&&p("calcite-button",{class:n.widgetButton,disabled:"disabled"===i,iconStart:c,kind:"neutral",label:a,loading:"waiting"===i,onclick:this._toggleTracking,title:a}),s?p("calcite-tooltip",{open:!0,overlayPositioning:"fixed",referenceElement:this.container},s):null)}_localizeError(o){return o instanceof GeolocationPositionError?o.code===GeolocationPositionError.PERMISSION_DENIED?this.messages?.permissionError:o.code===GeolocationPositionError.TIMEOUT?this.messages?.timeoutError:this.messages?.positionUnavailable:o instanceof Error?o.message:void 0}};o([i()],m.prototype,"geolocationOptions",null),o([i()],m.prototype,"goToLocationEnabled",null),o([i()],m.prototype,"goToOverride",null),o([i()],m.prototype,"graphic",null),o([i()],m.prototype,"icon",null),o([i()],m.prototype,"label",null),o([i(),l("geoscene/widgets/Track/t9n/Track")],m.prototype,"messages",void 0),o([i()],m.prototype,"rotationEnabled",null),o([i()],m.prototype,"scale",null),o([i({readOnly:!0})],m.prototype,"tracking",null),o([i()],m.prototype,"view",null),o([i({type:d}),c(["track","track-error"])],m.prototype,"viewModel",void 0),m=o([r("geoscene.widgets.Track")],m);const u=m;export{u as default};
5
+ import{__decorate as o}from"tslib";import{deprecateWidget as e}from"../core/deprecate.js";import t from"../core/Logger.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{vmEvent as c}from"./support/decorators/vmEvent.js";import{tsx as p}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import d from"./Track/TrackViewModel.js";const g={base:"geoscene-track"};let m=class extends s{constructor(o,i){super(o,i),this.messages=null,this.viewModel=new d,this._toggleTracking=()=>{const o=this.viewModel;o&&"feature-unsupported"!==o.state&&"disabled"!==o.state&&("tracking"!==o.state&&"waiting"!==o.state?this.viewModel.start():this.viewModel.stop())},e(t.getLogger(this),"Track","geoscene-track",{version:"4.32"})}loadDependencies(){return a({button:()=>import("@geoscene/calcite-components/dist/components/calcite-button"),tooltip:()=>import("@geoscene/calcite-components/dist/components/calcite-tooltip")})}get geolocationOptions(){return this.viewModel.geolocationOptions}set geolocationOptions(o){this.viewModel.geolocationOptions=o}get goToLocationEnabled(){return this.viewModel.goToLocationEnabled}set goToLocationEnabled(o){this.viewModel.goToLocationEnabled=o}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(o){this.viewModel.goToOverride=o}get graphic(){return this.viewModel.graphic}set graphic(o){this.viewModel.graphic=o}get icon(){return"compass-north-circle"}set icon(o){this._overrideIfSome("icon",o)}get label(){return this.messages?.widgetLabel??""}set label(o){this._overrideIfSome("label",o)}get rotationEnabled(){return this.viewModel.rotationEnabled}set rotationEnabled(o){this.viewModel.rotationEnabled=o}get scale(){return this.viewModel.scale}set scale(o){this.viewModel.scale=o}get tracking(){return this.viewModel.tracking}get view(){return this.viewModel.view}set view(o){this.viewModel.view=o}start(){this.viewModel.start()}stop(){this.viewModel.stop()}render(){const{viewModel:o,messages:e,icon:t}=this,i=o?.state,r="tracking"===i,s=this._localizeError(this.viewModel?.error),a=(r?e?.stopTracking:e?.startTracking)??"",l="feature-unsupported"===i,c=("tracking"===i?"pause":void 0)??t;return p("div",{class:this.classes(g.base,n.widget)},!l&&p("calcite-button",{class:n.widgetButton,disabled:"disabled"===i,iconStart:c,kind:"neutral",label:a,loading:"waiting"===i,onclick:this._toggleTracking,title:a}),s?p("calcite-tooltip",{open:!0,overlayPositioning:"fixed",referenceElement:this.container},s):null)}_localizeError(o){return o instanceof GeolocationPositionError?o.code===GeolocationPositionError.PERMISSION_DENIED?this.messages?.permissionError:o.code===GeolocationPositionError.TIMEOUT?this.messages?.timeoutError:this.messages?.positionUnavailable:o instanceof Error?o.message:void 0}};o([i()],m.prototype,"geolocationOptions",null),o([i()],m.prototype,"goToLocationEnabled",null),o([i()],m.prototype,"goToOverride",null),o([i()],m.prototype,"graphic",null),o([i()],m.prototype,"icon",null),o([i()],m.prototype,"label",null),o([i(),l("geoscene/widgets/Track/t9n/Track")],m.prototype,"messages",void 0),o([i()],m.prototype,"rotationEnabled",null),o([i()],m.prototype,"scale",null),o([i({readOnly:!0})],m.prototype,"tracking",null),o([i()],m.prototype,"view",null),o([i({type:d}),c(["track","track-error"])],m.prototype,"viewModel",void 0),m=o([r("geoscene.widgets.Track")],m);const u=m;export{u as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{getAssetUrl as t}from"../../assets.js";import o from"../../Color.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import i from"../../symbols/LineSymbolMarker.js";import n from"../../symbols/SimpleLineSymbol.js";import l from"../Widget.js";import{loadCalciteComponents as c}from"../support/componentsUtils.js";import"../support/widgetUtils.js";import{messageBundle as a}from"../support/decorators/messageBundle.js";import{tsx as d}from"../support/jsxFactory.js";import"@arcgis/toolkit/dom";import p from"./VisibleElementsSettingsPane.js";const m="geoscene-un-associations",u={divControlsSymbolPicker:`${m}__div-controls-symbol-picker`,dropdown:`${m}__dropdown`,dropdownItemLineCap:`${m}__dropdown-item-line-cap`,dropdownItemLinePattern:`${m}__dropdown-item-line-pattern`,dropdownSelectedItemLineCap:`${m}__dropdown-selected-item-line-cap`,dropdownSelectedItemLinePattern:`${m}__dropdown-selected-item-line-pattern`,dropdownTrigger:`${m}__dropdown-trigger`,labelAndToggle:`${m}__label-and-toggle`};let w=class extends l{constructor(e,t){super(e,t),this._lineCapTypes=["butt","round","square"],this._lineStyleTypes=["solid","dash","dash-dot","dot","long-dash","long-dash-dot","long-dash-dot-dot","short-dash","short-dash-dot","short-dash-dot-dot","short-dot"],this.lineSymbol=new n,this.messages=null,this.showArrows=!1,this.visibleElements=new p,this._afterComponentCreate=this._afterComponentCreate.bind(this)}render(){const{messages:{input:{lineCap:e,lineColor:t,lineStyle:o,lineWidth:r,showArrows:s}},visibleElements:i}=this,n=this.lineSymbol;return d("div",{class:u.divControlsSymbolPicker},i.arrowsToggle?this._renderToggle(s,this.showArrows,n,"marker"):void 0,i.capSelect?this._renderLineStylePicker(e,this._lineCapTypes,n,"cap"):void 0,i.colorPicker&&n.color?this._renderColorPicker(t,n.color.toHex(),n,"color"):void 0,i.stylePicker?this._renderLineStylePicker(o,this._lineStyleTypes,n,"style"):void 0,i.widthInput?this._renderNumberInput(r,n.width.toString(),n,"width"):void 0)}loadDependencies(){return c({dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),input:()=>import("@esri/calcite-components/dist/components/calcite-input"),"input-number":()=>import("@esri/calcite-components/dist/components/calcite-input-number"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch")})}_afterComponentCreate(e){"value"in e&&null!=e.value&&"setNumberValue"in e&&e.setNumberValue({committing:!1,value:e.value,origin:"direct"})}_renderColorPicker(e,t,r,s){return d("calcite-label",{scale:"s"},e,d("calcite-input",{scale:"s",type:"color",value:t,onCalciteInputInput:e=>{const t=e.currentTarget;r.set(s,new o(t.value))}}))}_renderLineStylePicker(e,o,r,s){const i="style"===s,n="geoscene/widgets/UtilityNetworkAssociations/assets/img";function l(e,o){return d("calcite-dropdown-item",{label:e,selected:r[o]===e},d("div",{class:i?u.dropdownItemLinePattern:u.dropdownItemLineCap,style:`background-image:url(${t(`${n}/line-${i?"patterns":"caps"}/${e}.png`)})`}))}return d("calcite-label",{scale:"s"},e,d("calcite-dropdown",{class:u.dropdown,onCalciteDropdownSelect:e=>{const t=e.currentTarget;r.set(s,t.selectedItems[0].label)}},d("div",{class:u.dropdownTrigger,role:"button",slot:"trigger"},d("div",{class:i?u.dropdownSelectedItemLinePattern:u.dropdownSelectedItemLineCap,style:`background-image:url(${t(`${n}/line-${i?"patterns":"caps"}/${r[s]}.png`)})`})),d("calcite-dropdown-group",null,o.map(e=>l(e,s)))))}_renderNumberInput(e,t,o,r){return d("calcite-label",{scale:"s"},e,d("calcite-input-number",{afterCreate:this._afterComponentCreate,max:10,min:1,scale:"s",step:1,type:"number",value:t,onCalciteInputNumberChange:e=>{const t=e.currentTarget;o.set(r,t.value)}}))}_renderToggle(e,t,o,r){return d("div",{class:u.labelAndToggle},d("calcite-label",{scale:"s"},e),d("calcite-switch",{bind:this,checked:t,onCalciteSwitchChange:e=>{e.currentTarget.checked?o.set(r,new i({style:"arrow"})):o.set(r,null)}}))}};e([r()],w.prototype,"lineSymbol",void 0),e([r(),a("geoscene/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations")],w.prototype,"messages",void 0),e([r()],w.prototype,"showArrows",void 0),e([r({type:p,nonNullable:!0})],w.prototype,"visibleElements",void 0),w=e([s("geoscene.widgets.UtilityNetworkAssociations.UtilityNetworkAssociationsLineSymbolPicker")],w);const g=w;export{g as default};
5
+ import{__decorate as e}from"tslib";import{getAssetUrl as t}from"../../assets.js";import o from"../../Color.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import i from"../../symbols/LineSymbolMarker.js";import n from"../../symbols/SimpleLineSymbol.js";import l from"../Widget.js";import{loadCalciteComponents as c}from"../support/componentsUtils.js";import"../support/widgetUtils.js";import{messageBundle as a}from"../support/decorators/messageBundle.js";import{tsx as d}from"../support/jsxFactory.js";import"@arcgis/toolkit/dom";import p from"./VisibleElementsSettingsPane.js";const m="geoscene-un-associations",u={divControlsSymbolPicker:`${m}__div-controls-symbol-picker`,dropdown:`${m}__dropdown`,dropdownItemLineCap:`${m}__dropdown-item-line-cap`,dropdownItemLinePattern:`${m}__dropdown-item-line-pattern`,dropdownSelectedItemLineCap:`${m}__dropdown-selected-item-line-cap`,dropdownSelectedItemLinePattern:`${m}__dropdown-selected-item-line-pattern`,dropdownTrigger:`${m}__dropdown-trigger`,labelAndToggle:`${m}__label-and-toggle`};let w=class extends l{constructor(e,t){super(e,t),this._lineCapTypes=["butt","round","square"],this._lineStyleTypes=["solid","dash","dash-dot","dot","long-dash","long-dash-dot","long-dash-dot-dot","short-dash","short-dash-dot","short-dash-dot-dot","short-dot"],this.lineSymbol=new n,this.messages=null,this.showArrows=!1,this.visibleElements=new p,this._afterComponentCreate=this._afterComponentCreate.bind(this)}render(){const{messages:{input:{lineCap:e,lineColor:t,lineStyle:o,lineWidth:r,showArrows:s}},visibleElements:i}=this,n=this.lineSymbol;return d("div",{class:u.divControlsSymbolPicker},i.arrowsToggle?this._renderToggle(s,this.showArrows,n,"marker"):void 0,i.capSelect?this._renderLineStylePicker(e,this._lineCapTypes,n,"cap"):void 0,i.colorPicker&&n.color?this._renderColorPicker(t,n.color.toHex(),n,"color"):void 0,i.stylePicker?this._renderLineStylePicker(o,this._lineStyleTypes,n,"style"):void 0,i.widthInput?this._renderNumberInput(r,n.width.toString(),n,"width"):void 0)}loadDependencies(){return c({dropdown:()=>import("@geoscene/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@geoscene/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@geoscene/calcite-components/dist/components/calcite-dropdown-item"),input:()=>import("@geoscene/calcite-components/dist/components/calcite-input"),"input-number":()=>import("@geoscene/calcite-components/dist/components/calcite-input-number"),label:()=>import("@geoscene/calcite-components/dist/components/calcite-label"),switch:()=>import("@geoscene/calcite-components/dist/components/calcite-switch")})}_afterComponentCreate(e){"value"in e&&null!=e.value&&"setNumberValue"in e&&e.setNumberValue({committing:!1,value:e.value,origin:"direct"})}_renderColorPicker(e,t,r,s){return d("calcite-label",{scale:"s"},e,d("calcite-input",{scale:"s",type:"color",value:t,onCalciteInputInput:e=>{const t=e.currentTarget;r.set(s,new o(t.value))}}))}_renderLineStylePicker(e,o,r,s){const i="style"===s,n="geoscene/widgets/UtilityNetworkAssociations/assets/img";function l(e,o){return d("calcite-dropdown-item",{label:e,selected:r[o]===e},d("div",{class:i?u.dropdownItemLinePattern:u.dropdownItemLineCap,style:`background-image:url(${t(`${n}/line-${i?"patterns":"caps"}/${e}.png`)})`}))}return d("calcite-label",{scale:"s"},e,d("calcite-dropdown",{class:u.dropdown,onCalciteDropdownSelect:e=>{const t=e.currentTarget;r.set(s,t.selectedItems[0].label)}},d("div",{class:u.dropdownTrigger,role:"button",slot:"trigger"},d("div",{class:i?u.dropdownSelectedItemLinePattern:u.dropdownSelectedItemLineCap,style:`background-image:url(${t(`${n}/line-${i?"patterns":"caps"}/${r[s]}.png`)})`})),d("calcite-dropdown-group",null,o.map(e=>l(e,s)))))}_renderNumberInput(e,t,o,r){return d("calcite-label",{scale:"s"},e,d("calcite-input-number",{afterCreate:this._afterComponentCreate,max:10,min:1,scale:"s",step:1,type:"number",value:t,onCalciteInputNumberChange:e=>{const t=e.currentTarget;o.set(r,t.value)}}))}_renderToggle(e,t,o,r){return d("div",{class:u.labelAndToggle},d("calcite-label",{scale:"s"},e),d("calcite-switch",{bind:this,checked:t,onCalciteSwitchChange:e=>{e.currentTarget.checked?o.set(r,new i({style:"arrow"})):o.set(r,null)}}))}};e([r()],w.prototype,"lineSymbol",void 0),e([r(),a("geoscene/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations")],w.prototype,"messages",void 0),e([r()],w.prototype,"showArrows",void 0),e([r({type:p,nonNullable:!0})],w.prototype,"visibleElements",void 0),w=e([s("geoscene.widgets.UtilityNetworkAssociations.UtilityNetworkAssociationsLineSymbolPicker")],w);const g=w;export{g as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.34/geoscene/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{watch as i,on as s,initial as e}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import"./support/widgetUtils.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{tsx as r}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import d from"./UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js";import h from"./UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js";import m from"./UtilityNetworkAssociations/VisibleElements.js";const A="geoscene-un-associations",u={action:`${A}__action`,actionRefresh:`${A}__action-refresh`,blockContent:`${A}__block-content`,blockSectionSettings:`${A}__block-section-settings`,combobox:`${A}__combobox`,comboboxItem:`${A}__combobox-item`,divControlsMain:`${A}__div-controls-main`,label:`${A}__label`,labelAndCombobox:`${A}__label-and-combobox`,labelAndSlider:`${A}__label-and-slider`,labelAndToggle:`${A}__label-and-toggle`,panel:`${A}__panel`,slider:`${A}__slider`,statusIconContainer:`${A}__status-icon-container`,statusIconWarning:`${A}__status-icon-warning`,switch:`${A}__switch`,switchContainer:`${A}__switch-container`,widgetContainer:`${A}__widget-container`};let w=class extends l{constructor(t,i){super(t,i),this._autoRefreshAssociations=!0,this._associationsOptionsEnabled=!1,this._maxAllowableAssociationsSliderMax=1e3,this._maxAllowableAssociationsSliderMin=250,this._maxAllowableAssociationsSliderStep=250,this.messages=null,this.messagesCommon=null,this.viewModel=new h,this.visibleElements=new m}initialize(){this.addHandles([i(()=>[this.view?.stationary,this.showAssociationsEnabled,this.includeConnectivityAssociations,this.includeStructuralAttachmentAssociations,this.maxAllowableAssociations],()=>{!0===this.autoRefreshAssociations&&(!0===this.showAssociationsEnabled?this.viewModel.showAssociations():this.viewModel.removeAssociations())}),i(()=>this.view?.map?.utilityNetworks,t=>{t?.items.forEach(async(t,i)=>{t.loaded||await t.load(),0===i&&(this.utilityNetwork=t)})},e),s(()=>this.view?.map?.utilityNetworks,"change",t=>{const i=t.target;t.added.forEach(async t=>{t.loaded||await t.load()}),t.removed.some(t=>t.layerUrl===this.utilityNetwork?.layerUrl)&&(this.utilityNetwork=null),this.utilityNetwork=i.length?i.getItemAt(0):null})])}get autoRefreshAssociations(){return this._autoRefreshAssociations}set autoRefreshAssociations(t){this._autoRefreshAssociations=t}get connectivityAssociationsLineSymbol(){return this.viewModel.connectivityAssociationsLineSymbol}set connectivityAssociationsLineSymbol(t){this.viewModel.connectivityAssociationsLineSymbol=t}get icon(){return"view-associations"}set icon(t){this._overrideIfSome("icon",t)}get includeConnectivityAssociations(){return this.viewModel.includeConnectivityAssociations}set includeConnectivityAssociations(t){this.viewModel.includeConnectivityAssociations=t}get includeStructuralAttachmentAssociations(){return this.viewModel.includeStructuralAttachmentAssociations}set includeStructuralAttachmentAssociations(t){this.viewModel.includeStructuralAttachmentAssociations=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get maxAllowableAssociations(){return this.viewModel.maxAllowableAssociations}set maxAllowableAssociations(t){this.viewModel.maxAllowableAssociations=t}get maxAllowableAssociationsSliderMax(){return this._maxAllowableAssociationsSliderMax}set maxAllowableAssociationsSliderMax(t){t<=this.maxAllowableAssociationsSliderMin||(this._maxAllowableAssociationsSliderMax=t)}get maxAllowableAssociationsSliderMin(){return this._maxAllowableAssociationsSliderMin}set maxAllowableAssociationsSliderMin(t){t<0||t>=this.maxAllowableAssociationsSliderMax||(this._maxAllowableAssociationsSliderMin=t)}get maxAllowableAssociationsSliderStep(){return this._maxAllowableAssociationsSliderStep}set maxAllowableAssociationsSliderStep(t){this._maxAllowableAssociationsSliderStep=t}get showArrowsConnectivity(){return this.viewModel.showArrowsConnectivity}set showArrowsConnectivity(t){this.viewModel.showArrowsConnectivity=t}get showArrowsStructuralAttachment(){return this.viewModel.showArrowsStructuralAttachment}set showArrowsStructuralAttachment(t){this.viewModel.showArrowsStructuralAttachment=t}get showAssociationsEnabled(){return this.viewModel.showAssociationsEnabled}set showAssociationsEnabled(t){this.viewModel.showAssociationsEnabled=t}get structuralAttachmentAssociationsLineSymbol(){return this.viewModel.structuralAttachmentAssociationsLineSymbol}set structuralAttachmentAssociationsLineSymbol(t){this.viewModel.structuralAttachmentAssociationsLineSymbol=t}get utilityNetwork(){return this.viewModel.utilityNetwork}set utilityNetwork(t){this.viewModel.utilityNetwork=t}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}render(){const{label:t}=this;return r("div",{class:u.widgetContainer},r("calcite-block",{class:u.blockContent,collapsible:!0,heading:t},this._renderStatusIcon(),this.autoRefreshAssociations?this._renderShowAssociationsSwitch():this._renderRefreshAssociationsAction(),this._renderContent()))}loadDependencies(){return a({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),block:()=>import("@esri/calcite-components/dist/components/calcite-block"),"block-section":()=>import("@esri/calcite-components/dist/components/calcite-block-section"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")})}_connectivityAssociationsSwitchChange(t){this.includeConnectivityAssociations=t.currentTarget.checked}_getLoadErrorMessagesAsNotices(t,i){return r("calcite-notice",{closable:!1,key:`error-notice-${i}`,kind:"warning",open:!0,scale:"s"},r("div",{slot:"message"},t))}_maxAllowableAssociationsSliderChange(t){this.maxAllowableAssociations=Number(t.currentTarget.value)}_refreshAssociations(){const{viewModel:t,viewModel:{state:i}}=this;"ready"!==i&&"warning"!==i||t.showAssociations()}_renderConnectivityAssociationsSettings(){const{messages:{input:{enableConnectivity:t}},visibleElements:{connectivityAssociationsSettings:i}}=this;if(i)return r("calcite-block-section",{class:u.blockSectionSettings,text:t},r(d,{id:`${this.id}-symbol-picker-connectivity`,lineSymbol:this.connectivityAssociationsLineSymbol,showArrows:this.showArrowsConnectivity,visibleElements:i}))}_renderConnectivityAssociationsToggle(){const{messages:{input:{enableConnectivity:t}}}=this;return r("div",{class:u.labelAndToggle,key:"connectivityAssociationsToggleDiv"},r("calcite-label",{class:u.label},t),r("calcite-switch",{bind:this,checked:this.includeConnectivityAssociations,disabled:!this._associationsOptionsEnabled&&this.autoRefreshAssociations,onCalciteSwitchChange:this._connectivityAssociationsSwitchChange}))}_renderComboboxItem({heading:t,value:i,selected:s}){return r("calcite-combobox-item",{class:u.comboboxItem,heading:t,selected:s,textLabel:t,value:i})}_renderContent(){const{viewModel:{loadErrors:t,state:i}}=this;return"disabled"===i?r("div",{class:u.divControlsMain,key:"loadErrorsDiv"},t.items.map(this._getLoadErrorMessagesAsNotices)):r("calcite-panel",{class:u.panel,disabled:"loading"===i},r("div",{class:u.divControlsMain},this._renderConnectivityAssociationsToggle(),this._renderStructuralAttachmentAssociationsToggle(),this._renderSettingsPane()))}_renderLoadingAction(t,i,s){return r("div",{key:t,slot:"control"},r("calcite-action",{id:i,loading:!0,text:s}),r("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:i},r("span",null,s)))}_renderMaxAllowableAssociationsSlider(){const{messages:{input:{maxAllowableAssociations:t}},visibleElements:{maxAllowableAssociationsSlider:i}}=this;if(i)return r("div",{class:u.labelAndSlider,key:"maxAllowableAssociationsSliderDiv"},r("calcite-label",{class:u.label},t),r("calcite-slider",{bind:this,class:u.slider,labelTicks:!0,max:this.maxAllowableAssociationsSliderMax,min:this.maxAllowableAssociationsSliderMin,scale:"s",snap:!0,step:this.maxAllowableAssociationsSliderStep,ticks:this.maxAllowableAssociationsSliderStep,value:this.maxAllowableAssociations,onCalciteSliderChange:this._maxAllowableAssociationsSliderChange}))}_renderRefreshAssociationsAction(){const{messages:{input:{refreshAssociations:t}},messagesCommon:{loading:i},viewModel:{state:s}}=this,e=`${this.id}-refresh-action`;if("disabled"!==s)return r("div",{class:u.actionRefresh,slot:"control"},r("calcite-action",{bind:this,class:u.action,icon:"refresh-f",id:e,loading:"loading"===s,onclick:this._refreshAssociations,text:t}),r("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:e},r("span",null,"loading"===s?i:t)))}_renderSettingsPane(){const{messagesCommon:{settings:t},visibleElements:{maxAllowableAssociationsSlider:i,connectivityAssociationsSettings:s,structuralAttachmentAssociationsSettings:e}}=this,o=(this.view?.map).utilityNetworks?.items;if(1!==o?.length||i||s||e)return r("calcite-block",{class:u.blockContent,collapsible:!0,heading:t},r("div",{class:u.divControlsMain},this._renderUtilityNetworkSettings(),this._renderMaxAllowableAssociationsSlider()),this._renderConnectivityAssociationsSettings(),this._renderStructuralAttachmentAssociationsSettings())}_renderShowAssociationsSwitch(){const{messages:{input:{enableAssociations:t}},messagesCommon:{loading:i},viewModel:{state:s}}=this,e=`${this.id}-show-associations-switch`;if("disabled"!==s)return"loading"===s?this._renderLoadingAction("loadingActionDiv",`${this.id}-loading-action`,i):r("div",{class:u.switchContainer,key:"switchDiv",slot:"control"},r("calcite-switch",{bind:this,checked:this.showAssociationsEnabled,class:u.switch,id:e,onCalciteSwitchChange:this._showAssociationsSwitchChange}),r("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:e},r("span",null,t)))}_renderStatusIcon(){const{messagesCommon:{executing:t},viewModel:{executionError:i,state:s}}=this;switch(s){case"disabled":return this._renderWarningIcon("statusDiv",`${this.id}-disabled-icon`,null);case"warning":return this._renderWarningIcon("statusDiv",`${this.id}-warning-icon`,i);case"executing":return this._renderLoadingAction("executingActionDiv",`${this.id}-executing-action`,t);default:return}}_renderStructuralAttachmentAssociationsSettings(){const{messages:{input:{enableStructuralAttachment:t}},visibleElements:{structuralAttachmentAssociationsSettings:i}}=this;if(i)return r("calcite-block-section",{class:u.blockSectionSettings,text:t},r(d,{id:`${this.id}-symbol-picker-structural-attachment`,lineSymbol:this.structuralAttachmentAssociationsLineSymbol,showArrows:this.showArrowsStructuralAttachment,visibleElements:i}))}_renderStructuralAttachmentAssociationsToggle(){const{messages:{input:{enableStructuralAttachment:t}}}=this;return r("div",{class:u.labelAndToggle,key:"structuralAttachmentAssociationsToggleDiv"},r("calcite-label",{class:u.label},t),r("calcite-switch",{bind:this,checked:this.includeStructuralAttachmentAssociations,disabled:!this._associationsOptionsEnabled&&this.autoRefreshAssociations,onCalciteSwitchChange:this._structuralAttAssociationsSwitchChange}))}_renderUtilityNetworkSettings(){const{messages:{input:{utilityNetwork:t}}}=this,i=(this.view?.map).utilityNetworks?.items;if(1===i?.length)return null;const s=i?.map(t=>{const i=t.title,s=t.layerUrl,e=t.layerUrl===this.utilityNetwork?.layerUrl;return this._renderComboboxItem({heading:i,value:s,selected:e})});return r("div",{class:u.labelAndCombobox,key:"utilityNetworkComboboxDiv"},r("calcite-label",{class:u.label},t),r("calcite-combobox",{class:u.combobox,clearDisabled:!0,label:"",maxItems:3,overlayPositioning:"fixed",selectionMode:"single-persist",onCalciteComboboxChange:t=>{const s=i?.find(i=>i.layerUrl===t.currentTarget.value);this.utilityNetwork=s}},s))}_showAssociationsSwitchChange({currentTarget:t}){const{viewModel:i}=this;this.showAssociationsEnabled=t.checked,this._associationsOptionsEnabled=t.checked,this.showAssociationsEnabled||i.removeAssociations()}_structuralAttAssociationsSwitchChange(t){this.includeStructuralAttachmentAssociations=t.currentTarget.checked}_renderWarningIcon(t,i,s){return s?r("div",{class:u.statusIconContainer,key:t,slot:"control"},r("calcite-icon",{class:u.statusIconWarning,icon:"exclamation-mark-triangle",id:i,scale:"s"}),r("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:i},r("span",null,s))):r("div",{class:u.statusIconContainer,key:t,slot:"control"},r("calcite-icon",{class:u.statusIconWarning,icon:"exclamation-mark-triangle",id:i,scale:"s"}))}};t([o()],w.prototype,"autoRefreshAssociations",null),t([o()],w.prototype,"connectivityAssociationsLineSymbol",null),t([o()],w.prototype,"icon",null),t([o()],w.prototype,"includeConnectivityAssociations",null),t([o()],w.prototype,"includeStructuralAttachmentAssociations",null),t([o()],w.prototype,"label",null),t([o()],w.prototype,"maxAllowableAssociations",null),t([o()],w.prototype,"maxAllowableAssociationsSliderMax",null),t([o()],w.prototype,"maxAllowableAssociationsSliderMin",null),t([o()],w.prototype,"maxAllowableAssociationsSliderStep",null),t([o(),c("geoscene/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations")],w.prototype,"messages",void 0),t([o(),c("geoscene/t9n/common")],w.prototype,"messagesCommon",void 0),t([o()],w.prototype,"showArrowsConnectivity",null),t([o()],w.prototype,"showArrowsStructuralAttachment",null),t([o()],w.prototype,"showAssociationsEnabled",null),t([o()],w.prototype,"structuralAttachmentAssociationsLineSymbol",null),t([o()],w.prototype,"utilityNetwork",null),t([o()],w.prototype,"view",null),t([o({type:h})],w.prototype,"viewModel",void 0),t([o({type:m,nonNullable:!0})],w.prototype,"visibleElements",void 0),w=t([n("geoscene.widgets.UtilityNetworkAssociations")],w);const b=w;export{b as default};
5
+ import{__decorate as t}from"tslib";import{watch as i,on as s,initial as e}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import"./support/widgetUtils.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{tsx as r}from"./support/jsxFactory.js";import"@arcgis/toolkit/dom";import d from"./UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js";import h from"./UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js";import m from"./UtilityNetworkAssociations/VisibleElements.js";const A="geoscene-un-associations",u={action:`${A}__action`,actionRefresh:`${A}__action-refresh`,blockContent:`${A}__block-content`,blockSectionSettings:`${A}__block-section-settings`,combobox:`${A}__combobox`,comboboxItem:`${A}__combobox-item`,divControlsMain:`${A}__div-controls-main`,label:`${A}__label`,labelAndCombobox:`${A}__label-and-combobox`,labelAndSlider:`${A}__label-and-slider`,labelAndToggle:`${A}__label-and-toggle`,panel:`${A}__panel`,slider:`${A}__slider`,statusIconContainer:`${A}__status-icon-container`,statusIconWarning:`${A}__status-icon-warning`,switch:`${A}__switch`,switchContainer:`${A}__switch-container`,widgetContainer:`${A}__widget-container`};let w=class extends l{constructor(t,i){super(t,i),this._autoRefreshAssociations=!0,this._associationsOptionsEnabled=!1,this._maxAllowableAssociationsSliderMax=1e3,this._maxAllowableAssociationsSliderMin=250,this._maxAllowableAssociationsSliderStep=250,this.messages=null,this.messagesCommon=null,this.viewModel=new h,this.visibleElements=new m}initialize(){this.addHandles([i(()=>[this.view?.stationary,this.showAssociationsEnabled,this.includeConnectivityAssociations,this.includeStructuralAttachmentAssociations,this.maxAllowableAssociations],()=>{!0===this.autoRefreshAssociations&&(!0===this.showAssociationsEnabled?this.viewModel.showAssociations():this.viewModel.removeAssociations())}),i(()=>this.view?.map?.utilityNetworks,t=>{t?.items.forEach(async(t,i)=>{t.loaded||await t.load(),0===i&&(this.utilityNetwork=t)})},e),s(()=>this.view?.map?.utilityNetworks,"change",t=>{const i=t.target;t.added.forEach(async t=>{t.loaded||await t.load()}),t.removed.some(t=>t.layerUrl===this.utilityNetwork?.layerUrl)&&(this.utilityNetwork=null),this.utilityNetwork=i.length?i.getItemAt(0):null})])}get autoRefreshAssociations(){return this._autoRefreshAssociations}set autoRefreshAssociations(t){this._autoRefreshAssociations=t}get connectivityAssociationsLineSymbol(){return this.viewModel.connectivityAssociationsLineSymbol}set connectivityAssociationsLineSymbol(t){this.viewModel.connectivityAssociationsLineSymbol=t}get icon(){return"view-associations"}set icon(t){this._overrideIfSome("icon",t)}get includeConnectivityAssociations(){return this.viewModel.includeConnectivityAssociations}set includeConnectivityAssociations(t){this.viewModel.includeConnectivityAssociations=t}get includeStructuralAttachmentAssociations(){return this.viewModel.includeStructuralAttachmentAssociations}set includeStructuralAttachmentAssociations(t){this.viewModel.includeStructuralAttachmentAssociations=t}get label(){return this.messages?.widgetLabel??""}set label(t){this._overrideIfSome("label",t)}get maxAllowableAssociations(){return this.viewModel.maxAllowableAssociations}set maxAllowableAssociations(t){this.viewModel.maxAllowableAssociations=t}get maxAllowableAssociationsSliderMax(){return this._maxAllowableAssociationsSliderMax}set maxAllowableAssociationsSliderMax(t){t<=this.maxAllowableAssociationsSliderMin||(this._maxAllowableAssociationsSliderMax=t)}get maxAllowableAssociationsSliderMin(){return this._maxAllowableAssociationsSliderMin}set maxAllowableAssociationsSliderMin(t){t<0||t>=this.maxAllowableAssociationsSliderMax||(this._maxAllowableAssociationsSliderMin=t)}get maxAllowableAssociationsSliderStep(){return this._maxAllowableAssociationsSliderStep}set maxAllowableAssociationsSliderStep(t){this._maxAllowableAssociationsSliderStep=t}get showArrowsConnectivity(){return this.viewModel.showArrowsConnectivity}set showArrowsConnectivity(t){this.viewModel.showArrowsConnectivity=t}get showArrowsStructuralAttachment(){return this.viewModel.showArrowsStructuralAttachment}set showArrowsStructuralAttachment(t){this.viewModel.showArrowsStructuralAttachment=t}get showAssociationsEnabled(){return this.viewModel.showAssociationsEnabled}set showAssociationsEnabled(t){this.viewModel.showAssociationsEnabled=t}get structuralAttachmentAssociationsLineSymbol(){return this.viewModel.structuralAttachmentAssociationsLineSymbol}set structuralAttachmentAssociationsLineSymbol(t){this.viewModel.structuralAttachmentAssociationsLineSymbol=t}get utilityNetwork(){return this.viewModel.utilityNetwork}set utilityNetwork(t){this.viewModel.utilityNetwork=t}get view(){return this.viewModel.view}set view(t){this.viewModel.view=t}render(){const{label:t}=this;return r("div",{class:u.widgetContainer},r("calcite-block",{class:u.blockContent,collapsible:!0,heading:t},this._renderStatusIcon(),this.autoRefreshAssociations?this._renderShowAssociationsSwitch():this._renderRefreshAssociationsAction(),this._renderContent()))}loadDependencies(){return a({action:()=>import("@geoscene/calcite-components/dist/components/calcite-action"),block:()=>import("@geoscene/calcite-components/dist/components/calcite-block"),"block-section":()=>import("@geoscene/calcite-components/dist/components/calcite-block-section"),icon:()=>import("@geoscene/calcite-components/dist/components/calcite-icon"),combobox:()=>import("@geoscene/calcite-components/dist/components/calcite-combobox"),"combobox-item":()=>import("@geoscene/calcite-components/dist/components/calcite-combobox-item"),label:()=>import("@geoscene/calcite-components/dist/components/calcite-label"),notice:()=>import("@geoscene/calcite-components/dist/components/calcite-notice"),panel:()=>import("@geoscene/calcite-components/dist/components/calcite-panel"),slider:()=>import("@geoscene/calcite-components/dist/components/calcite-slider"),switch:()=>import("@geoscene/calcite-components/dist/components/calcite-switch"),tooltip:()=>import("@geoscene/calcite-components/dist/components/calcite-tooltip")})}_connectivityAssociationsSwitchChange(t){this.includeConnectivityAssociations=t.currentTarget.checked}_getLoadErrorMessagesAsNotices(t,i){return r("calcite-notice",{closable:!1,key:`error-notice-${i}`,kind:"warning",open:!0,scale:"s"},r("div",{slot:"message"},t))}_maxAllowableAssociationsSliderChange(t){this.maxAllowableAssociations=Number(t.currentTarget.value)}_refreshAssociations(){const{viewModel:t,viewModel:{state:i}}=this;"ready"!==i&&"warning"!==i||t.showAssociations()}_renderConnectivityAssociationsSettings(){const{messages:{input:{enableConnectivity:t}},visibleElements:{connectivityAssociationsSettings:i}}=this;if(i)return r("calcite-block-section",{class:u.blockSectionSettings,text:t},r(d,{id:`${this.id}-symbol-picker-connectivity`,lineSymbol:this.connectivityAssociationsLineSymbol,showArrows:this.showArrowsConnectivity,visibleElements:i}))}_renderConnectivityAssociationsToggle(){const{messages:{input:{enableConnectivity:t}}}=this;return r("div",{class:u.labelAndToggle,key:"connectivityAssociationsToggleDiv"},r("calcite-label",{class:u.label},t),r("calcite-switch",{bind:this,checked:this.includeConnectivityAssociations,disabled:!this._associationsOptionsEnabled&&this.autoRefreshAssociations,onCalciteSwitchChange:this._connectivityAssociationsSwitchChange}))}_renderComboboxItem({heading:t,value:i,selected:s}){return r("calcite-combobox-item",{class:u.comboboxItem,heading:t,selected:s,textLabel:t,value:i})}_renderContent(){const{viewModel:{loadErrors:t,state:i}}=this;return"disabled"===i?r("div",{class:u.divControlsMain,key:"loadErrorsDiv"},t.items.map(this._getLoadErrorMessagesAsNotices)):r("calcite-panel",{class:u.panel,disabled:"loading"===i},r("div",{class:u.divControlsMain},this._renderConnectivityAssociationsToggle(),this._renderStructuralAttachmentAssociationsToggle(),this._renderSettingsPane()))}_renderLoadingAction(t,i,s){return r("div",{key:t,slot:"control"},r("calcite-action",{id:i,loading:!0,text:s}),r("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:i},r("span",null,s)))}_renderMaxAllowableAssociationsSlider(){const{messages:{input:{maxAllowableAssociations:t}},visibleElements:{maxAllowableAssociationsSlider:i}}=this;if(i)return r("div",{class:u.labelAndSlider,key:"maxAllowableAssociationsSliderDiv"},r("calcite-label",{class:u.label},t),r("calcite-slider",{bind:this,class:u.slider,labelTicks:!0,max:this.maxAllowableAssociationsSliderMax,min:this.maxAllowableAssociationsSliderMin,scale:"s",snap:!0,step:this.maxAllowableAssociationsSliderStep,ticks:this.maxAllowableAssociationsSliderStep,value:this.maxAllowableAssociations,onCalciteSliderChange:this._maxAllowableAssociationsSliderChange}))}_renderRefreshAssociationsAction(){const{messages:{input:{refreshAssociations:t}},messagesCommon:{loading:i},viewModel:{state:s}}=this,e=`${this.id}-refresh-action`;if("disabled"!==s)return r("div",{class:u.actionRefresh,slot:"control"},r("calcite-action",{bind:this,class:u.action,icon:"refresh-f",id:e,loading:"loading"===s,onclick:this._refreshAssociations,text:t}),r("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:e},r("span",null,"loading"===s?i:t)))}_renderSettingsPane(){const{messagesCommon:{settings:t},visibleElements:{maxAllowableAssociationsSlider:i,connectivityAssociationsSettings:s,structuralAttachmentAssociationsSettings:e}}=this,o=(this.view?.map).utilityNetworks?.items;if(1!==o?.length||i||s||e)return r("calcite-block",{class:u.blockContent,collapsible:!0,heading:t},r("div",{class:u.divControlsMain},this._renderUtilityNetworkSettings(),this._renderMaxAllowableAssociationsSlider()),this._renderConnectivityAssociationsSettings(),this._renderStructuralAttachmentAssociationsSettings())}_renderShowAssociationsSwitch(){const{messages:{input:{enableAssociations:t}},messagesCommon:{loading:i},viewModel:{state:s}}=this,e=`${this.id}-show-associations-switch`;if("disabled"!==s)return"loading"===s?this._renderLoadingAction("loadingActionDiv",`${this.id}-loading-action`,i):r("div",{class:u.switchContainer,key:"switchDiv",slot:"control"},r("calcite-switch",{bind:this,checked:this.showAssociationsEnabled,class:u.switch,id:e,onCalciteSwitchChange:this._showAssociationsSwitchChange}),r("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:e},r("span",null,t)))}_renderStatusIcon(){const{messagesCommon:{executing:t},viewModel:{executionError:i,state:s}}=this;switch(s){case"disabled":return this._renderWarningIcon("statusDiv",`${this.id}-disabled-icon`,null);case"warning":return this._renderWarningIcon("statusDiv",`${this.id}-warning-icon`,i);case"executing":return this._renderLoadingAction("executingActionDiv",`${this.id}-executing-action`,t);default:return}}_renderStructuralAttachmentAssociationsSettings(){const{messages:{input:{enableStructuralAttachment:t}},visibleElements:{structuralAttachmentAssociationsSettings:i}}=this;if(i)return r("calcite-block-section",{class:u.blockSectionSettings,text:t},r(d,{id:`${this.id}-symbol-picker-structural-attachment`,lineSymbol:this.structuralAttachmentAssociationsLineSymbol,showArrows:this.showArrowsStructuralAttachment,visibleElements:i}))}_renderStructuralAttachmentAssociationsToggle(){const{messages:{input:{enableStructuralAttachment:t}}}=this;return r("div",{class:u.labelAndToggle,key:"structuralAttachmentAssociationsToggleDiv"},r("calcite-label",{class:u.label},t),r("calcite-switch",{bind:this,checked:this.includeStructuralAttachmentAssociations,disabled:!this._associationsOptionsEnabled&&this.autoRefreshAssociations,onCalciteSwitchChange:this._structuralAttAssociationsSwitchChange}))}_renderUtilityNetworkSettings(){const{messages:{input:{utilityNetwork:t}}}=this,i=(this.view?.map).utilityNetworks?.items;if(1===i?.length)return null;const s=i?.map(t=>{const i=t.title,s=t.layerUrl,e=t.layerUrl===this.utilityNetwork?.layerUrl;return this._renderComboboxItem({heading:i,value:s,selected:e})});return r("div",{class:u.labelAndCombobox,key:"utilityNetworkComboboxDiv"},r("calcite-label",{class:u.label},t),r("calcite-combobox",{class:u.combobox,clearDisabled:!0,label:"",maxItems:3,overlayPositioning:"fixed",selectionMode:"single-persist",onCalciteComboboxChange:t=>{const s=i?.find(i=>i.layerUrl===t.currentTarget.value);this.utilityNetwork=s}},s))}_showAssociationsSwitchChange({currentTarget:t}){const{viewModel:i}=this;this.showAssociationsEnabled=t.checked,this._associationsOptionsEnabled=t.checked,this.showAssociationsEnabled||i.removeAssociations()}_structuralAttAssociationsSwitchChange(t){this.includeStructuralAttachmentAssociations=t.currentTarget.checked}_renderWarningIcon(t,i,s){return s?r("div",{class:u.statusIconContainer,key:t,slot:"control"},r("calcite-icon",{class:u.statusIconWarning,icon:"exclamation-mark-triangle",id:i,scale:"s"}),r("calcite-tooltip",{overlayPositioning:"fixed",referenceElement:i},r("span",null,s))):r("div",{class:u.statusIconContainer,key:t,slot:"control"},r("calcite-icon",{class:u.statusIconWarning,icon:"exclamation-mark-triangle",id:i,scale:"s"}))}};t([o()],w.prototype,"autoRefreshAssociations",null),t([o()],w.prototype,"connectivityAssociationsLineSymbol",null),t([o()],w.prototype,"icon",null),t([o()],w.prototype,"includeConnectivityAssociations",null),t([o()],w.prototype,"includeStructuralAttachmentAssociations",null),t([o()],w.prototype,"label",null),t([o()],w.prototype,"maxAllowableAssociations",null),t([o()],w.prototype,"maxAllowableAssociationsSliderMax",null),t([o()],w.prototype,"maxAllowableAssociationsSliderMin",null),t([o()],w.prototype,"maxAllowableAssociationsSliderStep",null),t([o(),c("geoscene/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations")],w.prototype,"messages",void 0),t([o(),c("geoscene/t9n/common")],w.prototype,"messagesCommon",void 0),t([o()],w.prototype,"showArrowsConnectivity",null),t([o()],w.prototype,"showArrowsStructuralAttachment",null),t([o()],w.prototype,"showAssociationsEnabled",null),t([o()],w.prototype,"structuralAttachmentAssociationsLineSymbol",null),t([o()],w.prototype,"utilityNetwork",null),t([o()],w.prototype,"view",null),t([o({type:h})],w.prototype,"viewModel",void 0),t([o({type:m,nonNullable:!0})],w.prototype,"visibleElements",void 0),w=t([n("geoscene.widgets.UtilityNetworkAssociations")],w);const b=w;export{b as default};