@arcgis/map-components
Version:
ArcGIS Map Components
2 lines • 12 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import g from"./KA7BM2DQ.js";import{a as _}from"./HZFVK34O.js";import e from"./LKOVDQTE.js";import d from"./OAWV35F7.js";import"./AKBXFBDL.js";import"./LMBRORN7.js";import a from"./5E6WEUZS.js";import"./PBSJQPB2.js";import{M as y,N as S,O as L,U as b,a as I,b as c,g as V,q as E,x as f}from"./WUJCCZQC.js";import"./3TTFCHAA.js";export default $arcgis.t(([{once:$,watch:A},T,{b:C},,,P])=>{var U=I`:host{--arcgis-internal-color-black-30: color-mix(in srgb, #000000 30.2%, transparent);--arcgis-internal-box-shadow: var(--calcite-spacing-none) var(--calcite-spacing-px) var(--calcite-spacing-base) var(--arcgis-internal-color-black-30);--arcgis-internal-top-max-width: calc(min(100cqw, 100vw) - var(--calcite-spacing-xxxl));--arcgis-internal-panel-width: 300px;--arcgis-internal-panel-height: 100%;--arcgis-internal-panel-height-sm: 240px;--arcgis-internal-panel-height-md: 420px;--arcgis-internal-panel-height-lg: 540px;--arcgis-internal-panel-height-xl: 680px;--arcgis-internal-panel-gap: var(--calcite-spacing-lg);--arcgis-internal-panel-actions-gap: var(--calcite-spacing-sm);--arcgis-internal-basemap-gallery-width-lg: 450px;--arcgis-internal-collapse-icon-flip: scaleX(1);--arcgis-internal-row-direction: row;--arcgis-internal-legend-width: 300px;--arcgis-internal-layout-overlay-space-top: var(--arcgis-layout-overlay-space-top, 0px);--arcgis-internal-layout-overlay-space-bottom: var(--arcgis-layout-overlay-space-bottom, 0px);--arcgis-internal-layout-overlay-space-left: var(--arcgis-layout-overlay-space-left, 0px);--arcgis-internal-layout-overlay-space-right: var(--arcgis-layout-overlay-space-right, 0px);--arcgis-internal-view-color-focus: var(--arcgis-view-color-focus, var(--calcite-color-brand));--arcgis-internal-attribution-space-bottom: var(--arcgis-internal-layout-overlay-space-bottom);--arcgis-internal-attribution-space-left: var(--arcgis-internal-layout-overlay-space-left);--arcgis-internal-attribution-space-right: var(--arcgis-internal-layout-overlay-space-right);--arcgis-internal-attribution-font-size: var(--calcite-font-size-sm);--arcgis-internal-attribution-font-size-sm: var(--calcite-font-size-xs);--arcgis-internal-sketch-justify-content: flex-start}:host{display:flex;flex-direction:column;min-height:var(--arcgis-internal-panel-height-md, 420px);height:100%}calcite-notice{margin:var(--calcite-spacing-md)}`,O=P(T),N="map-components:version-management",u=class extends L{constructor(){super(...arguments),this.flowElement=y(),this.messages=_({blocking:!0}),this.viewModel=O(this),this._isInitialVersionInvalid=new Map,this._initialVersionInfos=[],this._showInvalidFeatureServiceNotice=!1,this.allowEditingDisabled=!1,this.autoDestroyDisabled=!1,this.closable=!1,this.pageSize=5,this.state=this.viewModel.state,this.versioningStates=this.viewModel.versioningStates,this.view=this.viewModel.view,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,referenceElement:1,state:32,versioningStates:0,view:0}}static{this.styles=U}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(){$(()=>this.viewModel.state==="ready").then(()=>{this.initialVersionInfos.forEach(e=>{try{this._changeToInitialVersion(e)}catch(i){E(this)(i)}})}),this.manager.onLifecycle(()=>[A(()=>this.viewModel.state,e=>{let{flowElement:{value:i},versionList:r}=this,t=i?.getElementsByTagName("arcgis-version-management-version-properties")[0];if(e==="disabled"&&i){t&&this._removeVersionPropertiesFlowItem(i),r&&this._removeVersionListFlowItem(i);return}r&&(r.versionListElementProps={...r.versionListElementProps,executionError:this.viewModel.executionError},r.versionListElementProps={...r.versionListElementProps,state:e}),t&&(t.versionPropertiesElementProps={...t.versionPropertiesElementProps,state:e})})])}disconnectedCallback(){super.disconnectedCallback(),this.versionPropertiesContainer?.remove()}_removeTrailingSlash(e){return e.replace(/\/+$/u,"")}_createVersionPropertiesFlowItem(e,i){let{closable:r,viewModel:t,viewModel:{state:n}}=this,o={closable:r,currentUser:t.userLookup.get(e),isVersionAdministrator:t.versionAdministratorLookup.get(e),serviceUrl:e,state:n,strings:this.messages,versionInfo:i};this.versionPropertiesContainer=document.createElement("div");let s=V(c`<arcgis-version-management-version-properties .versionPropertiesElementProps=${o} selected show-back-button></arcgis-version-management-version-properties>`,this.versionPropertiesContainer),a=Array.from(s.parentNode.childNodes).find(v=>v.nodeName.toUpperCase()==="ARCGIS-VERSION-MANAGEMENT-VERSION-PROPERTIES");return this.listenOn(a,"arcgisFlowItemBack",()=>{this._removeVersionPropertiesFlowItem(this.flowElement.value)}),this.listenOn(a,"calciteFlowItemBack",v=>{v.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:r}=this,{alterVersionParameters:t}=e.detail;await r.alterVersion(t).then(async n=>{n&&this.arcgisVersioningStateChanged.emit({type:"version-changed",versionIdentifier:t.versionIdentifier,versioningState:r.versioningStateLookup.get(t.featureServerUrl)}),await this._refreshVersionList(t.featureServerUrl)}).finally(()=>{i&&this._removeVersionPropertiesFlowItem(i)})}_handleCreateVersion(e){let{flowElement:{value:i},viewModel:r}=this,{createVersionParameters:t,switchToVersion:n}=e.detail;r.createVersion(t).then(async o=>{o&&this.arcgisVersioningStateChanged.emit({type:"version-created",versionIdentifier:o.versionIdentifier,versioningState:r.versioningStateLookup.get(t.featureServerUrl)}),n&&await this.viewModel.changeVersion(t.featureServerUrl,o.versionIdentifier.name,o.versionIdentifier.guid).then(s=>{s&&this.arcgisVersioningStateChanged.emit({type:"version-switched",versionIdentifier:o.versionIdentifier,versioningState:r.versioningStateLookup.get(t.featureServerUrl)})}),await this._refreshVersionList(t.featureServerUrl)}).finally(()=>{i&&this._removeVersionPropertiesFlowItem(i)})}_changeToInitialVersion(e){let{_isInitialVersionInvalid:i,viewModel:r}=this,{url:t,name:n}=e,o=r.versioningStateLookup.get(t);if(!o)throw this._showInvalidFeatureServiceNotice=!0,new Error(`${N} - no versioning state found for feature service ${t}`);let s=o?.versionInfos.find(h=>h.versionIdentifier.name===n);if(!s)throw i.set(t,!0),new Error(`${N} - version ${n} not found in the versioning state for feature service ${t}`);let a=s.versionIdentifier,v=o?.currentVersionInfo?.versionIdentifier;a.guid!==v?.guid&&r.changeVersion(t,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:r,versionInfo:t}=e.detail,{viewModel:n,flowElement:o}=this;switch(i){case"changeVersion":{n.changeVersion(r,t.versionIdentifier.name,t.versionIdentifier.guid).then(s=>{s&&this.arcgisVersioningStateChanged.emit({type:"version-switched",versionIdentifier:t.versionIdentifier,versioningState:n.versioningStateLookup.get(r)});let{versionList:a}=this;a&&(a.versionListElementProps={...a.versionListElementProps,currentVersionIdentifier:n.versioningStateLookup.get(r).currentVersionInfo.versionIdentifier})});break}case"deleteVersion":{n.deleteVersion(r,t.versionIdentifier.name,t.versionIdentifier.guid).then(async s=>{s&&this.arcgisVersioningStateChanged.emit({type:"version-deleted",versionIdentifier:t.versionIdentifier,versioningState:n.versioningStateLookup.get(r)}),await this._refreshVersionList(r)});break}case"editVersion":{let s=this._createVersionPropertiesFlowItem(r,t);o.value?.appendChild(s),this.versionList&&(this.versionList.selected=!1);break}}}async _refreshVersionList(e){let{flowElement:{value:i},versionList:r,viewModel:t}=this;if(i){let n=await t.getVersionInfos(e),o=i.getElementsByTagName("arcgis-version-management-service-item");for(let s of o)s.serviceItemElementProps.serviceUrl===e&&(s.serviceItemElementProps={...s.serviceItemElementProps,versionInfos:n});r&&(r.versionListElementProps={...r.versionListElementProps,currentVersionIdentifier:t.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:r},initialVersionInfos:t,_isInitialVersionInvalid:n,label:o,messages:s,mode:a,pageSize:v,versionList:h,viewModel:d,viewModel:{loadError:w,state:g}}=this,k=Array.from(d.serviceNameLookup,([l,m])=>({url:l,name:m})),F=g!=="disabled"?k.map(l=>{let m={allowEditing:!e,closable:i,currentUser:d.userLookup.get(l.url),currentVersionIdentifier:d.versioningStateLookup.get(l.url).currentVersionInfo.versionIdentifier,executionError:void 0,flowElement:r,heading:o,initialVersionInfos:t,isInitialVersionInvalid:n,isVersionAdministrator:d.versionAdministratorLookup.get(l.url),isVersioningApiAvailable:(d.serverVersionLookup.get(l.url)??0)>=11.2,mode:a,pageSize:v,serviceName:l.name,state:g,serviceUrl:l.url,strings:s,versionInfos:d.versioningStateLookup.get(l.url)?.versionInfos??[]};return c`<arcgis-version-management-service-item .serviceItemElementProps=${m} =${()=>{r&&(this._removeVersionListFlowItem(r),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,x=g==="disabled"&&w!=null?c`<calcite-notice kind=warning open scale=s slot=footer width=full><div slot=message>${this._getLoadError(w)}</div></calcite-notice>`:void 0,M=this._showInvalidFeatureServiceNotice?c`<calcite-notice closable kind=warning open scale=s slot=content-top width=full icon =${()=>this._showInvalidFeatureServiceNotice=!1}><div slot=title>${s.headers.invalidInitialFeatureService}</div><div slot=message>${s.loadErrors.invalidInitialFeatureService}</div></calcite-notice>`:void 0;return c`<div class="root"><calcite-flow custom-item-selectors="arcgis-version-management-version-list, arcgis-version-management-version-properties" ${S(this.flowElement)}><calcite-flow-item .closable=${this.closable} .heading=${C(o)?s.label:o} =${()=>this._handleFlowItemClose()} .selected=${!h}>${M}${g==="loading"||g==="executing"?c`<calcite-loader .label=${`${s.label} - loading`}></calcite-loader>`:c`<calcite-panel>${F}${x}</calcite-panel>`}</calcite-flow-item></calcite-flow></div>`}};b("arcgis-version-management",u);return u},"core/reactiveUtils","versionManagement/VersionManager",a,d,e,g)