UNPKG

@arcgis/map-components

Version:
5 lines (4 loc) 9.95 kB
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. v4.32.13 */ import{a as P,b as F}from"./VOXR3NPC.js";import{a as y}from"./NYXWVKGC.js";import{a as _}from"./QKQNYHUC.js";import"./JM4XJJFL.js";import"./AX2MGWNF.js";import{A as w,B as E,C as L,G as S,g as I,r as V,s as h}from"./NIZJVZRG.js";var[{once:N,watch:A},T]=await $arcgis.l(["core/reactiveUtils","widgets/VersionManagement/VersionManagementViewModel"]);var U=V`@layer{.initial-version-invalid-block{margin-bottom:1rem}.calcite-combobox-item{width:330px}.calcite-flow-widget{width:350px}calcite-block{margin:0}calcite-pagination{justify-content:center}}`,x=y(T),k="map-components:version-management",u=class extends E{constructor(){super(...arguments),this.flowElement=P(),this.messages=_({blocking:!0}),this.viewModel=x(this),this._isInitialVersionInvalid=new Map,this._initialVersionInfos=[],this._showInvalidFeatureServiceNotice=!1,this.allowEditingDisabled=!1,this.autoDestroyDisabled=!1,this.closable=!1,this.pageSize=5,this.position="top-right",this.state=this.viewModel.state,this.versioningStates=this.viewModel.versioningStates,this.view=this.viewModel.view,this.arcgisReady=w(),this.arcgisVersioningStateChanged=w()}static{this.properties={versionList:16,_showInvalidFeatureServiceNotice:16,allowEditingDisabled:5,autoDestroyDisabled:5,closable:7,initialVersionInfos:0,icon:3,label:3,messageOverrides:0,mode:1,pageSize:9,position:1,referenceElement:1,state:3,versioningStates:0,view:0}}static{this.styles=U}static{this.shadowRootOptions=I}get initialVersionInfos(){return this._initialVersionInfos}set initialVersionInfos(e){this._initialVersionInfos=e.map(i=>({...i,url:this._removeTrailingSlash(i.url)}))}async destroy(){await this.manager.destroy()}async load(){N(()=>this.viewModel.state==="ready").then(()=>{this.initialVersionInfos.forEach(e=>{try{this._changeToInitialVersion(e)}catch(i){console.error(i)}})}),this.manager.onLifecycle(()=>[A(()=>this.viewModel.state,e=>{let{flowElement:{value:i},versionList:t}=this,s=i?.getElementsByTagName("arcgis-version-management-version-properties")[0];if(e==="disabled"&&i){s&&this._removeVersionPropertiesFlowItem(i),t&&this._removeVersionListFlowItem(i);return}t&&(t.versionListElementProps={...t.versionListElementProps,executionError:this.viewModel.executionError},t.versionListElementProps={...t.versionListElementProps,state:e}),s&&(s.versionPropertiesElementProps={...s.versionPropertiesElementProps,state:e})})])}_removeTrailingSlash(e){return e.replace(/\/+$/u,"")}_createVersionPropertiesFlowItem(e,i){let{closable:t,flowElement:{value:s},viewModel:r,viewModel:{state:l}}=this,o=document.createElement("arcgis-version-management-version-properties");return o.versionPropertiesElementProps={closable:t,currentUser:r.userLookup.get(e),hasAdvEditingUte:r.advancedEditingUserTypeExtensionLookup.get(e),isVersionAdministrator:r.versionAdministratorLookup.get(e),serviceUrl:e,state:l,strings:this.messages,versionInfo:i},o.selected=!0,o.showBackButton=!0,o.addEventListener("arcgisCreateVersion",n=>{let{createVersionParameters:v,switchToVersion:d}=n.detail;r.createVersion(v).then(async a=>{a&&this.arcgisVersioningStateChanged.emit({type:"version-created",versionIdentifier:a.versionIdentifier,versioningState:r.versioningStateLookup.get(e)}),d&&await this.viewModel.changeVersion(e,a.versionIdentifier.name,a.versionIdentifier.guid).then(g=>{g&&this.arcgisVersioningStateChanged.emit({type:"version-switched",versionIdentifier:a.versionIdentifier,versioningState:r.versioningStateLookup.get(e)})}),await this._refreshVersionList(e)}).finally(()=>{s&&this._removeVersionPropertiesFlowItem(s)})}),o.addEventListener("arcgisAlterVersion",async n=>{let{flowElement:{value:v}}=this,{alterVersionParameters:d}=n.detail;await r.alterVersion(d).then(async a=>{a&&this.arcgisVersioningStateChanged.emit({type:"version-changed",versionIdentifier:d.versionIdentifier,versioningState:r.versioningStateLookup.get(e)}),await this._refreshVersionList(e)}).finally(()=>{v&&this._removeVersionPropertiesFlowItem(v)})}),o.addEventListener("arcgisFlowItemBack",()=>{this._removeVersionPropertiesFlowItem(this.flowElement.value)}),o.addEventListener("calciteFlowItemBack",n=>{n.preventDefault(),this._removeVersionPropertiesFlowItem(this.flowElement.value),this.versionList&&(this.versionList.selected=!0)}),o.addEventListener("calciteFlowItemClose",()=>{this._handleFlowItemClose()}),o}_getLoadError(e){let{messages:i}=this;switch(e){case"no-feature-services":return i.loadErrors.noFeatureServices;case"no-view-property":return i.loadErrors.noViewProperty;default:return e}}_changeToInitialVersion(e){let{_isInitialVersionInvalid:i,viewModel:t}=this,{url:s,name:r}=e,l=t.versioningStateLookup.get(s);if(!l)throw this._showInvalidFeatureServiceNotice=!0,new Error(`${k} - no versioning state found for feature service ${s}`);let o=l?.versionInfos.find(d=>d.versionIdentifier.name===r);if(!o)throw i.set(s,!0),new Error(`${k} - version ${r} not found in the versioning state for feature service ${s}`);let n=o.versionIdentifier,v=l?.currentVersionInfo?.versionIdentifier;n.guid!==v?.guid&&t.changeVersion(s,n.name,n.guid)}_handleFlowItemClose(){let e=document.querySelector("arcgis-version-management");e.parentElement?.removeChild(e)}async _handleNewVersionAction(e){let i=this._createVersionPropertiesFlowItem(e.detail.serviceUrl,void 0);this.flowElement.value?.appendChild(i),this.versionList&&(this.versionList.selected=!1)}async _handleManageVersionAction(e){let{actionType:i,serviceUrl:t,versionInfo:s}=e.detail,{viewModel:r,flowElement:l}=this;switch(i){case"changeVersion":{r.changeVersion(t,s.versionIdentifier.name,s.versionIdentifier.guid).then(o=>{o&&this.arcgisVersioningStateChanged.emit({type:"version-switched",versionIdentifier:s.versionIdentifier,versioningState:r.versioningStateLookup.get(t)});let{versionList:n}=this;n&&(n.versionListElementProps={...n.versionListElementProps,currentVersionIdentifier:r.versioningStateLookup.get(t).currentVersionInfo.versionIdentifier})});break}case"deleteVersion":{r.deleteVersion(t,s.versionIdentifier.name,s.versionIdentifier.guid).then(async o=>{o&&this.arcgisVersioningStateChanged.emit({type:"version-deleted",versionIdentifier:s.versionIdentifier,versioningState:r.versioningStateLookup.get(t)}),await this._refreshVersionList(t)});break}case"editVersion":{let o=this._createVersionPropertiesFlowItem(t,s);l.value?.appendChild(o),this.versionList&&(this.versionList.selected=!1);break}}}async _refreshVersionList(e){let{flowElement:{value:i},versionList:t,viewModel:s}=this;if(i){let r=await s.getVersionInfos(e),l=i.getElementsByTagName("arcgis-version-management-service-item");for(let o of l)o.serviceItemElementProps.serviceUrl===e&&(o.serviceItemElementProps={...o.serviceItemElementProps,versionInfos:r});t&&(t.versionListElementProps={...t.versionListElementProps,currentVersionIdentifier:s.versioningStateLookup.get(e).currentVersionInfo.versionIdentifier,versionInfos:r})}}_removeVersionListFlowItem(e){for(let i of e.childNodes)i.nodeName.toUpperCase()==="ARCGIS-VERSION-MANAGEMENT-VERSION-LIST"&&(e.removeChild(i),this.versionList=void 0),i.nodeName.toUpperCase()==="CALCITE-FLOW-ITEM"&&(i.hidden=!1)}_removeVersionPropertiesFlowItem(e){for(let i of e.childNodes)i.nodeName.toUpperCase()==="ARCGIS-VERSION-MANAGEMENT-VERSION-PROPERTIES"&&e.removeChild(i)}render(){let{allowEditingDisabled:e,closable:i,flowElement:{value:t},initialVersionInfos:s,_isInitialVersionInvalid:r,label:l,messages:o,mode:n,pageSize:v,versionList:d,viewModel:a,viewModel:{loadError:g,state:m}}=this,b=Array.from(a.serviceNameLookup,([c,f])=>({url:c,name:f})),C=m!=="disabled"?b.map(c=>{let f={allowEditing:!e,closable:i,currentUser:a.userLookup.get(c.url),currentVersionIdentifier:a.versioningStateLookup.get(c.url).currentVersionInfo.versionIdentifier,executionError:void 0,flowElement:t,hasAdvEditingUte:a.advancedEditingUserTypeExtensionLookup.get(c.url),heading:l,initialVersionInfos:s,isInitialVersionInvalid:r,isVersionAdministrator:a.versionAdministratorLookup.get(c.url),isVersioningApiAvailable:(a.serverVersionLookup.get(c.url)??0)>=11.2,mode:n,pageSize:v,serviceName:c.name,state:m,serviceUrl:c.url,strings:o,versionInfos:a.versioningStateLookup.get(c.url)?.versionInfos??[]};return h`<arcgis-version-management-service-item .serviceItemElementProps=${f} @arcgisGetVersions=${async p=>{await this._refreshVersionList(p.detail.serviceUrl)}} @arcgisFlowItemBack=${()=>{t&&(this._removeVersionListFlowItem(t),this.versionList=void 0)}} @arcgisFlowItemClose=${()=>{this._handleFlowItemClose()}} @arcgisManageVersion=${this._handleManageVersionAction} @arcgisNewVersion=${this._handleNewVersionAction} @arcgisCreateVersionList=${p=>{this.versionList=p.detail}}></arcgis-version-management-service-item>`}):void 0,$=m==="disabled"&&g!=null?h`<calcite-notice class="notice" kind=warning open scale=s slot=footer width=full><div slot=message>${this._getLoadError(g)}</div></calcite-notice>`:void 0,M=this._showInvalidFeatureServiceNotice?h`<calcite-notice closable kind=warning open scale=s slot=content-top width=full icon @calciteNoticeClose=${()=>this._showInvalidFeatureServiceNotice=!1}><div slot=title>${o.headers.invalidInitialFeatureService}</div><div slot=message>${o.loadErrors.invalidInitialFeatureService}</div></calcite-notice>`:void 0;return h`<calcite-flow custom-item-selectors="arcgis-version-management-version-list, arcgis-version-management-version-properties" class=${L(this.mode==="dialog"?"":"calcite-flow-widget")} ${F(this.flowElement)}><calcite-flow-item .closable=${this.closable} .heading=${l??void 0} @calciteFlowItemClose=${()=>{this._handleFlowItemClose()}} .selected=${!d}>${M}<calcite-panel .loading=${m==="loading"||m==="executing"}>${C}${$}</calcite-panel></calcite-flow-item></calcite-flow>`}};S("arcgis-version-management",u);export{u as ArcgisVersionManagement};