// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("../../../chunks/tslib.es6 ../../../core/promiseUtils ../../../core/reactiveUtils ../../../core/Logger ../../../core/has ../../../core/RandomLCG ../../../core/Error ../../../core/accessorSupport/decorators/subclass ./DynamicLayerView3D ../../layers/ImageryLayerView".split(" "),function(f,g,h,d,n,p,q,k,l,m){d=class extends m(l){constructor(){super(...arguments);this.type="imagery-3d";this.redrawDebounced=g.debounce(async a=>{this.redraw((c,b)=>this._redrawImage(c,b),a)},2E3)}initialize(){this.addHandles([h.when(()=> this.view.basemapTerrain.ready,()=>this._initializeMaximumDataResolution(),{once:!0,initial:!0}),this.layer.on("redraw",()=>this._updatingHandles.addPromise(this.redrawDebounced()))]);this._updatingHandles.add(()=>this.layer?.exportImageServiceParameters?.version,()=>{this._updatingHandles.addPromise(this.refreshDebounced())});this._updatingHandles.add(()=>this.layer?.renderer,()=>{this._updatingHandles.addPromise(this.refreshDebounced())});this._updatingHandles.add(()=>this.timeExtent,()=>this._updatingHandles.addPromise(this.refreshDebounced()))}_initializeMaximumDataResolution(){this.maximumDataResolution= this.layer.loaded?this.layer.serviceRasterInfo.pixelSize:null}getFetchOptions(){return{timeExtent:this.timeExtent}}async processResult(a,c,b){c.imageOrCanvasElement?a.image=c.imageOrCanvasElement:(a.image=document.createElement("canvas"),a.pixelData=c.pixelData,await this._redrawImage(a,b))}async _redrawImage(a,c){if(!(a.image instanceof HTMLCanvasElement)||null==a.pixelData)throw Error();var b=a.image;const e=b.getContext("2d");a=await this.layer.applyRenderer(a.pixelData,{signal:c});a=this.layer.applyFilter(a).pixelBlock; if(null==a)throw Error();b.width=a.width;b.height=a.height;b=e.createImageData(a.width,a.height);b.data.set(a.getAsRGBA());e.putImageData(b,0,0)}};return d=f.__decorate([k.subclass("esri.views.3d.layers.ImageryLayerView3D")],d)});