(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2df33656","chunk-2d22611c"],{2698:function(e,t,r){"use strict";function i(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,"a",(function(){return i}))},"6e36":function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var i=r("2eab"),o=r("ce50"),s=r("b2b2");async function a(e,t,r,a,n,l){let c=null;if(Object(s["k"])(r)){const t=e+"/nodepages/",o=t+Math.floor(r.rootIndex/r.nodesPerPage);try{return{type:"page",rootPage:(await Object(i["default"])(o,{query:{f:"json",token:a},responseType:"json",signal:l})).data,rootIndex:r.rootIndex,pageSize:r.nodesPerPage,lodMetric:r.lodSelectionMetricType,urlPrefix:t}}catch(u){Object(s["k"])(n)&&n.warn("#fetchIndexInfo()","Failed to load root node page. Falling back to node documents.",o,u),c=u}}if(!t)return null;const p=e+"/nodes/",b=p+(t&&t.split("/").pop());try{return{type:"node",rootNode:(await Object(i["default"])(b,{query:{f:"json",token:a},responseType:"json",signal:l})).data,urlPrefix:p}}catch(u){throw new o["a"]("sceneservice:root-node-missing","Root node missing.",{pageError:c,nodeError:u,url:b})}}},"96ae":function(e,t,r){"use strict";r.d(t,"a",(function(){return k})),r.d(t,"b",(function(){return T}));var i=r("a4ee"),o=r("2eab"),s=r("ce50"),a=(r("c120"),r("e92d")),n=r("b2b2"),l=r("f4cc"),c=r("e041"),p=r("59b2"),b=(r("b50f"),r("cea0"),r("afcf")),u=r("d386"),d=r("09db"),y=r("ca81"),h=r("3af1"),j=r("e64d"),O=r("5996"),m=r("54b4"),v=r("22f4"),f=r("6e36"),g=r("0224"),w=r("a7e1"),S=r("792b"),x=r("8eed"),I=r("e6a6");async function _(e,t,r){if(!t||!t.resources)return;const i=t.portalItem===e.portalItem?new Set(e.paths):new Set;e.paths.length=0,e.portalItem=t.portalItem;const o=new Set(t.resources.toKeep.map(e=>e.resource.path)),a=new Set,n=[];o.forEach(t=>{i.delete(t),e.paths.push(t)});for(const s of t.resources.toUpdate)if(i.delete(s.resource.path),o.has(s.resource.path)||a.has(s.resource.path)){const{resource:t,content:i,finish:o,error:a}=s,l=Object(I["getSiblingOfSameTypeI"])(t,Object(x["a"])());e.paths.push(l.path),n.push(V({resource:l,content:i,finish:o,error:a},r))}else e.paths.push(s.resource.path),n.push(R(s,r)),a.add(s.resource.path);for(const s of t.resources.toAdd)n.push(V(s,r)),e.paths.push(s.resource.path);if(i.forEach(e=>{const r=t.portalItem.resourceFromPath(e);n.push(r.portalItem.removeResource(r).catch(()=>{}))}),0===n.length)return;const c=await Object(l["j"])(n);Object(l["v"])(r);const p=c.filter(e=>"error"in e).map(e=>e.error);if(p.length>0)throw new s["a"]("save:resources","Failed to save one or more resources",{errors:p})}async function V(e,t){const r=await Object(S["d"])(e.resource.portalItem.addResource(e.resource,e.content,t));if(!0!==r.ok)throw e.error&&e.error(r.error),r.error;e.finish&&e.finish(e.resource)}async function R(e,t){const r=await Object(S["d"])(e.resource.update(e.content,t));if(!0!==r.ok)throw e.error(r.error),r.error;e.finish(e.resource)}const N=a["a"].getLogger("esri.layers.mixins.SceneService"),T=e=>{let t=class extends e{constructor(){super(...arguments),this.spatialReference=null,this.fullExtent=null,this.heightModelInfo=null,this.minScale=0,this.maxScale=0,this.version={major:Number.NaN,minor:Number.NaN,versionString:""},this.copyright=null,this.sublayerTitleMode="item-title",this.title=null,this.layerId=null,this.indexInfo=null,this._debouncedSaveOperations=Object(l["i"])(async(e,t,r)=>{switch(e){case k.SAVE:return this._save(t);case k.SAVE_AS:return this._saveAs(r,t)}})}readSpatialReference(e,t){return this._readSpatialReference(t)}_readSpatialReference(e){if(null!=e.spatialReference)return O["a"].fromJSON(e.spatialReference);{const t=e.store,r=t.indexCRS||t.geographicCRS,i=r&&parseInt(r.substring(r.lastIndexOf("/")+1,r.length),10);return null!=i?new O["a"](i):null}}readFullExtent(e,t,r){if(null!=e&&"object"==typeof e){const i=null==e.spatialReference?{...e,spatialReference:this._readSpatialReference(t)}:e;return h["a"].fromJSON(i,r)}const i=t.store,o=this._readSpatialReference(t);return null==o||null==i||null==i.extent||!Array.isArray(i.extent)||i.extent.some(e=>e
=2&&(t.major=parseInt(r[0],10),t.minor=parseInt(r[1],10)),t}readVersion(e,t){const r=t.store,i=null!=r.version?r.version.toString():"";return this.parseVersionString(i)}readTitlePortalItem(e){return"item-title"!==this.sublayerTitleMode?void 0:e}readTitleService(e,t){const r=this.portalItem&&this.portalItem.title;if("item-title"===this.sublayerTitleMode)return Object(m["i"])(this.url,t.name);let i=t.name;if(!i&&this.url){const e=Object(m["e"])(this.url);Object(n["k"])(e)&&(i=e.title)}return"item-title-and-service-name"===this.sublayerTitleMode&&r&&(i=r+" - "+i),Object(m["a"])(i)}set url(e){const t=Object(m["h"])({layer:this,url:e,nonStandardUrlAllowed:!1,logger:N});this._set("url",t.url),null!=t.layerId&&this._set("layerId",t.layerId)}writeUrl(e,t,r,i){Object(m["j"])(this,e,"layers",t,i)}get parsedUrl(){const e=this._get("url");if(!e)return null;const t=Object(c["M"])(e);return null!=this.layerId&&(t.path=`${t.path}/layers/${this.layerId}`),t}async _fetchIndexAndUpdateExtent(e,t){this.indexInfo=Object(f["a"])(this.parsedUrl.path,this.rootNode,e,this.apiKey,N,t),null==this.fullExtent||this.fullExtent.hasZ||this._updateExtent(await this.indexInfo)}_updateExtent(e){if("page"===(null==e?void 0:e.type)){var t,r;const i=e.rootIndex%e.pageSize,o=null==(t=e.rootPage)||null==(r=t.nodes)?void 0:r[i];if(null==o||null==o.obb||null==o.obb.center||null==o.obb.halfSize)throw new s["a"]("sceneservice:invalid-node-page","Invalid node page.");if(o.obb.center[0]
0)return t.data.layers[0].id}async _fetchServiceLayer(e){const t=await Object(o["default"])(this.parsedUrl.path,{query:{f:"json",token:this.apiKey},responseType:"json",signal:e});t.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));let r=!1;if(t.data.layerType&&"Voxel"===t.data.layerType&&(r=!0),r)return this._fetchVoxelServiceLayer();const i=t.data;this.read(i,{origin:"service",url:this.parsedUrl}),this.validateLayer(i)}async _fetchVoxelServiceLayer(e){const t=(await Object(o["default"])(this.parsedUrl.path+"/layer",{query:{f:"json",token:this.apiKey},responseType:"json",signal:e})).data;this.read(t,{origin:"service",url:this.parsedUrl}),this.validateLayer(t)}async _ensureLoadBeforeSave(){await this.load(),"beforeSave"in this&&"function"==typeof this.beforeSave&&await this.beforeSave()}validateLayer(e){}_updateTypeKeywords(e,t,r){e.typeKeywords||(e.typeKeywords=[]);const i=t.getTypeKeywords();for(const o of i)e.typeKeywords.push(o);e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter((e,t,r)=>r.indexOf(e)===t),r===A.newItem&&(e.typeKeywords=e.typeKeywords.filter(e=>"Hosted Service"!==e)))}async _saveAs(e,t){const r={...E,...t};let i=w["default"].from(e);i||(N.error("_saveAs(): requires a portal item parameter"),await Promise.reject(new s["a"]("sceneservice:portal-item-required","_saveAs() requires a portal item to save to"))),i.id&&(i=i.clone(),i.id=null);const o=i.portal||g["a"].getDefault();await this._ensureLoadBeforeSave(),i.type=L,i.portal=o;const a={origin:"portal-item",url:null,messages:[],portal:o,portalItem:i,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},n={layers:[this.write({},a)]};return await Promise.all(a.resources.pendingOperations),await this._validateAgainstJSONSchema(n,a,r),i.url=this.url,i.title||(i.title=this.title),this._updateTypeKeywords(i,r,A.newItem),await o._signIn(),await o.user.addItem({item:i,folder:r&&r.folder,data:n}),await _(this.resourceReferences,a,null),this.portalItem=i,Object(y["a"])(a),a.portalItem=i,i}async _save(e){const t={...E,...e};this.portalItem||(N.error("_save(): requires the .portalItem property to be set"),await Promise.reject(new s["a"]("sceneservice:portal-item-not-set","Portal item to save to has not been set on this SceneService"))),this.portalItem.type!==L&&(N.error("_save(): Non-matching portal item type. Got "+this.portalItem.type+", expected "+L),await Promise.reject(new s["a"]("sceneservice:portal-item-wrong-type",`Portal item needs to have type "${L}"`))),await this._ensureLoadBeforeSave();const r={origin:"portal-item",url:this.portalItem.itemUrl&&Object(c["M"])(this.portalItem.itemUrl),messages:[],portal:this.portalItem.portal||g["a"].getDefault(),portalItem:this.portalItem,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},i={layers:[this.write({},r)]};return await Promise.all(r.resources.pendingOperations),await this._validateAgainstJSONSchema(i,r,t),this.portalItem.url=this.url,this.portalItem.title||(this.portalItem.title=this.title),this._updateTypeKeywords(this.portalItem,t,A.existingItem),await this.portalItem.update({data:i}),await _(this.resourceReferences,r,null),Object(y["a"])(r),this.portalItem}async _validateAgainstJSONSchema(e,t,i){let o=t.messages.filter(e=>"error"===e.type).map(e=>new s["a"](e.name,e.message,e.details));if(i&&i.validationOptions.ignoreUnsupported&&(o=o.filter(e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name&&"scenemodification:unsupported"!==e.name)),i.validationOptions.enabled||q){const t=(await r.e("chunk-2d209409").then(r.bind(null,"a7eb"))).validate(e,i.portalItemLayerType);if(t.length>0){const e="Layer item did not validate:\n"+t.join("\n");if(N.error("_validateAgainstJSONSchema(): "+e),"throw"===i.validationOptions.failPolicy){const e=t.map(e=>new s["a"]("sceneservice:schema-validation",e)).concat(o);throw new s["a"]("sceneservice-validate:error","Failed to save layer item due to schema validation, see `details.errors`.",{combined:e})}}}if(o.length>0)throw new s["a"]("sceneservice:save","Failed to save SceneService due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:o})}};return Object(i["a"])([Object(p["b"])(v["c"])],t.prototype,"id",void 0),Object(i["a"])([Object(p["b"])({type:O["a"]})],t.prototype,"spatialReference",void 0),Object(i["a"])([Object(b["a"])("spatialReference",["spatialReference","store.indexCRS","store.geographicCRS"])],t.prototype,"readSpatialReference",null),Object(i["a"])([Object(p["b"])({type:h["a"]})],t.prototype,"fullExtent",void 0),Object(i["a"])([Object(b["a"])("fullExtent",["fullExtent","store.extent","spatialReference","store.indexCRS","store.geographicCRS"])],t.prototype,"readFullExtent",null),Object(i["a"])([Object(p["b"])({readOnly:!0,type:j["a"]})],t.prototype,"heightModelInfo",void 0),Object(i["a"])([Object(p["b"])({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:{source:"minScale"},write:!1}}}})],t.prototype,"minScale",void 0),Object(i["a"])([Object(p["b"])({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:{source:"maxScale"},write:!1}}}})],t.prototype,"maxScale",void 0),Object(i["a"])([Object(p["b"])({readOnly:!0})],t.prototype,"version",void 0),Object(i["a"])([Object(b["a"])("version",["store.version"])],t.prototype,"readVersion",null),Object(i["a"])([Object(p["b"])({type:String,json:{read:{source:"copyrightText"}}})],t.prototype,"copyright",void 0),Object(i["a"])([Object(p["b"])({type:String,json:{read:!1}})],t.prototype,"sublayerTitleMode",void 0),Object(i["a"])([Object(p["b"])({type:String})],t.prototype,"title",void 0),Object(i["a"])([Object(b["a"])("portal-item","title")],t.prototype,"readTitlePortalItem",null),Object(i["a"])([Object(b["a"])("service","title",["name"])],t.prototype,"readTitleService",null),Object(i["a"])([Object(p["b"])({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{write:{target:"id",isRequired:!0,ignoreOrigin:!0},read:!1}}}})],t.prototype,"layerId",void 0),Object(i["a"])([Object(p["b"])(v["n"])],t.prototype,"url",null),Object(i["a"])([Object(d["a"])("url")],t.prototype,"writeUrl",null),Object(i["a"])([Object(p["b"])()],t.prototype,"parsedUrl",null),Object(i["a"])([Object(p["b"])({readOnly:!0})],t.prototype,"store",void 0),Object(i["a"])([Object(p["b"])({type:String,readOnly:!0,json:{read:{source:"store.rootNode"}}})],t.prototype,"rootNode",void 0),t=Object(i["a"])([Object(u["a"])("esri.layers.mixins.SceneService")],t),t},P=-1e38,q=!1;var A;!function(e){e[e.existingItem=0]="existingItem",e[e.newItem=1]="newItem"}(A||(A={}));const L="Scene Service",E={getTypeKeywords:()=>[],portalItemLayerType:"unknown",validationOptions:{enabled:!0,ignoreUnsupported:!1,failPolicy:"throw"}};var k;!function(e){e[e.SAVE=0]="SAVE",e[e.SAVE_AS=1]="SAVE_AS"}(k||(k={}))},a347:function(e,t,r){"use strict";r.r(t),r.d(t,"default",(function(){return we}));var i=r("a4ee"),o=r("2c4f"),s=r("ce50"),a=r("af40"),n=r("e92d"),l=r("b2b2"),c=r("e694"),p=r("f4cc"),b=r("477c"),u=r("59b2"),d=(r("b50f"),r("c120"),r("cea0")),y=r("afcf"),h=r("d386"),j=r("e431"),O=r("0b2d"),m=r("a6a3"),v=r("bdba"),f=r("f46e"),g=r("3d59"),w=r("b911"),S=r("0db5"),x=r("5a62"),I=r("96ae"),_=r("54b4"),V=r("22f4"),R=r("6a0ed");let N=class extends R["a"]{constructor(){super(...arguments),this.enabled=!0,this.label="",this.normal=null,this.point=null}};Object(i["a"])([Object(u["b"])({type:Boolean,json:{default:!0,write:!0}})],N.prototype,"enabled",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],N.prototype,"label",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:!0}})],N.prototype,"normal",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:!0}})],N.prototype,"point",void 0),N=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelDynamicSection")],N);const T=N;let P=class extends R["a"]{constructor(){super(...arguments),this.enabled=!0,this.label="",this.normal=null,this.point=null}};Object(i["a"])([Object(u["b"])({type:Boolean,json:{write:!0}})],P.prototype,"enabled",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],P.prototype,"label",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:!0}})],P.prototype,"normal",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:!0}})],P.prototype,"point",void 0),P=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelSlice")],P);const q=P;var A=r("fcf2");let L=class extends R["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}readHref(e,t,r){return Object(A["b"])(e,r)}};Object(i["a"])([Object(u["b"])({type:Boolean,json:{default:!0,write:!0}})],L.prototype,"enabled",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:{enabled:!0,isRequired:!0}}})],L.prototype,"href",void 0),Object(i["a"])([Object(y["a"])(["service","web-scene"],"href")],L.prototype,"readHref",null),Object(i["a"])([Object(u["b"])({type:d["a"],json:{write:{enabled:!0,isRequired:!0}}})],L.prototype,"id",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],L.prototype,"label",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],L.prototype,"normal",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],L.prototype,"point",void 0),Object(i["a"])([Object(u["b"])({type:[d["a"]],json:{write:{enabled:!0,isRequired:!0}}})],L.prototype,"sizeInPixel",void 0),Object(i["a"])([Object(u["b"])({type:[q],json:{write:!0}})],L.prototype,"slices",void 0),Object(i["a"])([Object(u["b"])({type:d["a"],json:{default:0,write:!0}})],L.prototype,"timeId",void 0),Object(i["a"])([Object(u["b"])({type:d["a"],json:{write:{enabled:!0,isRequired:!0}}})],L.prototype,"variableId",void 0),L=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelSection")],L);const E=L;var k=r("7d7d");let z=class extends R["a"]{constructor(){super(...arguments),this.diffuseFactor=.5,this.specularFactor=.5}};Object(i["a"])([Object(u["b"])({type:Number,range:{min:0,max:1},json:{default:.5,write:!0}})],z.prototype,"diffuseFactor",void 0),Object(i["a"])([Object(u["b"])({type:Number,range:{min:0,max:1},json:{default:.5,write:!0}})],z.prototype,"specularFactor",void 0),z=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelSimpleShading")],z);const F=z;var D=r("9ef0");let M=class extends R["a"]{constructor(){super(...arguments),this.color=null,this.value=null,this.enabled=!0,this.label=null}};Object(i["a"])([Object(u["b"])({type:D["a"],json:{type:[d["a"]],write:{enabled:!0,isRequired:!0}}})],M.prototype,"color",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],M.prototype,"value",void 0),Object(i["a"])([Object(u["b"])({type:Boolean,json:{default:!0,write:!0}})],M.prototype,"enabled",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],M.prototype,"label",void 0),M=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelIsosurface")],M);const U=M;let B=class extends R["a"]{constructor(){super(...arguments),this.alpha=0,this.position=0}};Object(i["a"])([Object(u["b"])({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],B.prototype,"alpha",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],B.prototype,"position",void 0),B=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelAlphaStop")],B);const W=B;let K=class extends R["a"]{constructor(){super(...arguments),this.color=null,this.position=0}};Object(i["a"])([Object(u["b"])({type:D["a"],json:{type:[d["a"]],write:{enabled:!0,isRequired:!0}}})],K.prototype,"color",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],K.prototype,"position",void 0),K=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelColorStop")],K);const C=K;let J=class extends R["a"]{constructor(){super(...arguments),this.enabled=!1,this.range=null}};Object(i["a"])([Object(u["b"])({type:Boolean,json:{default:!1,write:!0}})],J.prototype,"enabled",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:!0}})],J.prototype,"range",void 0),J=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelRangeFilter")],J);const Z=J;let $=class extends R["a"]{constructor(e){super(e),this.interpolation=null,this.stretchRange=null,this.rangeFilter=null,this.colorStops=new o["a"],this.alphaStops=new o["a"]}set colorStops(e){this._set("colorStops",Object(k["b"])(e,this._get("colorStops"),o["a"].ofType(C)))}set alphaStops(e){this._set("alphaStops",Object(k["b"])(e,this._get("alphaStops"),o["a"].ofType(W)))}};Object(i["a"])([Object(u["b"])({type:["linear","nearest"],json:{write:!0}})],$.prototype,"interpolation",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],$.prototype,"stretchRange",void 0),Object(i["a"])([Object(u["b"])({type:o["a"].ofType(C),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.colorStops&&this.colorStops.length>0}}}}})],$.prototype,"colorStops",null),Object(i["a"])([Object(u["b"])({type:o["a"].ofType(W),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.alphaStops&&this.alphaStops.length>0}}}}})],$.prototype,"alphaStops",null),Object(i["a"])([Object(u["b"])({type:Z,json:{write:!0}})],$.prototype,"rangeFilter",void 0),$=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelTransferFunctionStyle")],$);const H=$;let G=class extends R["a"]{constructor(){super(...arguments),this.color=null,this.value=0,this.enabled=!0,this.label=null}};Object(i["a"])([Object(u["b"])({type:D["a"],json:{type:[d["a"]],write:{enabled:!0,isRequired:!0}}})],G.prototype,"color",void 0),Object(i["a"])([Object(u["b"])({type:d["a"],json:{write:{enabled:!0,isRequired:!0}}})],G.prototype,"value",void 0),Object(i["a"])([Object(u["b"])({type:Boolean,json:{default:!0,write:!0}})],G.prototype,"enabled",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],G.prototype,"label",void 0),G=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelUniqueValue")],G);const Q=G;let X=class extends R["a"]{constructor(e){super(e),this.variableId=0,this.label=null,this.transferFunction=null,this.uniqueValues=new o["a"],this.isosurfaces=new o["a"]}set uniqueValues(e){this._set("uniqueValues",Object(k["b"])(e,this._get("uniqueValues"),o["a"].ofType(Q)))}set isosurfaces(e){this._set("isosurfaces",Object(k["b"])(e,this._get("isosurfaces"),o["a"].ofType(U)))}};Object(i["a"])([Object(u["b"])({type:d["a"],json:{write:{enabled:!0,isRequired:!0}}})],X.prototype,"variableId",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],X.prototype,"label",void 0),Object(i["a"])([Object(u["b"])({type:H,json:{write:{enabled:!0,overridePolicy(){return{enabled:!this.uniqueValues||this.uniqueValues.length<1}}}}})],X.prototype,"transferFunction",void 0),Object(i["a"])([Object(u["b"])({type:o["a"].ofType(Q),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.uniqueValues&&this.uniqueValues.length>0}}}}})],X.prototype,"uniqueValues",null),Object(i["a"])([Object(u["b"])({type:o["a"].ofType(U),json:{write:{enabled:!0,overridePolicy(){const e=!this.uniqueValues||this.uniqueValues.length<1,t=!!this.isosurfaces&&this.isosurfaces.length>0;return{enabled:e&&t}}}}})],X.prototype,"isosurfaces",null),X=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelVariableStyle")],X);const Y=X;let ee=class extends R["a"]{constructor(e){super(e),this.volumeId=0,this.verticalExaggeration=1,this.exaggerationMode="scale-height",this.verticalOffset=0,this.slices=new o["a"],this.dynamicSections=new o["a"]}set slices(e){this._set("slices",Object(k["b"])(e,this._get("slices"),o["a"].ofType(q)))}set dynamicSections(e){this._set("dynamicSections",Object(k["b"])(e,this._get("dynamicSections"),o["a"].ofType(T)))}};Object(i["a"])([Object(u["b"])({type:d["a"],json:{write:{enabled:!0,isRequired:!0}}})],ee.prototype,"volumeId",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{default:1,write:!0}})],ee.prototype,"verticalExaggeration",void 0),Object(i["a"])([Object(u["b"])({type:["scale-position","scale-height"],json:{default:"scale-height",write:!0}})],ee.prototype,"exaggerationMode",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{default:0,write:!0}})],ee.prototype,"verticalOffset",void 0),Object(i["a"])([Object(u["b"])({type:o["a"].ofType(q),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.slices&&this.slices.length>0}}}}})],ee.prototype,"slices",null),Object(i["a"])([Object(u["b"])({type:o["a"].ofType(T),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.dynamicSections&&this.dynamicSections.length>0}}}}})],ee.prototype,"dynamicSections",null),ee=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelVolumeStyle")],ee);const te=ee;let re=class extends R["a"]{constructor(e){super(e),this.currentVariableId=0,this.renderMode="volume",this.enableSlices=!0,this.enableSections=!0,this.enableDynamicSections=!0,this.enableIsosurfaces=!0,this.shading=new F,this.volumeStyles=new o["a"],this.variableStyles=new o["a"]}set volumeStyles(e){this._set("volumeStyles",Object(k["b"])(e,this._get("volumeStyles"),o["a"].ofType(te)))}set variableStyles(e){this._set("variableStyles",Object(k["b"])(e,this._get("variableStyles"),o["a"].ofType(Y)))}};Object(i["a"])([Object(u["b"])({type:o["a"].ofType(te),json:{write:!0}})],re.prototype,"volumeStyles",null),Object(i["a"])([Object(u["b"])({type:d["a"],json:{write:{enabled:!0,isRequired:!0}}})],re.prototype,"currentVariableId",void 0),Object(i["a"])([Object(u["b"])({type:["volume","surfaces"],json:{write:!0}})],re.prototype,"renderMode",void 0),Object(i["a"])([Object(u["b"])({type:o["a"].ofType(Y),json:{write:!0}})],re.prototype,"variableStyles",null),Object(i["a"])([Object(u["b"])({type:Boolean,json:{write:!0}})],re.prototype,"enableSlices",void 0),Object(i["a"])([Object(u["b"])({type:Boolean,json:{write:!0}})],re.prototype,"enableSections",void 0),Object(i["a"])([Object(u["b"])({type:Boolean,json:{write:!0}})],re.prototype,"enableDynamicSections",void 0),Object(i["a"])([Object(u["b"])({type:Boolean,json:{write:!0}})],re.prototype,"enableIsosurfaces",void 0),Object(i["a"])([Object(u["b"])({type:F,json:{write:!0}})],re.prototype,"shading",void 0),re=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelStyle")],re);const ie=re;let oe=class extends R["a"]{constructor(){super(...arguments),this.continuity=null,this.hasNoData=!1,this.noData=0,this.offset=0,this.scale=1,this.type=null}};Object(i["a"])([Object(u["b"])({type:["discrete","continuous"],json:{write:!0}})],oe.prototype,"continuity",void 0),Object(i["a"])([Object(u["b"])({type:Boolean,json:{write:!0}})],oe.prototype,"hasNoData",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:!0}})],oe.prototype,"noData",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:!0}})],oe.prototype,"offset",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:!0}})],oe.prototype,"scale",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:{enabled:!0,isRequired:!0}}})],oe.prototype,"type",void 0),oe=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelFormat")],oe);const se=oe;let ae=class extends R["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}};Object(i["a"])([Object(u["b"])({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],ae.prototype,"id",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],ae.prototype,"description",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:{enabled:!0,isRequired:!0}}})],ae.prototype,"name",void 0),Object(i["a"])([Object(u["b"])({type:se,json:{write:!0}})],ae.prototype,"originalFormat",void 0),Object(i["a"])([Object(u["b"])({type:se,json:{write:{enabled:!0,isRequired:!0}}})],ae.prototype,"renderingFormat",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],ae.prototype,"unit",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:!0}})],ae.prototype,"volumeId",void 0),Object(i["a"])([Object(u["b"])({type:["stc-hot-spot-results","stc-cluster-outlier-results","stc-estimated-bin","generic-nearest-interpolated"],json:{write:!0}})],ae.prototype,"type",void 0),ae=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelVariable")],ae);const ne=ae;let le=class extends R["a"]{constructor(){super(...arguments),this.values=null}};Object(i["a"])([Object(u["b"])({type:[Number],json:{write:!0}})],le.prototype,"values",void 0),le=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelIrregularSpacing")],le);const ce=le;let pe=class extends R["a"]{constructor(){super(...arguments),this.scale=1,this.offset=0}};Object(i["a"])([Object(u["b"])({type:Number,json:{write:!0}})],pe.prototype,"scale",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:!0}})],pe.prototype,"offset",void 0),pe=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelRegularSpacing")],pe);const be=pe;let ue=class extends R["a"]{constructor(){super(...arguments),this.irregularSpacing=null,this.isPositiveUp=null,this.isWrappedDateLine=null,this.label=null,this.name=null,this.quantity=null,this.regularSpacing=null,this.size=0,this.unit=null}};Object(i["a"])([Object(u["b"])({type:ce,json:{write:!0}})],ue.prototype,"irregularSpacing",void 0),Object(i["a"])([Object(u["b"])({type:Boolean,json:{write:!0}})],ue.prototype,"isPositiveUp",void 0),Object(i["a"])([Object(u["b"])({type:Boolean,json:{write:!0}})],ue.prototype,"isWrappedDateLine",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],ue.prototype,"label",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],ue.prototype,"name",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],ue.prototype,"quantity",void 0),Object(i["a"])([Object(u["b"])({type:be,json:{write:!0}})],ue.prototype,"regularSpacing",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:!0}})],ue.prototype,"size",void 0),Object(i["a"])([Object(u["b"])({type:String,json:{write:!0}})],ue.prototype,"unit",void 0),ue=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelDimension")],ue);const de=ue;let ye=class extends R["a"]{constructor(){super(...arguments),this.id=0,this.dimensions=null}getZDimension(){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}isVolumeValid(){return!!this.dimensions&&!!Array.isArray(this.dimensions)&&4===this.dimensions.length&&!(this.dimensions[0].size<1||this.dimensions[1].size<1)&&-1!==this.getZDimension()}};Object(i["a"])([Object(u["b"])({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],ye.prototype,"id",void 0),Object(i["a"])([Object(u["b"])({type:[de],json:{write:{enabled:!0,isRequired:!0}}})],ye.prototype,"dimensions",void 0),ye=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelVolume")],ye);const he=ye;var je;let Oe=je=class extends R["a"]{constructor(){super(...arguments),this.apronWidth=1,this.brickSize=[32,32,32],this.maxLodLevel=0,this.nodeSize=[4,4,4]}isValid(){const e=new je;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]}};Object(i["a"])([Object(u["b"])({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],Oe.prototype,"apronWidth",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],Oe.prototype,"brickSize",void 0),Object(i["a"])([Object(u["b"])({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],Oe.prototype,"maxLodLevel",void 0),Object(i["a"])([Object(u["b"])({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],Oe.prototype,"nodeSize",void 0),Oe=je=Object(i["a"])([Object(h["a"])("esri.layers.support.VoxelVolumeIndex")],Oe);const me=Oe,ve=n["a"].getLogger(" esri.layers.VoxelLayer");var fe;!function(e){e[e.API=1]="API",e[e.VerboseAPI=2]="VerboseAPI",e[e.Error=3]="Error"}(fe||(fe={}));let ge=class extends(Object(I["b"])(Object(g["a"])(Object(w["a"])(Object(S["a"])(Object(x["a"])(Object(c["a"])(Object(f["a"])(m["a"])))))))){constructor(e){super(e),this.serviceRoot="",this.popupEnabled=!0,this.operationalLayerType="Voxel",this.legendEnabled=!0,this.title=null,this.sections=new o["a"],this.style=null,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._dbgFlags=new Set,this._handles=new a["a"],this.version={major:Number.NaN,minor:Number.NaN,versionString:""}}set url(e){this._set("url",Object(_["g"])(e,ve))}destroy(){this._handles=Object(l["d"])(this._handles)}_dbg(e,t){this._dbgFlags.has(e)&&(e===fe.Error?ve.error(t):ve.warn(t))}load(e){const t=Object(l["k"])(e)?e.signal:null,r=this.loadFromPortal({supportedTypes:["Scene Service"]},e).catch(p["u"]).then(()=>this._fetchService(t)).then(()=>this.serviceRoot=this.url);return this.addResolvingPromise(r),Promise.resolve(this)}getConfiguration(){this._handles.add([Object(b["e"])(()=>this._getRenderMode(),e=>this._pushRenderModeToWasm(e)),Object(b["e"])(()=>this._getCurrentVariableId(),e=>this._pushCurrentVariableIdToWasm(e)),Object(b["e"])(()=>this._getDynamicSections(),e=>this._pushDynamicSectionsToWasm(e)),Object(b["e"])(()=>this._getSlices(),e=>this._pushSlicesToWasm(e)),Object(b["e"])(()=>this._getSections(),e=>this._pushSectionsToWasm(e))]);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.sections.toJSON(),style:this.style};return e.index&&this.index.isValid()?JSON.stringify(e):""}readVersion(e,t){return super.parseVersionString(e)}_getSections(){const e=[];for(const t of this.sections)e.push(new E({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}_pushSectionsToWasm(e){this._dbg(fe.VerboseAPI,"VoxelLayer._pushSectionsToWasm() called"),v["a"].getInstance().setLayerStaticSections(this,e)||this._dbg(fe.Error,"VoxelLayer._pushSectionsToWasm() failed!")}_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;for(let s=0;s<3;++s){const i=e.point[s];if(i<0||i>=r[t[s]].size)return!1}const i=Object(O["h"])(e.normal[0],e.normal[1],e.normal[2]);Object(j["t"])(i,i);const o=1e-6;return!(Math.abs(i[0])+Math.abs(i[1])+Math.abs(i[2])