@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 90.8 kB
JavaScript
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1389],{4146:(e,t,i)=>{i.d(t,{A:()=>b});var r=i(90237),n=i(78888),s=i(49186),o=i(65529),l=i(4902),a=i(92474),u=i(53966),c=i(74887),p=i(84952),d=i(10107),h=(i(44208),i(87811),i(40608)),y=i(5443),m=i(16930),f=i(92602),g=i(64272);let v=0,b=class extends(o.A.EventedMixin(l.A.IdentifiableMixin(a.A))){constructor(){super(...arguments),this.attributionDataUrl=null,this.fullExtent=new y.A(-180,-90,180,90,m.A.WGS84),this.id=Date.now().toString(16)+"-layer-"+v++,this.legendEnabled=!0,this.listMode="show",this.opacity=1,this.parent=null,this.persistenceEnabled=!1,this.popupEnabled=!0,this.attributionVisible=!0,this.spatialReference=m.A.WGS84,this.title=null,this.type=null,this.url=null,this.visibilityTimeExtent=null,this.visible=!0}static async fromArcGISServerUrl(e){const t="string"==typeof e?{url:e}:e;return(await i.e(7982).then(i.bind(i,27982))).fromUrl(t)}static fromPortalItem(e){return async function(e){const t="portalItem"in e?e:{portalItem:e},{fromItem:r}=await i.e(5613).then(i.bind(i,45613));try{return await r(t)}catch(e){const i=t?.portalItem,r=i?.id||"unset",n=i?.portal?.url||f.A.portalUrl;throw u.A.getLogger("esri.layers.support.fromPortalItem").error("#fromPortalItem()","Failed to create layer from portal item (portal: '"+n+"', id: '"+r+"')",e),e}}(e)}initialize(){this.when().catch((e=>{(0,c.zf)(e)||u.A.getLogger(this).error("#load()",`Failed to load layer (title: '${this.title??"no title"}', id: '${this.id??"no id"}')`,{error:e})}))}destroy(){const e=this.parent;if(e){const t=this;"layers"in e&&e.layers.includes(t)?e.layers.remove(t):"tables"in e&&e.tables.includes(t)?e.tables.remove(t):"baseLayers"in e&&e.baseLayers.includes(t)?e.baseLayers.remove(t):"referenceLayers"in e&&e.referenceLayers.includes(t)&&e.referenceLayers.remove(t),this._set("parent",null)}}get effectiveVisible(){let e=this.visible;const t=this.parent;return e&&t&&"effectiveVisible"in t&&(e&&=t.effectiveVisible),e}get hasAttributionData(){return null!=this.attributionDataUrl}get parsedUrl(){return(0,p.An)(this.url)}createLayerView(e,t){return Promise.reject(new s.A("layer:create-layer-view","Layer does not support creating a layer view"))}async fetchAttributionData(){const e=this.attributionDataUrl;if(this.hasAttributionData&&e)return(await(0,n.A)(e,{query:{f:"json"},responseType:"json"})).data;throw new s.A("layer:no-attribution-data","Layer does not have attribution data")}};(0,r._)([(0,d.MZ)({type:String})],b.prototype,"attributionDataUrl",void 0),(0,r._)([(0,d.MZ)({readOnly:!0})],b.prototype,"effectiveVisible",null),(0,r._)([(0,d.MZ)({type:y.A})],b.prototype,"fullExtent",void 0),(0,r._)([(0,d.MZ)({readOnly:!0})],b.prototype,"hasAttributionData",null),(0,r._)([(0,d.MZ)({type:String,clonable:!1})],b.prototype,"id",void 0),(0,r._)([(0,d.MZ)({type:Boolean,nonNullable:!0})],b.prototype,"legendEnabled",void 0),(0,r._)([(0,d.MZ)({type:["show","hide","hide-children"]})],b.prototype,"listMode",void 0),(0,r._)([(0,d.MZ)({type:Number,range:{min:0,max:1},nonNullable:!0})],b.prototype,"opacity",void 0),(0,r._)([(0,d.MZ)({clonable:!1})],b.prototype,"parent",void 0),(0,r._)([(0,d.MZ)({readOnly:!0})],b.prototype,"parsedUrl",null),(0,r._)([(0,d.MZ)({type:Boolean,readOnly:!0})],b.prototype,"persistenceEnabled",void 0),(0,r._)([(0,d.MZ)({type:Boolean})],b.prototype,"popupEnabled",void 0),(0,r._)([(0,d.MZ)({type:Boolean})],b.prototype,"attributionVisible",void 0),(0,r._)([(0,d.MZ)({type:m.A})],b.prototype,"spatialReference",void 0),(0,r._)([(0,d.MZ)({type:String})],b.prototype,"title",void 0),(0,r._)([(0,d.MZ)({readOnly:!0,json:{read:!1}})],b.prototype,"type",void 0),(0,r._)([(0,d.MZ)()],b.prototype,"url",void 0),(0,r._)([(0,d.MZ)({type:g.T})],b.prototype,"visibilityTimeExtent",void 0),(0,r._)([(0,d.MZ)({type:Boolean,nonNullable:!0})],b.prototype,"visible",void 0),b=(0,r._)([(0,h.$)("esri.layers.Layer")],b)},8303:(e,t,i)=>{i.d(t,{A:()=>_});var r=i(90237),n=i(92602),s=i(70333),o=i(78888),l=i(60999),a=i(49186),u=i(53966),c=i(97768),p=i(74887),d=i(84952),h=i(10107),y=(i(44208),i(87811),i(36005)),m=i(40608),f=i(43937),g=i(77548),v=i(20655),b=i(80812),M=i(41318),S=i(10407);const _=e=>{let t=class extends e{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){this.portalItem=(0,c.pR)(this.portalItem),this.resourceReferences.portalItem=null,this.resourceReferences.paths.length=0}set portalItem(e){e!==this._get("portalItem")&&(this.removeOrigin("portal-item"),this._set("portalItem",e))}readPortalItem(e,t,i){if(t.itemId)return new b.default({id:t.itemId,portal:i?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{const{load:r}=await i.e(1204).then(i.bind(i,41204));return(0,p.Te)(t),await r({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t)}catch(e){throw(0,p.zf)(e)||u.A.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}}async finishLoadEditablePortalLayer(e){this._set("userHasEditingPrivileges",await this._fetchUserHasEditingPrivileges(e).catch((e=>((0,p.QP)(e),!0))))}async setUserPrivileges(e,t){if(!n.A.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(t);if(this.url)try{const{features:{edit:i,fullEdit:r},content:{updateItem:n}}=await this._fetchUserPrivileges(e,t);this._set("userHasEditingPrivileges",i),this._set("userHasFullEditingPrivileges",r),this._set("userHasUpdateItemPrivileges",n)}catch(e){(0,p.QP)(e)}}async _fetchUserPrivileges(e,t){let i=this.portalItem;if(!e||!i||!i.loaded||i.sourceUrl)return this._fetchFallbackUserPrivileges(t);const r=!s.id?.findCredential(this.url),n=e===i.id;if(n&&i.portal.user)return this._getUserPrivileges(i,r);let o,l;if(n)o=i.portal.url;else try{o=await(0,g.wI)(this.url,t)}catch(e){(0,p.QP)(e)}if(!o||!(0,d.b8)(o,i.portal.url))return this._fetchFallbackUserPrivileges(t);try{const e=null!=t?t.signal:null;l=await(s.id?.getCredential(`${o}/sharing`,{prompt:!1,signal:e}))}catch(e){(0,p.QP)(e)}const a=!0,u=!1,c=!1;if(!l)return{features:{edit:a,fullEdit:u},content:{updateItem:c}};try{if(n?await i.reload():(i=new b.default({id:e,portal:{url:o}}),await i.load(t)),i.portal.user)return this._getUserPrivileges(i,r)}catch(e){(0,p.QP)(e)}return{features:{edit:a,fullEdit:u},content:{updateItem:c}}}_getUserPrivileges(e,t){const i=(0,S.It)(e);return t&&(i.features.edit=!0),i}async _fetchFallbackUserPrivileges(e){let t=!0;try{t=await this._fetchUserHasEditingPrivileges(e)}catch(e){(0,p.QP)(e)}return{features:{edit:t,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(e){const t=this.url?s.id?.findCredential(this.url):null;if(!t)return!0;const i=w.credential===t?w.user:await this._fetchEditingUser(e);return w.credential=t,w.user=i,null==i?.privileges||i.privileges.includes("features:user:edit")}async _fetchEditingUser(e){const t=this.portalItem?.portal?.user;if(t)return t;const i=s.id?.findServerInfo(this.url??"");if(!i?.owningSystemUrl)return null;const r=`${i.owningSystemUrl}/sharing/rest`,n=v.A.getDefault();if(n&&n.loaded&&(0,d.S8)(n.restUrl)===(0,d.S8)(r))return n.user;const a=`${r}/community/self`,u=null!=e?e.signal:null,c=await(0,l.Ke)((0,o.A)(a,{authMode:"no-prompt",query:{f:"json"},signal:u}));return c.ok?M.A.fromJSON(c.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){const i=t?.portal,r=this.portalItem?.id&&(this.portalItem.portal||v.A.getDefault());return i&&r&&!(0,d.ut)(r.restUrl,i.restUrl)?(t.messages&&t.messages.push(new a.A("layer:cross-portal",`The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save, set layer.portalItem to null or save to the same portal as the item associated with the layer`,{layer:this})),null):super.write(e,{...t,layer:this})}};return(0,r._)([(0,h.MZ)({type:b.default})],t.prototype,"portalItem",null),(0,r._)([(0,y.w)("web-document","portalItem",["itemId"])],t.prototype,"readPortalItem",null),(0,r._)([(0,f.K)("web-document","portalItem",{itemId:{type:String}})],t.prototype,"writePortalItem",null),(0,r._)([(0,h.MZ)({clonable:!1})],t.prototype,"resourceReferences",void 0),(0,r._)([(0,h.MZ)({type:Boolean,readOnly:!0})],t.prototype,"userHasEditingPrivileges",void 0),(0,r._)([(0,h.MZ)({type:Boolean,readOnly:!0})],t.prototype,"userHasFullEditingPrivileges",void 0),(0,r._)([(0,h.MZ)({type:Boolean,readOnly:!0})],t.prototype,"userHasUpdateItemPrivileges",void 0),t=(0,r._)([(0,m.$)("esri.layers.mixins.PortalLayer")],t),t},w={credential:null,user:null}},16183:(e,t,i)=>{i.r(t),i.d(t,{default:()=>$e});var r=i(90237),n=i(13874),s=i(5503),o=i(49186),l=i(53966),a=i(92071),u=i(74887),c=i(10107),p=i(56507),d=(i(44208),i(87811),i(36005)),h=i(40608),y=i(38954),m=i(51850),f=i(5443),g=i(4146),v=i(52136),b=i(18768),M=i(69208),S=i(16131),_=i(8303),w=i(25036),x=i(58947),A=i(60694),Z=i(10873),j=i(20437),I=i(95466),T=i(96184),N=i(69540),V=i(69052),F=i(25482),R=i(87024),z=i(67026),P=i(82534),O=i(34304);const E=(0,m.vt)(),U=(0,P.vt)(),L=(0,P.vt)(),D=(0,P.vt)(),q=(0,m.fA)(0,0,1),$=(0,m.fA)(0,1,0),C=(0,m.fA)(1,0,0);function B(e){(0,y.c)(E,e),(0,y.n)(E,E);const t=Math.atan2(E[1],E[0]),i=(0,z.x8)((0,P.vt)(),q,-t);(0,y.v)(E,E,i);const r=-1*Math.atan2(E[2],E[0]);return[(0,O.ct)(t)+270,(0,O.ct)(r)+90]}function k(e,t){return(0,z.x8)(L,q,(0,O.DF)(e-270)),(0,z.x8)(D,$,(0,O.DF)(t-90)),(0,z.lw)(U,L,D),(0,y.c)(E,C),(0,y.v)(E,E,U),(0,y.n)(E,E),[E[0],E[1],E[2]]}var H=i(79901);let G=class extends(N.A.ClonableMixin(F.A)){constructor(e){super(e),this.enabled=!0,this.label="",this.normal=null,this.point=null}get orientation(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=B(this.normal);return V.ie.normalize((0,p.GB)(e),0,!0)}set orientation(e){const t=k(e,this.tilt);this._set("normal",t),this._set("orientation",e)}get tilt(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=B(this.normal);return V.ie.normalize((0,p.GB)(t),0,!0)}set tilt(e){const t=k(this.orientation,e);this._set("normal",t),this._set("tilt",e)}};(0,r._)([(0,c.MZ)({type:Boolean,json:{write:!0}})],G.prototype,"enabled",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],G.prototype,"label",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,H.w)((e=>V.ie.normalize((0,p.GB)(e),0,!0)))],G.prototype,"orientation",null),(0,r._)([(0,c.MZ)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,H.w)((e=>V.ie.normalize((0,p.GB)(e),0,!0)))],G.prototype,"tilt",null),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],G.prototype,"normal",void 0),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],G.prototype,"point",void 0),G=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelSlice")],G);var J=i(97159);let K=class extends(N.A.ClonableMixin(F.A)){constructor(){super(...arguments),this.enabled=!0,this.href=null,this.id=null,this.label="",this.normal=null,this.point=null,this.sizeInPixel=null,this.slices=null,this.timeId=0,this.variableId=null}get orientation(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=B(this.normal);return V.ie.normalize((0,p.GB)(e),0,!0)}get tilt(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=B(this.normal);return V.ie.normalize((0,p.GB)(t),0,!0)}};(0,r._)([(0,c.MZ)({type:Boolean,json:{default:!0,write:!0}})],K.prototype,"enabled",void 0),(0,r._)([(0,c.MZ)({type:String,json:{origins:{service:{read:J.r},"web-scene":{write:{isRequired:!0}}},write:!0}}),(0,R.P)({origins:["web-scene"],type:"resource",prefix:"sections",compress:!0})],K.prototype,"href",void 0),(0,r._)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],K.prototype,"id",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],K.prototype,"label",void 0),(0,r._)([(0,c.MZ)({type:Number,clonable:!1,readOnly:!0,range:{min:0,max:360}})],K.prototype,"orientation",null),(0,r._)([(0,c.MZ)({type:Number,clonable:!1,readOnly:!0,range:{min:0,max:360}})],K.prototype,"tilt",null),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],K.prototype,"normal",void 0),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],K.prototype,"point",void 0),(0,r._)([(0,c.MZ)({type:[p.jz],json:{write:{enabled:!0,isRequired:!0}}})],K.prototype,"sizeInPixel",void 0),(0,r._)([(0,c.MZ)({type:[G],json:{write:!0}})],K.prototype,"slices",void 0),(0,r._)([(0,c.MZ)({type:p.jz,json:{default:0,write:!0}})],K.prototype,"timeId",void 0),(0,r._)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],K.prototype,"variableId",void 0),K=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelSection")],K);let W=class extends F.A{constructor(){super(...arguments),this.diffuseFactor=.5,this.specularFactor=.5}};(0,r._)([(0,c.MZ)({type:Number,range:{min:0,max:1},json:{default:.5,write:!0}})],W.prototype,"diffuseFactor",void 0),(0,r._)([(0,c.MZ)({type:Number,range:{min:0,max:1},json:{default:.5,write:!0}})],W.prototype,"specularFactor",void 0),W=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelSimpleShading")],W);let Y=class extends F.A{constructor(){super(...arguments),this.continuity=null,this.hasNoData=!1,this.noData=0,this.offset=0,this.scale=1,this.type=null}};(0,r._)([(0,c.MZ)({type:["discrete","continuous"],json:{write:!0}})],Y.prototype,"continuity",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{write:!0}})],Y.prototype,"hasNoData",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:!0}})],Y.prototype,"noData",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:!0}})],Y.prototype,"offset",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:!0}})],Y.prototype,"scale",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],Y.prototype,"type",void 0),Y=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelFormat")],Y);const Q=Y;let X=class extends F.A{constructor(){super(...arguments),this.id=null,this.description="",this.name=null,this.originalFormat=null,this.renderingFormat=null,this.unit="",this.volumeId=0,this.type=null}};(0,r._)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],X.prototype,"id",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],X.prototype,"description",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],X.prototype,"name",void 0),(0,r._)([(0,c.MZ)({type:Q,json:{write:!0}})],X.prototype,"originalFormat",void 0),(0,r._)([(0,c.MZ)({type:Q,json:{write:{enabled:!0,isRequired:!0}}})],X.prototype,"renderingFormat",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],X.prototype,"unit",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:!0}})],X.prototype,"volumeId",void 0),(0,r._)([(0,c.MZ)({type:["stc-hot-spot-results","stc-cluster-outlier-results","stc-estimated-bin","generic-nearest-interpolated"],json:{write:!0}})],X.prototype,"type",void 0),X=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelVariable")],X);const ee=X;var te=i(4718),ie=i(68197);let re=class extends(N.A.ClonableMixin(F.A)){constructor(){super(...arguments),this.color=ie.A.fromArray([0,0,0,0]),this.value=0,this.enabled=!0,this.label="",this.colorLocked=!1}};(0,r._)([(0,c.MZ)({type:ie.A,json:{type:[p.jz],write:{enabled:!0,isRequired:!0}}})],re.prototype,"color",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],re.prototype,"value",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{default:!0,write:!0}})],re.prototype,"enabled",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],re.prototype,"label",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{default:!1,write:!0}})],re.prototype,"colorLocked",void 0),re=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelIsosurface")],re);var ne=i(62885),se=i(34727);let oe=class extends(N.A.ClonableMixin(F.A)){constructor(){super(...arguments),this.color=null,this.position=0}};(0,r._)([(0,c.MZ)({type:ie.A,json:{type:[p.jz],write:{enabled:!0,isRequired:!0}}})],oe.prototype,"color",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],oe.prototype,"position",void 0),oe=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelColorStop")],oe);const le=oe;let ae=class extends(N.A.ClonableMixin(F.A)){constructor(){super(...arguments),this.opacity=1,this.position=0}};(0,r._)([(0,c.MZ)({type:Number,json:{name:"alpha",write:{enabled:!0,isRequired:!0}}})],ae.prototype,"opacity",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],ae.prototype,"position",void 0),ae=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelOpacityStop")],ae);const ue=ae;let ce=class extends(N.A.ClonableMixin(F.A)){constructor(){super(...arguments),this.enabled=!1,this.range=null}};(0,r._)([(0,c.MZ)({type:Boolean,json:{default:!1,write:!0}})],ce.prototype,"enabled",void 0),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],ce.prototype,"range",void 0),ce=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelRangeFilter")],ce);const pe=ce;var de,he;(he=de||(de={}))[he.Color=1]="Color",he[he.Alpha=2]="Alpha",he[he.Both=3]="Both";let ye=class extends(N.A.ClonableMixin(F.A)){constructor(e){super(e),this.interpolation=null,this.stretchRange=null,this.rangeFilter=null,this._colorMapSize=256,this.colorStops=new(s.A.ofType(le)),this.opacityStops=new(s.A.ofType(ue))}set colorStops(e){this._set("colorStops",(0,ne.V)(e,this._get("colorStops"),s.A.ofType(le)))}set opacityStops(e){this._set("opacityStops",(0,ne.V)(e,this._get("opacityStops"),s.A.ofType(ue)))}getPreviousNext(e,t,i){let r=e;for(;--r>0&&t[r].type!==i&&t[r].type!==de.Both;);let n=e;const s=t.length;for(;++n<s&&t[n].type!==i&&t[n].type!==de.Both;);return[r,n]}get rasterizedTransferFunction(){const e=[];if(this.colorStops.length<2)return e;const t=[],i=[];for(const t of this.colorStops){if(!t.color)return e;i.push({color:{r:t.color.r,g:t.color.g,b:t.color.b,a:Math.round(255*(1-t.color.a))},position:t.position,type:de.Color})}if(0===this.opacityStops.length)for(const e of i)t.push({color:e.color,position:e.position});else{for(const e of this.opacityStops){const t=(0,se.qE)(e.position,0,1),r=Math.round(255*(0,se.qE)(1-e.opacity,0,1));let n=!1;for(const e of i)if(e.type===de.Color&&Math.abs(e.position-t)<1e-5){e.color.a=r,e.type=de.Both,n=!0;break}n||i.push({color:{r:0,g:0,b:0,a:r},position:e.position,type:de.Alpha})}i.sort(((e,t)=>e.position<t.position?-1:1));const e=i.length;for(let t=0;t<e;++t){const r=i[t];if(r.type!==de.Both)if(r.type===de.Color){const[n,s]=this.getPreviousNext(t,i,de.Alpha);if(-1!==n&&s!==e){const e=(r.position-i[n].position)/(i[s].position-i[n].position);r.color.a=Math.round((0,se.Cc)(i[n].color.a,i[s].color.a,e))}else r.color.a=-1!==n?i[n].color.a:i[s].color.a}else{const[n,s]=this.getPreviousNext(t,i,de.Color);if(-1!==n&&s!==e){const e=(r.position-i[n].position)/(i[s].position-i[n].position),t=i[n].color,o=i[s].color;fe.forEach((i=>{r.color[i]=Math.round((0,se.Cc)(t[i],o[i],e))}))}else-1!==n?fe.forEach((e=>{r.color[e]=i[n].color[e]})):fe.forEach((e=>{r.color[e]=i[s].color[e]}))}}for(const e of i)t.push({color:e.color,position:e.position})}t[0].position=0,t[t.length-1].position=1;let r=0,n=1;for(let i=0;i<this._colorMapSize;++i){const s=i/this._colorMapSize;for(;s>t[n].position;)r=n++;const o=(s-t[r].position)/(t[n].position-t[r].position),l=t[r].color,a=t[n].color,u=new ie.A;fe.forEach((e=>{u[e]=Math.round((0,se.Cc)(l[e],a[e],o))})),u.a=(0,se.qE)(1-(0,se.Cc)(l.a,a.a,o)/255,0,1),e.push(u)}return e}getColorForContinuousDataValue(e,t){const i=this.rasterizedTransferFunction;if(this.colorStops.length<2||!Array.isArray(this.stretchRange)||this.stretchRange.length<2||i.length<256)return null;let r=this.stretchRange[0],n=this.stretchRange[1];if(r>n){const e=r;r=n,n=e}e=(0,se.qE)(e,r,n);const s=i[Math.round((e-r)/(n-r)*(this._colorMapSize-1))].clone();return t||(s.a=1),s}};(0,r._)([(0,c.MZ)({type:["linear","nearest"],json:{write:!0}})],ye.prototype,"interpolation",void 0),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],ye.prototype,"stretchRange",void 0),(0,r._)([(0,c.MZ)({type:s.A.ofType(le),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.colorStops&&this.colorStops.length>0}}}}})],ye.prototype,"colorStops",null),(0,r._)([(0,c.MZ)({type:s.A.ofType(ue),json:{read:{source:"alphaStops"},write:{enabled:!0,target:"alphaStops",overridePolicy(){return{enabled:!!this.opacityStops&&this.opacityStops.length>0}}}}})],ye.prototype,"opacityStops",null),(0,r._)([(0,c.MZ)({type:pe,json:{write:!0}})],ye.prototype,"rangeFilter",void 0),(0,r._)([(0,c.MZ)({type:[ie.A],clonable:!1,json:{read:!1}})],ye.prototype,"rasterizedTransferFunction",null),ye=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelTransferFunctionStyle")],ye);const me=ye,fe=["r","g","b"];let ge=class extends(N.A.ClonableMixin(F.A)){constructor(){super(...arguments),this.color=ie.A.fromArray([0,0,0,0]),this.value=0,this.enabled=!0,this.label=""}};var ve;(0,r._)([(0,c.MZ)({type:ie.A,json:{type:[p.jz],write:{enabled:!0,isRequired:!0}}})],ge.prototype,"color",void 0),(0,r._)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],ge.prototype,"value",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{default:!0,write:!0}})],ge.prototype,"enabled",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],ge.prototype,"label",void 0),ge=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelUniqueValue")],ge);let be=ve=class extends F.A{constructor(e){super(e),this.variableId=0,this.label="",this.transferFunction=null,this.uniqueValues=null,this.isosurfaces=null,this.uniqueValues=new(s.A.ofType(ge)),this.isosurfaces=new(s.A.ofType(re))}clone(){return new ve({variableId:this.variableId,label:this.label,transferFunction:(0,te.o8)(this.transferFunction),uniqueValues:(0,te.o8)(this.uniqueValues),isosurfaces:(0,te.o8)(this.isosurfaces)})}};(0,r._)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],be.prototype,"variableId",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],be.prototype,"label",void 0),(0,r._)([(0,c.MZ)({type:me,json:{write:{enabled:!0,overridePolicy(){return{enabled:!this.uniqueValues||this.uniqueValues.length<1}}}}})],be.prototype,"transferFunction",void 0),(0,r._)([(0,c.MZ)({type:s.A.ofType(ge),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.uniqueValues&&this.uniqueValues.length>0}}}}})],be.prototype,"uniqueValues",void 0),(0,r._)([(0,c.MZ)({type:s.A.ofType(re),json:{write:{enabled:!0,overridePolicy(){const e=!this.uniqueValues||this.uniqueValues.length<1,t=!!this.isosurfaces&&this.isosurfaces.length>0;return{enabled:e&&t}}}}})],be.prototype,"isosurfaces",void 0),be=ve=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelVariableStyle")],be);var Me=i(88930),Se=i(86738),_e=i(16930),we=i(21325);function xe(e){const t=/^(days?|hours?|minutes?|seconds?|d|h|m|s) since (\d{1,4})-(\d{1,2})-(\d{1,2})[ |T](\d{1,2}):(\d{1,2}):(\d{1,2})(\.[0-9]+)?[\s|Z]?(([+|\-|\s?])(\d{1,2}):(\d{1,2}))?$/i.exec(e);if(null==t)return{didParse:!1};const[,i,r,n,s,o,l,a,u,c,p,d,h]=t;let y="seconds";const m=i.charAt(0).toLowerCase();"d"===m?y="days":"h"===m?y="hours":"m"===m&&(y="minutes");const f=parseInt(r,10);if(Number.isNaN(f))return{didParse:!1};const g=parseInt(n,10);if(Number.isNaN(g)||g<1||g>12)return{didParse:!1};const v=parseInt(s,10);if(Number.isNaN(v)||v<1||v>31)return{didParse:!1};if(2===g){const e=f%4==0&&(f%100!=0||f%400==0);if(e&&v>29||!e&&v>28)return{didParse:!1}}else if((4===g||6===g||9===g||11===g)&&v>30)return{didParse:!1};const b=parseInt(o,10);if(Number.isNaN(b)||b<0||b>23)return{didParse:!1};const M=parseInt(l,10);if(Number.isNaN(M)||M<0||M>59)return{didParse:!1};const S=parseInt(a,10);if(Number.isNaN(S)||S<0||S>59)return{didParse:!1};let _=1,w=0,x=0;if(p&&(_="-"===p?-1:1),d){if(w=parseInt(d,10),Number.isNaN(w)||w<0)return{didParse:!1};if(0!==w){const e=_*w;if(e<-12||e>14)return{didParse:!1}}}if(h&&(x=parseInt(h,10),Number.isNaN(x)||x<0||x>59))return{didParse:!1};const A=`${f}`.padStart(4,"0"),Z=`${g}`.padStart(2,"0"),j=`${v}`.padStart(2,"0"),I=`${b}`.padStart(2,"0"),T=`${M}`.padStart(2,"0"),N=`${S}`.padStart(2,"0");let V="Z";return 0===w&&0===x||(V=_>0?"+":"-",V+=`${w}`.padStart(2,"0"),V+=":",V+=`${x}`.padStart(2,"0")),{didParse:!0,unit:y,reference:new Date(`${A}-${Z}-${j}T${I}:${T}:${N}.000${V}`)}}let Ae=class extends F.A{constructor(){super(...arguments),this.values=null}};(0,r._)([(0,c.MZ)({type:[Number],json:{write:!0}})],Ae.prototype,"values",void 0),Ae=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelIrregularSpacing")],Ae);const Ze=Ae;let je=class extends F.A{constructor(){super(...arguments),this.scale=1,this.offset=0}};(0,r._)([(0,c.MZ)({type:Number,json:{write:!0}})],je.prototype,"scale",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:!0}})],je.prototype,"offset",void 0),je=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelRegularSpacing")],je);const Ie=je;let Te=class extends F.A{constructor(){super(...arguments),this.irregularSpacing=null,this.isPositiveUp=!0,this.isWrappedDateLine=!1,this.label=null,this.name=null,this.quantity=null,this.regularSpacing=null,this.size=0,this.unit=null}get isRegular(){return(null==this.irregularSpacing||void 0===this.irregularSpacing)&&null!==this.regularSpacing}getRange(){return this.isRegular?[this.regularSpacing.offset,this.regularSpacing.offset+this.regularSpacing.scale*(this.size-1)]:Array.isArray(this.irregularSpacing?.values)&&this.irregularSpacing.values.length>1?[this.irregularSpacing.values[0],this.irregularSpacing.values[this.irregularSpacing.values.length-1]]:[0,0]}};(0,r._)([(0,c.MZ)({type:Ze,json:{write:!0}})],Te.prototype,"irregularSpacing",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{write:!0}})],Te.prototype,"isPositiveUp",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{write:!0}})],Te.prototype,"isWrappedDateLine",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],Te.prototype,"label",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],Te.prototype,"name",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],Te.prototype,"quantity",void 0),(0,r._)([(0,c.MZ)({type:Ie,json:{write:!0}})],Te.prototype,"regularSpacing",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:!0}})],Te.prototype,"size",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],Te.prototype,"unit",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{read:!1}})],Te.prototype,"isRegular",null),Te=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelDimension")],Te);const Ne=Te;let Ve=class extends F.A{constructor(e){super(e),this.id=0,this.dimensions=null,this.spatialReference=_e.A.WGS84}get zDimension(){if(!this.dimensions)return-1;if(!Array.isArray(this.dimensions))return-1;if(4!==this.dimensions.length)return-1;for(let e=2;e<4;++e)if(this.dimensions[e].size>0)return e;return-1}get isValid(){return!(!this.dimensions||!Array.isArray(this.dimensions)||4!==this.dimensions.length||this.dimensions[0].size<1||this.dimensions[1].size<1||-1===this.zDimension||this.dimensions[this.zDimension].size<1)}get originInLayerSpace3D(){if(!this.isValid||"xyt"===this.volumeType)return[0,0,0];const e=this.dimensions[0].getRange(),t=this.dimensions[1].getRange(),i=this.dimensions[2],r=i.isRegular?i.getRange():[0,i.size];return[e[0],t[0],r[0]]}get voxelSizeInLayerSpaceSigned(){if(!this.isValid||"xyt"===this.volumeType)return[0,0,0];const e=this.dimensions[0].getRange(),t=this.dimensions[1].getRange(),i=this.dimensions[2],r=i.isRegular?i.getRange():[0,i.size],n=[this.sizeInVoxels[0],this.sizeInVoxels[1],this.sizeInVoxels[2]];for(let e=0;e<3;++e)n[e]<2?n[e]=1:n[e]-=1;return i.isRegular&&!i.isPositiveUp&&(n[2]*=-1),[(e[1]-e[0])/n[0],(t[1]-t[0])/n[1],(r[1]-r[0])/n[2]]}get volumeType(){if(this.isValid){const e=this.dimensions[2].size>0;let t=this.dimensions[3].size>0;if(t){const e=this.dimensions[3];t="time"===e.quantity,t&&null!==e.unit&&(t=xe(e.unit).didParse)}if(!e&&t)return"xyt";if(e&&t)return"xyzt"}return"xyz"}get sizeInVoxels(){if(!this.isValid)return[0,0,0];const e=this.zDimension;return[this.dimensions[0].size,this.dimensions[1].size,this.dimensions[e].size]}get timeStops(){if("xyzt"!==this.volumeType)return[];const e=this.dimensions[3],t=[],i=xe(e.unit);if(i.didParse)if(e.isRegular){const r=e.regularSpacing?.offset??0,n=e.regularSpacing?.scale||1;for(let s=0;s<e.size;++s){const e=r+n*s;t.push((0,Me.mi)(i.reference,e,i.unit))}}else if(Array.isArray(e.irregularSpacing?.values)&&e.irregularSpacing.values.length>0)for(let r=0;r<e.irregularSpacing.values.length;++r){const n=e.irregularSpacing.values[r];t.push((0,Me.mi)(i.reference,n,i.unit))}return t}computeVoxelSpaceLocation(e){if(!this.isValid)return[0,0,0];if("xyt"===this.volumeType)return l.A.getLogger(this).error("computeVoxelSpacePosition cannot be used with XYT volumes."),[0,0,0];if(!(0,we.aI)(this.spatialReference,e.spatialReference))return l.A.getLogger(this).error("pos argument should have the same spatial reference as the VoxelLayer."),[0,0,0];const t=(0,m.fA)(e.x,e.y,e.z??0);(0,y.d)(t,t,this.originInLayerSpace3D),(0,y.D)(t,t,this.voxelSizeInLayerSpaceSigned);const i=this.dimensions[this.zDimension];if(!i.isRegular&&Array.isArray(i.irregularSpacing?.values)&&i.irregularSpacing.values.length>1){const r=e.z??0,n=i.irregularSpacing.values,s=i.isPositiveUp?1:-1,o=n.reduce(((e,t)=>Math.abs(s*t-r)<Math.abs(s*e-r)?t:e));for(let e=0;e<n.length;++e)if(n[e]===o){t[2]=e;break}}return[t[0],t[1],t[2]]}computeLayerSpaceLocation(e){if(!this.isValid)return new Se.A({x:0,y:0,spatialReference:this.spatialReference});const t=(0,m.ci)(e);if((0,y.C)(t,t,this.voxelSizeInLayerSpaceSigned),(0,y.f)(t,t,this.originInLayerSpace3D),"xyt"===this.volumeType)return new Se.A({x:t[0],y:t[1],spatialReference:this.spatialReference});const i=this.dimensions[this.zDimension];return i.isRegular||Array.isArray(i.irregularSpacing?.values)&&(e[2]<0?t[2]=i.irregularSpacing.values[0]:e[2]<i.irregularSpacing.values.length?t[2]=i.irregularSpacing.values[e[2]]:t[2]=i.irregularSpacing.values[i.irregularSpacing.values.length-1],i.isPositiveUp||(t[2]*=-1)),new Se.A({x:t[0],y:t[1],z:t[2],spatialReference:this.spatialReference})}};var Fe;(0,r._)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],Ve.prototype,"id",void 0),(0,r._)([(0,c.MZ)({type:[Ne],json:{write:{enabled:!0,isRequired:!0}}})],Ve.prototype,"dimensions",void 0),(0,r._)([(0,c.MZ)({type:_e.A,json:{read:{enabled:!1}}})],Ve.prototype,"spatialReference",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{read:!1}})],Ve.prototype,"zDimension",null),(0,r._)([(0,c.MZ)({type:[Boolean],json:{read:!1}})],Ve.prototype,"isValid",null),(0,r._)([(0,c.MZ)({type:[Number],json:{read:!1}})],Ve.prototype,"originInLayerSpace3D",null),(0,r._)([(0,c.MZ)({type:[Number],json:{read:!1}})],Ve.prototype,"voxelSizeInLayerSpaceSigned",null),(0,r._)([(0,c.MZ)({type:["xyz","xyzt","xyt"],json:{read:{enabled:!1}}})],Ve.prototype,"volumeType",null),(0,r._)([(0,c.MZ)({type:[Number],json:{read:!1}})],Ve.prototype,"sizeInVoxels",null),(0,r._)([(0,c.MZ)({type:[Date],json:{read:!1,write:!1}})],Ve.prototype,"timeStops",null),Ve=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelVolume")],Ve);let Re=Fe=class extends F.A{constructor(){super(...arguments),this.apronWidth=1,this.brickSize=[32,32,32],this.maxLodLevel=0,this.nodeSize=[4,4,4]}isValid(){const e=new Fe;return e.apronWidth===this.apronWidth&&e.maxLodLevel===this.maxLodLevel&&!!this.brickSize&&!!this.nodeSize&&!(!Array.isArray(this.brickSize)||!Array.isArray(this.nodeSize))&&3===this.brickSize.length&&3===this.nodeSize.length&&32===this.brickSize[0]&&32===this.brickSize[1]&&32===this.brickSize[2]&&4===this.nodeSize[0]&&4===this.nodeSize[1]&&4===this.nodeSize[2]}};(0,r._)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],Re.prototype,"apronWidth",void 0),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],Re.prototype,"brickSize",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],Re.prototype,"maxLodLevel",void 0),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],Re.prototype,"nodeSize",void 0),Re=Fe=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelVolumeIndex")],Re);const ze=Re;let Pe=class extends(N.A.ClonableMixin(F.A)){constructor(e){super(e),this.enabled=!0,this.label="",this.normal=null,this.point=null}get orientation(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=B(this.normal);return V.ie.normalize((0,p.GB)(e),0,!0)}set orientation(e){const t=k(e,this.tilt);this._set("normal",t),this._set("orientation",e)}get tilt(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=B(this.normal);return V.ie.normalize((0,p.GB)(t),0,!0)}set tilt(e){const t=k(this.orientation,e);this._set("normal",t),this._set("tilt",e)}};var Oe;(0,r._)([(0,c.MZ)({type:Boolean,json:{default:!0,write:!0}})],Pe.prototype,"enabled",void 0),(0,r._)([(0,c.MZ)({type:String,json:{write:!0}})],Pe.prototype,"label",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,H.w)((e=>V.ie.normalize((0,p.GB)(e),0,!0)))],Pe.prototype,"orientation",null),(0,r._)([(0,c.MZ)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,H.w)((e=>V.ie.normalize((0,p.GB)(e),0,!0)))],Pe.prototype,"tilt",null),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],Pe.prototype,"normal",void 0),(0,r._)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],Pe.prototype,"point",void 0),Pe=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelDynamicSection")],Pe);let Ee=Oe=class extends F.A{constructor(e){super(e),this.volumeId=0,this.verticalExaggeration=1,this.exaggerationMode="scale-height",this.verticalOffset=0,this.slices=new(s.A.ofType(G)),this.dynamicSections=new(s.A.ofType(Pe))}set slices(e){this._set("slices",(0,ne.V)(e,this._get("slices"),s.A.ofType(G)))}set dynamicSections(e){this._set("dynamicSections",(0,ne.V)(e,this._get("dynamicSections"),s.A.ofType(Pe)))}clone(){return new Oe({volumeId:this.volumeId,verticalExaggeration:this.verticalExaggeration,exaggerationMode:this.exaggerationMode,verticalOffset:this.verticalOffset,slices:(0,te.o8)(this.slices),dynamicSections:(0,te.o8)(this.dynamicSections)})}};(0,r._)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],Ee.prototype,"volumeId",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{default:1,write:!0}})],Ee.prototype,"verticalExaggeration",void 0),(0,r._)([(0,c.MZ)({type:["scale-position","scale-height"],json:{default:"scale-height",write:!0}})],Ee.prototype,"exaggerationMode",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{default:0,write:!0}})],Ee.prototype,"verticalOffset",void 0),(0,r._)([(0,c.MZ)({type:s.A.ofType(G),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.slices&&this.slices.length>0}}}}})],Ee.prototype,"slices",null),(0,r._)([(0,c.MZ)({type:s.A.ofType(Pe),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.dynamicSections&&this.dynamicSections.length>0}}}}})],Ee.prototype,"dynamicSections",null),Ee=Oe=(0,r._)([(0,h.$)("esri.layers.voxel.VoxelVolumeStyle")],Ee);var Ue=i(30291),Le=i(64272),De=i(26253);let qe=class extends((0,x.w6)((0,b.b)((0,S.q)((0,_.A)((0,w.j)((0,a.P)((0,M.d)((0,v.p)(g.A))))))))){constructor(e){super(e),this.serviceRoot="",this.operationalLayerType="Voxel",this.legendEnabled=!0,this.title=null,this.sections=null,this.currentVariableId=0,this.volumeStyles=null,this.renderMode="volume",this.variableStyles=null,this.enableSlices=!0,this.enableSections=!0,this.enableDynamicSections=!0,this.enableIsosurfaces=!0,this.shading=new W,this.opacity=1,this.variables=new s.A,this.volumes=new s.A,this.index=null,this.minScale=0,this.maxScale=0,this.type="voxel",this.version={major:Number.NaN,minor:Number.NaN,versionString:""},this.fullExtent=null,this.popupEnabled=!1,this.popupTemplate=null,this.test=null,this.timeExtent=null,this.timeOffset=null,this.useViewTime=!0,this.volumeStyles=new(s.A.ofType(Ee)),this.variableStyles=new(s.A.ofType(be)),this.sections=new(s.A.ofType(K))}normalizeCtorArgs(e){return e?.constantUpscaling&&(this.test={constantUpscaling:!0},delete e.constantUpscaling),e}set url(e){this._set("url",(0,A.Jf)(e,l.A.getLogger(this)))}load(e){const t=null!=e?e.signal:null,i=this.loadFromPortal({supportedTypes:["Scene Service"]},e).catch(u.QP).then((()=>this._fetchService(t))).then((()=>this.serviceRoot=this.url));return this.addResolvingPromise(i),Promise.resolve(this)}read(e,t){super.read(e,t),"service"===t?.origin&&this.version.major<=3&&this.version.minor<=0&&!this.getAtOrigin("popupTemplate","service")&&this.setAtOrigin("popupTemplate",this.createPopupTemplate(),"service");for(const e of this.volumes)e.spatialReference=this.spatialReference}readVersion(e,t){return super.parseVersionString(e)}validateLayer(e){if(e.layerType&&e.layerType!==this.operationalLayerType)throw new o.A("voxel-layer:layer-type-not-supported","VoxelLayer does not support this layer type",{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor)||this.version.major<3)throw new o.A("layer:service-version-not-supported","Service version is not supported.",{serviceVersion:this.version.versionString,supportedVersions:"3.x"});if(this.version.major>3)throw new o.A("layer:service-version-too-new","Service version is too new.",{serviceVersion:this.version.versionString,supportedVersions:"3.x"})}readFullExtent(e,t,i){if(null!=e&&"object"==typeof e){const r=f.A.fromJSON(e,i);if(0===r.zmin&&0===r.zmax&&Array.isArray(t.volumes)){const e=Ve.fromJSON(t.volumes[0]);if(e.isValid&&"xyt"!==e.volumeType){const t=e.dimensions[2];if(t.isRegular){let e=t.regularSpacing.offset,i=t.regularSpacing.offset+t.regularSpacing.scale*(t.size-1);if(e>i){const t=e;e=i,i=t}r.zmin=e,r.zmax=i}}}return r}return null}get fields(){const e=[new j.A({name:"Voxel.Position",alias:"Voxel Position",domain:null,editable:!1,length:128,type:"string"}),new j.A({name:"Voxel.CurrentVariable",alias:"Current Variable",domain:null,editable:!1,length:128,type:"string"})];for(const t of this.variables){const i=new j.A({name:t.name,alias:t.description,domain:null,editable:!1,length:128,type:"discrete"===t.renderingFormat.continuity?"string":"double"});e.push(i)}const t=this.getVolume(null);if(null!=t){if("xyzt"===t.volumeType||"xyt"===t.volumeType){const t=new j.A({name:"Voxel.LocalTime",alias:"Local Time",domain:null,editable:!1,length:256,type:"date"});e.push(t);const i=new j.A({name:"Voxel.SourceTime",alias:"Source Time",domain:null,editable:!1,length:256,type:"string"});e.push(i)}if("xyt"!==t.volumeType){const t=new j.A({name:"Voxel.Depth",alias:"Depth",domain:null,editable:!1,length:128,type:"double"});e.push(t)}}return e}get fieldsIndex(){return this.loaded?new I.A(this.fields):null}getField(e){return this.fieldsIndex?.get(e)}get defaultPopupTemplate(){return this.createPopupTemplate()}createPopupTemplate(e){const t=this.fields;return(0,Ue.tn)({fields:t,title:"{Voxel.Position}"},e)}getConfiguration(){const e={layerType:this.operationalLayerType,version:this.version.versionString,name:this.title,spatialReference:this.spatialReference,fullExtent:this.fullExtent,volumes:this.volumes.toJSON(),variables:this.variables.toJSON(),index:this.index?.toJSON(),sections:this.getSections(),style:{volumeStyles:this.getVolumeStyles(),currentVariableId:this.currentVariableId,renderMode:this.renderMode,variableStyles:this.getVariableStyles(),enableSections:this.enableSections,enableDynamicSections:this.enableDynamicSections,enableIsosurfaces:this.enableIsosurfaces,enableSlices:this.enableSlices,shading:this.shading}};return e.index&&this.index?.isValid()?JSON.stringify(e):""}getVariableStyle(e){let t=-1;if(t=null!=e?e:this.currentVariableId,!this.variableStyles||-1===t)return null;const i=this.variableStyles.findIndex((e=>e.variableId===t));return i<0?null:this.variableStyles.at(i)}getVariable(e){let t=-1;if(t=null!=e?e:this.currentVariableId,!this.variables||-1===t)return null;const i=this.variables.findIndex((e=>e.id===t));return i<0?null:this.variables.at(i)}getVolume(e){const t=this.getVariable(e);return null!=t?this.volumes.find((({id:e})=>e===t.volumeId)):null}get timeInfo(){const e=this.getVolume(null);if("xyzt"!==e?.volumeType)return null;const t=e.timeStops;if(!t?.length)return null;const i=new Le.T({start:t[0],end:t.at(-1)});return new T.A({fullTimeExtent:i,stops:t})}getVolumeStyle(e){const t=this.getVariable(e);return null!=t?this.volumeStyles.find((({volumeId:e})=>e===t.volumeId)):null}getColorForContinuousDataValue(e,t,i){const r=this.getVariable(e);if(null==r||"continuous"!==r.renderingFormat?.continuity)return null;if(!this.variableStyles)return null;const n=this.variableStyles.findIndex((t=>t.variableId===e));if(n<0)return null;const s=this.variableStyles.at(n);return s?.transferFunction?s.transferFunction.getColorForContinuousDataValue(t,i):null}getSections(){const e=[];for(const t of this.sections)e.push(new K({enabled:t.enabled,href:t.href,id:t.id,label:t.label,normal:t.normal,point:t.point,sizeInPixel:t.sizeInPixel,slices:t.slices,timeId:t.timeId,variableId:t.variableId}));return e}getVariableStyles(){const e=[];for(const t of this.variableStyles){const i=this._getVariable(t);if(null!=i){const r=t.clone();r.isosurfaces.length>4&&(r.isosurfaces=r.isosurfaces.slice(0,3),l.A.getLogger(this).error("A maximum of 4 isosurfaces are supported for Voxel Layers."));for(const e of r.isosurfaces)if(!e.colorLocked){const t=this.getColorForContinuousDataValue(r.variableId,e.value,!1);null==t||t.equals(e.color)||(e.color=t)}if("continuous"===i.renderingFormat.continuity)(null===r.transferFunction||r.transferFunction.colorStops.length<2)&&l.A.getLogger(this).error(`VoxelVariableStyle for variable ${i.id} is invalid. At least 2 color stops are required in the transferFunction for continuous Voxel Layer variables.`),null!==r.transferFunction&&(Array.isArray(r.transferFunction.stretchRange)&&2===r.transferFunction.stretchRange.length||(l.A.getLogger(this).error(`VoxelVariableStyle for variable ${i.id} is invalid. The stretchRange of the transferFunction for continuous Voxel Layer variables must be of the form [minimumDataValue, maximumDataValue].`),r.transferFunction.stretchRange=[0,1],r.transferFunction.colorStops.removeAll()));else if("discrete"===i.renderingFormat.continuity)if(0===t.uniqueValues.length)l.A.getLogger(this).error(`VoxelVariableStyle for variable ${i.id} is invalid. Unique values are required for discrete Voxel Layer variables.`);else for(const e of t.uniqueValues)null!==e.label&&void 0!==e.label||null===e.value||void 0===e.value||(e.label=e.value.toString());e.push(r)}else l.A.getLogger(this).error(`VoxelVariable ID=${t.variableId} doesn't exist, VoxelVariableStyle for this VoxelVariable will be ignored.`)}return e}getVolumeStyles(){const e=[];for(const t of this.volumeStyles){const i=this._getVolumeFromVolumeId(t.volumeId);if(null!=i){const r=t.clone();for(const e of r.slices)this._isPlaneValid(e,[0,1,i.zDimension],i.dimensions)||(e.enabled=!1,e.label="invalid");for(const e of r.dynamicSections)this._isPlaneValid(e,[0,1,i.zDimension],i.dimensions)||(e.enabled=!1,e.label="invalid");e.push(r)}else l.A.getLogger(this).error(`VoxelVolume ID=${t.volumeId} doesn't exist, VoxelVolumeStyle for this VoxelVolume will be ignored.`)}return e}_getVariable(e){const t=e.variableId;for(const e of this.variables)if(e.id===t)return e;return null}_getVolumeFromVolumeId(e){for(const t of this.volumes)if(t.id===e)return t;return null}_isPlaneValid(e,t,i){if(!e.point)return!1;if(!Array.isArray(e.point)||3!==e.point.length)return!1;if(!e.normal)return!1;if(!Array.isArray(e.normal)||3!==e.normal.length)return!1;const r=(0,m.fA)(e.normal[0],e.normal[1],e.normal[2]);return(0,y.n)(r,r),!(Math.abs(r[0])+Math.abs(r[1])+Math.abs(r[2])<1e-6||(e.normal[0]=r[0],e.normal[1]=r[1],e.normal[2]=r[2],0))}};(0,r._)([(0,c.MZ)({type:["Voxel"]})],qe.prototype,"operationalLayerType",void 0),(0,r._)([(0,c.MZ)(Z.fV)],qe.prototype,"legendEnabled",void 0),(0,r._)([(0,c.MZ)({json:{write:!0}})],qe.prototype,"title",void 0),(0,r._)([(0,c.MZ)(Z.OZ)],qe.prototype,"url",null),(0,r._)([(0,c.MZ)({type:s.A.ofType(K),json:{origins:{"web-scene":{name:"layerDefinition.sections",write:!0}}}})],qe.prototype,"sections",void 0),(0,r._)([(0,c.MZ)({type:p.jz,json:{origins:{"web-scene":{name:"layerDefinition.style.currentVariableId",write:{enabled:!0,isRequired:!0,ignoreOrigin:!0}},service:{name:"style.currentVariableId"}}}})],qe.prototype,"currentVariableId",void 0),(0,r._)([(0,c.MZ)({type:s.A.ofType(Ee),json:{origins:{"web-scene":{name:"layerDefinition.style.volumeStyles",write:!0},service:{name:"style.volumeStyles"}}}})],qe.prototype,"volumeStyles",void 0),(0,r._)([(0,c.MZ)({type:["volume","surfaces"],json:{origins:{"web-scene":{name:"layerDefinition.style.renderMode",write:!0},service:{name:"style.renderMode"}}}})],qe.prototype,"renderMode",void 0),(0,r._)([(0,c.MZ)({type:s.A.ofType(be),json:{origins:{"web-scene":{name:"layerDefinition.style.variableStyles",write:!0},service:{name:"style.variableStyles"}}}})],qe.prototype,"variableStyles",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableSlices",write:!0},service:{name:"style.enableSlices"}}}})],qe.prototype,"enableSlices",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableSections",write:!0},service:{name:"style.enableSections"}}}})],qe.prototype,"enableSections",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableDynamicSections",write:!0},service:{name:"style.enableDynamicSections"}}}})],qe.prototype,"enableDynamicSections",void 0),(0,r._)([(0,c.MZ)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableIsosurfaces",write:!0},service:{name:"style.enableIsosurfaces"}}}})],qe.prototype,"enableIsosurfaces",void 0),(0,r._)([(0,c.MZ)({type:W,json:{origins:{"web-scene":{name:"layerDefinition.style.shading",write:!0},service:{name:"style.shading"}}}})],qe.prototype,"shading",void 0),(0,r._)([(0,c.MZ)({type:["show","hide"]})],qe.prototype,"listMode",void 0),(0,r._)([(0,c.MZ)({type:Number,range:{min:0,max:1},nonNullable:!0,json:{read:!1,write:!1,origins:{"web-scene":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],qe.prototype,"opacity",void 0),(0,r._)([(0,c.MZ)({type:s.A.ofType(ee)})],qe.prototype,"variables",void 0),(0,r._)([(0,c.MZ)({type:s.A.ofType(Ve)})],qe.prototype,"volumes",void 0),(0,r._)([(0,c.MZ)({type:ze})],qe.prototype,"index",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],qe.prototype,"minScale",void 0),(0,r._)([(0,c.MZ)({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],qe.prototype,"maxScale",void 0),(0,r._)([(0,c.MZ)({json:{read:!1},readOnly:!0})],qe.prototype,"type",void 0),(0,r._)([(0,c.MZ)({readOnly:!0,json:{name:"serviceVersion"}})],qe.prototype,"version",void 0),(0,r._)([(0,d.w)("service","version")],qe.prototype,"readVersion",null),(0,r._)([(0,c.MZ)({type:f.A})],qe.prototype,"fullExtent",void 0),(0,r._)([(0,d.w)("service","fullExtent",["fullExtent"])],qe.prototype,"readFullExtent",null),(0,r._)([(0,c.MZ)({readOnly:!0,clonable:!1,json:{read:!1}})],qe.prototype,"fields",null),(0,r._)([(0,c.MZ)({readOnly:!0})],qe.prototype,"fieldsIndex",null),(0,r._)([(0,c.MZ)({type:Boolean,json:{name:"disablePopup",read:{reader:(e,t)=>!t.disablePopup},write:{enabled:!0,ignoreOrigin:!0,writer(e,t,i){t[i]=!e}},origins:{"portal-item":{default:!0},"web-scene":{default:!0}}}})],qe.prototype,"popupEnabled",void 0),(0,r._)([(0,c.MZ)({type:n.A,json:{name:"popupInfo",write:!0}})],qe.prototype,"popupTemplate",void 0),(0,r._)([(0,c.MZ)({readOnly:!0,json:{read:!1}})],qe.prototype,"defaultPopupTemplate",null),(0,r._)([(0,c.MZ)({type:T.A,readOnly:!0,json:{read:!1}})],qe.prototype,"timeInfo",null),(0,r._)([(0,c.MZ)({type:Le.T,json:{read:!1}})],qe.prototype,"timeExtent",void 0),(0,r._)([(0,c.MZ)({type:De.T,json:{read:!1}})],qe.prototype,"timeOffset",void 0),(0,r._)([(0,c.MZ)({type:Boolean,nonNullable:!0,json:{origins:{"web-scene":{name:"timeAnimation",write:!0},service:{read:!1}}}})],qe.prototype,"useViewTime",void 0),qe=(0,r._)([(0,h.$)("esri.layers.VoxelLayer")],qe);const $e=qe},18768:(e,t,i)=>{i.d(t,{b:()=>a});var r=i(90237),n=i(53966),s=i(10107),o=(i(44208),i(87811),i(40608)),l=i(60694);const a=e=>{let t=class extends e{get title(){if(this._get("title")&&"defaults"!==this.originOf("title"))return this._get("title");if(this.url){const e=(0,l.qg)(this.url);if(e?.title)return e.title}return this._get("title")||""}set title(e){this._set("title",e)}set url(e){this._set("url",(0,l.Jf)(e,n.A.getLogger(this)))}};return(0,r._)([(0,s.MZ)()],t.prototype,"title",null),(0,r._)([(0,s.MZ)({type:String})],t.prototype,"url",null),t=(0,r._)([(0,o.$)("esri.layers.mixins.ArcGISService")],t),t}},25036:(e,t,i)=>{i.d(t,{j:()=>o});var r=i(90237),n=i(10107),s=(i(44208),i(53966),i(87811),i(40608));const o=e=>{let t=class extends e{constructor(){super(...arguments),this.minScale=0,this.maxScale=0}get effectiveScaleRange(){const e={minScale:this.minScale,maxScale:this.maxScale},t=this.parent;t&&"effectiveScaleRange"in t&&function(e,t){e.minScale=e.minScale>0?t.minScale>0?Math.min(e.minScale,t.minScale):e.minScale:t.minScale,e.maxScale=e.maxScale>0?t.maxScale>0?Math.max(e.maxScale,t.maxScale):e.maxScale:t.maxScale}(e,t.effectiveScaleRange);const i=this._get("effectiveScaleRange");return i&&i.minScale===e.minScale&&i.maxScale===e.maxScale?i:e}};return(0,r._)([(0,n.MZ)({type:Number,nonNullable:!0,json:{write:!0}})],t.prototype,"minScale",void 0),(0,r._)([(0,n.MZ)({type:Number,nonNullable:!0,json:{write:!0}})],t.prototype,"maxScale",void 0),(0,r._)([(0,n.MZ)({readOnly:!0})],t.prototype,"effectiveScaleRange",null),t=(0,r._)([(0,s.$)("esri.layers.mixins.ScaleRangeLayer")],t),t}},26253:(e,t,i)=>{i.d(t,{T:()=>p});var r=i(90237),n=i(69540),s=i(25482),o=i(88930