@geoscene/core 4.23.9 → 4.23.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/geoscene/core/workers/chunks/6f827a32646bab0a8777.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/IdentityModal.js +1 -1
- package/package.json +1 -1
- package/portal/schemas/definitions.js +1 -1
- package/portal/schemas/sceneLayerItem.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.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
package/widgets/Bookmarks.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{eventKey as e}from"../core/events.js";import o from"../core/Handles.js";import{isSome as i,isNone as r}from"../core/maybe.js";import{init as s,on as a,watch as n}from"../core/watchUtils.js";import{aliasOf as d}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as k}from"../core/accessorSupport/decorators/property.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as u,convertDateFormatToIntlOptions as c}from"../intl/date.js";import{SlideThumbnail as h}from"../webdoc/support/SlideThumbnail.js";import b from"./Widget.js";import _ from"./Bookmarks/BookmarksUserState.js";import p from"./Bookmarks/BookmarksViewModel.js";import g from"./FeatureTable/Grid/support/ButtonMenu.js";import B from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{Heading as v}from"./support/Heading.js";import{isActivationKey as f}from"./support/widgetUtils.js";import{messageBundle as E}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as y}from"./support/jsxFactory.js";import w from"sortablejs";function S(t,e,o){t.splice(o,0,t.splice(e,1)[0])}const x="bookmarks",A="data-bookmark-uid",T={base:"esri-bookmarks esri-widget--panel",loaderContainer:"esri-bookmarks__loader-container",loader:"esri-bookmarks__loader",fadeIn:"esri-bookmarks--fade-in",bookmarkList:"esri-bookmarks__list",bookmarkListSortable:"esri-bookmarks__list--sortable",bookmark:"esri-bookmarks__bookmark",bookmarkButton:"esri-bookmarks__bookmark-button",bookmarkImageContainer:"esri-bookmarks__bookmark-image-container",bookmarkEditButtonContainer:"esri-bookmarks__bookmark-edit-button-container",bookmarkEditButton:"esri-bookmarks__bookmark-edit-button",bookmarkDragHandle:"esri-bookmarks_bookmark-drag-handle",bookmarkDragHandleIcon:"esri-bookmarks_bookmark-drag-handle-icon",bookmarkIcon:"esri-bookmarks__bookmark-icon",bookmarkImage:"esri-bookmarks__image",bookmarkLabel:"esri-bookmarks__bookmark-label",bookmarkName:"esri-bookmarks__bookmark-name",bookmarkTimeExtent:"esri-bookmarks__bookmark-time-extent",bookmarkActive:"esri-bookmarks__bookmark--active",noBookmarksContainer:"esri-widget__content--empty",noBookmarksHeader:"esri-bookmarks__no-bookmarks-heading",noBookmarksIcon:"esri-widget__no-bookmark-icon",noBookmarksDescription:"esri-bookmarks__no-bookmarks-description",addingBookmark:"esri-bookmarks__adding-bookmark",addBookmark:"esri-bookmarks__add-bookmark",addBookmarkButton:"esri-bookmarks__add-bookmark-button",addBookmarkIcon:"esri-bookmarks__add-bookmark-icon",authoringCard:"esri-bookmarks__authoring-card",authoringContainer:"esri-bookmarks__authoring-container",authoringForm:"esri-bookmarks__authoring-form",authoringLabel:"esri-bookmarks__authoring-label",authoringActions:"esri-bookmarks__authoring-actions",authoringInputInvalid:"esri-bookmarks__authoring-input--invalid",authoringDeleteButton:"esri-bookmarks__authoring-delete-button",authoringCancelButton:"esri-bookmarks__authoring-cancel-button",timeExtentContainer:"esri-bookmarks__time-extent-container",timeExtent:"esri-bookmarks__time-extent",timeExtentGroup:"esri-bookmarks__time-extent-group",timeExtentDate:"esri-bookmarks__time-extent-date",timeExtentTime:"esri-bookmarks__time-extent-time",geosceneWidget:"esri-widget",geosceneWidgetDisabled:"esri-widget--disabled",esriButton:"esri-button",esriButtonTertiary:"esri-button--tertiary",esriInput:"esri-input",iconHandle:"geoscene-icon-handle-vertical",iconPlus:"geoscene-icon-plus",iconEdit:"geoscene-icon-edit",iconHandleHorizontal:"geoscene-icon-handle-horizontal",iconRefresh:"geoscene-icon-refresh",iconLink:"geoscene-icon-link",iconRemove:"geoscene-icon-erase",widgetIcon:"geoscene-icon-bookmark",header:"esri-widget__heading",loading:"geoscene-icon-loading-indicator",rotating:"esri-rotating"},C={addBookmark:!0,thumbnail:!0,time:!0},U=/^https:\/\/.*/i,M="geoscene.widgets.Bookmarks";let N=class extends b{constructor(t,e){super(t,e),this._handles=new o,this._addInputNode=null,this._editInputNode=null,this._urlEditInputNode=null,this._addBookmarkButtonNode=null,this._focusAddBookmarkButton=!1,this._focusEditInputBox=!1,this._focusAddInputBox=!1,this._focusUrlEditInputBox=!1,this._sortable=null,this._sortableNode=null,this._focusSortUid=null,this._selectedSortUid=null,this._sortableSavedItems=null,this._editIncludeTimeExtent=null,this._userState=null,this.defaultCreateOptions=null,this.defaultEditOptions=null,this.bookmarks=null,this.disabled=!1,this.editingEnabled=!1,this.headingLevel=2,this.goToOverride=null,this.iconClass=T.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.view=null,this.viewModel=new p,this.visibleElements={...C}}initialize(){this.own([s(this,"viewModel.bookmarks",(()=>this._bookmarksInitialized())),s(this,"editingEnabled",(()=>this._toggleSorting()))])}destroy(){this._destroySortable(),this._handles.destroy(),this._handles=null,this._editMenu.destroy()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-label.js"),import("@esri/calcite-components/dist/components/calcite-switch.js")])}get _editMenuItems(){var t,e;const{messages:o,_userState:i}=this,r=null==i||null==(t=i.editedBookmark)||null==(e=t.thumbnail)?void 0:e.url;return[new B({label:null==o?void 0:o.menu.refreshThumbnail,iconClass:T.iconRefresh,clickFunction:()=>this._refreshThumbnail()}),new B({label:U.test(r)?null==o?void 0:o.menu.editImageUrl:null==o?void 0:o.menu.useImageUrl,iconClass:T.iconLink,clickFunction:()=>this._startUseImageUrl()}),r?new B({label:null==o?void 0:o.menu.removeThumbnail,iconClass:T.iconRemove,clickFunction:()=>this._removeThumbnail()}):null].filter(Boolean)}get _editMenu(){const{_editMenuItems:t,messages:e}=this,o=this._get("_editMenu");o&&o.destroy();const i=new g({iconClass:T.iconHandleHorizontal,label:null==e?void 0:e.menu.label});return i.items=t,i}castVisibleElements(t){return{...C,...t}}endAddBookmark(){this._userState=null}goTo(t){return this.viewModel.goTo(t)}render(){const{state:t}=this.viewModel,e="loading"===t?this.renderLoading():this.renderBookmarks();return y("div",{class:this.classes(T.base,T.geosceneWidget,{[T.geosceneWidgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new _({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}renderLoading(){return y("div",{class:T.loaderContainer,key:"loader"},y("div",{class:T.loader}))}renderNoBookmarksContainer(){const{messages:t}=this;return y("div",{class:T.noBookmarksContainer,key:"no-bookmarks"},y("span",{"aria-hidden":"true",class:this.classes(T.noBookmarksIcon,T.widgetIcon)}),y(v,{level:this.headingLevel,class:this.classes(T.header,T.noBookmarksHeader)},null==t?void 0:t.noBookmarksHeading),y("p",{class:T.noBookmarksDescription},null==t?void 0:t.noBookmarksDescription))}renderAddBookmarkLoading(){var t;return y("div",{key:"adding-bookmark",class:T.addingBookmark},y("span",{"aria-hidden":"true",class:this.classes(T.loading,T.rotating)}),null==(t=this.messages)?void 0:t.addingBookmark)}renderBookmarkItems(t){if(!t)return null;const{_userState:e,editingEnabled:o}=this;return t.map((t=>o&&t&&e&&("edit"===e.state||"edit-thumbnail"===e.state)&&e.bookmark===t?"edit-thumbnail"===e.state?this.renderEditingBookmarkUrl(e.editedBookmark):this.renderEditingBookmark(e.editedBookmark):this.renderBookmark(t))).toArray()}renderBookmarksContainer(t){var e;const{_userState:o,editingEnabled:i}=this,r="add"===(null==o?void 0:o.state),s=i&&!r?this.renderAddBookmarkButton():null,a=i?r&&o.loading?this.renderAddBookmarkLoading():"add"===(null==o?void 0:o.state)?this.renderAddingBookmark():null:null;return[y("ul",{key:"bookmark-list","aria-label":null==(e=this.messages)?void 0:e.widgetLabel,class:this.classes(T.bookmarkList,{[T.bookmarkListSortable]:this.editingEnabled}),afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"data-node-ref":"_sortableNode",bind:this},this.renderBookmarkItems(t)),s,a]}renderAddBookmarkButton(){var t;return this.visibleElements.addBookmark?y("div",{key:"add-bookmark-item",class:T.addBookmark},y("button",{class:this.classes(T.esriButton,T.esriButtonTertiary,T.addBookmarkButton),onclick:this.startAddBookmark,afterCreate:this._storeAddBookmarkButton,afterUpdate:this._storeAddBookmarkButton,"data-node-ref":"_addBookmarkButtonNode",bind:this,type:"button"},y("span",{"aria-hidden":"true",class:this.classes(T.addBookmarkIcon,T.iconPlus)}),null==(t=this.messages)?void 0:t.addBookmark)):null}renderBookmarks(){const{bookmarks:t}=this.viewModel,e=t&&t.filter(Boolean),o=e&&e.length,i=o||this.editingEnabled?this.renderBookmarksContainer(e):null;return[o?null:this.renderNoBookmarksContainer(),i]}renderEditContainer(t){const{messagesCommon:e}=this;return y("div",{class:T.bookmarkEditButtonContainer,key:"edit-container"},y("button",{title:null==e?void 0:e.edit,"aria-label":null==e?void 0:e.edit,"data-bookmark":t,onclick:this._showEditBookmarkForm,bind:this,class:T.bookmarkEditButton,type:"button"},y("span",{"aria-hidden":"true",class:T.iconEdit})))}renderDragHandle(t){const{messagesCommon:e}=this,o={[A]:t.uid};return y("div",{role:"button",tabIndex:0,key:"drag-handle",bind:this,class:T.bookmarkDragHandle,onkeydown:this._dragHandleKeydown,afterCreate:this._focusDragHandle,afterUpdate:this._focusDragHandle,onblur:this._dragHandleBlur,"aria-pressed":this._selectedSortUid===t.uid?"true":"false","aria-label":null==e?void 0:e.dragHandleLabel,title:null==e?void 0:e.dragHandleTitle,...o},y("span",{"aria-hidden":"true",class:this.classes(T.bookmarkDragHandleIcon,T.iconHandle)}))}renderBookmarkImageIcon(){return y("span",{"aria-hidden":"true",class:this.classes(T.bookmarkIcon,T.widgetIcon)})}renderBookmarkImage(t){const{visibleElements:e}=this,{thumbnail:o}=t,i=o&&o.url||"";return e.thumbnail&&i?y("img",{src:i,alt:"",class:T.bookmarkImage}):null}renderBookmarkTimeSwitch(t){const{messages:e}=this,{timeExtent:o}=t,{view:i}=this.viewModel;return i.timeExtent||o?y("calcite-label",{layout:"inline-space-between","disable-spacing":"true"},e.includeTimeExtent,y("calcite-switch",{scale:"s",checked:!!o,onCalciteSwitchChange:t=>this._editIncludeTimeExtent=!!t.detail.switched})):null}renderBookmarkTimeExtent(t){const{visibleElements:e}=this,{timeExtent:o}=t;return o?y("span",{class:T.timeExtent},[i(o.start)&&y("span",{key:"start-date-group",class:T.timeExtentGroup},y("span",{key:"start-date",class:T.timeExtentDate},this._formatDate(o.start)),e.time&&y("span",{key:"start-time",class:T.timeExtentTime},this._formatTime(o.start))),i(o.end)&&(r(o.start)||o.start.getTime()!==o.end.getTime())&&y("span",{key:"end-date-group",class:T.timeExtentGroup},y("span",{key:"end-date",class:T.timeExtentDate},this._formatDate(o.end)),e.time&&y("span",{key:"end-time",class:T.timeExtentTime},this._formatTime(o.end)))]):null}renderBookmarkButton(t){const{messagesCommon:e}=this,{name:o,timeExtent:i}=t,{abilities:r}=this.viewModel,s=o||(null==e?void 0:e.untitled),a=y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t)||this.renderBookmarkImageIcon()),n=r.time&&i?y("span",{key:"time-extent",class:T.bookmarkTimeExtent},this.renderBookmarkTimeExtent(t)):null;return y("button",{key:"bookmark-button",class:T.bookmarkButton,bind:this,"data-bookmark":t,onclick:this._goToBookmark,type:"button"},a,y("div",{class:T.bookmarkLabel},y("span",{key:"bookmark-title",class:T.bookmarkName},s),n))}renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[T.bookmarkActive]:e===t},i=this.editingEnabled?this.renderEditContainer(t):null,r={[A]:t.uid},s=this.editingEnabled?this.renderDragHandle(t):null;return y("li",{key:t,class:this.classes(T.bookmark,o),...r},s,this.renderBookmarkButton(t),i)}renderEditingBookmarkName(t){const{messages:e,_userState:o}=this,i="name-required"===o.validationState;return y("label",{class:T.authoringLabel},null==e?void 0:e.title,i?y("strong",null,null==e?void 0:e.invalidTitle):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,i?T.authoringInputInvalid:null),type:"text",value:t.name,afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,"data-bookmark":t,"data-node-ref":"_editInputNode",placeholder:null==e?void 0:e.titlePlaceholder}))}renderEditingBookmarkUrlActions(){const{messagesCommon:t}=this;return y("div",{class:T.authoringActions},y("input",{type:"button",value:null==t?void 0:t.back,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeUrlEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.add}))}renderEditingBookmarkActions(){const{messagesCommon:t}=this,{bookmark:e}=this._userState;return y("div",{class:T.authoringActions},y("input",{type:"button",value:null==t?void 0:t.delete,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringDeleteButton),"data-bookmark":e,onclick:this._deleteBookmark,bind:this}),y("input",{type:"button",value:null==t?void 0:t.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.save}))}renderEditingBookmarkUrlInput(t){var e;const{messages:o,_userState:i}=this,r=null==(e=t.thumbnail)?void 0:e.url,s=U.test(r)?r:null,a="absolute-url-required"===i.validationState;return y("label",{class:T.authoringLabel},a?y("strong",null,null==o?void 0:o.invalidImageUrl):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,a?T.authoringInputInvalid:null),type:"text",value:s,afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,"data-bookmark":t,"data-node-ref":"_urlEditInputNode",title:null==o?void 0:o.imageUrlTooltip,placeholder:o&&`https://<${o.imageUrlPlaceholder}>`}))}renderEditingBookmarkUrl(t){const e={[A]:t.uid};return y("li",{key:"edit-bookmark-url-form",class:T.authoringCard,...e},y("form",{class:T.authoringForm,onsubmit:this._editBookmarkUrlSubmit,bind:this},this.renderEditingBookmarkUrlInput(t),this.renderEditingBookmarkUrlActions()))}renderEditingBookmark(t){const e={[A]:t.uid},{abilities:o}=this.viewModel,i=o.time?y("div",{key:"edit-bookmark-time-container",class:T.timeExtentContainer},this.renderBookmarkTimeSwitch(t),this._editIncludeTimeExtent&&this.renderBookmarkTimeExtent(t)):null;return y("li",{key:"edit-bookmark-form",class:T.authoringCard,...e},y("form",{class:T.authoringForm,onsubmit:this._editBookmarkSubmit,bind:this},y("div",{class:T.authoringContainer},y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t),this._editMenu.render()),this.renderEditingBookmarkName(t)),i,this.renderEditingBookmarkActions()))}renderAddingBookmarkName(){const{_userState:t,messages:e}=this,o="name-required"===t.validationState;return y("label",{class:T.authoringLabel},null==e?void 0:e.title,o?y("strong",null,null==e?void 0:e.invalidTitle):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,o?T.authoringInputInvalid:null),type:"text",afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,"data-node-ref":"_addInputNode",value:"",placeholder:null==e?void 0:e.titlePlaceholder}))}renderAddingBookmarkActions(){const{messagesCommon:t}=this;return y("div",{class:this.classes(T.authoringActions)},y("input",{type:"button",value:null==t?void 0:t.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringCancelButton),onclick:this._endAddBookmark.bind(this),bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.add}))}renderAddingBookmark(){return y("div",{key:"add-bookmark-form",class:T.authoringCard},y("form",{class:T.authoringForm,onsubmit:this._addBookmarkSubmit,bind:this},this.renderAddingBookmarkName(),this.renderAddingBookmarkActions()))}_formatDate(t){return t?u(t,c("short-date")):null}_formatTime(t){return t?u(t,c("long-time")):null}_dragHandleBlur(){this._selectedSortUid=null,this.scheduleRender()}_dragHandleKeydown(t){const{_sortableSavedItems:o}=this,i=["ArrowDown","ArrowUp","Escape","Tab"," ","Enter"],r=e(t);if(-1===i.indexOf(r))return;const{_sortable:s,_selectedSortUid:a}=this,n=s.toArray(),d=t.target.getAttribute(A),l=n.indexOf(d);if(f(r)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?null:this._sortable.toArray(),void this.scheduleRender()}if("Tab"===r)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===r&&o)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(o,s,d),void this.scheduleRender();if(-1===l||!a)return;const k="ArrowUp"===r?l-1:l+1;k>=n.length||k<=-1||(S(n,l,k),this._updateSortItems(n,s,d))}_updateSortItems(t,e,o){e.sort(t),this._sortBookmarks(e),this._focusSortUid=o,this._selectedSortUid=o}_focusDragHandle(t){const{_focusSortUid:e}=this;if(!t||!e)return;t.getAttribute(A)===e&&(t.focus(),this._focusSortUid=null)}_toggleSorting(){const{_sortable:t,_sortableNode:e,editingEnabled:o}=this;if(e)if(t)t.option("disabled",!o);else{const t=w.create(e,{dataIdAttr:A,handle:`.${T.bookmarkDragHandle}`,group:x,disabled:!o,onSort:()=>this._sortBookmarks(t)});this._sortable=t}}_sortNodeCreated(t){this._sortableNode=t,this._toggleSorting()}_sortBookmarks(t){const{bookmarks:e}=this.viewModel;if(!e)return;const o=t.toArray();e.sort(((t,e)=>{const i=o.indexOf(t.uid),r=o.indexOf(e.uid);return i>r?1:i<r?-1:0}))}_destroySortable(){const{_sortable:t}=this;t&&t.destroy(),this._sortable=null}_endAddBookmark(){this._focusAddBookmarkButton=!0,this.endAddBookmark()}_bookmarksInitialized(){const t="bookmarks-init",{_handles:e}=this;e.remove(t),e.add(a(this,"viewModel.bookmarks","change",(()=>this._bookmarksChanged())),t)}_bookmarksChanged(){const t="bookmarks-change",{bookmarks:e}=this.viewModel,{_handles:o}=this;o.remove(t);const i=e.map((t=>n(t,["active","name","thumbnail.url"],(()=>this.scheduleRender()))));o.add(i,t),this.scheduleRender()}_showEditBookmarkForm(t){const e=t.currentTarget["data-bookmark"];this._editIncludeTimeExtent=!!e.timeExtent,this._focusEditInputBox=!0,this._userState=new _({bookmark:e,state:"edit"}),this.viewModel.goTo(e),this.scheduleRender()}_closeUrlEditBookmarkForm(){this._focusEditInputBox=!0,this._userState.state="edit"}_closeEditBookmarkForm(){this._userState=null}_addBookmarkSubmit(t){t.preventDefault();const{_addInputNode:e,_userState:o}=this,i=e&&e.value.trim();i?(o.loading=!0,this.viewModel.createBookmark().then((t=>{t.name=i,this.viewModel.bookmarks.add(t),this._endAddBookmark()}))):o.validationState="name-required"}async _editBookmarkAndClose(t,e){const{viewModel:o}=this;await o.editBookmark(t,{...o.defaultEditOptions,...e}),this._closeEditBookmarkForm()}_editBookmarkSubmit(t){t.preventDefault();const{_editInputNode:e,_userState:o,_editIncludeTimeExtent:i}=this,r=e&&e.value.trim();r?(o.bookmark.name=r,o.bookmark.thumbnail=o.editedBookmark.thumbnail,i||(o.bookmark.timeExtent=null),this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:i})):o.validationState="name-required"}_storeAddBookmarkButton(t){this._addBookmarkButtonNode=t,this._focusAddBookmark()}_storeEditInput(t){this._editInputNode=t,this._focusEditInput()}_storeAddInput(t){this._addInputNode=t,this._focusAddInput()}_storeUrlEditInput(t){this._urlEditInputNode=t,this._focusUrlEditInput()}_focusUrlEditInput(){this._urlEditInputNode&&this._focusUrlEditInputBox&&(this._focusUrlEditInputBox=!1,this._urlEditInputNode.focus())}_focusAddInput(){this._addInputNode&&this._focusAddInputBox&&(this._focusAddInputBox=!1,this._addInputNode.focus())}_focusAddBookmark(){this._addBookmarkButtonNode&&this._focusAddBookmarkButton&&(this._focusAddBookmarkButton=!1,this._addBookmarkButtonNode.focus())}_focusEditInput(){this._editInputNode&&this._focusEditInputBox&&(this._focusEditInputBox=!1,this._editInputNode.focus())}_deleteBookmark(t){const e=t.currentTarget["data-bookmark"];this.viewModel.bookmarks.remove(e)}_goToBookmark(t){const e=t.currentTarget["data-bookmark"];this.endAddBookmark(),this._closeEditBookmarkForm(),this.viewModel.goTo(e)}async _refreshThumbnail(){const{_userState:t,_editMenu:e,viewModel:o}=this;t.validationState=void 0,await o.editBookmark(this._userState.editedBookmark,{takeScreenshot:!0,captureViewpoint:!1,captureRotation:!1,captureScale:!1,captureTimeExtent:!1}),e.open=!1,this._focusEditInputBox=!0,this.scheduleRender()}_removeThumbnail(){const{_userState:t,_editMenu:e}=this;t.editedBookmark.thumbnail=null,t.validationState=void 0,e.open=!1,this._focusEditInputBox=!0,this.scheduleRender()}_startUseImageUrl(){this._userState.state="edit-thumbnail",this._editMenu.open=!1,this._focusUrlEditInputBox=!0,this.scheduleRender()}_editBookmarkUrlSubmit(t){t.preventDefault();const{_urlEditInputNode:e,_userState:o}=this,i=e.value;U.test(i)?(i&&(o.editedBookmark.thumbnail=new h({url:i})),this._closeUrlEditBookmarkForm()):o.validationState="absolute-url-required"}};t([k()],N.prototype,"_editIncludeTimeExtent",void 0),t([k({type:_})],N.prototype,"_userState",void 0),t([k({readOnly:!0})],N.prototype,"_editMenuItems",null),t([k({readOnly:!0})],N.prototype,"_editMenu",null),t([d("viewModel.defaultCreateOptions")],N.prototype,"defaultCreateOptions",void 0),t([d("viewModel.defaultEditOptions")],N.prototype,"defaultEditOptions",void 0),t([d("viewModel.bookmarks")],N.prototype,"bookmarks",void 0),t([k()],N.prototype,"disabled",void 0),t([k()],N.prototype,"editingEnabled",void 0),t([k()],N.prototype,"headingLevel",void 0),t([d("viewModel.goToOverride")],N.prototype,"goToOverride",void 0),t([k()],N.prototype,"iconClass",void 0),t([k({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],N.prototype,"label",void 0),t([k(),E("geoscene/widgets/Bookmarks/t9n/Bookmarks")],N.prototype,"messages",void 0),t([k(),E("geoscene/t9n/common")],N.prototype,"messagesCommon",void 0),t([k(),E("geoscene/core/t9n/Units")],N.prototype,"messagesUnits",void 0),t([k()],N.prototype,"uiStrings",void 0),t([d("viewModel.view")],N.prototype,"view",void 0),t([k({type:p}),I(["select-bookmark","bookmark-edit","bookmark-select"])],N.prototype,"viewModel",void 0),t([k()],N.prototype,"visibleElements",void 0),t([l("visibleElements")],N.prototype,"castVisibleElements",null),t([k()],N.prototype,"endAddBookmark",null),t([k()],N.prototype,"startAddBookmark",null),N=t([m(M)],N);const j=N;export{j as default};
|
|
5
|
+
import{_ as t}from"../chunks/tslib.es6.js";import{eventKey as e}from"../core/events.js";import o from"../core/Handles.js";import{isSome as i,isNone as r}from"../core/maybe.js";import{init as s,on as a,watch as n}from"../core/watchUtils.js";import{aliasOf as d}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as k}from"../core/accessorSupport/decorators/property.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as u,convertDateFormatToIntlOptions as c}from"../intl/date.js";import{SlideThumbnail as h}from"../webdoc/support/SlideThumbnail.js";import b from"./Widget.js";import _ from"./Bookmarks/BookmarksUserState.js";import p from"./Bookmarks/BookmarksViewModel.js";import g from"./FeatureTable/Grid/support/ButtonMenu.js";import B from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{Heading as v}from"./support/Heading.js";import{isActivationKey as f}from"./support/widgetUtils.js";import{messageBundle as E}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as y}from"./support/jsxFactory.js";import w from"sortablejs";function S(t,e,o){t.splice(o,0,t.splice(e,1)[0])}const x="bookmarks",A="data-bookmark-uid",T={base:"geoscene-bookmarks geoscene-widget--panel",loaderContainer:"geoscene-bookmarks__loader-container",loader:"geoscene-bookmarks__loader",fadeIn:"geoscene-bookmarks--fade-in",bookmarkList:"geoscene-bookmarks__list",bookmarkListSortable:"geoscene-bookmarks__list--sortable",bookmark:"geoscene-bookmarks__bookmark",bookmarkButton:"geoscene-bookmarks__bookmark-button",bookmarkImageContainer:"geoscene-bookmarks__bookmark-image-container",bookmarkEditButtonContainer:"geoscene-bookmarks__bookmark-edit-button-container",bookmarkEditButton:"geoscene-bookmarks__bookmark-edit-button",bookmarkDragHandle:"geoscene-bookmarks_bookmark-drag-handle",bookmarkDragHandleIcon:"geoscene-bookmarks_bookmark-drag-handle-icon",bookmarkIcon:"geoscene-bookmarks__bookmark-icon",bookmarkImage:"geoscene-bookmarks__image",bookmarkLabel:"geoscene-bookmarks__bookmark-label",bookmarkName:"geoscene-bookmarks__bookmark-name",bookmarkTimeExtent:"geoscene-bookmarks__bookmark-time-extent",bookmarkActive:"geoscene-bookmarks__bookmark--active",noBookmarksContainer:"geoscene-widget__content--empty",noBookmarksHeader:"geoscene-bookmarks__no-bookmarks-heading",noBookmarksIcon:"geoscene-widget__no-bookmark-icon",noBookmarksDescription:"geoscene-bookmarks__no-bookmarks-description",addingBookmark:"geoscene-bookmarks__adding-bookmark",addBookmark:"geoscene-bookmarks__add-bookmark",addBookmarkButton:"geoscene-bookmarks__add-bookmark-button",addBookmarkIcon:"geoscene-bookmarks__add-bookmark-icon",authoringCard:"geoscene-bookmarks__authoring-card",authoringContainer:"geoscene-bookmarks__authoring-container",authoringForm:"geoscene-bookmarks__authoring-form",authoringLabel:"geoscene-bookmarks__authoring-label",authoringActions:"geoscene-bookmarks__authoring-actions",authoringInputInvalid:"geoscene-bookmarks__authoring-input--invalid",authoringDeleteButton:"geoscene-bookmarks__authoring-delete-button",authoringCancelButton:"geoscene-bookmarks__authoring-cancel-button",timeExtentContainer:"geoscene-bookmarks__time-extent-container",timeExtent:"geoscene-bookmarks__time-extent",timeExtentGroup:"geoscene-bookmarks__time-extent-group",timeExtentDate:"geoscene-bookmarks__time-extent-date",timeExtentTime:"geoscene-bookmarks__time-extent-time",geosceneWidget:"geoscene-widget",geosceneWidgetDisabled:"geoscene-widget--disabled",esriButton:"geoscene-button",esriButtonTertiary:"geoscene-button--tertiary",esriInput:"geoscene-input",iconHandle:"geoscene-icon-handle-vertical",iconPlus:"geoscene-icon-plus",iconEdit:"geoscene-icon-edit",iconHandleHorizontal:"geoscene-icon-handle-horizontal",iconRefresh:"geoscene-icon-refresh",iconLink:"geoscene-icon-link",iconRemove:"geoscene-icon-erase",widgetIcon:"geoscene-icon-bookmark",header:"geoscene-widget__heading",loading:"geoscene-icon-loading-indicator",rotating:"geoscene-rotating"},C={addBookmark:!0,thumbnail:!0,time:!0},U=/^https:\/\/.*/i,M="geoscene.widgets.Bookmarks";let N=class extends b{constructor(t,e){super(t,e),this._handles=new o,this._addInputNode=null,this._editInputNode=null,this._urlEditInputNode=null,this._addBookmarkButtonNode=null,this._focusAddBookmarkButton=!1,this._focusEditInputBox=!1,this._focusAddInputBox=!1,this._focusUrlEditInputBox=!1,this._sortable=null,this._sortableNode=null,this._focusSortUid=null,this._selectedSortUid=null,this._sortableSavedItems=null,this._editIncludeTimeExtent=null,this._userState=null,this.defaultCreateOptions=null,this.defaultEditOptions=null,this.bookmarks=null,this.disabled=!1,this.editingEnabled=!1,this.headingLevel=2,this.goToOverride=null,this.iconClass=T.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.view=null,this.viewModel=new p,this.visibleElements={...C}}initialize(){this.own([s(this,"viewModel.bookmarks",(()=>this._bookmarksInitialized())),s(this,"editingEnabled",(()=>this._toggleSorting()))])}destroy(){this._destroySortable(),this._handles.destroy(),this._handles=null,this._editMenu.destroy()}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-label.js"),import("@esri/calcite-components/dist/components/calcite-switch.js")])}get _editMenuItems(){var t,e;const{messages:o,_userState:i}=this,r=null==i||null==(t=i.editedBookmark)||null==(e=t.thumbnail)?void 0:e.url;return[new B({label:null==o?void 0:o.menu.refreshThumbnail,iconClass:T.iconRefresh,clickFunction:()=>this._refreshThumbnail()}),new B({label:U.test(r)?null==o?void 0:o.menu.editImageUrl:null==o?void 0:o.menu.useImageUrl,iconClass:T.iconLink,clickFunction:()=>this._startUseImageUrl()}),r?new B({label:null==o?void 0:o.menu.removeThumbnail,iconClass:T.iconRemove,clickFunction:()=>this._removeThumbnail()}):null].filter(Boolean)}get _editMenu(){const{_editMenuItems:t,messages:e}=this,o=this._get("_editMenu");o&&o.destroy();const i=new g({iconClass:T.iconHandleHorizontal,label:null==e?void 0:e.menu.label});return i.items=t,i}castVisibleElements(t){return{...C,...t}}endAddBookmark(){this._userState=null}goTo(t){return this.viewModel.goTo(t)}render(){const{state:t}=this.viewModel,e="loading"===t?this.renderLoading():this.renderBookmarks();return y("div",{class:this.classes(T.base,T.geosceneWidget,{[T.geosceneWidgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new _({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}renderLoading(){return y("div",{class:T.loaderContainer,key:"loader"},y("div",{class:T.loader}))}renderNoBookmarksContainer(){const{messages:t}=this;return y("div",{class:T.noBookmarksContainer,key:"no-bookmarks"},y("span",{"aria-hidden":"true",class:this.classes(T.noBookmarksIcon,T.widgetIcon)}),y(v,{level:this.headingLevel,class:this.classes(T.header,T.noBookmarksHeader)},null==t?void 0:t.noBookmarksHeading),y("p",{class:T.noBookmarksDescription},null==t?void 0:t.noBookmarksDescription))}renderAddBookmarkLoading(){var t;return y("div",{key:"adding-bookmark",class:T.addingBookmark},y("span",{"aria-hidden":"true",class:this.classes(T.loading,T.rotating)}),null==(t=this.messages)?void 0:t.addingBookmark)}renderBookmarkItems(t){if(!t)return null;const{_userState:e,editingEnabled:o}=this;return t.map((t=>o&&t&&e&&("edit"===e.state||"edit-thumbnail"===e.state)&&e.bookmark===t?"edit-thumbnail"===e.state?this.renderEditingBookmarkUrl(e.editedBookmark):this.renderEditingBookmark(e.editedBookmark):this.renderBookmark(t))).toArray()}renderBookmarksContainer(t){var e;const{_userState:o,editingEnabled:i}=this,r="add"===(null==o?void 0:o.state),s=i&&!r?this.renderAddBookmarkButton():null,a=i?r&&o.loading?this.renderAddBookmarkLoading():"add"===(null==o?void 0:o.state)?this.renderAddingBookmark():null:null;return[y("ul",{key:"bookmark-list","aria-label":null==(e=this.messages)?void 0:e.widgetLabel,class:this.classes(T.bookmarkList,{[T.bookmarkListSortable]:this.editingEnabled}),afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"data-node-ref":"_sortableNode",bind:this},this.renderBookmarkItems(t)),s,a]}renderAddBookmarkButton(){var t;return this.visibleElements.addBookmark?y("div",{key:"add-bookmark-item",class:T.addBookmark},y("button",{class:this.classes(T.esriButton,T.esriButtonTertiary,T.addBookmarkButton),onclick:this.startAddBookmark,afterCreate:this._storeAddBookmarkButton,afterUpdate:this._storeAddBookmarkButton,"data-node-ref":"_addBookmarkButtonNode",bind:this,type:"button"},y("span",{"aria-hidden":"true",class:this.classes(T.addBookmarkIcon,T.iconPlus)}),null==(t=this.messages)?void 0:t.addBookmark)):null}renderBookmarks(){const{bookmarks:t}=this.viewModel,e=t&&t.filter(Boolean),o=e&&e.length,i=o||this.editingEnabled?this.renderBookmarksContainer(e):null;return[o?null:this.renderNoBookmarksContainer(),i]}renderEditContainer(t){const{messagesCommon:e}=this;return y("div",{class:T.bookmarkEditButtonContainer,key:"edit-container"},y("button",{title:null==e?void 0:e.edit,"aria-label":null==e?void 0:e.edit,"data-bookmark":t,onclick:this._showEditBookmarkForm,bind:this,class:T.bookmarkEditButton,type:"button"},y("span",{"aria-hidden":"true",class:T.iconEdit})))}renderDragHandle(t){const{messagesCommon:e}=this,o={[A]:t.uid};return y("div",{role:"button",tabIndex:0,key:"drag-handle",bind:this,class:T.bookmarkDragHandle,onkeydown:this._dragHandleKeydown,afterCreate:this._focusDragHandle,afterUpdate:this._focusDragHandle,onblur:this._dragHandleBlur,"aria-pressed":this._selectedSortUid===t.uid?"true":"false","aria-label":null==e?void 0:e.dragHandleLabel,title:null==e?void 0:e.dragHandleTitle,...o},y("span",{"aria-hidden":"true",class:this.classes(T.bookmarkDragHandleIcon,T.iconHandle)}))}renderBookmarkImageIcon(){return y("span",{"aria-hidden":"true",class:this.classes(T.bookmarkIcon,T.widgetIcon)})}renderBookmarkImage(t){const{visibleElements:e}=this,{thumbnail:o}=t,i=o&&o.url||"";return e.thumbnail&&i?y("img",{src:i,alt:"",class:T.bookmarkImage}):null}renderBookmarkTimeSwitch(t){const{messages:e}=this,{timeExtent:o}=t,{view:i}=this.viewModel;return i.timeExtent||o?y("calcite-label",{layout:"inline-space-between","disable-spacing":"true"},e.includeTimeExtent,y("calcite-switch",{scale:"s",checked:!!o,onCalciteSwitchChange:t=>this._editIncludeTimeExtent=!!t.detail.switched})):null}renderBookmarkTimeExtent(t){const{visibleElements:e}=this,{timeExtent:o}=t;return o?y("span",{class:T.timeExtent},[i(o.start)&&y("span",{key:"start-date-group",class:T.timeExtentGroup},y("span",{key:"start-date",class:T.timeExtentDate},this._formatDate(o.start)),e.time&&y("span",{key:"start-time",class:T.timeExtentTime},this._formatTime(o.start))),i(o.end)&&(r(o.start)||o.start.getTime()!==o.end.getTime())&&y("span",{key:"end-date-group",class:T.timeExtentGroup},y("span",{key:"end-date",class:T.timeExtentDate},this._formatDate(o.end)),e.time&&y("span",{key:"end-time",class:T.timeExtentTime},this._formatTime(o.end)))]):null}renderBookmarkButton(t){const{messagesCommon:e}=this,{name:o,timeExtent:i}=t,{abilities:r}=this.viewModel,s=o||(null==e?void 0:e.untitled),a=y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t)||this.renderBookmarkImageIcon()),n=r.time&&i?y("span",{key:"time-extent",class:T.bookmarkTimeExtent},this.renderBookmarkTimeExtent(t)):null;return y("button",{key:"bookmark-button",class:T.bookmarkButton,bind:this,"data-bookmark":t,onclick:this._goToBookmark,type:"button"},a,y("div",{class:T.bookmarkLabel},y("span",{key:"bookmark-title",class:T.bookmarkName},s),n))}renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[T.bookmarkActive]:e===t},i=this.editingEnabled?this.renderEditContainer(t):null,r={[A]:t.uid},s=this.editingEnabled?this.renderDragHandle(t):null;return y("li",{key:t,class:this.classes(T.bookmark,o),...r},s,this.renderBookmarkButton(t),i)}renderEditingBookmarkName(t){const{messages:e,_userState:o}=this,i="name-required"===o.validationState;return y("label",{class:T.authoringLabel},null==e?void 0:e.title,i?y("strong",null,null==e?void 0:e.invalidTitle):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,i?T.authoringInputInvalid:null),type:"text",value:t.name,afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,"data-bookmark":t,"data-node-ref":"_editInputNode",placeholder:null==e?void 0:e.titlePlaceholder}))}renderEditingBookmarkUrlActions(){const{messagesCommon:t}=this;return y("div",{class:T.authoringActions},y("input",{type:"button",value:null==t?void 0:t.back,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeUrlEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.add}))}renderEditingBookmarkActions(){const{messagesCommon:t}=this,{bookmark:e}=this._userState;return y("div",{class:T.authoringActions},y("input",{type:"button",value:null==t?void 0:t.delete,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringDeleteButton),"data-bookmark":e,onclick:this._deleteBookmark,bind:this}),y("input",{type:"button",value:null==t?void 0:t.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.save}))}renderEditingBookmarkUrlInput(t){var e;const{messages:o,_userState:i}=this,r=null==(e=t.thumbnail)?void 0:e.url,s=U.test(r)?r:null,a="absolute-url-required"===i.validationState;return y("label",{class:T.authoringLabel},a?y("strong",null,null==o?void 0:o.invalidImageUrl):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,a?T.authoringInputInvalid:null),type:"text",value:s,afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,"data-bookmark":t,"data-node-ref":"_urlEditInputNode",title:null==o?void 0:o.imageUrlTooltip,placeholder:o&&`https://<${o.imageUrlPlaceholder}>`}))}renderEditingBookmarkUrl(t){const e={[A]:t.uid};return y("li",{key:"edit-bookmark-url-form",class:T.authoringCard,...e},y("form",{class:T.authoringForm,onsubmit:this._editBookmarkUrlSubmit,bind:this},this.renderEditingBookmarkUrlInput(t),this.renderEditingBookmarkUrlActions()))}renderEditingBookmark(t){const e={[A]:t.uid},{abilities:o}=this.viewModel,i=o.time?y("div",{key:"edit-bookmark-time-container",class:T.timeExtentContainer},this.renderBookmarkTimeSwitch(t),this._editIncludeTimeExtent&&this.renderBookmarkTimeExtent(t)):null;return y("li",{key:"edit-bookmark-form",class:T.authoringCard,...e},y("form",{class:T.authoringForm,onsubmit:this._editBookmarkSubmit,bind:this},y("div",{class:T.authoringContainer},y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t),this._editMenu.render()),this.renderEditingBookmarkName(t)),i,this.renderEditingBookmarkActions()))}renderAddingBookmarkName(){const{_userState:t,messages:e}=this,o="name-required"===t.validationState;return y("label",{class:T.authoringLabel},null==e?void 0:e.title,o?y("strong",null,null==e?void 0:e.invalidTitle):null,y("input",{required:!0,bind:this,class:this.classes(T.esriInput,o?T.authoringInputInvalid:null),type:"text",afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,"data-node-ref":"_addInputNode",value:"",placeholder:null==e?void 0:e.titlePlaceholder}))}renderAddingBookmarkActions(){const{messagesCommon:t}=this;return y("div",{class:this.classes(T.authoringActions)},y("input",{type:"button",value:null==t?void 0:t.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringCancelButton),onclick:this._endAddBookmark.bind(this),bind:this}),y("input",{class:T.esriButton,type:"submit",value:null==t?void 0:t.add}))}renderAddingBookmark(){return y("div",{key:"add-bookmark-form",class:T.authoringCard},y("form",{class:T.authoringForm,onsubmit:this._addBookmarkSubmit,bind:this},this.renderAddingBookmarkName(),this.renderAddingBookmarkActions()))}_formatDate(t){return t?u(t,c("short-date")):null}_formatTime(t){return t?u(t,c("long-time")):null}_dragHandleBlur(){this._selectedSortUid=null,this.scheduleRender()}_dragHandleKeydown(t){const{_sortableSavedItems:o}=this,i=["ArrowDown","ArrowUp","Escape","Tab"," ","Enter"],r=e(t);if(-1===i.indexOf(r))return;const{_sortable:s,_selectedSortUid:a}=this,n=s.toArray(),d=t.target.getAttribute(A),l=n.indexOf(d);if(f(r)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?null:this._sortable.toArray(),void this.scheduleRender()}if("Tab"===r)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===r&&o)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(o,s,d),void this.scheduleRender();if(-1===l||!a)return;const k="ArrowUp"===r?l-1:l+1;k>=n.length||k<=-1||(S(n,l,k),this._updateSortItems(n,s,d))}_updateSortItems(t,e,o){e.sort(t),this._sortBookmarks(e),this._focusSortUid=o,this._selectedSortUid=o}_focusDragHandle(t){const{_focusSortUid:e}=this;if(!t||!e)return;t.getAttribute(A)===e&&(t.focus(),this._focusSortUid=null)}_toggleSorting(){const{_sortable:t,_sortableNode:e,editingEnabled:o}=this;if(e)if(t)t.option("disabled",!o);else{const t=w.create(e,{dataIdAttr:A,handle:`.${T.bookmarkDragHandle}`,group:x,disabled:!o,onSort:()=>this._sortBookmarks(t)});this._sortable=t}}_sortNodeCreated(t){this._sortableNode=t,this._toggleSorting()}_sortBookmarks(t){const{bookmarks:e}=this.viewModel;if(!e)return;const o=t.toArray();e.sort(((t,e)=>{const i=o.indexOf(t.uid),r=o.indexOf(e.uid);return i>r?1:i<r?-1:0}))}_destroySortable(){const{_sortable:t}=this;t&&t.destroy(),this._sortable=null}_endAddBookmark(){this._focusAddBookmarkButton=!0,this.endAddBookmark()}_bookmarksInitialized(){const t="bookmarks-init",{_handles:e}=this;e.remove(t),e.add(a(this,"viewModel.bookmarks","change",(()=>this._bookmarksChanged())),t)}_bookmarksChanged(){const t="bookmarks-change",{bookmarks:e}=this.viewModel,{_handles:o}=this;o.remove(t);const i=e.map((t=>n(t,["active","name","thumbnail.url"],(()=>this.scheduleRender()))));o.add(i,t),this.scheduleRender()}_showEditBookmarkForm(t){const e=t.currentTarget["data-bookmark"];this._editIncludeTimeExtent=!!e.timeExtent,this._focusEditInputBox=!0,this._userState=new _({bookmark:e,state:"edit"}),this.viewModel.goTo(e),this.scheduleRender()}_closeUrlEditBookmarkForm(){this._focusEditInputBox=!0,this._userState.state="edit"}_closeEditBookmarkForm(){this._userState=null}_addBookmarkSubmit(t){t.preventDefault();const{_addInputNode:e,_userState:o}=this,i=e&&e.value.trim();i?(o.loading=!0,this.viewModel.createBookmark().then((t=>{t.name=i,this.viewModel.bookmarks.add(t),this._endAddBookmark()}))):o.validationState="name-required"}async _editBookmarkAndClose(t,e){const{viewModel:o}=this;await o.editBookmark(t,{...o.defaultEditOptions,...e}),this._closeEditBookmarkForm()}_editBookmarkSubmit(t){t.preventDefault();const{_editInputNode:e,_userState:o,_editIncludeTimeExtent:i}=this,r=e&&e.value.trim();r?(o.bookmark.name=r,o.bookmark.thumbnail=o.editedBookmark.thumbnail,i||(o.bookmark.timeExtent=null),this._editBookmarkAndClose(o.bookmark,{takeScreenshot:!1,captureTimeExtent:i})):o.validationState="name-required"}_storeAddBookmarkButton(t){this._addBookmarkButtonNode=t,this._focusAddBookmark()}_storeEditInput(t){this._editInputNode=t,this._focusEditInput()}_storeAddInput(t){this._addInputNode=t,this._focusAddInput()}_storeUrlEditInput(t){this._urlEditInputNode=t,this._focusUrlEditInput()}_focusUrlEditInput(){this._urlEditInputNode&&this._focusUrlEditInputBox&&(this._focusUrlEditInputBox=!1,this._urlEditInputNode.focus())}_focusAddInput(){this._addInputNode&&this._focusAddInputBox&&(this._focusAddInputBox=!1,this._addInputNode.focus())}_focusAddBookmark(){this._addBookmarkButtonNode&&this._focusAddBookmarkButton&&(this._focusAddBookmarkButton=!1,this._addBookmarkButtonNode.focus())}_focusEditInput(){this._editInputNode&&this._focusEditInputBox&&(this._focusEditInputBox=!1,this._editInputNode.focus())}_deleteBookmark(t){const e=t.currentTarget["data-bookmark"];this.viewModel.bookmarks.remove(e)}_goToBookmark(t){const e=t.currentTarget["data-bookmark"];this.endAddBookmark(),this._closeEditBookmarkForm(),this.viewModel.goTo(e)}async _refreshThumbnail(){const{_userState:t,_editMenu:e,viewModel:o}=this;t.validationState=void 0,await o.editBookmark(this._userState.editedBookmark,{takeScreenshot:!0,captureViewpoint:!1,captureRotation:!1,captureScale:!1,captureTimeExtent:!1}),e.open=!1,this._focusEditInputBox=!0,this.scheduleRender()}_removeThumbnail(){const{_userState:t,_editMenu:e}=this;t.editedBookmark.thumbnail=null,t.validationState=void 0,e.open=!1,this._focusEditInputBox=!0,this.scheduleRender()}_startUseImageUrl(){this._userState.state="edit-thumbnail",this._editMenu.open=!1,this._focusUrlEditInputBox=!0,this.scheduleRender()}_editBookmarkUrlSubmit(t){t.preventDefault();const{_urlEditInputNode:e,_userState:o}=this,i=e.value;U.test(i)?(i&&(o.editedBookmark.thumbnail=new h({url:i})),this._closeUrlEditBookmarkForm()):o.validationState="absolute-url-required"}};t([k()],N.prototype,"_editIncludeTimeExtent",void 0),t([k({type:_})],N.prototype,"_userState",void 0),t([k({readOnly:!0})],N.prototype,"_editMenuItems",null),t([k({readOnly:!0})],N.prototype,"_editMenu",null),t([d("viewModel.defaultCreateOptions")],N.prototype,"defaultCreateOptions",void 0),t([d("viewModel.defaultEditOptions")],N.prototype,"defaultEditOptions",void 0),t([d("viewModel.bookmarks")],N.prototype,"bookmarks",void 0),t([k()],N.prototype,"disabled",void 0),t([k()],N.prototype,"editingEnabled",void 0),t([k()],N.prototype,"headingLevel",void 0),t([d("viewModel.goToOverride")],N.prototype,"goToOverride",void 0),t([k()],N.prototype,"iconClass",void 0),t([k({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],N.prototype,"label",void 0),t([k(),E("geoscene/widgets/Bookmarks/t9n/Bookmarks")],N.prototype,"messages",void 0),t([k(),E("geoscene/t9n/common")],N.prototype,"messagesCommon",void 0),t([k(),E("geoscene/core/t9n/Units")],N.prototype,"messagesUnits",void 0),t([k()],N.prototype,"uiStrings",void 0),t([d("viewModel.view")],N.prototype,"view",void 0),t([k({type:p}),I(["select-bookmark","bookmark-edit","bookmark-select"])],N.prototype,"viewModel",void 0),t([k()],N.prototype,"visibleElements",void 0),t([l("visibleElements")],N.prototype,"castVisibleElements",null),t([k()],N.prototype,"endAddBookmark",null),t([k()],N.prototype,"startAddBookmark",null),N=t([m(M)],N);const j=N;export{j as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import{on as s,watch as i,initial as t}from"../../../core/reactiveUtils.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 l}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{LayerTreeNode as a}from"../support/LayerTreeNode.js";import{isRTL as d}from"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as n}from"../../support/jsxFactory.js";var c;const h={expand:"expand",collapse:"collapse",hideSublayer:"hideSublayer",showSublayer:"showSublayer"},g="
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{on as s,watch as i,initial as t}from"../../../core/reactiveUtils.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 l}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{LayerTreeNode as a}from"../support/LayerTreeNode.js";import{isRTL as d}from"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as n}from"../../support/jsxFactory.js";var c;const h={expand:"expand",collapse:"collapse",hideSublayer:"hideSublayer",showSublayer:"showSublayer"},g="geoscene-building-disciplines-tree-node",p={base:`${g}`,root:`${g}--root`,leaf:`${g}--leaf`,label:`${g}__label`,checkbox:`${g}__checkbox`,checkboxChecked:`${g}__checkbox--checked geoscene-icon-check-mark`,checkboxIndeterminate:`${g}__checkbox--indeterminate geoscene-icon-minus`,collapseToggle:`${g}__collapse-toggle geoscene-icon-right`,collapseToggleCollapsed:`${g}__collapse-toggle--collapsed`,children:`${g}__children`,level:e=>`${g}--level-${e}`};let b=c=class extends r{constructor(e){super(e),this.messages=h,this.toggleSiblingsVisibility=!1,this._childWidgets=[],this._updateChildWidgets=()=>{this._destroyChildWidgets(),this._childWidgets=this.node.children.toArray().reverse().map((e=>new c({node:e,messages:this.messages,toggleSiblingsVisibility:this.toggleSiblingsVisibility})))}}initialize(){this.own(s((()=>this.node.children),"after-changes",this._updateChildWidgets,{onListenerAdd:this._updateChildWidgets,onListenerRemove:this._updateChildWidgets}),i((()=>[this.messages,this.toggleSiblingsVisibility]),this._updateChildWidgets,t))}destroy(){this._destroyChildWidgets()}render(){const e=this.node,s=e.isRoot,i=e.isLeaf;return e.isDiscipline&&i?[]:n("div",{key:e.id,class:this.classes(p.base,p.level(e.level),{[p.root]:s,[p.leaf]:i}),bind:this,onkeydown:this._onKeydown,tabIndex:i?null:0,role:"treeitem","aria-expanded":e.collapsed?"false":"true"},n("label",{bind:this,class:p.label,onclick:this._onCheckboxToggle},this._renderCollapseToggle(),this._renderCheckbox(),n("span",null,e.title)),this._renderChildren(e))}_renderCheckbox(){var e,s;const i=this.node.visible,t=!0===i,o=null===i,l=t?null==(e=this.messages)?void 0:e.hideSublayer:null==(s=this.messages)?void 0:s.showSublayer;return n("button",{bind:this,class:this.classes(p.checkbox,{[p.checkboxChecked]:t,[p.checkboxIndeterminate]:o}),onclick:this._onCheckboxToggle,role:"checkbox","aria-checked":t?"true":"false","aria-label":l,title:l,type:"button"})}_renderCollapseToggle(){var e,s;if(!this.node.hasChildren)return[];const i=this.node.collapsed,t=i?null==(e=this.messages)?void 0:e.expand:null==(s=this.messages)?void 0:s.collapse;return n("div",{bind:this,class:this.classes(p.collapseToggle,{[p.collapseToggleCollapsed]:i}),onclick:this._onCollapseToggle,"aria-label":t,title:t})}_renderChildren(e){return!e.hasChildren||e.collapsed?[]:n("div",{class:p.children},this._childWidgets.map((e=>e.render())))}_onKeydown(e){switch(e.key){case"Space":case"Enter":if(!e.target.classList.contains(p.base))return;e.stopPropagation(),this.node.toggleVisibility();break;case"ArrowLeft":e.stopPropagation(),this.node.toggleCollapsed(!d(this.container));break;case"ArrowRight":e.stopPropagation(),this.node.toggleCollapsed(!!d(this.container))}}_onCheckboxToggle(e){e.preventDefault(),e.stopPropagation();(e.metaKey||e.ctrlKey)&&this.toggleSiblingsVisibility?this.node.toggleAllSiblingsVisibility():this.node.toggleVisibility()}_onCollapseToggle(e){e.preventDefault(),e.stopPropagation(),this.node.toggleCollapsed()}_destroyChildWidgets(){this._childWidgets.forEach((e=>e.destroy())),this._childWidgets=[]}};e([o({type:a})],b.prototype,"node",void 0),e([o()],b.prototype,"messages",void 0),e([o({nonNullable:!0})],b.prototype,"toggleSiblingsVisibility",void 0),e([o()],b.prototype,"_childWidgets",void 0),b=c=e([l("geoscene.widgets.BuildingExplorer.BuildingDisciplinesTree.BuildingDisciplinesNode")],b);const u=b;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 i}from"../../../chunks/tslib.es6.js";import{on as e,watch as s,initial as t}from"../../../core/reactiveUtils.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 r}from"../../../core/accessorSupport/decorators/subclass.js";import d from"../../Widget.js";import l from"../BuildingDisciplinesViewModel.js";import p from"./BuildingDisciplinesNode.js";import"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as h}from"../../support/jsxFactory.js";const a={expand:"expand",collapse:"collapse",hideSublayer:"hideSublayer",showSublayer:"showSublayer"},g={base:`${"
|
|
5
|
+
import{_ as i}from"../../../chunks/tslib.es6.js";import{on as e,watch as s,initial as t}from"../../../core/reactiveUtils.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 r}from"../../../core/accessorSupport/decorators/subclass.js";import d from"../../Widget.js";import l from"../BuildingDisciplinesViewModel.js";import p from"./BuildingDisciplinesNode.js";import"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as h}from"../../support/jsxFactory.js";const a={expand:"expand",collapse:"collapse",hideSublayer:"hideSublayer",showSublayer:"showSublayer"},g={base:`${"geoscene-building-disciplines-tree"}`};let n=class extends d{constructor(i){super(i),this._defaultViewModel=new l,this.viewModel=this._defaultViewModel,this.messages=a,this.toggleSiblingsVisibility=!1,this._childWidgets=[],this._updateChildWidgets=()=>{this._destroyChildWidgets(),this.viewModel&&(this._childWidgets=this.viewModel.root.children.toArray().reverse().map((i=>new p({node:i,messages:this.messages,toggleSiblingsVisibility:this.toggleSiblingsVisibility}))))}}initialize(){this.own(e((()=>{var i,e;return null==(i=this.viewModel)||null==(e=i.root)?void 0:e.children}),"after-changes",this._updateChildWidgets,{onListenerAdd:this._updateChildWidgets,onListenerRemove:this._updateChildWidgets}),s((()=>[this.messages,this.toggleSiblingsVisibility]),this._updateChildWidgets,t))}destroy(){this._destroyChildWidgets(),this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}render(){return h("div",{role:"tree",class:g.base},this._childWidgets.map((i=>i.render())))}_destroyChildWidgets(){this._childWidgets.forEach((i=>i.destroy())),this._childWidgets=[]}};i([o({type:l})],n.prototype,"viewModel",void 0),i([o()],n.prototype,"messages",void 0),i([o({nonNullable:!0})],n.prototype,"toggleSiblingsVisibility",void 0),i([o()],n.prototype,"_childWidgets",void 0),n=i([r("geoscene.widgets.BuildingExplorer.BuildingDisciplinesTree.BuildingDisciplinesTree")],n);const c=n;export{c as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import{on as t}from"../../../core/events.js";import i from"../../../core/Handles.js";import{clamp as s}from"../../../core/mathUtils.js";import{isSome as o}from"../../../core/maybe.js";import{watch as l,initial as n}from"../../../core/reactiveUtils.js";import{aliasOf as r}from"../../../core/accessorSupport/decorators/aliasOf.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import{subclass as h}from"../../../core/accessorSupport/decorators/subclass.js";import v from"../../Widget.js";import d from"../BuildingLevel.js";import{L as _,a as p,A as c,b as g,c as u,d as m,e as L,f as w,g as y,h as M,i as f}from"../../../chunks/constants.js";import{Label as b}from"./Label.js";import{LevelItem as P}from"./LevelItem.js";import{storeNode as C}from"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as W}from"../../support/jsxFactory.js";const x={selectLevel:"selectLevel",clearLevel:"clearLevel",nextLevel:"nextLevel",previousLevel:"previousLevel",currentLevel:"{{value}}"},H="
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{on as t}from"../../../core/events.js";import i from"../../../core/Handles.js";import{clamp as s}from"../../../core/mathUtils.js";import{isSome as o}from"../../../core/maybe.js";import{watch as l,initial as n}from"../../../core/reactiveUtils.js";import{aliasOf as r}from"../../../core/accessorSupport/decorators/aliasOf.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import{subclass as h}from"../../../core/accessorSupport/decorators/subclass.js";import v from"../../Widget.js";import d from"../BuildingLevel.js";import{L as _,a as p,A as c,b as g,c as u,d as m,e as L,f as w,g as y,h as M,i as f}from"../../../chunks/constants.js";import{Label as b}from"./Label.js";import{LevelItem as P}from"./LevelItem.js";import{storeNode as C}from"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as W}from"../../support/jsxFactory.js";const x={selectLevel:"selectLevel",clearLevel:"clearLevel",nextLevel:"nextLevel",previousLevel:"previousLevel",currentLevel:"{{value}}"},H="geoscene-building-level-picker",j={container:H,noLevel:`${H}--no-level`,animateLevel:`${H}--animate-level`,levelsContainer:`${H}__levels-container`,innerLevelsContainer:`${H}__inner-levels-container`,labelContainer:`${H}__label-container`,arrowUp:`${H}__arrow-up`,arrowDown:`${H}__arrow-down`};let E=class extends v{constructor(e,t){super(e,t),this._defaultViewModel=new d,this.viewModel=this._defaultViewModel,this.messages=x,this._levelHandles=new i,this._levelEventHandles=new i,this._levelWidgets=[],this._labelWidget=new b({onClear:()=>this.viewModel.clear()}),this._hoveredLevel=null,this._expandedLevelsHeight=void 0,this._normalizedPointerPosition=0,this._hovering=!1,this._containerPosTop=null,this._levelsContainer=null,this._onPointerUp=()=>{window.getSelection().removeAllRanges(),o(this._hoveredLevel)&&(this.viewModel.enabled&&this._hoveredLevel===this.viewModel.value?this.viewModel.clear():this.viewModel.select(this._hoveredLevel))},this._onPointerEnter=()=>{var e;!this._hovering&&o(this._levelsContainer)&&(this._hovering=!0,this._containerPosTop=null!=(e=this._levelsContainer.getBoundingClientRect().top)?e:0)},this._onPointerLeave=()=>{this._hovering&&(this._normalizedPointerPosition=0,this._hoveredLevel=null,this._hovering=!1)},this._onPointerMove=e=>{if(!this._hovering)return!1;if(window.getSelection().removeAllRanges(),o(this._containerPosTop)){const t=this._containerPosTop,i=u*f,s=this._expandedLevelsMargin;let o=this._levelsHeight,l=t+i+s;const n=this._levelHeight/2;l+=n,o-=n;let r=(e.clientY-l)/o;r+=w,this._normalizedPointerPosition=r}return!1}}postInitialize(){this.own(l((()=>this._levelsContainer),(()=>this._onContainerChange()),n),l((()=>this._levels),(()=>this._createLevelWidgets()),n),l((()=>this.messages),(()=>{this._labelWidget.messages=this.messages}),n))}destroy(){this._levelHandles.destroy(),this._levelEventHandles.destroy(),this._levelWidgets.forEach((e=>e.destroy())),this._labelWidget.destroy(),this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}get _levelsHeight(){return Math.round(this._levelHeight*this._numLevels)}get _expandedLevelsMargin(){return Math.round((this._expandedLevelsHeight-this._levelsHeight)/2)}get _levelWidth(){const{LEVEL_WIDTH_NOMINATOR:e,LEVEL_WIDTH_CONSTANT:t}=y,i=e/Math.sqrt(this._numLevels)+t;return Math.round(s(i,p,_))}get _levelHeight(){const e=M,t=2*e/Math.sqrt(this._numLevels);return Math.round(s(t,2,e))}get _gaussianFactor(){const e=this._numLevels;return e/Math.log(c*e)*g}get _levelClosestToPointer(){if(!this._hovering)return null;const e=this._numLevels-1,t=this._normalizedPointerPosition;return e>=0&&o(t)?this._levels[Math.round((1-t)*e)]:null}render(){const e=this._levelWidgets.length,t=e>1?this._levelWidgets.map((e=>e.render())):null,i=u*f,s=-i/f,o=this._levelsHeight,l=o+2*i;return W("div",{bind:this,key:this,class:this.classes("geoscene-widget",j.container,{[j.animateLevel]:!this._hovering,[j.noLevel]:e<2}),onkeydown:this._onKeyDown},this._renderLabelContainer(),W("div",{bind:this,class:j.levelsContainer,styles:{height:`${l}px`,marginTop:`${s}px`,marginBottom:`${s}px`},onfocus:this._onFocus,afterCreate:C,"data-node-ref":"_levelsContainer"},W("div",{styles:{height:`${o}px`,margin:u-this._expandedLevelsMargin+"px 0 0 0"},class:j.innerLevelsContainer},t)))}_renderLabelContainer(){const e=this.messages.previousLevel,t=this.messages.nextLevel;return W("div",{class:j.labelContainer,tabIndex:0},W("button",{bind:this,class:j.arrowUp,disabled:!this.viewModel.hasNext,onclick:this._onArrowUpClick,"aria-label":t,title:t,type:"button"}),this._labelWidget.render(),W("button",{bind:this,class:j.arrowDown,disabled:!this.viewModel.hasPrevious,onclick:this._onArrowDownClick,"aria-label":e,title:e,type:"button"}))}_updateComponents(){const e=this.viewModel.enabled?this.viewModel.value:null,t=o(this._hoveredLevel)?this._hoveredLevel:e;this._levelWidgets.forEach((t=>{var i,s;const l=this.viewModel.getValueLabel(t.level);t.label=o(l)?l:null==(i=this.messages)||null==(s=i.currentLevel)?void 0:s.replace("{{level}}",String(t.level)),t.active=t.level===e,t.hovering=t.level===this._hoveredLevel})),this._labelWidget.level=t,this._labelWidget.active=t===e,this._labelWidget.hovering=o(this._hoveredLevel)}_createLevelWidgets(){this._levelWidgets.forEach((e=>e.destroy())),this._levelWidgets=this._levels.map((e=>new P({level:e,onSelect:()=>this._onLevelToggle(e)}))),this._levelHandles.removeAll(),this._levelHandles.add([l((()=>{const e=this.viewModel;return[this.messages,null==e?void 0:e.value,null==e?void 0:e.enabled,this._hoveredLevel,this._hovering]}),(()=>this._updateComponents()),n),l((()=>[this._normalizedPointerPosition,this._hovering]),(()=>this._onPointerPositionChange()),n),l((()=>this._levelWidth),(e=>this._levelWidgets.forEach((t=>t.width=e))),n)])}_onContainerChange(){const e=this._levelsContainer;o(e)&&(this._levelEventHandles.removeAll(),this._levelEventHandles.add([t(e,"pointerenter",this._onPointerEnter),t(e,"pointerover",this._onPointerEnter),t(e,"pointerleave",this._onPointerLeave),t(e,"pointerup",this._onPointerUp),t(e,"pointermove",this._onPointerMove)]))}_onKeyDown(e){switch(e.key){case"ArrowDown":case"ArrowLeft":e.preventDefault(),e.stopPropagation(),this.viewModel.previous(),this._focusCurrentLevel();break;case"ArrowUp":case"ArrowRight":e.preventDefault(),e.stopPropagation(),this.viewModel.next(),this._focusCurrentLevel()}}_focusCurrentLevel(){const e=this._levelWidgets.find((e=>e.level===this.viewModel.value));e&&e.focus()}_onFocus(){this._hoveredLevel=this._levels.length>0?this._levels[0]:null}_onLevelToggle(e){this.viewModel.enabled&&this.viewModel.value===e?this.viewModel.clear():this.viewModel.select(e)}_onArrowUpClick(){this.viewModel.next()}_onArrowDownClick(){this.viewModel.previous()}_onPointerPositionChange(){let e=0;this._levelWidgets.forEach(((t,i)=>{const{width:s,height:o}=this._getLevelWidgetSize(i);t.height=o,t.width=s,e+=o})),this._hoveredLevel=this._levelClosestToPointer;const t=this._expandedLevelsHeight;(null==t||Math.abs(t-e)>30)&&(this._expandedLevelsHeight=e)}_getLevelWidgetSize(e){const t={width:this._levelWidth,height:this._levelHeight};if(this._hovering){const i=this._getGaussianFactor(e,this._normalizedPointerPosition);t.width+=m*i,t.height+=L*i}return t}_getGaussianFactor(e,t){const i=this._numLevels-1,s=(i-e)/i,o=this._gaussianFactor*(s-t);return Math.exp(-(o**2))}};e([a({type:d})],E.prototype,"viewModel",void 0),e([a()],E.prototype,"messages",void 0),e([a()],E.prototype,"_levelWidgets",void 0),e([a()],E.prototype,"_labelWidget",void 0),e([a()],E.prototype,"_hoveredLevel",void 0),e([r("viewModel.allowedValues")],E.prototype,"_levels",void 0),e([r("_levels.length")],E.prototype,"_numLevels",void 0),e([a({readOnly:!0})],E.prototype,"_levelsHeight",null),e([a()],E.prototype,"_expandedLevelsHeight",void 0),e([a({readOnly:!0})],E.prototype,"_expandedLevelsMargin",null),e([a({readOnly:!0})],E.prototype,"_levelWidth",null),e([a({readOnly:!0})],E.prototype,"_levelHeight",null),e([a({readOnly:!0})],E.prototype,"_gaussianFactor",null),e([a({readOnly:!0})],E.prototype,"_levelClosestToPointer",null),e([a({type:Number,range:{min:0,max:1}})],E.prototype,"_normalizedPointerPosition",void 0),e([a()],E.prototype,"_hovering",void 0),e([a()],E.prototype,"_containerPosTop",void 0),e([a()],E.prototype,"_levelsContainer",void 0),E=e([h("geoscene.widgets.BuildingExplorer.BuildingLevelPicker.BuildingLevelPicker")],E);const T=E;export{T as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import{isNone as s}from"../../../core/maybe.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as i}from"../../support/jsxFactory.js";const l="
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{isNone as s}from"../../../core/maybe.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as i}from"../../support/jsxFactory.js";const l="geoscene-building-level-picker-label",c={iconClose:"geoscene-icon-close",base:`${l}`,active:`${l}--active`,hover:`${l}--hover`,empty:`${l}--empty`,clearButton:`${l}__clear-button`};let a=class extends r{constructor(e,s){super(e,s),this.level=null,this.active=!1,this.hovering=!1,this.messages={clearLevel:"",selectLevel:""},this.onClear=()=>{}}render(){if(s(this.level))return i("div",{class:c.empty,title:this.messages.selectLevel},this.messages.selectLevel);const e=this.messages.clearLevel;return i("div",{bind:this,class:this.classes(c.base,{[c.active]:this.active,[c.hover]:this.hovering}),onclick:this.onClear,title:e,"aria-label":e},i("span",null,this.level),i("button",{bind:this,class:this.classes(c.clearButton,c.iconClose),disabled:!this.active,onclick:this.onClear,type:"button"}))}};e([t()],a.prototype,"level",void 0),e([t({nonNullable:!0})],a.prototype,"active",void 0),e([t({nonNullable:!0})],a.prototype,"hovering",void 0),e([t()],a.prototype,"messages",void 0),e([t({nonNullable:!0})],a.prototype,"onClear",void 0),a=e([o("geoscene.widgets.BuildingExplorer.BuildingLevelPicker.Label")],a);export{a as Label};
|
|
@@ -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{isNone as t}from"../../../core/maybe.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 s from"../../Widget.js";import{storeNode as r}from"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as l}from"../../support/jsxFactory.js";const n={container:"
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{isNone as t}from"../../../core/maybe.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 s from"../../Widget.js";import{storeNode as r}from"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as l}from"../../support/jsxFactory.js";const n={container:"geoscene-building-level-picker-item",base:"geoscene-building-level-picker-item__base",hover:"geoscene-building-level-picker-item--hover",active:"geoscene-building-level-picker-item--active"};let a=class extends s{constructor(e,t){super(e,t),this.active=!1,this.hovering=!1,this.width=0,this.height=0,this.onSelect=()=>{},this.onFocus=()=>{},this.onBlur=()=>{},this._baseElement=null}render(){return l("div",{key:this,bind:this,class:this.classes(n.container,{[n.active]:this.active,[n.hover]:this.hovering}),styles:{height:`${this.height}px`}},this._renderBase())}focus(){t(this._baseElement)||this._baseElement.focus()}_renderBase(){const e=this.width,t=.8*this.width;return l("div",{class:n.base,styles:{width:`${Math.round(e)}px`,height:`${Math.round(e)}px`}},l("button",{bind:this,class:"rect",styles:{width:`${Math.round(t)}px`,height:`${Math.round(t)}px`},onclick:this.onSelect,onfocus:this.onFocus,onblur:this.onBlur,afterCreate:r,"data-node-ref":"_baseElement","aria-label":this.label,title:this.label,tabIndex:-1,type:"button"}))}};e([o({nonNullable:!0})],a.prototype,"level",void 0),e([o()],a.prototype,"label",void 0),e([o({nonNullable:!0})],a.prototype,"active",void 0),e([o({nonNullable:!0})],a.prototype,"hovering",void 0),e([o({nonNullable:!0})],a.prototype,"width",void 0),e([o({nonNullable:!0})],a.prototype,"height",void 0),e([o({nonNullable:!0})],a.prototype,"onSelect",void 0),e([o({nonNullable:!0})],a.prototype,"onFocus",void 0),e([o({nonNullable:!0})],a.prototype,"onBlur",void 0),a=e([i("geoscene.widgets.BuildingExplorer.BuildingLevelPicker.LevelItem")],a);export{a as LevelItem};
|
|
@@ -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{isSome as s,unwrap as t,isNone as r}from"../../../core/maybe.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 o}from"../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import h from"../../Widget.js";import n from"../BuildingPhase.js";import{isRTL as l,storeNode as c}from"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as d}from"../../support/jsxFactory.js";const u={nextPhase:"nextPhase",previousPhase:"previousPhase",currentPhase:"{{value}}"},p="
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{isSome as s,unwrap as t,isNone as r}from"../../../core/maybe.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 o}from"../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import h from"../../Widget.js";import n from"../BuildingPhase.js";import{isRTL as l,storeNode as c}from"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as d}from"../../support/jsxFactory.js";const u={nextPhase:"nextPhase",previousPhase:"previousPhase",currentPhase:"{{value}}"},p="geoscene-building-phase-picker",_={container:`${p}`,phasesContainer:`${p}__phases-container`,phase:`${p}__phase`,phaseActive:`${p}__phase--active`,phaseCurrent:`${p}__phase--current`,divider:`${p}__divider`,dividerActive:`${p}__divider--active`,arrowLeft:`${p}__arrow-left`,arrowRight:`${p}__arrow-right`};let v=class extends h{constructor(e,s){super(e,s),this._defaultViewModel=new n,this.viewModel=this._defaultViewModel,this.messages=u,this._phasesContainer=null,this._shouldScrollCurrentPhaseIntoView=!0,this._shouldFocusCurrentPhase=!1}initialize(){this.own(this.watch(["_currentPhase","_container"],(()=>{this._shouldScrollCurrentPhaseIntoView=!0})))}destroy(){this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}get _currentPhase(){return this.viewModel.enabled?this.viewModel.value:null}render(){if(this._phases.length<2)return d("div",null);const e=l(this.container),s=this.messages.previousPhase,t=this.messages.nextPhase;return d("div",{bind:this,key:this,class:this.classes("geoscene-widget",_.container),onkeydown:this._onKeyDown},d("button",{bind:this,class:e?_.arrowRight:_.arrowLeft,disabled:!this.viewModel.hasPrevious,onclick:this._onArrowLeftClick,"aria-label":s,title:s,type:"button"}),d("div",{bind:this,class:_.phasesContainer,afterCreate:c,"data-node-ref":"_phasesContainer",afterUpdate:this._onPhasesContainerAfterUpdate},this._renderPhaseButtons()),d("button",{bind:this,class:e?_.arrowLeft:_.arrowRight,disabled:!this.viewModel.hasNext,onclick:this._onArrowRightClick,"aria-label":t,title:t,type:"button"}))}_renderPhaseButtons(){const e=this._phases,t=[];for(let r=0;r<e.length;++r){const i=e[r],o={phase:i,active:!!s(this._currentPhase)&&i<=this._currentPhase,current:!!s(this._currentPhase)&&i===this._currentPhase};r>0&&t.push(this._renderDivider(o)),t.push(this._renderPhaseButton(o))}return t}_renderPhaseButton({phase:e,active:s,current:r}){const i=t(this.viewModel.getValueLabel(e));return d("button",{key:`phase-${e}`,class:this.classes(_.phase,{[_.phaseActive]:s,[_.phaseCurrent]:r}),"aria-label":i,title:i,onclick:()=>this.viewModel.select(e),type:"button"},e)}_renderDivider({phase:e,active:s}){return d("div",{key:`phase-divider-${e}`,class:this.classes(_.divider,{[_.dividerActive]:s})})}_onKeyDown(e){switch(e.key){case"ArrowDown":case"ArrowLeft":e.stopPropagation(),e.preventDefault(),this.viewModel.previous(),this._shouldFocusCurrentPhase=!0;break;case"ArrowUp":case"ArrowRight":e.stopPropagation(),e.preventDefault(),this.viewModel.next(),this._shouldFocusCurrentPhase=!0}}_onArrowLeftClick(){this.viewModel.previous()}_onArrowRightClick(){this.viewModel.next()}_onPhasesContainerAfterUpdate(){if(r(this._phasesContainer))return;const e=this._phasesContainer.querySelector(`.${_.phaseCurrent}`);if(!r(e)){if(this._shouldScrollCurrentPhaseIntoView){const s=this._phasesContainer.offsetWidth,t=e.offsetLeft,r=e.offsetWidth;this._phasesContainer.scrollLeft=-s/2+t-r/2,this._shouldScrollCurrentPhaseIntoView=!1}this._shouldFocusCurrentPhase&&(e.focus(),this._shouldFocusCurrentPhase=!1)}}};e([o({type:n})],v.prototype,"viewModel",void 0),e([o()],v.prototype,"messages",void 0),e([i("viewModel.allowedValues")],v.prototype,"_phases",void 0),e([o({readOnly:!0})],v.prototype,"_currentPhase",null),e([o()],v.prototype,"_phasesContainer",void 0),v=e([a("geoscene.widgets.BuildingExplorer.BuildingPhasePicker.BuildingPhasePicker")],v);const w=v;export{w 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 i from"../core/Handles.js";import{watch as s,initial as t}from"../core/reactiveUtils.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import d from"./BuildingExplorer/BuildingExplorerViewModel.js";import p from"./BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js";import c from"./BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js";import h from"./BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js";import{Heading as g}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as m}from"./support/jsxFactory.js";const u={levels:!0,phases:!0,disciplines:!0},_="
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import i from"../core/Handles.js";import{watch as s,initial as t}from"../core/reactiveUtils.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import d from"./BuildingExplorer/BuildingExplorerViewModel.js";import p from"./BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js";import c from"./BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js";import h from"./BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js";import{Heading as g}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as m}from"./support/jsxFactory.js";const u={levels:!0,phases:!0,disciplines:!0},_="geoscene-building-explorer",w={geosceneWidget:"geoscene-widget",geosceneWidgetDisabled:"geoscene-widget--disabled",esriIconLoadingIndicator:"geoscene-icon-loading-indicator",esriRotating:"geoscene-rotating",widgetIcon:"geoscene-icon-organization",base:`${_} geoscene-widget--panel`,panelError:`${_}__panel--error`,loadingContainer:`${_}__loading-container`,content:`${_}__content`,section:`${_}__section`,levels:`${_}__levels`,phases:`${_}__phases`,disciplines:`${_}__disciplines`};let y=class extends a{constructor(e,s){super(e,s),this._defaultViewModel=new d,this.viewModel=this._defaultViewModel,this.view=null,this.layers=null,this.visibleElements={...u},this.headingLevel=3,this.iconClass=w.widgetIcon,this.label=void 0,this.messages=null,this.messagesCommon=null,this.toggleSiblingsVisibility=!1,this._handles=new i,this._levelPicker=new c,this._phasePicker=new h,this._disciplinesTree=new p}initialize(){this._handles.add([s((()=>this.viewModel.level),(e=>this._levelPicker.viewModel=e),t),s((()=>this.viewModel.phase),(e=>this._phasePicker.viewModel=e),t),s((()=>this.viewModel.disciplines),(e=>this._disciplinesTree.viewModel=e),t),s((()=>this.messages),(()=>{var e,i,s;this._levelPicker.messages=null==(e=this.messages)?void 0:e.level,this._phasePicker.messages=null==(i=this.messages)?void 0:i.phase,this._disciplinesTree.messages=null==(s=this.messages)?void 0:s.disciplines}),t),s((()=>this.toggleSiblingsVisibility),(()=>{this._disciplinesTree.toggleSiblingsVisibility=this.toggleSiblingsVisibility}),t)])}destroy(){this._handles.destroy(),this._levelPicker.destroy(),this._phasePicker.destroy(),this._disciplinesTree.destroy(),this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}_castVisibleElements(e){return{...u,...e}}render(){const e="disabled"===this.viewModel.state||!this.viewModel.isSupported;return m("div",{key:this,class:this.classes(w.geosceneWidget,w.base,{[w.geosceneWidgetDisabled]:e}),"aria-label":this.messages.widgetLabel},this._renderContent())}_renderContent(){if(!this.viewModel.isSupported)return m("p",{class:w.panelError},this.messages.unsupported);if(!this.viewModel.layers.length)return m("p",{class:w.panelError},this.messages.noData);switch(this.viewModel.state){case"loading":return this._renderLoadingIndicator();case"ready":return m("div",{key:"content",class:w.content},this._renderLevelPickerSection(),this._renderPhasePickerSection(),this._renderDisciplinesSection());case"failed":return m("p",{class:w.panelError},this.messages.failed);default:return null}}_renderLoadingIndicator(){return m("div",{key:"loading-container",role:"presentation",class:w.loadingContainer,"aria-label":this.messagesCommon.loading,title:this.messagesCommon.loading},m("span",{"aria-hidden":"true",class:this.classes(w.esriIconLoadingIndicator,w.esriRotating)}))}_renderLevelPickerSection(){const e=this.viewModel.level,i="ready"===e.state,s=e.allowedValues.length>1;return this.visibleElements.levels&&i&&s?m("div",{key:"levels",class:this.classes(w.section,w.levels)},m(g,{level:this.headingLevel},this.messages.level.title),this._levelPicker.render()):[]}_renderPhasePickerSection(){const e=this.viewModel.phase,i="ready"===e.state,s=e.allowedValues.length>1;return this.visibleElements.phases&&i&&s?m("div",{key:"phases",class:this.classes(w.section,w.phases)},m(g,{level:this.headingLevel},this.messages.phase.title),this._phasePicker.render()):[]}_renderDisciplinesSection(){const e=this.viewModel.disciplines,i="ready"===e.state,s=e.root.hasChildren;return this.visibleElements.disciplines&&i&&s?m("div",{key:"disciplines",class:this.classes(w.section,w.disciplines)},m(g,{level:this.headingLevel},this.messages.disciplines.title),this._disciplinesTree.render()):[]}};e([o({type:d})],y.prototype,"viewModel",void 0),e([r("viewModel.view")],y.prototype,"view",void 0),e([r("viewModel.layers")],y.prototype,"layers",void 0),e([o()],y.prototype,"visibleElements",void 0),e([l("visibleElements")],y.prototype,"_castVisibleElements",null),e([o()],y.prototype,"headingLevel",void 0),e([o()],y.prototype,"iconClass",void 0),e([r("messages.widgetLabel",{overridable:!0})],y.prototype,"label",void 0),e([o(),v("geoscene/widgets/BuildingExplorer/t9n/BuildingExplorer")],y.prototype,"messages",void 0),e([o(),v("geoscene/t9n/common")],y.prototype,"messagesCommon",void 0),e([o({nonNullable:!0})],y.prototype,"toggleSiblingsVisibility",void 0),e([o()],y.prototype,"uiStrings",void 0),e([o()],y.prototype,"_levelPicker",void 0),e([o()],y.prototype,"_phasePicker",void 0),e([o()],y.prototype,"_disciplinesTree",void 0),y=e([n("geoscene.widgets.BuildingExplorer")],y);const b=y;export{b as default};
|
package/widgets/Compass.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 s}from"../chunks/tslib.es6.js";import{aliasOf as e}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import i from"./Compass/CompassViewModel.js";import{accessibleHandler as a}from"./support/decorators/accessibleHandler.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as p}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const n={base:"
|
|
5
|
+
import{_ as s}from"../chunks/tslib.es6.js";import{aliasOf as e}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import i from"./Compass/CompassViewModel.js";import{accessibleHandler as a}from"./support/decorators/accessibleHandler.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as p}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const n={base:"geoscene-compass geoscene-widget--button geoscene-widget",text:"geoscene-icon-font-fallback-text",icon:"geoscene-compass__icon",rotationIcon:"geoscene-icon-dial",northIcon:"geoscene-icon-compass",widgetIcon:"geoscene-icon-locate-circled",interactive:"geoscene-interactive",disabled:"geoscene-disabled"};let l=class extends r{constructor(s,e){super(s,e),this.goToOverride=null,this.iconClass=n.widgetIcon,this.label=void 0,this.messages=null,this.view=null,this.viewModel=new i}reset(){return this.viewModel.reset()}render(){const{orientation:s,state:e}=this.viewModel,o="disabled"===e,t="compass"===("rotation"===e?"rotation":"compass"),r=o?-1:0,i={[n.disabled]:o,[n.interactive]:!o},a={[n.northIcon]:t,[n.rotationIcon]:!t},{messages:c}=this;return p("div",{bind:this,class:this.classes(n.base,i),onclick:this._reset,onkeydown:this._reset,role:"button",tabIndex:r,"aria-label":c.reset,title:c.reset},p("span",{"aria-hidden":"true",class:this.classes(n.icon,a),styles:this._toRotationTransform(s)}),p("span",{class:n.text},c.reset))}_reset(){this.viewModel.reset()}_toRotationTransform(s){return{transform:`rotateZ(${s.z}deg)`}}};s([e("viewModel.goToOverride")],l.prototype,"goToOverride",void 0),s([o()],l.prototype,"iconClass",void 0),s([o({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],l.prototype,"label",void 0),s([o(),c("geoscene/widgets/Compass/t9n/Compass")],l.prototype,"messages",void 0),s([e("viewModel.view")],l.prototype,"view",void 0),s([o({type:i})],l.prototype,"viewModel",void 0),s([a()],l.prototype,"_reset",null),l=s([t("geoscene.widgets.Compass")],l);const d=l;export{d as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{eventKey as t}from"../core/events.js";import o from"../core/Logger.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as s}from"../core/accessorSupport/decorators/cast.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import l from"./CoordinateConversion/CoordinateConversionViewModel.js";import d from"./CoordinateConversion/support/Conversion.js";import{Heading as p}from"./support/Heading.js";import{accessibleHandler as c}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as h}from"./support/jsxFactory.js";import{storeNode as _,isRTL as v}from"./support/widgetUtils.js";const m={base:"esri-coordinate-conversion esri-widget",captureMode:"esri-coordinate-conversion--capture-mode",noBasemap:"esri-coordinate-conversion--no-basemap",popup:"esri-coordinate-conversion__popup",clipboardPopup:"esri-coordinate-conversion__clipboard-popup",conversionList:"esri-coordinate-conversion__conversion-list",conversionRow:"esri-coordinate-conversion__row",coordDisplay:"esri-coordinate-conversion__display",expanded:"esri-coordinate-conversion__conversions-view--expanded",expandDown:"esri-coordinate-conversion__conversions-view--expand-down",expandUp:"esri-coordinate-conversion__conversions-view--expand-up",conversionsView:"esri-coordinate-conversion__conversions-view",primarySelect:"esri-coordinate-conversion__select-primary",rowSelect:"esri-coordinate-conversion__select-row",toolDisplay:"esri-coordinate-conversion__tools",modeToggle:"esri-coordinate-conversion__mode-toggle",rowButton:"esri-coordinate-conversion__row-button",backButton:"esri-coordinate-conversion__back-button",convertButton:"esri-coordinate-conversion__button",convertButtonSpan:"esri-coordinate-conversion__convert-button-span",coordinateInput:"esri-coordinate-conversion__input-coordinate",inputForm:"esri-coordinate-conversion__input-form",inputFormGroup:"esri-coordinate-conversion__input-group",rejectInput:"esri-coordinate-conversion__input-coordinate--rejected",sectionHeading:"esri-coordinate-conversion__heading",patternInput:"esri-coordinate-conversion__pattern-input",settings:"esri-coordinate__settings",settingsFormGroup:"esri-coordinate-conversion__settings-group",settingsFormGroupHorizontal:"esri-coordinate-conversion__settings-group-horizontal",previewCoordinate:"esri-coordinate-conversion__preview-coordinate",disabled:"esri-disabled",input:"esri-input",button:"esri-button",header:"esri-widget__heading",widgetButton:"esri-widget--button",leftArrow:"geoscene-icon-left-arrow",rightArrow:"geoscene-icon-right-arrow",captureButton:"geoscene-icon-map-pin",collapseButton:"geoscene-icon-up",copyButton:"geoscene-icon-duplicate",editButton:"geoscene-icon-edit",esriSelect:"esri-select",expandButton:"geoscene-icon-down",goToButton:"geoscene-icon-locate",refresh:"geoscene-icon-refresh",removeConversion:"geoscene-icon-close",settingsButton:"geoscene-icon-settings2"},g={settingsButton:!0,inputButton:!0,captureButton:!0,expandButton:!0},b=750,y=2500,w=o.getLogger("geoscene.widgets.CoordinateConversion");let C=class extends a{constructor(e,t){super(e,t),this._popupMessage=null,this._popupTimeoutId=null,this._clipboardPopupTimeoutId=null,this._coordinateInput=null,this._badInput=!1,this._goToEnabled=!1,this._conversionFormat=null,this._settingsFormat=null,this._previewConversion=null,this._expanded=!1,this._clipboardPopupVisible=!1,this._popupVisible=!1,this._settingsVisible=!1,this._inputVisible=!1,this.conversions=null,this.currentLocation=null,this.formats=null,this.goToOverride=null,this.headingLevel=4,this.label=void 0,this.messages=null,this.messagesCommon=null,this.mode=null,this.orientation="auto",this.locationSymbol=null,this.storageEnabled=null,this.storageType=null,this.view=null,this.viewModel=new l,this.visibleElements={...g}}set multipleConversions(e){!1===e&&(this._expanded=!1,this.conversions.splice(1,this.conversions.length-1)),this._set("multipleConversions",e)}get multipleConversions(){const e=this._get("multipleConversions");return"boolean"!=typeof e||e}castVisibleElements(e){return{...g,...e}}reverseConvert(e,t){return this.viewModel.reverseConvert(e,t)}render(){const e=this.get("viewModel.state"),t="disabled"===e?h("div",{key:"esri-coordinate__no-basemap"},this.messages.noBasemap):null,o=!t&&this._inputVisible?this._renderInputForm():null,i=!t&&this._settingsVisible?this._renderSettings():null,s=t||o||i?null:this._renderConversionsView(),n=this._popupVisible?this._renderPopup():null,r={[m.captureMode]:"capture"===this.mode,[m.disabled]:"loading"===e,[m.noBasemap]:"disabled"===e};return h("div",{class:this.classes(m.base,r)},n,t,s,i,o)}_addConversion(e){const t=e.target,o=t.options[t.options.selectedIndex]["data-format"],i=t["data-index"],s=new d({format:o});t.options.selectedIndex=0,i>=0&&this.conversions.removeAt(i),this.conversions.add(s,i)}_findSettingsFormat(){return this._settingsFormat||this.conversions.reduceRight(((e,t)=>{const o=t.format;return o.get("hasDisplayProperties")?o:e}),null)||this.formats.find((e=>e.hasDisplayProperties))}_hidePopup(){this._popupTimeoutId&&(clearTimeout(this._popupTimeoutId),this._popupTimeoutId=null),this._popupVisible=!1,this._popupMessage=null,this.scheduleRender()}_hideClipboardPopup(){this._clipboardPopupTimeoutId&&(clearTimeout(this._clipboardPopupTimeoutId),this._clipboardPopupTimeoutId=null),this._clipboardPopupVisible=!1,this.scheduleRender()}_onConvertComplete(){this._inputVisible=!1,this._coordinateInput.value=""}_onCopy(e){const t=e.currentTarget["data-conversion"].displayCoordinate;e.clipboardData.setData("text/plain",t),this._showClipboardPopup(),e.preventDefault()}_processUserInput(e){const o=t(e),i=this.viewModel;if("Enter"!==o&&o)this._badInput&&(this._badInput=!1);else{const e=this._coordinateInput["data-format"],t=this._coordinateInput.value;this._reverseConvert(t,e).then((e=>{"capture"===this.mode?i.resume():this.mode="capture",this.currentLocation=e,i.setLocation(e),this._onConvertComplete()})).catch((e=>{w.error(e),this._showPopup(this.messages.invalidCoordinate),this._badInput=!0}))}}_reverseConvert(e,t){const o=this.viewModel;return t.reverseConvert(e).then((e=>(this._goToEnabled&&o.goToLocation(e).catch((e=>{w.warn(e),this._showPopup(this.messages.locationOffBasemap)})),e)))}_setInputFormat(e){const t=e.target,o=t[t.options.selectedIndex]["data-format"];this._conversionFormat=o}_setPreviewConversion(){const e=this._findSettingsFormat(),t=this.viewModel;if(e){const o=this.conversions.find((t=>t.format===e));this._previewConversion=new d({format:e,position:{location:this.currentLocation,coordinate:o&&o.position.coordinate}}),this._previewConversion.position.coordinate||t.previewConversion(this._previewConversion)}}_setSettingsFormat(e){const t=e.target,o=t[t.options.selectedIndex]["data-format"];this._settingsFormat=o,this._setPreviewConversion()}_showClipboardPopup(){this._clipboardPopupVisible?clearTimeout(this._clipboardPopupTimeoutId):this._clipboardPopupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout((()=>{this._popupTimeoutId=null,this._hideClipboardPopup()}),b)}_showPopup(e,t=y){this._popupMessage=e,this._popupVisible?clearTimeout(this._popupTimeoutId):this._popupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout((()=>{this._popupTimeoutId=null,this._hidePopup()}),t)}_toggleGoTo(){this._goToEnabled=!this._goToEnabled}_updateCurrentPattern(e){e.stopPropagation();const t=e.target,o=this._findSettingsFormat();o&&(o.currentPattern=t.value)}_renderConversion(e,t){const{messages:o}=this,i=`${this.id}__list-item-${t}`,s=`${e.format.name} ${o.conversionOutputSuffix}`,n=0===t,r=n||this._expanded,a=n?this._renderFirstConversion(e):this._renderTools(t,e,i),l=n&&!e.displayCoordinate?o.noLocation:e.displayCoordinate,d=h("div",{"aria-label":l,class:m.coordDisplay,"data-conversion":e,role:"listitem",tabindex:"0",title:l},l),p=this._renderOptions(this.formats.filter((t=>t!==e.format)));return r?h("li",{"aria-label":s,class:m.conversionRow,id:i,key:e,role:"group",title:s,tabindex:"0"},h("select",{"aria-controls":i,"aria-label":o.selectFormat,class:this.classes(m.esriSelect,m.rowSelect),bind:this,"data-index":t,onchange:this._addConversion,title:o.selectFormat},h("option",{"aria-label":e.format.name,selected:!0,title:e.format.name},e.format.name.toUpperCase()),p),d,a):null}_renderCopyButton(e){const t=this._clipboardPopupVisible&&this._renderClipboardPopup();return h("li",{"aria-label":this.messagesCommon.copy,bind:this,class:this.classes(m.widgetButton,m.rowButton),"data-conversion":e,onclick:this._copyCoordinateOutput,onkeydown:this._copyCoordinateOutput,oncopy:this._onCopy,role:"button",tabindex:"0",title:this.messagesCommon.copy},t,h("span",{"aria-hidden":"true",class:m.copyButton}))}_renderFirstConversion(e){const t=this.id,o={[m.expandButton]:!this._expanded,[m.collapseButton]:this._expanded},{messages:i,messagesCommon:s,multipleConversions:n,visibleElements:r}=this,a="live"===this.mode?i.captureMode:i.liveMode,l=this._expanded?s.collapse:s.expand,d=e.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(e):null,p=n&&r.expandButton&&h("li",{"aria-controls":`${t}__${m.conversionList}`,"aria-label":l,bind:this,class:m.widgetButton,key:"esri-coordinate-conversion__expand-button",onclick:this._toggleExpand,onkeydown:this._toggleExpand,role:"button",tabindex:"0",title:l},h("span",{"aria-hidden":"true",class:this.classes(o)})),c=!n&&r.captureButton&&h("li",{"aria-label":a,bind:this,class:this.classes(m.widgetButton,m.modeToggle),key:"esri-coordinate-conversion__mode-toggle",onclick:this._toggleMode,onkeydown:this._toggleMode,role:"button",tabindex:"0",title:a},h("span",{"aria-hidden":"true",class:m.captureButton}));return h("ul",{class:m.toolDisplay},d,p,c)}_renderInputForm(){const e=this._conversionFormat||this.conversions.getItemAt(0).format,t=this.formats.findIndex((t=>t.name===e.name)),o=this.id,i=`${o}__${m.coordinateInput}`,s=`${o}__${m.coordinateInput}__header`,n=this._renderOptions(this.formats,!0,t),r={[m.rejectInput]:this._badInput},{messages:a,messagesCommon:l,headingLevel:d}=this;return h("div",{"aria-labelledby":s,class:m.inputForm,key:"esri-coordinate-conversion__input-form",role:"search"},h("div",{class:m.sectionHeading},h("div",{"aria-label":l.back,bind:this,class:this.classes(m.widgetButton,m.backButton),onclick:this._toggleInputVisibility,onkeydown:this._toggleInputVisibility,role:"button",tabindex:"0",title:l.back},this._renderBackIcon()),h(p,{level:d,class:m.header,id:s},a.inputCoordTitle)),h("div",{class:m.inputFormGroup},h("select",{"aria-controls":i,"aria-label":a.selectFormat,bind:this,class:this.classes(m.esriSelect,m.rowSelect),onchange:this._setInputFormat,title:a.selectFormat},n),h("input",{afterCreate:_,"aria-labelledby":s,"aria-required":"true",bind:this,class:this.classes(m.coordinateInput,m.input,r),"data-format":e,"data-node-ref":"_coordinateInput",id:i,onkeydown:this._processUserInput,placeholder:a.inputCoordTitle,role:"textbox",spellcheck:!1,title:a.inputCoordTitle,type:"text"})),h("div",{class:m.inputFormGroup},h("label",{"aria-label":a.goTo},h("input",{bind:this,checked:this._goToEnabled,onclick:this._toggleGoTo,title:a.goTo,type:"checkbox"}),a.goTo),h("button",{"aria-label":a.convert,bind:this,class:this.classes(m.convertButton,m.button),onclick:this._processUserInput,title:a.convert,type:"button"},h("span",{class:m.convertButtonSpan},a.convert))))}_renderConversionsView(){const e=`${this.id}__${m.conversionList}`,t=this._renderPrimaryTools(),o=this._renderOptions(this.formats),i=this.conversions.map(((e,t)=>this._renderConversion(e,t))).toArray(),{messages:s}=this,n=this._expanded?h("div",{class:m.conversionRow},h("select",{"aria-controls":e,"aria-label":s.addConversion,bind:this,class:this.classes(m.esriSelect,m.primarySelect),onchange:this._addConversion,title:s.addConversion},h("option",{disabled:!0,selected:!0,value:""},s.addConversion),o),t):null,r={[m.expanded]:this._expanded,[m.expandUp]:"expand-up"===this.orientation,[m.expandDown]:"expand-down"===this.orientation};return h("div",{class:this.classes(m.conversionsView,r),key:"esri-coordinate-conversion__main-view"},h("ul",{"aria-expanded":this._expanded?"true":"false",class:m.conversionList,id:e},i),n)}_renderOptions(e,t,o){const i=this.conversions.getItemAt(0);return e.map(((e,s)=>{const n=!(t||!i)&&(i.format.name===e.name||this.conversions.map((e=>e.format.name)).includes(e.name));return h("option",{"aria-label":e.name,"data-format":e,disabled:n,key:e.name,selected:s===o,value:e.name},e.name.toUpperCase())})).toArray()}_renderPopup(){return h("div",{class:m.popup,role:"alert"},this._popupMessage)}_renderClipboardPopup(){return h("div",{class:this.classes(m.popup,m.clipboardPopup),role:"alert"},this.messages.copySuccessMessage)}_renderPrimaryTools(){const{messages:e,visibleElements:t}=this,o="live"===this.mode?e.captureMode:e.liveMode,i=t.inputButton&&h("li",{bind:this,class:m.widgetButton,onclick:this._toggleInputVisibility,onkeydown:this._toggleInputVisibility,role:"button",tabindex:"0",title:e.inputCoordTitle},h("span",{"aria-hidden":"true",class:m.editButton})),s=t.captureButton&&h("li",{bind:this,class:this.classes(m.widgetButton,m.modeToggle),onclick:this._toggleMode,onkeydown:this._toggleMode,role:"button",tabindex:"0",title:o},h("span",{"aria-hidden":"true",class:m.captureButton})),n=t.settingsButton&&h("li",{bind:this,class:m.widgetButton,onclick:this._toggleSettingsVisibility,onkeydown:this._toggleSettingsVisibility,role:"button",tabindex:"0",title:e.settingsTitle},h("span",{"aria-hidden":"true",class:m.settingsButton}));return h("ul",{class:m.toolDisplay},i,s,n)}_renderSettings(){const e=this.id,t=`${e}__${m.patternInput}`,o=`${e}__${m.patternInput}__header`,i=`${e}__${m.previewCoordinate}`,s=this.formats.filter((e=>e.hasDisplayProperties)),n=this._findSettingsFormat(),r=s.indexOf(n),a=this._renderOptions(s,!0,r),l=n.get("currentPattern"),{messages:d,messagesCommon:c,headingLevel:u}=this;return h("div",{"aria-labelledby":o,class:m.settings,key:"esri-coordinate-conversion__settings"},h("div",{class:m.sectionHeading},h("div",{bind:this,class:this.classes(m.widgetButton,m.backButton),onclick:this._toggleSettingsVisibility,onkeydown:this._toggleSettingsVisibility,role:"button",tabindex:"0",title:c.back},this._renderBackIcon()),h(p,{level:u,class:m.header,id:o},d.settingsTitle)),h("div",{class:m.settingsFormGroup},h("label",{for:t},d.changeCoordinateDisplay),h("select",{"aria-label":d.selectFormat,class:m.esriSelect,bind:this,onchange:this._setSettingsFormat,title:d.selectFormat},a),h("div",{class:m.settingsFormGroupHorizontal},h("input",{"aria-controls":i,bind:this,class:this.classes(m.patternInput,m.input),id:t,oninput:this._updateCurrentPattern,spellcheck:!1,title:d.changeCoordinateDisplay,type:"text",value:l}),h("div",{"aria-controls":t,bind:this,class:m.widgetButton,onclick:this._setDefaultPattern,onkeydown:this._setDefaultPattern,role:"button",tabindex:"0",title:d.defaultPattern},h("span",{"aria-hidden":"true",class:m.refresh})))),h("div",{class:m.settingsFormGroup},h("label",null,c.preview,h("div",{class:m.previewCoordinate,id:i,tabindex:"0"},this._previewConversion.displayCoordinate))))}_renderBackIcon(){return h("span",{"aria-hidden":"true",class:v(this.container)?m.rightArrow:m.leftArrow})}_renderTools(e,t,o){const i=t.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(t):null,{messages:s}=this;return h("ul",{class:m.toolDisplay,role:"listitem"},i,h("li",{"aria-controls":o,"aria-label":s.removeConversion,bind:this,class:this.classes(m.widgetButton,m.rowButton),"data-index":e,key:`${o}__${m.widgetButton}`,onclick:this._removeConversion,onkeydown:this._removeConversion,tabindex:"0",role:"button",title:s.removeConversion},h("span",{"aria-hidden":"true",class:m.removeConversion})))}_copyCoordinateOutput(e){const t=e.target;if(!("createTextRange"in document.body)){const e=window.getSelection(),o=document.createRange();o.selectNodeContents(t),e.removeAllRanges(),e.addRange(o)}document.execCommand("copy")}_removeConversion(e){const t=e.currentTarget["data-index"];this.conversions.removeAt(t)}_setDefaultPattern(e){e.stopPropagation();const t=this._findSettingsFormat();t&&(t.currentPattern=t.get("defaultPattern"))}_toggleExpand(){this._expanded=!this._expanded}_toggleInputVisibility(){this._inputVisible=!this._inputVisible,this._popupVisible&&this._hidePopup(),this._inputVisible?this.viewModel.pause():this.viewModel.resume()}_toggleMode(){this.mode="live"===this.mode?"capture":"live"}_toggleSettingsVisibility(){this._settingsVisible=!this._settingsVisible,this._popupVisible&&this._hidePopup(),this._settingsVisible?(this._setPreviewConversion(),this.viewModel.pause()):this.viewModel.resume()}};e([i("viewModel.conversions")],C.prototype,"conversions",void 0),e([i("viewModel.currentLocation")],C.prototype,"currentLocation",void 0),e([i("viewModel.formats")],C.prototype,"formats",void 0),e([i("viewModel.goToOverride")],C.prototype,"goToOverride",void 0),e([n()],C.prototype,"headingLevel",void 0),e([n({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],C.prototype,"label",void 0),e([n(),u("geoscene/widgets/CoordinateConversion/t9n/CoordinateConversion")],C.prototype,"messages",void 0),e([n(),u("geoscene/t9n/common")],C.prototype,"messagesCommon",void 0),e([i("viewModel.mode")],C.prototype,"mode",void 0),e([n()],C.prototype,"orientation",void 0),e([n()],C.prototype,"multipleConversions",null),e([i("viewModel.locationSymbol")],C.prototype,"locationSymbol",void 0),e([i("viewModel.storageEnabled")],C.prototype,"storageEnabled",void 0),e([i("viewModel.storageType")],C.prototype,"storageType",void 0),e([i("viewModel.view")],C.prototype,"view",void 0),e([n({type:l})],C.prototype,"viewModel",void 0),e([n()],C.prototype,"visibleElements",void 0),e([s("visibleElements")],C.prototype,"castVisibleElements",null),e([c()],C.prototype,"_copyCoordinateOutput",null),e([c()],C.prototype,"_removeConversion",null),e([c()],C.prototype,"_setDefaultPattern",null),e([c()],C.prototype,"_toggleExpand",null),e([c()],C.prototype,"_toggleInputVisibility",null),e([c()],C.prototype,"_toggleMode",null),e([c()],C.prototype,"_toggleSettingsVisibility",null),C=e([r("geoscene.widgets.CoordinateConversion")],C);const f=C;export{f as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{eventKey as t}from"../core/events.js";import o from"../core/Logger.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as s}from"../core/accessorSupport/decorators/cast.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import l from"./CoordinateConversion/CoordinateConversionViewModel.js";import d from"./CoordinateConversion/support/Conversion.js";import{Heading as p}from"./support/Heading.js";import{accessibleHandler as c}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as h}from"./support/jsxFactory.js";import{storeNode as _,isRTL as v}from"./support/widgetUtils.js";const m={base:"geoscene-coordinate-conversion geoscene-widget",captureMode:"geoscene-coordinate-conversion--capture-mode",noBasemap:"geoscene-coordinate-conversion--no-basemap",popup:"geoscene-coordinate-conversion__popup",clipboardPopup:"geoscene-coordinate-conversion__clipboard-popup",conversionList:"geoscene-coordinate-conversion__conversion-list",conversionRow:"geoscene-coordinate-conversion__row",coordDisplay:"geoscene-coordinate-conversion__display",expanded:"geoscene-coordinate-conversion__conversions-view--expanded",expandDown:"geoscene-coordinate-conversion__conversions-view--expand-down",expandUp:"geoscene-coordinate-conversion__conversions-view--expand-up",conversionsView:"geoscene-coordinate-conversion__conversions-view",primarySelect:"geoscene-coordinate-conversion__select-primary",rowSelect:"geoscene-coordinate-conversion__select-row",toolDisplay:"geoscene-coordinate-conversion__tools",modeToggle:"geoscene-coordinate-conversion__mode-toggle",rowButton:"geoscene-coordinate-conversion__row-button",backButton:"geoscene-coordinate-conversion__back-button",convertButton:"geoscene-coordinate-conversion__button",convertButtonSpan:"geoscene-coordinate-conversion__convert-button-span",coordinateInput:"geoscene-coordinate-conversion__input-coordinate",inputForm:"geoscene-coordinate-conversion__input-form",inputFormGroup:"geoscene-coordinate-conversion__input-group",rejectInput:"geoscene-coordinate-conversion__input-coordinate--rejected",sectionHeading:"geoscene-coordinate-conversion__heading",patternInput:"geoscene-coordinate-conversion__pattern-input",settings:"geoscene-coordinate__settings",settingsFormGroup:"geoscene-coordinate-conversion__settings-group",settingsFormGroupHorizontal:"geoscene-coordinate-conversion__settings-group-horizontal",previewCoordinate:"geoscene-coordinate-conversion__preview-coordinate",disabled:"geoscene-disabled",input:"geoscene-input",button:"geoscene-button",header:"geoscene-widget__heading",widgetButton:"geoscene-widget--button",leftArrow:"geoscene-icon-left-arrow",rightArrow:"geoscene-icon-right-arrow",captureButton:"geoscene-icon-map-pin",collapseButton:"geoscene-icon-up",copyButton:"geoscene-icon-duplicate",editButton:"geoscene-icon-edit",esriSelect:"geoscene-select",expandButton:"geoscene-icon-down",goToButton:"geoscene-icon-locate",refresh:"geoscene-icon-refresh",removeConversion:"geoscene-icon-close",settingsButton:"geoscene-icon-settings2"},g={settingsButton:!0,inputButton:!0,captureButton:!0,expandButton:!0},b=750,y=2500,w=o.getLogger("geoscene.widgets.CoordinateConversion");let C=class extends a{constructor(e,t){super(e,t),this._popupMessage=null,this._popupTimeoutId=null,this._clipboardPopupTimeoutId=null,this._coordinateInput=null,this._badInput=!1,this._goToEnabled=!1,this._conversionFormat=null,this._settingsFormat=null,this._previewConversion=null,this._expanded=!1,this._clipboardPopupVisible=!1,this._popupVisible=!1,this._settingsVisible=!1,this._inputVisible=!1,this.conversions=null,this.currentLocation=null,this.formats=null,this.goToOverride=null,this.headingLevel=4,this.label=void 0,this.messages=null,this.messagesCommon=null,this.mode=null,this.orientation="auto",this.locationSymbol=null,this.storageEnabled=null,this.storageType=null,this.view=null,this.viewModel=new l,this.visibleElements={...g}}set multipleConversions(e){!1===e&&(this._expanded=!1,this.conversions.splice(1,this.conversions.length-1)),this._set("multipleConversions",e)}get multipleConversions(){const e=this._get("multipleConversions");return"boolean"!=typeof e||e}castVisibleElements(e){return{...g,...e}}reverseConvert(e,t){return this.viewModel.reverseConvert(e,t)}render(){const e=this.get("viewModel.state"),t="disabled"===e?h("div",{key:"geoscene-coordinate__no-basemap"},this.messages.noBasemap):null,o=!t&&this._inputVisible?this._renderInputForm():null,i=!t&&this._settingsVisible?this._renderSettings():null,s=t||o||i?null:this._renderConversionsView(),n=this._popupVisible?this._renderPopup():null,r={[m.captureMode]:"capture"===this.mode,[m.disabled]:"loading"===e,[m.noBasemap]:"disabled"===e};return h("div",{class:this.classes(m.base,r)},n,t,s,i,o)}_addConversion(e){const t=e.target,o=t.options[t.options.selectedIndex]["data-format"],i=t["data-index"],s=new d({format:o});t.options.selectedIndex=0,i>=0&&this.conversions.removeAt(i),this.conversions.add(s,i)}_findSettingsFormat(){return this._settingsFormat||this.conversions.reduceRight(((e,t)=>{const o=t.format;return o.get("hasDisplayProperties")?o:e}),null)||this.formats.find((e=>e.hasDisplayProperties))}_hidePopup(){this._popupTimeoutId&&(clearTimeout(this._popupTimeoutId),this._popupTimeoutId=null),this._popupVisible=!1,this._popupMessage=null,this.scheduleRender()}_hideClipboardPopup(){this._clipboardPopupTimeoutId&&(clearTimeout(this._clipboardPopupTimeoutId),this._clipboardPopupTimeoutId=null),this._clipboardPopupVisible=!1,this.scheduleRender()}_onConvertComplete(){this._inputVisible=!1,this._coordinateInput.value=""}_onCopy(e){const t=e.currentTarget["data-conversion"].displayCoordinate;e.clipboardData.setData("text/plain",t),this._showClipboardPopup(),e.preventDefault()}_processUserInput(e){const o=t(e),i=this.viewModel;if("Enter"!==o&&o)this._badInput&&(this._badInput=!1);else{const e=this._coordinateInput["data-format"],t=this._coordinateInput.value;this._reverseConvert(t,e).then((e=>{"capture"===this.mode?i.resume():this.mode="capture",this.currentLocation=e,i.setLocation(e),this._onConvertComplete()})).catch((e=>{w.error(e),this._showPopup(this.messages.invalidCoordinate),this._badInput=!0}))}}_reverseConvert(e,t){const o=this.viewModel;return t.reverseConvert(e).then((e=>(this._goToEnabled&&o.goToLocation(e).catch((e=>{w.warn(e),this._showPopup(this.messages.locationOffBasemap)})),e)))}_setInputFormat(e){const t=e.target,o=t[t.options.selectedIndex]["data-format"];this._conversionFormat=o}_setPreviewConversion(){const e=this._findSettingsFormat(),t=this.viewModel;if(e){const o=this.conversions.find((t=>t.format===e));this._previewConversion=new d({format:e,position:{location:this.currentLocation,coordinate:o&&o.position.coordinate}}),this._previewConversion.position.coordinate||t.previewConversion(this._previewConversion)}}_setSettingsFormat(e){const t=e.target,o=t[t.options.selectedIndex]["data-format"];this._settingsFormat=o,this._setPreviewConversion()}_showClipboardPopup(){this._clipboardPopupVisible?clearTimeout(this._clipboardPopupTimeoutId):this._clipboardPopupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout((()=>{this._popupTimeoutId=null,this._hideClipboardPopup()}),b)}_showPopup(e,t=y){this._popupMessage=e,this._popupVisible?clearTimeout(this._popupTimeoutId):this._popupVisible=!0,this.scheduleRender(),this._popupTimeoutId=setTimeout((()=>{this._popupTimeoutId=null,this._hidePopup()}),t)}_toggleGoTo(){this._goToEnabled=!this._goToEnabled}_updateCurrentPattern(e){e.stopPropagation();const t=e.target,o=this._findSettingsFormat();o&&(o.currentPattern=t.value)}_renderConversion(e,t){const{messages:o}=this,i=`${this.id}__list-item-${t}`,s=`${e.format.name} ${o.conversionOutputSuffix}`,n=0===t,r=n||this._expanded,a=n?this._renderFirstConversion(e):this._renderTools(t,e,i),l=n&&!e.displayCoordinate?o.noLocation:e.displayCoordinate,d=h("div",{"aria-label":l,class:m.coordDisplay,"data-conversion":e,role:"listitem",tabindex:"0",title:l},l),p=this._renderOptions(this.formats.filter((t=>t!==e.format)));return r?h("li",{"aria-label":s,class:m.conversionRow,id:i,key:e,role:"group",title:s,tabindex:"0"},h("select",{"aria-controls":i,"aria-label":o.selectFormat,class:this.classes(m.esriSelect,m.rowSelect),bind:this,"data-index":t,onchange:this._addConversion,title:o.selectFormat},h("option",{"aria-label":e.format.name,selected:!0,title:e.format.name},e.format.name.toUpperCase()),p),d,a):null}_renderCopyButton(e){const t=this._clipboardPopupVisible&&this._renderClipboardPopup();return h("li",{"aria-label":this.messagesCommon.copy,bind:this,class:this.classes(m.widgetButton,m.rowButton),"data-conversion":e,onclick:this._copyCoordinateOutput,onkeydown:this._copyCoordinateOutput,oncopy:this._onCopy,role:"button",tabindex:"0",title:this.messagesCommon.copy},t,h("span",{"aria-hidden":"true",class:m.copyButton}))}_renderFirstConversion(e){const t=this.id,o={[m.expandButton]:!this._expanded,[m.collapseButton]:this._expanded},{messages:i,messagesCommon:s,multipleConversions:n,visibleElements:r}=this,a="live"===this.mode?i.captureMode:i.liveMode,l=this._expanded?s.collapse:s.expand,d=e.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(e):null,p=n&&r.expandButton&&h("li",{"aria-controls":`${t}__${m.conversionList}`,"aria-label":l,bind:this,class:m.widgetButton,key:"geoscene-coordinate-conversion__expand-button",onclick:this._toggleExpand,onkeydown:this._toggleExpand,role:"button",tabindex:"0",title:l},h("span",{"aria-hidden":"true",class:this.classes(o)})),c=!n&&r.captureButton&&h("li",{"aria-label":a,bind:this,class:this.classes(m.widgetButton,m.modeToggle),key:"geoscene-coordinate-conversion__mode-toggle",onclick:this._toggleMode,onkeydown:this._toggleMode,role:"button",tabindex:"0",title:a},h("span",{"aria-hidden":"true",class:m.captureButton}));return h("ul",{class:m.toolDisplay},d,p,c)}_renderInputForm(){const e=this._conversionFormat||this.conversions.getItemAt(0).format,t=this.formats.findIndex((t=>t.name===e.name)),o=this.id,i=`${o}__${m.coordinateInput}`,s=`${o}__${m.coordinateInput}__header`,n=this._renderOptions(this.formats,!0,t),r={[m.rejectInput]:this._badInput},{messages:a,messagesCommon:l,headingLevel:d}=this;return h("div",{"aria-labelledby":s,class:m.inputForm,key:"geoscene-coordinate-conversion__input-form",role:"search"},h("div",{class:m.sectionHeading},h("div",{"aria-label":l.back,bind:this,class:this.classes(m.widgetButton,m.backButton),onclick:this._toggleInputVisibility,onkeydown:this._toggleInputVisibility,role:"button",tabindex:"0",title:l.back},this._renderBackIcon()),h(p,{level:d,class:m.header,id:s},a.inputCoordTitle)),h("div",{class:m.inputFormGroup},h("select",{"aria-controls":i,"aria-label":a.selectFormat,bind:this,class:this.classes(m.esriSelect,m.rowSelect),onchange:this._setInputFormat,title:a.selectFormat},n),h("input",{afterCreate:_,"aria-labelledby":s,"aria-required":"true",bind:this,class:this.classes(m.coordinateInput,m.input,r),"data-format":e,"data-node-ref":"_coordinateInput",id:i,onkeydown:this._processUserInput,placeholder:a.inputCoordTitle,role:"textbox",spellcheck:!1,title:a.inputCoordTitle,type:"text"})),h("div",{class:m.inputFormGroup},h("label",{"aria-label":a.goTo},h("input",{bind:this,checked:this._goToEnabled,onclick:this._toggleGoTo,title:a.goTo,type:"checkbox"}),a.goTo),h("button",{"aria-label":a.convert,bind:this,class:this.classes(m.convertButton,m.button),onclick:this._processUserInput,title:a.convert,type:"button"},h("span",{class:m.convertButtonSpan},a.convert))))}_renderConversionsView(){const e=`${this.id}__${m.conversionList}`,t=this._renderPrimaryTools(),o=this._renderOptions(this.formats),i=this.conversions.map(((e,t)=>this._renderConversion(e,t))).toArray(),{messages:s}=this,n=this._expanded?h("div",{class:m.conversionRow},h("select",{"aria-controls":e,"aria-label":s.addConversion,bind:this,class:this.classes(m.esriSelect,m.primarySelect),onchange:this._addConversion,title:s.addConversion},h("option",{disabled:!0,selected:!0,value:""},s.addConversion),o),t):null,r={[m.expanded]:this._expanded,[m.expandUp]:"expand-up"===this.orientation,[m.expandDown]:"expand-down"===this.orientation};return h("div",{class:this.classes(m.conversionsView,r),key:"geoscene-coordinate-conversion__main-view"},h("ul",{"aria-expanded":this._expanded?"true":"false",class:m.conversionList,id:e},i),n)}_renderOptions(e,t,o){const i=this.conversions.getItemAt(0);return e.map(((e,s)=>{const n=!(t||!i)&&(i.format.name===e.name||this.conversions.map((e=>e.format.name)).includes(e.name));return h("option",{"aria-label":e.name,"data-format":e,disabled:n,key:e.name,selected:s===o,value:e.name},e.name.toUpperCase())})).toArray()}_renderPopup(){return h("div",{class:m.popup,role:"alert"},this._popupMessage)}_renderClipboardPopup(){return h("div",{class:this.classes(m.popup,m.clipboardPopup),role:"alert"},this.messages.copySuccessMessage)}_renderPrimaryTools(){const{messages:e,visibleElements:t}=this,o="live"===this.mode?e.captureMode:e.liveMode,i=t.inputButton&&h("li",{bind:this,class:m.widgetButton,onclick:this._toggleInputVisibility,onkeydown:this._toggleInputVisibility,role:"button",tabindex:"0",title:e.inputCoordTitle},h("span",{"aria-hidden":"true",class:m.editButton})),s=t.captureButton&&h("li",{bind:this,class:this.classes(m.widgetButton,m.modeToggle),onclick:this._toggleMode,onkeydown:this._toggleMode,role:"button",tabindex:"0",title:o},h("span",{"aria-hidden":"true",class:m.captureButton})),n=t.settingsButton&&h("li",{bind:this,class:m.widgetButton,onclick:this._toggleSettingsVisibility,onkeydown:this._toggleSettingsVisibility,role:"button",tabindex:"0",title:e.settingsTitle},h("span",{"aria-hidden":"true",class:m.settingsButton}));return h("ul",{class:m.toolDisplay},i,s,n)}_renderSettings(){const e=this.id,t=`${e}__${m.patternInput}`,o=`${e}__${m.patternInput}__header`,i=`${e}__${m.previewCoordinate}`,s=this.formats.filter((e=>e.hasDisplayProperties)),n=this._findSettingsFormat(),r=s.indexOf(n),a=this._renderOptions(s,!0,r),l=n.get("currentPattern"),{messages:d,messagesCommon:c,headingLevel:u}=this;return h("div",{"aria-labelledby":o,class:m.settings,key:"geoscene-coordinate-conversion__settings"},h("div",{class:m.sectionHeading},h("div",{bind:this,class:this.classes(m.widgetButton,m.backButton),onclick:this._toggleSettingsVisibility,onkeydown:this._toggleSettingsVisibility,role:"button",tabindex:"0",title:c.back},this._renderBackIcon()),h(p,{level:u,class:m.header,id:o},d.settingsTitle)),h("div",{class:m.settingsFormGroup},h("label",{for:t},d.changeCoordinateDisplay),h("select",{"aria-label":d.selectFormat,class:m.esriSelect,bind:this,onchange:this._setSettingsFormat,title:d.selectFormat},a),h("div",{class:m.settingsFormGroupHorizontal},h("input",{"aria-controls":i,bind:this,class:this.classes(m.patternInput,m.input),id:t,oninput:this._updateCurrentPattern,spellcheck:!1,title:d.changeCoordinateDisplay,type:"text",value:l}),h("div",{"aria-controls":t,bind:this,class:m.widgetButton,onclick:this._setDefaultPattern,onkeydown:this._setDefaultPattern,role:"button",tabindex:"0",title:d.defaultPattern},h("span",{"aria-hidden":"true",class:m.refresh})))),h("div",{class:m.settingsFormGroup},h("label",null,c.preview,h("div",{class:m.previewCoordinate,id:i,tabindex:"0"},this._previewConversion.displayCoordinate))))}_renderBackIcon(){return h("span",{"aria-hidden":"true",class:v(this.container)?m.rightArrow:m.leftArrow})}_renderTools(e,t,o){const i=t.displayCoordinate&&"capture"===this.mode?this._renderCopyButton(t):null,{messages:s}=this;return h("ul",{class:m.toolDisplay,role:"listitem"},i,h("li",{"aria-controls":o,"aria-label":s.removeConversion,bind:this,class:this.classes(m.widgetButton,m.rowButton),"data-index":e,key:`${o}__${m.widgetButton}`,onclick:this._removeConversion,onkeydown:this._removeConversion,tabindex:"0",role:"button",title:s.removeConversion},h("span",{"aria-hidden":"true",class:m.removeConversion})))}_copyCoordinateOutput(e){const t=e.target;if(!("createTextRange"in document.body)){const e=window.getSelection(),o=document.createRange();o.selectNodeContents(t),e.removeAllRanges(),e.addRange(o)}document.execCommand("copy")}_removeConversion(e){const t=e.currentTarget["data-index"];this.conversions.removeAt(t)}_setDefaultPattern(e){e.stopPropagation();const t=this._findSettingsFormat();t&&(t.currentPattern=t.get("defaultPattern"))}_toggleExpand(){this._expanded=!this._expanded}_toggleInputVisibility(){this._inputVisible=!this._inputVisible,this._popupVisible&&this._hidePopup(),this._inputVisible?this.viewModel.pause():this.viewModel.resume()}_toggleMode(){this.mode="live"===this.mode?"capture":"live"}_toggleSettingsVisibility(){this._settingsVisible=!this._settingsVisible,this._popupVisible&&this._hidePopup(),this._settingsVisible?(this._setPreviewConversion(),this.viewModel.pause()):this.viewModel.resume()}};e([i("viewModel.conversions")],C.prototype,"conversions",void 0),e([i("viewModel.currentLocation")],C.prototype,"currentLocation",void 0),e([i("viewModel.formats")],C.prototype,"formats",void 0),e([i("viewModel.goToOverride")],C.prototype,"goToOverride",void 0),e([n()],C.prototype,"headingLevel",void 0),e([n({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],C.prototype,"label",void 0),e([n(),u("geoscene/widgets/CoordinateConversion/t9n/CoordinateConversion")],C.prototype,"messages",void 0),e([n(),u("geoscene/t9n/common")],C.prototype,"messagesCommon",void 0),e([i("viewModel.mode")],C.prototype,"mode",void 0),e([n()],C.prototype,"orientation",void 0),e([n()],C.prototype,"multipleConversions",null),e([i("viewModel.locationSymbol")],C.prototype,"locationSymbol",void 0),e([i("viewModel.storageEnabled")],C.prototype,"storageEnabled",void 0),e([i("viewModel.storageType")],C.prototype,"storageType",void 0),e([i("viewModel.view")],C.prototype,"view",void 0),e([n({type:l})],C.prototype,"viewModel",void 0),e([n()],C.prototype,"visibleElements",void 0),e([s("visibleElements")],C.prototype,"castVisibleElements",null),e([c()],C.prototype,"_copyCoordinateOutput",null),e([c()],C.prototype,"_removeConversion",null),e([c()],C.prototype,"_setDefaultPattern",null),e([c()],C.prototype,"_toggleExpand",null),e([c()],C.prototype,"_toggleInputVisibility",null),e([c()],C.prototype,"_toggleMode",null),e([c()],C.prototype,"_toggleSettingsVisibility",null),C=e([r("geoscene.widgets.CoordinateConversion")],C);const f=C;export{f 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 o}from"../../../chunks/tslib.es6.js";import{eventKey as e}from"../../../core/events.js";import{isSome as t}from"../../../core/maybe.js";import{property as r}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 s from"../../Slider.js";import{SliderWithDropdownViewModel as n}from"./SliderWithDropdownViewModel.js";import"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as l}from"../../support/jsxFactory.js";const d={interactive:"
|
|
5
|
+
import{_ as o}from"../../../chunks/tslib.es6.js";import{eventKey as e}from"../../../core/events.js";import{isSome as t}from"../../../core/maybe.js";import{property as r}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 s from"../../Slider.js";import{SliderWithDropdownViewModel as n}from"./SliderWithDropdownViewModel.js";import"../../support/widgetUtils.js";import"../../../core/Logger.js";import{tsx as l}from"../../support/jsxFactory.js";const d={interactive:"geoscene-interactive",label:"geoscene-slider__label",box:"geoscene-slider-with-dropdown__box",dropdownRoot:"geoscene-slider-with-dropdown__dropdown-root",anchor:" geoscene-widget__anchor geoscene-slider-with-dropdown__anchor",anchorOpen:"geoscene-slider-with-dropdown__anchor--open",anchorClosed:"geoscene-slider-with-dropdown__anchor--closed",dropdownList:"geoscene-slider-with-dropdown__list",dropdownListItem:"geoscene-slider-with-dropdown__list-item",dropdownListItemSelected:"geoscene-slider-with-dropdown__list-item--selected",boxDropDownOn:"geoscene-slider-with-dropdown__box--drop-down-on",boxDropDownOff:"geoscene-slider-with-dropdown__box--drop-down-off"},p={selectItem:"Enter",closeDropdown:"Escape",moveSelectionUp:"ArrowUp",moveSelectionDown:"ArrowDown"};let a=class extends s{constructor(o,e){super(o,e),this.viewModel=new n,this.buttonTooltip="",this.showDropDown=!0,this.currentIndex=0,this._rootNode=null}renderThumbLabel(o){const e={[d.boxDropDownOn]:this.showDropDown,[d.boxDropDownOff]:!this.showDropDown};return l("div",{class:this.classes(d.box,d.label,e)},super.renderThumbLabel(o),this.showDropDown?l("div",{bind:this,afterCreate:this._onRootNodeCreate,class:d.dropdownRoot},l("button",{class:this.classes(d.interactive,d.anchor,this.isDropdownOpen?d.anchorOpen:d.anchorClosed),bind:this,onclick:this._onAnchorClick,onpointerdown:this._killEvent,"aria-label":this.buttonTooltip,title:this.buttonTooltip,"aria-expanded":this.isDropdownOpen.toString(),"aria-haspopup":"listbox",type:"button"},this.currentItem?this.currentItem.name+" ":""),this.isDropdownOpen?l("ol",{class:this.classes(d.dropdownList),onpointerdown:this._killEvent,onblur:this._onDropdownBlur,bind:this,tabindex:"-1","aria-label":this.buttonTooltip,role:"listbox",onkeydown:this._onOlKeyDown,afterCreate:this._focusOnSelectedItem},this.items.map(((o,e)=>l("li",{class:e===this.currentIndex?this.classes(d.interactive,d.dropdownListItem,d.dropdownListItemSelected):this.classes(d.interactive,d.dropdownListItem),bind:this,onclick:this._onDropdownItemClick,"data-result":e,"aria-label":o.label.join(" "),role:"option","aria-selected":(e===this.currentIndex).toString(),onkeydown:this._onLiKeyDown,onblur:this._onDropdownBlur,tabindex:"0"},o.label.map((o=>l("span",{bind:this},o))))))):null):null)}_onRootNodeCreate(o){this._rootNode=o}_focusOnSelectedItem(o){var e;const r=null!=(e=o.querySelector(`.${d.dropdownListItemSelected}`))?e:o.firstChild;t(r)&&r instanceof HTMLElement&&(r.scrollIntoView(),r.focus())}_onAnchorClick(){return this.viewModel.toggle(),!0}_onDropdownItemClick(o){const e=o.currentTarget;this.viewModel.selectItem(e["data-result"])}_onDropdownBlur(o){let e=o.relatedTarget;null===e&&(e=document.activeElement),t(this._rootNode)&&!this._rootNode.contains(e)&&e!==this._rootNode.parentElement&&e!==this._rootNode.parentElement.parentElement&&(this.viewModel.isDropdownOpen=!1)}_killEvent(o){return o.stopPropagation(),!0}_onOlKeyDown(o){o.stopPropagation(),e(o)===p.closeDropdown&&(this.viewModel.isDropdownOpen=!1)}_onLiKeyDown(o){const t=o.target;switch(e(o)){case p.moveSelectionUp:if(t.previousElementSibling){t.previousElementSibling.focus()}break;case p.moveSelectionDown:if(t.nextElementSibling){t.nextElementSibling.focus()}break;case p.selectItem:t.click()}}};o([r()],a.prototype,"viewModel",void 0),o([r()],a.prototype,"buttonTooltip",void 0),o([r()],a.prototype,"showDropDown",void 0),o([r({aliasOf:"viewModel.items"})],a.prototype,"items",void 0),o([r({aliasOf:"viewModel.currentIndex"})],a.prototype,"currentIndex",void 0),o([r({aliasOf:"viewModel.currentItem"})],a.prototype,"currentItem",void 0),o([r({aliasOf:"viewModel.isDropdownOpen"})],a.prototype,"isDropdownOpen",void 0),a=o([i("geoscene.widgets.Daylight.SliderWithDropdown")],a);const c=a;export{c as default};
|
package/widgets/Daylight.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Logger.js";import{applySome as i,isSome as s}from"../core/maybe.js";import{watch as o,initial as a,when as r}from"../core/reactiveUtils.js";import{aliasOf as l}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import h from"./Widget.js";import p from"./Daylight/DaylightViewModel.js";import{ORDERED_SEASONS as m}from"./Daylight/support/daylightUtils.js";import g from"./Daylight/support/SliderWithDropdown.js";import u from"./support/DatePicker.js";import{Heading as v}from"./support/Heading.js";import{formatSliderLabel as w,getTimezoneInfos as y}from"./support/timeWidgetUtils.js";import"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";const f={base:"
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Logger.js";import{applySome as i,isSome as s}from"../core/maybe.js";import{watch as o,initial as a,when as r}from"../core/reactiveUtils.js";import{aliasOf as l}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import h from"./Widget.js";import p from"./Daylight/DaylightViewModel.js";import{ORDERED_SEASONS as m}from"./Daylight/support/daylightUtils.js";import g from"./Daylight/support/SliderWithDropdown.js";import u from"./support/DatePicker.js";import{Heading as v}from"./support/Heading.js";import{formatSliderLabel as w,getTimezoneInfos as y}from"./support/timeWidgetUtils.js";import"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";const f={base:"geoscene-daylight",widgetIcon:"geoscene-icon-environment-settings",button:"geoscene-button",checkbox:"geoscene-daylight__checkbox",checked:"geoscene-icon-checkbox-checked",dayContainer:"geoscene-daylight__container geoscene-daylight__day-container",dateContainer:"geoscene-daylight__container geoscene-daylight__date-container",interactive:"geoscene-interactive",label:" geoscene-widget__anchor",labelledTick:"geoscene-daylight__container__labelled-tick",pause:"geoscene-icon-pause",play:"geoscene-icon-play",playPauseButton:"geoscene-daylight__play-pause-button",select:"geoscene-select",seasonPicker:"geoscene-daylight__season-picker",shadow:"geoscene-daylight__shadow-container",shadowOff:"geoscene-slider--shadow-off",shadowOn:"geoscene-slider--shadow-on",tick:"geoscene-daylight__container__tick",unchecked:"geoscene-icon-checkbox-unchecked",widget:"geoscene-widget",sliderDateOn:"geoscene-slider--date-on",sliderDateOff:"geoscene-slider--date-off",panelError:"geoscene-daylight__panel--error"},S={playButtons:!0,shadowsToggle:!0,datePicker:!0,timezone:!0},k=/(.*)\s(.*)/,M=t.getLogger("geoscene.widgets.Daylight"),O="date";let P=class extends h{constructor(e,t){var i;super(e,t),this.headingLevel=3,this.iconClass=f.widgetIcon,this.label=void 0,this.playSpeedMultiplier=1,this.timeSliderSteps=5,this.view=null,this.viewModel=new p,this.visibleElements={...S},this.dateOrSeason=O,this._timeSlider=new g({viewModel:this.viewModel.timeSliderViewModel,labelFormatFunction:w,inputFormatFunction:w,min:0,max:1439,steps:null!=(i=this.timeSliderSteps)?i:5,values:[0],labelInputsEnabled:!1,visibleElements:{labels:!0},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:this._onPrimaryTickCreated.bind(this)},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:this._onSecondaryTickCreated.bind(this)}],items:[]}),this._datePicker=new u({viewModel:this.viewModel.datePickerViewModel,commitOnMonthChange:!0})}get gmtOffsets(){return i(this.timezoneMessages,y)}castVisibleElements(e){return{...S,...e}}postInitialize(){this.viewModel.isSupported&&this.own(o((()=>this.viewModel.datePickerViewModel),(e=>this._datePicker.viewModel=e),a),o((()=>this.viewModel.timeSliderViewModel),(e=>this._timeSlider.viewModel=e),a),o((()=>{var e;return null==(e=this.timezoneMessages)?void 0:e.chooseTimezone}),(e=>this._timeSlider.buttonTooltip=e),a),o((()=>{var e;return null==(e=this.visibleElements)?void 0:e.timezone}),(e=>this._timeSlider.showDropDown=e),a),r((()=>this.gmtOffsets),(e=>{this._timeSlider.items=e.map((e=>({utcOffset:e.utcOffset,name:e.short,label:[e.shortWithUTC,e.long]})))}),a),o((()=>[this.viewModel.utcOffset,this.gmtOffsets]),(()=>this._onUTCOffsetChange()),a))}destroy(){this._datePicker.destroy(),this._timeSlider.destroy()}render(){return this.viewModel.isSupported?_("div",{class:this.classes(f.base,f.widget)},_(v,{level:this.headingLevel},this.messages.title),this.renderTimeOptions(),this.visibleElements.datePicker?"date"===this.dateOrSeason?this.renderDateOptions():this.renderSeasonOptions():null,this.visibleElements.shadowsToggle?this.renderShadowOptions():null):_("div",{class:this.classes(f.base,f.widget)},_("div",{key:"daylight__unsupported",class:f.panelError},_("p",null,this.messages.unsupported)))}renderTimeOptions(){const e={[f.play]:!this.viewModel.dayPlaying,[f.pause]:this.viewModel.dayPlaying},t={[f.shadowOn]:this.viewModel.directShadowsEnabled,[f.shadowOff]:!this.viewModel.directShadowsEnabled},i={[f.sliderDateOn]:this.visibleElements.datePicker,[f.sliderDateOff]:!this.visibleElements.datePicker};return _("div",{class:this.classes(f.dayContainer,t,i),key:"daylight-time-options"},this._timeSlider.render(),this.visibleElements.playButtons?_("button",{bind:this.viewModel,onclick:this.viewModel.toggleDayPlaying,"aria-label":this.messages.playDay,title:this.messages.playDay,type:"button",class:this.classes(f.button,f.playPauseButton,e)},_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},_("path",{d:"M6 3.745L11.255 8 6 12.255z"}))):null)}renderDateOptions(){const e={[f.play]:!this.viewModel.yearPlaying,[f.pause]:this.viewModel.yearPlaying};return _("div",{class:f.dateContainer,key:"daylight-date-options"},this._datePicker.render(),this.visibleElements.playButtons?_("button",{bind:this.viewModel,onclick:this.viewModel.toggleYearPlaying,"aria-label":this.messages.playYear,title:this.messages.playYear,type:"button",class:this.classes(f.button,f.playPauseButton,e)},_("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},_("path",{d:"M6 3.745L11.255 8 6 12.255z"}))):null)}renderShadowOptions(){const e=`${this.id}__shadowButton`,t={[f.checked]:this.viewModel.directShadowsEnabled,[f.unchecked]:!this.viewModel.directShadowsEnabled};return _("div",{class:f.shadow,key:"daylight-shadow-options"},_("button",{bind:this.viewModel,onclick:this.viewModel.toggleDirectShadows,name:e,class:this.classes(f.button,f.checkbox,t),"aria-label":this.messages.directShadow,title:this.messages.directShadow,type:"button"}),_("label",{bind:this.viewModel,onclick:this.viewModel.toggleDirectShadows,for:e,class:this.classes(f.label,f.interactive),"aria-label":this.messages.directShadow,title:this.messages.directShadow},this.messages.directShadow))}renderSeasonOptions(){return _("select",{bind:this,onchange:this._onSeasonChange,class:this.classes(f.select,f.seasonPicker),value:this.viewModel.currentSeason,"aria-label":this.messages.season},m.map((e=>_("option",{value:e},this.messages[e]))))}_onSeasonChange(e){const t=e.target;this.viewModel.currentSeason=t.value}_onUTCOffsetChange(){var e;const t=this.viewModel.utcOffset,i=null==(e=this._timeSlider.currentItem)?void 0:e.utcOffset,o=this.gmtOffsets;if(!s(o)||i===t)return;const a=o.findIndex((({utcOffset:e})=>e===t));a>-1&&(this._timeSlider.currentIndex=a)}_onPrimaryTickCreated(e,t,i){t.className+=" geoscene-interactive geoscene-widget__anchor "+f.tick+" "+f.labelledTick,i.className+=" geoscene-interactive geoscene-widget__anchor";const s=()=>{this.viewModel.timeSliderPosition=e};t.onclick=s,i.onclick=s;const o=i.innerText.match(k);o&&(i.innerHTML=`${o[1]}<br><div class="geoscene-label__ampm">${o[2]}</div>`)}_onSecondaryTickCreated(e,t){t.className+=" geoscene-interactive geoscene-widget__anchor "+f.tick,t.onclick=()=>{this.viewModel.timeSliderPosition=e}}};e([d({readOnly:!0})],P.prototype,"gmtOffsets",null),e([d(),b("geoscene/widgets/Daylight/t9n/Daylight")],P.prototype,"messages",void 0),e([d(),b("geoscene/widgets/support/t9n/timezone")],P.prototype,"timezoneMessages",void 0),e([d()],P.prototype,"headingLevel",void 0),e([d()],P.prototype,"iconClass",void 0),e([d({aliasOf:{source:"messages.title",overridable:!0}})],P.prototype,"label",void 0),e([l("viewModel.playSpeedMultiplier")],P.prototype,"playSpeedMultiplier",void 0),e([l("_timeSlider.steps")],P.prototype,"timeSliderSteps",void 0),e([l("viewModel.view")],P.prototype,"view",void 0),e([d({type:p})],P.prototype,"viewModel",void 0),e([d()],P.prototype,"visibleElements",void 0),e([n("visibleElements")],P.prototype,"castVisibleElements",null),e([d({cast:e=>"season"===e||"date"===e?e:(M.warn(`"${e}" is not a valid option. Acceptable values are only "date" or "season". Defaulting to "${O}".`),O)})],P.prototype,"dateOrSeason",void 0),e([d()],P.prototype,"_timeSlider",void 0),e([d()],P.prototype,"_datePicker",void 0),P=e([c("geoscene.widgets.Daylight")],P);const D=P;export{D as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.geoscene.cn/4.23/geoscene/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import o from"./DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.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 c}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m="
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{isMeasurementSystem as s}from"../core/unitUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import o from"./DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.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 c}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m="geoscene-direct-line-measurement-3d",p={buttonDisabled:"geoscene-button--disabled",base:`${m} geoscene-widget geoscene-widget--panel`,container:`${m}__container`,hint:`${m}__hint`,hintText:`${m}__hint-text`,panelError:`${m}__panel--error`,measurement:`${m}__measurement`,measurementItem:`${m}__measurement-item`,measurementItemDisabled:`${m}__measurement-item--disabled`,measurementItemTitle:`${m}__measurement-item-title`,measurementItemValue:`${m}__measurement-item-value`,settings:`${m}__settings`,units:`${m}__units`,unitsLabel:`${m}__units-label`,unitsSelect:`${m}__units-select geoscene-select`,unitsSelectWrapper:`${m}__units-select-wrapper`,actionSection:`${m}__actions`,newMeasurementButton:`${m}__clear-button geoscene-button geoscene-button--primary`,widgetIcon:"geoscene-icon-measure-line"};let d=class extends a{constructor(e,t){super(e,t),this.view=null,this.visible=null,this.iconClass=p.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,state:i,measurement:n,unit:r}=this.viewModel,a="disabled"===i,o="ready"===i,l="measuring"===i||"measured"===i,{messages:u,messagesUnits:m}=this,d=t&&o?c("section",{key:"geoscene-direct-line-measurement-3d__hint",class:p.hint},c("p",{class:p.hintText},u.hint)):null,v=e?null:c("section",{key:"geoscene-direct-line-measurement-3d__unsupported",class:p.panelError},c("p",null,u.unsupported)),_=(e,t,s)=>{switch(t.state){case"available":return c("div",{key:`${s}-enabled`,class:p.measurementItem},c("span",{class:p.measurementItemTitle},e),c("span",{class:p.measurementItemValue},t.text));case"unavailable":return c("div",{key:`${s}-disabled`,class:this.classes(p.measurementItem,p.measurementItemDisabled)},c("span",{class:p.measurementItemTitle},e))}},h=l?c("section",{key:"geoscene-direct-line-measurement-3d__measurement",class:p.measurement},_(u.direct,n.directDistance,"direct"),_(u.horizontal,n.horizontalDistance,"horizontal"),_(u.vertical,n.verticalDistance,"vertical")):null,b=`${this.id}__units`,y=c("label",{class:p.unitsLabel,for:b},u.unit),w=c("div",{class:p.unitsSelectWrapper},c("select",{class:p.unitsSelect,id:b,onchange:this._changeUnit,bind:this,value:r},this.viewModel.unitOptions.map((e=>{var t;return c("option",{key:e,value:e},s(e)?m.systems[e]:null==(t=m.units[e])?void 0:t.pluralCapitalized)})))),g=c("section",{key:"geoscene-direct-line-measurement-3d__units",class:p.units},y,w),M=l?c("div",{key:"settings",class:p.settings},g):null,$=!e||t&&!l?null:c("div",{class:p.actionSection},c("button",{disabled:a,class:this.classes(p.newMeasurementButton,a&&p.buttonDisabled),bind:this,onclick:this._newMeasurement,type:"button"},u.newMeasurement)),j=this.visible?c("div",{class:p.container},v,d,M,h,$):null;return c("div",{key:this,class:p.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([n({constructOnly:!0,nonNullable:!0})],d.prototype,"analysis",null),e([n()],d.prototype,"iconClass",void 0),e([n({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],d.prototype,"label",void 0),e([n(),u("geoscene/widgets/DirectLineMeasurement3D/t9n/DirectLineMeasurement3D")],d.prototype,"messages",void 0),e([n(),u("geoscene/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([n()],d.prototype,"uiStrings",void 0),e([n({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([r("geoscene.widgets.DirectLineMeasurement3D")],d);const v=d;export{v as default};
|