@geoscene/core 4.23.9 → 4.23.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/geoscene/core/workers/chunks/6f827a32646bab0a8777.js +1 -1
- package/assets/geoscene/core/workers/chunks/7f91f70ef69a7e24f8e2.js +1 -1
- package/assets/geoscene/core/workers/chunks/85fde4b92b0c212f5ff6.js +1 -1
- package/assets/geoscene/core/workers/chunks/9f458f10dc65b185f66e.js +1 -1
- package/assets/geoscene/themes/base/_Overlay.scss +2 -2
- package/assets/geoscene/themes/base/_OverlayItem.scss +12 -12
- package/assets/geoscene/themes/base/_Ui.scss +32 -32
- package/assets/geoscene/themes/base/_View.scss +31 -31
- package/assets/geoscene/themes/base/_animation.scss +6 -6
- package/assets/geoscene/themes/base/_core.scss +2 -2
- package/assets/geoscene/themes/base/_mixins.scss +43 -43
- package/assets/geoscene/themes/base/icons/style.css +190 -190
- package/assets/geoscene/themes/base/icons/style.scss +376 -376
- package/assets/geoscene/themes/base/icons/variables.scss +187 -187
- package/assets/geoscene/themes/base/widgets/_AreaMeasurement2D.scss +4 -4
- package/assets/geoscene/themes/base/widgets/_AreaMeasurement3D.scss +4 -4
- package/assets/geoscene/themes/base/widgets/_Attachments.scss +48 -48
- package/assets/geoscene/themes/base/widgets/_Attribution.scss +9 -9
- package/assets/geoscene/themes/base/widgets/_BasemapGallery.scss +39 -39
- package/assets/geoscene/themes/base/widgets/_BasemapLayerList.scss +100 -100
- package/assets/geoscene/themes/base/widgets/_BasemapToggle.scss +22 -22
- package/assets/geoscene/themes/base/widgets/_BinaryColorSizeSlider.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_Bookmarks.scss +48 -48
- package/assets/geoscene/themes/base/widgets/_BuildingDisciplinesTree.scss +3 -3
- package/assets/geoscene/themes/base/widgets/_BuildingExplorer.scss +4 -4
- package/assets/geoscene/themes/base/widgets/_BuildingLevelPicker.scss +4 -4
- package/assets/geoscene/themes/base/widgets/_BuildingPhasePicker.scss +4 -4
- package/assets/geoscene/themes/base/widgets/_ButtonMenu.scss +21 -21
- package/assets/geoscene/themes/base/widgets/_ClassedColorSlider.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_ClassedSizeSlider.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_ColorPicker.scss +3 -3
- package/assets/geoscene/themes/base/widgets/_ColorSizeSlider.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_ColorSlider.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_Compass.scss +3 -3
- package/assets/geoscene/themes/base/widgets/_CoordinateConversion.scss +51 -51
- package/assets/geoscene/themes/base/widgets/_DatePicker.scss +34 -34
- package/assets/geoscene/themes/base/widgets/_Daylight.scss +63 -63
- package/assets/geoscene/themes/base/widgets/_DirectLineMeasurement3D.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_Directions.scss +98 -98
- package/assets/geoscene/themes/base/widgets/_DistanceMeasurement2D.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_Editor.scss +56 -56
- package/assets/geoscene/themes/base/widgets/_ElevationProfile.scss +19 -19
- package/assets/geoscene/themes/base/widgets/_Expand.scss +58 -58
- package/assets/geoscene/themes/base/widgets/_Feature.scss +13 -13
- package/assets/geoscene/themes/base/widgets/_FeatureContent.scss +24 -24
- package/assets/geoscene/themes/base/widgets/_FeatureForm.scss +36 -36
- package/assets/geoscene/themes/base/widgets/_FeatureMedia.scss +17 -17
- package/assets/geoscene/themes/base/widgets/_FeatureTable.scss +26 -26
- package/assets/geoscene/themes/base/widgets/_FeatureTemplates.scss +9 -9
- package/assets/geoscene/themes/base/widgets/_FloorFilter.scss +93 -93
- package/assets/geoscene/themes/base/widgets/_Grid.scss +6 -6
- package/assets/geoscene/themes/base/widgets/_HeatmapSlider.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_Histogram.scss +10 -10
- package/assets/geoscene/themes/base/widgets/_HistogramRangeSlider.scss +27 -27
- package/assets/geoscene/themes/base/widgets/_IdentityForm.scss +5 -5
- package/assets/geoscene/themes/base/widgets/_IdentityModal.scss +13 -13
- package/assets/geoscene/themes/base/widgets/_ItemList.scss +18 -18
- package/assets/geoscene/themes/base/widgets/_LayerList.scss +89 -89
- package/assets/geoscene/themes/base/widgets/_Legend.scss +95 -95
- package/assets/geoscene/themes/base/widgets/_LineOfSight.scss +9 -9
- package/assets/geoscene/themes/base/widgets/_NavigationToggle.scss +14 -14
- package/assets/geoscene/themes/base/widgets/_OpacitySlider.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_Popup.scss +167 -167
- package/assets/geoscene/themes/base/widgets/_Print.scss +52 -52
- package/assets/geoscene/themes/base/widgets/_ScaleBar.scss +28 -28
- package/assets/geoscene/themes/base/widgets/_ScaleRangeSlider.scss +29 -29
- package/assets/geoscene/themes/base/widgets/_Search.scss +50 -50
- package/assets/geoscene/themes/base/widgets/_SearchResultRenderer.scss +7 -7
- package/assets/geoscene/themes/base/widgets/_SelectionToolbar.scss +3 -3
- package/assets/geoscene/themes/base/widgets/_ShadowCast.scss +17 -17
- package/assets/geoscene/themes/base/widgets/_SizeSlider.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_Sketch.scss +24 -24
- package/assets/geoscene/themes/base/widgets/_Slice.scss +5 -5
- package/assets/geoscene/themes/base/widgets/_Slider.scss +70 -70
- package/assets/geoscene/themes/base/widgets/_SnappingControls.scss +16 -16
- package/assets/geoscene/themes/base/widgets/_Spinner.scss +12 -12
- package/assets/geoscene/themes/base/widgets/_Swipe.scss +15 -15
- package/assets/geoscene/themes/base/widgets/_TableList.scss +57 -57
- package/assets/geoscene/themes/base/widgets/_TimePicker.scss +3 -3
- package/assets/geoscene/themes/base/widgets/_TimeSlider.scss +28 -28
- package/assets/geoscene/themes/base/widgets/_UtilityNetworkTrace.scss +8 -8
- package/assets/geoscene/themes/base/widgets/_Weather.scss +2 -2
- package/assets/geoscene/themes/base/widgets/_Widget.scss +95 -95
- package/assets/geoscene/themes/base/widgets/_Zoom.scss +8 -8
- package/assets/geoscene/themes/dark/main.css +1 -1
- package/assets/geoscene/themes/dark/main.scss +3 -3
- package/assets/geoscene/themes/dark-blue/main.css +1 -1
- package/assets/geoscene/themes/dark-blue/main.scss +3 -3
- package/assets/geoscene/themes/dark-green/main.css +1 -1
- package/assets/geoscene/themes/dark-green/main.scss +3 -3
- package/assets/geoscene/themes/dark-purple/main.css +1 -1
- package/assets/geoscene/themes/dark-purple/main.scss +3 -3
- package/assets/geoscene/themes/dark-red/main.css +1 -1
- package/assets/geoscene/themes/dark-red/main.scss +3 -3
- package/assets/geoscene/themes/light/main.css +1 -1
- package/assets/geoscene/themes/light/main.scss +2 -2
- package/assets/geoscene/themes/light/view.css +1 -1
- package/assets/geoscene/themes/light-blue/main.css +1 -1
- package/assets/geoscene/themes/light-blue/main.scss +3 -3
- package/assets/geoscene/themes/light-green/main.css +1 -1
- package/assets/geoscene/themes/light-green/main.scss +3 -3
- package/assets/geoscene/themes/light-purple/main.css +1 -1
- package/assets/geoscene/themes/light-purple/main.scss +3 -3
- package/assets/geoscene/themes/light-red/main.css +1 -1
- package/assets/geoscene/themes/light-red/main.scss +3 -3
- package/identity/IdentityForm.js +1 -1
- package/identity/IdentityManagerBase.js +1 -1
- package/identity/IdentityModal.js +1 -1
- package/interfaces.d.ts +1 -1
- package/package.json +1 -1
- package/portal/schemas/definitions.js +1 -1
- package/portal/schemas/sceneLayerItem.js +1 -1
- package/support/basemapDefinitions.js +1 -1
- package/support/groundUtils.js +1 -1
- package/symbols/support/styleUtils.js +1 -1
- package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
- package/views/2d/layers/support/clusterUtils.js +1 -1
- package/views/2d/navigation/ZoomBox.js +1 -1
- package/views/3d/externalRenderers.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/BreakpointsOwner.js +1 -1
- package/views/DOMContainer.js +1 -1
- package/views/input/BrowserEventSource.js +1 -1
- package/views/overlay/LineOverlayItem.js +1 -1
- package/views/overlay/TextOverlayItem.js +1 -1
- package/views/overlay/ViewOverlay.js +1 -1
- package/views/ui/Component.js +1 -1
- package/views/ui/UI.js +1 -1
- package/views/webgl/context-util.js +1 -1
- package/widgets/AreaMeasurement2D.js +1 -1
- package/widgets/AreaMeasurement3D.js +1 -1
- package/widgets/Attachments.js +1 -1
- package/widgets/Attribution.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
- package/widgets/BasemapToggle.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
- package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
- package/widgets/BuildingExplorer.js +1 -1
- package/widgets/Compass.js +1 -1
- package/widgets/CoordinateConversion.js +1 -1
- package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
- package/widgets/Daylight.js +1 -1
- package/widgets/DirectLineMeasurement3D.js +1 -1
- package/widgets/Directions/support/resources.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/DistanceMeasurement2D.js +1 -1
- package/widgets/Editor/deprecationUtils.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/css.js +1 -1
- package/widgets/Expand.js +1 -1
- package/widgets/Feature/FeatureAttachments.js +1 -1
- package/widgets/Feature/FeatureContent.js +1 -1
- package/widgets/Feature/FeatureExpression.js +1 -1
- package/widgets/Feature/FeatureFields.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/Feature/support/FeatureElementInfo.js +1 -1
- package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
- package/widgets/Feature/support/featureUtils.js +1 -1
- package/widgets/Feature.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/AttachmentsColumn.js +1 -1
- package/widgets/FeatureTable/FieldColumn.js +1 -1
- package/widgets/FeatureTable/Grid/Column.js +1 -1
- package/widgets/FeatureTable/Grid/EditorColumn.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/FeatureTemplates/ItemList.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/FloorFilter.js +1 -1
- package/widgets/Fullscreen.js +1 -1
- package/widgets/Histogram.js +1 -1
- package/widgets/HistogramRangeSlider.js +1 -1
- package/widgets/Home.js +1 -1
- package/widgets/LayerList/ListItemPanel.js +1 -1
- package/widgets/LayerList.js +1 -1
- package/widgets/Legend/styles/Card.js +1 -1
- package/widgets/Legend/styles/Classic.js +1 -1
- package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
- package/widgets/Legend/styles/support/univariateUtils.js +1 -1
- package/widgets/Legend.js +1 -1
- package/widgets/LineOfSight.js +1 -1
- package/widgets/Locate.js +1 -1
- package/widgets/Measurement.js +1 -1
- package/widgets/NavigationToggle.js +1 -1
- package/widgets/Popup.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/ScaleBar.js +1 -1
- package/widgets/ScaleRangeSlider.js +1 -1
- package/widgets/Search/SearchResultRenderer.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/ShadowCast/css.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slice.js +1 -1
- package/widgets/Slider.js +1 -1
- package/widgets/Spinner.js +1 -1
- package/widgets/Swipe.js +1 -1
- package/widgets/TableList.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/Track.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/Weather/css.js +1 -1
- package/widgets/Widget.js +1 -1
- package/widgets/Zoom/IconButton.js +1 -1
- package/widgets/Zoom.js +1 -1
- package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ClassedColorSlider.js +1 -1
- package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSlider.js +1 -1
- package/widgets/smartMapping/HeatmapSlider.js +1 -1
- package/widgets/smartMapping/OpacitySlider.js +1 -1
- package/widgets/smartMapping/SizeSlider.js +1 -1
- package/widgets/support/ColorPicker.js +1 -1
- package/widgets/support/DatePicker.js +1 -1
- package/widgets/support/Heading.js +1 -1
- package/widgets/support/Popover.js +1 -1
- package/widgets/support/SelectionToolbar.js +1 -1
- package/widgets/support/SnappingControls.js +1 -1
- package/widgets/support/TimePicker.js +1 -1
- package/widgets/support/widgetThemeUtils.js +1 -1
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../chunks/tslib.es6.js";import s from"../../core/Accessor.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import"../../libs/maquette/projection.js";import{h as o}from"../../libs/maquette/h.js";import"../../libs/maquette/projector.js";let r=class extends s{constructor(t){super(t),this.startX=0,this.startY=0,this.endX=0,this.endY=0,this.width=1,this.color=[0,0,0,.5],this.visible=!0}get startPosition(){return[this.startX,this.startY]}set startPosition(t){this._set("startX",t[0]),this._set("startY",t[1])}get endPosition(){return[this.endX,this.endY]}set endPosition(t){this._set("endX",t[0]),this._set("endY",t[1])}get strokeStyle(){const t=this.color;return`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]})`}get lineCap(){return"round"}render(){const{height:t,left:s,top:e,width:i,x1:r,x2:n,y1:a,y2:p}=this._calculateCoordinates(h),l=`stroke: ${this.strokeStyle}; stroke-width: ${this.width}; stroke-linecap: ${this.lineCap};`;return o("div",{classes:{"
|
|
5
|
+
import{_ as t}from"../../chunks/tslib.es6.js";import s from"../../core/Accessor.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import"../../libs/maquette/projection.js";import{h as o}from"../../libs/maquette/h.js";import"../../libs/maquette/projector.js";let r=class extends s{constructor(t){super(t),this.startX=0,this.startY=0,this.endX=0,this.endY=0,this.width=1,this.color=[0,0,0,.5],this.visible=!0}get startPosition(){return[this.startX,this.startY]}set startPosition(t){this._set("startX",t[0]),this._set("startY",t[1])}get endPosition(){return[this.endX,this.endY]}set endPosition(t){this._set("endX",t[0]),this._set("endY",t[1])}get strokeStyle(){const t=this.color;return`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]})`}get lineCap(){return"round"}render(){const{height:t,left:s,top:e,width:i,x1:r,x2:n,y1:a,y2:p}=this._calculateCoordinates(h),l=`stroke: ${this.strokeStyle}; stroke-width: ${this.width}; stroke-linecap: ${this.lineCap};`;return o("div",{classes:{"geoscene-line-overlay-item":!0},styles:{left:s+"px",top:e+"px",width:i+"px",height:t+"px",visibility:this.visible?"visible":"hidden"}},[o("svg",{width:i,height:t},[o("line",{x1:r,y1:a,x2:n,y2:p,style:l})])])}renderCanvas(t){if(!this.visible)return;t.strokeStyle=this.strokeStyle,t.lineWidth=this.width,t.lineCap=this.lineCap;const s=this._calculateCoordinates(h);t.beginPath(),t.moveTo(s.left+s.x1,s.top+s.y1),t.lineTo(s.left+s.x2,s.top+s.y2),t.stroke()}_calculateCoordinates(t){const s=Math.min(this.startX,this.endX),e=Math.max(this.startX,this.endX),i=Math.min(this.startY,this.endY),o=Math.max(this.startY,this.endY),r=this.width;return t.left=s-r,t.top=i-r,t.width=e-s+2*r,t.height=Math.max(20,o-i+2*r),t.x1=this.startX-s+r,t.y1=this.startY-i+r,t.x2=this.endX-s+r,t.y2=this.endY-i+r,t}};t([e()],r.prototype,"startX",void 0),t([e()],r.prototype,"startY",void 0),t([e()],r.prototype,"endX",void 0),t([e()],r.prototype,"endY",void 0),t([e()],r.prototype,"startPosition",null),t([e()],r.prototype,"endPosition",null),t([e()],r.prototype,"width",void 0),t([e()],r.prototype,"color",void 0),t([e()],r.prototype,"visible",void 0),t([e({readOnly:!0})],r.prototype,"strokeStyle",null),r=t([i("geoscene.views.overlay.LineOverlayItem")],r);const h={left:0,top:0,width:0,height:0,x1:0,y1:0,x2:0,y2:0},n=r;export{n 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 e from"../../core/Accessor.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import"../../libs/maquette/projection.js";import{h as r}from"../../libs/maquette/h.js";import"../../libs/maquette/projector.js";const s={bottom:"
|
|
5
|
+
import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import"../../libs/maquette/projection.js";import{h as r}from"../../libs/maquette/h.js";import"../../libs/maquette/projector.js";const s={bottom:"geoscene-text-overlay-item-anchor-bottom","bottom-right":"geoscene-text-overlay-item-anchor-bottom-right","bottom-left":"geoscene-text-overlay-item-anchor-bottom-left",top:"geoscene-text-overlay-item-anchor-top","top-right":"geoscene-text-overlay-item-anchor-top-right","top-left":"geoscene-text-overlay-item-anchor-top-left",center:"geoscene-text-overlay-item-anchor-center",right:"geoscene-text-overlay-item-anchor-right",left:"geoscene-text-overlay-item-anchor-left"};let l=class extends e{constructor(t){super(t),this.x=0,this.y=0,this.text="-",this.fontSize=14,this.anchor="center",this.visible=!0,this.backgroundColor="rgba(0, 0, 0, 0.6)",this.textColor="white",this.textShadowColor=[0,0,0],this.textShadowSize=1}get position(){return[this.x,this.y]}set position(t){this._set("x",t[0]),this._set("y",t[1])}get padding(){return.5*this.fontSize}render(){return r("div",{classes:this._cssClasses(),styles:{left:Math.floor(this.x)+"px",top:Math.floor(this.y)+"px",visibility:this.visible?"visible":"hidden",fontSize:this.fontSize+"px",backgroundColor:this.backgroundColor,color:this.textColor,padding:this.padding+"px",borderRadius:this.padding+"px",textShadow:`0 0 ${this.textShadowSize}px rgb(${this.textShadowColor[0]}, ${this.textShadowColor[1]}, ${this.textShadowColor[2]})`}},[this.text])}renderCanvas(t){if(!this.visible)return;const e=t.font.replace(/^(.*?)px/,"");t.font=`${this.fontSize}px ${e}`;const o=this.padding,i=this.padding,r=t.measureText(this.text).width,s=this.fontSize,l=h[this.anchor];t.textAlign="center",t.textBaseline="middle";const n=r+2*o,a=s+2*o,x=this.x+l.x*n,c=this.y+l.y*a;this._roundedRect(t,x,c,n,a,i),t.fillStyle=this.backgroundColor,t.fill();const p=this.x+(l.x+.5)*n,d=this.y+(l.y+.5)*a;this._renderTextShadow(t,this.text,p,d),t.fillStyle=this.textColor,t.fillText(this.text,p,d)}_renderTextShadow(t,e,o,i){t.lineJoin="miter",t.fillStyle=`rgba(${this.textShadowColor[0]}, ${this.textShadowColor[1]}, ${this.textShadowColor[2]}, ${1/n.length})`;const r=this.textShadowSize;for(const[s,l]of n)t.fillText(e,o+r*s,i+r*l)}_roundedRect(t,e,o,i,r,s){t.beginPath(),t.moveTo(e,o+s),t.arcTo(e,o,e+s,o,s),t.lineTo(e+i-s,o),t.arcTo(e+i,o,e+i,o+s,s),t.lineTo(e+i,o+r-s),t.arcTo(e+i,o+r,e+i-s,o+r,s),t.lineTo(e+s,o+r),t.arcTo(e,o+r,e,o+r-s,s),t.closePath()}_cssClasses(){const t={"geoscene-text-overlay-item":!0};for(const e in s)t[s[e]]=this.anchor===e;return t}};t([o()],l.prototype,"x",void 0),t([o()],l.prototype,"y",void 0),t([o()],l.prototype,"position",null),t([o()],l.prototype,"text",void 0),t([o()],l.prototype,"fontSize",void 0),t([o()],l.prototype,"anchor",void 0),t([o()],l.prototype,"visible",void 0),t([o()],l.prototype,"padding",null),l=t([i("geoscene.views.overlay.TextOverlayItem")],l);const h={bottom:{x:-.5,y:-1,textAlign:"center",textBaseline:"bottom"},"bottom-left":{x:0,y:-1,textAlign:"left",textBaseline:"bottom"},"bottom-right":{x:-1,y:-1,textAlign:"right",textBaseline:"bottom"},center:{x:-.5,y:-.5,textAlign:"center",textBaseline:"middle"},left:{x:0,y:-.5,textAlign:"left",textBaseline:"middle"},right:{x:-1,y:-.5,textAlign:"right",textBaseline:"middle"},top:{x:-.5,y:0,textAlign:"center",textBaseline:"top"},"top-left":{x:0,y:0,textAlign:"left",textBaseline:"top"},"top-right":{x:-1,y:0,textAlign:"right",textBaseline:"top"}},n=[];{const t=16;for(let e=0;e<360;e+=360/t)n.push([Math.cos(Math.PI*e/180),Math.sin(Math.PI*e/180)])}const a=l;export{a 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 e from"../../core/Accessor.js";import r from"../../core/Collection.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import"../../libs/maquette/projection.js";import{createProjector as i}from"../../libs/maquette/projector.js";import{WatchUpdatingTracking as a}from"../support/WatchUpdatingTracking.js";let c=class extends e{constructor(){super(...arguments),this.items=new r,this._watchUpdatingTracking=new a,this._callbacks=new Map,this._projector=i(),this._hiddenProjector=i()}get needsRender(){return this.items.length>0}initialize(){const t=document.createElement("div");t.className="
|
|
5
|
+
import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import r from"../../core/Collection.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import"../../libs/maquette/projection.js";import{createProjector as i}from"../../libs/maquette/projector.js";import{WatchUpdatingTracking as a}from"../support/WatchUpdatingTracking.js";let c=class extends e{constructor(){super(...arguments),this.items=new r,this._watchUpdatingTracking=new a,this._callbacks=new Map,this._projector=i(),this._hiddenProjector=i()}get needsRender(){return this.items.length>0}initialize(){const t=document.createElement("div");t.className="geoscene-overlay-surface",this._set("surface",t),this._hiddenSurface=document.createElement("div"),this._hiddenSurface.setAttribute("style","visibility: hidden;"),t.appendChild(this._hiddenSurface),this._watchUpdatingTracking.addOnCollectionChange((()=>this.items),(t=>{for(const e of t.added){const t=()=>e.render();this._callbacks.set(e,t),this._projector.append(this.surface,t)}for(const e of t.removed){const t=this._projector.detach(this._callbacks.get(e));this.surface.removeChild(t.domNode),this._callbacks.delete(e)}}))}addItem(t){this.items.add(t)}removeItem(t){this.items.remove(t)}destroy(){this.items.removeAll(),this._callbacks.forEach((t=>this._projector.detach(t))),this._callbacks=null,this._projector=null,this._watchUpdatingTracking.destroy()}render(){this._projector.renderNow()}computeBoundingRect(t){const e=this._hiddenSurface,r=this._hiddenProjector;let o=null;const s=()=>(o=t.render(),o);r.append(e,s),r.renderNow();const i={left:0,top:0,right:0,bottom:0};if(o&&o.domNode){const t=o.domNode.getBoundingClientRect();i.left=t.left,i.top=t.top,i.right=t.right,i.bottom=t.bottom}for(r.detach(s);e.firstChild;)e.removeChild(e.firstChild);return i}overlaps(t,e){const r=this.computeBoundingRect(t),o=this.computeBoundingRect(e);return Math.max(r.left,o.left)<=Math.min(r.right,o.right)&&Math.max(r.top,o.top)<=Math.min(r.bottom,o.bottom)}get hasVisibleItems(){return this.items.some((t=>t.visible))}renderCanvas(t){if(!this.items.some((t=>t.visible)))return;const e=t.getContext("2d");e.save(),e.font=`10px ${getComputedStyle(this.surface).fontFamily}`,this.items.forEach((t=>{e.save(),t.renderCanvas(e),e.restore()})),e.restore()}};t([o({readOnly:!0})],c.prototype,"surface",void 0),t([o({readOnly:!0})],c.prototype,"items",void 0),t([o({readOnly:!0})],c.prototype,"needsRender",null),t([o({readOnly:!0})],c.prototype,"_watchUpdatingTracking",void 0),t([o({readOnly:!0,aliasOf:"_watchUpdatingTracking.updating"})],c.prototype,"updating",void 0),c=t([s("geoscene.views.overlay.ViewOverlay")],c);const n=c;export{n as default};
|
package/views/ui/Component.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 t}from"../../chunks/tslib.es6.js";import o from"../../core/Accessor.js";import{byId as e}from"../../core/domUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as r}from"../../core/accessorSupport/decorators/cast.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";function i(t){return t&&"nodeType"in t}function d(t){return t&&"function"==typeof t.render}const c={component:"
|
|
5
|
+
import{_ as t}from"../../chunks/tslib.es6.js";import o from"../../core/Accessor.js";import{byId as e}from"../../core/domUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as r}from"../../core/accessorSupport/decorators/cast.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";function i(t){return t&&"nodeType"in t}function d(t){return t&&"function"==typeof t.render}const c={component:"geoscene-component"};let p=class extends o{constructor(){super(...arguments),this.widget=null}destroy(){this.widget&&this.widget.destroy(),this.node=null}get id(){return this.get("widget.id")||this.get("node.id")}set node(t){const o=this._get("node");t!==o&&(t&&t.classList.add(c.component),o&&o.classList.remove(c.component),this._set("node",t))}castNode(t){return t?"string"==typeof t||i(t)?(this._set("widget",null),e(t)):(d(t)&&!t.domNode&&(t.domNode=document.createElement("div")),this._set("widget",t),t.domNode):(this._set("widget",null),null)}};t([s({dependsOn:[]})],p.prototype,"id",null),t([s()],p.prototype,"node",null),t([r("node")],p.prototype,"castNode",null),t([s({readOnly:!0})],p.prototype,"widget",void 0),p=t([n("geoscene.views.ui.Component")],p);const l=p;export{l as default};
|
package/views/ui/UI.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 t}from"../../chunks/tslib.es6.js";import{empty as o,insertBefore as i}from"../../core/domUtils.js";import e from"../../core/Evented.js";import n from"../../core/Handles.js";import{watch as r,initial as s}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as d}from"../../core/accessorSupport/decorators/cast.js";import{subclass as p}from"../../core/accessorSupport/decorators/subclass.js";import c from"./Component.js";import{isRTL as l}from"../../widgets/support/widgetUtils.js";import"../../core/Logger.js";import{getCalciteThemeClass as h}from"../../widgets/support/widgetThemeUtils.js";const m={left:0,top:0,bottom:0,right:0},u={bottom:30,top:15,right:15,left:15},f="manual",_={ui:"
|
|
5
|
+
import{_ as t}from"../../chunks/tslib.es6.js";import{empty as o,insertBefore as i}from"../../core/domUtils.js";import e from"../../core/Evented.js";import n from"../../core/Handles.js";import{watch as r,initial as s}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as d}from"../../core/accessorSupport/decorators/cast.js";import{subclass as p}from"../../core/accessorSupport/decorators/subclass.js";import c from"./Component.js";import{isRTL as l}from"../../widgets/support/widgetUtils.js";import"../../core/Logger.js";import{getCalciteThemeClass as h}from"../../widgets/support/widgetThemeUtils.js";const m={left:0,top:0,bottom:0,right:0},u={bottom:30,top:15,right:15,left:15},f="manual",_={ui:"geoscene-ui",corner:"geoscene-ui-corner",innerContainer:"geoscene-ui-inner-container",manualContainer:"geoscene-ui-manual-container",cornerContainer:"geoscene-ui-corner-container",topLeft:"geoscene-ui-top-left",topRight:"geoscene-ui-top-right",bottomLeft:"geoscene-ui-bottom-left",bottomRight:"geoscene-ui-bottom-right"};function g(t){return t&&!t._started&&"function"==typeof t.postMixInProperties&&"function"==typeof t.buildRendering&&"function"==typeof t.postCreate&&"function"==typeof t.startup}function y(t){const o=t,i="object"==typeof o&&null!==o&&Object.getPrototypeOf(o);return(null===i||i===Object.prototype)&&("component"in o||"index"in o||"position"in o)?t:null}function C(t,{top:o,bottom:i,left:e,right:n}){t.style.top=o,t.style.bottom=i,t.style.left=e,t.style.right=n}let v=class extends e.EventedAccessor{constructor(t){super(t),this._cornerNameToContainerLookup={},this._positionNameToContainerLookup={},this._components=new Array,this._componentToKey=new Map,this._handles=new n,this.view=null,this._applyViewPadding=()=>{const t=this.container;t&&C(t,this._toPxPosition(this._getViewPadding()))},this._applyUIPadding=()=>{const t=this._innerContainer;t&&C(t,this._toPxPosition(this.padding))},this._initContainers()}initialize(){this._handles.add([r((()=>{var t;return[null==(t=this.view)?void 0:t.padding,this.container]}),this._applyViewPadding,s),r((()=>this.padding),this._applyUIPadding,s)])}destroy(){this.container=null;for(const t of this._components)t.destroy();this._components.length=0,this._handles.destroy(),this._componentToKey.clear()}set container(t){const i=this._get("container");t!==i&&(t&&(t.classList.add(_.ui),t.classList.add(h()),this._attachContainers(t)),i&&(i.classList.remove(_.ui),C(i,{top:"",bottom:"",left:"",right:""}),o(i)),this._set("container",t))}get height(){const t=this.get("view.height")||0;if(0===t)return t;const o=this._getViewPadding(),i=o.top+o.bottom;return Math.max(t-i,0)}get padding(){return this._get("padding")}set padding(t){t?this._override("padding",t):this._clearOverride("padding")}castPadding(t){return"number"==typeof t?{bottom:t,top:t,right:t,left:t}:{...u,...t}}get width(){const t=this.get("view.width")||0;if(0===t)return t;const o=this._getViewPadding(),i=o.left+o.right;return Math.max(t-i,0)}add(t,o){let i,e;if(Array.isArray(t))return void t.forEach((t=>this.add(t,o)));const n=y(t);n&&({index:i,position:o,component:t,key:e}=n),o&&"object"==typeof o&&({index:i,key:e,position:o}=o),!t||o&&!this._isValidPosition(o)||this._add(t,o,i,e)}remove(t,o){if(!t)return;if(Array.isArray(t))return t.map((t=>this.remove(t,o)));const i=this._find(t);if(i){const e=this._componentToKey;if(e.has(t)&&e.get(t)!==o)return;const n=this._components.indexOf(i);return i.node.parentNode&&i.node.parentNode.removeChild(i.node),this._componentToKey.delete(t),this._components.splice(n,1)[0]}}empty(t){if(Array.isArray(t))return t.map((t=>this.empty(t))).reduce(((t,o)=>t.concat(o)));if((t=t||f)===f){return Array.prototype.slice.call(this._manualContainer.children).filter((t=>!t.classList.contains(_.corner))).map((t=>this.remove(t)))}return this._isValidPosition(t)?Array.prototype.slice.call(this._cornerNameToContainerLookup[t].children).map(this.remove,this):null}move(t,o){if(Array.isArray(t)&&t.forEach((t=>this.move(t,o))),!t)return;let i;const e=y(t)||y(o);if(e&&(i=e.index,o=e.position,t=e.component||t),o&&!this._isValidPosition(o))return;const n=this.remove(t);n&&this.add(n,{position:o,index:i})}find(t){if(!t)return null;const o=this._findById(t);return o&&(o.widget||o.node)}getPosition(t){for(const o in this._positionNameToContainerLookup){if(this._positionNameToContainerLookup[o].contains(t))return o}return null}_add(t,o,i,e){t instanceof c||(t=new c({node:t})),this._place({component:t,position:o,index:i}),this._components.push(t),e&&this._componentToKey.set(t,e)}_find(t){return t?t instanceof c?this._findByComponent(t):"string"==typeof t?this._findById(t):this._findByNode(t.domNode||t):null}_getViewPadding(){return this.get("view.padding")||m}_attachContainers(t){t.appendChild(this._innerContainer),t.appendChild(this._manualContainer)}_initContainers(){const t=document.createElement("div");t.classList.add(_.innerContainer),t.classList.add(_.cornerContainer);const o=document.createElement("div");o.classList.add(_.innerContainer),o.classList.add(_.manualContainer);const i=document.createElement("div");i.classList.add(_.topLeft),i.classList.add(_.corner),t.appendChild(i);const e=document.createElement("div");e.classList.add(_.topRight),e.classList.add(_.corner),t.appendChild(e);const n=document.createElement("div");n.classList.add(_.bottomLeft),n.classList.add(_.corner),t.appendChild(n);const r=document.createElement("div");r.classList.add(_.bottomRight),r.classList.add(_.corner),t.appendChild(r),this._innerContainer=t,this._manualContainer=o;const s=l();this._cornerNameToContainerLookup={"top-left":i,"top-right":e,"bottom-left":n,"bottom-right":r,"top-leading":s?e:i,"top-trailing":s?i:e,"bottom-leading":s?r:n,"bottom-trailing":s?n:r},this._positionNameToContainerLookup={manual:o,...this._cornerNameToContainerLookup}}_isValidPosition(t){return!!this._positionNameToContainerLookup[t]}_place(t){const o=t.component,e=t.position||f,n=t.index,r=this._positionNameToContainerLookup[e],s=n>-1;if(g(o.widget)&&o.widget.startup(),!s)return void r.appendChild(o.node);const a=Array.prototype.slice.call(r.children);if(0===n)return void(r.firstChild?i(o.node,r.firstChild):r.appendChild(o.node));n>=a.length?r.appendChild(o.node):i(o.node,a[n])}_toPxPosition(t){return{top:this._toPxUnit(t.top),left:this._toPxUnit(t.left),right:this._toPxUnit(t.right),bottom:this._toPxUnit(t.bottom)}}_toPxUnit(t){return 0===t?"0":t+"px"}_findByComponent(t){let o,i=null;return this._components.some((e=>(o=e===t,o&&(i=e),o))),i}_findById(t){let o,i=null;return this._components.some((e=>(o=e.id===t,o&&(i=e),o))),i}_findByNode(t){let o,i=null;return this._components.some((e=>(o=e.node===t,o&&(i=e),o))),i}};t([a()],v.prototype,"container",null),t([a()],v.prototype,"height",null),t([a({value:u})],v.prototype,"padding",null),t([d("padding")],v.prototype,"castPadding",null),t([a()],v.prototype,"view",void 0),t([a()],v.prototype,"width",null),v=t([p("geoscene.views.ui.UI")],v);const L=v;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 e from"../../core/has.js";import{isSome as t,isNone as r}from"../../core/maybe.js";var o;function n(e,r,o={}){const n=i(e);for(;n.length>1;){const e=l(r,n.shift(),o);if(t(e))return e}return c(r,n.shift(),o)}function i(t){const r=e("
|
|
5
|
+
import e from"../../core/has.js";import{isSome as t,isNone as r}from"../../core/maybe.js";var o;function n(e,r,o={}){const n=i(e);for(;n.length>1;){const e=l(r,n.shift(),o);if(t(e))return e}return c(r,n.shift(),o)}function i(t){const r=e("geoscene-force-webgl");if(r===o.WEBGL1||r===o.WEBGL2)return[r];switch(t){case"2d":return[o.WEBGL1];case"3d":return[o.WEBGL2,o.WEBGL1]}}function c(e,t,o={}){if(!window.WebGLRenderingContext)return s(e,a),null;const n=l(e,t,o);return r(n)&&s(e,u),n}function l(e,t,r={}){const n=t===o.WEBGL1?["webgl","experimental-webgl","webkit-3d","moz-webgl"]:["webgl2"];let i=null;for(const o of n){try{i=e.getContext(o,r)}catch(c){}if(i)break}return i}function s(e,t){const r=e.parentNode;r&&(r.innerHTML='<table style="background-color: #8CE; width: 100%; height: 100%;"><tr><td align="center"><div style="display: table-cell; vertical-align: middle;"><div style="">'+t+"</div></div></td></tr></table>")}!function(e){e[e.WEBGL1=1]="WEBGL1",e[e.WEBGL2=2]="WEBGL2"}(o||(o={}));const a='This page requires a browser that supports WebGL.<br/><a href="http://get.webgl.org">Click here to upgrade your browser.</a>',u='It doesn\'t appear your computer can support WebGL.<br/><a href="http://get.webgl.org/troubleshooting/">Click here for more information.</a>';export{o as ContextType,l as createContext,n as createContextOrErrorHTML,i as getContextTypes};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import o from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as m}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const p="
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import o from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as m}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const p="geoscene-area-measurement-2d",c={buttonDisabled:"geoscene-button--disabled",widgetIcon:"geoscene-icon-measure-area",base:`${p} geoscene-widget geoscene-widget--panel`,container:`${p}__container`,hint:`${p}__hint`,hintText:`${p}__hint-text`,panelError:`${p}__panel--error`,measurement:`${p}__measurement`,measurementItem:`${p}__measurement-item`,measurementItemDisabled:`${p}__measurement-item--disabled`,measurementItemTitle:`${p}__measurement-item-title`,measurementItemValue:`${p}__measurement-item-value`,settings:`${p}__settings`,units:`${p}__units`,unitsLabel:`${p}__units-label`,unitsSelect:`${p}__units-select geoscene-select`,unitsSelectWrapper:`${p}__units-select-wrapper`,actionSection:`${p}__actions`,newMeasurementButton:`${p}__clear-button geoscene-button geoscene-button--primary`};let d=class extends a{constructor(e,t){super(e,t),this.active=null,this.iconClass=c.widgetIcon,this.label=void 0,this.messages=null,this.messagesUnits=null,this.unit=null,this.unitOptions=null,this.view=null,this.viewModel=new o}render(){const{id:e,viewModel:t,visible:i}=this,{active:r,supported:n,measurementLabel:a,state:o,unit:l,unitOptions:u}=t,p="disabled"===o,d="ready"===o,v="measuring"===o||"measured"===o,{messages:_,messagesUnits:b}=this,h=r&&d?m("section",{key:"hint",class:c.hint},m("p",{class:c.hintText},_.hint)):null,w=n?null:m("section",{key:"unsupported",class:c.panelError},m("p",null,_.unsupported)),g=(e,t,s)=>t?m("div",{key:`${s}-enabled`,class:c.measurementItem},m("span",{class:c.measurementItemTitle},e),m("span",{class:c.measurementItemValue},t)):m("div",{key:`${s}-disabled`,class:this.classes(c.measurementItem,c.measurementItemDisabled),"aria-disabled":"true"},m("span",{class:c.measurementItemTitle},e)),y=v?m("section",{key:"measurement",class:c.measurement},g(_.area,a.area,"area"),g(_.perimeter,a.perimeter,"perimeter")):null,M=`${e}__units`,$=m("section",{key:"units",class:c.units},m("label",{class:c.unitsLabel,for:M},_.unit),m("div",{class:c.unitsSelectWrapper},m("select",{class:c.unitsSelect,id:M,onchange:this._changeUnit,bind:this,value:l},u.map((e=>{var t;return m("option",{key:e,value:e},s(e)?b.systems[e]:null==(t=b.units[e])?void 0:t.pluralCapitalized)}))))),j=v?m("div",{key:"settings",class:c.settings},$):null,f=!n||r&&!v?null:m("div",{class:c.actionSection},m("button",{disabled:p,class:this.classes(c.newMeasurementButton,p&&c.buttonDisabled),bind:this,onclick:this._newMeasurement,title:_.newMeasurement,type:"button","aria-label":_.newMeasurement},_.newMeasurement)),I=i?m("div",{class:c.container},w,h,j,y,f):null;return m("div",{class:c.base},I)}_newMeasurement(){t(this.viewModel.start())}_changeUnit(e){const t=e.target,s=t.options[t.selectedIndex];s&&(this.viewModel.unit=s.value)}};e([i("viewModel.active")],d.prototype,"active",void 0),e([r()],d.prototype,"iconClass",void 0),e([r({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],d.prototype,"label",void 0),e([r(),u("geoscene/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D")],d.prototype,"messages",void 0),e([r(),u("geoscene/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([r()],d.prototype,"uiStrings",void 0),e([i("viewModel.unit")],d.prototype,"unit",void 0),e([i("viewModel.unitOptions")],d.prototype,"unitOptions",void 0),e([i("viewModel.view")],d.prototype,"view",void 0),e([r({type:o})],d.prototype,"viewModel",void 0),e([i("viewModel.visible")],d.prototype,"visible",void 0),e([l()],d.prototype,"_newMeasurement",null),e([l()],d.prototype,"_changeUnit",null),d=e([n("geoscene.widgets.AreaMeasurement2D")],d);const v=d;export{v as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import o from"./AreaMeasurement3D/AreaMeasurement3DViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as m}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const p="
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import o from"./AreaMeasurement3D/AreaMeasurement3DViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as m}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const p="geoscene-area-measurement-3d",c={buttonDisabled:"geoscene-button--disabled",base:`${p} geoscene-widget geoscene-widget--panel`,container:`${p}__container`,hint:`${p}__hint`,hintText:`${p}__hint-text`,panelError:`${p}__panel--error`,measurement:`${p}__measurement`,measurementItem:`${p}__measurement-item`,measurementItemDisabled:`${p}__measurement-item--disabled`,measurementItemTitle:`${p}__measurement-item-title`,measurementItemValue:`${p}__measurement-item-value`,settings:`${p}__settings`,units:`${p}__units`,unitsLabel:`${p}__units-label`,unitsSelect:`${p}__units-select geoscene-select`,unitsSelectWrapper:`${p}__units-select-wrapper`,actionSection:`${p}__actions`,newMeasurementButton:`${p}__clear-button geoscene-button geoscene-button--primary`,widgetIcon:"geoscene-icon-measure-area"};let d=class extends n{constructor(e,t){super(e,t),this.view=null,this.visible=null,this.iconClass=c.widgetIcon,this.label=void 0,this.messages=null,this.messagesUnits=null,this.viewModel=new o,this.unitOptions=null,this.unit=null}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}render(){const{supported:e,active:t,measurement:i,state:r,unit:a}=this.viewModel,n="disabled"===r,o="ready"===r,l="measuring"===r||"measured"===r,{messages:u,messagesUnits:p}=this,d=t&&o?m("section",{key:"geoscene-area-measurement-3d__hint",class:c.hint},m("p",{class:c.hintText},u.hint)):null,v=e?null:m("section",{key:"geoscene-area-measurement-3d__unsupported",class:c.panelError},m("p",null,u.unsupported)),_=(e,t,s)=>{switch(t.state){case"available":return m("div",{key:`${s}-enabled`,class:c.measurementItem},m("span",{class:c.measurementItemTitle},e),m("span",{class:c.measurementItemValue},t.text));case"unavailable":return m("div",{key:`${s}-disabled`,class:this.classes(c.measurementItem,c.measurementItemDisabled)},m("span",{class:c.measurementItemTitle},e));case"invalid":return m("div",{key:`${s}-enabled`,class:c.measurementItem},m("span",{class:c.measurementItemTitle},e),m("span",{class:c.measurementItemValue},u.notApplicable))}},h=l?m("section",{key:"geoscene-area-measurement-3d__measurement",class:c.measurement},_(u.area,i.area,"area"),_(u.perimeterLength,i.perimeterLength,"perimeter-length")):null,b=`${this.id}__units`,y=m("label",{class:c.unitsLabel,for:b},u.unit),g=m("div",{class:c.unitsSelectWrapper},m("select",{class:c.unitsSelect,id:b,onchange:this._changeUnit,bind:this,value:a},this.viewModel.unitOptions.map((e=>{var t;return m("option",{key:e,value:e},s(e)?p.systems[e]:null==(t=p.units[e])?void 0:t.pluralCapitalized)})))),w=l?m("section",{key:"geoscene-area-measurement-3d__units",class:c.units},y,g):null,M=l?m("div",{key:"settings",class:c.settings},w):null,$=!e||t&&!l?null:m("div",{class:c.actionSection},m("button",{disabled:n,class:this.classes(c.newMeasurementButton,n&&c.buttonDisabled),bind:this,onclick:this._newMeasurement,type:"button"},u.newMeasurement)),j=this.visible?m("div",{class:c.container},v,d,M,h,$):null;return m("div",{key:this,class:c.base,role:"presentation"},j)}_newMeasurement(){t(this.viewModel.start())}_changeUnit(e){const t=e.target,s=t.options[t.selectedIndex];s&&(this.unit=s.value)}};e([i("viewModel.view")],d.prototype,"view",void 0),e([i("viewModel.visible")],d.prototype,"visible",void 0),e([i("viewModel.active")],d.prototype,"active",void 0),e([r({constructOnly:!0,nonNullable:!0})],d.prototype,"analysis",null),e([r()],d.prototype,"iconClass",void 0),e([r({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],d.prototype,"label",void 0),e([r(),u("geoscene/widgets/AreaMeasurement3D/t9n/AreaMeasurement3D")],d.prototype,"messages",void 0),e([r(),u("geoscene/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([r()],d.prototype,"uiStrings",void 0),e([r({type:o})],d.prototype,"viewModel",void 0),e([i("viewModel.unitOptions")],d.prototype,"unitOptions",void 0),e([i("viewModel.unit")],d.prototype,"unit",void 0),e([l()],d.prototype,"_newMeasurement",null),e([l()],d.prototype,"_changeUnit",null),d=e([a("geoscene.widgets.AreaMeasurement3D")],d);const v=d;export{v as default};
|
package/widgets/Attachments.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 t}from"../chunks/tslib.es6.js";import e from"../core/Error.js";import{formatFileSize as s}from"../core/unitFormatUtils.js";import{on as i,init as a}from"../core/watchUtils.js";import{aliasOf as n}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import d from"./Attachments/AttachmentsViewModel.js";import{isSupportedImage as c,getIconPath as h}from"./Attachments/support/attachmentUtils.js";import{storeNode as u,discardNode as p,isRTL as b}from"./support/widgetUtils.js";import{messageBundle as g}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as _}from"./support/jsxFactory.js";const f={addButton:!0,addSubmitButton:!0,cancelAddButton:!0,cancelUpdateButton:!0,deleteButton:!0,errorMessage:!0,progressBar:!0,updateButton:!0},v={base:"esri-attachments",loaderContainer:"esri-attachments__loader-container",loader:"esri-attachments__loader",fadeIn:"esri-attachments--fade-in",container:"esri-attachments__container",containerList:"esri-attachments__container--list",containerPreview:"esri-attachments__container--preview",actions:"esri-attachments__actions",deleteButton:"esri-attachments__delete-button",addAttachmentButton:"esri-attachments__add-attachment-button",errorMessage:"esri-attachments__error-message",items:"esri-attachments__items",item:"esri-attachments__item",itemButton:"esri-attachments__item-button",itemMask:"esri-attachments__item-mask",itemMaskIcon:"esri-attachments__item-mask--icon",itemImage:"esri-attachments__image",itemImageResizable:"esri-attachments__image--resizable",itemLabel:"esri-attachments__label",itemFilename:"esri-attachments__filename",itemChevronIcon:"esri-attachments__item-chevron-icon",itemLink:"esri-attachments__item-link",itemLinkOverlay:"esri-attachments__item-link-overlay",itemLinkOverlayIcon:"esri-attachments__item-link-overlay-icon",itemEditIcon:"esri-attachments__item-edit-icon",itemAddIcon:"esri-attachments__item-add-icon",itemAddButton:"esri-attachments__item-add-button",formNode:"esri-attachments__form-node",fileFieldset:"esri-attachments__file-fieldset",fileLabel:"esri-attachments__file-label",fileName:"esri-attachments__file-name",fileInput:"esri-attachments__file-input",metadata:"esri-attachments__metadata",metadataFieldset:"esri-attachments__metadata-fieldset",progressBar:"esri-attachments__progress-bar",geosceneWidget:"esri-widget",esriButton:"esri-button",buttonDisabled:"esri-button--disabled",esriButtonSecondary:"esri-button--secondary",esriButtonTertiary:"esri-button--tertiary",esriButtonThird:"esri-button--third",esriButtonSmall:"esri-button--small",esriButtonHalf:"esri-button--half",empty:"esri-widget__content--empty",iconExternalLink:"geoscene-icon-link-external",iconEdit:"geoscene-icon-edit",iconRight:"geoscene-icon-right",iconLeft:"geoscene-icon-left",iconPlus:"geoscene-icon-plus"},y=window.CSS;let B=class extends m{constructor(t,e){super(t,e),this.abilities=null,this.displayType="auto",this.graphic=null,this.label=void 0,this.messages=null,this.messagesUnits=null,this.selectedFile=null,this.submitting=!1,this.viewModel=new d,this.visibleElements={...f},this._supportsImageOrientation=y&&y.supports&&y.supports("image-orientation","from-image"),this._addAttachmentForm=null,this._updateAttachmentForm=null}initialize(){this.own(i(this,"viewModel.attachmentInfos","change",(()=>this.scheduleRender())),a(this,"viewModel.mode",(()=>this._modeChanged())))}get effectiveDisplayType(){const{displayType:t}=this;return t&&"auto"!==t?t:this.viewModel.supportsResizeAttachments?"preview":"list"}castVisibleElements(t){return{...f,...t}}addAttachment(){const{_addAttachmentForm:t,viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.addAttachment(t).then((t=>(this._set("submitting",!1),this._set("error",null),s.mode="view",t))).catch((t=>{throw this._set("submitting",!1),this._set("error",new e("attachments:add-attachment",this.messages.addErrorMessage,t)),t}))}deleteAttachment(t){const{viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.deleteAttachment(t).then((t=>(this._set("submitting",!1),this._set("error",null),s.mode="view",t))).catch((t=>{throw this._set("submitting",!1),this._set("error",new e("attachments:delete-attachment",this.messages.deleteErrorMessage,t)),t}))}updateAttachment(){const{viewModel:t}=this,{_updateAttachmentForm:s}=this;return this._set("submitting",!0),this._set("error",null),t.updateAttachment(s).then((e=>(this._set("submitting",!1),this._set("error",null),t.mode="view",e))).catch((t=>{throw this._set("submitting",!1),this._set("error",new e("attachments:update-attachment",this.messages.updateErrorMessage,t)),t}))}render(){const{submitting:t,viewModel:e}=this,{state:s}=e;return _("div",{class:this.classes(v.base,v.geosceneWidget)},t?this.renderProgressBar():null,"loading"===s?this.renderLoading():this.renderAttachments(),this.renderErrorMessage())}renderErrorMessage(){const{error:t,visibleElements:e}=this;return t&&e.errorMessage?_("div",{key:"error-message",class:v.errorMessage},t.message):null}renderAttachments(){const{mode:t,activeAttachmentInfo:e}=this.viewModel;return"add"===t?this.renderAddForm():"edit"===t?this.renderDetailsForm(e):this.renderAttachmentContainer()}renderLoading(){return _("div",{class:v.loaderContainer,key:"loader"},_("div",{class:v.loader}))}renderProgressBar(){return this.visibleElements.progressBar?_("div",{class:v.progressBar,key:"progress-bar"}):null}renderAddForm(){const{submitting:t,selectedFile:e}=this,s=t||!e,i=this.visibleElements.cancelAddButton?_("button",{type:"button",bind:this,disabled:t,onclick:this._cancelForm,class:this.classes(v.esriButton,v.esriButtonTertiary,v.esriButtonSmall,v.esriButtonHalf,t&&v.buttonDisabled)},this.messages.cancel):null,a=this.visibleElements.addSubmitButton?_("button",{type:"submit",disabled:s,class:this.classes(v.esriButton,v.esriButtonSecondary,v.esriButtonSmall,v.esriButtonHalf,{[v.buttonDisabled]:s})},this.messages.add):null,n=e?_("span",{key:"file-name",class:v.fileName},e.name):null,r=_("form",{bind:this,afterCreate:u,afterRemoved:p,"data-node-ref":"_addAttachmentForm",onsubmit:this._submitAddAttachment},_("fieldset",{class:v.fileFieldset},n,_("label",{class:this.classes(v.fileLabel,v.esriButton,v.esriButtonSecondary)},e?this.messages.changeFile:this.messages.selectFile,_("input",{class:v.fileInput,type:"file",name:"attachment",bind:this,onchange:this._handleFileInputChange}))),a,i);return _("div",{key:"add-form-container",class:v.formNode},r)}renderDetailsForm(t){const{visibleElements:e,viewModel:i,selectedFile:a,submitting:n}=this,{contentType:r,size:o,url:l}=t,{abilities:m}=i,d=n||!a,c=m.editing&&m.operations.delete&&e.deleteButton?_("button",{key:"delete-button",type:"button",disabled:n,bind:this,onclick:e=>this._submitDeleteAttachment(e,t),class:this.classes(v.esriButton,v.esriButtonSmall,v.esriButtonTertiary,v.deleteButton,{[v.buttonDisabled]:n})},this.messages.delete):null,h=m.editing&&m.operations.update&&e.updateButton?_("button",{disabled:d,key:"update-button",type:"submit",class:this.classes(v.esriButton,v.esriButtonSmall,v.esriButtonThird,{[v.buttonDisabled]:d})},this.messages.update):null,b=this.visibleElements.cancelUpdateButton?_("button",{disabled:n,key:"cancel-button",type:"button",bind:this,onclick:this._cancelForm,class:this.classes(v.esriButton,v.esriButtonSmall,v.esriButtonTertiary,v.esriButtonThird,{[v.buttonDisabled]:n})},this.messages.cancel):null,g=a?_("span",{key:"file-name",class:v.fileName},a.name):null,f=m.editing&&m.operations.update?_("fieldset",{key:"file",class:v.fileFieldset},g,_("label",{class:this.classes(v.fileLabel,v.esriButton,v.esriButtonSecondary)},this.messages.changeFile,_("input",{class:v.fileInput,type:"file",name:"attachment",bind:this,onchange:this._handleFileInputChange}))):null,y=_("fieldset",{key:"size",class:v.metadataFieldset},_("label",null,s(this.messagesUnits,o))),B=_("fieldset",{key:"content-type",class:v.metadataFieldset},_("label",null,r)),A=_("form",{bind:this,afterCreate:u,afterRemoved:p,"data-node-ref":"_updateAttachmentForm",onsubmit:this._submitUpdateAttachment},_("div",{class:v.metadata},y,B),f,_("div",{class:v.actions},c,b,h));return _("div",{key:"edit-form-container",class:v.formNode},_("a",{class:v.itemLink,href:l,rel:"noreferrer",target:"_blank"},this.renderImageMask({attachmentInfo:t,size:400}),_("div",{class:v.itemLinkOverlay},_("span",{class:v.itemLinkOverlayIcon},_("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 32 32"},_("path",{d:"M28 13h1v16H3V3h16v1H4v24h24zm-5-9h4.293L15.646 15.638l.707.707L28 4.707V9h1V3h-6z"}),_("path",{fill:"none",d:"M0 0h32v32H0z"}))))),A)}renderImageMask({attachmentInfo:t,size:e}){const{supportsResizeAttachments:s}=this.viewModel,{contentType:i,name:a,url:n}=t,r=s&&c(i),o=this._getCSSTransform(t,r),l=o?{transform:o,"image-orientation":"none"}:{},m=-1===n.indexOf("?")?"?":"&",d=r?`${n}${m}w=${e}`:h(i),u={[v.itemMaskIcon]:!r},p={[v.itemImageResizable]:s};return _("div",{class:this.classes(u,v.itemMask)},_("img",{styles:l,alt:a,src:d,class:this.classes(p,v.itemImage)}))}renderAttachmentInfo({attachmentInfo:t,displayType:e}){const{viewModel:s}=this,{abilities:i}=s,{name:a,url:n}=t,r=this.renderImageMask({attachmentInfo:t,size:"list"===e?48:400}),o=i.editing?_("span",{"aria-hidden":"true",class:this.classes(v.itemChevronIcon,b(this.container)?v.iconLeft:v.iconRight)}):null,l=[r,_("label",{class:v.itemLabel},_("span",{class:v.itemFilename},a||this.messages.noTitle),o)],m=i.editing?_("button",{key:"details-button",bind:this,class:v.itemButton,title:this.messages.attachmentDetails,"aria-label":this.messages.attachmentDetails,"data-attachment-info-id":t.id,onclick:()=>this._startEditAttachment(t),type:"button"},l):_("a",{key:"details-link",class:v.itemButton,href:n,target:"_blank"},l);return _("li",{class:v.item,key:t},m)}renderAttachmentContainer(){const{effectiveDisplayType:t,viewModel:e,visibleElements:s}=this,{attachmentInfos:i,abilities:a}=e,n=i&&i.length,r={[v.containerList]:"preview"!==t,[v.containerPreview]:"preview"===t},o=a.editing&&a.operations.add&&s.addButton?_("button",{bind:this,onclick:()=>this._startAddAttachment(),class:this.classes(v.esriButton,v.esriButtonTertiary,v.addAttachmentButton),type:"button"},_("span",{"aria-hidden":"true",class:this.classes(v.itemAddIcon,v.iconPlus)}),this.messages.add):null,l=n?_("ul",{class:v.items},i.toArray().map((e=>this.renderAttachmentInfo({attachmentInfo:e,displayType:t})))):_("div",{class:v.empty},this.messages.noAttachments);return _("div",{key:"attachments-container",class:this.classes(v.container,r)},l,o)}_modeChanged(){this._set("error",null),this._set("selectedFile",null)}_handleFileInputChange(t){const e=t.target,s=e&&e.files&&e.files.item(0);this._set("selectedFile",s)}_submitDeleteAttachment(t,e){t.preventDefault(),this.deleteAttachment(e)}_submitAddAttachment(t){t.preventDefault(),this.addAttachment()}_submitUpdateAttachment(t){t.preventDefault(),this.updateAttachment()}_startEditAttachment(t){const{viewModel:e}=this;e.activeAttachmentInfo=t,e.mode="edit"}_startAddAttachment(){this.viewModel.mode="add"}_cancelForm(t){t.preventDefault(),this.viewModel.mode="view"}_getCSSTransform(t,e){const{orientationInfo:s}=t;return!this._supportsImageOrientation&&e&&s?[s.rotation?`rotate(${s.rotation}deg)`:"",s.mirrored?"scaleX(-1)":""].join(" "):""}};t([n("viewModel.abilities")],B.prototype,"abilities",void 0),t([o()],B.prototype,"displayType",void 0),t([o({readOnly:!0})],B.prototype,"effectiveDisplayType",null),t([n("viewModel.graphic")],B.prototype,"graphic",void 0),t([o({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],B.prototype,"label",void 0),t([o(),g("geoscene/widgets/Attachments/t9n/Attachments")],B.prototype,"messages",void 0),t([o(),g("geoscene/core/t9n/Units")],B.prototype,"messagesUnits",void 0),t([o({readOnly:!0})],B.prototype,"selectedFile",void 0),t([o({readOnly:!0})],B.prototype,"submitting",void 0),t([o({readOnly:!0})],B.prototype,"error",void 0),t([o({type:d})],B.prototype,"viewModel",void 0),t([o()],B.prototype,"visibleElements",void 0),t([r("visibleElements")],B.prototype,"castVisibleElements",null),B=t([l("geoscene.widgets.Attachments")],B);const A=B;export{A as default};
|
|
5
|
+
import{_ as t}from"../chunks/tslib.es6.js";import e from"../core/Error.js";import{formatFileSize as s}from"../core/unitFormatUtils.js";import{on as i,init as a}from"../core/watchUtils.js";import{aliasOf as n}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import d from"./Attachments/AttachmentsViewModel.js";import{isSupportedImage as c,getIconPath as h}from"./Attachments/support/attachmentUtils.js";import{storeNode as u,discardNode as p,isRTL as b}from"./support/widgetUtils.js";import{messageBundle as g}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as _}from"./support/jsxFactory.js";const f={addButton:!0,addSubmitButton:!0,cancelAddButton:!0,cancelUpdateButton:!0,deleteButton:!0,errorMessage:!0,progressBar:!0,updateButton:!0},v={base:"geoscene-attachments",loaderContainer:"geoscene-attachments__loader-container",loader:"geoscene-attachments__loader",fadeIn:"geoscene-attachments--fade-in",container:"geoscene-attachments__container",containerList:"geoscene-attachments__container--list",containerPreview:"geoscene-attachments__container--preview",actions:"geoscene-attachments__actions",deleteButton:"geoscene-attachments__delete-button",addAttachmentButton:"geoscene-attachments__add-attachment-button",errorMessage:"geoscene-attachments__error-message",items:"geoscene-attachments__items",item:"geoscene-attachments__item",itemButton:"geoscene-attachments__item-button",itemMask:"geoscene-attachments__item-mask",itemMaskIcon:"geoscene-attachments__item-mask--icon",itemImage:"geoscene-attachments__image",itemImageResizable:"geoscene-attachments__image--resizable",itemLabel:"geoscene-attachments__label",itemFilename:"geoscene-attachments__filename",itemChevronIcon:"geoscene-attachments__item-chevron-icon",itemLink:"geoscene-attachments__item-link",itemLinkOverlay:"geoscene-attachments__item-link-overlay",itemLinkOverlayIcon:"geoscene-attachments__item-link-overlay-icon",itemEditIcon:"geoscene-attachments__item-edit-icon",itemAddIcon:"geoscene-attachments__item-add-icon",itemAddButton:"geoscene-attachments__item-add-button",formNode:"geoscene-attachments__form-node",fileFieldset:"geoscene-attachments__file-fieldset",fileLabel:"geoscene-attachments__file-label",fileName:"geoscene-attachments__file-name",fileInput:"geoscene-attachments__file-input",metadata:"geoscene-attachments__metadata",metadataFieldset:"geoscene-attachments__metadata-fieldset",progressBar:"geoscene-attachments__progress-bar",geosceneWidget:"geoscene-widget",esriButton:"geoscene-button",buttonDisabled:"geoscene-button--disabled",esriButtonSecondary:"geoscene-button--secondary",esriButtonTertiary:"geoscene-button--tertiary",esriButtonThird:"geoscene-button--third",esriButtonSmall:"geoscene-button--small",esriButtonHalf:"geoscene-button--half",empty:"geoscene-widget__content--empty",iconExternalLink:"geoscene-icon-link-external",iconEdit:"geoscene-icon-edit",iconRight:"geoscene-icon-right",iconLeft:"geoscene-icon-left",iconPlus:"geoscene-icon-plus"},y=window.CSS;let B=class extends m{constructor(t,e){super(t,e),this.abilities=null,this.displayType="auto",this.graphic=null,this.label=void 0,this.messages=null,this.messagesUnits=null,this.selectedFile=null,this.submitting=!1,this.viewModel=new d,this.visibleElements={...f},this._supportsImageOrientation=y&&y.supports&&y.supports("image-orientation","from-image"),this._addAttachmentForm=null,this._updateAttachmentForm=null}initialize(){this.own(i(this,"viewModel.attachmentInfos","change",(()=>this.scheduleRender())),a(this,"viewModel.mode",(()=>this._modeChanged())))}get effectiveDisplayType(){const{displayType:t}=this;return t&&"auto"!==t?t:this.viewModel.supportsResizeAttachments?"preview":"list"}castVisibleElements(t){return{...f,...t}}addAttachment(){const{_addAttachmentForm:t,viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.addAttachment(t).then((t=>(this._set("submitting",!1),this._set("error",null),s.mode="view",t))).catch((t=>{throw this._set("submitting",!1),this._set("error",new e("attachments:add-attachment",this.messages.addErrorMessage,t)),t}))}deleteAttachment(t){const{viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.deleteAttachment(t).then((t=>(this._set("submitting",!1),this._set("error",null),s.mode="view",t))).catch((t=>{throw this._set("submitting",!1),this._set("error",new e("attachments:delete-attachment",this.messages.deleteErrorMessage,t)),t}))}updateAttachment(){const{viewModel:t}=this,{_updateAttachmentForm:s}=this;return this._set("submitting",!0),this._set("error",null),t.updateAttachment(s).then((e=>(this._set("submitting",!1),this._set("error",null),t.mode="view",e))).catch((t=>{throw this._set("submitting",!1),this._set("error",new e("attachments:update-attachment",this.messages.updateErrorMessage,t)),t}))}render(){const{submitting:t,viewModel:e}=this,{state:s}=e;return _("div",{class:this.classes(v.base,v.geosceneWidget)},t?this.renderProgressBar():null,"loading"===s?this.renderLoading():this.renderAttachments(),this.renderErrorMessage())}renderErrorMessage(){const{error:t,visibleElements:e}=this;return t&&e.errorMessage?_("div",{key:"error-message",class:v.errorMessage},t.message):null}renderAttachments(){const{mode:t,activeAttachmentInfo:e}=this.viewModel;return"add"===t?this.renderAddForm():"edit"===t?this.renderDetailsForm(e):this.renderAttachmentContainer()}renderLoading(){return _("div",{class:v.loaderContainer,key:"loader"},_("div",{class:v.loader}))}renderProgressBar(){return this.visibleElements.progressBar?_("div",{class:v.progressBar,key:"progress-bar"}):null}renderAddForm(){const{submitting:t,selectedFile:e}=this,s=t||!e,i=this.visibleElements.cancelAddButton?_("button",{type:"button",bind:this,disabled:t,onclick:this._cancelForm,class:this.classes(v.esriButton,v.esriButtonTertiary,v.esriButtonSmall,v.esriButtonHalf,t&&v.buttonDisabled)},this.messages.cancel):null,a=this.visibleElements.addSubmitButton?_("button",{type:"submit",disabled:s,class:this.classes(v.esriButton,v.esriButtonSecondary,v.esriButtonSmall,v.esriButtonHalf,{[v.buttonDisabled]:s})},this.messages.add):null,n=e?_("span",{key:"file-name",class:v.fileName},e.name):null,r=_("form",{bind:this,afterCreate:u,afterRemoved:p,"data-node-ref":"_addAttachmentForm",onsubmit:this._submitAddAttachment},_("fieldset",{class:v.fileFieldset},n,_("label",{class:this.classes(v.fileLabel,v.esriButton,v.esriButtonSecondary)},e?this.messages.changeFile:this.messages.selectFile,_("input",{class:v.fileInput,type:"file",name:"attachment",bind:this,onchange:this._handleFileInputChange}))),a,i);return _("div",{key:"add-form-container",class:v.formNode},r)}renderDetailsForm(t){const{visibleElements:e,viewModel:i,selectedFile:a,submitting:n}=this,{contentType:r,size:o,url:l}=t,{abilities:m}=i,d=n||!a,c=m.editing&&m.operations.delete&&e.deleteButton?_("button",{key:"delete-button",type:"button",disabled:n,bind:this,onclick:e=>this._submitDeleteAttachment(e,t),class:this.classes(v.esriButton,v.esriButtonSmall,v.esriButtonTertiary,v.deleteButton,{[v.buttonDisabled]:n})},this.messages.delete):null,h=m.editing&&m.operations.update&&e.updateButton?_("button",{disabled:d,key:"update-button",type:"submit",class:this.classes(v.esriButton,v.esriButtonSmall,v.esriButtonThird,{[v.buttonDisabled]:d})},this.messages.update):null,b=this.visibleElements.cancelUpdateButton?_("button",{disabled:n,key:"cancel-button",type:"button",bind:this,onclick:this._cancelForm,class:this.classes(v.esriButton,v.esriButtonSmall,v.esriButtonTertiary,v.esriButtonThird,{[v.buttonDisabled]:n})},this.messages.cancel):null,g=a?_("span",{key:"file-name",class:v.fileName},a.name):null,f=m.editing&&m.operations.update?_("fieldset",{key:"file",class:v.fileFieldset},g,_("label",{class:this.classes(v.fileLabel,v.esriButton,v.esriButtonSecondary)},this.messages.changeFile,_("input",{class:v.fileInput,type:"file",name:"attachment",bind:this,onchange:this._handleFileInputChange}))):null,y=_("fieldset",{key:"size",class:v.metadataFieldset},_("label",null,s(this.messagesUnits,o))),B=_("fieldset",{key:"content-type",class:v.metadataFieldset},_("label",null,r)),A=_("form",{bind:this,afterCreate:u,afterRemoved:p,"data-node-ref":"_updateAttachmentForm",onsubmit:this._submitUpdateAttachment},_("div",{class:v.metadata},y,B),f,_("div",{class:v.actions},c,b,h));return _("div",{key:"edit-form-container",class:v.formNode},_("a",{class:v.itemLink,href:l,rel:"noreferrer",target:"_blank"},this.renderImageMask({attachmentInfo:t,size:400}),_("div",{class:v.itemLinkOverlay},_("span",{class:v.itemLinkOverlayIcon},_("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 32 32"},_("path",{d:"M28 13h1v16H3V3h16v1H4v24h24zm-5-9h4.293L15.646 15.638l.707.707L28 4.707V9h1V3h-6z"}),_("path",{fill:"none",d:"M0 0h32v32H0z"}))))),A)}renderImageMask({attachmentInfo:t,size:e}){const{supportsResizeAttachments:s}=this.viewModel,{contentType:i,name:a,url:n}=t,r=s&&c(i),o=this._getCSSTransform(t,r),l=o?{transform:o,"image-orientation":"none"}:{},m=-1===n.indexOf("?")?"?":"&",d=r?`${n}${m}w=${e}`:h(i),u={[v.itemMaskIcon]:!r},p={[v.itemImageResizable]:s};return _("div",{class:this.classes(u,v.itemMask)},_("img",{styles:l,alt:a,src:d,class:this.classes(p,v.itemImage)}))}renderAttachmentInfo({attachmentInfo:t,displayType:e}){const{viewModel:s}=this,{abilities:i}=s,{name:a,url:n}=t,r=this.renderImageMask({attachmentInfo:t,size:"list"===e?48:400}),o=i.editing?_("span",{"aria-hidden":"true",class:this.classes(v.itemChevronIcon,b(this.container)?v.iconLeft:v.iconRight)}):null,l=[r,_("label",{class:v.itemLabel},_("span",{class:v.itemFilename},a||this.messages.noTitle),o)],m=i.editing?_("button",{key:"details-button",bind:this,class:v.itemButton,title:this.messages.attachmentDetails,"aria-label":this.messages.attachmentDetails,"data-attachment-info-id":t.id,onclick:()=>this._startEditAttachment(t),type:"button"},l):_("a",{key:"details-link",class:v.itemButton,href:n,target:"_blank"},l);return _("li",{class:v.item,key:t},m)}renderAttachmentContainer(){const{effectiveDisplayType:t,viewModel:e,visibleElements:s}=this,{attachmentInfos:i,abilities:a}=e,n=i&&i.length,r={[v.containerList]:"preview"!==t,[v.containerPreview]:"preview"===t},o=a.editing&&a.operations.add&&s.addButton?_("button",{bind:this,onclick:()=>this._startAddAttachment(),class:this.classes(v.esriButton,v.esriButtonTertiary,v.addAttachmentButton),type:"button"},_("span",{"aria-hidden":"true",class:this.classes(v.itemAddIcon,v.iconPlus)}),this.messages.add):null,l=n?_("ul",{class:v.items},i.toArray().map((e=>this.renderAttachmentInfo({attachmentInfo:e,displayType:t})))):_("div",{class:v.empty},this.messages.noAttachments);return _("div",{key:"attachments-container",class:this.classes(v.container,r)},l,o)}_modeChanged(){this._set("error",null),this._set("selectedFile",null)}_handleFileInputChange(t){const e=t.target,s=e&&e.files&&e.files.item(0);this._set("selectedFile",s)}_submitDeleteAttachment(t,e){t.preventDefault(),this.deleteAttachment(e)}_submitAddAttachment(t){t.preventDefault(),this.addAttachment()}_submitUpdateAttachment(t){t.preventDefault(),this.updateAttachment()}_startEditAttachment(t){const{viewModel:e}=this;e.activeAttachmentInfo=t,e.mode="edit"}_startAddAttachment(){this.viewModel.mode="add"}_cancelForm(t){t.preventDefault(),this.viewModel.mode="view"}_getCSSTransform(t,e){const{orientationInfo:s}=t;return!this._supportsImageOrientation&&e&&s?[s.rotation?`rotate(${s.rotation}deg)`:"",s.mirrored?"scaleX(-1)":""].join(" "):""}};t([n("viewModel.abilities")],B.prototype,"abilities",void 0),t([o()],B.prototype,"displayType",void 0),t([o({readOnly:!0})],B.prototype,"effectiveDisplayType",null),t([n("viewModel.graphic")],B.prototype,"graphic",void 0),t([o({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],B.prototype,"label",void 0),t([o(),g("geoscene/widgets/Attachments/t9n/Attachments")],B.prototype,"messages",void 0),t([o(),g("geoscene/core/t9n/Units")],B.prototype,"messagesUnits",void 0),t([o({readOnly:!0})],B.prototype,"selectedFile",void 0),t([o({readOnly:!0})],B.prototype,"submitting",void 0),t([o({readOnly:!0})],B.prototype,"error",void 0),t([o({type:d})],B.prototype,"viewModel",void 0),t([o()],B.prototype,"visibleElements",void 0),t([r("visibleElements")],B.prototype,"castVisibleElements",null),B=t([l("geoscene.widgets.Attachments")],B);const A=B;export{A as default};
|
package/widgets/Attribution.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{on as t}from"../core/watchUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import n from"./Attribution/AttributionViewModel.js";import{accessibleHandler as p}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 c={base:"
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{on as t}from"../core/watchUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import n from"./Attribution/AttributionViewModel.js";import{accessibleHandler as p}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 c={base:"geoscene-attribution geoscene-widget",poweredBy:"geoscene-attribution__powered-by",sources:"geoscene-attribution__sources",open:"geoscene-attribution--open",sourcesOpen:"geoscene-attribution__sources--open",link:"geoscene-attribution__link",widgetIcon:"geoscene-icon-description",interactive:"geoscene-interactive"};let l=class extends s{constructor(e,t){super(e,t),this._isOpen=!1,this._attributionTextOverflowed=!1,this._prevSourceNodeHeight=0,this.iconClass=c.widgetIcon,this.itemDelimiter=" | ",this.label=void 0,this.messages=null,this.view=null,this.viewModel=new n}initialize(){this.own(t(this,"viewModel.items","change",(()=>this.scheduleRender())))}get _isInteractive(){return this._isOpen||this._attributionTextOverflowed}get attributionText(){return this.viewModel.items.reduce(((e,t)=>(-1===e.indexOf(t.text)&&e.push(t.text),e)),[]).join(this.itemDelimiter)}render(){const e={[c.open]:this._isOpen};return d("div",{bind:this,class:this.classes(c.base,e),onclick:this._toggleState,onkeydown:this._toggleState},this.renderSourcesNode(),this.renderPoweredBy())}renderPoweredBy(){return d("div",{class:c.poweredBy},"Powered by"," ",d("a",{class:c.link,href:"https://www.geoscene.cn/",target:"_blank",rel:"noreferrer"},"GeoScene"))}renderSourcesNode(){const e=this._isOpen,t=this._isInteractive,i=t?0:-1,{attributionText:r}=this,o=t?"button":void 0,s={[c.sourcesOpen]:e,[c.interactive]:t};return d("div",{afterCreate:this._afterSourcesNodeCreate,afterUpdate:this._afterSourcesNodeUpdate,bind:this,class:this.classes(c.sources,s),innerHTML:r,role:o,tabIndex:i})}_afterSourcesNodeCreate(e){this._prevSourceNodeHeight=e.clientWidth}_afterSourcesNodeUpdate(e){let t=!1;const{clientHeight:i,clientWidth:r,scrollWidth:o}=e,s=o>=r,n=this._attributionTextOverflowed!==s;if(this._attributionTextOverflowed=s,n&&(t=!0),this._isOpen){const e=i<this._prevSourceNodeHeight;this._prevSourceNodeHeight=i,e&&(this._isOpen=!1,t=!0)}t&&this.scheduleRender()}_toggleState(){this._isInteractive&&(this._isOpen=!this._isOpen)}};e([r()],l.prototype,"_isOpen",void 0),e([r()],l.prototype,"_isInteractive",null),e([r()],l.prototype,"_attributionTextOverflowed",void 0),e([r()],l.prototype,"_prevSourceNodeHeight",void 0),e([r({readOnly:!0,dependsOn:["viewModel.items.length","itemDelimiter"]})],l.prototype,"attributionText",null),e([r()],l.prototype,"iconClass",void 0),e([r()],l.prototype,"itemDelimiter",void 0),e([r({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],l.prototype,"label",void 0),e([r(),a("geoscene/widgets/Attribution/t9n/Attribution")],l.prototype,"messages",void 0),e([i("viewModel.view")],l.prototype,"view",void 0),e([r({type:n})],l.prototype,"viewModel",void 0),e([p()],l.prototype,"_toggleState",null),l=e([o("geoscene.widgets.Attribution")],l);const u=l;export{u as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{getAssetUrl as s}from"../assets.js";import a from"../core/Handles.js";import{on as t,whenOnce as i}from"../core/watchUtils.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import d from"./BasemapGallery/BasemapGalleryViewModel.js";import{Heading as p}from"./support/Heading.js";import{accessibleHandler as n}from"./support/decorators/accessibleHandler.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as g}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const h={base:"
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{getAssetUrl as s}from"../assets.js";import a from"../core/Handles.js";import{on as t,whenOnce as i}from"../core/watchUtils.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import d from"./BasemapGallery/BasemapGalleryViewModel.js";import{Heading as p}from"./support/Heading.js";import{accessibleHandler as n}from"./support/decorators/accessibleHandler.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as g}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const h={base:"geoscene-basemap-gallery geoscene-widget geoscene-widget--panel-height-only",sourceLoading:"geoscene-basemap-gallery--source-loading",loader:"geoscene-basemap-gallery__loader",item:"geoscene-basemap-gallery__item",itemContainer:"geoscene-basemap-gallery__item-container",itemTitle:"geoscene-basemap-gallery__item-title",itemThumbnail:"geoscene-basemap-gallery__item-thumbnail",selectedItem:"geoscene-basemap-gallery__item--selected",itemError:"geoscene-basemap-gallery__item--error",emptyMessage:"geoscene-widget__content--empty",widgetIcon:"geoscene-icon-basemap",disabled:"geoscene-disabled",loaderAnimation:"geoscene-widget__loader-animation"};let u=class extends m{constructor(e,s){super(e,s),this._handles=new a,this.activeBasemap=null,this.disabled=!1,this.headingLevel=2,this.iconClass=h.widgetIcon,this.label=void 0,this.messages=null,this.source=null,this.view=null,this.viewModel=new d}initialize(){const e=this._handles;this.own([t(this,"viewModel.items","change",(s=>{const a="basemap-gallery-item-changes",{added:t,moved:i}=s;e.remove(a),e.add([...t,...i].map((e=>e.watch("state",(()=>this.scheduleRender())))),a),this.scheduleRender()})),e,i(this,"source",(()=>this.viewModel.load()))])}loadDependencies(){return import("@esri/calcite-components/dist/components/calcite-scrim.js")}render(){const e="loading"===this.get("source.state"),s=this.disabled||"disabled"===this.get("viewModel.state"),a=this.get("viewModel.items").toArray().map(this._renderBasemapGalleryItem,this),t={[h.sourceLoading]:e,[h.disabled]:s},i=e?g("div",{class:h.loader,key:"geoscene-basemap-gallery__loader"}):null,r=e?null:a.length>0?g("ul",{class:h.itemContainer,key:"geoscene-basemap-gallery__item-container",role:"menu"},a):g("div",{class:h.emptyMessage,key:"geoscene-basemap-gallery__empty-message"},g(p,{level:this.headingLevel},this.messages.noBasemaps));return g("div",{class:this.classes(h.base,t)},i,r)}_handleClick(e){const s=e.currentTarget["data-item"];"ready"===s.state&&(this.viewModel.activeBasemap=s.basemap)}_renderBasemapGalleryItem(e){const a=e.get("basemap.thumbnailUrl")||s("geoscene/themes/base/images/basemap-toggle-64.svg"),t=e.get("basemap.title"),i=e.get("basemap.portalItem.snippet"),r=e.get("error.message")||i||t,{viewModel:o}=this,l=!this.disabled&&"disabled"!==o.state&&"ready"===e.state?0:-1,m=o.basemapEquals(e.basemap,this.activeBasemap),d="loading"===o.state,p={[h.selectedItem]:m,[h.itemError]:"error"===e.state};return g("li",{"aria-selected":m.toString(),bind:this,class:this.classes(h.item,p),"data-item":e,onkeydown:this._handleClick,onclick:this._handleClick,role:"menuitem",tabIndex:l,title:r},g("img",{alt:"",class:h.itemThumbnail,src:a}),g("div",{class:h.itemTitle},t),"loading"===e.state||m&&d?g("calcite-scrim",null,g("span",{"aria-hidden":"true",role:"presentation",class:h.loaderAnimation})):null)}};e([r("viewModel.activeBasemap")],u.prototype,"activeBasemap",void 0),e([o()],u.prototype,"disabled",void 0),e([o()],u.prototype,"headingLevel",void 0),e([o()],u.prototype,"iconClass",void 0),e([o({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],u.prototype,"label",void 0),e([o(),c("geoscene/widgets/BasemapGallery/t9n/BasemapGallery")],u.prototype,"messages",void 0),e([r("viewModel.source")],u.prototype,"source",void 0),e([r("viewModel.view")],u.prototype,"view",void 0),e([o()],u.prototype,"viewModel",void 0),e([n()],u.prototype,"_handleClick",null),u=e([l("geoscene.widgets.BasemapGallery")],u);const b=u;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 t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{HandleOwnerMixin as s}from"../core/HandleOwner.js";import n from"../core/has.js";import{on as r,init as a}from"../core/watchUtils.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import h from"./BasemapLayerList/BasemapLayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as g}from"./LayerList/support/layerListUtils.js";import{Heading as p,incrementHeadingLevel as b}from"./support/Heading.js";import{accessibleHandler as _}from"./support/decorators/accessibleHandler.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import I from"sortablejs";const L=t.ofType(u);function w(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",C="esri-basemaplayerlist-new-ui",T="root-layers",E="data-layer-uid",S="layerUid",k={base:"esri-basemap-layer-list esri-widget esri-widget--panel",newUI:"esri-basemap-layer-list--new-ui",titleContainer:"esri-basemap-layer-list__title-container",mainHeading:"esri-basemap-layer-list__main-heading",editingCard:"esri-basemap-layer-list__editing-card",editingInput:"esri-basemap-layer-list__editing-input",editingActions:"esri-basemap-layer-list__editing-actions",editButton:"esri-basemap-layer-list__edit-button",editButtonIcon:"esri-basemap-layer-list__edit-button-icon",submitButton:"esri-basemap-layer-list__submit-button",cancelButton:"esri-basemap-layer-list__cancel-button",noItems:"esri-basemap-layer-list__no-items",horizontalRule:"esri-basemap-layer-list__hr",listHeading:"esri-basemap-layer-list__list-heading",list:"esri-basemap-layer-list__list",listRoot:"esri-basemap-layer-list__list--root",listExclusive:"esri-basemap-layer-list__list--exclusive",listInherited:"esri-basemap-layer-list__list--inherited",listIndependent:"esri-basemap-layer-list__list--independent",item:"esri-basemap-layer-list__item",itemOnlyChild:"esri-basemap-layer-list__item--only-child",itemContent:"esri-basemap-layer-list__item-content",itemError:"esri-basemap-layer-list__item--error",itemInvisible:"esri-basemap-layer-list__item--invisible",itemInvisibleAtScale:"esri-basemap-layer-list__item--invisible-at-scale",itemUpdating:"esri-basemap-layer-list__item--updating",itemChildren:"esri-basemap-layer-list__item--has-children",itemSelectable:"esri-basemap-layer-list__item--selectable",itemContainer:"esri-basemap-layer-list__item-container",actionsMenu:"esri-basemap-layer-list__item-actions-menu",actionsMenuItem:"esri-basemap-layer-list__item-actions-menu-item",actionsMenuItemActive:"esri-basemap-layer-list__item-actions-menu-item--active",actions:"esri-basemap-layer-list__item-actions",actionsList:"esri-basemap-layer-list__item-actions-list",action:"esri-basemap-layer-list__item-action",actionIcon:"esri-basemap-layer-list__item-action-icon",actionImage:"esri-basemap-layer-list__item-action-image",actionTitle:"esri-basemap-layer-list__item-action-title",actionToggle:"esri-basemap-layer-list__action-toggle",actionToggleOn:"esri-basemap-layer-list__action-toggle--on",label:"esri-basemap-layer-list__item-label",errorMessage:"esri-basemap-layer-list__item-error-message",title:"esri-basemap-layer-list__item-title",toggleVisible:"esri-basemap-layer-list__item-toggle",toggleVisibleIcon:"esri-basemap-layer-list__item-toggle-icon",toggleIcon:"esri-basemap-layer-list__item-toggle-icon",radioIcon:"esri-basemap-layer-list__item-radio-icon",childToggle:"esri-basemap-layer-list__child-toggle",childToggleOpen:"esri-basemap-layer-list__child-toggle--open",childOpened:"esri-basemap-layer-list__child-toggle-icon--opened",childClosed:"esri-basemap-layer-list__child-toggle-icon--closed",childClosed_RTL:"esri-basemap-layer-list__child-toggle-icon--closed-rtl",sortableChosen:"esri-basemap-layer-list--chosen",button:"esri-button",buttonTertiary:"esri-button--tertiary",input:"esri-input",disabled:"esri-disabled",disabledElement:"esri-disabled-element",hidden:"esri-hidden",rotating:"esri-rotating",heading:"esri-widget__heading",iconEdit:"geoscene-icon-edit",iconCheckMark:"geoscene-icon-check-mark",iconClose:"geoscene-icon-close",iconEllipses:"geoscene-icon-handle-horizontal",iconVisible:"geoscene-icon-visible",iconInvisible:"geoscene-icon-non-visible",iconRadioSelected:"geoscene-icon-radio-checked",iconRadioUnselected:"geoscene-icon-radio-unchecked",iconNoticeTriangle:"geoscene-icon-notice-triangle",iconChildrenOpen:"geoscene-icon-down-arrow",iconDownArrow:"geoscene-icon-down-arrow",iconRightArrow:"geoscene-icon-right-triangle-arrow",iconLeftArrow:"geoscene-icon-left-triangle-arrow",iconLoading:"geoscene-icon-loading-indicator",iconDefaultAction:"geoscene-icon-default-action",widgetIcon:"geoscene-icon-layers"},B={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},R={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function O(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>O(e)))}const M={baseLayers:!0,referenceLayers:!0,statusIndicators:!0};let x=class extends(s(m)){constructor(e,t){super(e,t),this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this._newUI=n(C),this.basemapTitle=null,this.baseListItemCreatedFunction=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=k.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.referenceListItemCreatedFunction=null,this.baseItems=null,this.referenceItems=null,this.selectedItems=new L,this.view=null,this.viewModel=new h,this.visibleElements={...M}}initialize(){const{baseItems:e,referenceItems:t}=this;this.own([r(this,"baseItems","change",(()=>{this._itemsChanged(e,B.baseItems),this._toggleSortingBaseLayers()})),r(this,"referenceItems","change",(()=>this._itemsChanged(t,B.referenceItems))),a(this,"editingEnabled",(()=>this._toggleSorting()))])}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable()}castVisibleElements(e){return{...M,...e}}triggerAction(e,t){this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[k.newUI]:this._newUI,[k.hidden]:"loading"===e,[k.disabled]:"disabled"===e},i=this.renderReferenceSection(),s=this.renderBaseSection(),n=i&&s?v("hr",{class:k.horizontalRule}):null;return v("div",{class:this.classes(k.base,t)},this.renderTitleContainer(),i,n,s)}renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:k.editingInput},e.basemapTitle,v("input",{bind:this,class:k.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(k.button,k.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:k.button},e.form.ok)}renderEditingForm(){return v("div",{class:k.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this.renderEditingInput(),v("div",{class:k.editingActions},this.renderCancelButton(),this.renderSubmitButton())))}renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(k.heading,k.mainHeading)},e)}renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:k.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(k.iconEdit,k.editButtonIcon)})):null}renderTitleContainer(){return v("div",{class:k.titleContainer},this._editingTitle?this.renderEditingForm():this.renderBasemapTitle(),this.renderEditTitleButton())}renderNoLayersInfo(e,t){return v("div",{key:t,class:k.noItems},e)}renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(k.list,k.listRoot,k.listIndependent)},e.map((i=>this.renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}renderBaseHeader(){return v(p,{key:"base-heading",level:b(this.headingLevel),class:this.classes(k.heading,k.listHeading)},this.messages.baseHeading)}renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this.renderBaseHeader(),[0===s.length?this.renderNoLayersInfo(t.noBaseLayers,n):null,this.renderList(s,n)]]}renderReferenceHeader(){return v(p,{key:"reference-heading",level:b(this.headingLevel),class:this.classes(k.heading,k.listHeading)},this.messages.referenceHeading)}renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this.renderReferenceHeader(),[0===s.length?this.renderNoLayersInfo(t.noReferenceLayers,n):null,this.renderList(s,n)]]}renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,a={[k.childToggleOpen]:e.open},o=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(k.childToggle,a),tabindex:"0",role:"button","aria-controls":t,"aria-label":o,title:o},v("span",{"aria-hidden":"true",class:this.classes(k.childClosed,k.iconRightArrow)}),v("span",{"aria-hidden":"true",class:this.classes(k.childOpened,k.iconDownArrow)}),v("span",{"aria-hidden":"true",class:this.classes(k.childClosed_RTL,k.iconLeftArrow)})):null}renderError(e){return e.error?v("div",{key:"error",class:k.errorMessage,role:"alert"},v("span",null,this.messages.layerError)):null}renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[k.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(k.actionsMenuItem,s),tabindex:"0",role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:k.iconEllipses}))}renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this.renderPanelButton(n):null,a=1===i&&this._getSingleActionButton(t),o=a?this.renderAction({item:e,action:a,singleAction:!0}):null,l=!a&&i?this.renderActionsMenuIcon(e,s):null;return l||r||a?v("div",{key:"actions-menu",class:k.actionsMenu},r,o,l):null}renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=!!e.error,a=!!n.length&&!r,{exclusive:o,inherited:l}=R,d={[k.listExclusive]:s===o,[k.listInherited]:s===l,[k.listIndependent]:s!==l&&s!==o};return a?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(k.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===o?"radiogroup":"group",hidden:!e.open||null},null==n?void 0:n.map((t=>this.renderItem({item:t,parent:e}))).toArray()):null}renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,a=`${n}__list`,{panel:o}=e,l=this._filterActions(e.actionsSections),d=this._countActions(l);return[v("div",{key:"list-item-container",class:k.itemContainer},this.renderChildrenToggle(e,a),this.renderLabel(e,t,i),this.renderActionsMenu(e,l,d,r)),this.renderError(e),d?this.renderActionsSections(e,l,r):null,o&&o.open?o.render():null,this.renderChildList(e,a)]}renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{_newUI:n,id:r,editingEnabled:a,selectedItems:o,visibleElements:l}=this,{children:d}=e,c=`${`${r}_${e.uid}`}__title`,m=!!e.error,h=!!d.length&&!m,u={[k.itemChildren]:h,[k.itemError]:!!m,[k.itemUpdating]:e.updating&&!t&&l.statusIndicators,[k.itemInvisible]:n&&!e.visible,[k.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[k.itemSelectable]:a};if(a){var p;const n={[E]:null==(p=e.layer)?void 0:p.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(k.item,u,{[k.itemOnlyChild]:s}),"aria-labelledby":c,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":g(e,o)?"true":"false",role:"option",...n},this.renderItemContent(e,t,c))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(k.item,u),"aria-labelledby":c},this.renderItemContent(e,t,c))}renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:k.title},s)}renderItemToggleIcon(e,t){const{_newUI:i}=this,{exclusive:s}=R,n=t&&t.visibilityMode,r={[k.toggleVisibleIcon]:i,[k.toggleIcon]:i&&n!==s,[k.radioIcon]:i&&n===s,[k.iconRadioSelected]:n===s&&e.visible,[k.iconRadioUnselected]:n===s&&!e.visible,[k.iconVisible]:n!==s&&e.visible,[k.iconInvisible]:n!==s&&!e.visible};return v("span",{key:"item-toggle-icon",class:this.classes(r),"aria-hidden":"true"})}renderItemToggle(e,t,i){const{editingEnabled:s}=this,{exclusive:n}=R,r=t&&t.visibilityMode,a=r===n?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:k.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":r,tabIndex:0,"aria-checked":e.visible?"true":"false",role:a,"aria-labelledby":i}:{key:"item-toggle",class:k.toggleVisible},this.renderItemToggleIcon(e,t))}renderItemError(e){return e.error?v("span",{key:"notice-triangle","aria-hidden":"true",class:k.iconNoticeTriangle}):null}renderLabel(e,t,i){const{editingEnabled:s,_newUI:n}=this,{inherited:r,exclusive:a}=R,o=null==t?void 0:t.visibilityMode,l=o===a?"radio":"switch",d=[this.renderItemToggle(e,t,i),this.renderItemTitle(e,i)];n&&d.reverse();const c=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:k.label}:{key:`item-label-with-selection-${e.uid}`,class:k.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",role:l,"aria-labelledby":i},d);return o===r||e.error?v("div",{key:`item-label-container-${e.uid}`,class:k.label},this.renderItemError(e),this.renderItemTitle(e,i)):c}renderPanelButton(e){const{className:t,open:i,title:s,image:n}=e,r=n||t?t:k.iconDefaultAction,a=this._getIconImageStyles(e),o={[k.actionsMenuItemActive]:i},l={[k.actionImage]:!!a["background-image"]};return r&&(l[r]=!!r),v("div",{key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(k.actionsMenuItem,o),role:"button",tabindex:"0",title:s,"aria-label":s},v("span",{class:this.classes(l),styles:a}))}renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:k.actionsList},this.renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:k.actions,hidden:!e.actionsOpen||null},s)}renderActionSection(e,t){return(t&&t.toArray()).map((t=>this.renderAction({item:e,action:t})))}renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:k.iconDefaultAction,r={[k.actionImage]:!t&&!!s["background-image"],[k.iconLoading]:t,[k.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(k.actionIcon,r),styles:s})}renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:k.actionTitle},e)}renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:a}=i,o={[k.actionsMenuItem]:s&&"button"===i.type,[k.action]:n||!s&&"toggle"!==i.type,[k.actionToggle]:!n&&"toggle"===i.type,[k.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[k.disabledElement]:r},l=[this.renderActionIcon(i),this.renderActionTitle(a,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:o,tabindex:"0",title:a,"aria-label":a},l):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:o,tabindex:"0",role:"button",title:a,"aria-label":a},l)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;(null==e?void 0:e.el)&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;(null==e?void 0:e.el)&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){var t;e.preventDefault();const i=null==(t=this._editTitleInput)?void 0:t.value;null!=i&&i.trim()&&(this.basemapTitle=i),this._toggleEditingTitle()}_itemMovedList(e){const t=e.item["data-item"],i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,{newIndex:n}=e;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=I.create(t,{dataIdAttr:E,group:T,filter:`.${k.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:k.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=I.create(t,{dataIdAttr:E,group:T,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:k.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>this.errorsVisible||!e.error))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).getItemAt(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.get("view.map.basemap.baseLayers"):"reference"===e?this.get("view.map.basemap.referenceLayers"):null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){var t;const{_focusSortUid:i}=this;if(!e||!i)return;(null==(t=e["data-item"].layer)?void 0:t.uid)===i&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(-1===t.indexOf(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=n["data-item"],a=n.dataset.itemType,{_sortableBaseLayers:o,_sortableReferenceLayers:l,selectedItems:d}=this,c="base"===a?o:"reference"===a?l:null;if(!c)return;const m=g(r,d),h=c.toArray(),u=e.target,p=h.indexOf(u.dataset[S]),{baseItems:b,referenceItems:_}=this.viewModel;if(-1!==p){if("ArrowDown"===s){var y;const e=p+1,t=e>=h.length;if(t&&"reference"===a&&m){var f;const e=b.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=null==(f=r.layer)?void 0:f.uid,void this.scheduleRender()}if(t&&"reference"===a){var v;const e=b.getItemAt(0);return this._focusSortUid=null==e||null==(v=e.layer)?void 0:v.uid,void this.scheduleRender()}if(t)return;return m&&(w(h,p,e),c.sort(h),this._sortLayersToItems({type:a,itemIds:c.toArray()})),this._focusSortUid=null==(y=r.layer)?void 0:y.uid,void this.scheduleRender()}if("ArrowUp"===s){var I;const e=p-1,t=e<0;if(t&&"base"===a&&m){var L;if(1===b.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=null==(L=r.layer)?void 0:L.uid,void this.scheduleRender()}if(t&&"base"===a){var A;const e=_.getItemAt(_.length-1);return this._focusSortUid=null==e||null==(A=e.layer)?void 0:A.uid,void this.scheduleRender()}if(t)return;m&&(w(h,p,e),c.sort(h),this._sortLayersToItems({type:a,itemIds:c.toArray()})),this._focusSortUid=null==(I=r.layer)?void 0:I.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.handles.add(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.handles.add([a(e,["className","image","id","title","visible"],(()=>this.scheduleRender()))],t):this.handles.add([a(e,["className","id","title","visible","value","displayValueEnabled","max","min","step"],(()=>this.scheduleRender()))],t):this.handles.add([a(e,["className","image","id","title","visible","value"],(()=>this.scheduleRender()))],t)}_renderOnItemChanges(e,t){this.handles.add([a(e,["actionsOpen","visible","open","updating","title","visibleAtCurrentScale","error","visibilityMode","panel","panel.title","panel.content","panel.className"],(()=>this.scheduleRender())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.handles.remove(t),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="geoscene.widgets.LayerList.ListItemPanel"===e.declaredClass||"geoscene.support.Action.ActionButton"===e.declaredClass||"geoscene.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:null}}_toggleActionsOpen(e){e.stopPropagation();const t=e.currentTarget["data-item"],{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>O(e))),r.forEach((e=>O(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=e.currentTarget["data-panel"];t&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=t["data-action"],s=t["data-item"];"toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s)}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=t["data-item"];i===R.exclusive&&s.visible||(s.visible=!s.visible)}_toggleChildrenClick(e){e.stopPropagation();const t=e.currentTarget["data-item"];t.open=!t.open}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=e.currentTarget["data-item"],r=g(n,i),{length:a}=i;if(!s)return a&&!(r&&1===a)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}};e([o("viewModel.basemapTitle")],x.prototype,"basemapTitle",void 0),e([o("viewModel.baseListItemCreatedFunction")],x.prototype,"baseListItemCreatedFunction",void 0),e([d()],x.prototype,"editingEnabled",void 0),e([d()],x.prototype,"errorsVisible",void 0),e([d()],x.prototype,"headingLevel",void 0),e([d()],x.prototype,"iconClass",void 0),e([d({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],x.prototype,"label",void 0),e([d(),y("geoscene/widgets/BasemapLayerList/t9n/BasemapLayerList")],x.prototype,"messages",void 0),e([d(),y("geoscene/t9n/common")],x.prototype,"messagesCommon",void 0),e([d()],x.prototype,"multipleSelectionEnabled",void 0),e([o("viewModel.referenceListItemCreatedFunction")],x.prototype,"referenceListItemCreatedFunction",void 0),e([o("viewModel.baseItems")],x.prototype,"baseItems",void 0),e([o("viewModel.referenceItems")],x.prototype,"referenceItems",void 0),e([d()],x.prototype,"selectedItems",void 0),e([o("viewModel.view")],x.prototype,"view",void 0),e([f("trigger-action"),d({type:h})],x.prototype,"viewModel",void 0),e([d()],x.prototype,"visibleElements",void 0),e([l("visibleElements")],x.prototype,"castVisibleElements",null),e([_()],x.prototype,"_toggleActionsOpen",null),e([_()],x.prototype,"_triggerPanel",null),e([_()],x.prototype,"_triggerAction",null),e([_()],x.prototype,"_toggleVisibility",null),e([_()],x.prototype,"_toggleChildrenClick",null),e([_()],x.prototype,"_toggleSelection",null),x=e([c("geoscene.widgets.BasemapLayerList")],x);const U=x;export{U as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{HandleOwnerMixin as s}from"../core/HandleOwner.js";import n from"../core/has.js";import{on as r,init as a}from"../core/watchUtils.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import h from"./BasemapLayerList/BasemapLayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as g}from"./LayerList/support/layerListUtils.js";import{Heading as p,incrementHeadingLevel as b}from"./support/Heading.js";import{accessibleHandler as _}from"./support/decorators/accessibleHandler.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import I from"sortablejs";const L=t.ofType(u);function w(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",C="geoscene-basemaplayerlist-new-ui",T="root-layers",E="data-layer-uid",S="layerUid",k={base:"geoscene-basemap-layer-list geoscene-widget geoscene-widget--panel",newUI:"geoscene-basemap-layer-list--new-ui",titleContainer:"geoscene-basemap-layer-list__title-container",mainHeading:"geoscene-basemap-layer-list__main-heading",editingCard:"geoscene-basemap-layer-list__editing-card",editingInput:"geoscene-basemap-layer-list__editing-input",editingActions:"geoscene-basemap-layer-list__editing-actions",editButton:"geoscene-basemap-layer-list__edit-button",editButtonIcon:"geoscene-basemap-layer-list__edit-button-icon",submitButton:"geoscene-basemap-layer-list__submit-button",cancelButton:"geoscene-basemap-layer-list__cancel-button",noItems:"geoscene-basemap-layer-list__no-items",horizontalRule:"geoscene-basemap-layer-list__hr",listHeading:"geoscene-basemap-layer-list__list-heading",list:"geoscene-basemap-layer-list__list",listRoot:"geoscene-basemap-layer-list__list--root",listExclusive:"geoscene-basemap-layer-list__list--exclusive",listInherited:"geoscene-basemap-layer-list__list--inherited",listIndependent:"geoscene-basemap-layer-list__list--independent",item:"geoscene-basemap-layer-list__item",itemOnlyChild:"geoscene-basemap-layer-list__item--only-child",itemContent:"geoscene-basemap-layer-list__item-content",itemError:"geoscene-basemap-layer-list__item--error",itemInvisible:"geoscene-basemap-layer-list__item--invisible",itemInvisibleAtScale:"geoscene-basemap-layer-list__item--invisible-at-scale",itemUpdating:"geoscene-basemap-layer-list__item--updating",itemChildren:"geoscene-basemap-layer-list__item--has-children",itemSelectable:"geoscene-basemap-layer-list__item--selectable",itemContainer:"geoscene-basemap-layer-list__item-container",actionsMenu:"geoscene-basemap-layer-list__item-actions-menu",actionsMenuItem:"geoscene-basemap-layer-list__item-actions-menu-item",actionsMenuItemActive:"geoscene-basemap-layer-list__item-actions-menu-item--active",actions:"geoscene-basemap-layer-list__item-actions",actionsList:"geoscene-basemap-layer-list__item-actions-list",action:"geoscene-basemap-layer-list__item-action",actionIcon:"geoscene-basemap-layer-list__item-action-icon",actionImage:"geoscene-basemap-layer-list__item-action-image",actionTitle:"geoscene-basemap-layer-list__item-action-title",actionToggle:"geoscene-basemap-layer-list__action-toggle",actionToggleOn:"geoscene-basemap-layer-list__action-toggle--on",label:"geoscene-basemap-layer-list__item-label",errorMessage:"geoscene-basemap-layer-list__item-error-message",title:"geoscene-basemap-layer-list__item-title",toggleVisible:"geoscene-basemap-layer-list__item-toggle",toggleVisibleIcon:"geoscene-basemap-layer-list__item-toggle-icon",toggleIcon:"geoscene-basemap-layer-list__item-toggle-icon",radioIcon:"geoscene-basemap-layer-list__item-radio-icon",childToggle:"geoscene-basemap-layer-list__child-toggle",childToggleOpen:"geoscene-basemap-layer-list__child-toggle--open",childOpened:"geoscene-basemap-layer-list__child-toggle-icon--opened",childClosed:"geoscene-basemap-layer-list__child-toggle-icon--closed",childClosed_RTL:"geoscene-basemap-layer-list__child-toggle-icon--closed-rtl",sortableChosen:"geoscene-basemap-layer-list--chosen",button:"geoscene-button",buttonTertiary:"geoscene-button--tertiary",input:"geoscene-input",disabled:"geoscene-disabled",disabledElement:"geoscene-disabled-element",hidden:"geoscene-hidden",rotating:"geoscene-rotating",heading:"geoscene-widget__heading",iconEdit:"geoscene-icon-edit",iconCheckMark:"geoscene-icon-check-mark",iconClose:"geoscene-icon-close",iconEllipses:"geoscene-icon-handle-horizontal",iconVisible:"geoscene-icon-visible",iconInvisible:"geoscene-icon-non-visible",iconRadioSelected:"geoscene-icon-radio-checked",iconRadioUnselected:"geoscene-icon-radio-unchecked",iconNoticeTriangle:"geoscene-icon-notice-triangle",iconChildrenOpen:"geoscene-icon-down-arrow",iconDownArrow:"geoscene-icon-down-arrow",iconRightArrow:"geoscene-icon-right-triangle-arrow",iconLeftArrow:"geoscene-icon-left-triangle-arrow",iconLoading:"geoscene-icon-loading-indicator",iconDefaultAction:"geoscene-icon-default-action",widgetIcon:"geoscene-icon-layers"},B={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},R={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function O(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>O(e)))}const M={baseLayers:!0,referenceLayers:!0,statusIndicators:!0};let x=class extends(s(m)){constructor(e,t){super(e,t),this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this._newUI=n(C),this.basemapTitle=null,this.baseListItemCreatedFunction=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=k.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.referenceListItemCreatedFunction=null,this.baseItems=null,this.referenceItems=null,this.selectedItems=new L,this.view=null,this.viewModel=new h,this.visibleElements={...M}}initialize(){const{baseItems:e,referenceItems:t}=this;this.own([r(this,"baseItems","change",(()=>{this._itemsChanged(e,B.baseItems),this._toggleSortingBaseLayers()})),r(this,"referenceItems","change",(()=>this._itemsChanged(t,B.referenceItems))),a(this,"editingEnabled",(()=>this._toggleSorting()))])}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable()}castVisibleElements(e){return{...M,...e}}triggerAction(e,t){this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[k.newUI]:this._newUI,[k.hidden]:"loading"===e,[k.disabled]:"disabled"===e},i=this.renderReferenceSection(),s=this.renderBaseSection(),n=i&&s?v("hr",{class:k.horizontalRule}):null;return v("div",{class:this.classes(k.base,t)},this.renderTitleContainer(),i,n,s)}renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:k.editingInput},e.basemapTitle,v("input",{bind:this,class:k.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(k.button,k.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:k.button},e.form.ok)}renderEditingForm(){return v("div",{class:k.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this.renderEditingInput(),v("div",{class:k.editingActions},this.renderCancelButton(),this.renderSubmitButton())))}renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(k.heading,k.mainHeading)},e)}renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:k.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(k.iconEdit,k.editButtonIcon)})):null}renderTitleContainer(){return v("div",{class:k.titleContainer},this._editingTitle?this.renderEditingForm():this.renderBasemapTitle(),this.renderEditTitleButton())}renderNoLayersInfo(e,t){return v("div",{key:t,class:k.noItems},e)}renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(k.list,k.listRoot,k.listIndependent)},e.map((i=>this.renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}renderBaseHeader(){return v(p,{key:"base-heading",level:b(this.headingLevel),class:this.classes(k.heading,k.listHeading)},this.messages.baseHeading)}renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this.renderBaseHeader(),[0===s.length?this.renderNoLayersInfo(t.noBaseLayers,n):null,this.renderList(s,n)]]}renderReferenceHeader(){return v(p,{key:"reference-heading",level:b(this.headingLevel),class:this.classes(k.heading,k.listHeading)},this.messages.referenceHeading)}renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this.renderReferenceHeader(),[0===s.length?this.renderNoLayersInfo(t.noReferenceLayers,n):null,this.renderList(s,n)]]}renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,a={[k.childToggleOpen]:e.open},o=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(k.childToggle,a),tabindex:"0",role:"button","aria-controls":t,"aria-label":o,title:o},v("span",{"aria-hidden":"true",class:this.classes(k.childClosed,k.iconRightArrow)}),v("span",{"aria-hidden":"true",class:this.classes(k.childOpened,k.iconDownArrow)}),v("span",{"aria-hidden":"true",class:this.classes(k.childClosed_RTL,k.iconLeftArrow)})):null}renderError(e){return e.error?v("div",{key:"error",class:k.errorMessage,role:"alert"},v("span",null,this.messages.layerError)):null}renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[k.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(k.actionsMenuItem,s),tabindex:"0",role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:k.iconEllipses}))}renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this.renderPanelButton(n):null,a=1===i&&this._getSingleActionButton(t),o=a?this.renderAction({item:e,action:a,singleAction:!0}):null,l=!a&&i?this.renderActionsMenuIcon(e,s):null;return l||r||a?v("div",{key:"actions-menu",class:k.actionsMenu},r,o,l):null}renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=!!e.error,a=!!n.length&&!r,{exclusive:o,inherited:l}=R,d={[k.listExclusive]:s===o,[k.listInherited]:s===l,[k.listIndependent]:s!==l&&s!==o};return a?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(k.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===o?"radiogroup":"group",hidden:!e.open||null},null==n?void 0:n.map((t=>this.renderItem({item:t,parent:e}))).toArray()):null}renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,a=`${n}__list`,{panel:o}=e,l=this._filterActions(e.actionsSections),d=this._countActions(l);return[v("div",{key:"list-item-container",class:k.itemContainer},this.renderChildrenToggle(e,a),this.renderLabel(e,t,i),this.renderActionsMenu(e,l,d,r)),this.renderError(e),d?this.renderActionsSections(e,l,r):null,o&&o.open?o.render():null,this.renderChildList(e,a)]}renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{_newUI:n,id:r,editingEnabled:a,selectedItems:o,visibleElements:l}=this,{children:d}=e,c=`${`${r}_${e.uid}`}__title`,m=!!e.error,h=!!d.length&&!m,u={[k.itemChildren]:h,[k.itemError]:!!m,[k.itemUpdating]:e.updating&&!t&&l.statusIndicators,[k.itemInvisible]:n&&!e.visible,[k.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[k.itemSelectable]:a};if(a){var p;const n={[E]:null==(p=e.layer)?void 0:p.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(k.item,u,{[k.itemOnlyChild]:s}),"aria-labelledby":c,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":g(e,o)?"true":"false",role:"option",...n},this.renderItemContent(e,t,c))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(k.item,u),"aria-labelledby":c},this.renderItemContent(e,t,c))}renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:k.title},s)}renderItemToggleIcon(e,t){const{_newUI:i}=this,{exclusive:s}=R,n=t&&t.visibilityMode,r={[k.toggleVisibleIcon]:i,[k.toggleIcon]:i&&n!==s,[k.radioIcon]:i&&n===s,[k.iconRadioSelected]:n===s&&e.visible,[k.iconRadioUnselected]:n===s&&!e.visible,[k.iconVisible]:n!==s&&e.visible,[k.iconInvisible]:n!==s&&!e.visible};return v("span",{key:"item-toggle-icon",class:this.classes(r),"aria-hidden":"true"})}renderItemToggle(e,t,i){const{editingEnabled:s}=this,{exclusive:n}=R,r=t&&t.visibilityMode,a=r===n?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:k.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":r,tabIndex:0,"aria-checked":e.visible?"true":"false",role:a,"aria-labelledby":i}:{key:"item-toggle",class:k.toggleVisible},this.renderItemToggleIcon(e,t))}renderItemError(e){return e.error?v("span",{key:"notice-triangle","aria-hidden":"true",class:k.iconNoticeTriangle}):null}renderLabel(e,t,i){const{editingEnabled:s,_newUI:n}=this,{inherited:r,exclusive:a}=R,o=null==t?void 0:t.visibilityMode,l=o===a?"radio":"switch",d=[this.renderItemToggle(e,t,i),this.renderItemTitle(e,i)];n&&d.reverse();const c=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:k.label}:{key:`item-label-with-selection-${e.uid}`,class:k.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",role:l,"aria-labelledby":i},d);return o===r||e.error?v("div",{key:`item-label-container-${e.uid}`,class:k.label},this.renderItemError(e),this.renderItemTitle(e,i)):c}renderPanelButton(e){const{className:t,open:i,title:s,image:n}=e,r=n||t?t:k.iconDefaultAction,a=this._getIconImageStyles(e),o={[k.actionsMenuItemActive]:i},l={[k.actionImage]:!!a["background-image"]};return r&&(l[r]=!!r),v("div",{key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(k.actionsMenuItem,o),role:"button",tabindex:"0",title:s,"aria-label":s},v("span",{class:this.classes(l),styles:a}))}renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:k.actionsList},this.renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:k.actions,hidden:!e.actionsOpen||null},s)}renderActionSection(e,t){return(t&&t.toArray()).map((t=>this.renderAction({item:e,action:t})))}renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:k.iconDefaultAction,r={[k.actionImage]:!t&&!!s["background-image"],[k.iconLoading]:t,[k.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(k.actionIcon,r),styles:s})}renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:k.actionTitle},e)}renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:a}=i,o={[k.actionsMenuItem]:s&&"button"===i.type,[k.action]:n||!s&&"toggle"!==i.type,[k.actionToggle]:!n&&"toggle"===i.type,[k.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[k.disabledElement]:r},l=[this.renderActionIcon(i),this.renderActionTitle(a,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:o,tabindex:"0",title:a,"aria-label":a},l):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:o,tabindex:"0",role:"button",title:a,"aria-label":a},l)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;(null==e?void 0:e.el)&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;(null==e?void 0:e.el)&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){var t;e.preventDefault();const i=null==(t=this._editTitleInput)?void 0:t.value;null!=i&&i.trim()&&(this.basemapTitle=i),this._toggleEditingTitle()}_itemMovedList(e){const t=e.item["data-item"],i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,{newIndex:n}=e;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=I.create(t,{dataIdAttr:E,group:T,filter:`.${k.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:k.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=I.create(t,{dataIdAttr:E,group:T,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:k.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>this.errorsVisible||!e.error))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).getItemAt(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.get("view.map.basemap.baseLayers"):"reference"===e?this.get("view.map.basemap.referenceLayers"):null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){var t;const{_focusSortUid:i}=this;if(!e||!i)return;(null==(t=e["data-item"].layer)?void 0:t.uid)===i&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(-1===t.indexOf(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=n["data-item"],a=n.dataset.itemType,{_sortableBaseLayers:o,_sortableReferenceLayers:l,selectedItems:d}=this,c="base"===a?o:"reference"===a?l:null;if(!c)return;const m=g(r,d),h=c.toArray(),u=e.target,p=h.indexOf(u.dataset[S]),{baseItems:b,referenceItems:_}=this.viewModel;if(-1!==p){if("ArrowDown"===s){var y;const e=p+1,t=e>=h.length;if(t&&"reference"===a&&m){var f;const e=b.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=null==(f=r.layer)?void 0:f.uid,void this.scheduleRender()}if(t&&"reference"===a){var v;const e=b.getItemAt(0);return this._focusSortUid=null==e||null==(v=e.layer)?void 0:v.uid,void this.scheduleRender()}if(t)return;return m&&(w(h,p,e),c.sort(h),this._sortLayersToItems({type:a,itemIds:c.toArray()})),this._focusSortUid=null==(y=r.layer)?void 0:y.uid,void this.scheduleRender()}if("ArrowUp"===s){var I;const e=p-1,t=e<0;if(t&&"base"===a&&m){var L;if(1===b.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=null==(L=r.layer)?void 0:L.uid,void this.scheduleRender()}if(t&&"base"===a){var A;const e=_.getItemAt(_.length-1);return this._focusSortUid=null==e||null==(A=e.layer)?void 0:A.uid,void this.scheduleRender()}if(t)return;m&&(w(h,p,e),c.sort(h),this._sortLayersToItems({type:a,itemIds:c.toArray()})),this._focusSortUid=null==(I=r.layer)?void 0:I.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.handles.add(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.handles.add([a(e,["className","image","id","title","visible"],(()=>this.scheduleRender()))],t):this.handles.add([a(e,["className","id","title","visible","value","displayValueEnabled","max","min","step"],(()=>this.scheduleRender()))],t):this.handles.add([a(e,["className","image","id","title","visible","value"],(()=>this.scheduleRender()))],t)}_renderOnItemChanges(e,t){this.handles.add([a(e,["actionsOpen","visible","open","updating","title","visibleAtCurrentScale","error","visibilityMode","panel","panel.title","panel.content","panel.className"],(()=>this.scheduleRender())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.handles.remove(t),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="geoscene.widgets.LayerList.ListItemPanel"===e.declaredClass||"geoscene.support.Action.ActionButton"===e.declaredClass||"geoscene.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:null}}_toggleActionsOpen(e){e.stopPropagation();const t=e.currentTarget["data-item"],{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>O(e))),r.forEach((e=>O(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=e.currentTarget["data-panel"];t&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=t["data-action"],s=t["data-item"];"toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s)}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=t["data-item"];i===R.exclusive&&s.visible||(s.visible=!s.visible)}_toggleChildrenClick(e){e.stopPropagation();const t=e.currentTarget["data-item"];t.open=!t.open}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=e.currentTarget["data-item"],r=g(n,i),{length:a}=i;if(!s)return a&&!(r&&1===a)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}};e([o("viewModel.basemapTitle")],x.prototype,"basemapTitle",void 0),e([o("viewModel.baseListItemCreatedFunction")],x.prototype,"baseListItemCreatedFunction",void 0),e([d()],x.prototype,"editingEnabled",void 0),e([d()],x.prototype,"errorsVisible",void 0),e([d()],x.prototype,"headingLevel",void 0),e([d()],x.prototype,"iconClass",void 0),e([d({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],x.prototype,"label",void 0),e([d(),y("geoscene/widgets/BasemapLayerList/t9n/BasemapLayerList")],x.prototype,"messages",void 0),e([d(),y("geoscene/t9n/common")],x.prototype,"messagesCommon",void 0),e([d()],x.prototype,"multipleSelectionEnabled",void 0),e([o("viewModel.referenceListItemCreatedFunction")],x.prototype,"referenceListItemCreatedFunction",void 0),e([o("viewModel.baseItems")],x.prototype,"baseItems",void 0),e([o("viewModel.referenceItems")],x.prototype,"referenceItems",void 0),e([d()],x.prototype,"selectedItems",void 0),e([o("viewModel.view")],x.prototype,"view",void 0),e([f("trigger-action"),d({type:h})],x.prototype,"viewModel",void 0),e([d()],x.prototype,"visibleElements",void 0),e([l("visibleElements")],x.prototype,"castVisibleElements",null),e([_()],x.prototype,"_toggleActionsOpen",null),e([_()],x.prototype,"_triggerPanel",null),e([_()],x.prototype,"_triggerAction",null),e([_()],x.prototype,"_toggleVisibility",null),e([_()],x.prototype,"_toggleChildrenClick",null),e([_()],x.prototype,"_toggleSelection",null),x=e([c("geoscene.widgets.BasemapLayerList")],x);const U=x;export{U as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import{typeCast as t}from"../../core/compilerUtils.js";import a from"../../core/Evented.js";import{isSome as s}from"../../core/maybe.js";import{watch as i,whenOnce as r,initial as o}from"../../core/reactiveUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as p}from"../../core/accessorSupport/decorators/cast.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import{isLoaded as c,canProjectWithoutEngine as m,load as h}from"../../geometry/projection.js";import{equals as u}from"../../geometry/support/spatialReferenceUtils.js";import{esriBasemapDefinitions as f}from"../../support/basemapDefinitions.js";import{ensureType as d,destroyCache as g,findSpatialReference as v,getWellKnownBasemapId as B}from"../../support/basemapUtils.js";let b=class extends a.EventedAccessor{constructor(e){super(e),this._basemapCache={},this._loadingProjectionEngine=!1,this.nextBasemap=d("
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import{typeCast as t}from"../../core/compilerUtils.js";import a from"../../core/Evented.js";import{isSome as s}from"../../core/maybe.js";import{watch as i,whenOnce as r,initial as o}from"../../core/reactiveUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as p}from"../../core/accessorSupport/decorators/cast.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import{isLoaded as c,canProjectWithoutEngine as m,load as h}from"../../geometry/projection.js";import{equals as u}from"../../geometry/support/spatialReferenceUtils.js";import{esriBasemapDefinitions as f}from"../../support/basemapDefinitions.js";import{ensureType as d,destroyCache as g,findSpatialReference as v,getWellKnownBasemapId as B}from"../../support/basemapUtils.js";let b=class extends a.EventedAccessor{constructor(e){super(e),this._basemapCache={},this._loadingProjectionEngine=!1,this.nextBasemap=d("tianditu-topography",this._basemapCache),this.view=null,this.toggle=this.toggle.bind(this)}initialize(){i((()=>this.nextBasemap),(e=>{e&&!e.loaded&&e.load().catch((()=>{}))}),o)}destroy(){this.view=null,g(this._basemapCache),this._basemapCache=null}get _nextBasemapSpatialReferenceTask(){return v(this.view,this.nextBasemap)}get activeBasemap(){var e,t,a;return d(null!=(e=null==(t=this.view)||null==(a=t.map)?void 0:a.basemap)?e:"topo",this._basemapCache)}castNextBasemap(e){return d(e,this._basemapCache)}get state(){var e;return null!=(e=this.view)&&e.ready?this._loadingProjectionEngine?"loading":"ready":"disabled"}async toggle(){if("disabled"===this.state)return;const{activeBasemap:e,nextBasemap:t}=this,a=!("spatialReferenceLocked"in this.view)||this.view.spatialReferenceLocked;if(!a){if(await r((()=>!this._nextBasemapSpatialReferenceTask.updating)),t!==this.nextBasemap||e!==this.activeBasemap)return;const{spatialReference:a}=this._nextBasemapSpatialReferenceTask;if(!s(a)||u(this.view.spatialReference,a)||c()||m(this.view.spatialReference,a)||(this._loadingProjectionEngine=!0,await h(),this._loadingProjectionEngine=!1),t!==this.nextBasemap||e!==this.activeBasemap)return}this.view.map.basemap=t,a||!s(this._nextBasemapSpatialReferenceTask.spatialReference)||u(this.view.spatialReference,this._nextBasemapSpatialReferenceTask.spatialReference)||(this.view.spatialReference=this._nextBasemapSpatialReferenceTask.spatialReference),this.nextBasemap=e,this.emit("toggle",{previous:e,current:t})}static getThumbnailUrl(e){if(!e)return null;const{thumbnailUrl:a}=e;if(a)return a;const s=B(e);if(s)return f[s].thumbnailUrl;const i=e.baseLayers.find((e=>!!t(e)().get("portalItem.thumbnailUrl")));return i?t(i)().get("portalItem.thumbnailUrl"):null}};e([n()],b.prototype,"_loadingProjectionEngine",void 0),e([n({readOnly:!0})],b.prototype,"_nextBasemapSpatialReferenceTask",null),e([n({readOnly:!0})],b.prototype,"activeBasemap",null),e([n()],b.prototype,"nextBasemap",void 0),e([p("nextBasemap")],b.prototype,"castNextBasemap",null),e([n({readOnly:!0})],b.prototype,"state",null),e([n()],b.prototype,"view",void 0),e([n()],b.prototype,"toggle",null),b=e([l("geoscene.widgets.BasemapToggle.BasemapToggleViewModel")],b);const y=b;export{y as default};
|
package/widgets/BasemapToggle.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as t}from"../core/accessorSupport/decorators/cast.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import r from"./BasemapToggle/BasemapToggleViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as m}from"./support/decorators/vmEvent.js";import{tsx as n}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const g={base:"
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as t}from"../core/accessorSupport/decorators/cast.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import r from"./BasemapToggle/BasemapToggleViewModel.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as m}from"./support/decorators/vmEvent.js";import{tsx as n}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const g={base:"geoscene-basemap-toggle geoscene-widget",secondaryBasemapImage:"geoscene-basemap-toggle__image--secondary",container:"geoscene-basemap-thumbnail geoscene-basemap-toggle__container",image:"geoscene-basemap-thumbnail__image geoscene-basemap-toggle__image",imageLoading:"geoscene-basemap-toggle__image--loading",overlay:"geoscene-basemap-thumbnail__overlay geoscene-basemap-toggle__image-overlay",title:"geoscene-basemap-thumbnail__title geoscene-basemap-toggle__title",disabled:"geoscene-disabled",loaderAnimation:"geoscene-widget__loader-animation"};function c(e){const s=r.getThumbnailUrl(e);return s?{backgroundImage:"url("+s+")"}:{backgroundImage:""}}const d={title:!1};let u=class extends i{constructor(e,s){super(e,s),this.activeBasemap=null,this.label=void 0,this.messages=null,this.nextBasemap=null,this.view=null,this.viewModel=new r,this.visibleElements={...d}}loadDependencies(){return import("@esri/calcite-components/dist/components/calcite-scrim.js")}castVisibleElements(e){return{...d,...e}}toggle(){return null}render(){const e=this.viewModel,s="disabled"===e.state?null:e.activeBasemap,t="disabled"===e.state?null:e.nextBasemap,a="loading"===e.state,o=t?t.title:"",i=t&&"loaded"!==t.loadStatus;let r;return this.visibleElements.title&&o&&(r=n("div",{class:g.overlay,key:"geoscene-basemap-toggle__overlay"},n("span",{class:g.title,title:o},o))),n("div",{class:g.base,role:"button","data-basemap-id":t?t.id:"",bind:this,onclick:this._toggle,onkeydown:this._toggle,tabIndex:0,title:this.label},n("div",{class:this.classes(g.container,g.secondaryBasemapImage)},n("div",{class:g.image,styles:c(s)})),n("div",{class:g.container},n("div",{class:this.classes(g.image,i?g.imageLoading:null),styles:c(t)},i||a?n("calcite-scrim",null,n("span",{"aria-hidden":"true",role:"presentation",class:g.loaderAnimation})):null),r))}_toggle(){this.toggle()}};e([s("viewModel.activeBasemap")],u.prototype,"activeBasemap",void 0),e([a({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],u.prototype,"label",void 0),e([a(),p("geoscene/widgets/BasemapToggle/t9n/BasemapToggle")],u.prototype,"messages",void 0),e([s("viewModel.nextBasemap")],u.prototype,"nextBasemap",void 0),e([s("viewModel.view")],u.prototype,"view",void 0),e([m("toggle"),a({type:r})],u.prototype,"viewModel",void 0),e([a()],u.prototype,"visibleElements",void 0),e([t("visibleElements")],u.prototype,"castVisibleElements",null),e([s("viewModel.toggle")],u.prototype,"toggle",null),e([l()],u.prototype,"_toggle",null),u=e([o("geoscene.widgets.BasemapToggle")],u);const b=u;export{b as default};
|