@geoscene/core 4.23.9 → 4.23.10

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 (221) hide show
  1. package/assets/geoscene/core/workers/chunks/6f827a32646bab0a8777.js +1 -1
  2. package/assets/geoscene/core/workers/chunks/9f458f10dc65b185f66e.js +1 -1
  3. package/assets/geoscene/themes/base/_Overlay.scss +2 -2
  4. package/assets/geoscene/themes/base/_OverlayItem.scss +12 -12
  5. package/assets/geoscene/themes/base/_Ui.scss +32 -32
  6. package/assets/geoscene/themes/base/_View.scss +31 -31
  7. package/assets/geoscene/themes/base/_animation.scss +6 -6
  8. package/assets/geoscene/themes/base/_core.scss +2 -2
  9. package/assets/geoscene/themes/base/_mixins.scss +43 -43
  10. package/assets/geoscene/themes/base/icons/style.css +190 -190
  11. package/assets/geoscene/themes/base/icons/style.scss +376 -376
  12. package/assets/geoscene/themes/base/icons/variables.scss +187 -187
  13. package/assets/geoscene/themes/base/widgets/_AreaMeasurement2D.scss +4 -4
  14. package/assets/geoscene/themes/base/widgets/_AreaMeasurement3D.scss +4 -4
  15. package/assets/geoscene/themes/base/widgets/_Attachments.scss +48 -48
  16. package/assets/geoscene/themes/base/widgets/_Attribution.scss +9 -9
  17. package/assets/geoscene/themes/base/widgets/_BasemapGallery.scss +39 -39
  18. package/assets/geoscene/themes/base/widgets/_BasemapLayerList.scss +100 -100
  19. package/assets/geoscene/themes/base/widgets/_BasemapToggle.scss +22 -22
  20. package/assets/geoscene/themes/base/widgets/_BinaryColorSizeSlider.scss +2 -2
  21. package/assets/geoscene/themes/base/widgets/_Bookmarks.scss +48 -48
  22. package/assets/geoscene/themes/base/widgets/_BuildingDisciplinesTree.scss +3 -3
  23. package/assets/geoscene/themes/base/widgets/_BuildingExplorer.scss +4 -4
  24. package/assets/geoscene/themes/base/widgets/_BuildingLevelPicker.scss +4 -4
  25. package/assets/geoscene/themes/base/widgets/_BuildingPhasePicker.scss +4 -4
  26. package/assets/geoscene/themes/base/widgets/_ButtonMenu.scss +21 -21
  27. package/assets/geoscene/themes/base/widgets/_ClassedColorSlider.scss +2 -2
  28. package/assets/geoscene/themes/base/widgets/_ClassedSizeSlider.scss +2 -2
  29. package/assets/geoscene/themes/base/widgets/_ColorPicker.scss +3 -3
  30. package/assets/geoscene/themes/base/widgets/_ColorSizeSlider.scss +2 -2
  31. package/assets/geoscene/themes/base/widgets/_ColorSlider.scss +2 -2
  32. package/assets/geoscene/themes/base/widgets/_Compass.scss +3 -3
  33. package/assets/geoscene/themes/base/widgets/_CoordinateConversion.scss +51 -51
  34. package/assets/geoscene/themes/base/widgets/_DatePicker.scss +34 -34
  35. package/assets/geoscene/themes/base/widgets/_Daylight.scss +63 -63
  36. package/assets/geoscene/themes/base/widgets/_DirectLineMeasurement3D.scss +2 -2
  37. package/assets/geoscene/themes/base/widgets/_Directions.scss +98 -98
  38. package/assets/geoscene/themes/base/widgets/_DistanceMeasurement2D.scss +2 -2
  39. package/assets/geoscene/themes/base/widgets/_Editor.scss +56 -56
  40. package/assets/geoscene/themes/base/widgets/_ElevationProfile.scss +19 -19
  41. package/assets/geoscene/themes/base/widgets/_Expand.scss +58 -58
  42. package/assets/geoscene/themes/base/widgets/_Feature.scss +13 -13
  43. package/assets/geoscene/themes/base/widgets/_FeatureContent.scss +24 -24
  44. package/assets/geoscene/themes/base/widgets/_FeatureForm.scss +36 -36
  45. package/assets/geoscene/themes/base/widgets/_FeatureMedia.scss +17 -17
  46. package/assets/geoscene/themes/base/widgets/_FeatureTable.scss +26 -26
  47. package/assets/geoscene/themes/base/widgets/_FeatureTemplates.scss +9 -9
  48. package/assets/geoscene/themes/base/widgets/_FloorFilter.scss +93 -93
  49. package/assets/geoscene/themes/base/widgets/_Grid.scss +6 -6
  50. package/assets/geoscene/themes/base/widgets/_HeatmapSlider.scss +2 -2
  51. package/assets/geoscene/themes/base/widgets/_Histogram.scss +10 -10
  52. package/assets/geoscene/themes/base/widgets/_HistogramRangeSlider.scss +27 -27
  53. package/assets/geoscene/themes/base/widgets/_IdentityForm.scss +5 -5
  54. package/assets/geoscene/themes/base/widgets/_IdentityModal.scss +13 -13
  55. package/assets/geoscene/themes/base/widgets/_ItemList.scss +18 -18
  56. package/assets/geoscene/themes/base/widgets/_LayerList.scss +89 -89
  57. package/assets/geoscene/themes/base/widgets/_Legend.scss +95 -95
  58. package/assets/geoscene/themes/base/widgets/_LineOfSight.scss +9 -9
  59. package/assets/geoscene/themes/base/widgets/_NavigationToggle.scss +14 -14
  60. package/assets/geoscene/themes/base/widgets/_OpacitySlider.scss +2 -2
  61. package/assets/geoscene/themes/base/widgets/_Popup.scss +167 -167
  62. package/assets/geoscene/themes/base/widgets/_Print.scss +52 -52
  63. package/assets/geoscene/themes/base/widgets/_ScaleBar.scss +28 -28
  64. package/assets/geoscene/themes/base/widgets/_ScaleRangeSlider.scss +29 -29
  65. package/assets/geoscene/themes/base/widgets/_Search.scss +50 -50
  66. package/assets/geoscene/themes/base/widgets/_SearchResultRenderer.scss +7 -7
  67. package/assets/geoscene/themes/base/widgets/_SelectionToolbar.scss +3 -3
  68. package/assets/geoscene/themes/base/widgets/_ShadowCast.scss +17 -17
  69. package/assets/geoscene/themes/base/widgets/_SizeSlider.scss +2 -2
  70. package/assets/geoscene/themes/base/widgets/_Sketch.scss +24 -24
  71. package/assets/geoscene/themes/base/widgets/_Slice.scss +5 -5
  72. package/assets/geoscene/themes/base/widgets/_Slider.scss +70 -70
  73. package/assets/geoscene/themes/base/widgets/_SnappingControls.scss +16 -16
  74. package/assets/geoscene/themes/base/widgets/_Spinner.scss +12 -12
  75. package/assets/geoscene/themes/base/widgets/_Swipe.scss +15 -15
  76. package/assets/geoscene/themes/base/widgets/_TableList.scss +57 -57
  77. package/assets/geoscene/themes/base/widgets/_TimePicker.scss +3 -3
  78. package/assets/geoscene/themes/base/widgets/_TimeSlider.scss +28 -28
  79. package/assets/geoscene/themes/base/widgets/_UtilityNetworkTrace.scss +8 -8
  80. package/assets/geoscene/themes/base/widgets/_Weather.scss +2 -2
  81. package/assets/geoscene/themes/base/widgets/_Widget.scss +95 -95
  82. package/assets/geoscene/themes/base/widgets/_Zoom.scss +8 -8
  83. package/assets/geoscene/themes/dark/main.css +1 -1
  84. package/assets/geoscene/themes/dark/main.scss +3 -3
  85. package/assets/geoscene/themes/dark-blue/main.css +1 -1
  86. package/assets/geoscene/themes/dark-blue/main.scss +3 -3
  87. package/assets/geoscene/themes/dark-green/main.css +1 -1
  88. package/assets/geoscene/themes/dark-green/main.scss +3 -3
  89. package/assets/geoscene/themes/dark-purple/main.css +1 -1
  90. package/assets/geoscene/themes/dark-purple/main.scss +3 -3
  91. package/assets/geoscene/themes/dark-red/main.css +1 -1
  92. package/assets/geoscene/themes/dark-red/main.scss +3 -3
  93. package/assets/geoscene/themes/light/main.css +1 -1
  94. package/assets/geoscene/themes/light/main.scss +2 -2
  95. package/assets/geoscene/themes/light/view.css +1 -1
  96. package/assets/geoscene/themes/light-blue/main.css +1 -1
  97. package/assets/geoscene/themes/light-blue/main.scss +3 -3
  98. package/assets/geoscene/themes/light-green/main.css +1 -1
  99. package/assets/geoscene/themes/light-green/main.scss +3 -3
  100. package/assets/geoscene/themes/light-purple/main.css +1 -1
  101. package/assets/geoscene/themes/light-purple/main.scss +3 -3
  102. package/assets/geoscene/themes/light-red/main.css +1 -1
  103. package/assets/geoscene/themes/light-red/main.scss +3 -3
  104. package/identity/IdentityForm.js +1 -1
  105. package/identity/IdentityModal.js +1 -1
  106. package/package.json +1 -1
  107. package/portal/schemas/definitions.js +1 -1
  108. package/portal/schemas/sceneLayerItem.js +1 -1
  109. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  110. package/views/2d/layers/support/clusterUtils.js +1 -1
  111. package/views/2d/navigation/ZoomBox.js +1 -1
  112. package/views/3d/externalRenderers.js +1 -1
  113. package/views/3d/layers/I3SMeshView3D.js +1 -1
  114. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  115. package/views/BreakpointsOwner.js +1 -1
  116. package/views/DOMContainer.js +1 -1
  117. package/views/input/BrowserEventSource.js +1 -1
  118. package/views/overlay/LineOverlayItem.js +1 -1
  119. package/views/overlay/TextOverlayItem.js +1 -1
  120. package/views/overlay/ViewOverlay.js +1 -1
  121. package/views/ui/Component.js +1 -1
  122. package/views/ui/UI.js +1 -1
  123. package/views/webgl/context-util.js +1 -1
  124. package/widgets/AreaMeasurement2D.js +1 -1
  125. package/widgets/AreaMeasurement3D.js +1 -1
  126. package/widgets/Attachments.js +1 -1
  127. package/widgets/Attribution.js +1 -1
  128. package/widgets/BasemapGallery.js +1 -1
  129. package/widgets/BasemapLayerList.js +1 -1
  130. package/widgets/BasemapToggle.js +1 -1
  131. package/widgets/Bookmarks.js +1 -1
  132. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
  133. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
  134. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  135. package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
  136. package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
  137. package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
  138. package/widgets/BuildingExplorer.js +1 -1
  139. package/widgets/Compass.js +1 -1
  140. package/widgets/CoordinateConversion.js +1 -1
  141. package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
  142. package/widgets/Daylight.js +1 -1
  143. package/widgets/DirectLineMeasurement3D.js +1 -1
  144. package/widgets/Directions/support/resources.js +1 -1
  145. package/widgets/Directions.js +1 -1
  146. package/widgets/DistanceMeasurement2D.js +1 -1
  147. package/widgets/Editor/deprecationUtils.js +1 -1
  148. package/widgets/Editor.js +1 -1
  149. package/widgets/ElevationProfile/css.js +1 -1
  150. package/widgets/Expand.js +1 -1
  151. package/widgets/Feature/FeatureAttachments.js +1 -1
  152. package/widgets/Feature/FeatureContent.js +1 -1
  153. package/widgets/Feature/FeatureExpression.js +1 -1
  154. package/widgets/Feature/FeatureFields.js +1 -1
  155. package/widgets/Feature/FeatureMedia.js +1 -1
  156. package/widgets/Feature/support/FeatureElementInfo.js +1 -1
  157. package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
  158. package/widgets/Feature/support/featureUtils.js +1 -1
  159. package/widgets/Feature.js +1 -1
  160. package/widgets/FeatureForm.js +1 -1
  161. package/widgets/FeatureTable/AttachmentsColumn.js +1 -1
  162. package/widgets/FeatureTable/FieldColumn.js +1 -1
  163. package/widgets/FeatureTable/Grid/Column.js +1 -1
  164. package/widgets/FeatureTable/Grid/EditorColumn.js +1 -1
  165. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  166. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  167. package/widgets/FeatureTable.js +1 -1
  168. package/widgets/FeatureTemplates/ItemList.js +1 -1
  169. package/widgets/FeatureTemplates.js +1 -1
  170. package/widgets/FloorFilter.js +1 -1
  171. package/widgets/Fullscreen.js +1 -1
  172. package/widgets/Histogram.js +1 -1
  173. package/widgets/HistogramRangeSlider.js +1 -1
  174. package/widgets/Home.js +1 -1
  175. package/widgets/LayerList/ListItemPanel.js +1 -1
  176. package/widgets/LayerList.js +1 -1
  177. package/widgets/Legend/styles/Card.js +1 -1
  178. package/widgets/Legend/styles/Classic.js +1 -1
  179. package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
  180. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  181. package/widgets/Legend.js +1 -1
  182. package/widgets/LineOfSight.js +1 -1
  183. package/widgets/Locate.js +1 -1
  184. package/widgets/Measurement.js +1 -1
  185. package/widgets/NavigationToggle.js +1 -1
  186. package/widgets/Popup.js +1 -1
  187. package/widgets/Print.js +1 -1
  188. package/widgets/ScaleBar.js +1 -1
  189. package/widgets/ScaleRangeSlider.js +1 -1
  190. package/widgets/Search/SearchResultRenderer.js +1 -1
  191. package/widgets/Search.js +1 -1
  192. package/widgets/ShadowCast/css.js +1 -1
  193. package/widgets/Sketch.js +1 -1
  194. package/widgets/Slice.js +1 -1
  195. package/widgets/Slider.js +1 -1
  196. package/widgets/Spinner.js +1 -1
  197. package/widgets/Swipe.js +1 -1
  198. package/widgets/TableList.js +1 -1
  199. package/widgets/TimeSlider.js +1 -1
  200. package/widgets/Track.js +1 -1
  201. package/widgets/UtilityNetworkTrace.js +1 -1
  202. package/widgets/Weather/css.js +1 -1
  203. package/widgets/Widget.js +1 -1
  204. package/widgets/Zoom/IconButton.js +1 -1
  205. package/widgets/Zoom.js +1 -1
  206. package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
  207. package/widgets/smartMapping/ClassedColorSlider.js +1 -1
  208. package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
  209. package/widgets/smartMapping/ColorSizeSlider.js +1 -1
  210. package/widgets/smartMapping/ColorSlider.js +1 -1
  211. package/widgets/smartMapping/HeatmapSlider.js +1 -1
  212. package/widgets/smartMapping/OpacitySlider.js +1 -1
  213. package/widgets/smartMapping/SizeSlider.js +1 -1
  214. package/widgets/support/ColorPicker.js +1 -1
  215. package/widgets/support/DatePicker.js +1 -1
  216. package/widgets/support/Heading.js +1 -1
  217. package/widgets/support/Popover.js +1 -1
  218. package/widgets/support/SelectionToolbar.js +1 -1
  219. package/widgets/support/SnappingControls.js +1 -1
  220. package/widgets/support/TimePicker.js +1 -1
  221. package/widgets/support/widgetThemeUtils.js +1 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{generateFillAttributes as e,generateStrokeAttributes as a,renderDef as r,renderShape as l,getBoundingBox as t,computeBBox as s,getTransformMatrix as i}from"../../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as o}from"../../../../symbols/support/utils.js";import{isRTL as n,classes as d}from"../../../support/widgetUtils.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import{tsx as m}from"../../../support/jsxFactory.js";const u="http://www.w3.org/2000/svg",b={diamondContainer:"esri-relationship-ramp--diamond__container",diamondLeftCol:"esri-relationship-ramp--diamond__left-column",diamondRightCol:"esri-relationship-ramp--diamond__right-column",diamondMidCol:"esri-relationship-ramp--diamond__middle-column",diamondMidColLabel:"esri-relationship-ramp--diamond__middle-column--label",diamondMidColRamp:"esri-relationship-ramp--diamond__middle-column--ramp",squareTable:"esri-relationship-ramp--square__table",squareTableRow:"esri-relationship-ramp--square__table-row",squareTableCell:"esri-relationship-ramp--square__table-cell",squareTableLabel:"esri-relationship-ramp--square__table-label",squareTableLabelLeftBottom:"esri-relationship-ramp--square__table-label--left-bottom",squareTableLabelRightBottom:"esri-relationship-ramp--square__table-label--right-bottom",squareTableLabelLeftTop:"esri-relationship-ramp--square__table-label--left-top",squareTableLabelRightTop:"esri-relationship-ramp--square__table-label--right-top"};function p(e,a,r,l){const{focus:t,labels:s}=e,i=!!t,o=c(e,a,r,l),u={justifyContent:"center"},p=n();return i?m("div",{class:b.diamondContainer,styles:u},m("div",{class:b.diamondLeftCol},p?s.right:s.left),m("div",{class:b.diamondMidCol},m("div",{class:b.diamondMidColLabel},s.top),o,m("div",{class:b.diamondMidColLabel},s.bottom)),m("div",{class:b.diamondRightCol},p?s.left:s.right)):m("div",{class:b.squareTable},m("div",{class:b.squareTableRow},m("div",{class:d(b.squareTableCell,b.squareTableLabel,b.squareTableLabelRightBottom)},p?s.top:s.left),m("div",{class:b.squareTableCell}),m("div",{class:d(b.squareTableCell,b.squareTableLabel,b.squareTableLabelLeftBottom)},p?s.left:s.top)),m("div",{class:b.squareTableRow},m("div",{class:b.squareTableCell}),o,m("div",{class:b.squareTableCell})),m("div",{class:b.squareTableRow},m("div",{class:d(b.squareTableCell,b.squareTableLabel,b.squareTableLabelRightTop)},p?s.right:s.bottom),m("div",{class:b.squareTableCell}),m("div",{class:d(b.squareTableCell,b.squareTableLabel,b.squareTableLabelLeftTop)},p?s.bottom:s.right)))}function h(e,a,r){const l=`${r}_arrowStart`,t=`${r}_arrowEnd`,s="left"===e,i={markerStart:null,markerEnd:null};switch(a){case"HL":s?i.markerStart=`url(#${t})`:i.markerEnd=`url(#${l})`;break;case"LL":i.markerStart=`url(#${t})`;break;case"LH":s?i.markerEnd=`url(#${l})`:i.markerStart=`url(#${t})`;break;default:i.markerEnd=`url(#${l})`}return i}function c(n,d,p,c,f=60){const{focus:q,numClasses:k,colors:T,rotation:_}=n,g=!!q,L=Math.sqrt(f**2+f**2)+(g?0:5),C=[],v=[],w=[],y=(f||75)/k;for(let s=0;s<k;s++){const i=s*y;for(let o=0;o<k;o++){const n=o*y,d=e(T[s][o]),m=a(null),u={type:"rect",x:n,y:i,width:y,height:y};C.push(r(d)),v.push(l(u,d.fill,m,null)),w.push(t(u))}}const x=10,R=15,$=15,j=10;let E=null;g||(E="margin: -15px -15px -18px -15px");const M=h("left",q,d),S=h("right",q,d),B=s(w),H=i(B,L,L,0,!1,_,!1),U=i(B,L,L,0,!1,g?-45:null,!1),W={filter:o(c),opacity:null==p?null:`${p}`};return m("div",{styles:W,class:g?b.diamondMidColRamp:b.squareTableCell},m("svg",{xmlns:u,width:L,height:L,style:E},m("defs",null,m("marker",{id:`${d}_arrowStart`,markerWidth:"10",markerHeight:"10",refX:"5",refY:"5",markerUnits:"strokeWidth",orient:"auto"},m("polyline",{points:"0,0 5,5 0,10",fill:"none",stroke:"#555555","stroke-width":"1"})),m("marker",{id:`${d}_arrowEnd`,markerWidth:"10",markerHeight:"10",refX:"0",refY:"5",markerUnits:"strokeWidth",orient:"auto"},m("polyline",{points:"5,0 0,5 5,10",fill:"none",stroke:"#555555","stroke-width":"1"})),C),m("g",{transform:H},v),m("g",{transform:U},m("line",{fill:"none",stroke:"#555555","stroke-width":"1","marker-start":M.markerStart,"marker-end":M.markerEnd,x1:-x,y1:f-R,x2:-x,y2:R}),m("line",{fill:"none",stroke:"#555555","stroke-width":"1","marker-start":S.markerStart,"marker-end":S.markerEnd,x1:$,y1:f+j,x2:f-$,y2:f+j}))))}export{p as renderRelationshipRamp};
5
+ import{generateFillAttributes as e,generateStrokeAttributes as a,renderDef as r,renderShape as l,getBoundingBox as t,computeBBox as s,getTransformMatrix as i}from"../../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as o}from"../../../../symbols/support/utils.js";import{isRTL as n,classes as d}from"../../../support/widgetUtils.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import{tsx as m}from"../../../support/jsxFactory.js";const u="http://www.w3.org/2000/svg",b={diamondContainer:"geoscene-relationship-ramp--diamond__container",diamondLeftCol:"geoscene-relationship-ramp--diamond__left-column",diamondRightCol:"geoscene-relationship-ramp--diamond__right-column",diamondMidCol:"geoscene-relationship-ramp--diamond__middle-column",diamondMidColLabel:"geoscene-relationship-ramp--diamond__middle-column--label",diamondMidColRamp:"geoscene-relationship-ramp--diamond__middle-column--ramp",squareTable:"geoscene-relationship-ramp--square__table",squareTableRow:"geoscene-relationship-ramp--square__table-row",squareTableCell:"geoscene-relationship-ramp--square__table-cell",squareTableLabel:"geoscene-relationship-ramp--square__table-label",squareTableLabelLeftBottom:"geoscene-relationship-ramp--square__table-label--left-bottom",squareTableLabelRightBottom:"geoscene-relationship-ramp--square__table-label--right-bottom",squareTableLabelLeftTop:"geoscene-relationship-ramp--square__table-label--left-top",squareTableLabelRightTop:"geoscene-relationship-ramp--square__table-label--right-top"};function p(e,a,r,l){const{focus:t,labels:s}=e,i=!!t,o=c(e,a,r,l),u={justifyContent:"center"},p=n();return i?m("div",{class:b.diamondContainer,styles:u},m("div",{class:b.diamondLeftCol},p?s.right:s.left),m("div",{class:b.diamondMidCol},m("div",{class:b.diamondMidColLabel},s.top),o,m("div",{class:b.diamondMidColLabel},s.bottom)),m("div",{class:b.diamondRightCol},p?s.left:s.right)):m("div",{class:b.squareTable},m("div",{class:b.squareTableRow},m("div",{class:d(b.squareTableCell,b.squareTableLabel,b.squareTableLabelRightBottom)},p?s.top:s.left),m("div",{class:b.squareTableCell}),m("div",{class:d(b.squareTableCell,b.squareTableLabel,b.squareTableLabelLeftBottom)},p?s.left:s.top)),m("div",{class:b.squareTableRow},m("div",{class:b.squareTableCell}),o,m("div",{class:b.squareTableCell})),m("div",{class:b.squareTableRow},m("div",{class:d(b.squareTableCell,b.squareTableLabel,b.squareTableLabelRightTop)},p?s.right:s.bottom),m("div",{class:b.squareTableCell}),m("div",{class:d(b.squareTableCell,b.squareTableLabel,b.squareTableLabelLeftTop)},p?s.bottom:s.right)))}function h(e,a,r){const l=`${r}_arrowStart`,t=`${r}_arrowEnd`,s="left"===e,i={markerStart:null,markerEnd:null};switch(a){case"HL":s?i.markerStart=`url(#${t})`:i.markerEnd=`url(#${l})`;break;case"LL":i.markerStart=`url(#${t})`;break;case"LH":s?i.markerEnd=`url(#${l})`:i.markerStart=`url(#${t})`;break;default:i.markerEnd=`url(#${l})`}return i}function c(n,d,p,c,f=60){const{focus:q,numClasses:k,colors:T,rotation:_}=n,g=!!q,L=Math.sqrt(f**2+f**2)+(g?0:5),C=[],v=[],w=[],y=(f||75)/k;for(let s=0;s<k;s++){const i=s*y;for(let o=0;o<k;o++){const n=o*y,d=e(T[s][o]),m=a(null),u={type:"rect",x:n,y:i,width:y,height:y};C.push(r(d)),v.push(l(u,d.fill,m,null)),w.push(t(u))}}const x=10,R=15,$=15,j=10;let E=null;g||(E="margin: -15px -15px -18px -15px");const M=h("left",q,d),S=h("right",q,d),B=s(w),H=i(B,L,L,0,!1,_,!1),U=i(B,L,L,0,!1,g?-45:null,!1),W={filter:o(c),opacity:null==p?null:`${p}`};return m("div",{styles:W,class:g?b.diamondMidColRamp:b.squareTableCell},m("svg",{xmlns:u,width:L,height:L,style:E},m("defs",null,m("marker",{id:`${d}_arrowStart`,markerWidth:"10",markerHeight:"10",refX:"5",refY:"5",markerUnits:"strokeWidth",orient:"auto"},m("polyline",{points:"0,0 5,5 0,10",fill:"none",stroke:"#555555","stroke-width":"1"})),m("marker",{id:`${d}_arrowEnd`,markerWidth:"10",markerHeight:"10",refX:"0",refY:"5",markerUnits:"strokeWidth",orient:"auto"},m("polyline",{points:"5,0 0,5 5,10",fill:"none",stroke:"#555555","stroke-width":"1"})),C),m("g",{transform:H},v),m("g",{transform:U},m("line",{fill:"none",stroke:"#555555","stroke-width":"1","marker-start":M.markerStart,"marker-end":M.markerEnd,x1:-x,y1:f-R,x2:-x,y2:R}),m("line",{fill:"none",stroke:"#555555","stroke-width":"1","marker-start":S.markerStart,"marker-end":S.markerEnd,x1:$,y1:f+j,x2:f-$,y2:f+j}))))}export{p as renderRelationshipRamp};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{pt2px as e}from"../../../../core/screenUtils.js";import"../../../../libs/maquette/projection.js";import{createProjector as t}from"../../../../libs/maquette/projector.js";import{renderColorRampPreviewHTML as o}from"../../../../symbols/support/symbolUtils.js";import"../../../support/widgetUtils.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import{tsx as i}from"../../../support/jsxFactory.js";const l=t(),n=10,r=20,s=10,a=20,c={univariateAboveAndBelowSymbol:"esri-univariate-above-and-below-ramp__symbol",colorRamp:"esri-legend__color-ramp"};function f(e="vertical"){const t="stroke:rgb(200, 200, 200);stroke-width:1";return"vertical"===e?i("svg",{height:"4",width:"10"},i("line",{x1:"0",y1:"2",x2:"10",y2:"2",style:t})):i("svg",{height:"10",width:"10"},i("line",{x1:"5",y1:"0",x2:"5",y2:"10",style:t}))}function p(e,t="vertical"){const o=document.createElement("div");return o.style.height=`${r}px`,o.className=c.univariateAboveAndBelowSymbol,null!=e&&(o.style.opacity=e.toString()),l.append(o,f.bind(null,t)),o}function u(t,o,i="vertical",l){t.infos.forEach(((t,n)=>{if(l&&2===n)t.preview=p(o,i);else{const o=e(t.size)+("horizontal"===i?a:s),l="div"===t.preview.tagName.toLowerCase(),n=l?t.preview:document.createElement("div");n.className=c.univariateAboveAndBelowSymbol,"horizontal"===i?n.style.width=`${o}px`:n.style.height=`${o}px`,l||n.appendChild(t.preview),t.preview=n}}))}function m(t,o="classic"){const i=t.infos;return"classic"===o?(e(i[0].size)+s)/2:(e(i[0].size)-e(i[i.length-1].size))/2}function v(e,t){if(!e)return null;const i=e.infos.map((e=>e.color)),l=o("full"===t.type?i:"above"===t.type?i.slice(0,3):i.slice(2,5),{width:t.width,height:t.height,align:t.rampAlignment,effectList:t.effectList});return l.className=c.colorRamp,null!=t.opacity&&(l.style.opacity=t.opacity.toString()),l}function h(t,o,i,l="vertical"){let c=0;const f=t.infos,p=Math.floor(f.length/2),u="full"===o||"above"===o?0:p,m="full"===o||"below"===o?f.length-1:p;for(let v=u;v<=m;v++)if(i&&v===p)c+="horizontal"===l?n:r;else{c+=e(f[v].size)+("horizontal"===l?a:s)}return Math.round(c)}function y(t,o,i,l="vertical"){const c=h(t,o,i,l),f=t.infos,p=Math.floor(f.length/2),u="full"===o||"above"===o?0:p,m="full"===o||"below"===o?f.length-1:p,v="full"===o?f[u].size+f[m].size:"above"===o?f[u].size:f[m].size,y=i?"vertical"===l?r:n:0,d="vertical"===l?s*("full"===o?2:1):a*("full"===o?2:1);return Math.round(c-(e(v)/2+y/2+d/2))}function d(e,t,o="vertical"){const i=e.infos;let l=i.find((({type:e})=>"size-ramp"===e)),n=i.find((({type:e})=>"color-ramp"===e));var r,s;(l&&(l={...l},l.infos=[...l.infos],u(l,t,o,!0)),n&&(n={...n},n.infos=[...n.infos]),"horizontal"===o)&&(null==(r=l)||r.infos.reverse(),null==(s=n)||s.infos.reverse());return{sizeRampElement:l,colorRampElement:n}}function g(e,t="vertical"){const o=e.infos;let i=o.find((({type:e})=>"size-ramp"===e)),l=o.find((({type:e})=>"color-ramp"===e));var n,r;(i&&(i={...i},i.infos=[...i.infos],u(i,null,t,!1)),l&&(l={...l},l.infos=[...l.infos]),"horizontal"===t)&&(null==(n=i)||n.infos.reverse(),null==(r=l)||r.infos.reverse());return{sizeRampElement:i,colorRampElement:l}}export{d as getUnivariateAboveAndBelowRampElements,m as getUnivariateColorRampMargin,v as getUnivariateColorRampPreview,y as getUnivariateColorRampSize,g as getUnivariateColorSizeRampElements,h as getUnivariateSizeRampSize};
5
+ import{pt2px as e}from"../../../../core/screenUtils.js";import"../../../../libs/maquette/projection.js";import{createProjector as t}from"../../../../libs/maquette/projector.js";import{renderColorRampPreviewHTML as o}from"../../../../symbols/support/symbolUtils.js";import"../../../support/widgetUtils.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import{tsx as i}from"../../../support/jsxFactory.js";const l=t(),n=10,r=20,s=10,a=20,c={univariateAboveAndBelowSymbol:"geoscene-univariate-above-and-below-ramp__symbol",colorRamp:"geoscene-legend__color-ramp"};function f(e="vertical"){const t="stroke:rgb(200, 200, 200);stroke-width:1";return"vertical"===e?i("svg",{height:"4",width:"10"},i("line",{x1:"0",y1:"2",x2:"10",y2:"2",style:t})):i("svg",{height:"10",width:"10"},i("line",{x1:"5",y1:"0",x2:"5",y2:"10",style:t}))}function p(e,t="vertical"){const o=document.createElement("div");return o.style.height=`${r}px`,o.className=c.univariateAboveAndBelowSymbol,null!=e&&(o.style.opacity=e.toString()),l.append(o,f.bind(null,t)),o}function u(t,o,i="vertical",l){t.infos.forEach(((t,n)=>{if(l&&2===n)t.preview=p(o,i);else{const o=e(t.size)+("horizontal"===i?a:s),l="div"===t.preview.tagName.toLowerCase(),n=l?t.preview:document.createElement("div");n.className=c.univariateAboveAndBelowSymbol,"horizontal"===i?n.style.width=`${o}px`:n.style.height=`${o}px`,l||n.appendChild(t.preview),t.preview=n}}))}function m(t,o="classic"){const i=t.infos;return"classic"===o?(e(i[0].size)+s)/2:(e(i[0].size)-e(i[i.length-1].size))/2}function v(e,t){if(!e)return null;const i=e.infos.map((e=>e.color)),l=o("full"===t.type?i:"above"===t.type?i.slice(0,3):i.slice(2,5),{width:t.width,height:t.height,align:t.rampAlignment,effectList:t.effectList});return l.className=c.colorRamp,null!=t.opacity&&(l.style.opacity=t.opacity.toString()),l}function h(t,o,i,l="vertical"){let c=0;const f=t.infos,p=Math.floor(f.length/2),u="full"===o||"above"===o?0:p,m="full"===o||"below"===o?f.length-1:p;for(let v=u;v<=m;v++)if(i&&v===p)c+="horizontal"===l?n:r;else{c+=e(f[v].size)+("horizontal"===l?a:s)}return Math.round(c)}function y(t,o,i,l="vertical"){const c=h(t,o,i,l),f=t.infos,p=Math.floor(f.length/2),u="full"===o||"above"===o?0:p,m="full"===o||"below"===o?f.length-1:p,v="full"===o?f[u].size+f[m].size:"above"===o?f[u].size:f[m].size,y=i?"vertical"===l?r:n:0,d="vertical"===l?s*("full"===o?2:1):a*("full"===o?2:1);return Math.round(c-(e(v)/2+y/2+d/2))}function d(e,t,o="vertical"){const i=e.infos;let l=i.find((({type:e})=>"size-ramp"===e)),n=i.find((({type:e})=>"color-ramp"===e));var r,s;(l&&(l={...l},l.infos=[...l.infos],u(l,t,o,!0)),n&&(n={...n},n.infos=[...n.infos]),"horizontal"===o)&&(null==(r=l)||r.infos.reverse(),null==(s=n)||s.infos.reverse());return{sizeRampElement:l,colorRampElement:n}}function g(e,t="vertical"){const o=e.infos;let i=o.find((({type:e})=>"size-ramp"===e)),l=o.find((({type:e})=>"color-ramp"===e));var n,r;(i&&(i={...i},i.infos=[...i.infos],u(i,null,t,!1)),l&&(l={...l},l.infos=[...l.infos]),"horizontal"===t)&&(null==(n=i)||n.infos.reverse(),null==(r=l)||r.infos.reverse());return{sizeRampElement:i,colorRampElement:l}}export{d as getUnivariateAboveAndBelowRampElements,m as getUnivariateColorRampMargin,v as getUnivariateColorRampPreview,y as getUnivariateColorRampSize,g as getUnivariateColorSizeRampElements,h as getUnivariateSizeRampSize};
package/widgets/Legend.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import s from"../core/Handles.js";import{on as t,watch as i,init as r}from"../core/watchUtils.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import c from"./Legend/LegendViewModel.js";import p from"./Legend/styles/Card.js";import h from"./Legend/styles/Classic.js";import"./support/widgetUtils.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as v}from"./support/jsxFactory.js";const g={base:"esri-legend",widget:"esri-widget",panel:"esri-widget--panel",widgetIcon:"geoscene-icon-layer-list"};let f=class extends l{constructor(e,t){super(e,t),this._handles=new s,this.activeLayerInfos=null,this.basemapLegendVisible=!1,this.groundLegendVisible=!1,this.headingLevel=3,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.respectLayerVisibility=!0,this.iconClass=g.widgetIcon,this.label=void 0,this.layerInfos=null,this.messages=null,this.style=new h,this.view=null,this.viewModel=new c}initialize(){this.own(t(this,"view","resize",(()=>this.scheduleRender())),t(this,"activeLayerInfos","change",(()=>this._refreshActiveLayerInfos(this.activeLayerInfos))),i(this,"headingLevel",(e=>{const{style:s}=this;s&&(s.headingLevel=e)})),r(this,"style",((e,s)=>{s&&e!==s&&s.destroy(),e&&(e.activeLayerInfos=this.activeLayerInfos,"card"===e.type&&(e.view=this.view),e.headingLevel=this.headingLevel)})))}destroy(){this._handles.destroy(),this._handles=null}castStyle(e){if(e instanceof p||e instanceof h)return e;if("string"==typeof e)return"card"===e?new p:new h;if(e&&"string"==typeof e.type){const s={...e};delete s.type;return new("card"===e.type?p:h)(s)}return new h}render(){return v("div",{class:this.classes(g.base,g.widget,this.style instanceof h?g.panel:null)},this.style.render())}_refreshActiveLayerInfos(e){this._handles.removeAll(),e.forEach((e=>this._renderOnActiveLayerInfoChange(e))),this.scheduleRender()}_renderOnActiveLayerInfoChange(e){const s=r(e,"version",(()=>this.scheduleRender()));this._handles.add(s,`version_${e.layer.uid}`);const i=t(e,"children","change",(()=>{e.children.forEach((e=>this._renderOnActiveLayerInfoChange(e)))}));this._handles.add(i,`children_${e.layer.uid}`),e.children.forEach((e=>this._renderOnActiveLayerInfoChange(e)))}};e([o("viewModel.activeLayerInfos")],f.prototype,"activeLayerInfos",void 0),e([o("viewModel.basemapLegendVisible")],f.prototype,"basemapLegendVisible",void 0),e([o("viewModel.groundLegendVisible")],f.prototype,"groundLegendVisible",void 0),e([a()],f.prototype,"headingLevel",void 0),e([o("viewModel.hideLayersNotInCurrentView")],f.prototype,"hideLayersNotInCurrentView",void 0),e([o("viewModel.keepCacheOnDestroy")],f.prototype,"keepCacheOnDestroy",void 0),e([o("viewModel.respectLayerVisibility")],f.prototype,"respectLayerVisibility",void 0),e([a()],f.prototype,"iconClass",void 0),e([a({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],f.prototype,"label",void 0),e([o("viewModel.layerInfos")],f.prototype,"layerInfos",void 0),e([a(),y("geoscene/widgets/Legend/t9n/Legend")],f.prototype,"messages",void 0),e([a()],f.prototype,"style",void 0),e([n("style")],f.prototype,"castStyle",null),e([o("viewModel.view")],f.prototype,"view",void 0),e([a()],f.prototype,"viewModel",void 0),f=e([d("geoscene.widgets.Legend")],f);const L=f;export{L as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import s from"../core/Handles.js";import{on as t,watch as i,init as r}from"../core/watchUtils.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import l from"./Widget.js";import c from"./Legend/LegendViewModel.js";import p from"./Legend/styles/Card.js";import h from"./Legend/styles/Classic.js";import"./support/widgetUtils.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as v}from"./support/jsxFactory.js";const g={base:"geoscene-legend",widget:"geoscene-widget",panel:"geoscene-widget--panel",widgetIcon:"geoscene-icon-layer-list"};let f=class extends l{constructor(e,t){super(e,t),this._handles=new s,this.activeLayerInfos=null,this.basemapLegendVisible=!1,this.groundLegendVisible=!1,this.headingLevel=3,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.respectLayerVisibility=!0,this.iconClass=g.widgetIcon,this.label=void 0,this.layerInfos=null,this.messages=null,this.style=new h,this.view=null,this.viewModel=new c}initialize(){this.own(t(this,"view","resize",(()=>this.scheduleRender())),t(this,"activeLayerInfos","change",(()=>this._refreshActiveLayerInfos(this.activeLayerInfos))),i(this,"headingLevel",(e=>{const{style:s}=this;s&&(s.headingLevel=e)})),r(this,"style",((e,s)=>{s&&e!==s&&s.destroy(),e&&(e.activeLayerInfos=this.activeLayerInfos,"card"===e.type&&(e.view=this.view),e.headingLevel=this.headingLevel)})))}destroy(){this._handles.destroy(),this._handles=null}castStyle(e){if(e instanceof p||e instanceof h)return e;if("string"==typeof e)return"card"===e?new p:new h;if(e&&"string"==typeof e.type){const s={...e};delete s.type;return new("card"===e.type?p:h)(s)}return new h}render(){return v("div",{class:this.classes(g.base,g.widget,this.style instanceof h?g.panel:null)},this.style.render())}_refreshActiveLayerInfos(e){this._handles.removeAll(),e.forEach((e=>this._renderOnActiveLayerInfoChange(e))),this.scheduleRender()}_renderOnActiveLayerInfoChange(e){const s=r(e,"version",(()=>this.scheduleRender()));this._handles.add(s,`version_${e.layer.uid}`);const i=t(e,"children","change",(()=>{e.children.forEach((e=>this._renderOnActiveLayerInfoChange(e)))}));this._handles.add(i,`children_${e.layer.uid}`),e.children.forEach((e=>this._renderOnActiveLayerInfoChange(e)))}};e([o("viewModel.activeLayerInfos")],f.prototype,"activeLayerInfos",void 0),e([o("viewModel.basemapLegendVisible")],f.prototype,"basemapLegendVisible",void 0),e([o("viewModel.groundLegendVisible")],f.prototype,"groundLegendVisible",void 0),e([a()],f.prototype,"headingLevel",void 0),e([o("viewModel.hideLayersNotInCurrentView")],f.prototype,"hideLayersNotInCurrentView",void 0),e([o("viewModel.keepCacheOnDestroy")],f.prototype,"keepCacheOnDestroy",void 0),e([o("viewModel.respectLayerVisibility")],f.prototype,"respectLayerVisibility",void 0),e([a()],f.prototype,"iconClass",void 0),e([a({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],f.prototype,"label",void 0),e([o("viewModel.layerInfos")],f.prototype,"layerInfos",void 0),e([a(),y("geoscene/widgets/Legend/t9n/Legend")],f.prototype,"messages",void 0),e([a()],f.prototype,"style",void 0),e([n("style")],f.prototype,"castStyle",null),e([o("viewModel.view")],f.prototype,"view",void 0),e([a()],f.prototype,"viewModel",void 0),f=e([d("geoscene.widgets.Legend")],f);const L=f;export{L as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import r from"./LineOfSight/LineOfSightViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const u={button:"esri-button",buttonDisabled:"esri-button--disabled",widgetIcon:"geoscene-icon-line-of-sight",base:"esri-line-of-sight esri-widget esri-widget--panel",container:"esri-line-of-sight__container",actionSection:"esri-line-of-sight__actions",hint:"esri-line-of-sight__hint",hintText:"esri-line-of-sight__hint-text",panelError:"esri-line-of-sight__panel--error",newAnalysisButton:"esri-line-of-sight__new-analysis-button esri-button--primary",secondaryButton:"esri-line-of-sight__secondary-button esri-button--secondary"};let p=class extends n{constructor(e,t){super(e,t),this.iconClass=u.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new r}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}render(){return d("div",{class:u.base,role:"presentation"},this.renderContainerNode())}renderContainerNode(){if(!this.visible)return null;if(!this.viewModel.supported)return this._renderUnsupportedMessage();let e=null;const t=[this._renderNewAnalysisButton()];return"creating"===this.viewModel.state?(e=this._renderHint(),t.unshift(this._renderDoneButton())):"created"===this.viewModel.state&&this.viewModel.targets.length>0&&t.unshift(this._renderContinueButton()),d("div",{class:u.container},e,d("div",{class:u.actionSection},t))}_renderUnsupportedMessage(){return d("div",{class:u.panelError,key:"esri-line-of-sight__unsupported"},d("p",null,this.messages.unsupported))}_renderHint(){return d("div",{class:u.hint,key:"esri-line-of-sight__hint"},d("p",{class:u.hintText},this.messages.hint))}_renderNewAnalysisButton(){return this._renderButton(this._onNewAnalysis,this.messages.newAnalysis,u.newAnalysisButton,"esri-line-of-sight__new-button")}_renderDoneButton(){return this._renderButton(this._onDone,this.messages.done,u.secondaryButton,"esri-line-of-sight__done-button")}_renderContinueButton(){return this._renderButton(this._onContinue,this.messages.continueAnalysis,u.secondaryButton,"esri-line-of-sight__continue-button")}_renderButton(e,t,s,i){const o="disabled"===this.viewModel.state;return d("button",{disabled:o,class:this.classes(s,u.button,o&&u.buttonDisabled),bind:this,onclick:e,key:i,type:"button"},t)}_onNewAnalysis(){t(this.viewModel.start())}_onDone(){this.viewModel.stop()}_onContinue(){this.viewModel.continue()}};e([s("viewModel.active")],p.prototype,"active",void 0),e([i({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",null),e([i()],p.prototype,"iconClass",void 0),e([i({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),e([i(),a("geoscene/widgets/LineOfSight/t9n/LineOfSight")],p.prototype,"messages",void 0),e([s("viewModel.view")],p.prototype,"view",void 0),e([i({type:r})],p.prototype,"viewModel",void 0),e([s("viewModel.visible")],p.prototype,"visible",void 0),e([l()],p.prototype,"_onNewAnalysis",null),e([l()],p.prototype,"_onDone",null),e([l()],p.prototype,"_onContinue",null),p=e([o("geoscene.widgets.LineOfSight")],p);const c=p;export{c as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import r from"./LineOfSight/LineOfSightViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const u={button:"geoscene-button",buttonDisabled:"geoscene-button--disabled",widgetIcon:"geoscene-icon-line-of-sight",base:"geoscene-line-of-sight geoscene-widget geoscene-widget--panel",container:"geoscene-line-of-sight__container",actionSection:"geoscene-line-of-sight__actions",hint:"geoscene-line-of-sight__hint",hintText:"geoscene-line-of-sight__hint-text",panelError:"geoscene-line-of-sight__panel--error",newAnalysisButton:"geoscene-line-of-sight__new-analysis-button geoscene-button--primary",secondaryButton:"geoscene-line-of-sight__secondary-button geoscene-button--secondary"};let p=class extends n{constructor(e,t){super(e,t),this.iconClass=u.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new r}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}render(){return d("div",{class:u.base,role:"presentation"},this.renderContainerNode())}renderContainerNode(){if(!this.visible)return null;if(!this.viewModel.supported)return this._renderUnsupportedMessage();let e=null;const t=[this._renderNewAnalysisButton()];return"creating"===this.viewModel.state?(e=this._renderHint(),t.unshift(this._renderDoneButton())):"created"===this.viewModel.state&&this.viewModel.targets.length>0&&t.unshift(this._renderContinueButton()),d("div",{class:u.container},e,d("div",{class:u.actionSection},t))}_renderUnsupportedMessage(){return d("div",{class:u.panelError,key:"geoscene-line-of-sight__unsupported"},d("p",null,this.messages.unsupported))}_renderHint(){return d("div",{class:u.hint,key:"geoscene-line-of-sight__hint"},d("p",{class:u.hintText},this.messages.hint))}_renderNewAnalysisButton(){return this._renderButton(this._onNewAnalysis,this.messages.newAnalysis,u.newAnalysisButton,"geoscene-line-of-sight__new-button")}_renderDoneButton(){return this._renderButton(this._onDone,this.messages.done,u.secondaryButton,"geoscene-line-of-sight__done-button")}_renderContinueButton(){return this._renderButton(this._onContinue,this.messages.continueAnalysis,u.secondaryButton,"geoscene-line-of-sight__continue-button")}_renderButton(e,t,s,i){const o="disabled"===this.viewModel.state;return d("button",{disabled:o,class:this.classes(s,u.button,o&&u.buttonDisabled),bind:this,onclick:e,key:i,type:"button"},t)}_onNewAnalysis(){t(this.viewModel.start())}_onDone(){this.viewModel.stop()}_onContinue(){this.viewModel.continue()}};e([s("viewModel.active")],p.prototype,"active",void 0),e([i({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",null),e([i()],p.prototype,"iconClass",void 0),e([i({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),e([i(),a("geoscene/widgets/LineOfSight/t9n/LineOfSight")],p.prototype,"messages",void 0),e([s("viewModel.view")],p.prototype,"view",void 0),e([i({type:r})],p.prototype,"viewModel",void 0),e([s("viewModel.visible")],p.prototype,"visible",void 0),e([l()],p.prototype,"_onNewAnalysis",null),e([l()],p.prototype,"_onDone",null),e([l()],p.prototype,"_onContinue",null),p=e([o("geoscene.widgets.LineOfSight")],p);const c=p;export{c as default};
package/widgets/Locate.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../chunks/tslib.es6.js";import{aliasOf as e}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import r from"./Locate/LocateViewModel.js";import{accessibleHandler as a}from"./support/decorators/accessibleHandler.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as c}from"./support/decorators/vmEvent.js";import{tsx as n}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const d={base:"esri-locate esri-widget--button esri-widget",text:"geoscene-icon-font-fallback-text",icon:"geoscene-icon",locate:"geoscene-icon-locate",loading:"geoscene-icon-loading-indicator",rotating:"esri-rotating",widgetIcon:"geoscene-icon-north-navigation",disabled:"esri-disabled",hidden:"esri-hidden"};let p=class extends i{constructor(o,e){super(o,e),this.geolocationOptions=null,this.goToLocationEnabled=null,this.goToOverride=null,this.graphic=null,this.iconClass=d.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.popupEnabled=null,this.scale=null,this.useHeadingEnabled=null,this.view=null,this.viewModel=new r}cancelLocate(){}locate(){}render(){const o=this.get("viewModel.state"),e="locating"===o,t={[d.disabled]:"disabled"===o,[d.hidden]:"feature-unsupported"===o},s={[d.loading]:e,[d.rotating]:e,[d.locate]:!e},i="locating"===o?this.messagesCommon.cancel:this.messages.title;return n("div",{bind:this,class:this.classes(d.base,t),hidden:"feature-unsupported"===o,onclick:this._locate,onkeydown:this._locate,role:"button",tabIndex:0,"aria-label":i,title:i},n("span",{"aria-hidden":"true",class:this.classes(d.icon,s)}),n("span",{class:d.text},this.messages.title))}_locate(){const{viewModel:o}=this;"locating"===o.state?o.cancelLocate():o.locate()}};o([e("viewModel.geolocationOptions")],p.prototype,"geolocationOptions",void 0),o([e("viewModel.goToLocationEnabled")],p.prototype,"goToLocationEnabled",void 0),o([e("viewModel.goToOverride")],p.prototype,"goToOverride",void 0),o([e("viewModel.graphic")],p.prototype,"graphic",void 0),o([t()],p.prototype,"iconClass",void 0),o([t({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),o([t(),l("geoscene/widgets/Locate/t9n/Locate")],p.prototype,"messages",void 0),o([t(),l("geoscene/t9n/common")],p.prototype,"messagesCommon",void 0),o([e("viewModel.popupEnabled")],p.prototype,"popupEnabled",void 0),o([e("viewModel.scale")],p.prototype,"scale",void 0),o([e("viewModel.useHeadingEnabled")],p.prototype,"useHeadingEnabled",void 0),o([e("viewModel.view")],p.prototype,"view",void 0),o([t({type:r}),c(["locate","locate-error"])],p.prototype,"viewModel",void 0),o([e("viewModel.cancelLocate")],p.prototype,"cancelLocate",null),o([e("viewModel.locate")],p.prototype,"locate",null),o([a()],p.prototype,"_locate",null),p=o([s("geoscene.widgets.Locate")],p);const g=p;export{g as default};
5
+ import{_ as o}from"../chunks/tslib.es6.js";import{aliasOf as e}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import r from"./Locate/LocateViewModel.js";import{accessibleHandler as a}from"./support/decorators/accessibleHandler.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as c}from"./support/decorators/vmEvent.js";import{tsx as n}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const d={base:"geoscene-locate geoscene-widget--button geoscene-widget",text:"geoscene-icon-font-fallback-text",icon:"geoscene-icon",locate:"geoscene-icon-locate",loading:"geoscene-icon-loading-indicator",rotating:"geoscene-rotating",widgetIcon:"geoscene-icon-north-navigation",disabled:"geoscene-disabled",hidden:"geoscene-hidden"};let p=class extends i{constructor(o,e){super(o,e),this.geolocationOptions=null,this.goToLocationEnabled=null,this.goToOverride=null,this.graphic=null,this.iconClass=d.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.popupEnabled=null,this.scale=null,this.useHeadingEnabled=null,this.view=null,this.viewModel=new r}cancelLocate(){}locate(){}render(){const o=this.get("viewModel.state"),e="locating"===o,t={[d.disabled]:"disabled"===o,[d.hidden]:"feature-unsupported"===o},s={[d.loading]:e,[d.rotating]:e,[d.locate]:!e},i="locating"===o?this.messagesCommon.cancel:this.messages.title;return n("div",{bind:this,class:this.classes(d.base,t),hidden:"feature-unsupported"===o,onclick:this._locate,onkeydown:this._locate,role:"button",tabIndex:0,"aria-label":i,title:i},n("span",{"aria-hidden":"true",class:this.classes(d.icon,s)}),n("span",{class:d.text},this.messages.title))}_locate(){const{viewModel:o}=this;"locating"===o.state?o.cancelLocate():o.locate()}};o([e("viewModel.geolocationOptions")],p.prototype,"geolocationOptions",void 0),o([e("viewModel.goToLocationEnabled")],p.prototype,"goToLocationEnabled",void 0),o([e("viewModel.goToOverride")],p.prototype,"goToOverride",void 0),o([e("viewModel.graphic")],p.prototype,"graphic",void 0),o([t()],p.prototype,"iconClass",void 0),o([t({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),o([t(),l("geoscene/widgets/Locate/t9n/Locate")],p.prototype,"messages",void 0),o([t(),l("geoscene/t9n/common")],p.prototype,"messagesCommon",void 0),o([e("viewModel.popupEnabled")],p.prototype,"popupEnabled",void 0),o([e("viewModel.scale")],p.prototype,"scale",void 0),o([e("viewModel.useHeadingEnabled")],p.prototype,"useHeadingEnabled",void 0),o([e("viewModel.view")],p.prototype,"view",void 0),o([t({type:r}),c(["locate","locate-error"])],p.prototype,"viewModel",void 0),o([e("viewModel.cancelLocate")],p.prototype,"cancelLocate",null),o([e("viewModel.locate")],p.prototype,"locate",null),o([a()],p.prototype,"_locate",null),p=o([s("geoscene.widgets.Locate")],p);const g=p;export{g as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../core/has.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/accessorSupport/ensureType.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import a from"./Measurement/MeasurementViewModel.js";import"./support/widgetUtils.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as d}from"./support/jsxFactory.js";const l={base:"esri-measurement",widgetIcon:"geoscene-icon-measure"};function c(e){return e&&("geoscene.widgets.AreaMeasurement2D"===e.declaredClass||"geoscene.widgets.AreaMeasurement3D"===e.declaredClass)}let u=class extends o{constructor(e,t){super(e,t),this._widgets=new Map,this.activeTool=null,this.activeWidget=null,this.areaUnit=null,this.iconClass=l.widgetIcon,this.label=void 0,this.linearUnit=null,this.messages=null,this.view=null,this.viewModel=new a}initialize(){this.activeWidget&&this.viewModel.set("activeViewModel",this.activeWidget.viewModel),this.view&&this.activeTool&&this._getActiveWidget().then((e=>{this._set("activeWidget",e)})),this.own([this.watch(["view","activeTool"],(()=>{this._getActiveWidget().then((e=>{this._set("activeWidget",e)}))})),this.watch("activeWidget",((e,t)=>{this.viewModel.set("activeViewModel",e?e.viewModel:null),t&&(t.visible=!1)})),this.watch(["areaUnit","linearUnit","uiStrings"],(()=>this._updateSubWidgetProperties()))])}destroy(){this._destroyWidgets()}render(){const{activeWidget:e}=this,t=e&&!e.destroyed?e.render():null;return d("div",{class:l.base},t)}clear(){this.activeTool=null,this._destroyWidgets()}startMeasurement(){const{activeViewModel:e}=this.viewModel;e&&t(e.start())}async _createWidget(e){const{areaUnit:t,linearUnit:i,view:s}=this;switch(e){case"area":{const{type:i}=s;switch(i){case"2d":return new(0,(await import("./AreaMeasurement2D.js")).default)({view:s,unit:t,uiStrings:this._createUIStringsForWidget(e)});case"3d":return new(0,(await import("./AreaMeasurement3D.js")).default)({view:s,unit:t,uiStrings:this._createUIStringsForWidget(e)});default:return null}}case"distance":return new(0,(await import("./DistanceMeasurement2D.js")).default)({view:s,unit:i,uiStrings:this._createUIStringsForWidget(e)});case"direct-line":return new(0,(await import("./DirectLineMeasurement3D.js")).default)({view:s,unit:i,uiStrings:this._createUIStringsForWidget(e)});default:return null}}_destroyWidgets(){this._widgets.forEach((e=>e.destroy())),this._widgets.clear()}async _getActiveWidget(){const{activeTool:e,view:t}=this;if(!t||!e)return null;let i=null;if(this._widgets.has(e))i=this._widgets.get(e),i.visible=!0;else{if(i=await this._createWidget(e),!i)return null;await i.viewModel.start(),this._widgets.set(e,i)}return i}_createUIStringsForWidget(e){if(!this.uiStrings)return null;const t=e+"-"+this.view.type;return this.uiStrings[t]}_updateSubWidgetProperties(){this._widgets.forEach(((e,t)=>{const{areaUnit:i,linearUnit:s}=this;e.unit=c(e)?i:s,e.uiStrings=this._createUIStringsForWidget(t)}))}};e([i("viewModel.activeTool")],u.prototype,"activeTool",void 0),e([s({readOnly:!0})],u.prototype,"activeWidget",void 0),e([i("viewModel.areaUnit")],u.prototype,"areaUnit",void 0),e([s()],u.prototype,"iconClass",void 0),e([s({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],u.prototype,"label",void 0),e([i("viewModel.linearUnit")],u.prototype,"linearUnit",void 0),e([s(),n("geoscene/widgets/Measurement/t9n/Measurement")],u.prototype,"messages",void 0),e([s()],u.prototype,"uiStrings",void 0),e([i("viewModel.view")],u.prototype,"view",void 0),e([s({type:a})],u.prototype,"viewModel",void 0),u=e([r("geoscene.widgets.Measurement")],u);const p=u;export{p as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../core/has.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/accessorSupport/ensureType.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import a from"./Measurement/MeasurementViewModel.js";import"./support/widgetUtils.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as d}from"./support/jsxFactory.js";const l={base:"geoscene-measurement",widgetIcon:"geoscene-icon-measure"};function c(e){return e&&("geoscene.widgets.AreaMeasurement2D"===e.declaredClass||"geoscene.widgets.AreaMeasurement3D"===e.declaredClass)}let u=class extends o{constructor(e,t){super(e,t),this._widgets=new Map,this.activeTool=null,this.activeWidget=null,this.areaUnit=null,this.iconClass=l.widgetIcon,this.label=void 0,this.linearUnit=null,this.messages=null,this.view=null,this.viewModel=new a}initialize(){this.activeWidget&&this.viewModel.set("activeViewModel",this.activeWidget.viewModel),this.view&&this.activeTool&&this._getActiveWidget().then((e=>{this._set("activeWidget",e)})),this.own([this.watch(["view","activeTool"],(()=>{this._getActiveWidget().then((e=>{this._set("activeWidget",e)}))})),this.watch("activeWidget",((e,t)=>{this.viewModel.set("activeViewModel",e?e.viewModel:null),t&&(t.visible=!1)})),this.watch(["areaUnit","linearUnit","uiStrings"],(()=>this._updateSubWidgetProperties()))])}destroy(){this._destroyWidgets()}render(){const{activeWidget:e}=this,t=e&&!e.destroyed?e.render():null;return d("div",{class:l.base},t)}clear(){this.activeTool=null,this._destroyWidgets()}startMeasurement(){const{activeViewModel:e}=this.viewModel;e&&t(e.start())}async _createWidget(e){const{areaUnit:t,linearUnit:i,view:s}=this;switch(e){case"area":{const{type:i}=s;switch(i){case"2d":return new(0,(await import("./AreaMeasurement2D.js")).default)({view:s,unit:t,uiStrings:this._createUIStringsForWidget(e)});case"3d":return new(0,(await import("./AreaMeasurement3D.js")).default)({view:s,unit:t,uiStrings:this._createUIStringsForWidget(e)});default:return null}}case"distance":return new(0,(await import("./DistanceMeasurement2D.js")).default)({view:s,unit:i,uiStrings:this._createUIStringsForWidget(e)});case"direct-line":return new(0,(await import("./DirectLineMeasurement3D.js")).default)({view:s,unit:i,uiStrings:this._createUIStringsForWidget(e)});default:return null}}_destroyWidgets(){this._widgets.forEach((e=>e.destroy())),this._widgets.clear()}async _getActiveWidget(){const{activeTool:e,view:t}=this;if(!t||!e)return null;let i=null;if(this._widgets.has(e))i=this._widgets.get(e),i.visible=!0;else{if(i=await this._createWidget(e),!i)return null;await i.viewModel.start(),this._widgets.set(e,i)}return i}_createUIStringsForWidget(e){if(!this.uiStrings)return null;const t=e+"-"+this.view.type;return this.uiStrings[t]}_updateSubWidgetProperties(){this._widgets.forEach(((e,t)=>{const{areaUnit:i,linearUnit:s}=this;e.unit=c(e)?i:s,e.uiStrings=this._createUIStringsForWidget(t)}))}};e([i("viewModel.activeTool")],u.prototype,"activeTool",void 0),e([s({readOnly:!0})],u.prototype,"activeWidget",void 0),e([i("viewModel.areaUnit")],u.prototype,"areaUnit",void 0),e([s()],u.prototype,"iconClass",void 0),e([s({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],u.prototype,"label",void 0),e([i("viewModel.linearUnit")],u.prototype,"linearUnit",void 0),e([s(),n("geoscene/widgets/Measurement/t9n/Measurement")],u.prototype,"messages",void 0),e([s()],u.prototype,"uiStrings",void 0),e([i("viewModel.view")],u.prototype,"view",void 0),e([s({type:a})],u.prototype,"viewModel",void 0),u=e([r("geoscene.widgets.Measurement")],u);const p=u;export{p as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import a from"./NavigationToggle/NavigationToggleViewModel.js";import{accessibleHandler as r}from"./support/decorators/accessibleHandler.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as l}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const g={base:"esri-navigation-toggle esri-widget",button:"esri-navigation-toggle__button esri-widget--button",activeButton:"esri-navigation-toggle__button--active",panButton:"esri-navigation-toggle__button--pan",rotateButton:"esri-navigation-toggle__button--rotate",isLayoutHorizontal:"esri-navigation-toggle--horizontal",rotationIcon:"geoscene-icon-rotate",panIcon:"geoscene-icon-pan",widgetIcon:"geoscene-icon-pan2",disabled:"esri-disabled"};let p=class extends i{constructor(t,o){super(t,o),this.iconClass=g.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new a}set layout(t){"horizontal"!==t&&(t="vertical"),this._set("layout",t)}toggle(){return this.viewModel.toggle()}render(){const t="disabled"===this.get("viewModel.state"),o="pan"===this.get("viewModel.navigationMode"),e={[g.disabled]:t,[g.isLayoutHorizontal]:"horizontal"===this.layout},s={[g.activeButton]:o},i={[g.activeButton]:!o},a=t?-1:0,r=this.messages.toggle;return l("div",{bind:this,class:this.classes(g.base,e),onclick:this._toggle,onkeydown:this._toggle,tabIndex:a,"aria-label":r,title:r},l("div",{class:this.classes(g.button,g.panButton,s)},l("span",{class:g.panIcon})),l("div",{class:this.classes(g.button,g.rotateButton,i)},l("span",{class:g.rotationIcon})))}_toggle(){this.toggle()}};t([e()],p.prototype,"iconClass",void 0),t([e({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),t([e({value:"vertical"})],p.prototype,"layout",null),t([e(),n("geoscene/widgets/NavigationToggle/t9n/NavigationToggle")],p.prototype,"messages",void 0),t([o("viewModel.view")],p.prototype,"view",void 0),t([e({type:a})],p.prototype,"viewModel",void 0),t([r()],p.prototype,"_toggle",null),p=t([s("geoscene.widgets.NavigationToggle")],p);const c=p;export{c as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import a from"./NavigationToggle/NavigationToggleViewModel.js";import{accessibleHandler as r}from"./support/decorators/accessibleHandler.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as l}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const g={base:"geoscene-navigation-toggle geoscene-widget",button:"geoscene-navigation-toggle__button geoscene-widget--button",activeButton:"geoscene-navigation-toggle__button--active",panButton:"geoscene-navigation-toggle__button--pan",rotateButton:"geoscene-navigation-toggle__button--rotate",isLayoutHorizontal:"geoscene-navigation-toggle--horizontal",rotationIcon:"geoscene-icon-rotate",panIcon:"geoscene-icon-pan",widgetIcon:"geoscene-icon-pan2",disabled:"geoscene-disabled"};let p=class extends i{constructor(t,o){super(t,o),this.iconClass=g.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new a}set layout(t){"horizontal"!==t&&(t="vertical"),this._set("layout",t)}toggle(){return this.viewModel.toggle()}render(){const t="disabled"===this.get("viewModel.state"),o="pan"===this.get("viewModel.navigationMode"),e={[g.disabled]:t,[g.isLayoutHorizontal]:"horizontal"===this.layout},s={[g.activeButton]:o},i={[g.activeButton]:!o},a=t?-1:0,r=this.messages.toggle;return l("div",{bind:this,class:this.classes(g.base,e),onclick:this._toggle,onkeydown:this._toggle,tabIndex:a,"aria-label":r,title:r},l("div",{class:this.classes(g.button,g.panButton,s)},l("span",{class:g.panIcon})),l("div",{class:this.classes(g.button,g.rotateButton,i)},l("span",{class:g.rotationIcon})))}_toggle(){this.toggle()}};t([e()],p.prototype,"iconClass",void 0),t([e({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],p.prototype,"label",void 0),t([e({value:"vertical"})],p.prototype,"layout",null),t([e(),n("geoscene/widgets/NavigationToggle/t9n/NavigationToggle")],p.prototype,"messages",void 0),t([o("viewModel.view")],p.prototype,"view",void 0),t([e({type:a})],p.prototype,"viewModel",void 0),t([r()],p.prototype,"_toggle",null),p=t([s("geoscene.widgets.NavigationToggle")],p);const c=p;export{c as default};
package/widgets/Popup.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import o from"../core/Handles.js";import n from"../core/Logger.js";import{isNone as s}from"../core/maybe.js";import{whenOnce as r}from"../core/reactiveUtils.js";import{throttle as a}from"../core/throttle.js";import{watch as l,whenFalse as u,on as c,init as d}from"../core/watchUtils.js";import{aliasOf as p}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as h}from"../core/accessorSupport/decorators/cast.js";import{property as g}from"../core/accessorSupport/decorators/property.js";import{subclass as _}from"../core/accessorSupport/decorators/subclass.js";import v from"./Feature.js";import f from"./Spinner.js";import m from"./Widget.js";import{FeatureContentMixin as b}from"./Feature/support/FeatureContentMixin.js";import M from"./Popup/PopupViewModel.js";import{Heading as w}from"./support/Heading.js";import{accessibleHandler as y}from"./support/decorators/accessibleHandler.js";import{messageBundle as k}from"./support/decorators/messageBundle.js";import{vmEvent as C}from"./support/decorators/vmEvent.js";import{tsx as A}from"./support/jsxFactory.js";import{isRTL as F,storeNode as I,cssTransition as O}from"./support/widgetUtils.js";import{substitute as x}from"../intl/substitute.js";const N="selected-index",B=0,T="popup-spinner",D={iconLeftTriangleArrow:"geoscene-icon-left-triangle-arrow",iconRightTriangleArrow:"geoscene-icon-right-triangle-arrow",iconDockToTop:"geoscene-icon-maximize",iconDockToBottom:"geoscene-icon-dock-bottom",iconDockToLeft:"geoscene-icon-dock-left",iconDockToRight:"geoscene-icon-dock-right",iconClose:"geoscene-icon-close",iconUndock:"geoscene-icon-minimize",iconCheckMark:"geoscene-icon-check-mark",iconLoading:"geoscene-icon-loading-indicator",iconDefaultAction:"geoscene-icon-default-action",iconActionsMenu:"geoscene-icon-handle-horizontal",rotating:"esri-rotating",base:"esri-popup",widget:"esri-widget",main:"esri-popup__main-container",loadingContainer:"esri-popup__loading-container",isCollapsible:"esri-popup--is-collapsible",isCollapsed:"esri-popup--is-collapsed",shadow:"esri-popup--shadow",isDocked:"esri-popup--is-docked",isDockedTopLeft:"esri-popup--is-docked-top-left",isDockedTopCenter:"esri-popup--is-docked-top-center",isDockedTopRight:"esri-popup--is-docked-top-right",isDockedBottomLeft:"esri-popup--is-docked-bottom-left",isDockedBottomCenter:"esri-popup--is-docked-bottom-center",isDockedBottomRight:"esri-popup--is-docked-bottom-right",alignTopCenter:"esri-popup--aligned-top-center",alignBottomCenter:"esri-popup--aligned-bottom-center",alignTopLeft:"esri-popup--aligned-top-left",alignBottomLeft:"esri-popup--aligned-bottom-left",alignTopRight:"esri-popup--aligned-top-right",alignBottomRight:"esri-popup--aligned-bottom-right",isFeatureMenuOpen:"esri-popup--feature-menu-open",isActionsMenuOpen:"esri-popup--actions-menu-open",hasFeatureUpdated:"esri-popup--feature-updated",header:"esri-popup__header",headerButtons:"esri-popup__header-buttons",headerContainer:"esri-popup__header-container",headerContainerButton:"esri-popup__header-container--button",headerTitle:"esri-popup__header-title",content:"esri-popup__content",footer:"esri-popup__footer",footerHasPagination:"esri-popup__footer--has-pagination",footerHasActions:"esri-popup__footer--has-actions",footerHasActionsMenu:"esri-popup__footer--has-actions-menu",button:"esri-popup__button",buttonDisabled:"esri-popup__button--disabled",buttonDock:"esri-popup__button--dock",icon:"esri-popup__icon",iconDock:"esri-popup__icon--dock-icon",inlineActionsContainer:"esri-popup__inline-actions-container",actionsMenuButton:"esri-popup__actions-menu-button",actions:"esri-popup__actions",action:"esri-popup__action",actionImage:"esri-popup__action-image",actionText:"esri-popup__action-text",actionToggle:"esri-popup__action-toggle",actionToggleOn:"esri-popup__action-toggle--on",pointer:"esri-popup__pointer",pointerDirection:"esri-popup__pointer-direction",navigation:"esri-popup__navigation",paginationPrevious:"esri-popup__pagination-previous",paginationNext:"esri-popup__pagination-next",paginationPreviousIconLTR:"esri-popup__pagination-previous-icon",paginationPreviousIconRTL:"esri-popup__pagination-previous-icon--rtl",paginationNextIconLTR:"esri-popup__pagination-next-icon",paginationNextIconRTL:"esri-popup__pagination-next-icon--rtl",featureMenu:"esri-popup__feature-menu",featureMenuList:"esri-popup__feature-menu-list",featureMenuItem:"esri-popup__feature-menu-item",featureMenuViewport:"esri-popup__feature-menu-viewport",featureMenuHeader:"esri-popup__feature-menu-header",featureMenuNote:"esri-popup__feature-menu-note",featureMenuSelected:"esri-popup__feature-menu-item--selected",featureMenuButton:"esri-popup__feature-menu-button",featureMenuTitle:"esri-popup__feature-menu-title",featureMenuObserver:"esri-popup__feature-menu-observer",featureMenuLoader:"esri-popup__feature-menu-loader",collapseButton:"esri-popup__collapse-button"},E={buttonEnabled:!0,position:"auto",breakpoint:{width:544}},P="esri-popup";function L(e,t){return void 0===t?`${P}__${e}`:`${P}__${e}-${t}`}const S="geoscene.widgets.Popup",V=n.getLogger(S),U={closeButton:!0,featureNavigation:!0};let R=class extends(b(m)){constructor(e,t){super(e,t),this._blurClose=!1,this._blurContainer=!1,this._containerNode=null,this._mainContainerNode=null,this._featureMenuNode=null,this._actionsMenuNode=null,this._focusClose=!1,this._focusContainer=!1,this._focusDockButton=!1,this._focusFeatureMenuButton=!1,this._focusActionsMenuButton=!1,this._focusFirstFeature=!1,this._focusFirstAction=!1,this._handles=new o,this._pointerOffsetInPx=16,this._spinner=null,this._feature=null,this._featureMenuIntersectionObserverCallback=([e])=>{null!=e&&e.isIntersecting&&this.viewModel.featurePage++},this._featureMenuIntersectionObserver=new IntersectionObserver(this._featureMenuIntersectionObserverCallback,{root:window.document}),this._displaySpinnerThrottled=a((()=>this._displaySpinner()),B),this.actions=null,this.alignment="auto",this.autoCloseEnabled=null,this.autoOpenEnabled=null,this.defaultPopupTemplateEnabled=null,this.content=null,this.collapsed=!1,this.collapseEnabled=!0,this.dockEnabled=!1,this.featureCount=null,this.featureMenuOpen=!1,this.features=null,this.goToOverride=null,this.headingLevel=2,this.highlightEnabled=null,this.location=null,this.label=void 0,this.maxInlineActions=3,this.messages=null,this.messagesCommon=null,this.promises=null,this.selectedFeature=null,this.selectedFeatureIndex=null,this.spinnerEnabled=!0,this.title=null,this.updateLocationEnabled=null,this.view=null,this.viewModel=new M,this.visible=null,this.visibleElements={...U},this._addSelectedFeatureIndexHandle(),this.own([l(this,"viewModel.screenLocation",(()=>this._positionContainer())),l(this,["viewModel.active","dockEnabled"],(()=>this._toggleScreenLocationEnabled())),l(this,"viewModel.screenLocation",((e,t)=>{!!e!=!!t&&this.reposition()})),l(this,["viewModel.view.padding","viewModel.view.size","viewModel.active","viewModel.location","alignment"],(()=>this.reposition())),l(this,"spinnerEnabled",(e=>this._spinnerEnabledChange(e))),l(this,"viewModel.view.size",((e,t)=>this._updateDockEnabledForViewSize(e,t))),l(this,"viewModel.view",((e,t)=>this._viewChange(e,t))),l(this,"viewModel.view.ready",((e,t)=>this._viewReadyChange(e,t))),l(this,["viewModel.waitingForResult","viewModel.location"],(()=>{this._hideSpinner(),this._displaySpinnerThrottled()})),l(this,["selectedFeatureWidget.viewModel.title","selectedFeatureWidget.viewModel.state"],(()=>this._setTitleFromFeatureWidget())),l(this,["selectedFeatureWidget.viewModel.content","selectedFeatureWidget.viewModel.state"],(()=>this._setContentFromFeatureWidget())),u(this,"collapsed",(()=>{var e,t;"xsmall"===(null==(e=this.viewModel)||null==(t=e.view)?void 0:t.widthBreakpoint)&&this.viewModel.active&&this.collapseEnabled&&this.viewModel.centerAtLocation()})),c(this,"viewModel.allActions","change",(()=>this._watchActions())),d(this,"viewModel.allActions",(()=>this._watchActions())),l(this,"viewModel.featureViewModels",(()=>this._featureMenuViewportScrollTop()))])}destroy(){var e,t;this._destroySelectedFeatureWidget(),this._destroySpinner(),null==(e=this._handles)||e.destroy(),this._unobserveFeatureMenuObserver(),null==(t=this._featureMenuIntersectionObserver)||t.disconnect(),this._handles=null}get actionsMenuId(){return`${this.id}-actions-menu`}get actionsMenuButtonId(){return`${this.id}-actions-menu-button`}get featureMenuId(){return`${this.id}-feature-menu`}get titleId(){return`${this.id}-popup-title`}get contentId(){return`${this.id}-popup-content`}get hasContent(){var e,t,i,o,n,s,r;return!!(this.selectedFeatureWidget?(null==(e=this.selectedFeatureWidget)||null==(t=e.viewModel)?void 0:t.waitingForContent)||"error"===(null==(i=this.selectedFeatureWidget)||null==(o=i.viewModel)?void 0:o.state)||(null==(n=this.selectedFeatureWidget)||null==(s=n.viewModel)?void 0:s.content):null==(r=this.viewModel)?void 0:r.content)}get featureNavigationVisible(){return this.viewModel.active&&this.viewModel.featureCount>1&&this.visibleElements.featureNavigation}get collapsible(){return!!(this.collapseEnabled&&this.viewModel.title&&this.hasContent)}get featureMenuVisible(){return this.featureNavigationVisible&&this.featureMenuOpen}get contentCollapsed(){return this.collapsible&&!this.featureMenuVisible&&this.collapsed}get dividedActions(){return this._divideActions()}set actionsMenuOpen(e){this._set("actionsMenuOpen",!!e)}get actionsMenuOpen(){return!!this.viewModel.active&&this._get("actionsMenuOpen")}get currentAlignment(){return this._getCurrentAlignment()}get currentDockPosition(){return this._getCurrentDockPosition()}get dockOptions(){return this._get("dockOptions")||E}set dockOptions(e){const t={...E},i=this.get("viewModel.view.breakpoints"),o={};i&&(o.width=i.xsmall,o.height=i.xsmall);const n={...t,...e},s={...t.breakpoint,...o},{breakpoint:r}=n;!0===r?n.breakpoint=s:"object"==typeof r&&(n.breakpoint={...s,...r}),this._set("dockOptions",n),this._setCurrentDockPosition(),this.reposition()}get selectedFeatureWidget(){const{_feature:e,visibleElements:t,headingLevel:i}=this,{selectedFeatureViewModel:o}=this.viewModel,n={...t,title:!1};return o?(e?(e.viewModel=o,e.visibleElements=n):this._feature=new v({headingLevel:i+1,viewModel:o,visibleElements:n}),this._feature):null}castVisibleElements(e){return{...U,...e}}blur(){const{active:e}=this.viewModel;e||V.warn("Popup can only be blurred when currently active."),this.visibleElements.closeButton?this._blurClose=!0:this._blurContainer=!0,this.scheduleRender()}clear(){this.viewModel.clear()}close(){this.visible=!1}fetchFeatures(e,t){return this.viewModel.fetchFeatures(e,t)}focus(){const{active:e}=this.viewModel;e||V.warn("Popup can only be focused when currently active."),this.visibleElements.closeButton?this._focusClose=!0:this._focusContainer=!0,this.scheduleRender()}next(){return this.viewModel.next()}open(e){var t,i;this._handles.remove(N);const o=!!e&&!!e.featureMenuOpen,n=!!e&&!!e.actionsMenuOpen,s={collapsed:!!e&&!!e.collapsed,actionsMenuOpen:n,featureMenuOpen:o};"xsmall"===(null==(t=this.viewModel)||null==(i=t.view)?void 0:i.widthBreakpoint)&&(s.collapsed=!0),this.set(s),this.viewModel.open(e),this._shouldFocus(e),this._addSelectedFeatureIndexHandle()}previous(){return this.viewModel.previous()}reposition(){this.renderNow(),this._positionContainer(),this._setCurrentAlignment()}triggerAction(e){this.viewModel.triggerAction(e)}render(){var e,t,i,o;const{actionsMenuOpen:n,dockEnabled:s,featureMenuVisible:r,dividedActions:a,currentAlignment:l,currentDockPosition:u}=this,{active:c}=this.viewModel,{menuActions:d}=a,p=c&&d.length>1&&n,h=c&&s,g=c&&!s,_=null==(e=this.selectedFeature)||null==(t=e.layer)?void 0:t.title,v=null==(i=this.selectedFeature)||null==(o=i.layer)?void 0:o.id,f={[D.alignTopCenter]:"top-center"===l,[D.alignBottomCenter]:"bottom-center"===l,[D.alignTopLeft]:"top-left"===l,[D.alignBottomLeft]:"bottom-left"===l,[D.alignTopRight]:"top-right"===l,[D.alignBottomRight]:"bottom-right"===l,[D.isDocked]:h,[D.shadow]:g,[D.isDockedTopLeft]:"top-left"===u,[D.isDockedTopCenter]:"top-center"===u,[D.isDockedTopRight]:"top-right"===u,[D.isDockedBottomLeft]:"bottom-left"===u,[D.isDockedBottomCenter]:"bottom-center"===u,[D.isDockedBottomRight]:"bottom-right"===u,[D.isFeatureMenuOpen]:r,[D.isActionsMenuOpen]:p};return A("div",{class:this.classes(D.base,f),role:"presentation","data-layer-title":_,"data-layer-id":v,bind:this,afterCreate:this._positionContainer,afterUpdate:this._positionContainer},c?[this.renderMainContainer(),this.renderPointer()]:null)}renderLoadingIcon(){return A("span",{"aria-hidden":"true",class:this.classes(D.icon,D.iconLoading,D.rotating)})}renderNavigationLoading(){const{messagesCommon:e}=this;return this.viewModel.pendingPromisesCount?A("div",{key:L("loading-container"),role:"presentation",class:D.loadingContainer,"aria-label":e.loading,title:e.loading},this.renderLoadingIcon()):null}renderPreviousIcon(){const e=F(this.container),t={[D.iconRightTriangleArrow]:e,[D.paginationPreviousIconRTL]:e,[D.iconLeftTriangleArrow]:!e,[D.paginationPreviousIconLTR]:!e};return A("span",{"aria-hidden":"true",class:this.classes(D.icon,t)})}renderPreviousButton(){const{messages:e}=this;return A("div",{role:"button",tabIndex:0,bind:this,onclick:this._previous,onkeydown:this._previous,class:this.classes(D.button,D.paginationPrevious),"aria-label":e.previous,title:e.previous},this.renderPreviousIcon())}renderNextIcon(){const e=F(this.container),t={[D.iconLeftTriangleArrow]:e,[D.paginationNextIconRTL]:e,[D.iconRightTriangleArrow]:!e,[D.paginationNextIconLTR]:!e};return A("span",{"aria-hidden":"true",class:this.classes(D.icon,t)})}renderNextButton(){const{messages:e}=this;return A("div",{role:"button",tabIndex:0,bind:this,onclick:this._next,onkeydown:this._next,class:this.classes(D.button,D.paginationNext),"aria-label":e.next,title:e.next},this.renderNextIcon())}renderFeatureMenuButton(){const{featureMenuOpen:e,featureMenuId:t,messagesCommon:i}=this,{featureCount:o,selectedFeatureIndex:n}=this.viewModel;return A("div",{role:"button",tabIndex:0,bind:this,onclick:this._toggleFeatureMenu,onkeydown:this._toggleFeatureMenu,afterCreate:this._focusFeatureMenuButtonNode,afterUpdate:this._focusFeatureMenuButtonNode,class:this.classes(D.button,D.featureMenuButton),"aria-haspopup":"true","aria-controls":t,"aria-expanded":e.toString(),"aria-label":i.menu,title:i.menu},this._getPageText(o,n))}renderNavigationButtons(){return this.featureNavigationVisible?[this.renderPreviousButton(),this.renderNavigationLoading()||this.renderFeatureMenuButton(),this.renderNextButton()]:null}renderDockIcon(){const{dockEnabled:e}=this,t=this._wouldDockTo(),i={[D.iconUndock]:e,[D.iconDock]:!e,[D.iconDockToRight]:!e&&("top-right"===t||"bottom-right"===t),[D.iconDockToLeft]:!e&&("top-left"===t||"bottom-left"===t),[D.iconDockToTop]:!e&&"top-center"===t,[D.iconDockToBottom]:!e&&"bottom-center"===t};return A("span",{"aria-hidden":"true",class:this.classes(i,D.icon)})}renderDockButton(){var e,t,i;const{dockEnabled:o,messages:n}=this,s=null==(e=this.viewModel)||null==(t=e.view)?void 0:t.widthBreakpoint,r=o?n.undock:n.dock;return"xsmall"!==s&&null!=(i=this.dockOptions)&&i.buttonEnabled?A("div",{role:"button","aria-label":r,title:r,tabIndex:0,bind:this,onclick:this._toggleDockEnabled,onkeydown:this._toggleDockEnabled,afterCreate:this._focusDockButtonNode,afterUpdate:this._focusDockButtonNode,class:this.classes(D.button,D.buttonDock)},this.renderDockIcon()):null}renderTitle(){const{title:e}=this.viewModel,{titleId:t,collapsible:i,contentCollapsed:o,messagesCommon:n}=this,s={[D.headerContainerButton]:i},r=A(w,{level:this.headingLevel,class:D.headerTitle,innerHTML:e}),a=i?A("button",{key:`${e}--collapsible`,id:t,title:o?n.expand:n.collapse,bind:this,enterAnimation:this._createFeatureUpdatedAnimation(),class:this.classes(D.headerContainer,s),"aria-expanded":o?"false":"true",onclick:this._toggleCollapsed,type:"button"},r):A("div",{key:e,id:t,bind:this,enterAnimation:this._createFeatureUpdatedAnimation(),class:this.classes(D.headerContainer,s)},r);return e?a:null}renderCloseIcon(){return A("span",{"aria-hidden":"true",class:this.classes(D.icon,D.iconClose)})}renderCloseButton(){const{visibleElements:e,messagesCommon:t}=this;return e.closeButton?A("div",{role:"button",tabIndex:0,bind:this,onclick:this._close,onkeydown:this._close,class:D.button,"aria-label":t.close,title:t.close,afterCreate:this._closeButtonNodeUpdated,afterUpdate:this._closeButtonNodeUpdated},this.renderCloseIcon()):null}renderHeader(){return A("header",{class:D.header},this.renderTitle(),A("div",{class:D.headerButtons},this.renderDockButton(),this.renderCloseButton()))}renderContentContainer(){const{contentId:e,hasContent:t,contentCollapsed:i}=this,{content:o}=this.viewModel;return t&&!i?A("article",{key:o,enterAnimation:this._createFeatureUpdatedAnimation(),id:e,class:D.content},this.renderContent()):null}renderActionsMenuButton(){const{actionsMenuId:e,actionsMenuButtonId:t,actionsMenuOpen:i,dividedActions:o,messagesCommon:n}=this,s=i?n.close:n.open,{menuActions:r}=o;return r.length?A("div",{key:L("actions-menu-button"),class:this.classes(D.button,D.actionsMenuButton),role:"button",id:t,"aria-haspopup":"true","aria-controls":i?e:null,tabIndex:0,bind:this,onclick:this._toggleActionsMenu,onkeydown:this._toggleActionsMenu,afterCreate:this._focusActionsMenuButtonNode,afterUpdate:this._focusActionsMenuButtonNode,"aria-label":s,title:s},A("span",{"aria-hidden":"true",class:D.iconActionsMenu})):null}renderMenuActions(){const{actionsMenuId:e,actionsMenuButtonId:t,actionsMenuOpen:i,dividedActions:o}=this,{menuActions:n}=o;return n.length&&i?A("ul",{id:e,role:"menu","aria-labelledby":t,key:L("actions"),class:D.actions,bind:this,onkeyup:this._handleActionMenuKeyup,afterCreate:this._actionsMenuNodeUpdated,afterUpdate:this._actionsMenuNodeUpdated},n.toArray().map((e=>this.renderAction({action:e,type:"menu-item"})))):null}renderInlineActions(){const{inlineActions:e}=this.dividedActions;return!!e.length&&e.toArray().map((e=>this.renderAction({action:e,type:"inline"})))}renderInlineActionsContainer(){const{inlineActions:e,menuActions:t}=this.dividedActions,i=!!e.length,o=!!t.length;return i||o?A("div",{key:"inline-actions-container","data-inline-actions":i.toString(),"data-menu-actions":o.toString(),class:D.inlineActionsContainer},this.renderInlineActions(),this.renderActionsMenuButton(),this.renderMenuActions()):null}renderNavigation(){return this.featureNavigationVisible?A("section",{key:L("navigation"),class:this.classes(D.navigation)},this.renderNavigationButtons()):null}renderFooter(){const{featureNavigationVisible:e,dividedActions:t}=this,{inlineActions:i,menuActions:o}=t,n=!!i.length,s=!!o.length,r={[D.footerHasPagination]:e,[D.footerHasActions]:n,[D.footerHasActionsMenu]:s};return e||n?A("div",{key:L("feature-buttons"),class:this.classes(D.footer,r)},this.renderInlineActionsContainer(),this.renderNavigation()):null}renderFeatureMenuContainer(){const{messages:e}=this,{featureViewModels:t,isLoadingFeature:i}=this.viewModel,o=x(e.selectedFeatures,{total:t.length});return A("section",{key:L("menu"),class:D.featureMenu},A("strong",{class:D.featureMenuHeader},o),A("nav",{bind:this,class:D.featureMenuViewport,"data-node-ref":"_featureMenuViewportNode",afterCreate:I},this.renderFeatureMenu(),A("div",{class:D.featureMenuObserver,bind:this,afterCreate:this._featureMenuIntersectionObserverCreated}),i?A("div",{class:D.featureMenuLoader},this.renderLoadingIcon()):null))}renderPointer(){return this.dockEnabled?null:A("div",{key:L("pointer"),class:D.pointer,role:"presentation"},A("div",{class:this.classes(D.pointerDirection,D.shadow)}))}renderMainContainer(){const{dockEnabled:e,currentAlignment:t,currentDockPosition:i,titleId:o,contentId:n,collapsible:s,hasContent:r,contentCollapsed:a,visibleElements:l}=this,{title:u}=this.viewModel,c="bottom-left"===t||"bottom-center"===t||"bottom-right"===t||"top-left"===i||"top-center"===i||"top-right"===i,d="top-left"===t||"top-center"===t||"top-right"===t||"bottom-left"===i||"bottom-center"===i||"bottom-right"===i,p={[D.shadow]:e,[D.isCollapsible]:s,[D.isCollapsed]:a};return A("div",{class:this.classes(D.main,D.widget,p),tabIndex:l.closeButton?null:-1,role:"dialog","aria-labelledby":u?o:"","aria-describedby":r&&!a?n:"",bind:this,onkeyup:this._handleMainKeyup,afterCreate:this._mainContainerNodeUpdated,afterUpdate:this._mainContainerNodeUpdated},c?this.renderFooter():null,c?this.renderFeatureMenuContainer():null,this.renderHeader(),this.renderContentContainer(),d?this.renderFooter():null,d?this.renderFeatureMenuContainer():null)}renderContent(){var e;const t=null==(e=this.viewModel)?void 0:e.content;return t?"string"==typeof t?A("div",{key:t,innerHTML:t}):this.renderNodeContent(t):null}renderActionText(e){return A("span",{key:"text",class:D.actionText},e)}renderActionIcon(e){const t=this._getActionClass(e),i=this._getActionImage(e),o={[D.iconLoading]:e.active,[D.rotating]:e.active,[D.icon]:!!t,[D.actionImage]:!e.active&&!!i};return t&&(o[t]=!e.active),A("span",{key:"icon","aria-hidden":"true",class:this.classes(D.icon,o),styles:this._getIconStyles(i)})}renderAction(e){const{action:t,type:i}=e,o=this._getActionTitle(t),n={[D.action]:"toggle"!==t.type,[D.actionToggle]:"toggle"===t.type,[D.actionToggleOn]:"toggle"===t.type&&t.value,[D.buttonDisabled]:t.disabled},s=[this.renderActionIcon(t),this.renderActionText(o)],r="menu-item"===i?A("li",{key:t.uid,role:"menuitem",tabIndex:0,title:o,"aria-label":o,class:this.classes(D.button,n),onkeyup:this._handleActionMenuItemKeyup,bind:this,"data-action-uid":t.uid,onclick:this._triggerAction,onkeydown:this._triggerAction},s):A("div",{key:t.uid,role:"button",tabIndex:0,title:o,"aria-label":o,class:this.classes(D.button,n),onkeyup:this._handleActionMenuItemKeyup,bind:this,"data-action-uid":t.uid,onclick:this._triggerAction,onkeydown:this._triggerAction},s);return t.visible?r:null}renderFeatureMenuItem(e,t){const{messages:i,messagesCommon:o}=this,{selectedFeatureIndex:n,selectedFeatureViewModel:s}=this.viewModel,r=e===s,a={[D.featureMenuSelected]:r},l=r?A("span",{key:L(`feature-menu-selected-feature-${n}`),title:i.selectedFeature,"aria-label":i.selectedFeature,class:D.iconCheckMark}):null,u=A("span",{innerHTML:e.title||o.untitled});return A("li",{role:"menuitem",tabIndex:-1,key:L(`feature-menu-feature-${n}`),class:this.classes(a,D.featureMenuItem),bind:this,"data-feature-index":t,onkeyup:this._handleFeatureMenuItemKeyup,onclick:this._selectFeature,onkeydown:this._selectFeature},A("span",{class:D.featureMenuTitle},u,l))}renderFeatureMenu(){const{featureMenuId:e}=this,{featureViewModels:t}=this.viewModel;return t.length>1?A("ol",{class:D.featureMenuList,id:e,bind:this,afterCreate:this._featureMenuNodeUpdated,afterUpdate:this._featureMenuNodeUpdated,onkeyup:this._handleFeatureMenuKeyup,role:"menu"},t.filter((e=>!!e.graphic)).map(((e,t)=>this.renderFeatureMenuItem(e,t)))):null}_getActionTitle(e){const{messages:t,selectedFeature:i,messagesCommon:o}=this,{id:n}=e,s=null==i?void 0:i.attributes,r="zoom-to-feature"===n?x(e.title,{messages:t}):"remove-selected-feature"===n?x(e.title,{messages:o}):"zoom-to-clustered-features"===n||"browse-clustered-features"===n?x(e.title,{messages:t}):e.title;return r&&s?x(r,s):r}_getActionClass(e){const{selectedFeature:t}=this,i=null==t?void 0:t.attributes,{className:o,image:n}=e,s=n||o?o:D.iconDefaultAction;return s&&i?x(s,i):s}_getActionImage(e){const{selectedFeature:t}=this,i=null==t?void 0:t.attributes,{image:o}=e;return o&&i?x(o,i):o}_createFeatureUpdatedAnimation(){return O("enter",D.hasFeatureUpdated)}_getInlineActionCount(){const{maxInlineActions:e,featureNavigationVisible:t}=this;if("number"!=typeof e)return null;const i=Math.round(e);return Math.max(t?i-1:i,0)}_watchActions(){const{allActions:e}=this.viewModel;this.notifyChange("dividedActions");const t="actions";this._handles.remove(t),e&&e.forEach((e=>{this._handles.add(l(e,["uid","active","className","disabled","id","title","image","visible"],(()=>this.scheduleRender())),t)}))}_divideActions(){const{allActions:e}=this.viewModel,i=e.filter((e=>e.visible)),o=this._getInlineActionCount(),n=null===o,s=0===o;return{inlineActions:n?i.slice(0):s?new t:i.slice(0,o),menuActions:n?new t:s?i.slice(0):i.slice(o)}}_featureMenuOpenChanged(e){e?this._focusFirstFeature=!0:this._focusFeatureMenuButton=!0}_actionsMenuOpenChanged(e){e?this._focusFirstAction=!0:this._focusActionsMenuButton=!0}_setTitleFromFeatureWidget(){const{selectedFeatureWidget:e,messagesCommon:t}=this;var i,o;e&&(this.viewModel.title="error"===(null==(i=e.viewModel)?void 0:i.state)?t.errorMessage:(null==(o=e.viewModel)?void 0:o.title)||"")}_setContentFromFeatureWidget(){const{selectedFeatureWidget:e}=this;e&&(this.viewModel.content=e)}_unobserveFeatureMenuObserver(){this._featureMenuIntersectionObserverNode&&this._featureMenuIntersectionObserver.unobserve(this._featureMenuIntersectionObserverNode)}_featureMenuIntersectionObserverCreated(e){this._unobserveFeatureMenuObserver(),this._featureMenuIntersectionObserver.observe(e),this._featureMenuIntersectionObserverNode=e}_handleFeatureMenuKeyup(e){"Escape"===i(e)&&(e.stopPropagation(),this._focusFeatureMenuButton=!0,this.featureMenuOpen=!1,this.scheduleRender())}_handleActionMenuKeyup(e){"Escape"===i(e)&&(e.stopPropagation(),this._focusActionsMenuButton=!0,this.actionsMenuOpen=!1,this.scheduleRender())}_handleFeatureMenuItemKeyup(e){const t=i(e),{_featureMenuNode:o}=this,n=e.currentTarget["data-feature-index"];if(!o)return;const s=o.querySelectorAll("li"),r=s.length;if("ArrowUp"!==t)if("ArrowDown"!==t)if("Home"!==t)if("End"!==t);else{e.stopPropagation();s[s.length-1].focus()}else{e.stopPropagation();s[0].focus()}else{e.stopPropagation();s[(n+1+r)%r].focus()}else{e.stopPropagation();s[(n-1+r)%r].focus()}}_handleActionMenuItemKeyup(e){const t=i(e),{_actionsMenuNode:o}=this,n=e.currentTarget.dataset.actionUid,{menuActions:s}=this.dividedActions,r=s.findIndex((e=>e.uid===n));if(!o)return;const a=o.querySelectorAll("li"),l=a.length;if("ArrowUp"!==t)if("ArrowDown"!==t)if("Home"!==t)if("End"!==t);else{e.stopPropagation();a[a.length-1].focus()}else{e.stopPropagation();a[0].focus()}else{e.stopPropagation();a[(r+1+l)%l].focus()}else{e.stopPropagation();a[(r-1+l)%l].focus()}}_handleMainKeyup(e){const t=i(e);"ArrowLeft"===t&&(e.stopPropagation(),this.previous()),"ArrowRight"===t&&(e.stopPropagation(),this.next())}_spinnerEnabledChange(e){if(this._destroySpinner(),!e)return;const t=this.get("viewModel.view");this._createSpinner(t)}_hideSpinner(){const{_spinner:e}=this;e&&(e.location=null,e.hide())}_displaySpinner(){const{_spinner:e}=this;if(!e)return;const{location:t,waitingForResult:i}=this.viewModel;i?e.show({location:t}):e.hide()}_getIconStyles(e){return{"background-image":e?`url(${e})`:""}}async _shouldFocus(e){e.shouldFocus&&(await r((()=>{var e;return!0===(null==(e=this.viewModel)?void 0:e.active)})),this.focus())}_addSelectedFeatureIndexHandle(){const e=l(this,"viewModel.selectedFeatureIndex",((e,t)=>this._selectedFeatureIndexUpdated(e,t)));this._handles.add(e,N)}_selectedFeatureIndexUpdated(e,t){const{featureCount:i}=this;i&&e!==t&&-1!==e&&(this.actionsMenuOpen=!1,this.featureMenuOpen=!1)}_destroySelectedFeatureWidget(){const{_feature:e}=this;e&&(e.viewModel=null,e&&!e.destroyed&&e.destroy()),this._feature=null}_isScreenLocationWithinView(e,t){return e.x>-1&&e.y>-1&&e.x<=t.width&&e.y<=t.height}_isOutsideView(e){const{popupHeight:t,popupWidth:i,screenLocation:o,side:n,view:s}=e;if(isNaN(i)||isNaN(t)||!s||!o)return!1;const r=s.padding;return"right"===n&&o.x+i/2>s.width-r.right||("left"===n&&o.x-i/2<r.left||("top"===n&&o.y-t<r.top||"bottom"===n&&o.y+t>s.height-r.bottom))}_calculateAutoAlignment(e){if("auto"!==e)return e;const{_pointerOffsetInPx:t,_containerNode:i,_mainContainerNode:o,viewModel:n}=this,{screenLocation:r,view:a}=n;if(s(r)||!a||!i)return"top-center";if(!this._isScreenLocationWithinView(r,a))return this._get("currentAlignment")||"top-center";function l(e){return parseInt(e.replace(/[^-\d\.]/g,""),10)}const u=o?window.getComputedStyle(o,null):null,c=u?l(u.getPropertyValue("max-height")):0,d=u?l(u.getPropertyValue("height")):0,{height:p,width:h}=i.getBoundingClientRect(),g=h+t,_=Math.max(p,c,d)+t,v=this._isOutsideView({popupHeight:_,popupWidth:g,screenLocation:r,side:"right",view:a}),f=this._isOutsideView({popupHeight:_,popupWidth:g,screenLocation:r,side:"left",view:a}),m=this._isOutsideView({popupHeight:_,popupWidth:g,screenLocation:r,side:"top",view:a}),b=this._isOutsideView({popupHeight:_,popupWidth:g,screenLocation:r,side:"bottom",view:a});return f?m?"bottom-right":"top-right":v?m?"bottom-left":"top-left":m?b?"top-center":"bottom-center":"top-center"}_callCurrentAlignment(e){return"function"==typeof e?e.call(this):e}_getCurrentAlignment(){const{alignment:e,dockEnabled:t}=this;return t||!this.viewModel.active?null:this._calculatePositionResult(this._calculateAutoAlignment(this._callCurrentAlignment(e)))}_setCurrentAlignment(){this._set("currentAlignment",this._getCurrentAlignment())}_setCurrentDockPosition(){this._set("currentDockPosition",this._getCurrentDockPosition())}_calculatePositionResult(e){const t=["left","right"];return F(this.container)&&t.reverse(),e.replace(/leading/gi,t[0]).replace(/trailing/gi,t[1])}_callDockPosition(e){return"function"==typeof e?e.call(this):e}_getDockPosition(){var e;return this._calculatePositionResult(this._calculateAutoDockPosition(this._callDockPosition(null==(e=this.dockOptions)?void 0:e.position)))}_getCurrentDockPosition(){return this.dockEnabled&&this.viewModel.active?this._getDockPosition():null}_wouldDockTo(){return this.dockEnabled?null:this._getDockPosition()}_calculateAutoDockPosition(e){var t;if("auto"!==e)return e;const i=null==(t=this.viewModel)?void 0:t.view,o=F(this.container)?"top-left":"top-right";if(!i)return o;const n=i.padding||{left:0,right:0,top:0,bottom:0},s=i.width-n.left-n.right,{breakpoints:r}=i;return r&&s<=r.xsmall?"bottom-center":o}_positionContainer(e=this._containerNode){if(e&&(this._containerNode=e),!e)return;const{screenLocation:t}=this.viewModel,{width:i}=e.getBoundingClientRect(),o=this._calculatePositionStyle(t,i);o&&(e.style.top=o.top,e.style.left=o.left,e.style.bottom=o.bottom,e.style.right=o.right)}_calculateFullWidth(e){const{currentAlignment:t,_pointerOffsetInPx:i}=this;return"top-left"===t||"bottom-left"===t||"top-right"===t||"bottom-right"===t?e+i:e}_calculateAlignmentPosition(e,t,i,o){const{currentAlignment:n,_pointerOffsetInPx:s}=this,r=o/2,a=i.height-t,l=i.width-e,{padding:u}=this.view;return"bottom-center"===n?{top:t+s-u.top,left:e-r-u.left}:"top-left"===n?{bottom:a+s-u.bottom,right:l+s-u.right}:"bottom-left"===n?{top:t+s-u.top,right:l+s-u.right}:"top-right"===n?{bottom:a+s-u.bottom,left:e+s-u.left}:"bottom-right"===n?{top:t+s-u.top,left:e+s-u.left}:"top-center"===n?{bottom:a+s-u.bottom,left:e-r-u.left}:void 0}_calculatePositionStyle(e,t){const{dockEnabled:i,view:o}=this;if(!o)return;if(i)return{left:"",top:"",right:"",bottom:""};if(s(e)||!t)return;const n=this._calculateFullWidth(t),r=this._calculateAlignmentPosition(e.x,e.y,o,n);return r?{top:void 0!==r.top?`${r.top}px`:"auto",left:void 0!==r.left?`${r.left}px`:"auto",bottom:void 0!==r.bottom?`${r.bottom}px`:"auto",right:void 0!==r.right?`${r.right}px`:"auto"}:void 0}_viewChange(e,t){e&&t&&(this.close(),this.clear())}_viewReadyChange(e,t){if(e){const e=this.get("viewModel.view");this._wireUpView(e)}else t&&(this.close(),this.clear())}_wireUpView(e){if(this._destroySpinner(),!e)return;const{spinnerEnabled:t}=this;t&&this._createSpinner(e),this._setDockEnabledForViewSize(this.dockOptions)}_dockingThresholdCrossed(e,t,i){const[o,n]=e,[s,r]=t,{width:a,height:l}=i;return o<=a&&s>a||o>a&&s<=a||n<=l&&r>l||n>l&&r<=l}_updateDockEnabledForViewSize(e,t){if(!e||!t)return;const i=this.get("viewModel.view.padding")||{left:0,right:0,top:0,bottom:0},o=i.left+i.right,n=i.top+i.bottom,s=[],r=[];s[0]=e[0]-o,s[1]=e[1]-n,r[0]=t[0]-o,r[1]=t[1]-n;const{dockOptions:a}=this,l=a.breakpoint;this._dockingThresholdCrossed(s,r,l)&&this._setDockEnabledForViewSize(a),this._setCurrentDockPosition()}_focusDockButtonNode(e){this._focusDockButton&&(this._focusDockButton=!1,e.focus())}_closeButtonNodeUpdated(e){return this._focusClose?(this._focusClose=!1,void e.focus()):this._blurClose?(this._blurClose=!1,void e.blur()):void 0}_mainContainerNodeUpdated(e){return this._mainContainerNode=e,this._focusContainer?(this._focusContainer=!1,void e.focus()):this._blurContainer?(this._blurContainer=!1,void e.blur()):void 0}_featureMenuNodeUpdated(e){if(this._featureMenuNode=e,!e||!this._focusFirstFeature)return;this._focusFirstFeature=!1;const t=e.querySelectorAll("li");if(t.length){t[0].focus()}}_actionsMenuNodeUpdated(e){if(this._actionsMenuNode=e,!e||!this._focusFirstAction)return;this._focusFirstAction=!1;const t=e.querySelectorAll("li");if(t.length){t[0].focus()}}_focusFeatureMenuButtonNode(e){this._focusFeatureMenuButton&&(this._focusFeatureMenuButton=!1,e.focus())}_focusActionsMenuButtonNode(e){this._focusActionsMenuButton&&(this._focusActionsMenuButton=!1,e.focus())}_featureMenuViewportScrollTop(){this._featureMenuViewportNode&&(this._featureMenuViewportNode.scrollTop=0)}_toggleScreenLocationEnabled(){const{dockEnabled:e,viewModel:t}=this;if(!t)return;const i=t.active&&!e;t.screenLocationEnabled=i}_shouldDockAtCurrentViewSize(e){var t,i;const o=e.breakpoint,n=null==(t=this.viewModel)||null==(i=t.view)?void 0:i.ui;if(!n)return!1;const{width:s,height:r}=n;if(isNaN(s)||isNaN(r))return!1;const a=o.hasOwnProperty("width")&&s<=o.width,l=o.hasOwnProperty("height")&&r<=o.height;return a||l}_setDockEnabledForViewSize(e){e.breakpoint&&(this.dockEnabled=this._shouldDockAtCurrentViewSize(e))}_getPageText(e,t){return this.featureNavigationVisible?x(this.messages.pageText,{index:t+1,total:e}):null}_destroySpinner(){const{_spinner:e,view:t}=this;e&&(t&&t.ui&&t.ui.remove(this._spinner,T),e.destroy(),this._spinner=null)}_createSpinner(e){e&&(this._spinner=new f({view:e}),e.ui.add(this._spinner,{key:T,position:"manual"}))}_toggleCollapsed(){this.collapsed=!this.collapsed}_close(){this.close(),this.view&&this.view.focus()}_toggleDockEnabled(){this.dockEnabled=!this.dockEnabled,this._focusDockButton=!0,this.scheduleRender()}_toggleFeatureMenu(){const e=!this.featureMenuOpen;this._featureMenuOpenChanged(e),this.actionsMenuOpen=!1,this.featureMenuOpen=e}_toggleActionsMenu(){const e=!this.actionsMenuOpen;this._actionsMenuOpenChanged(e),this.featureMenuOpen=!1,this.actionsMenuOpen=e}_triggerAction(e){const t=e.currentTarget.dataset.actionUid,{allActions:i}=this.viewModel,o=i.findIndex((e=>e.uid===t)),n=i.getItemAt(o);n&&"toggle"===n.type&&(n.value=!n.value),this.actionsMenuOpen=!1,this.viewModel.triggerAction(o)}_selectFeature(e){const t=e.currentTarget["data-feature-index"];isNaN(t)||(this.viewModel.selectedFeatureIndex=t),this.featureMenuOpen=!1,this._focusFeatureMenuButton=!0,this.scheduleRender()}_next(){this.next()}_previous(){this.previous()}};e([g({readOnly:!0})],R.prototype,"actionsMenuId",null),e([g({readOnly:!0})],R.prototype,"actionsMenuButtonId",null),e([g({readOnly:!0})],R.prototype,"featureMenuId",null),e([g({readOnly:!0})],R.prototype,"titleId",null),e([g({readOnly:!0})],R.prototype,"contentId",null),e([g({readOnly:!0})],R.prototype,"hasContent",null),e([g({readOnly:!0})],R.prototype,"featureNavigationVisible",null),e([g({readOnly:!0})],R.prototype,"collapsible",null),e([g({readOnly:!0})],R.prototype,"featureMenuVisible",null),e([g({readOnly:!0})],R.prototype,"contentCollapsed",null),e([g({readOnly:!0})],R.prototype,"dividedActions",null),e([p("viewModel.actions")],R.prototype,"actions",void 0),e([g()],R.prototype,"actionsMenuOpen",null),e([g()],R.prototype,"alignment",void 0),e([p("viewModel.autoCloseEnabled")],R.prototype,"autoCloseEnabled",void 0),e([p("viewModel.autoOpenEnabled")],R.prototype,"autoOpenEnabled",void 0),e([p("viewModel.defaultPopupTemplateEnabled")],R.prototype,"defaultPopupTemplateEnabled",void 0),e([p("viewModel.content")],R.prototype,"content",void 0),e([g()],R.prototype,"collapsed",void 0),e([g()],R.prototype,"collapseEnabled",void 0),e([g({readOnly:!0})],R.prototype,"currentAlignment",null),e([g({readOnly:!0})],R.prototype,"currentDockPosition",null),e([g()],R.prototype,"dockOptions",null),e([g()],R.prototype,"dockEnabled",void 0),e([p("viewModel.featureCount")],R.prototype,"featureCount",void 0),e([g()],R.prototype,"featureMenuOpen",void 0),e([p("viewModel.features")],R.prototype,"features",void 0),e([p("viewModel.goToOverride")],R.prototype,"goToOverride",void 0),e([g()],R.prototype,"headingLevel",void 0),e([p("viewModel.highlightEnabled")],R.prototype,"highlightEnabled",void 0),e([p("viewModel.location")],R.prototype,"location",void 0),e([g({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],R.prototype,"label",void 0),e([g()],R.prototype,"maxInlineActions",void 0),e([g(),k("geoscene/widgets/Popup/t9n/Popup")],R.prototype,"messages",void 0),e([g(),k("geoscene/t9n/common")],R.prototype,"messagesCommon",void 0),e([p("viewModel.promises")],R.prototype,"promises",void 0),e([p("viewModel.selectedFeature")],R.prototype,"selectedFeature",void 0),e([p("viewModel.selectedFeatureIndex")],R.prototype,"selectedFeatureIndex",void 0),e([g({readOnly:!0})],R.prototype,"selectedFeatureWidget",null),e([g()],R.prototype,"spinnerEnabled",void 0),e([p("viewModel.title")],R.prototype,"title",void 0),e([p("viewModel.updateLocationEnabled")],R.prototype,"updateLocationEnabled",void 0),e([p("viewModel.view")],R.prototype,"view",void 0),e([g({type:M}),C(["triggerAction","trigger-action"])],R.prototype,"viewModel",void 0),e([p("viewModel.visible")],R.prototype,"visible",void 0),e([g()],R.prototype,"visibleElements",void 0),e([h("visibleElements")],R.prototype,"castVisibleElements",null),e([y()],R.prototype,"_close",null),e([y()],R.prototype,"_toggleDockEnabled",null),e([y()],R.prototype,"_toggleFeatureMenu",null),e([y()],R.prototype,"_toggleActionsMenu",null),e([y()],R.prototype,"_triggerAction",null),e([y()],R.prototype,"_selectFeature",null),e([y()],R.prototype,"_next",null),e([y()],R.prototype,"_previous",null),R=e([_(S)],R);const j=R;export{j as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import o from"../core/Handles.js";import n from"../core/Logger.js";import{isNone as s}from"../core/maybe.js";import{whenOnce as r}from"../core/reactiveUtils.js";import{throttle as a}from"../core/throttle.js";import{watch as l,whenFalse as u,on as c,init as d}from"../core/watchUtils.js";import{aliasOf as p}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as h}from"../core/accessorSupport/decorators/cast.js";import{property as g}from"../core/accessorSupport/decorators/property.js";import{subclass as _}from"../core/accessorSupport/decorators/subclass.js";import v from"./Feature.js";import f from"./Spinner.js";import m from"./Widget.js";import{FeatureContentMixin as b}from"./Feature/support/FeatureContentMixin.js";import M from"./Popup/PopupViewModel.js";import{Heading as w}from"./support/Heading.js";import{accessibleHandler as y}from"./support/decorators/accessibleHandler.js";import{messageBundle as k}from"./support/decorators/messageBundle.js";import{vmEvent as C}from"./support/decorators/vmEvent.js";import{tsx as A}from"./support/jsxFactory.js";import{isRTL as F,storeNode as I,cssTransition as O}from"./support/widgetUtils.js";import{substitute as x}from"../intl/substitute.js";const N="selected-index",B=0,T="popup-spinner",D={iconLeftTriangleArrow:"geoscene-icon-left-triangle-arrow",iconRightTriangleArrow:"geoscene-icon-right-triangle-arrow",iconDockToTop:"geoscene-icon-maximize",iconDockToBottom:"geoscene-icon-dock-bottom",iconDockToLeft:"geoscene-icon-dock-left",iconDockToRight:"geoscene-icon-dock-right",iconClose:"geoscene-icon-close",iconUndock:"geoscene-icon-minimize",iconCheckMark:"geoscene-icon-check-mark",iconLoading:"geoscene-icon-loading-indicator",iconDefaultAction:"geoscene-icon-default-action",iconActionsMenu:"geoscene-icon-handle-horizontal",rotating:"geoscene-rotating",base:"geoscene-popup",widget:"geoscene-widget",main:"geoscene-popup__main-container",loadingContainer:"geoscene-popup__loading-container",isCollapsible:"geoscene-popup--is-collapsible",isCollapsed:"geoscene-popup--is-collapsed",shadow:"geoscene-popup--shadow",isDocked:"geoscene-popup--is-docked",isDockedTopLeft:"geoscene-popup--is-docked-top-left",isDockedTopCenter:"geoscene-popup--is-docked-top-center",isDockedTopRight:"geoscene-popup--is-docked-top-right",isDockedBottomLeft:"geoscene-popup--is-docked-bottom-left",isDockedBottomCenter:"geoscene-popup--is-docked-bottom-center",isDockedBottomRight:"geoscene-popup--is-docked-bottom-right",alignTopCenter:"geoscene-popup--aligned-top-center",alignBottomCenter:"geoscene-popup--aligned-bottom-center",alignTopLeft:"geoscene-popup--aligned-top-left",alignBottomLeft:"geoscene-popup--aligned-bottom-left",alignTopRight:"geoscene-popup--aligned-top-right",alignBottomRight:"geoscene-popup--aligned-bottom-right",isFeatureMenuOpen:"geoscene-popup--feature-menu-open",isActionsMenuOpen:"geoscene-popup--actions-menu-open",hasFeatureUpdated:"geoscene-popup--feature-updated",header:"geoscene-popup__header",headerButtons:"geoscene-popup__header-buttons",headerContainer:"geoscene-popup__header-container",headerContainerButton:"geoscene-popup__header-container--button",headerTitle:"geoscene-popup__header-title",content:"geoscene-popup__content",footer:"geoscene-popup__footer",footerHasPagination:"geoscene-popup__footer--has-pagination",footerHasActions:"geoscene-popup__footer--has-actions",footerHasActionsMenu:"geoscene-popup__footer--has-actions-menu",button:"geoscene-popup__button",buttonDisabled:"geoscene-popup__button--disabled",buttonDock:"geoscene-popup__button--dock",icon:"geoscene-popup__icon",iconDock:"geoscene-popup__icon--dock-icon",inlineActionsContainer:"geoscene-popup__inline-actions-container",actionsMenuButton:"geoscene-popup__actions-menu-button",actions:"geoscene-popup__actions",action:"geoscene-popup__action",actionImage:"geoscene-popup__action-image",actionText:"geoscene-popup__action-text",actionToggle:"geoscene-popup__action-toggle",actionToggleOn:"geoscene-popup__action-toggle--on",pointer:"geoscene-popup__pointer",pointerDirection:"geoscene-popup__pointer-direction",navigation:"geoscene-popup__navigation",paginationPrevious:"geoscene-popup__pagination-previous",paginationNext:"geoscene-popup__pagination-next",paginationPreviousIconLTR:"geoscene-popup__pagination-previous-icon",paginationPreviousIconRTL:"geoscene-popup__pagination-previous-icon--rtl",paginationNextIconLTR:"geoscene-popup__pagination-next-icon",paginationNextIconRTL:"geoscene-popup__pagination-next-icon--rtl",featureMenu:"geoscene-popup__feature-menu",featureMenuList:"geoscene-popup__feature-menu-list",featureMenuItem:"geoscene-popup__feature-menu-item",featureMenuViewport:"geoscene-popup__feature-menu-viewport",featureMenuHeader:"geoscene-popup__feature-menu-header",featureMenuNote:"geoscene-popup__feature-menu-note",featureMenuSelected:"geoscene-popup__feature-menu-item--selected",featureMenuButton:"geoscene-popup__feature-menu-button",featureMenuTitle:"geoscene-popup__feature-menu-title",featureMenuObserver:"geoscene-popup__feature-menu-observer",featureMenuLoader:"geoscene-popup__feature-menu-loader",collapseButton:"geoscene-popup__collapse-button"},E={buttonEnabled:!0,position:"auto",breakpoint:{width:544}},P="geoscene-popup";function L(e,t){return void 0===t?`${P}__${e}`:`${P}__${e}-${t}`}const S="geoscene.widgets.Popup",V=n.getLogger(S),U={closeButton:!0,featureNavigation:!0};let R=class extends(b(m)){constructor(e,t){super(e,t),this._blurClose=!1,this._blurContainer=!1,this._containerNode=null,this._mainContainerNode=null,this._featureMenuNode=null,this._actionsMenuNode=null,this._focusClose=!1,this._focusContainer=!1,this._focusDockButton=!1,this._focusFeatureMenuButton=!1,this._focusActionsMenuButton=!1,this._focusFirstFeature=!1,this._focusFirstAction=!1,this._handles=new o,this._pointerOffsetInPx=16,this._spinner=null,this._feature=null,this._featureMenuIntersectionObserverCallback=([e])=>{null!=e&&e.isIntersecting&&this.viewModel.featurePage++},this._featureMenuIntersectionObserver=new IntersectionObserver(this._featureMenuIntersectionObserverCallback,{root:window.document}),this._displaySpinnerThrottled=a((()=>this._displaySpinner()),B),this.actions=null,this.alignment="auto",this.autoCloseEnabled=null,this.autoOpenEnabled=null,this.defaultPopupTemplateEnabled=null,this.content=null,this.collapsed=!1,this.collapseEnabled=!0,this.dockEnabled=!1,this.featureCount=null,this.featureMenuOpen=!1,this.features=null,this.goToOverride=null,this.headingLevel=2,this.highlightEnabled=null,this.location=null,this.label=void 0,this.maxInlineActions=3,this.messages=null,this.messagesCommon=null,this.promises=null,this.selectedFeature=null,this.selectedFeatureIndex=null,this.spinnerEnabled=!0,this.title=null,this.updateLocationEnabled=null,this.view=null,this.viewModel=new M,this.visible=null,this.visibleElements={...U},this._addSelectedFeatureIndexHandle(),this.own([l(this,"viewModel.screenLocation",(()=>this._positionContainer())),l(this,["viewModel.active","dockEnabled"],(()=>this._toggleScreenLocationEnabled())),l(this,"viewModel.screenLocation",((e,t)=>{!!e!=!!t&&this.reposition()})),l(this,["viewModel.view.padding","viewModel.view.size","viewModel.active","viewModel.location","alignment"],(()=>this.reposition())),l(this,"spinnerEnabled",(e=>this._spinnerEnabledChange(e))),l(this,"viewModel.view.size",((e,t)=>this._updateDockEnabledForViewSize(e,t))),l(this,"viewModel.view",((e,t)=>this._viewChange(e,t))),l(this,"viewModel.view.ready",((e,t)=>this._viewReadyChange(e,t))),l(this,["viewModel.waitingForResult","viewModel.location"],(()=>{this._hideSpinner(),this._displaySpinnerThrottled()})),l(this,["selectedFeatureWidget.viewModel.title","selectedFeatureWidget.viewModel.state"],(()=>this._setTitleFromFeatureWidget())),l(this,["selectedFeatureWidget.viewModel.content","selectedFeatureWidget.viewModel.state"],(()=>this._setContentFromFeatureWidget())),u(this,"collapsed",(()=>{var e,t;"xsmall"===(null==(e=this.viewModel)||null==(t=e.view)?void 0:t.widthBreakpoint)&&this.viewModel.active&&this.collapseEnabled&&this.viewModel.centerAtLocation()})),c(this,"viewModel.allActions","change",(()=>this._watchActions())),d(this,"viewModel.allActions",(()=>this._watchActions())),l(this,"viewModel.featureViewModels",(()=>this._featureMenuViewportScrollTop()))])}destroy(){var e,t;this._destroySelectedFeatureWidget(),this._destroySpinner(),null==(e=this._handles)||e.destroy(),this._unobserveFeatureMenuObserver(),null==(t=this._featureMenuIntersectionObserver)||t.disconnect(),this._handles=null}get actionsMenuId(){return`${this.id}-actions-menu`}get actionsMenuButtonId(){return`${this.id}-actions-menu-button`}get featureMenuId(){return`${this.id}-feature-menu`}get titleId(){return`${this.id}-popup-title`}get contentId(){return`${this.id}-popup-content`}get hasContent(){var e,t,i,o,n,s,r;return!!(this.selectedFeatureWidget?(null==(e=this.selectedFeatureWidget)||null==(t=e.viewModel)?void 0:t.waitingForContent)||"error"===(null==(i=this.selectedFeatureWidget)||null==(o=i.viewModel)?void 0:o.state)||(null==(n=this.selectedFeatureWidget)||null==(s=n.viewModel)?void 0:s.content):null==(r=this.viewModel)?void 0:r.content)}get featureNavigationVisible(){return this.viewModel.active&&this.viewModel.featureCount>1&&this.visibleElements.featureNavigation}get collapsible(){return!!(this.collapseEnabled&&this.viewModel.title&&this.hasContent)}get featureMenuVisible(){return this.featureNavigationVisible&&this.featureMenuOpen}get contentCollapsed(){return this.collapsible&&!this.featureMenuVisible&&this.collapsed}get dividedActions(){return this._divideActions()}set actionsMenuOpen(e){this._set("actionsMenuOpen",!!e)}get actionsMenuOpen(){return!!this.viewModel.active&&this._get("actionsMenuOpen")}get currentAlignment(){return this._getCurrentAlignment()}get currentDockPosition(){return this._getCurrentDockPosition()}get dockOptions(){return this._get("dockOptions")||E}set dockOptions(e){const t={...E},i=this.get("viewModel.view.breakpoints"),o={};i&&(o.width=i.xsmall,o.height=i.xsmall);const n={...t,...e},s={...t.breakpoint,...o},{breakpoint:r}=n;!0===r?n.breakpoint=s:"object"==typeof r&&(n.breakpoint={...s,...r}),this._set("dockOptions",n),this._setCurrentDockPosition(),this.reposition()}get selectedFeatureWidget(){const{_feature:e,visibleElements:t,headingLevel:i}=this,{selectedFeatureViewModel:o}=this.viewModel,n={...t,title:!1};return o?(e?(e.viewModel=o,e.visibleElements=n):this._feature=new v({headingLevel:i+1,viewModel:o,visibleElements:n}),this._feature):null}castVisibleElements(e){return{...U,...e}}blur(){const{active:e}=this.viewModel;e||V.warn("Popup can only be blurred when currently active."),this.visibleElements.closeButton?this._blurClose=!0:this._blurContainer=!0,this.scheduleRender()}clear(){this.viewModel.clear()}close(){this.visible=!1}fetchFeatures(e,t){return this.viewModel.fetchFeatures(e,t)}focus(){const{active:e}=this.viewModel;e||V.warn("Popup can only be focused when currently active."),this.visibleElements.closeButton?this._focusClose=!0:this._focusContainer=!0,this.scheduleRender()}next(){return this.viewModel.next()}open(e){var t,i;this._handles.remove(N);const o=!!e&&!!e.featureMenuOpen,n=!!e&&!!e.actionsMenuOpen,s={collapsed:!!e&&!!e.collapsed,actionsMenuOpen:n,featureMenuOpen:o};"xsmall"===(null==(t=this.viewModel)||null==(i=t.view)?void 0:i.widthBreakpoint)&&(s.collapsed=!0),this.set(s),this.viewModel.open(e),this._shouldFocus(e),this._addSelectedFeatureIndexHandle()}previous(){return this.viewModel.previous()}reposition(){this.renderNow(),this._positionContainer(),this._setCurrentAlignment()}triggerAction(e){this.viewModel.triggerAction(e)}render(){var e,t,i,o;const{actionsMenuOpen:n,dockEnabled:s,featureMenuVisible:r,dividedActions:a,currentAlignment:l,currentDockPosition:u}=this,{active:c}=this.viewModel,{menuActions:d}=a,p=c&&d.length>1&&n,h=c&&s,g=c&&!s,_=null==(e=this.selectedFeature)||null==(t=e.layer)?void 0:t.title,v=null==(i=this.selectedFeature)||null==(o=i.layer)?void 0:o.id,f={[D.alignTopCenter]:"top-center"===l,[D.alignBottomCenter]:"bottom-center"===l,[D.alignTopLeft]:"top-left"===l,[D.alignBottomLeft]:"bottom-left"===l,[D.alignTopRight]:"top-right"===l,[D.alignBottomRight]:"bottom-right"===l,[D.isDocked]:h,[D.shadow]:g,[D.isDockedTopLeft]:"top-left"===u,[D.isDockedTopCenter]:"top-center"===u,[D.isDockedTopRight]:"top-right"===u,[D.isDockedBottomLeft]:"bottom-left"===u,[D.isDockedBottomCenter]:"bottom-center"===u,[D.isDockedBottomRight]:"bottom-right"===u,[D.isFeatureMenuOpen]:r,[D.isActionsMenuOpen]:p};return A("div",{class:this.classes(D.base,f),role:"presentation","data-layer-title":_,"data-layer-id":v,bind:this,afterCreate:this._positionContainer,afterUpdate:this._positionContainer},c?[this.renderMainContainer(),this.renderPointer()]:null)}renderLoadingIcon(){return A("span",{"aria-hidden":"true",class:this.classes(D.icon,D.iconLoading,D.rotating)})}renderNavigationLoading(){const{messagesCommon:e}=this;return this.viewModel.pendingPromisesCount?A("div",{key:L("loading-container"),role:"presentation",class:D.loadingContainer,"aria-label":e.loading,title:e.loading},this.renderLoadingIcon()):null}renderPreviousIcon(){const e=F(this.container),t={[D.iconRightTriangleArrow]:e,[D.paginationPreviousIconRTL]:e,[D.iconLeftTriangleArrow]:!e,[D.paginationPreviousIconLTR]:!e};return A("span",{"aria-hidden":"true",class:this.classes(D.icon,t)})}renderPreviousButton(){const{messages:e}=this;return A("div",{role:"button",tabIndex:0,bind:this,onclick:this._previous,onkeydown:this._previous,class:this.classes(D.button,D.paginationPrevious),"aria-label":e.previous,title:e.previous},this.renderPreviousIcon())}renderNextIcon(){const e=F(this.container),t={[D.iconLeftTriangleArrow]:e,[D.paginationNextIconRTL]:e,[D.iconRightTriangleArrow]:!e,[D.paginationNextIconLTR]:!e};return A("span",{"aria-hidden":"true",class:this.classes(D.icon,t)})}renderNextButton(){const{messages:e}=this;return A("div",{role:"button",tabIndex:0,bind:this,onclick:this._next,onkeydown:this._next,class:this.classes(D.button,D.paginationNext),"aria-label":e.next,title:e.next},this.renderNextIcon())}renderFeatureMenuButton(){const{featureMenuOpen:e,featureMenuId:t,messagesCommon:i}=this,{featureCount:o,selectedFeatureIndex:n}=this.viewModel;return A("div",{role:"button",tabIndex:0,bind:this,onclick:this._toggleFeatureMenu,onkeydown:this._toggleFeatureMenu,afterCreate:this._focusFeatureMenuButtonNode,afterUpdate:this._focusFeatureMenuButtonNode,class:this.classes(D.button,D.featureMenuButton),"aria-haspopup":"true","aria-controls":t,"aria-expanded":e.toString(),"aria-label":i.menu,title:i.menu},this._getPageText(o,n))}renderNavigationButtons(){return this.featureNavigationVisible?[this.renderPreviousButton(),this.renderNavigationLoading()||this.renderFeatureMenuButton(),this.renderNextButton()]:null}renderDockIcon(){const{dockEnabled:e}=this,t=this._wouldDockTo(),i={[D.iconUndock]:e,[D.iconDock]:!e,[D.iconDockToRight]:!e&&("top-right"===t||"bottom-right"===t),[D.iconDockToLeft]:!e&&("top-left"===t||"bottom-left"===t),[D.iconDockToTop]:!e&&"top-center"===t,[D.iconDockToBottom]:!e&&"bottom-center"===t};return A("span",{"aria-hidden":"true",class:this.classes(i,D.icon)})}renderDockButton(){var e,t,i;const{dockEnabled:o,messages:n}=this,s=null==(e=this.viewModel)||null==(t=e.view)?void 0:t.widthBreakpoint,r=o?n.undock:n.dock;return"xsmall"!==s&&null!=(i=this.dockOptions)&&i.buttonEnabled?A("div",{role:"button","aria-label":r,title:r,tabIndex:0,bind:this,onclick:this._toggleDockEnabled,onkeydown:this._toggleDockEnabled,afterCreate:this._focusDockButtonNode,afterUpdate:this._focusDockButtonNode,class:this.classes(D.button,D.buttonDock)},this.renderDockIcon()):null}renderTitle(){const{title:e}=this.viewModel,{titleId:t,collapsible:i,contentCollapsed:o,messagesCommon:n}=this,s={[D.headerContainerButton]:i},r=A(w,{level:this.headingLevel,class:D.headerTitle,innerHTML:e}),a=i?A("button",{key:`${e}--collapsible`,id:t,title:o?n.expand:n.collapse,bind:this,enterAnimation:this._createFeatureUpdatedAnimation(),class:this.classes(D.headerContainer,s),"aria-expanded":o?"false":"true",onclick:this._toggleCollapsed,type:"button"},r):A("div",{key:e,id:t,bind:this,enterAnimation:this._createFeatureUpdatedAnimation(),class:this.classes(D.headerContainer,s)},r);return e?a:null}renderCloseIcon(){return A("span",{"aria-hidden":"true",class:this.classes(D.icon,D.iconClose)})}renderCloseButton(){const{visibleElements:e,messagesCommon:t}=this;return e.closeButton?A("div",{role:"button",tabIndex:0,bind:this,onclick:this._close,onkeydown:this._close,class:D.button,"aria-label":t.close,title:t.close,afterCreate:this._closeButtonNodeUpdated,afterUpdate:this._closeButtonNodeUpdated},this.renderCloseIcon()):null}renderHeader(){return A("header",{class:D.header},this.renderTitle(),A("div",{class:D.headerButtons},this.renderDockButton(),this.renderCloseButton()))}renderContentContainer(){const{contentId:e,hasContent:t,contentCollapsed:i}=this,{content:o}=this.viewModel;return t&&!i?A("article",{key:o,enterAnimation:this._createFeatureUpdatedAnimation(),id:e,class:D.content},this.renderContent()):null}renderActionsMenuButton(){const{actionsMenuId:e,actionsMenuButtonId:t,actionsMenuOpen:i,dividedActions:o,messagesCommon:n}=this,s=i?n.close:n.open,{menuActions:r}=o;return r.length?A("div",{key:L("actions-menu-button"),class:this.classes(D.button,D.actionsMenuButton),role:"button",id:t,"aria-haspopup":"true","aria-controls":i?e:null,tabIndex:0,bind:this,onclick:this._toggleActionsMenu,onkeydown:this._toggleActionsMenu,afterCreate:this._focusActionsMenuButtonNode,afterUpdate:this._focusActionsMenuButtonNode,"aria-label":s,title:s},A("span",{"aria-hidden":"true",class:D.iconActionsMenu})):null}renderMenuActions(){const{actionsMenuId:e,actionsMenuButtonId:t,actionsMenuOpen:i,dividedActions:o}=this,{menuActions:n}=o;return n.length&&i?A("ul",{id:e,role:"menu","aria-labelledby":t,key:L("actions"),class:D.actions,bind:this,onkeyup:this._handleActionMenuKeyup,afterCreate:this._actionsMenuNodeUpdated,afterUpdate:this._actionsMenuNodeUpdated},n.toArray().map((e=>this.renderAction({action:e,type:"menu-item"})))):null}renderInlineActions(){const{inlineActions:e}=this.dividedActions;return!!e.length&&e.toArray().map((e=>this.renderAction({action:e,type:"inline"})))}renderInlineActionsContainer(){const{inlineActions:e,menuActions:t}=this.dividedActions,i=!!e.length,o=!!t.length;return i||o?A("div",{key:"inline-actions-container","data-inline-actions":i.toString(),"data-menu-actions":o.toString(),class:D.inlineActionsContainer},this.renderInlineActions(),this.renderActionsMenuButton(),this.renderMenuActions()):null}renderNavigation(){return this.featureNavigationVisible?A("section",{key:L("navigation"),class:this.classes(D.navigation)},this.renderNavigationButtons()):null}renderFooter(){const{featureNavigationVisible:e,dividedActions:t}=this,{inlineActions:i,menuActions:o}=t,n=!!i.length,s=!!o.length,r={[D.footerHasPagination]:e,[D.footerHasActions]:n,[D.footerHasActionsMenu]:s};return e||n?A("div",{key:L("feature-buttons"),class:this.classes(D.footer,r)},this.renderInlineActionsContainer(),this.renderNavigation()):null}renderFeatureMenuContainer(){const{messages:e}=this,{featureViewModels:t,isLoadingFeature:i}=this.viewModel,o=x(e.selectedFeatures,{total:t.length});return A("section",{key:L("menu"),class:D.featureMenu},A("strong",{class:D.featureMenuHeader},o),A("nav",{bind:this,class:D.featureMenuViewport,"data-node-ref":"_featureMenuViewportNode",afterCreate:I},this.renderFeatureMenu(),A("div",{class:D.featureMenuObserver,bind:this,afterCreate:this._featureMenuIntersectionObserverCreated}),i?A("div",{class:D.featureMenuLoader},this.renderLoadingIcon()):null))}renderPointer(){return this.dockEnabled?null:A("div",{key:L("pointer"),class:D.pointer,role:"presentation"},A("div",{class:this.classes(D.pointerDirection,D.shadow)}))}renderMainContainer(){const{dockEnabled:e,currentAlignment:t,currentDockPosition:i,titleId:o,contentId:n,collapsible:s,hasContent:r,contentCollapsed:a,visibleElements:l}=this,{title:u}=this.viewModel,c="bottom-left"===t||"bottom-center"===t||"bottom-right"===t||"top-left"===i||"top-center"===i||"top-right"===i,d="top-left"===t||"top-center"===t||"top-right"===t||"bottom-left"===i||"bottom-center"===i||"bottom-right"===i,p={[D.shadow]:e,[D.isCollapsible]:s,[D.isCollapsed]:a};return A("div",{class:this.classes(D.main,D.widget,p),tabIndex:l.closeButton?null:-1,role:"dialog","aria-labelledby":u?o:"","aria-describedby":r&&!a?n:"",bind:this,onkeyup:this._handleMainKeyup,afterCreate:this._mainContainerNodeUpdated,afterUpdate:this._mainContainerNodeUpdated},c?this.renderFooter():null,c?this.renderFeatureMenuContainer():null,this.renderHeader(),this.renderContentContainer(),d?this.renderFooter():null,d?this.renderFeatureMenuContainer():null)}renderContent(){var e;const t=null==(e=this.viewModel)?void 0:e.content;return t?"string"==typeof t?A("div",{key:t,innerHTML:t}):this.renderNodeContent(t):null}renderActionText(e){return A("span",{key:"text",class:D.actionText},e)}renderActionIcon(e){const t=this._getActionClass(e),i=this._getActionImage(e),o={[D.iconLoading]:e.active,[D.rotating]:e.active,[D.icon]:!!t,[D.actionImage]:!e.active&&!!i};return t&&(o[t]=!e.active),A("span",{key:"icon","aria-hidden":"true",class:this.classes(D.icon,o),styles:this._getIconStyles(i)})}renderAction(e){const{action:t,type:i}=e,o=this._getActionTitle(t),n={[D.action]:"toggle"!==t.type,[D.actionToggle]:"toggle"===t.type,[D.actionToggleOn]:"toggle"===t.type&&t.value,[D.buttonDisabled]:t.disabled},s=[this.renderActionIcon(t),this.renderActionText(o)],r="menu-item"===i?A("li",{key:t.uid,role:"menuitem",tabIndex:0,title:o,"aria-label":o,class:this.classes(D.button,n),onkeyup:this._handleActionMenuItemKeyup,bind:this,"data-action-uid":t.uid,onclick:this._triggerAction,onkeydown:this._triggerAction},s):A("div",{key:t.uid,role:"button",tabIndex:0,title:o,"aria-label":o,class:this.classes(D.button,n),onkeyup:this._handleActionMenuItemKeyup,bind:this,"data-action-uid":t.uid,onclick:this._triggerAction,onkeydown:this._triggerAction},s);return t.visible?r:null}renderFeatureMenuItem(e,t){const{messages:i,messagesCommon:o}=this,{selectedFeatureIndex:n,selectedFeatureViewModel:s}=this.viewModel,r=e===s,a={[D.featureMenuSelected]:r},l=r?A("span",{key:L(`feature-menu-selected-feature-${n}`),title:i.selectedFeature,"aria-label":i.selectedFeature,class:D.iconCheckMark}):null,u=A("span",{innerHTML:e.title||o.untitled});return A("li",{role:"menuitem",tabIndex:-1,key:L(`feature-menu-feature-${n}`),class:this.classes(a,D.featureMenuItem),bind:this,"data-feature-index":t,onkeyup:this._handleFeatureMenuItemKeyup,onclick:this._selectFeature,onkeydown:this._selectFeature},A("span",{class:D.featureMenuTitle},u,l))}renderFeatureMenu(){const{featureMenuId:e}=this,{featureViewModels:t}=this.viewModel;return t.length>1?A("ol",{class:D.featureMenuList,id:e,bind:this,afterCreate:this._featureMenuNodeUpdated,afterUpdate:this._featureMenuNodeUpdated,onkeyup:this._handleFeatureMenuKeyup,role:"menu"},t.filter((e=>!!e.graphic)).map(((e,t)=>this.renderFeatureMenuItem(e,t)))):null}_getActionTitle(e){const{messages:t,selectedFeature:i,messagesCommon:o}=this,{id:n}=e,s=null==i?void 0:i.attributes,r="zoom-to-feature"===n?x(e.title,{messages:t}):"remove-selected-feature"===n?x(e.title,{messages:o}):"zoom-to-clustered-features"===n||"browse-clustered-features"===n?x(e.title,{messages:t}):e.title;return r&&s?x(r,s):r}_getActionClass(e){const{selectedFeature:t}=this,i=null==t?void 0:t.attributes,{className:o,image:n}=e,s=n||o?o:D.iconDefaultAction;return s&&i?x(s,i):s}_getActionImage(e){const{selectedFeature:t}=this,i=null==t?void 0:t.attributes,{image:o}=e;return o&&i?x(o,i):o}_createFeatureUpdatedAnimation(){return O("enter",D.hasFeatureUpdated)}_getInlineActionCount(){const{maxInlineActions:e,featureNavigationVisible:t}=this;if("number"!=typeof e)return null;const i=Math.round(e);return Math.max(t?i-1:i,0)}_watchActions(){const{allActions:e}=this.viewModel;this.notifyChange("dividedActions");const t="actions";this._handles.remove(t),e&&e.forEach((e=>{this._handles.add(l(e,["uid","active","className","disabled","id","title","image","visible"],(()=>this.scheduleRender())),t)}))}_divideActions(){const{allActions:e}=this.viewModel,i=e.filter((e=>e.visible)),o=this._getInlineActionCount(),n=null===o,s=0===o;return{inlineActions:n?i.slice(0):s?new t:i.slice(0,o),menuActions:n?new t:s?i.slice(0):i.slice(o)}}_featureMenuOpenChanged(e){e?this._focusFirstFeature=!0:this._focusFeatureMenuButton=!0}_actionsMenuOpenChanged(e){e?this._focusFirstAction=!0:this._focusActionsMenuButton=!0}_setTitleFromFeatureWidget(){const{selectedFeatureWidget:e,messagesCommon:t}=this;var i,o;e&&(this.viewModel.title="error"===(null==(i=e.viewModel)?void 0:i.state)?t.errorMessage:(null==(o=e.viewModel)?void 0:o.title)||"")}_setContentFromFeatureWidget(){const{selectedFeatureWidget:e}=this;e&&(this.viewModel.content=e)}_unobserveFeatureMenuObserver(){this._featureMenuIntersectionObserverNode&&this._featureMenuIntersectionObserver.unobserve(this._featureMenuIntersectionObserverNode)}_featureMenuIntersectionObserverCreated(e){this._unobserveFeatureMenuObserver(),this._featureMenuIntersectionObserver.observe(e),this._featureMenuIntersectionObserverNode=e}_handleFeatureMenuKeyup(e){"Escape"===i(e)&&(e.stopPropagation(),this._focusFeatureMenuButton=!0,this.featureMenuOpen=!1,this.scheduleRender())}_handleActionMenuKeyup(e){"Escape"===i(e)&&(e.stopPropagation(),this._focusActionsMenuButton=!0,this.actionsMenuOpen=!1,this.scheduleRender())}_handleFeatureMenuItemKeyup(e){const t=i(e),{_featureMenuNode:o}=this,n=e.currentTarget["data-feature-index"];if(!o)return;const s=o.querySelectorAll("li"),r=s.length;if("ArrowUp"!==t)if("ArrowDown"!==t)if("Home"!==t)if("End"!==t);else{e.stopPropagation();s[s.length-1].focus()}else{e.stopPropagation();s[0].focus()}else{e.stopPropagation();s[(n+1+r)%r].focus()}else{e.stopPropagation();s[(n-1+r)%r].focus()}}_handleActionMenuItemKeyup(e){const t=i(e),{_actionsMenuNode:o}=this,n=e.currentTarget.dataset.actionUid,{menuActions:s}=this.dividedActions,r=s.findIndex((e=>e.uid===n));if(!o)return;const a=o.querySelectorAll("li"),l=a.length;if("ArrowUp"!==t)if("ArrowDown"!==t)if("Home"!==t)if("End"!==t);else{e.stopPropagation();a[a.length-1].focus()}else{e.stopPropagation();a[0].focus()}else{e.stopPropagation();a[(r+1+l)%l].focus()}else{e.stopPropagation();a[(r-1+l)%l].focus()}}_handleMainKeyup(e){const t=i(e);"ArrowLeft"===t&&(e.stopPropagation(),this.previous()),"ArrowRight"===t&&(e.stopPropagation(),this.next())}_spinnerEnabledChange(e){if(this._destroySpinner(),!e)return;const t=this.get("viewModel.view");this._createSpinner(t)}_hideSpinner(){const{_spinner:e}=this;e&&(e.location=null,e.hide())}_displaySpinner(){const{_spinner:e}=this;if(!e)return;const{location:t,waitingForResult:i}=this.viewModel;i?e.show({location:t}):e.hide()}_getIconStyles(e){return{"background-image":e?`url(${e})`:""}}async _shouldFocus(e){e.shouldFocus&&(await r((()=>{var e;return!0===(null==(e=this.viewModel)?void 0:e.active)})),this.focus())}_addSelectedFeatureIndexHandle(){const e=l(this,"viewModel.selectedFeatureIndex",((e,t)=>this._selectedFeatureIndexUpdated(e,t)));this._handles.add(e,N)}_selectedFeatureIndexUpdated(e,t){const{featureCount:i}=this;i&&e!==t&&-1!==e&&(this.actionsMenuOpen=!1,this.featureMenuOpen=!1)}_destroySelectedFeatureWidget(){const{_feature:e}=this;e&&(e.viewModel=null,e&&!e.destroyed&&e.destroy()),this._feature=null}_isScreenLocationWithinView(e,t){return e.x>-1&&e.y>-1&&e.x<=t.width&&e.y<=t.height}_isOutsideView(e){const{popupHeight:t,popupWidth:i,screenLocation:o,side:n,view:s}=e;if(isNaN(i)||isNaN(t)||!s||!o)return!1;const r=s.padding;return"right"===n&&o.x+i/2>s.width-r.right||("left"===n&&o.x-i/2<r.left||("top"===n&&o.y-t<r.top||"bottom"===n&&o.y+t>s.height-r.bottom))}_calculateAutoAlignment(e){if("auto"!==e)return e;const{_pointerOffsetInPx:t,_containerNode:i,_mainContainerNode:o,viewModel:n}=this,{screenLocation:r,view:a}=n;if(s(r)||!a||!i)return"top-center";if(!this._isScreenLocationWithinView(r,a))return this._get("currentAlignment")||"top-center";function l(e){return parseInt(e.replace(/[^-\d\.]/g,""),10)}const u=o?window.getComputedStyle(o,null):null,c=u?l(u.getPropertyValue("max-height")):0,d=u?l(u.getPropertyValue("height")):0,{height:p,width:h}=i.getBoundingClientRect(),g=h+t,_=Math.max(p,c,d)+t,v=this._isOutsideView({popupHeight:_,popupWidth:g,screenLocation:r,side:"right",view:a}),f=this._isOutsideView({popupHeight:_,popupWidth:g,screenLocation:r,side:"left",view:a}),m=this._isOutsideView({popupHeight:_,popupWidth:g,screenLocation:r,side:"top",view:a}),b=this._isOutsideView({popupHeight:_,popupWidth:g,screenLocation:r,side:"bottom",view:a});return f?m?"bottom-right":"top-right":v?m?"bottom-left":"top-left":m?b?"top-center":"bottom-center":"top-center"}_callCurrentAlignment(e){return"function"==typeof e?e.call(this):e}_getCurrentAlignment(){const{alignment:e,dockEnabled:t}=this;return t||!this.viewModel.active?null:this._calculatePositionResult(this._calculateAutoAlignment(this._callCurrentAlignment(e)))}_setCurrentAlignment(){this._set("currentAlignment",this._getCurrentAlignment())}_setCurrentDockPosition(){this._set("currentDockPosition",this._getCurrentDockPosition())}_calculatePositionResult(e){const t=["left","right"];return F(this.container)&&t.reverse(),e.replace(/leading/gi,t[0]).replace(/trailing/gi,t[1])}_callDockPosition(e){return"function"==typeof e?e.call(this):e}_getDockPosition(){var e;return this._calculatePositionResult(this._calculateAutoDockPosition(this._callDockPosition(null==(e=this.dockOptions)?void 0:e.position)))}_getCurrentDockPosition(){return this.dockEnabled&&this.viewModel.active?this._getDockPosition():null}_wouldDockTo(){return this.dockEnabled?null:this._getDockPosition()}_calculateAutoDockPosition(e){var t;if("auto"!==e)return e;const i=null==(t=this.viewModel)?void 0:t.view,o=F(this.container)?"top-left":"top-right";if(!i)return o;const n=i.padding||{left:0,right:0,top:0,bottom:0},s=i.width-n.left-n.right,{breakpoints:r}=i;return r&&s<=r.xsmall?"bottom-center":o}_positionContainer(e=this._containerNode){if(e&&(this._containerNode=e),!e)return;const{screenLocation:t}=this.viewModel,{width:i}=e.getBoundingClientRect(),o=this._calculatePositionStyle(t,i);o&&(e.style.top=o.top,e.style.left=o.left,e.style.bottom=o.bottom,e.style.right=o.right)}_calculateFullWidth(e){const{currentAlignment:t,_pointerOffsetInPx:i}=this;return"top-left"===t||"bottom-left"===t||"top-right"===t||"bottom-right"===t?e+i:e}_calculateAlignmentPosition(e,t,i,o){const{currentAlignment:n,_pointerOffsetInPx:s}=this,r=o/2,a=i.height-t,l=i.width-e,{padding:u}=this.view;return"bottom-center"===n?{top:t+s-u.top,left:e-r-u.left}:"top-left"===n?{bottom:a+s-u.bottom,right:l+s-u.right}:"bottom-left"===n?{top:t+s-u.top,right:l+s-u.right}:"top-right"===n?{bottom:a+s-u.bottom,left:e+s-u.left}:"bottom-right"===n?{top:t+s-u.top,left:e+s-u.left}:"top-center"===n?{bottom:a+s-u.bottom,left:e-r-u.left}:void 0}_calculatePositionStyle(e,t){const{dockEnabled:i,view:o}=this;if(!o)return;if(i)return{left:"",top:"",right:"",bottom:""};if(s(e)||!t)return;const n=this._calculateFullWidth(t),r=this._calculateAlignmentPosition(e.x,e.y,o,n);return r?{top:void 0!==r.top?`${r.top}px`:"auto",left:void 0!==r.left?`${r.left}px`:"auto",bottom:void 0!==r.bottom?`${r.bottom}px`:"auto",right:void 0!==r.right?`${r.right}px`:"auto"}:void 0}_viewChange(e,t){e&&t&&(this.close(),this.clear())}_viewReadyChange(e,t){if(e){const e=this.get("viewModel.view");this._wireUpView(e)}else t&&(this.close(),this.clear())}_wireUpView(e){if(this._destroySpinner(),!e)return;const{spinnerEnabled:t}=this;t&&this._createSpinner(e),this._setDockEnabledForViewSize(this.dockOptions)}_dockingThresholdCrossed(e,t,i){const[o,n]=e,[s,r]=t,{width:a,height:l}=i;return o<=a&&s>a||o>a&&s<=a||n<=l&&r>l||n>l&&r<=l}_updateDockEnabledForViewSize(e,t){if(!e||!t)return;const i=this.get("viewModel.view.padding")||{left:0,right:0,top:0,bottom:0},o=i.left+i.right,n=i.top+i.bottom,s=[],r=[];s[0]=e[0]-o,s[1]=e[1]-n,r[0]=t[0]-o,r[1]=t[1]-n;const{dockOptions:a}=this,l=a.breakpoint;this._dockingThresholdCrossed(s,r,l)&&this._setDockEnabledForViewSize(a),this._setCurrentDockPosition()}_focusDockButtonNode(e){this._focusDockButton&&(this._focusDockButton=!1,e.focus())}_closeButtonNodeUpdated(e){return this._focusClose?(this._focusClose=!1,void e.focus()):this._blurClose?(this._blurClose=!1,void e.blur()):void 0}_mainContainerNodeUpdated(e){return this._mainContainerNode=e,this._focusContainer?(this._focusContainer=!1,void e.focus()):this._blurContainer?(this._blurContainer=!1,void e.blur()):void 0}_featureMenuNodeUpdated(e){if(this._featureMenuNode=e,!e||!this._focusFirstFeature)return;this._focusFirstFeature=!1;const t=e.querySelectorAll("li");if(t.length){t[0].focus()}}_actionsMenuNodeUpdated(e){if(this._actionsMenuNode=e,!e||!this._focusFirstAction)return;this._focusFirstAction=!1;const t=e.querySelectorAll("li");if(t.length){t[0].focus()}}_focusFeatureMenuButtonNode(e){this._focusFeatureMenuButton&&(this._focusFeatureMenuButton=!1,e.focus())}_focusActionsMenuButtonNode(e){this._focusActionsMenuButton&&(this._focusActionsMenuButton=!1,e.focus())}_featureMenuViewportScrollTop(){this._featureMenuViewportNode&&(this._featureMenuViewportNode.scrollTop=0)}_toggleScreenLocationEnabled(){const{dockEnabled:e,viewModel:t}=this;if(!t)return;const i=t.active&&!e;t.screenLocationEnabled=i}_shouldDockAtCurrentViewSize(e){var t,i;const o=e.breakpoint,n=null==(t=this.viewModel)||null==(i=t.view)?void 0:i.ui;if(!n)return!1;const{width:s,height:r}=n;if(isNaN(s)||isNaN(r))return!1;const a=o.hasOwnProperty("width")&&s<=o.width,l=o.hasOwnProperty("height")&&r<=o.height;return a||l}_setDockEnabledForViewSize(e){e.breakpoint&&(this.dockEnabled=this._shouldDockAtCurrentViewSize(e))}_getPageText(e,t){return this.featureNavigationVisible?x(this.messages.pageText,{index:t+1,total:e}):null}_destroySpinner(){const{_spinner:e,view:t}=this;e&&(t&&t.ui&&t.ui.remove(this._spinner,T),e.destroy(),this._spinner=null)}_createSpinner(e){e&&(this._spinner=new f({view:e}),e.ui.add(this._spinner,{key:T,position:"manual"}))}_toggleCollapsed(){this.collapsed=!this.collapsed}_close(){this.close(),this.view&&this.view.focus()}_toggleDockEnabled(){this.dockEnabled=!this.dockEnabled,this._focusDockButton=!0,this.scheduleRender()}_toggleFeatureMenu(){const e=!this.featureMenuOpen;this._featureMenuOpenChanged(e),this.actionsMenuOpen=!1,this.featureMenuOpen=e}_toggleActionsMenu(){const e=!this.actionsMenuOpen;this._actionsMenuOpenChanged(e),this.featureMenuOpen=!1,this.actionsMenuOpen=e}_triggerAction(e){const t=e.currentTarget.dataset.actionUid,{allActions:i}=this.viewModel,o=i.findIndex((e=>e.uid===t)),n=i.getItemAt(o);n&&"toggle"===n.type&&(n.value=!n.value),this.actionsMenuOpen=!1,this.viewModel.triggerAction(o)}_selectFeature(e){const t=e.currentTarget["data-feature-index"];isNaN(t)||(this.viewModel.selectedFeatureIndex=t),this.featureMenuOpen=!1,this._focusFeatureMenuButton=!0,this.scheduleRender()}_next(){this.next()}_previous(){this.previous()}};e([g({readOnly:!0})],R.prototype,"actionsMenuId",null),e([g({readOnly:!0})],R.prototype,"actionsMenuButtonId",null),e([g({readOnly:!0})],R.prototype,"featureMenuId",null),e([g({readOnly:!0})],R.prototype,"titleId",null),e([g({readOnly:!0})],R.prototype,"contentId",null),e([g({readOnly:!0})],R.prototype,"hasContent",null),e([g({readOnly:!0})],R.prototype,"featureNavigationVisible",null),e([g({readOnly:!0})],R.prototype,"collapsible",null),e([g({readOnly:!0})],R.prototype,"featureMenuVisible",null),e([g({readOnly:!0})],R.prototype,"contentCollapsed",null),e([g({readOnly:!0})],R.prototype,"dividedActions",null),e([p("viewModel.actions")],R.prototype,"actions",void 0),e([g()],R.prototype,"actionsMenuOpen",null),e([g()],R.prototype,"alignment",void 0),e([p("viewModel.autoCloseEnabled")],R.prototype,"autoCloseEnabled",void 0),e([p("viewModel.autoOpenEnabled")],R.prototype,"autoOpenEnabled",void 0),e([p("viewModel.defaultPopupTemplateEnabled")],R.prototype,"defaultPopupTemplateEnabled",void 0),e([p("viewModel.content")],R.prototype,"content",void 0),e([g()],R.prototype,"collapsed",void 0),e([g()],R.prototype,"collapseEnabled",void 0),e([g({readOnly:!0})],R.prototype,"currentAlignment",null),e([g({readOnly:!0})],R.prototype,"currentDockPosition",null),e([g()],R.prototype,"dockOptions",null),e([g()],R.prototype,"dockEnabled",void 0),e([p("viewModel.featureCount")],R.prototype,"featureCount",void 0),e([g()],R.prototype,"featureMenuOpen",void 0),e([p("viewModel.features")],R.prototype,"features",void 0),e([p("viewModel.goToOverride")],R.prototype,"goToOverride",void 0),e([g()],R.prototype,"headingLevel",void 0),e([p("viewModel.highlightEnabled")],R.prototype,"highlightEnabled",void 0),e([p("viewModel.location")],R.prototype,"location",void 0),e([g({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],R.prototype,"label",void 0),e([g()],R.prototype,"maxInlineActions",void 0),e([g(),k("geoscene/widgets/Popup/t9n/Popup")],R.prototype,"messages",void 0),e([g(),k("geoscene/t9n/common")],R.prototype,"messagesCommon",void 0),e([p("viewModel.promises")],R.prototype,"promises",void 0),e([p("viewModel.selectedFeature")],R.prototype,"selectedFeature",void 0),e([p("viewModel.selectedFeatureIndex")],R.prototype,"selectedFeatureIndex",void 0),e([g({readOnly:!0})],R.prototype,"selectedFeatureWidget",null),e([g()],R.prototype,"spinnerEnabled",void 0),e([p("viewModel.title")],R.prototype,"title",void 0),e([p("viewModel.updateLocationEnabled")],R.prototype,"updateLocationEnabled",void 0),e([p("viewModel.view")],R.prototype,"view",void 0),e([g({type:M}),C(["triggerAction","trigger-action"])],R.prototype,"viewModel",void 0),e([p("viewModel.visible")],R.prototype,"visible",void 0),e([g()],R.prototype,"visibleElements",void 0),e([h("visibleElements")],R.prototype,"castVisibleElements",null),e([y()],R.prototype,"_close",null),e([y()],R.prototype,"_toggleDockEnabled",null),e([y()],R.prototype,"_toggleFeatureMenu",null),e([y()],R.prototype,"_toggleActionsMenu",null),e([y()],R.prototype,"_triggerAction",null),e([y()],R.prototype,"_selectFeature",null),e([y()],R.prototype,"_next",null),e([y()],R.prototype,"_previous",null),R=e([_(S)],R);const j=R;export{j as default};
package/widgets/Print.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{on as i,eventKey as a}from"../core/events.js";import{clone as n}from"../core/lang.js";import s from"../core/Logger.js";import{addProxy as o,hasSameOrigin as l}from"../core/urlUtils.js";import{init as r}from"../core/watchUtils.js";import{aliasOf as p}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/accessorSupport/ensureType.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import u from"./Widget.js";import h from"./Print/FileLink.js";import m from"./Print/PrintViewModel.js";import _ from"./Print/TemplateOptions.js";import{Heading as b}from"./support/Heading.js";import v from"./support/Popover.js";import{isActivationKey as y,keepMenuItemWithinView as g}from"./support/widgetUtils.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import"../core/has.js";import{tsx as T}from"./support/jsxFactory.js";const w=t.ofType(h),O="MAP_ONLY";var x;!function(e){e.layout="layoutTab",e.mapOnly="mapOnlyTab"}(x||(x={}));const C={base:"esri-print",headerTitle:"esri-print__header-title",inputText:"esri-print__input-text",layoutTabList:"esri-print__layout-tab-list",layoutTab:"esri-print__layout-tab",layoutSection:"esri-print__layout-section",mapOnlySection:"esri-print__map-only-section",scaleInput:"esri-print__scale-input",templateList:"esri-print__template-list",templateListScroller:"esri-print__template-list-scroller",templateListFooter:"esri-print__template-list-footer",loader:"esri-print__loader",advancedOptionsButton:"esri-print__advanced-options-button",advancedOptionsButtonContainer:"esri-print__advanced-options-button-container",advancedOptionsButtonTitle:"esri-print__advanced-options-button-title",advancedOptionsButtonIconOpened:"esri-print__advanced-options-button-icon--opened",advancedOptionsButtonIconClosed:"esri-print__advanced-options-button-icon--closed",advancedOptionsButtonIconClosed_RTL:"esri-print__advanced-options-button-icon--closed-rtl",refreshButton:"esri-print__refresh-button",swapButton:"esri-print__swap-button",linkButton:"esri-print__link-button",printButton:"esri-print__export-button",templateButton:"esri-print__template-button",formSectionContainer:"esri-print__form-section-container",advancedOptionsSection:"esri-print__advanced-options-section",advancedOptionsContainer:"esri-print__advanced-options-container",authorInfoContainer:"esri-print__author-info-container",copyrightInfoContainer:"esri-print__copyright-info-container",exportedFilesContainer:"esri-print__export-panel-container",exportedFilesTitle:"esri-print__export-title",exportedFile:"esri-print__exported-file",exportedFileLink:"esri-widget__anchor esri-print__exported-file-link",exportedFileLinkTitle:"esri-print__exported-file-link-title",heightContainer:"esri-print__height-container",legendInfoContainer:"esri-print__legend-info-container",printWidgetContainer:"esri-print__container",panelContainer:"esri-print__panel-container",scaleInfoContainer:"esri-print__scale-info-container",scaleInputContainer:"esri-print__scale-input-container",sizeContainer:"esri-print__size-container",widthContainer:"esri-print__width-container",widget:"esri-widget",panel:"esri-widget--panel",widgetButton:"esri-widget--button",button:"esri-button",buttonSecondary:"esri-button--secondary",buttonTertiary:"esri-button--tertiary",select:"esri-select",input:"esri-input",disabled:"esri-disabled",anchorDisabled:"esri-widget__anchor--disabled",buttonDisabled:"esri-button--disabled",panelError:"esri-print__panel--error",exportedFileError:"esri-print__exported-file--error",hide:"esri-hidden",rotate:"esri-rotating",anchor:"esri-widget__anchor",menu:"esri-menu",menuList:"esri-menu__list",menuItem:"esri-menu__list-item",menuItemFocus:"esri-menu__list-item--focus",menuHeader:"esri-menu__header",iconCheckMark:"geoscene-icon-check-mark",iconDownload:"geoscene-icon-download",iconLaunchLink:"geoscene-icon-launch-link-external",iconError:"geoscene-icon-error",iconPrinter:"geoscene-icon-printer",iconRightTriangleArrow:"geoscene-icon-right-triangle-arrow",iconLeftTriangleArrow:"geoscene-icon-left-triangle-arrow",iconDownArrow:"geoscene-icon-down-arrow",iconRefresh:"geoscene-icon-refresh",iconSpinner:"geoscene-icon-loading-indicator",iconSwap:"geoscene-icon-swap",iconLinked:"geoscene-icon-link-horizontal",iconUnlinked:"geoscene-icon-unlocked-link-horizontal",widgetIcon:"geoscene-icon-printer"},L="geoscene.widgets.Print",I=s.getLogger(L),S="User sets an invalid layout, resetting it to the default valid one...",k="User sets an invalid format, resetting it to the default valid one...";function F(e){const t=8.3333,i=11.4583;return{width:Math.round(e*t),height:Math.round(e*i)}}function M(e){return!isNaN(e)&&e>0}function E(e){return(null==e?void 0:e.toUpperCase())===O}let V=class extends u{constructor(e,t){super(e,t),this._activeTabFocusRequested=!1,this._advancedOptionsVisibleForLayout=!1,this._advancedOptionsVisibleForMapOnly=!1,this._awaitingServerResponse=!1,this._exportedFileNameMap={},this._focusedTemplateIndex=0,this._layoutTabSelected=!0,this._pendingExportScroll=!1,this._rootNode=null,this._selectTemplateNode=null,this._templateListPopover=new v({owner:this,placement:"top",offset:[0,-100],anchorElement:()=>this._selectTemplateNode,renderContentFunction:this.renderTemplateList}),this.allowedFormats=null,this.allowedLayouts=null,this.exportedLinks=new w,this.extraParameters=null,this.headingLevel=3,this.iconClass=C.widgetIcon,this.includeDefaultTemplates=null,this.label=void 0,this.portal=null,this.printServiceUrl=null,this.templateCustomTextElements=null,this.templateOptions=new _,this.view=null,this.viewModel=new m,this.handleTemplateListCreation=e=>e.focus(),this.handleTemplateChildBlur=e=>{var t;(null==(t=e.relatedTarget)?void 0:t.closest(`.${C.templateList}`))||this.handleCloseTemplateSelection()},this.handleCloseTemplateSelection=()=>{this._focusedTemplateIndex=0,this._templateListPopover.open=!1,this._selectTemplateNode.focus()},this.handleSelectTemplateClick=()=>{this._focusedTemplateIndex=0,this._templateListPopover.open=!0},this.handleTemplateListClick=e=>{const t=e.target;this.applyTemplate(t["data-template"])},this.handleTemplateListKeyDown=e=>{if(y(e.key))return this.applyTemplate(this.viewModel.defaultTemplates.getItemAt(this._focusedTemplateIndex)),void e.preventDefault();if("ArrowDown"===e.key||"ArrowUp"===e.key){const{defaultTemplates:t}=this.viewModel,i="ArrowDown"===e.key?1:-1,a=(this._focusedTemplateIndex+i)%t.length;this._focusedTemplateIndex=a<0?t.length-1:a;const n=e.currentTarget;g(n.querySelectorAll(`.${C.menuItem}`)[this._focusedTemplateIndex],n.parentElement),e.preventDefault()}"Escape"===e.key&&this.handleCloseTemplateSelection()},this._removeLink=e=>{const t=e.currentTarget["data-item"];t&&"error"===t.state&&this.exportedLinks.remove(t)},this._focusOnTabChange=this._focusOnTabChange.bind(this)}initialize(){this.own([r(this,"viewModel.templatesInfo",(e=>{const{format:t,layout:i}=this.templateOptions;if(e){const a=i===e.layout.defaultValue||E(i)||e.layout.choiceList&&e.layout.choiceList.indexOf(i)>-1,n=t===e.format.defaultValue||e.format.choiceList&&e.format.choiceList.indexOf(t)>-1;a||(i&&I.warn(S),this.templateOptions.layout=e.layout.defaultValue),n||(t&&I.warn(k),this.templateOptions.format=e.format.defaultValue),E(i)&&(this._layoutTabSelected=!1)}})),r(this,"templateOptions.format",(e=>{const{viewModel:{templatesInfo:t}}=this;if(t&&e){let i=!1;t.format.choiceList&&t.format.choiceList.forEach((t=>{t.toUpperCase()===e.toUpperCase()&&(this.templateOptions.format=t,i=!0)})),i||(this.templateOptions.format=t.format.defaultValue,I.warn(k)),this.scheduleRender()}})),r(this,"templateOptions.layout",(e=>{const{viewModel:{templatesInfo:t}}=this;if(t&&e){this._layoutTabSelected=!E(e);let i=!this._layoutTabSelected;i||t.layout.choiceList&&t.layout.choiceList.forEach((t=>{t.toUpperCase()===e.toUpperCase()&&(this.templateOptions.layout=t,i=!0)})),i||(this.templateOptions.layout=t.layout.defaultValue,I.warn(S));const a=this.viewModel.effectiveTemplateCustomTextElements[this.templateOptions.layout];this.templateOptions.customTextElements=a?n(a):null,this.scheduleRender()}})),r(this,"templateOptions.dpi",(e=>{e<=0?this.templateOptions.dpi=1:this.scheduleRender()})),r(this,"viewModel.view.scale",(e=>{const{scale:t,scaleEnabled:i}=this.templateOptions;i&&t||(this.templateOptions.scale=e)}))]);const{height:e,width:t}=this.templateOptions;this.templateOptions.width=t||800,this.templateOptions.height=e||1100;const i=setTimeout((()=>{this._awaitingServerResponse=!0,this.scheduleRender()}),500);this.viewModel.load().then((()=>clearTimeout(i)))}render(){const{attributionEnabled:e,author:t,copyright:i,dpi:a,format:n,height:s,layout:o,legendEnabled:l,scaleEnabled:r,scale:p,width:d}=this.templateOptions,c="ready"!==this.get("viewModel.state"),u=this.renderTitleOrFileNameSection(),{includeDefaultTemplates:h,messages:m,viewModel:_}=this,v=this.get("viewModel.templatesInfo.format.choiceList")||[],y=v.length>0?v.map((e=>T("option",{key:e,selected:e===n,value:e},e.toUpperCase()))):T("option",{key:"format-default-option"},m.formatDefaultOption),g=T("div",{class:C.formSectionContainer},T("label",null,m.fileFormatTitle,T("select",{class:C.select,onchange:this._updateFromOption,"data-target-property":"format",bind:this},y))),f=this.get("viewModel.templatesInfo.layout.choiceList")||[],w=f.length>0?f.map((e=>{const t=e===o,i=m[e]||e;return T("option",{key:e,selected:t,value:e},i)})):T("option",{key:"layout-default-option"},m.layoutDefaultOption),O=T("div",{class:C.formSectionContainer},T("label",null,m.layoutTitle,T("select",{class:C.select,onchange:this._updateFromOption,"data-target-property":"layout",bind:this},w))),L=T("div",{class:C.formSectionContainer},T("label",null,m.dpi,T("input",{type:"number",class:this.classes(C.inputText,C.input),"data-input-name":"dpi",onchange:this._handleDPIChange,value:`${a}`,min:"1",tabIndex:0,bind:this}))),I=T("div",{class:this.classes(C.scaleInfoContainer,C.formSectionContainer)},T("label",null,T("input",{"data-option-name":"scaleEnabled",checked:r,type:"checkbox",tabIndex:0,onchange:this._toggleInputValue,bind:this}),m.scale),T("div",{class:C.scaleInputContainer},T("input",{"aria-label":m.scaleLabel,"aria-valuenow":`${p}`,role:"spinbutton",type:"number",class:this.classes(C.inputText,C.input,C.scaleInput),tabIndex:0,"data-input-name":"scale",onchange:this._updateInputValue,disabled:!r,value:`${p}`,bind:this}),T("button",{type:"button","aria-label":m.reset,class:this.classes(C.widgetButton,C.refreshButton,C.iconRefresh),tabIndex:0,onclick:this._resetToCurrentScale,bind:this}))),S=this._advancedOptionsVisibleForLayout?T("div",{"aria-labelledby":`${this.id}__advancedOptionsForLayout`,class:C.advancedOptionsContainer},I,T("div",{class:this.classes(C.authorInfoContainer,C.formSectionContainer)},T("label",null,m.author,T("input",{type:"text",value:t,class:this.classes(C.inputText,C.input),tabIndex:0,"data-input-name":"author",onchange:this._updateInputValue,bind:this}))),T("div",{class:this.classes(C.copyrightInfoContainer,C.formSectionContainer)},T("label",null,m.copyright,T("input",{type:"text",class:this.classes(C.inputText,C.input),tabIndex:0,value:i,"data-input-name":"copyright",onchange:this._updateInputValue,bind:this}))),L,T("div",{class:this.classes(C.legendInfoContainer,C.formSectionContainer)},T("label",null,T("input",{type:"checkbox","data-option-name":"legendEnabled",tabIndex:0,checked:l,onchange:this._toggleInputValue,bind:this}),m.legend)),this.renderCustomTextElementSection()):null,k=this._advancedOptionsVisibleForMapOnly?T("div",{"aria-labelledby":`${this.id}__advancedOptionsForMapOnly`,class:C.advancedOptionsContainer},I,L,T("div",{class:C.formSectionContainer},T("label",null,T("input",{"data-option-name":"attributionEnabled",type:"checkbox",onchange:this._toggleInputValue,tabIndex:0,checked:e,bind:this}),m.attribution)),this.renderCustomTextElementSection()):null,F=this._layoutTabSelected?T("section",{key:"esri-print__layoutContent",id:`${this.id}__layoutContent`,"aria-labelledby":`${this.id}__layoutTab`,class:C.layoutSection,role:"tabpanel","aria-selected":this._layoutTabSelected.toString()},T("div",{class:C.panelContainer},u,O,this._layoutTabSelected?g:null),T("div",{class:this.classes(C.panelContainer,C.advancedOptionsSection)},T("button",{"aria-label":m.advancedOptions,"aria-expanded":this._advancedOptionsVisibleForLayout?"true":"false",class:C.advancedOptionsButton,onclick:this._showAdvancedOptions,bind:this,type:"button"},T("div",{class:C.advancedOptionsButtonContainer},T("span",{"aria-hidden":"true",class:this.classes(C.iconRightTriangleArrow,C.advancedOptionsButtonIconClosed)}),T("span",{"aria-hidden":"true",class:this.classes(C.iconLeftTriangleArrow,C.advancedOptionsButtonIconClosed_RTL)}),T("span",{"aria-hidden":"true",class:this.classes(C.iconDownArrow,C.advancedOptionsButtonIconOpened)}),T("span",{class:C.advancedOptionsButtonTitle},m.advancedOptions))),S)):T("section",{key:"esri-print__mapOnlyContent",id:`${this.id}__mapOnlyContent`,"aria-selected":(!this._layoutTabSelected).toString(),"aria-labelledby":`${this.id}__mapOnlyTab`,class:C.mapOnlySection,role:"tabpanel"},T("div",{class:C.panelContainer},u,this._layoutTabSelected?null:g,T("div",{class:this.classes(C.sizeContainer,C.formSectionContainer)},T("div",{class:C.widthContainer},T("label",null,m.width,T("input",{type:"number",class:this.classes(C.inputText,C.input),"data-input-name":"width",onchange:this._updateInputValue,value:`${d}`,tabIndex:0,bind:this}))),T("div",{class:C.heightContainer},T("label",null,m.height,T("input",{type:"number",class:this.classes(C.inputText,C.input),"data-input-name":"height",onchange:this._updateInputValue,value:`${s}`,tabIndex:0,bind:this}))),T("button",{type:"button","aria-label":m.swap,class:this.classes(C.widgetButton,C.swapButton,C.iconSwap),onclick:this._switchInput,tabIndex:0,bind:this})),T("div",{class:this.classes(C.panelContainer,C.advancedOptionsSection)},T("button",{"aria-label":m.advancedOptions,"aria-expanded":this._advancedOptionsVisibleForMapOnly?"true":"false",type:"button",class:C.advancedOptionsButton,onclick:this._showAdvancedOptions,bind:this},T("div",{class:C.advancedOptionsButtonContainer},T("span",{"aria-hidden":"true",class:this.classes(C.iconRightTriangleArrow,C.advancedOptionsButtonIconClosed)}),T("span",{"aria-hidden":"true",class:this.classes(C.iconLeftTriangleArrow,C.advancedOptionsButtonIconClosed_RTL)}),T("span",{"aria-hidden":"true",class:this.classes(C.iconDownArrow,C.advancedOptionsButtonIconOpened)}),T("span",{class:C.advancedOptionsButtonTitle},m.advancedOptions))),k))),M=this.exportedLinks.toArray(),E=this._renderExportedLink(M),V={[C.buttonDisabled]:c||!o&&!n},B=null!=this.get("view")&&"2d"!==this.get("view.type"),A=T("div",{class:C.panelError},B?m.sceneViewError:m.serviceError),P=T("div",null,T("ul",{class:C.layoutTabList,role:"tablist",onclick:this._toggleLayoutPanel,onkeydown:this._handleLayoutPanelKeyDown,bind:this},T("li",{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,id:`${this.id}__layoutTab`,"data-tab-id":x.layout,class:C.layoutTab,role:"tab",tabIndex:0,"aria-selected":`${this._layoutTabSelected}`},m.layoutTab),T("li",{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,id:`${this.id}__mapOnlyTab`,"data-tab-id":x.mapOnly,class:C.layoutTab,role:"tab",tabIndex:0,"aria-selected":`${!this._layoutTabSelected}`},m.mapOnlyTab)),F,T("button",{"aria-label":m.exportDescription,type:"button",class:this.classes(C.printButton,C.button,V),disabled:c,tabIndex:0,onclick:this._handlePrintMap,bind:this},m.export),h&&_.defaultTemplates.length>0?this.renderTemplateSectionTrigger():null,T("div",{class:C.exportedFilesContainer,afterUpdate:this._scrollExportIntoView,bind:this},T(b,{class:C.exportedFilesTitle,level:this.headingLevel},m.exportText),M.length>0?null:T("div",null,T("div",null,m.exportHint)),E)),D=T("div",{class:C.printWidgetContainer},T("header",{class:C.headerTitle},m.export),this.error||B||!this.view?A:P),N="initializing"===this.get("viewModel.state")?this._renderLoader():D;return T("div",{afterCreate:this._handleRootAfterCreate,bind:this,class:this.classes(C.base,C.widget,C.panel)},N)}renderTemplateSectionTrigger(){const{messages:e,_templateListPopover:t}=this,i=t.open;return T("button",{afterCreate:e=>this._selectTemplateNode=e,"aria-controls":i?`${this.id}__template-selection`:"","aria-label":e.selectTemplateDescription,"aria-pressed":i.toString(),class:this.classes(C.button,C.buttonTertiary,C.templateButton),onclick:this.handleSelectTemplateClick,title:e.selectTemplateDescription,type:"button"},e.selectTemplate)}renderCustomTextElementSection(){const{templateOptions:{customTextElements:e}}=this;return e?T("div",{class:C.formSectionContainer,key:"custom-text-elements"},e.map((e=>{const[t,i]=Object.entries(e)[0];return"date"===t?null:T("label",{key:t},t,T("input",{bind:this,class:this.classes(C.inputText,C.input),"data-input-custom":!0,"data-input-name":t,onchange:this._updateInputValue,type:"text",value:i}))}))):null}renderTemplateList(){const{messages:e,messagesCommon:t,viewModel:i}=this,{defaultTemplates:a}=i,n=e.selectTemplateDescription,s=`${this.id}__template-selection`;return T("div",{class:this.classes(C.templateList,C.widget,C.panel),id:s},T(b,{class:C.menuHeader,level:this.headingLevel},e.selectTemplate),T("div",{class:C.templateListScroller},T("ul",{afterCreate:this.handleTemplateListCreation,"aria-activedescendant":`${this.id}__template-item--${this._focusedTemplateIndex}`,"aria-label":n,class:C.menuList,key:"templates",onblur:this.handleTemplateChildBlur,onclick:this.handleTemplateListClick,onkeydown:this.handleTemplateListKeyDown,role:"listbox",tabIndex:0,title:n},a.toArray().map(((t,i)=>{const{description:a}=t,n=i===this._focusedTemplateIndex,s=t.label;return T("li",{"aria-label":a,class:this.classes(C.menuItem,{[C.menuItemFocus]:n}),"data-template":t,id:`${this.id}__template-item--${i}`,key:s,title:a},E(s)?e.mapOnlyTab:s)})))),T("div",{class:C.templateListFooter},T("button",{type:"button",class:this.classes(C.button,C.buttonSecondary),onblur:this.handleTemplateChildBlur,onclick:this.handleCloseTemplateSelection},t.done)))}applyTemplate(e){var t;const{format:i,layout:a,layoutOptions:n}=e,{templateOptions:s}=this;this._templateListPopover.open=!1,this._toggleTab("map-only"===a?x.mapOnly:x.layout,!1),i&&(s.format=i),a&&(s.layout=a),this._focusedTemplateIndex=null,s.legendEnabled=null!=(t=null==n?void 0:n.legend)?t:s.legendEnabled,this.handleCloseTemplateSelection()}renderTitleOrFileNameSection(){const{templateOptions:e,messages:t}=this;let i,a,n,s;return this._layoutTabSelected?(i=t.title,a=t.titlePlaceHolder,n=e.title,s="title"):(i=t.fileName,a=t.fileNamePlaceHolder,n=e.fileName,s="fileName"),T("div",{class:C.formSectionContainer,key:s},T("label",null,i,T("input",{type:"text",tabIndex:0,placeholder:a,class:this.classes(C.inputText,C.input),value:n,"data-input-name":s,onchange:this._updateInputValue,bind:this})))}_handleRootAfterCreate(e){this._rootNode=e,this.own(i(e,"scroll",(()=>{this._templateListPopover.open&&this.handleCloseTemplateSelection()})))}_focusOnTabChange(e){if(!this._activeTabFocusRequested)return;const t=e.getAttribute("data-tab-id");("layoutTab"===t&&this._layoutTabSelected||"mapOnlyTab"===t&&!this._layoutTabSelected)&&(e.focus(),this._activeTabFocusRequested=!1)}_renderLoader(){const e={[C.loader]:this._awaitingServerResponse};return T("div",{class:this.classes(e),key:"loader"})}_createFileLink(e,t){const i=t||this.messages.untitled,a=e.format.toLowerCase(),n=a.indexOf("png")>-1?"png":a,s=i+n;return void 0!==this._exportedFileNameMap[s]?this._exportedFileNameMap[s]++:this._exportedFileNameMap[s]=0,new h({name:i,extension:n,count:this._exportedFileNameMap[s]})}_resetToCurrentScale(){this.templateOptions.scale=this.viewModel.view.scale}_updateCustomTextElementValue(e,t,i){e.find((e=>{const[i]=Object.entries(e)[0];return i===t}))[t]=i}_updateInputValue(e){const t=e.target,i=t.getAttribute("data-input-name"),a=!!t["data-input-custom"],{templateOptions:n}=this;if(a)return void this._updateCustomTextElementValue(n.customTextElements,i,t.value);let s;if("number"===t.type){if(!M(t.valueAsNumber)){const e=n[i];return void(t.value=`${e}`)}s=t.valueAsNumber}else s=t.value;n[i]=s}_handleDPIChange(e){this._updateInputValue(e);const t=e.currentTarget.valueAsNumber,{height:i,width:a}=F(t),{templateOptions:n}=this;n.height=i,n.width=a}_handlePrintMap(){this._pendingExportScroll=!0;const{templateOptions:e}=this,t=this.viewModel.toPrintTemplate(e),i=this._layoutTabSelected?t.layoutOptions.titleText:e.fileName,a=this._createFileLink(t,i);this.exportedLinks.add(a),this.emit("submit",{link:a}),this.viewModel.print(t).then((e=>{a.set({url:e&&e.url,state:"ready"})})).catch((e=>{a.set({error:e,state:"error"})})).then((()=>{this.emit("complete",{link:a}),this.scheduleRender()}))}_updateFromOption(e){const t=e.target,i=t.selectedOptions?t.selectedOptions.item(0).value:t.options[t.selectedIndex].value,a=t.getAttribute("data-target-property");this.templateOptions[a]=i}_switchInput(){[this.templateOptions.width,this.templateOptions.height]=[this.templateOptions.height,this.templateOptions.width]}_showAdvancedOptions(){this._layoutTabSelected?this._advancedOptionsVisibleForLayout=!this._advancedOptionsVisibleForLayout:this._advancedOptionsVisibleForMapOnly=!this._advancedOptionsVisibleForMapOnly}_scrollExportIntoView(){if(this._pendingExportScroll){this._pendingExportScroll=!1;const{_rootNode:e,_rootNode:{clientHeight:t,scrollHeight:i}}=this,a=i-t;a>0&&(e.scrollTop=a)}}_toggleInputValue(e){const t=e.target,i=t.getAttribute("data-option-name");this.templateOptions[i]=t.checked,"scaleEnabled"===i&&(this.templateOptions[i]||this._resetToCurrentScale())}_renderExportedLink(e){const t=this.messages;return e.map((e=>{const{error:i,url:a,formattedName:n,state:s}=e,r="error"===s,p="pending"===s,d="ready"===s,c={[C.anchorDisabled]:p||r};let u=a||null;u&&(u=o(u));const h=l(a,location.href),m={[C.iconSpinner]:p,[C.rotate]:p,[C.iconDownload]:h&&d,[C.iconLaunchLink]:!h&&d,[C.iconError]:r,[C.exportedFileError]:r},_={[C.exportedFileError]:r};let b;b=p?t.pending:d?t.ready:t.errorMessage;const v=r?"print-task:cim-symbol-unsupported"===i.name?t.exportWebMapCIMError:t.exportWebMapError:"";return T("div",{"aria-label":b,class:C.exportedFile,"data-item":e,key:n,onclick:this._removeLink,title:v},T("a",{"aria-label":`${n}. ${t.linkReady}`,download:n,href:u,rel:"noreferrer",tabIndex:0,target:"_blank",class:this.classes(C.exportedFileLink,c)},T("span",{class:this.classes(m)}),T("span",{class:this.classes(C.exportedFileLinkTitle,_)},n)))}))}_toggleLayoutPanel(e){const t=e.target;this._toggleTab(t.getAttribute("data-tab-id"))}_toggleTab(e,t=!0){if(this._layoutTabSelected=e===x.layout,this._layoutTabSelected){const e=this.get("viewModel.templatesInfo.layout.choiceList");this.templateOptions.layout=e&&e[0]}else this.templateOptions.layout=O;t&&(this._activeTabFocusRequested=!0)}_handleLayoutPanelKeyDown(e){const t=a(e),i=e.target.getAttribute("data-tab-id");if(y(t))return this._toggleTab(i),e.preventDefault(),void e.stopPropagation();"ArrowLeft"!==t&&"ArrowRight"!==t||(this._toggleTab(i===x.layout?x.mapOnly:x.layout),e.preventDefault(),e.stopPropagation())}};e([p("viewModel.allowedFormats")],V.prototype,"allowedFormats",void 0),e([p("viewModel.allowedLayouts")],V.prototype,"allowedLayouts",void 0),e([p("viewModel.error")],V.prototype,"error",void 0),e([d({type:w})],V.prototype,"exportedLinks",void 0),e([p("viewModel.extraParameters")],V.prototype,"extraParameters",void 0),e([d()],V.prototype,"headingLevel",void 0),e([d()],V.prototype,"iconClass",void 0),e([p("viewModel.includeDefaultTemplates")],V.prototype,"includeDefaultTemplates",void 0),e([d({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],V.prototype,"label",void 0),e([d(),f("geoscene/widgets/Print/t9n/Print")],V.prototype,"messages",void 0),e([d(),f("geoscene/t9n/common")],V.prototype,"messagesCommon",void 0),e([p("viewModel.portal")],V.prototype,"portal",void 0),e([p("viewModel.printServiceUrl")],V.prototype,"printServiceUrl",void 0),e([p("viewModel.templateCustomTextElements")],V.prototype,"templateCustomTextElements",void 0),e([d({type:_})],V.prototype,"templateOptions",void 0),e([p("viewModel.view")],V.prototype,"view",void 0),e([d({type:m})],V.prototype,"viewModel",void 0),V=e([c("geoscene.widgets.Print")],V);const B=V;export{B as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{on as i,eventKey as a}from"../core/events.js";import{clone as n}from"../core/lang.js";import s from"../core/Logger.js";import{addProxy as o,hasSameOrigin as l}from"../core/urlUtils.js";import{init as r}from"../core/watchUtils.js";import{aliasOf as p}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/accessorSupport/ensureType.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import u from"./Widget.js";import h from"./Print/FileLink.js";import m from"./Print/PrintViewModel.js";import _ from"./Print/TemplateOptions.js";import{Heading as b}from"./support/Heading.js";import v from"./support/Popover.js";import{isActivationKey as y,keepMenuItemWithinView as g}from"./support/widgetUtils.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import"../core/has.js";import{tsx as T}from"./support/jsxFactory.js";const w=t.ofType(h),O="MAP_ONLY";var x;!function(e){e.layout="layoutTab",e.mapOnly="mapOnlyTab"}(x||(x={}));const C={base:"geoscene-print",headerTitle:"geoscene-print__header-title",inputText:"geoscene-print__input-text",layoutTabList:"geoscene-print__layout-tab-list",layoutTab:"geoscene-print__layout-tab",layoutSection:"geoscene-print__layout-section",mapOnlySection:"geoscene-print__map-only-section",scaleInput:"geoscene-print__scale-input",templateList:"geoscene-print__template-list",templateListScroller:"geoscene-print__template-list-scroller",templateListFooter:"geoscene-print__template-list-footer",loader:"geoscene-print__loader",advancedOptionsButton:"geoscene-print__advanced-options-button",advancedOptionsButtonContainer:"geoscene-print__advanced-options-button-container",advancedOptionsButtonTitle:"geoscene-print__advanced-options-button-title",advancedOptionsButtonIconOpened:"geoscene-print__advanced-options-button-icon--opened",advancedOptionsButtonIconClosed:"geoscene-print__advanced-options-button-icon--closed",advancedOptionsButtonIconClosed_RTL:"geoscene-print__advanced-options-button-icon--closed-rtl",refreshButton:"geoscene-print__refresh-button",swapButton:"geoscene-print__swap-button",linkButton:"geoscene-print__link-button",printButton:"geoscene-print__export-button",templateButton:"geoscene-print__template-button",formSectionContainer:"geoscene-print__form-section-container",advancedOptionsSection:"geoscene-print__advanced-options-section",advancedOptionsContainer:"geoscene-print__advanced-options-container",authorInfoContainer:"geoscene-print__author-info-container",copyrightInfoContainer:"geoscene-print__copyright-info-container",exportedFilesContainer:"geoscene-print__export-panel-container",exportedFilesTitle:"geoscene-print__export-title",exportedFile:"geoscene-print__exported-file",exportedFileLink:"geoscene-widget__anchor geoscene-print__exported-file-link",exportedFileLinkTitle:"geoscene-print__exported-file-link-title",heightContainer:"geoscene-print__height-container",legendInfoContainer:"geoscene-print__legend-info-container",printWidgetContainer:"geoscene-print__container",panelContainer:"geoscene-print__panel-container",scaleInfoContainer:"geoscene-print__scale-info-container",scaleInputContainer:"geoscene-print__scale-input-container",sizeContainer:"geoscene-print__size-container",widthContainer:"geoscene-print__width-container",widget:"geoscene-widget",panel:"geoscene-widget--panel",widgetButton:"geoscene-widget--button",button:"geoscene-button",buttonSecondary:"geoscene-button--secondary",buttonTertiary:"geoscene-button--tertiary",select:"geoscene-select",input:"geoscene-input",disabled:"geoscene-disabled",anchorDisabled:"geoscene-widget__anchor--disabled",buttonDisabled:"geoscene-button--disabled",panelError:"geoscene-print__panel--error",exportedFileError:"geoscene-print__exported-file--error",hide:"geoscene-hidden",rotate:"geoscene-rotating",anchor:"geoscene-widget__anchor",menu:"geoscene-menu",menuList:"geoscene-menu__list",menuItem:"geoscene-menu__list-item",menuItemFocus:"geoscene-menu__list-item--focus",menuHeader:"geoscene-menu__header",iconCheckMark:"geoscene-icon-check-mark",iconDownload:"geoscene-icon-download",iconLaunchLink:"geoscene-icon-launch-link-external",iconError:"geoscene-icon-error",iconPrinter:"geoscene-icon-printer",iconRightTriangleArrow:"geoscene-icon-right-triangle-arrow",iconLeftTriangleArrow:"geoscene-icon-left-triangle-arrow",iconDownArrow:"geoscene-icon-down-arrow",iconRefresh:"geoscene-icon-refresh",iconSpinner:"geoscene-icon-loading-indicator",iconSwap:"geoscene-icon-swap",iconLinked:"geoscene-icon-link-horizontal",iconUnlinked:"geoscene-icon-unlocked-link-horizontal",widgetIcon:"geoscene-icon-printer"},L="geoscene.widgets.Print",I=s.getLogger(L),S="User sets an invalid layout, resetting it to the default valid one...",k="User sets an invalid format, resetting it to the default valid one...";function F(e){const t=8.3333,i=11.4583;return{width:Math.round(e*t),height:Math.round(e*i)}}function M(e){return!isNaN(e)&&e>0}function E(e){return(null==e?void 0:e.toUpperCase())===O}let V=class extends u{constructor(e,t){super(e,t),this._activeTabFocusRequested=!1,this._advancedOptionsVisibleForLayout=!1,this._advancedOptionsVisibleForMapOnly=!1,this._awaitingServerResponse=!1,this._exportedFileNameMap={},this._focusedTemplateIndex=0,this._layoutTabSelected=!0,this._pendingExportScroll=!1,this._rootNode=null,this._selectTemplateNode=null,this._templateListPopover=new v({owner:this,placement:"top",offset:[0,-100],anchorElement:()=>this._selectTemplateNode,renderContentFunction:this.renderTemplateList}),this.allowedFormats=null,this.allowedLayouts=null,this.exportedLinks=new w,this.extraParameters=null,this.headingLevel=3,this.iconClass=C.widgetIcon,this.includeDefaultTemplates=null,this.label=void 0,this.portal=null,this.printServiceUrl=null,this.templateCustomTextElements=null,this.templateOptions=new _,this.view=null,this.viewModel=new m,this.handleTemplateListCreation=e=>e.focus(),this.handleTemplateChildBlur=e=>{var t;(null==(t=e.relatedTarget)?void 0:t.closest(`.${C.templateList}`))||this.handleCloseTemplateSelection()},this.handleCloseTemplateSelection=()=>{this._focusedTemplateIndex=0,this._templateListPopover.open=!1,this._selectTemplateNode.focus()},this.handleSelectTemplateClick=()=>{this._focusedTemplateIndex=0,this._templateListPopover.open=!0},this.handleTemplateListClick=e=>{const t=e.target;this.applyTemplate(t["data-template"])},this.handleTemplateListKeyDown=e=>{if(y(e.key))return this.applyTemplate(this.viewModel.defaultTemplates.getItemAt(this._focusedTemplateIndex)),void e.preventDefault();if("ArrowDown"===e.key||"ArrowUp"===e.key){const{defaultTemplates:t}=this.viewModel,i="ArrowDown"===e.key?1:-1,a=(this._focusedTemplateIndex+i)%t.length;this._focusedTemplateIndex=a<0?t.length-1:a;const n=e.currentTarget;g(n.querySelectorAll(`.${C.menuItem}`)[this._focusedTemplateIndex],n.parentElement),e.preventDefault()}"Escape"===e.key&&this.handleCloseTemplateSelection()},this._removeLink=e=>{const t=e.currentTarget["data-item"];t&&"error"===t.state&&this.exportedLinks.remove(t)},this._focusOnTabChange=this._focusOnTabChange.bind(this)}initialize(){this.own([r(this,"viewModel.templatesInfo",(e=>{const{format:t,layout:i}=this.templateOptions;if(e){const a=i===e.layout.defaultValue||E(i)||e.layout.choiceList&&e.layout.choiceList.indexOf(i)>-1,n=t===e.format.defaultValue||e.format.choiceList&&e.format.choiceList.indexOf(t)>-1;a||(i&&I.warn(S),this.templateOptions.layout=e.layout.defaultValue),n||(t&&I.warn(k),this.templateOptions.format=e.format.defaultValue),E(i)&&(this._layoutTabSelected=!1)}})),r(this,"templateOptions.format",(e=>{const{viewModel:{templatesInfo:t}}=this;if(t&&e){let i=!1;t.format.choiceList&&t.format.choiceList.forEach((t=>{t.toUpperCase()===e.toUpperCase()&&(this.templateOptions.format=t,i=!0)})),i||(this.templateOptions.format=t.format.defaultValue,I.warn(k)),this.scheduleRender()}})),r(this,"templateOptions.layout",(e=>{const{viewModel:{templatesInfo:t}}=this;if(t&&e){this._layoutTabSelected=!E(e);let i=!this._layoutTabSelected;i||t.layout.choiceList&&t.layout.choiceList.forEach((t=>{t.toUpperCase()===e.toUpperCase()&&(this.templateOptions.layout=t,i=!0)})),i||(this.templateOptions.layout=t.layout.defaultValue,I.warn(S));const a=this.viewModel.effectiveTemplateCustomTextElements[this.templateOptions.layout];this.templateOptions.customTextElements=a?n(a):null,this.scheduleRender()}})),r(this,"templateOptions.dpi",(e=>{e<=0?this.templateOptions.dpi=1:this.scheduleRender()})),r(this,"viewModel.view.scale",(e=>{const{scale:t,scaleEnabled:i}=this.templateOptions;i&&t||(this.templateOptions.scale=e)}))]);const{height:e,width:t}=this.templateOptions;this.templateOptions.width=t||800,this.templateOptions.height=e||1100;const i=setTimeout((()=>{this._awaitingServerResponse=!0,this.scheduleRender()}),500);this.viewModel.load().then((()=>clearTimeout(i)))}render(){const{attributionEnabled:e,author:t,copyright:i,dpi:a,format:n,height:s,layout:o,legendEnabled:l,scaleEnabled:r,scale:p,width:d}=this.templateOptions,c="ready"!==this.get("viewModel.state"),u=this.renderTitleOrFileNameSection(),{includeDefaultTemplates:h,messages:m,viewModel:_}=this,v=this.get("viewModel.templatesInfo.format.choiceList")||[],y=v.length>0?v.map((e=>T("option",{key:e,selected:e===n,value:e},e.toUpperCase()))):T("option",{key:"format-default-option"},m.formatDefaultOption),g=T("div",{class:C.formSectionContainer},T("label",null,m.fileFormatTitle,T("select",{class:C.select,onchange:this._updateFromOption,"data-target-property":"format",bind:this},y))),f=this.get("viewModel.templatesInfo.layout.choiceList")||[],w=f.length>0?f.map((e=>{const t=e===o,i=m[e]||e;return T("option",{key:e,selected:t,value:e},i)})):T("option",{key:"layout-default-option"},m.layoutDefaultOption),O=T("div",{class:C.formSectionContainer},T("label",null,m.layoutTitle,T("select",{class:C.select,onchange:this._updateFromOption,"data-target-property":"layout",bind:this},w))),L=T("div",{class:C.formSectionContainer},T("label",null,m.dpi,T("input",{type:"number",class:this.classes(C.inputText,C.input),"data-input-name":"dpi",onchange:this._handleDPIChange,value:`${a}`,min:"1",tabIndex:0,bind:this}))),I=T("div",{class:this.classes(C.scaleInfoContainer,C.formSectionContainer)},T("label",null,T("input",{"data-option-name":"scaleEnabled",checked:r,type:"checkbox",tabIndex:0,onchange:this._toggleInputValue,bind:this}),m.scale),T("div",{class:C.scaleInputContainer},T("input",{"aria-label":m.scaleLabel,"aria-valuenow":`${p}`,role:"spinbutton",type:"number",class:this.classes(C.inputText,C.input,C.scaleInput),tabIndex:0,"data-input-name":"scale",onchange:this._updateInputValue,disabled:!r,value:`${p}`,bind:this}),T("button",{type:"button","aria-label":m.reset,class:this.classes(C.widgetButton,C.refreshButton,C.iconRefresh),tabIndex:0,onclick:this._resetToCurrentScale,bind:this}))),S=this._advancedOptionsVisibleForLayout?T("div",{"aria-labelledby":`${this.id}__advancedOptionsForLayout`,class:C.advancedOptionsContainer},I,T("div",{class:this.classes(C.authorInfoContainer,C.formSectionContainer)},T("label",null,m.author,T("input",{type:"text",value:t,class:this.classes(C.inputText,C.input),tabIndex:0,"data-input-name":"author",onchange:this._updateInputValue,bind:this}))),T("div",{class:this.classes(C.copyrightInfoContainer,C.formSectionContainer)},T("label",null,m.copyright,T("input",{type:"text",class:this.classes(C.inputText,C.input),tabIndex:0,value:i,"data-input-name":"copyright",onchange:this._updateInputValue,bind:this}))),L,T("div",{class:this.classes(C.legendInfoContainer,C.formSectionContainer)},T("label",null,T("input",{type:"checkbox","data-option-name":"legendEnabled",tabIndex:0,checked:l,onchange:this._toggleInputValue,bind:this}),m.legend)),this.renderCustomTextElementSection()):null,k=this._advancedOptionsVisibleForMapOnly?T("div",{"aria-labelledby":`${this.id}__advancedOptionsForMapOnly`,class:C.advancedOptionsContainer},I,L,T("div",{class:C.formSectionContainer},T("label",null,T("input",{"data-option-name":"attributionEnabled",type:"checkbox",onchange:this._toggleInputValue,tabIndex:0,checked:e,bind:this}),m.attribution)),this.renderCustomTextElementSection()):null,F=this._layoutTabSelected?T("section",{key:"geoscene-print__layoutContent",id:`${this.id}__layoutContent`,"aria-labelledby":`${this.id}__layoutTab`,class:C.layoutSection,role:"tabpanel","aria-selected":this._layoutTabSelected.toString()},T("div",{class:C.panelContainer},u,O,this._layoutTabSelected?g:null),T("div",{class:this.classes(C.panelContainer,C.advancedOptionsSection)},T("button",{"aria-label":m.advancedOptions,"aria-expanded":this._advancedOptionsVisibleForLayout?"true":"false",class:C.advancedOptionsButton,onclick:this._showAdvancedOptions,bind:this,type:"button"},T("div",{class:C.advancedOptionsButtonContainer},T("span",{"aria-hidden":"true",class:this.classes(C.iconRightTriangleArrow,C.advancedOptionsButtonIconClosed)}),T("span",{"aria-hidden":"true",class:this.classes(C.iconLeftTriangleArrow,C.advancedOptionsButtonIconClosed_RTL)}),T("span",{"aria-hidden":"true",class:this.classes(C.iconDownArrow,C.advancedOptionsButtonIconOpened)}),T("span",{class:C.advancedOptionsButtonTitle},m.advancedOptions))),S)):T("section",{key:"geoscene-print__mapOnlyContent",id:`${this.id}__mapOnlyContent`,"aria-selected":(!this._layoutTabSelected).toString(),"aria-labelledby":`${this.id}__mapOnlyTab`,class:C.mapOnlySection,role:"tabpanel"},T("div",{class:C.panelContainer},u,this._layoutTabSelected?null:g,T("div",{class:this.classes(C.sizeContainer,C.formSectionContainer)},T("div",{class:C.widthContainer},T("label",null,m.width,T("input",{type:"number",class:this.classes(C.inputText,C.input),"data-input-name":"width",onchange:this._updateInputValue,value:`${d}`,tabIndex:0,bind:this}))),T("div",{class:C.heightContainer},T("label",null,m.height,T("input",{type:"number",class:this.classes(C.inputText,C.input),"data-input-name":"height",onchange:this._updateInputValue,value:`${s}`,tabIndex:0,bind:this}))),T("button",{type:"button","aria-label":m.swap,class:this.classes(C.widgetButton,C.swapButton,C.iconSwap),onclick:this._switchInput,tabIndex:0,bind:this})),T("div",{class:this.classes(C.panelContainer,C.advancedOptionsSection)},T("button",{"aria-label":m.advancedOptions,"aria-expanded":this._advancedOptionsVisibleForMapOnly?"true":"false",type:"button",class:C.advancedOptionsButton,onclick:this._showAdvancedOptions,bind:this},T("div",{class:C.advancedOptionsButtonContainer},T("span",{"aria-hidden":"true",class:this.classes(C.iconRightTriangleArrow,C.advancedOptionsButtonIconClosed)}),T("span",{"aria-hidden":"true",class:this.classes(C.iconLeftTriangleArrow,C.advancedOptionsButtonIconClosed_RTL)}),T("span",{"aria-hidden":"true",class:this.classes(C.iconDownArrow,C.advancedOptionsButtonIconOpened)}),T("span",{class:C.advancedOptionsButtonTitle},m.advancedOptions))),k))),M=this.exportedLinks.toArray(),E=this._renderExportedLink(M),V={[C.buttonDisabled]:c||!o&&!n},B=null!=this.get("view")&&"2d"!==this.get("view.type"),A=T("div",{class:C.panelError},B?m.sceneViewError:m.serviceError),P=T("div",null,T("ul",{class:C.layoutTabList,role:"tablist",onclick:this._toggleLayoutPanel,onkeydown:this._handleLayoutPanelKeyDown,bind:this},T("li",{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,id:`${this.id}__layoutTab`,"data-tab-id":x.layout,class:C.layoutTab,role:"tab",tabIndex:0,"aria-selected":`${this._layoutTabSelected}`},m.layoutTab),T("li",{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,id:`${this.id}__mapOnlyTab`,"data-tab-id":x.mapOnly,class:C.layoutTab,role:"tab",tabIndex:0,"aria-selected":`${!this._layoutTabSelected}`},m.mapOnlyTab)),F,T("button",{"aria-label":m.exportDescription,type:"button",class:this.classes(C.printButton,C.button,V),disabled:c,tabIndex:0,onclick:this._handlePrintMap,bind:this},m.export),h&&_.defaultTemplates.length>0?this.renderTemplateSectionTrigger():null,T("div",{class:C.exportedFilesContainer,afterUpdate:this._scrollExportIntoView,bind:this},T(b,{class:C.exportedFilesTitle,level:this.headingLevel},m.exportText),M.length>0?null:T("div",null,T("div",null,m.exportHint)),E)),D=T("div",{class:C.printWidgetContainer},T("header",{class:C.headerTitle},m.export),this.error||B||!this.view?A:P),N="initializing"===this.get("viewModel.state")?this._renderLoader():D;return T("div",{afterCreate:this._handleRootAfterCreate,bind:this,class:this.classes(C.base,C.widget,C.panel)},N)}renderTemplateSectionTrigger(){const{messages:e,_templateListPopover:t}=this,i=t.open;return T("button",{afterCreate:e=>this._selectTemplateNode=e,"aria-controls":i?`${this.id}__template-selection`:"","aria-label":e.selectTemplateDescription,"aria-pressed":i.toString(),class:this.classes(C.button,C.buttonTertiary,C.templateButton),onclick:this.handleSelectTemplateClick,title:e.selectTemplateDescription,type:"button"},e.selectTemplate)}renderCustomTextElementSection(){const{templateOptions:{customTextElements:e}}=this;return e?T("div",{class:C.formSectionContainer,key:"custom-text-elements"},e.map((e=>{const[t,i]=Object.entries(e)[0];return"date"===t?null:T("label",{key:t},t,T("input",{bind:this,class:this.classes(C.inputText,C.input),"data-input-custom":!0,"data-input-name":t,onchange:this._updateInputValue,type:"text",value:i}))}))):null}renderTemplateList(){const{messages:e,messagesCommon:t,viewModel:i}=this,{defaultTemplates:a}=i,n=e.selectTemplateDescription,s=`${this.id}__template-selection`;return T("div",{class:this.classes(C.templateList,C.widget,C.panel),id:s},T(b,{class:C.menuHeader,level:this.headingLevel},e.selectTemplate),T("div",{class:C.templateListScroller},T("ul",{afterCreate:this.handleTemplateListCreation,"aria-activedescendant":`${this.id}__template-item--${this._focusedTemplateIndex}`,"aria-label":n,class:C.menuList,key:"templates",onblur:this.handleTemplateChildBlur,onclick:this.handleTemplateListClick,onkeydown:this.handleTemplateListKeyDown,role:"listbox",tabIndex:0,title:n},a.toArray().map(((t,i)=>{const{description:a}=t,n=i===this._focusedTemplateIndex,s=t.label;return T("li",{"aria-label":a,class:this.classes(C.menuItem,{[C.menuItemFocus]:n}),"data-template":t,id:`${this.id}__template-item--${i}`,key:s,title:a},E(s)?e.mapOnlyTab:s)})))),T("div",{class:C.templateListFooter},T("button",{type:"button",class:this.classes(C.button,C.buttonSecondary),onblur:this.handleTemplateChildBlur,onclick:this.handleCloseTemplateSelection},t.done)))}applyTemplate(e){var t;const{format:i,layout:a,layoutOptions:n}=e,{templateOptions:s}=this;this._templateListPopover.open=!1,this._toggleTab("map-only"===a?x.mapOnly:x.layout,!1),i&&(s.format=i),a&&(s.layout=a),this._focusedTemplateIndex=null,s.legendEnabled=null!=(t=null==n?void 0:n.legend)?t:s.legendEnabled,this.handleCloseTemplateSelection()}renderTitleOrFileNameSection(){const{templateOptions:e,messages:t}=this;let i,a,n,s;return this._layoutTabSelected?(i=t.title,a=t.titlePlaceHolder,n=e.title,s="title"):(i=t.fileName,a=t.fileNamePlaceHolder,n=e.fileName,s="fileName"),T("div",{class:C.formSectionContainer,key:s},T("label",null,i,T("input",{type:"text",tabIndex:0,placeholder:a,class:this.classes(C.inputText,C.input),value:n,"data-input-name":s,onchange:this._updateInputValue,bind:this})))}_handleRootAfterCreate(e){this._rootNode=e,this.own(i(e,"scroll",(()=>{this._templateListPopover.open&&this.handleCloseTemplateSelection()})))}_focusOnTabChange(e){if(!this._activeTabFocusRequested)return;const t=e.getAttribute("data-tab-id");("layoutTab"===t&&this._layoutTabSelected||"mapOnlyTab"===t&&!this._layoutTabSelected)&&(e.focus(),this._activeTabFocusRequested=!1)}_renderLoader(){const e={[C.loader]:this._awaitingServerResponse};return T("div",{class:this.classes(e),key:"loader"})}_createFileLink(e,t){const i=t||this.messages.untitled,a=e.format.toLowerCase(),n=a.indexOf("png")>-1?"png":a,s=i+n;return void 0!==this._exportedFileNameMap[s]?this._exportedFileNameMap[s]++:this._exportedFileNameMap[s]=0,new h({name:i,extension:n,count:this._exportedFileNameMap[s]})}_resetToCurrentScale(){this.templateOptions.scale=this.viewModel.view.scale}_updateCustomTextElementValue(e,t,i){e.find((e=>{const[i]=Object.entries(e)[0];return i===t}))[t]=i}_updateInputValue(e){const t=e.target,i=t.getAttribute("data-input-name"),a=!!t["data-input-custom"],{templateOptions:n}=this;if(a)return void this._updateCustomTextElementValue(n.customTextElements,i,t.value);let s;if("number"===t.type){if(!M(t.valueAsNumber)){const e=n[i];return void(t.value=`${e}`)}s=t.valueAsNumber}else s=t.value;n[i]=s}_handleDPIChange(e){this._updateInputValue(e);const t=e.currentTarget.valueAsNumber,{height:i,width:a}=F(t),{templateOptions:n}=this;n.height=i,n.width=a}_handlePrintMap(){this._pendingExportScroll=!0;const{templateOptions:e}=this,t=this.viewModel.toPrintTemplate(e),i=this._layoutTabSelected?t.layoutOptions.titleText:e.fileName,a=this._createFileLink(t,i);this.exportedLinks.add(a),this.emit("submit",{link:a}),this.viewModel.print(t).then((e=>{a.set({url:e&&e.url,state:"ready"})})).catch((e=>{a.set({error:e,state:"error"})})).then((()=>{this.emit("complete",{link:a}),this.scheduleRender()}))}_updateFromOption(e){const t=e.target,i=t.selectedOptions?t.selectedOptions.item(0).value:t.options[t.selectedIndex].value,a=t.getAttribute("data-target-property");this.templateOptions[a]=i}_switchInput(){[this.templateOptions.width,this.templateOptions.height]=[this.templateOptions.height,this.templateOptions.width]}_showAdvancedOptions(){this._layoutTabSelected?this._advancedOptionsVisibleForLayout=!this._advancedOptionsVisibleForLayout:this._advancedOptionsVisibleForMapOnly=!this._advancedOptionsVisibleForMapOnly}_scrollExportIntoView(){if(this._pendingExportScroll){this._pendingExportScroll=!1;const{_rootNode:e,_rootNode:{clientHeight:t,scrollHeight:i}}=this,a=i-t;a>0&&(e.scrollTop=a)}}_toggleInputValue(e){const t=e.target,i=t.getAttribute("data-option-name");this.templateOptions[i]=t.checked,"scaleEnabled"===i&&(this.templateOptions[i]||this._resetToCurrentScale())}_renderExportedLink(e){const t=this.messages;return e.map((e=>{const{error:i,url:a,formattedName:n,state:s}=e,r="error"===s,p="pending"===s,d="ready"===s,c={[C.anchorDisabled]:p||r};let u=a||null;u&&(u=o(u));const h=l(a,location.href),m={[C.iconSpinner]:p,[C.rotate]:p,[C.iconDownload]:h&&d,[C.iconLaunchLink]:!h&&d,[C.iconError]:r,[C.exportedFileError]:r},_={[C.exportedFileError]:r};let b;b=p?t.pending:d?t.ready:t.errorMessage;const v=r?"print-task:cim-symbol-unsupported"===i.name?t.exportWebMapCIMError:t.exportWebMapError:"";return T("div",{"aria-label":b,class:C.exportedFile,"data-item":e,key:n,onclick:this._removeLink,title:v},T("a",{"aria-label":`${n}. ${t.linkReady}`,download:n,href:u,rel:"noreferrer",tabIndex:0,target:"_blank",class:this.classes(C.exportedFileLink,c)},T("span",{class:this.classes(m)}),T("span",{class:this.classes(C.exportedFileLinkTitle,_)},n)))}))}_toggleLayoutPanel(e){const t=e.target;this._toggleTab(t.getAttribute("data-tab-id"))}_toggleTab(e,t=!0){if(this._layoutTabSelected=e===x.layout,this._layoutTabSelected){const e=this.get("viewModel.templatesInfo.layout.choiceList");this.templateOptions.layout=e&&e[0]}else this.templateOptions.layout=O;t&&(this._activeTabFocusRequested=!0)}_handleLayoutPanelKeyDown(e){const t=a(e),i=e.target.getAttribute("data-tab-id");if(y(t))return this._toggleTab(i),e.preventDefault(),void e.stopPropagation();"ArrowLeft"!==t&&"ArrowRight"!==t||(this._toggleTab(i===x.layout?x.mapOnly:x.layout),e.preventDefault(),e.stopPropagation())}};e([p("viewModel.allowedFormats")],V.prototype,"allowedFormats",void 0),e([p("viewModel.allowedLayouts")],V.prototype,"allowedLayouts",void 0),e([p("viewModel.error")],V.prototype,"error",void 0),e([d({type:w})],V.prototype,"exportedLinks",void 0),e([p("viewModel.extraParameters")],V.prototype,"extraParameters",void 0),e([d()],V.prototype,"headingLevel",void 0),e([d()],V.prototype,"iconClass",void 0),e([p("viewModel.includeDefaultTemplates")],V.prototype,"includeDefaultTemplates",void 0),e([d({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],V.prototype,"label",void 0),e([d(),f("geoscene/widgets/Print/t9n/Print")],V.prototype,"messages",void 0),e([d(),f("geoscene/t9n/common")],V.prototype,"messagesCommon",void 0),e([p("viewModel.portal")],V.prototype,"portal",void 0),e([p("viewModel.printServiceUrl")],V.prototype,"printServiceUrl",void 0),e([p("viewModel.templateCustomTextElements")],V.prototype,"templateCustomTextElements",void 0),e([d({type:_})],V.prototype,"templateOptions",void 0),e([p("viewModel.view")],V.prototype,"view",void 0),e([d({type:m})],V.prototype,"viewModel",void 0),V=e([c("geoscene.widgets.Print")],V);const B=V;export{B as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{createScreenPoint as r}from"../core/screenUtils.js";import{whenTrue as t,watch as s}from"../core/watchUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import c from"./ScaleBar/ScaleBarViewModel.js";import"./support/widgetUtils.js";import{messageBundle as d}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as p}from"./support/jsxFactory.js";const u={base:"esri-scale-bar esri-widget",labelContainer:"esri-scale-bar__label-container",rulerLabelContainer:"esri-scale-bar__label-container--ruler",lineLabelContainer:"esri-scale-bar__label-container--line",topLabelContainer:"esri-scale-bar__label-container--top",bottomLabelContainer:"esri-scale-bar__label-container--bottom",label:"esri-scale-bar__label",line:"esri-scale-bar__line",topLine:"esri-scale-bar__line--top",bottomLine:"esri-scale-bar__line--bottom",ruler:"esri-scale-bar__ruler",rulerBlock:"esri-scale-bar__ruler-block",barContainer:"esri-scale-bar__bar-container",rulerBarContainer:"esri-scale-bar__bar-container--ruler",lineBarContainer:"esri-scale-bar__bar-container--line",disabled:"esri-disabled"};function b(e){return 2*e}let m=class extends n{constructor(e,r){super(e,r),this.label=void 0,this.messages=null,this.unit="non-metric",this.view=null,this.viewModel=new c}initialize(){this.own([t(this,"view.stationary",(()=>this.scheduleRender())),s(this,["view.center","view.scale","view.zoom"],(()=>{this.view.stationary&&this.scheduleRender()}))])}set style(e){const r="dual"===this.unit?"line":e;this._set("style",r)}castStyle(e){return"line"===e?e:"ruler"}castUnit(e){return"metric"===e||"dual"===e?e:"non-metric"}render(){const e="disabled"===this.get("viewModel.state"),r={[u.disabled]:e};let t,s;if(!e){const{unit:e,style:r}=this,i="metric"===e||"dual"===e,a=50;if("non-metric"===e||"dual"===e){const e=this.viewModel.getScaleBarProperties(a,"non-metric");e&&(s="ruler"===r?this._renderRuler(e):this._renderLine(e,"bottom"))}if(i){const e=this.viewModel.getScaleBarProperties(a,"metric");e&&(t="ruler"===r?this._renderRuler(e):this._renderLine(e,"top"))}}return p("div",{afterCreate:this._handleRootCreateOrUpdate,afterUpdate:this._handleRootCreateOrUpdate,bind:this,class:this.classes(u.base,r)},t,s)}_renderRuler(e){const r=b(Math.round(e.length)),{messages:t}=this,s=t[e.unit]||t.unknownUnit,i=`${b(e.value)} ${s}`;return p("div",{class:this.classes(u.barContainer,u.rulerBarContainer),key:"esri-scale-bar__ruler"},p("div",{class:u.ruler,styles:{width:`${r}px`}},p("div",{class:u.rulerBlock}),p("div",{class:u.rulerBlock}),p("div",{class:u.rulerBlock}),p("div",{class:u.rulerBlock})),p("div",{class:this.classes(u.labelContainer,u.rulerLabelContainer)},p("div",{class:u.label},"0"),p("div",{class:u.label},i)))}_renderLine(e,r){const{messages:t}=this,s=t[e.unit]||t.unknownUnit,i=`${b(e.value)} ${s}`,a={[u.topLabelContainer]:"top"===r,[u.bottomLabelContainer]:"bottom"===r},o=p("div",{class:this.classes(u.labelContainer,u.lineLabelContainer,a),key:"esri-scale-bar__label"},p("div",{class:u.label},i)),l={[u.topLine]:"top"===r,[u.bottomLine]:"bottom"===r},n=b(Math.round(e.length)),c=p("div",{class:this.classes(u.line,l),key:"esri-scale-bar__line",styles:{width:`${n}px`}});return p("div",{class:this.classes(u.barContainer,u.lineBarContainer),key:"esri-scale-bar__line-container"},[c,o])}_handleRootCreateOrUpdate(e){const t=this.viewModel;if(!t)return;const s=e.getBoundingClientRect(),i=s.left+window.pageXOffset,a=s.top+window.pageYOffset,o=r(i,a);(o.x!==t.scaleComputedFrom.x||o.y!==t.scaleComputedFrom.y)&&(t.scaleComputedFrom=o)}};e([o({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],m.prototype,"label",void 0),e([o(),d("geoscene/widgets/ScaleBar/t9n/ScaleBar")],m.prototype,"messages",void 0),e([o()],m.prototype,"style",null),e([a("style")],m.prototype,"castStyle",null),e([o()],m.prototype,"unit",void 0),e([a("unit")],m.prototype,"castUnit",null),e([i("viewModel.view")],m.prototype,"view",void 0),e([o()],m.prototype,"viewModel",void 0),m=e([l("geoscene.widgets.ScaleBar")],m);const h=m;export{h as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{createScreenPoint as r}from"../core/screenUtils.js";import{whenTrue as t,watch as s}from"../core/watchUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import c from"./ScaleBar/ScaleBarViewModel.js";import"./support/widgetUtils.js";import{messageBundle as d}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as p}from"./support/jsxFactory.js";const u={base:"geoscene-scale-bar geoscene-widget",labelContainer:"geoscene-scale-bar__label-container",rulerLabelContainer:"geoscene-scale-bar__label-container--ruler",lineLabelContainer:"geoscene-scale-bar__label-container--line",topLabelContainer:"geoscene-scale-bar__label-container--top",bottomLabelContainer:"geoscene-scale-bar__label-container--bottom",label:"geoscene-scale-bar__label",line:"geoscene-scale-bar__line",topLine:"geoscene-scale-bar__line--top",bottomLine:"geoscene-scale-bar__line--bottom",ruler:"geoscene-scale-bar__ruler",rulerBlock:"geoscene-scale-bar__ruler-block",barContainer:"geoscene-scale-bar__bar-container",rulerBarContainer:"geoscene-scale-bar__bar-container--ruler",lineBarContainer:"geoscene-scale-bar__bar-container--line",disabled:"geoscene-disabled"};function b(e){return 2*e}let m=class extends n{constructor(e,r){super(e,r),this.label=void 0,this.messages=null,this.unit="non-metric",this.view=null,this.viewModel=new c}initialize(){this.own([t(this,"view.stationary",(()=>this.scheduleRender())),s(this,["view.center","view.scale","view.zoom"],(()=>{this.view.stationary&&this.scheduleRender()}))])}set style(e){const r="dual"===this.unit?"line":e;this._set("style",r)}castStyle(e){return"line"===e?e:"ruler"}castUnit(e){return"metric"===e||"dual"===e?e:"non-metric"}render(){const e="disabled"===this.get("viewModel.state"),r={[u.disabled]:e};let t,s;if(!e){const{unit:e,style:r}=this,i="metric"===e||"dual"===e,a=50;if("non-metric"===e||"dual"===e){const e=this.viewModel.getScaleBarProperties(a,"non-metric");e&&(s="ruler"===r?this._renderRuler(e):this._renderLine(e,"bottom"))}if(i){const e=this.viewModel.getScaleBarProperties(a,"metric");e&&(t="ruler"===r?this._renderRuler(e):this._renderLine(e,"top"))}}return p("div",{afterCreate:this._handleRootCreateOrUpdate,afterUpdate:this._handleRootCreateOrUpdate,bind:this,class:this.classes(u.base,r)},t,s)}_renderRuler(e){const r=b(Math.round(e.length)),{messages:t}=this,s=t[e.unit]||t.unknownUnit,i=`${b(e.value)} ${s}`;return p("div",{class:this.classes(u.barContainer,u.rulerBarContainer),key:"geoscene-scale-bar__ruler"},p("div",{class:u.ruler,styles:{width:`${r}px`}},p("div",{class:u.rulerBlock}),p("div",{class:u.rulerBlock}),p("div",{class:u.rulerBlock}),p("div",{class:u.rulerBlock})),p("div",{class:this.classes(u.labelContainer,u.rulerLabelContainer)},p("div",{class:u.label},"0"),p("div",{class:u.label},i)))}_renderLine(e,r){const{messages:t}=this,s=t[e.unit]||t.unknownUnit,i=`${b(e.value)} ${s}`,a={[u.topLabelContainer]:"top"===r,[u.bottomLabelContainer]:"bottom"===r},o=p("div",{class:this.classes(u.labelContainer,u.lineLabelContainer,a),key:"geoscene-scale-bar__label"},p("div",{class:u.label},i)),l={[u.topLine]:"top"===r,[u.bottomLine]:"bottom"===r},n=b(Math.round(e.length)),c=p("div",{class:this.classes(u.line,l),key:"geoscene-scale-bar__line",styles:{width:`${n}px`}});return p("div",{class:this.classes(u.barContainer,u.lineBarContainer),key:"geoscene-scale-bar__line-container"},[c,o])}_handleRootCreateOrUpdate(e){const t=this.viewModel;if(!t)return;const s=e.getBoundingClientRect(),i=s.left+window.pageXOffset,a=s.top+window.pageYOffset,o=r(i,a);(o.x!==t.scaleComputedFrom.x||o.y!==t.scaleComputedFrom.y)&&(t.scaleComputedFrom=o)}};e([o({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],m.prototype,"label",void 0),e([o(),d("geoscene/widgets/ScaleBar/t9n/ScaleBar")],m.prototype,"messages",void 0),e([o()],m.prototype,"style",null),e([a("style")],m.prototype,"castStyle",null),e([o()],m.prototype,"unit",void 0),e([a("unit")],m.prototype,"castUnit",null),e([i("viewModel.view")],m.prototype,"view",void 0),e([o()],m.prototype,"viewModel",void 0),m=e([l("geoscene.widgets.ScaleBar")],m);const h=m;export{h as default};