UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 2.87 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/JSONSupport.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import{fixTimeInfoFields as s}from"../support/fieldUtils.js";import{cacheIsOutOfSync as n}from"../support/sceneLayerCacheUtils.js";import o from"../support/TimeInfo.js";import{T as l}from"../../chunks/TimeExtent.js";import{T as a}from"../../chunks/TimeInterval.js";const m=t=>{let m=class extends t{constructor(){super(...arguments),this.serviceTimeInfo=null}get timeInfo(){const e=this.associatedLayer?.timeInfo;if(null==e)return null;const t=e.clone();return s(t,this.fieldsIndex),t}set timeInfo(e){s(e,this.fieldsIndex),this._override("timeInfo",e)}get timeExtent(){return this.associatedLayer?.timeExtent}set timeExtent(e){this._override("timeExtent",e)}get timeOffset(){return this.associatedLayer?.timeOffset}set timeOffset(e){this._override("timeOffset",e)}get datesInUnknownTimezone(){return this.associatedLayer?.datesInUnknownTimezone??!1}set datesInUnknownTimezone(e){this._override("datesInUnknownTimezone",e)}async loadTimeInfoFromService(e){const{serviceTimeInfo:t}=this;if(null==t)return;const{startTimeField:r,endTimeField:i}=t;if(null==r&&null==i)return;if(n({associatedLayer:this.associatedLayer,serviceUpdateTimeStamp:this.serviceUpdateTimeStamp}))return;const s=async t=>{let i=null;try{const r=await(this.fetchStatistics?.(t,e));i=r?.stats}catch{}if(null==i)return null;const{minTimeStr:s,min:n,maxTimeStr:o,max:l}=i,a=t===r?s??n:o??l;return null!=a?new Date(a):null},[a,m]=await Promise.all([s(r),s(i)]);if(null!=r&&null==a||null!=i&&null==m)return;const c=new l({start:a,end:m});this.setAtOrigin("timeInfo",new o({endField:i,startField:r,fullTimeExtent:c}),"service")}};return e([r({type:o,json:{read:!1,write:!1}})],m.prototype,"timeInfo",null),e([r({type:l,json:{read:!1,write:!1}})],m.prototype,"timeExtent",null),e([r({type:a,json:{read:!1,write:!1}})],m.prototype,"timeOffset",null),e([r({type:Boolean,nonNullable:!0,json:{read:!1,write:!1}})],m.prototype,"datesInUnknownTimezone",null),e([r({type:c,readOnly:!0,json:{read:{source:"timeInfo"}}})],m.prototype,"serviceTimeInfo",void 0),m=e([i("esri.layers.mixins.TemporalSceneLayer")],m),m};let c=class extends t{constructor(){super(...arguments),this.endTimeField=null,this.startTimeField=null}};e([r({type:String})],c.prototype,"endTimeField",void 0),e([r({type:String})],c.prototype,"startTimeField",void 0),c=e([i("esri.layers.mixins.TemporalSceneLayer.SceneServiceTimeInfo")],c);export{m as TemporalSceneLayer};