@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 96 kB
JavaScript
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1005,5804],{8303(e,t,r){r.d(t,{A:()=>S});var i=r(5482),n=r(92602),o=r(70333),s=r(11254),a=r(60999),l=r(49186),u=r(53966),c=r(97768),p=r(74887),d=r(84952),h=r(91429),y=r(77548),g=r(20655),m=r(80812),f=r(41318),v=r(10407),b=r(36005),w=r(43937);const S=e=>{const t=e;let S=class extends t{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}get portalItem(){return this._get("portalItem")}set portalItem(e){e!==this._get("portalItem")&&(this.removeOrigin("portal-item"),this._set("portalItem",e))}readPortalItem(e,t,r){if(t.itemId)return new m.default({id:t.itemId,portal:r?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{const{load:i}=await r.e(1204).then(r.bind(r,41204));return(0,p.Te)(t),await i({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:r,fullEdit:i},content:{updateItem:n}}=await this._fetchUserPrivileges(e,t);this._set("userHasEditingPrivileges",r),this._set("userHasFullEditingPrivileges",i),this._set("userHasUpdateItemPrivileges",n)}catch(e){(0,p.QP)(e)}}async _fetchUserPrivileges(e,t){let r=this.portalItem;if(!e||!r||!r.loaded||r.sourceUrl)return this._fetchFallbackUserPrivileges(t);const i=!o.id?.findCredential(this.url),n=e===r.id;if(n&&r.portal.user)return this._getUserPrivileges(r,i);let s,a;if(n)s=r.portal.url;else try{s=await(0,y.wI)(this.url,t)}catch(e){(0,p.QP)(e)}if(!s||!(0,d.b8)(s,r.portal.url))return this._fetchFallbackUserPrivileges(t);try{const e=null!=t?t.signal:null;a=await(o.id?.getCredential(`${s}/sharing`,{prompt:!1,signal:e}))}catch(e){(0,p.QP)(e)}const l=!0,u=!1,c=!1;if(!a)return{features:{edit:l,fullEdit:u},content:{updateItem:c}};try{if(n?await r.reload():(r=new m.default({id:e,portal:{url:s}}),await r.load(t)),r.portal.user)return this._getUserPrivileges(r,i)}catch(e){(0,p.QP)(e)}return{features:{edit:l,fullEdit:u},content:{updateItem:c}}}_getUserPrivileges(e,t){const r=(0,v.It)(e);return t&&(r.features.edit=!0),r}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?o.id?.findCredential(this.url):null;if(!t)return!0;const r=M.credential===t?M.user:await this._fetchEditingUser(e);return M.credential=t,M.user=r,null==r?.privileges||r.privileges.includes("features:user:edit")}async _fetchEditingUser(e){const t=this.portalItem?.portal?.user;if(t)return t;const r=o.id?.findServerInfo(this.url??"");if(!r?.owningSystemUrl)return null;const i=`${r.owningSystemUrl}/sharing/rest`,n=g.A.getDefault();if(n&&n.loaded&&(0,d.S8)(n.restUrl)===(0,d.S8)(i))return n.user;const l=`${i}/community/self`,u=null!=e?e.signal:null,c=await(0,a.Ke)((0,s.A)(l,{authMode:"no-prompt",query:{f:"json"},signal:u}));return c.ok?f.A.fromJSON(c.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){const r=t?.portal,i=this.portalItem?.id&&(this.portalItem.portal||g.A.getDefault());return r&&i&&!(0,d.ut)(i.restUrl,r.restUrl)?(t.messages&&t.messages.push(new l.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,i.Cg)([(0,h.MZ)({type:m.default})],S.prototype,"portalItem",null),(0,i.Cg)([(0,b.w)("web-document","portalItem",["itemId"])],S.prototype,"readPortalItem",null),(0,i.Cg)([(0,w.K)("web-document","portalItem",{itemId:{type:String}})],S.prototype,"writePortalItem",null),(0,i.Cg)([(0,h.MZ)({clonable:!1})],S.prototype,"resourceReferences",void 0),(0,i.Cg)([(0,h.MZ)({type:Boolean,readOnly:!0})],S.prototype,"userHasEditingPrivileges",void 0),(0,i.Cg)([(0,h.MZ)({type:Boolean,readOnly:!0})],S.prototype,"userHasFullEditingPrivileges",void 0),(0,i.Cg)([(0,h.MZ)({type:Boolean,readOnly:!0})],S.prototype,"userHasUpdateItemPrivileges",void 0),S=(0,i.Cg)([(0,h.$K)("esri.layers.mixins.PortalLayer")],S),S},M={credential:null,user:null}},10184(e,t,r){r.d(t,{A:()=>c});var i=r(5482),n=r(69540),o=r(25482),s=r(88930),a=r(91429),l=r(73133),u=r(93223);let c=class extends((0,n.OU)(o.o)){constructor(e){super(e),this.unit="milliseconds",this.value=0}toMilliseconds(){return(0,s.t)(this.value,this.unit,"milliseconds")}};(0,i.Cg)([(0,u.e)(l.j,{nonNullable:!0})],c.prototype,"unit",void 0),(0,i.Cg)([(0,a.MZ)({type:Number,json:{write:!0},nonNullable:!0})],c.prototype,"value",void 0),c=(0,i.Cg)([(0,a.$K)("esri.time.TimeInterval")],c)},10407(e,t,r){r.d(t,{It:()=>h,LG:()=>s,OM:()=>u,Sm:()=>c,Y:()=>a,bK:()=>l,mm:()=>d,sQ:()=>p});var i=r(91218),n=r(16930),o=r(28735);function s(e,t){if(!a(e,t)){const r=e.typeKeywords;r?r.push(t):e.typeKeywords=[t]}}function a(e,t){return!!e.typeKeywords?.includes(t)}function l(e){return a(e,d.HOSTED_SERVICE)}function u(e,t){const r=e.typeKeywords;if(r){const e=r.indexOf(t);e>-1&&r.splice(e,1)}}function c(e,t,r){r?s(e,t):u(e,t)}async function p(e){const t=e.clone().normalize();let r;if(t.length>1)for(const e of t)r?e.width>r.width&&(r=e):r=e;else r=t[0];return async function(e){const t=e.spatialReference;if(t.isWGS84)return e.clone();if(t.isWebMercator)return(0,o.ci)(e);const r=n.A.WGS84;return await(0,i.initializeProjection)(t,r),(0,i.project)(e,r)}(r)}const d={CHARTS:"Charts",DYNAMIC:"Dynamic",DEVELOPER_BASEMAP:"DeveloperBasemap",GROUP_LAYER_MAP:"Map",HOSTED_SERVICE:"Hosted Service",JSAPI:"ArcGIS API for JavaScript",LOCAL_SCENE:"ViewingMode-Local",METADATA:"Metadata",MULTI_LAYER:"Multilayer",ORIENTED_IMAGERY_LAYER:"OrientedImageryLayer",SINGLE_LAYER:"Singlelayer",SUBTYPE_GROUP_LAYER:"SubtypeGroupLayer",SUBTYPE_GROUP_TABLE:"SubtypeGroupTable",TABLE:"Table",TILED_IMAGERY:"Tiled Imagery"};function h(e){const{portal:t,isOrgItem:r,itemControl:i}=e,n=t.user?.privileges;let o=!n||n.includes("features:user:edit"),s=!!r&&!!n?.includes("features:user:fullEdit");const a="update"===i||"admin"===i;return a?s=o=!0:s&&(o=!0),{features:{edit:o,fullEdit:s},content:{updateItem:a}}}},13069(e,t,r){r.d(t,{AG:()=>a,lk:()=>n,vD:()=>s,yS:()=>o});const i="randomUUID"in crypto;function n(){if(i)return crypto.randomUUID();const e=crypto.getRandomValues(new Uint16Array(8));e[3]=4095&e[3]|16384,e[4]=16383&e[4]|32768;const t=t=>e[t].toString(16).padStart(4,"0");return t(0)+t(1)+"-"+t(2)+"-"+t(3)+"-"+t(4)+"-"+t(5)+t(6)+t(7)}function o(){return`{${n().toUpperCase()}}`}function s(){return`{${n()}}`}function a(e){const t=e.toUpperCase();return e.startsWith("{")?t:`{${t}}`}},15804(e,t,r){r.d(t,{addOrUpdateResources:()=>a,bg:()=>d,cL:()=>p,fetchResources:()=>s,removeAllResources:()=>u,removeResource:()=>l});var i=r(11254),n=r(49186),o=r(84952);async function s(e,t={},r){await e.load(r);const i=(0,o.fj)(e.itemUrl,"resources"),{start:n=1,num:s=10,sortOrder:a="asc",sortField:l="resource"}=t,u={query:{start:n,num:s,sortOrder:a,sortField:l,token:e.apiKey},signal:r?.signal},c=await e.portal.request(i,u);return{total:c.total,nextStart:c.nextStart,resources:c.resources.map(({created:t,size:r,resource:i})=>({created:new Date(t),size:r,resource:e.resourceFromPath(i)}))}}async function a(e,t,r,i){const s=new Map;for(const{resource:e,content:i,compress:o,access:a}of t){if(!e.hasPath())throw new n.A(`portal-item-resource-${r}:invalid-path`,"Resource does not have a valid path");const[t,l]=c(e.path),u=`${t}/${o??""}/${a??""}`;s.has(u)||s.set(u,{prefix:t,compress:o,access:a,files:[]}),s.get(u).files.push({fileName:l,content:i})}await e.load(i);const a=(0,o.fj)(e.userItemUrl,"add"===r?"addResources":"updateResources");for(const{prefix:t,compress:r,access:n,files:o}of s.values()){const s=25;for(let l=0;l<o.length;l+=s){const u=o.slice(l,l+s),c=new FormData;t&&"."!==t&&c.append("resourcesPrefix",t),r&&c.append("compress","true"),n&&c.append("access",n);let p=0;for(const{fileName:e,content:t}of u)c.append("file"+ ++p,t,e);c.append("f","json"),await e.portal.request(a,{method:"post",body:c,signal:i?.signal})}}}async function l(e,t,r){if(!t.hasPath())throw new n.A("portal-item-resources-remove:invalid-path","Resource does not have a valid path");await e.load(r);const i=(0,o.fj)(e.userItemUrl,"removeResources");await e.portal.request(i,{method:"post",query:{resource:t.path},signal:r?.signal}),t.portalItem=null}async function u(e,t){await e.load(t);const r=(0,o.fj)(e.userItemUrl,"removeResources");return e.portal.request(r,{method:"post",query:{deleteAll:!0},signal:t?.signal})}function c(e){const t=e.lastIndexOf("/");return-1===t?[".",e]:[e.slice(0,t),e.slice(t+1)]}async function p(e){return"blob"===e.type?e.blob:"json"===e.type?new Blob([e.jsonString],{type:"application/json"}):(await(0,i.A)(e.url,{responseType:"blob"})).data}function d(e,t){if(!e.hasPath())return null;const[r,,i]=function(e){const[t,r]=function(e){const t=(0,o.Zo)(e);return null==t?[e,""]:[e.slice(0,e.length-t.length-1),`.${t}`]}(e),[i,n]=c(t);return[i,n,r]}(e.path);return e.portalItem.resourceFromPath((0,o.fj)(r,t+i))}},18768(e,t,r){r.d(t,{b:()=>a});var i=r(5482),n=r(53966),o=r(91429),s=r(60694);const a=e=>{const t=e;let r=class extends t{get title(){if(this._get("title")&&"defaults"!==this.originOf("title"))return this._get("title");if(this.url){const e=(0,s.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,s.Jf)(e,n.A.getLogger(this)))}};return(0,i.Cg)([(0,o.MZ)()],r.prototype,"title",null),(0,i.Cg)([(0,o.MZ)({type:String})],r.prototype,"url",null),r=(0,i.Cg)([(0,o.$K)("esri.layers.mixins.ArcGISService")],r),r}},21005(e,t,r){r.r(t),r.d(t,{default:()=>Ke});var i=r(5482),n=r(37838),o=r(7762),s=r(49186),a=r(53966),l=r(25728),u=r(74887),c=r(91429),p=r(56507),d=r(35522),h=r(51850),y=r(5443),g=r(60950),m=r(89808),f=r(99959);const v=Symbol("isVoxelGraphicOrigin");var b;class w extends f.A{get[(b=v,g.ym)](){return this.layer}get[m.Q](){return this.layer}constructor(e){super(),this[b]=!0,this.type="voxel",this.layer=e}get id(){return this.layer.id}}var S=r(4146),M=r(52136),x=r(18768),C=r(69208),A=r(16131),I=r(8303),j=r(25036),Z=r(58947),R=r(60694),P=r(10873),N=r(20437),V=r(95466),T=r(96184),_=r(69540),U=r(69052),z=r(25482),O=r(87024),L=r(67026),E=r(82534),q=r(34304);const F=(0,h.vt)(),D=(0,E.vt)(),$=(0,E.vt)(),K=(0,E.vt)(),k=(0,h.fA)(0,0,1),B=(0,h.fA)(0,1,0),H=(0,h.fA)(1,0,0);function G(e){(0,d.C)(F,e),(0,d.S8)(F,F);const t=Math.atan2(F[1],F[0]),r=(0,L.x8)((0,E.vt)(),k,-t);(0,d.gL)(F,F,r);const i=-1*Math.atan2(F[2],F[0]);return[(0,q.ct)(t)+270,(0,q.ct)(i)+90]}function J(e,t){return(0,L.x8)($,k,(0,q.DF)(e-270)),(0,L.x8)(K,B,(0,q.DF)(t-90)),(0,L.lw)(D,$,K),(0,d.C)(F,H),(0,d.gL)(F,F,D),(0,d.S8)(F,F),[F[0],F[1],F[2]]}let W=class extends((0,_.OU)(z.o)){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]=G(this.normal);return U.ie.normalize((0,p.GB)(e),0,!0)}set orientation(e){const t=J(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]=G(this.normal);return U.ie.normalize((0,p.GB)(t),0,!0)}set tilt(e){const t=J(this.orientation,e);this._set("normal",t),this._set("tilt",e)}};(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{write:!0}})],W.prototype,"enabled",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],W.prototype,"label",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,c.wg)(e=>U.ie.normalize((0,p.GB)(e),0,!0))],W.prototype,"orientation",null),(0,i.Cg)([(0,c.MZ)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,c.wg)(e=>U.ie.normalize((0,p.GB)(e),0,!0))],W.prototype,"tilt",null),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],W.prototype,"normal",void 0),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],W.prototype,"point",void 0),W=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelSlice")],W);var Q=r(97159);let Y=class extends((0,_.OU)(z.o)){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]=G(this.normal);return U.ie.normalize((0,p.GB)(e),0,!0)}get tilt(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=G(this.normal);return U.ie.normalize((0,p.GB)(t),0,!0)}};(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{default:!0,write:!0}})],Y.prototype,"enabled",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{origins:{service:{read:Q.r},"web-scene":{write:{isRequired:!0}}},write:!0}}),(0,O.P)({origins:["web-scene"],type:"resource",prefix:"sections",compress:!0})],Y.prototype,"href",void 0),(0,i.Cg)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],Y.prototype,"id",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],Y.prototype,"label",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,clonable:!1,readOnly:!0,range:{min:0,max:360}})],Y.prototype,"orientation",null),(0,i.Cg)([(0,c.MZ)({type:Number,clonable:!1,readOnly:!0,range:{min:0,max:360}})],Y.prototype,"tilt",null),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],Y.prototype,"normal",void 0),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],Y.prototype,"point",void 0),(0,i.Cg)([(0,c.MZ)({type:[p.jz],json:{write:{enabled:!0,isRequired:!0}}})],Y.prototype,"sizeInPixel",void 0),(0,i.Cg)([(0,c.MZ)({type:[W],json:{write:!0}})],Y.prototype,"slices",void 0),(0,i.Cg)([(0,c.MZ)({type:p.jz,json:{default:0,write:!0}})],Y.prototype,"timeId",void 0),(0,i.Cg)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],Y.prototype,"variableId",void 0),Y=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelSection")],Y);let X=class extends z.o{constructor(){super(...arguments),this.diffuseFactor=.5,this.specularFactor=.5}};(0,i.Cg)([(0,c.MZ)({type:Number,range:{min:0,max:1},json:{default:.5,write:!0}})],X.prototype,"diffuseFactor",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,range:{min:0,max:1},json:{default:.5,write:!0}})],X.prototype,"specularFactor",void 0),X=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelSimpleShading")],X);let ee=class extends z.o{constructor(e){super(e),this.continuity=null,this.hasNoData=!1,this.noData=0,this.offset=0,this.scale=1,this.type=null}};(0,i.Cg)([(0,c.MZ)({type:["discrete","continuous"],json:{write:!0}})],ee.prototype,"continuity",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{write:!0}})],ee.prototype,"hasNoData",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:!0}})],ee.prototype,"noData",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:!0}})],ee.prototype,"offset",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:!0}})],ee.prototype,"scale",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],ee.prototype,"type",void 0),ee=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelFormat")],ee);const te=ee;let re=class extends z.o{constructor(e){super(e),this.id=null,this.description="",this.name=null,this.originalFormat=null,this.renderingFormat=null,this.unit="",this.volumeId=0,this.type=null}};(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],re.prototype,"id",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],re.prototype,"description",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],re.prototype,"name",void 0),(0,i.Cg)([(0,c.MZ)({type:te,json:{write:!0}})],re.prototype,"originalFormat",void 0),(0,i.Cg)([(0,c.MZ)({type:te,json:{write:{enabled:!0,isRequired:!0}}})],re.prototype,"renderingFormat",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],re.prototype,"unit",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:!0}})],re.prototype,"volumeId",void 0),(0,i.Cg)([(0,c.MZ)({type:["stc-hot-spot-results","stc-cluster-outlier-results","stc-estimated-bin","generic-nearest-interpolated"],json:{write:!0}})],re.prototype,"type",void 0),re=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelVariable")],re);const ie=re;var ne=r(4718),oe=r(68197);let se=class extends((0,_.OU)(z.o)){constructor(e){super(e),this.color=oe.A.fromArray([0,0,0,0]),this.value=0,this.enabled=!0,this.label="",this.colorLocked=!1}};(0,i.Cg)([(0,c.MZ)({type:oe.A,json:{type:[p.jz],write:{enabled:!0,isRequired:!0}}})],se.prototype,"color",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],se.prototype,"value",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{default:!0,write:!0}})],se.prototype,"enabled",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],se.prototype,"label",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{default:!1,write:!0}})],se.prototype,"colorLocked",void 0),se=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelIsosurface")],se);var ae=r(62885),le=r(34727);let ue=class extends((0,_.OU)(z.o)){constructor(e){super(e),this.color=null,this.position=0}};(0,i.Cg)([(0,c.MZ)({type:oe.A,json:{type:[p.jz],write:{enabled:!0,isRequired:!0}}})],ue.prototype,"color",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],ue.prototype,"position",void 0),ue=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelColorStop")],ue);const ce=ue;let pe=class extends((0,_.OU)(z.o)){constructor(e){super(e),this.opacity=1,this.position=0}};(0,i.Cg)([(0,c.MZ)({type:Number,json:{name:"alpha",write:{enabled:!0,isRequired:!0}}})],pe.prototype,"opacity",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],pe.prototype,"position",void 0),pe=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelOpacityStop")],pe);const de=pe;let he=class extends((0,_.OU)(z.o)){constructor(e){super(e),this.enabled=!1,this.range=null}};(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{default:!1,write:!0}})],he.prototype,"enabled",void 0),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],he.prototype,"range",void 0),he=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelRangeFilter")],he);const ye=he;let ge=class extends((0,_.OU)(z.o)){constructor(e){super(e),this.interpolation=null,this.stretchRange=null,this.rangeFilter=null,this._colorMapSize=256,this.colorStops=new(o.A.ofType(ce)),this.opacityStops=new(o.A.ofType(de))}set colorStops(e){this._set("colorStops",(0,ae.V)(e,this._get("colorStops"),o.A.ofType(ce)))}set opacityStops(e){this._set("opacityStops",(0,ae.V)(e,this._get("opacityStops"),o.A.ofType(de)))}getPreviousNext(e,t,r){let i=e;for(;--i>0&&t[i].type!==r&&3!==t[i].type;);let n=e;const o=t.length;for(;++n<o&&t[n].type!==r&&3!==t[n].type;);return[i,n]}get rasterizedTransferFunction(){const e=[];if(this.colorStops.length<2)return e;const t=[],r=[];for(const t of this.colorStops){if(!t.color)return e;r.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:1})}if(0===this.opacityStops.length)for(const e of r)t.push({color:e.color,position:e.position});else{for(const e of this.opacityStops){const t=(0,le.qE)(e.position,0,1),i=Math.round(255*(0,le.qE)(1-e.opacity,0,1));let n=!1;for(const e of r)if(1===e.type&&Math.abs(e.position-t)<1e-5){e.color.a=i,e.type=3,n=!0;break}n||r.push({color:{r:0,g:0,b:0,a:i},position:e.position,type:2})}r.sort((e,t)=>e.position<t.position?-1:1);const e=r.length;for(let t=0;t<e;++t){const i=r[t];if(3!==i.type)if(1===i.type){const[n,o]=this.getPreviousNext(t,r,2);if(-1!==n&&o!==e){const e=(i.position-r[n].position)/(r[o].position-r[n].position);i.color.a=Math.round((0,le.Cc)(r[n].color.a,r[o].color.a,e))}else i.color.a=-1!==n?r[n].color.a:r[o].color.a}else{const[n,o]=this.getPreviousNext(t,r,1);if(-1!==n&&o!==e){const e=(i.position-r[n].position)/(r[o].position-r[n].position),t=r[n].color,s=r[o].color;fe.forEach(r=>{i.color[r]=Math.round((0,le.Cc)(t[r],s[r],e))})}else-1!==n?fe.forEach(e=>{i.color[e]=r[n].color[e]}):fe.forEach(e=>{i.color[e]=r[o].color[e]})}}for(const e of r)t.push({color:e.color,position:e.position})}t[0].position=0,t[t.length-1].position=1;let i=0,n=1;for(let r=0;r<this._colorMapSize;++r){const o=r/this._colorMapSize;for(;o>t[n].position;)i=n++;const s=(o-t[i].position)/(t[n].position-t[i].position),a=t[i].color,l=t[n].color,u=new oe.A;fe.forEach(e=>{u[e]=Math.round((0,le.Cc)(a[e],l[e],s))}),u.a=(0,le.qE)(1-(0,le.Cc)(a.a,l.a,s)/255,0,1),e.push(u)}return e}getColorForContinuousDataValue(e,t){const r=this.rasterizedTransferFunction;if(this.colorStops.length<2||!Array.isArray(this.stretchRange)||this.stretchRange.length<2||r.length<256)return null;let i=this.stretchRange[0],n=this.stretchRange[1];if(i>n){const e=i;i=n,n=e}e=(0,le.qE)(e,i,n);const o=r[Math.round((e-i)/(n-i)*(this._colorMapSize-1))].clone();return t||(o.a=1),o}};(0,i.Cg)([(0,c.MZ)({type:["linear","nearest"],json:{write:!0}})],ge.prototype,"interpolation",void 0),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],ge.prototype,"stretchRange",void 0),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(ce),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.colorStops&&this.colorStops.length>0}}}}})],ge.prototype,"colorStops",null),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(de),json:{read:{source:"alphaStops"},write:{enabled:!0,target:"alphaStops",overridePolicy(){return{enabled:!!this.opacityStops&&this.opacityStops.length>0}}}}})],ge.prototype,"opacityStops",null),(0,i.Cg)([(0,c.MZ)({type:ye,json:{write:!0}})],ge.prototype,"rangeFilter",void 0),(0,i.Cg)([(0,c.MZ)({type:[oe.A],clonable:!1,json:{read:!1}})],ge.prototype,"rasterizedTransferFunction",null),ge=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelTransferFunctionStyle")],ge);const me=ge,fe=["r","g","b"];let ve=class extends((0,_.OU)(z.o)){constructor(e){super(e),this.color=oe.A.fromArray([0,0,0,0]),this.value=0,this.enabled=!0,this.label=""}};var be;(0,i.Cg)([(0,c.MZ)({type:oe.A,json:{type:[p.jz],write:{enabled:!0,isRequired:!0}}})],ve.prototype,"color",void 0),(0,i.Cg)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],ve.prototype,"value",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{default:!0,write:!0}})],ve.prototype,"enabled",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],ve.prototype,"label",void 0),ve=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelUniqueValue")],ve);let we=be=class extends z.o{constructor(e){super(e),this.variableId=0,this.label="",this.transferFunction=null,this.uniqueValues=null,this.isosurfaces=null,this.uniqueValues=new(o.A.ofType(ve)),this.isosurfaces=new(o.A.ofType(se))}clone(){return new be({variableId:this.variableId,label:this.label,transferFunction:(0,ne.o8)(this.transferFunction),uniqueValues:(0,ne.o8)(this.uniqueValues),isosurfaces:(0,ne.o8)(this.isosurfaces)})}};(0,i.Cg)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],we.prototype,"variableId",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],we.prototype,"label",void 0),(0,i.Cg)([(0,c.MZ)({type:me,json:{write:{enabled:!0,overridePolicy(){return{enabled:!this.uniqueValues||this.uniqueValues.length<1}}}}})],we.prototype,"transferFunction",void 0),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(ve),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.uniqueValues&&this.uniqueValues.length>0}}}}})],we.prototype,"uniqueValues",void 0),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(se),json:{write:{enabled:!0,overridePolicy(){const e=!this.uniqueValues||this.uniqueValues.length<1,t=!!this.isosurfaces&&this.isosurfaces.length>0;return{enabled:e&&t}}}}})],we.prototype,"isosurfaces",void 0),we=be=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelVariableStyle")],we);var Se=r(88930),Me=r(86738),xe=r(16930),Ce=r(21325);function Ae(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[,r,i,n,o,s,a,l,u,c,p,d,h]=t;let y="seconds";const g=r.charAt(0).toLowerCase();"d"===g?y="days":"h"===g?y="hours":"m"===g&&(y="minutes");const m=parseInt(i,10);if(Number.isNaN(m))return{didParse:!1};const f=parseInt(n,10);if(Number.isNaN(f)||f<1||f>12)return{didParse:!1};const v=parseInt(o,10);if(Number.isNaN(v)||v<1||v>31)return{didParse:!1};if(2===f){const e=m%4==0&&(m%100!=0||m%400==0);if(e&&v>29||!e&&v>28)return{didParse:!1}}else if((4===f||6===f||9===f||11===f)&&v>30)return{didParse:!1};const b=parseInt(s,10);if(Number.isNaN(b)||b<0||b>23)return{didParse:!1};const w=parseInt(a,10);if(Number.isNaN(w)||w<0||w>59)return{didParse:!1};const S=parseInt(l,10);if(Number.isNaN(S)||S<0||S>59)return{didParse:!1};let M=1,x=0,C=0;if(p&&(M="-"===p?-1:1),d){if(x=parseInt(d,10),Number.isNaN(x)||x<0)return{didParse:!1};if(0!==x){const e=M*x;if(e<-12||e>14)return{didParse:!1}}}if(h&&(C=parseInt(h,10),Number.isNaN(C)||C<0||C>59))return{didParse:!1};const A=`${m}`.padStart(4,"0"),I=`${f}`.padStart(2,"0"),j=`${v}`.padStart(2,"0"),Z=`${b}`.padStart(2,"0"),R=`${w}`.padStart(2,"0"),P=`${S}`.padStart(2,"0");let N="Z";return 0===x&&0===C||(N=M>0?"+":"-",N+=`${x}`.padStart(2,"0"),N+=":",N+=`${C}`.padStart(2,"0")),{didParse:!0,unit:y,reference:new Date(`${A}-${I}-${j}T${Z}:${R}:${P}.000${N}`)}}let Ie=class extends z.o{constructor(){super(...arguments),this.values=null}};(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:!0}})],Ie.prototype,"values",void 0),Ie=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelIrregularSpacing")],Ie);const je=Ie;let Ze=class extends z.o{constructor(){super(...arguments),this.scale=1,this.offset=0}};(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:!0}})],Ze.prototype,"scale",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:!0}})],Ze.prototype,"offset",void 0),Ze=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelRegularSpacing")],Ze);const Re=Ze;let Pe=class extends z.o{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,i.Cg)([(0,c.MZ)({type:je,json:{write:!0}})],Pe.prototype,"irregularSpacing",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{write:!0}})],Pe.prototype,"isPositiveUp",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{write:!0}})],Pe.prototype,"isWrappedDateLine",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],Pe.prototype,"label",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],Pe.prototype,"name",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],Pe.prototype,"quantity",void 0),(0,i.Cg)([(0,c.MZ)({type:Re,json:{write:!0}})],Pe.prototype,"regularSpacing",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:!0}})],Pe.prototype,"size",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],Pe.prototype,"unit",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{read:!1}})],Pe.prototype,"isRegular",null),Pe=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelDimension")],Pe);const Ne=Pe;let Ve=class extends z.o{constructor(e){super(e),this.id=0,this.dimensions=null,this.spatialReference=xe.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(),r=this.dimensions[2],i=r.isRegular?r.getRange():[0,r.size];return[e[0],t[0],i[0]]}get voxelSizeInLayerSpaceSigned(){if(!this.isValid||"xyt"===this.volumeType)return[0,0,0];const e=this.dimensions[0].getRange(),t=this.dimensions[1].getRange(),r=this.dimensions[2],i=r.isRegular?r.getRange():[0,r.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 r.isRegular&&!r.isPositiveUp&&(n[2]*=-1),[(e[1]-e[0])/n[0],(t[1]-t[0])/n[1],(i[1]-i[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=Ae(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=[],r=Ae(e.unit);if(r.didParse)if(e.isRegular){const i=e.regularSpacing?.offset??0,n=e.regularSpacing?.scale||1;for(let o=0;o<e.size;++o){const e=i+n*o;t.push((0,Se.mi)(r.reference,e,r.unit))}}else if(Array.isArray(e.irregularSpacing?.values)&&e.irregularSpacing.values.length>0)for(let i=0;i<e.irregularSpacing.values.length;++i){const n=e.irregularSpacing.values[i];t.push((0,Se.mi)(r.reference,n,r.unit))}return t}computeVoxelSpaceLocation(e){if(!this.isValid)return[0,0,0];if("xyt"===this.volumeType)return a.A.getLogger(this).error("computeVoxelSpacePosition cannot be used with XYT volumes."),[0,0,0];if(!(0,Ce.aI)(this.spatialReference,e.spatialReference))return a.A.getLogger(this).error("pos argument should have the same spatial reference as the VoxelLayer."),[0,0,0];const t=(0,h.fA)(e.x,e.y,e.z??0);(0,d.Re)(t,t,this.originInLayerSpace3D),(0,d.Qr)(t,t,this.voxelSizeInLayerSpaceSigned);const r=this.dimensions[this.zDimension];if(!r.isRegular&&Array.isArray(r.irregularSpacing?.values)&&r.irregularSpacing.values.length>1){const i=e.z??0,n=r.irregularSpacing.values,o=r.isPositiveUp?1:-1,s=n.reduce((e,t)=>Math.abs(o*t-i)<Math.abs(o*e-i)?t:e);for(let e=0;e<n.length;++e)if(n[e]===s){t[2]=e;break}}return[t[0],t[1],t[2]]}computeLayerSpaceLocation(e){if(!this.isValid)return new Me.A({x:0,y:0,spatialReference:this.spatialReference});const t=(0,h.ci)(e);if((0,d.lw)(t,t,this.voxelSizeInLayerSpaceSigned),(0,d.WQ)(t,t,this.originInLayerSpace3D),"xyt"===this.volumeType)return new Me.A({x:t[0],y:t[1],spatialReference:this.spatialReference});const r=this.dimensions[this.zDimension];return r.isRegular||Array.isArray(r.irregularSpacing?.values)&&(e[2]<0?t[2]=r.irregularSpacing.values[0]:e[2]<r.irregularSpacing.values.length?t[2]=r.irregularSpacing.values[e[2]]:t[2]=r.irregularSpacing.values[r.irregularSpacing.values.length-1],r.isPositiveUp||(t[2]*=-1)),new Me.A({x:t[0],y:t[1],z:t[2],spatialReference:this.spatialReference})}};var Te;(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],Ve.prototype,"id",void 0),(0,i.Cg)([(0,c.MZ)({type:[Ne],json:{write:{enabled:!0,isRequired:!0}}})],Ve.prototype,"dimensions",void 0),(0,i.Cg)([(0,c.MZ)({type:xe.A,json:{read:{enabled:!1}}})],Ve.prototype,"spatialReference",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{read:!1}})],Ve.prototype,"zDimension",null),(0,i.Cg)([(0,c.MZ)({type:[Boolean],json:{read:!1}})],Ve.prototype,"isValid",null),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{read:!1}})],Ve.prototype,"originInLayerSpace3D",null),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{read:!1}})],Ve.prototype,"voxelSizeInLayerSpaceSigned",null),(0,i.Cg)([(0,c.MZ)({type:["xyz","xyzt","xyt"],json:{read:{enabled:!1}}})],Ve.prototype,"volumeType",null),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{read:!1}})],Ve.prototype,"sizeInVoxels",null),(0,i.Cg)([(0,c.MZ)({type:[Date],json:{read:!1,write:!1}})],Ve.prototype,"timeStops",null),Ve=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelVolume")],Ve);let _e=Te=class extends z.o{constructor(){super(...arguments),this.apronWidth=1,this.brickSize=[32,32,32],this.maxLodLevel=0,this.nodeSize=[4,4,4]}isValid(){const e=new Te;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,i.Cg)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],_e.prototype,"apronWidth",void 0),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],_e.prototype,"brickSize",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],_e.prototype,"maxLodLevel",void 0),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],_e.prototype,"nodeSize",void 0),_e=Te=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelVolumeIndex")],_e);const Ue=_e;let ze=class extends((0,_.OU)(z.o)){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]=G(this.normal);return U.ie.normalize((0,p.GB)(e),0,!0)}set orientation(e){const t=J(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]=G(this.normal);return U.ie.normalize((0,p.GB)(t),0,!0)}set tilt(e){const t=J(this.orientation,e);this._set("normal",t),this._set("tilt",e)}};var Oe;(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{default:!0,write:!0}})],ze.prototype,"enabled",void 0),(0,i.Cg)([(0,c.MZ)({type:String,json:{write:!0}})],ze.prototype,"label",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,c.wg)(e=>U.ie.normalize((0,p.GB)(e),0,!0))],ze.prototype,"orientation",null),(0,i.Cg)([(0,c.MZ)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,c.wg)(e=>U.ie.normalize((0,p.GB)(e),0,!0))],ze.prototype,"tilt",null),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],ze.prototype,"normal",void 0),(0,i.Cg)([(0,c.MZ)({type:[Number],json:{write:{isRequired:!0}}})],ze.prototype,"point",void 0),ze=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelDynamicSection")],ze);let Le=Oe=class extends z.o{constructor(e){super(e),this.volumeId=0,this.verticalExaggeration=1,this.exaggerationMode="scale-height",this.verticalOffset=0,this.slices=new(o.A.ofType(W)),this.dynamicSections=new(o.A.ofType(ze))}set slices(e){this._set("slices",(0,ae.V)(e,this._get("slices"),o.A.ofType(W)))}set dynamicSections(e){this._set("dynamicSections",(0,ae.V)(e,this._get("dynamicSections"),o.A.ofType(ze)))}clone(){return new Oe({volumeId:this.volumeId,verticalExaggeration:this.verticalExaggeration,exaggerationMode:this.exaggerationMode,verticalOffset:this.verticalOffset,slices:(0,ne.o8)(this.slices),dynamicSections:(0,ne.o8)(this.dynamicSections)})}};(0,i.Cg)([(0,c.MZ)({type:p.jz,json:{write:{enabled:!0,isRequired:!0}}})],Le.prototype,"volumeId",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{default:1,write:!0}})],Le.prototype,"verticalExaggeration",void 0),(0,i.Cg)([(0,c.MZ)({type:["scale-position","scale-height"],json:{default:"scale-height",write:!0}})],Le.prototype,"exaggerationMode",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{default:0,write:!0}})],Le.prototype,"verticalOffset",void 0),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(W),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.slices&&this.slices.length>0}}}}})],Le.prototype,"slices",null),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(ze),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.dynamicSections&&this.dynamicSections.length>0}}}}})],Le.prototype,"dynamicSections",null),Le=Oe=(0,i.Cg)([(0,c.$K)("esri.layers.voxel.VoxelVolumeStyle")],Le);var Ee=r(30291),qe=r(79677),Fe=r(10184),De=r(36005);let $e=class extends((0,Z.w6)((0,x.b)((0,A.q)((0,I.A)((0,j.j)((0,l.M)((0,C.d)((0,M.p)(S.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.graphicOrigin=new w(this),this.shading=new X,this.opacity=1,this.variables=new o.A,this.volumes=new o.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(o.A.ofType(Le)),this.variableStyles=new(o.A.ofType(we)),this.sections=new(o.A.ofType(Y))}normalizeCtorArgs(e){return e?.constantUpscaling&&(this.test={constantUpscaling:!0},delete e.constantUpscaling),e}set url(e){this._set("url",(0,R.Jf)(e,a.A.getLogger(this)))}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Scene Service"]},e).catch(u.QP).then(()=>this._fetchService(t)).then(()=>this.serviceRoot=this.url);return this.addResolvingPromise(r),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 s.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 s.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 s.A("layer:service-version-too-new","Service version is too new.",{serviceVersion:this.version.versionString,supportedVersions:"3.x"})}readFullExtent(e,t,r){if(null!=e&&"object"==typeof e){const i=y.A.fromJSON(e,r);if(0===i.zmin&&0===i.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,r=t.regularSpacing.offset+t.regularSpacing.scale*(t.size-1);if(e>r){const t=e;e=r,r=t}i.zmin=e,i.zmax=r}}}return i}return null}get fields(){const e=[new N.A({name:"Voxel.Position",alias:"Voxel Position",domain:null,editable:!1,length:128,type:"string"}),new N.A({name:"Voxel.CurrentVariable",alias:"Current Variable",domain:null,editable:!1,length:128,type:"string"})];for(const t of this.variables){const r=new N.A({name:t.name,alias:t.description,domain:null,editable:!1,length:128,type:"discrete"===t.renderingFormat.continuity?"string":"double"});e.push(r)}const t=this.getVolume(null);if(null!=t){if("xyzt"===t.volumeType||"xyt"===t.volumeType){const t=new N.A({name:"Voxel.LocalTime",alias:"Local Time",domain:null,editable:!1,length:256,type:"date"});e.push(t);const r=new N.A({name:"Voxel.SourceTime",alias:"Source Time",domain:null,editable:!1,length:256,type:"string"});e.push(r)}if("xyt"!==t.volumeType){const t=new N.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 V.A(this.fields):null}getField(e){return this.fieldsIndex?.get(e)}get defaultPopupTemplate(){return this.createPopupTemplate()}createPopupTemplate(e){const t=this.fields;return(0,Ee.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 r=this.variableStyles.findIndex(e=>e.variableId===t);return r<0?null:this.variableStyles.at(r)}getVariable(e){let t=-1;if(t=null!=e?e:this.currentVariableId,!this.variables||-1===t)return null;const r=this.variables.findIndex(e=>e.id===t);return r<0?null:this.variables.at(r)}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 r=new qe.A({start:t[0],end:t.at(-1)});return new T.A({fullTimeExtent:r,stops:t})}getVolumeStyle(e){const t=this.getVariable(e);return null!=t?this.volumeStyles.find(({volumeId:e})=>e===t.volumeId):null}getColorForContinuousDataValue(e,t,r){const i=this.getVariable(e);if(null==i||"continuous"!==i.renderingFormat?.continuity)return null;if(!this.variableStyles)return null;const n=this.variableStyles.findIndex(t=>t.variableId===e);if(n<0)return null;const o=this.variableStyles.at(n);return o?.transferFunction?o.transferFunction.getColorForContinuousDataValue(t,r):null}getSections(){const e=[];for(const t of this.sections)e.push(new Y({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 r=this._getVariable(t);if(null!=r){const i=t.clone();i.isosurfaces.length>4&&(i.isosurfaces=i.isosurfaces.slice(0,3),a.A.getLogger(this).error("A maximum of 4 isosurfaces are supported for Voxel Layers."));for(const e of i.isosurfaces)if(!e.colorLocked){const t=this.getColorForContinuousDataValue(i.variableId,e.value,!1);null==t||t.equals(e.color)||(e.color=t)}if("continuous"===r.renderingFormat.continuity)(null===i.transferFunction||i.transferFunction.colorStops.length<2)&&a.A.getLogger(this).error(`VoxelVariableStyle for variable ${r.id} is invalid. At least 2 color stops are required in the transferFunction for continuous Voxel Layer variables.`),null!==i.transferFunction&&(Array.isArray(i.transferFunction.stretchRange)&&2===i.transferFunction.stretchRange.length||(a.A.getLogger(this).error(`VoxelVariableStyle for variable ${r.id} is invalid. The stretchRange of the transferFunction for continuous Voxel Layer variables must be of the form [minimumDataValue, maximumDataValue].`),i.transferFunction.stretchRange=[0,1],i.transferFunction.colorStops.removeAll()));else if("discrete"===r.renderingFormat.continuity)if(0===t.uniqueValues.length)a.A.getLogger(this).error(`VoxelVariableStyle for variable ${r.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(i)}else a.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 r=this._getVolumeFromVolumeId(t.volumeId);if(null!=r){const i=t.clone();for(const e of i.slices)this._isPlaneValid(e,[0,1,r.zDimension],r.dimensions)||(e.enabled=!1,e.label="invalid");for(const e of i.dynamicSections)this._isPlaneValid(e,[0,1,r.zDimension],r.dimensions)||(e.enabled=!1,e.label="invalid");e.push(i)}else a.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,r){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 i=(0,h.fA)(e.normal[0],e.normal[1],e.normal[2]);return(0,d.S8)(i,i),!(Math.abs(i[0])+Math.abs(i[1])+Math.abs(i[2])<1e-6||(e.normal[0]=i[0],e.normal[1]=i[1],e.normal[2]=i[2],0))}};(0,i.Cg)([(0,c.MZ)({type:["Voxel"]})],$e.prototype,"operationalLayerType",void 0),(0,i.Cg)([(0,c.MZ)(P.fV)],$e.prototype,"legendEnabled",void 0),(0,i.Cg)([(0,c.MZ)({json:{write:!0}})],$e.prototype,"title",void 0),(0,i.Cg)([(0,c.MZ)(P.OZ)],$e.prototype,"url",null),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(Y),json:{origins:{"web-scene":{name:"layerDefinition.sections",write:!0}}}})],$e.prototype,"sections",void 0),(0,i.Cg)([(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"}}}})],$e.prototype,"currentVariableId",void 0),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(Le),json:{origins:{"web-scene":{name:"layerDefinition.style.volumeStyles",write:!0},service:{name:"style.volumeStyles"}}}})],$e.prototype,"volumeStyles",void 0),(0,i.Cg)([(0,c.MZ)({type:["volume","surfaces"],json:{origins:{"web-scene":{name:"layerDefinition.style.renderMode",write:!0},service:{name:"style.renderMode"}}}})],$e.prototype,"renderMode",void 0),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(we),json:{origins:{"web-scene":{name:"layerDefinition.style.variableStyles",write:!0},service:{name:"style.variableStyles"}}}})],$e.prototype,"variableStyles",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableSlices",write:!0},service:{name:"style.enableSlices"}}}})],$e.prototype,"enableSlices",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableSections",write:!0},service:{name:"style.enableSections"}}}})],$e.prototype,"enableSections",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableDynamicSections",write:!0},service:{name:"style.enableDynamicSections"}}}})],$e.prototype,"enableDynamicSections",void 0),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableIsosurfaces",write:!0},service:{name:"style.enableIsosurfaces"}}}})],$e.prototype,"enableIsosurfaces",void 0),(0,i.Cg)([(0,c.MZ)({readOnly:!0})],$e.prototype,"graphicOrigin",void 0),(0,i.Cg)([(0,c.MZ)({type:X,json:{origins:{"web-scene":{name:"layerDefinition.style.shading",write:!0},service:{name:"style.shading"}}}})],$e.prototype,"shading",void 0),(0,i.Cg)([(0,c.MZ)({type:["show","hide"]})],$e.prototype,"listMode",void 0),(0,i.Cg)([(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}}}})],$e.prototype,"opacity",void 0),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(ie)})],$e.prototype,"variables",void 0),(0,i.Cg)([(0,c.MZ)({type:o.A.ofType(Ve)})],$e.prototype,"volumes",void 0),(0,i.Cg)([(0,c.MZ)({type:Ue})],$e.prototype,"index",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],$e.prototype,"minScale",void 0),(0,i.Cg)([(0,c.MZ)({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],$e.prototype,"maxScale",void 0),(0,i.Cg)([(0,c.MZ)({json:{read:!1},readOnly:!0})],$e.prototype,"type",void 0),(0,i.Cg)([(0,c.MZ)({readOnly:!0,json:{name:"serviceVersion"}})],$e.prototype,"version",void 0),(0,i.Cg)([(0,De.w)("service","version")],$e.prototype,"readVersion",null),(0,i.Cg)([(0,c.MZ)({type:y.A})],$e.prototype,"fullExtent",void 0),(0,i.Cg)([(0,De.w)("service","fullExtent",["fullExtent"])],$e.prototype,"readFullExtent",null),(0,i.Cg)([(0,c.MZ)({readOnly:!0,clonable:!1,json:{read:!1}})],$e.prototype,"fields",null),(0,i.Cg)([(0,c.MZ)({readOnly:!0})],$e.prototype,"fieldsIndex",null),(0,i.Cg)([(0,c.MZ)({type:Boolean,json:{name:"disablePopup",read:{reader:(e,t)=>!t.disablePopup},write:{enabled:!0,ignoreOrigin:!0,writer(e,t,r){t[r]=!e}},origins:{"portal-item":{default:!0},"web-scene":{default:!0}}}})],$e.prototype,"popupEnabled",void 0),(0,i.Cg)([(0,c.MZ)({type:n.A,json:{name:"popupInfo",write:!0}})],$e.prototype,"popupTemplate",void 0),(0,i.Cg)([(0,c.MZ)({readOnly:!0,json:{read:!1}})],$e.prototype,"defaultPopupTemplate",null),(0,i.Cg)([(0,c.MZ)({type:T.A,readOnly:!0,json:{read:!1}})],$e.prototype,"timeInfo",null),(0,i.Cg)([(0,c.MZ)({type:qe.A,json:{read:!1}})],$e.prototype,"timeExtent",void 0),(0,i.Cg)([(0,c.MZ)({type:Fe.A,json:{read:!1}})],$e.prototype,"timeOffset",void 0),(0,i.Cg)([(0,c.MZ)