Bookmarks.js 22 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.24/esri/copyright.txt for details.
  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 s}from"../core/maybe.js";import{watch as r,initial as a,on as n}from"../core/reactiveUtils.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 I}from"./support/decorators/messageBundle.js";import{vmEvent as E}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",esriWidget:"esri-widget",esriWidgetDisabled:"esri-widget--disabled",esriButton:"esri-button",esriButtonTertiary:"esri-button--tertiary",esriInput:"esri-input",iconHandle:"esri-icon-handle-vertical",iconPlus:"esri-icon-plus",iconEdit:"esri-icon-edit",iconHandleHorizontal:"esri-icon-handle-horizontal",iconRefresh:"esri-icon-refresh",iconLink:"esri-icon-link",iconRemove:"esri-icon-erase",widgetIcon:"esri-icon-bookmark",header:"esri-widget__heading",loading:"esri-icon-loading-indicator",rotating:"esri-rotating"},C={addBookmark:!0,thumbnail:!0,time:!0},U=/^https:\/\/.*/i,M="esri.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([r((()=>this.viewModel?.bookmarks),(()=>this._bookmarksInitialized()),a),r((()=>this.editingEnabled),(()=>this._toggleSorting()),a)])}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(){const{messages:t,_userState:e}=this,o=e?.editedBookmark?.thumbnail?.url;return[new B({label:t?.menu.refreshThumbnail,iconClass:T.iconRefresh,clickFunction:()=>this._refreshThumbnail()}),new B({label:U.test(o)?t?.menu.editImageUrl:t?.menu.useImageUrl,iconClass:T.iconLink,clickFunction:()=>this._startUseImageUrl()}),o?new B({label:t?.menu.removeThumbnail,iconClass:T.iconRemove,clickFunction:()=>this._removeThumbnail()}):null].filter(Boolean)}get _editMenu(){const{_editMenuItems:t,messages:e,disabled:o}=this,i=this._get("_editMenu");i&&i.destroy();const s=new g({disabled:o,iconClass:T.iconHandleHorizontal,label:e?.menu.label});return s.items=t,s}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.esriWidget,{[T.esriWidgetDisabled]:this.disabled})},e)}startAddBookmark(){this._userState=new _({state:"add"}),this._focusAddInputBox=!0,this.scheduleRender()}renderLoading(){return y("div",{class:T.loaderContainer,key:"loader",tabIndex:this.disabled?-1:null},y("div",{class:T.loader}))}renderNoBookmarksContainer(){const{messages:t,disabled:e}=this;return y("div",{class:T.noBookmarksContainer,key:"no-bookmarks",tabIndex:e?-1:null},y("span",{"aria-hidden":"true",class:this.classes(T.noBookmarksIcon,T.widgetIcon)}),y(v,{level:this.headingLevel,class:this.classes(T.header,T.noBookmarksHeader)},t?.noBookmarksHeading),y("p",{class:T.noBookmarksDescription},t?.noBookmarksDescription))}renderAddBookmarkLoading(){return y("div",{key:"adding-bookmark",class:T.addingBookmark},y("span",{"aria-hidden":"true",class:this.classes(T.loading,T.rotating)}),this.messages?.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){const{_userState:e,editingEnabled:o,disabled:i}=this,s="add"===e?.state,r=o&&!s?this.renderAddBookmarkButton():null,a=o?s&&e.loading?this.renderAddBookmarkLoading():"add"===e?.state?this.renderAddingBookmark():null:null;return[y("ul",{key:"bookmark-list","aria-label":this.messages?.widgetLabel,class:this.classes(T.bookmarkList,{[T.bookmarkListSortable]:this.editingEnabled}),afterCreate:this._sortNodeCreated,afterRemoved:this._destroySortable,"data-node-ref":"_sortableNode",bind:this,tabIndex:i?-1:null},this.renderBookmarkItems(t)),r,a]}renderAddBookmarkButton(){return this.visibleElements.addBookmark?y("div",{key:"add-bookmark-item",class:T.addBookmark},y("button",{class:this.classes(T.esriButton,T.esriButtonTertiary,T.addBookmarkButton),disabled:this.disabled,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)}),this.messages?.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,disabled:o}=this;return y("div",{class:T.bookmarkEditButtonContainer,key:"edit-container"},y("button",{disabled:o,title:e?.edit,"aria-label":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,disabled:o}=this,i={[A]:t.uid};return y("div",{role:"button",tabIndex:o?-1: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":e?.dragHandleLabel,title:e?.dragHandleTitle,...i},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,disabled:o}=this,{timeExtent:i}=t,{view:s}=this.viewModel;return s.timeExtent||i?y("calcite-label",{layout:"inline-space-between","disable-spacing":"true"},e.includeTimeExtent,y("calcite-switch",{scale:"s",disabled:o,checked:!!i,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)&&(s(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,disabled:o}=this,{name:i,timeExtent:s}=t,{abilities:r}=this.viewModel,a=i||e?.untitled,n=y("div",{class:T.bookmarkImageContainer},this.renderBookmarkImage(t)||this.renderBookmarkImageIcon()),d=r.time&&s?y("span",{key:"time-extent",class:T.bookmarkTimeExtent},this.renderBookmarkTimeExtent(t)):null;return y("button",{disabled:o,key:"bookmark-button",class:T.bookmarkButton,bind:this,"data-bookmark":t,onclick:this._goToBookmark,type:"button"},n,y("div",{class:T.bookmarkLabel},y("span",{key:"bookmark-title",class:T.bookmarkName},a),d))}renderBookmark(t){const{activeBookmark:e}=this.viewModel,o={[T.bookmarkActive]:e===t},i=this.editingEnabled?this.renderEditContainer(t):null,s={[A]:t.uid},r=this.editingEnabled?this.renderDragHandle(t):null;return y("li",{key:t,class:this.classes(T.bookmark,o),...s},r,this.renderBookmarkButton(t),i)}renderEditingBookmarkName(t){const{messages:e,_userState:o,disabled:i}=this,s="name-required"===o.validationState;return y("label",{class:T.authoringLabel},e?.title,s?y("strong",null,e?.invalidTitle):null,y("input",{required:!0,disabled:i,bind:this,class:this.classes(T.esriInput,s?T.authoringInputInvalid:null),type:"text",value:t.name,afterCreate:this._storeEditInput,afterUpdate:this._focusEditInput,"data-bookmark":t,"data-node-ref":"_editInputNode",placeholder:e?.titlePlaceholder}))}renderEditingBookmarkUrlActions(){const{messagesCommon:t,disabled:e}=this;return y("div",{class:T.authoringActions},y("input",{type:"button",disabled:e,value:t?.back,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeUrlEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,disabled:e,type:"submit",value:t?.add}))}renderEditingBookmarkActions(){const{messagesCommon:t,disabled:e}=this,{bookmark:o}=this._userState;return y("div",{class:T.authoringActions},y("input",{type:"button",disabled:e,value:t?.delete,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringDeleteButton),"data-bookmark":o,onclick:this._deleteBookmark,bind:this}),y("input",{disabled:e,type:"button",value:t?.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary),onclick:this._closeEditBookmarkForm,bind:this}),y("input",{class:T.esriButton,disabled:e,type:"submit",value:t?.save}))}renderEditingBookmarkUrlInput(t){const{messages:e,_userState:o,disabled:i}=this,s=t.thumbnail?.url,r=U.test(s)?s:null,a="absolute-url-required"===o.validationState;return y("label",{class:T.authoringLabel},a?y("strong",null,e?.invalidImageUrl):null,y("input",{required:!0,disabled:i,bind:this,class:this.classes(T.esriInput,a?T.authoringInputInvalid:null),type:"text",value:r,afterCreate:this._storeUrlEditInput,afterUpdate:this._focusUrlEditInput,"data-bookmark":t,"data-node-ref":"_urlEditInputNode",title:e?.imageUrlTooltip,placeholder:e&&`https://<${e.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,disabled:this.disabled,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,disabled:this.disabled,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,disabled:o}=this,i="name-required"===t.validationState;return y("label",{class:T.authoringLabel},e?.title,i?y("strong",null,e?.invalidTitle):null,y("input",{required:!0,disabled:o,bind:this,class:this.classes(T.esriInput,i?T.authoringInputInvalid:null),type:"text",afterCreate:this._storeAddInput,afterUpdate:this._focusAddInput,"data-node-ref":"_addInputNode",value:"",placeholder:e?.titlePlaceholder}))}renderAddingBookmarkActions(){const{messagesCommon:t,disabled:e}=this;return y("div",{class:this.classes(T.authoringActions)},y("input",{type:"button",disabled:e,value:t?.cancel,class:this.classes(T.esriButton,T.esriButtonTertiary,T.authoringCancelButton),onclick:this._endAddBookmark.bind(this),bind:this}),y("input",{class:T.esriButton,disabled:e,type:"submit",value: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"],s=e(t);if(!i.includes(s))return;const{_sortable:r,_selectedSortUid:a}=this,n=r.toArray(),d=t.target.getAttribute(A),l=n.indexOf(d);if(f(s)){const t=a&&a===d;return this._selectedSortUid=t?null:d,this._sortableSavedItems=t?null:this._sortable.toArray(),void this.scheduleRender()}if("Tab"===s)return this._selectedSortUid=null,void this.scheduleRender();if("Escape"===s&&o)return t.stopPropagation(),this._selectedSortUid=null,this._updateSortItems(o,r,d),void this.scheduleRender();if(-1===l||!a)return;const k="ArrowUp"===s?l-1:l+1;k>=n.length||k<=-1||(S(n,l,k),this._updateSortItems(n,r,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,disabled:i}=this;if(e)if(t)t.option("disabled",i||!o);else{const t=w.create(e,{dataIdAttr:A,handle:`.${T.bookmarkDragHandle}`,group:x,disabled:i||!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),s=o.indexOf(e.uid);return i>s?1:i<s?-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(n((()=>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=>r((()=>[t?.name,t?.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,s=e&&e.value.trim();s?(o.bookmark.name=s,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(),I("esri/widgets/Bookmarks/t9n/Bookmarks")],N.prototype,"messages",void 0),t([k(),I("esri/t9n/common")],N.prototype,"messagesCommon",void 0),t([k(),I("esri/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}),E(["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 D=N;export{D as default};