@arcgis/map-components
Version:
ArcGIS Map Components
4 lines • 10.5 kB
JavaScript
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
v4.33.13 */
import{a as y,b as N}from"./MF2SVVTD.js";import c from"./HXOMZNNJ.js";import{a as C}from"./MZHKSD55.js";import b from"./MX24TT2G.js";import a from"./2WKS6ZFG.js";import"./4TYQGSWG.js";import"./JDUE7Q24.js";import"./DXCYBWXJ.js";import{B as f,E,P as S,Q as L,U as _,j as w,k as d,p as V}from"./HX57SHRL.js";export default $arcgis.t(([{once:A,watch:R},O,,,P])=>{var T=w`{.arcgis-version-management{.component-container-flow{width:300px}.invalid-initial-version-notice{margin-bottom:1rem}.service-items-panel{z-index:unset!important}calcite-block{margin:0}}}`,U=P(O),F="map-components:version-management",u=class extends S{constructor(){super(...arguments),this.flowElement=y(),this.messages=C({blocking:!0}),this.viewModel=U(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.arcgisReady=f(),this.arcgisVersioningStateChanged=f()}static{this.properties={versionList:16,_showInvalidFeatureServiceNotice:16,allowEditingDisabled:5,autoDestroyDisabled:5,closable:7,initialVersionInfos:0,icon:1,label:3,messageOverrides:0,mode:1,pageSize:9,position:1,referenceElement:1,state:3,versioningStates:0}}static{this.styles=T}static{this.shadowRootOptions=E}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(){A(()=>this.viewModel.state==="ready").then(()=>{this.initialVersionInfos.forEach(e=>{try{this._changeToInitialVersion(e)}catch(i){console.error(i)}})}),this.manager.onLifecycle(()=>[R(()=>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})})])}disconnectedCallback(){super.disconnectedCallback(),this.versionPropertiesContainer?.remove()}_removeTrailingSlash(e){return e.replace(/\/+$/u,"")}_createVersionPropertiesFlowItem(e,i){let{closable:t,viewModel:s,viewModel:{state:n}}=this,o={closable:t,currentUser:s.userLookup.get(e),isVersionAdministrator:s.versionAdministratorLookup.get(e),serviceUrl:e,state:n,strings:this.messages,versionInfo:i};this.versionPropertiesContainer=document.createElement("div");let r=V(d`<arcgis-version-management-version-properties .versionPropertiesElementProps=${o} selected show-back-button></arcgis-version-management-version-properties>`,this.versionPropertiesContainer),a=Array.from(r.parentNode.childNodes).find(c=>c.nodeName.toUpperCase()==="ARCGIS-VERSION-MANAGEMENT-VERSION-PROPERTIES");return this.listenOn(a,"arcgisFlowItemBack",()=>{this._removeVersionPropertiesFlowItem(this.flowElement.value)}),this.listenOn(a,"calciteFlowItemBack",c=>{c.preventDefault(),this._removeVersionPropertiesFlowItem(this.flowElement.value),this.versionList&&(this.versionList.selected=!0)}),this.listenOn(a,"calciteFlowItemClose",this._handleFlowItemClose),this.listenOn(a,"arcgisCreateVersion",this._handleCreateVersion),this.listenOn(a,"arcgisAlterVersion",this._handleAlterVersion),a}_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}}async _handleAlterVersion(e){let{flowElement:{value:i},viewModel:t}=this,{alterVersionParameters:s}=e.detail;await t.alterVersion(s).then(async n=>{n&&this.arcgisVersioningStateChanged.emit({type:"version-changed",versionIdentifier:s.versionIdentifier,versioningState:t.versioningStateLookup.get(s.featureServerUrl)}),await this._refreshVersionList(s.featureServerUrl)}).finally(()=>{i&&this._removeVersionPropertiesFlowItem(i)})}_handleCreateVersion(e){let{flowElement:{value:i},viewModel:t}=this,{createVersionParameters:s,switchToVersion:n}=e.detail;t.createVersion(s).then(async o=>{o&&this.arcgisVersioningStateChanged.emit({type:"version-created",versionIdentifier:o.versionIdentifier,versioningState:t.versioningStateLookup.get(s.featureServerUrl)}),n&&await this.viewModel.changeVersion(s.featureServerUrl,o.versionIdentifier.name,o.versionIdentifier.guid).then(r=>{r&&this.arcgisVersioningStateChanged.emit({type:"version-switched",versionIdentifier:o.versionIdentifier,versioningState:t.versioningStateLookup.get(s.featureServerUrl)})}),await this._refreshVersionList(s.featureServerUrl)}).finally(()=>{i&&this._removeVersionPropertiesFlowItem(i)})}_changeToInitialVersion(e){let{_isInitialVersionInvalid:i,viewModel:t}=this,{url:s,name:n}=e,o=t.versioningStateLookup.get(s);if(!o)throw this._showInvalidFeatureServiceNotice=!0,new Error(`${F} - no versioning state found for feature service ${s}`);let r=o?.versionInfos.find(h=>h.versionIdentifier.name===n);if(!r)throw i.set(s,!0),new Error(`${F} - version ${n} not found in the versioning state for feature service ${s}`);let a=r.versionIdentifier,c=o?.currentVersionInfo?.versionIdentifier;a.guid!==c?.guid&&t.changeVersion(s,a.name,a.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:n,flowElement:o}=this;switch(i){case"changeVersion":{n.changeVersion(t,s.versionIdentifier.name,s.versionIdentifier.guid).then(r=>{r&&this.arcgisVersioningStateChanged.emit({type:"version-switched",versionIdentifier:s.versionIdentifier,versioningState:n.versioningStateLookup.get(t)});let{versionList:a}=this;a&&(a.versionListElementProps={...a.versionListElementProps,currentVersionIdentifier:n.versioningStateLookup.get(t).currentVersionInfo.versionIdentifier})});break}case"deleteVersion":{n.deleteVersion(t,s.versionIdentifier.name,s.versionIdentifier.guid).then(async r=>{r&&this.arcgisVersioningStateChanged.emit({type:"version-deleted",versionIdentifier:s.versionIdentifier,versioningState:n.versioningStateLookup.get(t)}),await this._refreshVersionList(t)});break}case"editVersion":{let r=this._createVersionPropertiesFlowItem(t,s);o.value?.appendChild(r),this.versionList&&(this.versionList.selected=!1);break}}}async _refreshVersionList(e){let{flowElement:{value:i},versionList:t,viewModel:s}=this;if(i){let n=await s.getVersionInfos(e),o=i.getElementsByTagName("arcgis-version-management-service-item");for(let r of o)r.serviceItemElementProps.serviceUrl===e&&(r.serviceItemElementProps={...r.serviceItemElementProps,versionInfos:n});t&&(t.versionListElementProps={...t.versionListElementProps,currentVersionIdentifier:s.versioningStateLookup.get(e).currentVersionInfo.versionIdentifier,versionInfos:n})}}_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:n,label:o,messages:r,mode:a,pageSize:c,versionList:h,viewModel:v,viewModel:{loadError:I,state:m}}=this,b=Array.from(v.serviceNameLookup,([l,g])=>({url:l,name:g})),k=m!=="disabled"?b.map(l=>{let g={allowEditing:!e,closable:i,currentUser:v.userLookup.get(l.url),currentVersionIdentifier:v.versioningStateLookup.get(l.url).currentVersionInfo.versionIdentifier,executionError:void 0,flowElement:t,heading:o,initialVersionInfos:s,isInitialVersionInvalid:n,isVersionAdministrator:v.versionAdministratorLookup.get(l.url),isVersioningApiAvailable:(v.serverVersionLookup.get(l.url)??0)>=11.2,mode:a,pageSize:c,serviceName:l.name,state:m,serviceUrl:l.url,strings:r,versionInfos:v.versioningStateLookup.get(l.url)?.versionInfos??[]};return d`<arcgis-version-management-service-item .serviceItemElementProps=${g} =${()=>{t&&(this._removeVersionListFlowItem(t),this.versionList=void 0)}} =${()=>this._handleFlowItemClose()} =${async p=>{await this._refreshVersionList(p.detail.serviceUrl)}} =${this._handleManageVersionAction} =${this._handleNewVersionAction} =${p=>this.versionList=p.detail}></arcgis-version-management-service-item>`}):void 0,M=m==="disabled"&&I!=null?d`<calcite-notice class="notice" kind=warning open scale=s slot=footer width=full><div slot=message>${this._getLoadError(I)}</div></calcite-notice>`:void 0,$=this._showInvalidFeatureServiceNotice?d`<calcite-notice closable kind=warning open scale=s slot=content-top width=full icon =${()=>this._showInvalidFeatureServiceNotice=!1}><div slot=title>${r.headers.invalidInitialFeatureService}</div><div slot=message>${r.loadErrors.invalidInitialFeatureService}</div></calcite-notice>`:void 0;return d`<div class="arcgis-version-management"><calcite-flow custom-item-selectors="arcgis-version-management-version-list, arcgis-version-management-version-properties" class=${L(this.mode==="dialog"?"":"component-container-flow")} ${N(this.flowElement)}><calcite-flow-item .closable=${this.closable} .heading=${o??void 0} =${()=>this._handleFlowItemClose()} .selected=${!h}>${$}<calcite-panel class="service-items-panel" .loading=${m==="loading"||m==="executing"}>${k}${M}</calcite-panel></calcite-flow-item></calcite-flow></div>`}};_("arcgis-version-management",u);return u},"core/reactiveUtils","widgets/VersionManagement/VersionManagementViewModel",a,b,c)