// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built require({cache:{"esri/layers/support/ControlPointsGeoreference":function(){define("../../chunks/tslib.es6 ../../core/Clonable ../../core/Error ../../core/JSONSupport ../../core/Logger ../../core/perspectiveUtils ../../core/screenUtils ../../core/accessorSupport/decorators/property ../../core/has ../../core/RandomLCG ../../core/accessorSupport/decorators/reader ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/decorators/writer ../../core/libs/gl-matrix-2/math/mat3 ../../core/libs/gl-matrix-2/factories/mat3f64 ../../core/libs/gl-matrix-2/math/vec2 ../../core/libs/gl-matrix-2/factories/vec2f64 ../../geometry/Point ../../geometry/Polygon ../../geometry/projection ../../geometry/SpatialReference ./GeoreferenceBase".split(" "), function(e,I,U,N,O,B,R,m,u,A,K,y,x,G,z,D,H,E,Q,P,c,q){function t(p){return null!=p?.sourcePoint&&null!=p.mapPoint}function v(p,F,S){D.set(p,S.sourcePoint.x,S.sourcePoint.y);D.set(F,S.mapPoint.x,S.mapPoint.y)}function X(p,F,S){v(C,b,F);v(M,k,S);D.rotate(Y,M,C,f);D.rotate(a,C,M,f);D.rotate(J,k,b,-f);D.rotate(d,b,k,-f);F=b;S=k;var T=J,W=d;return B.getProjectiveTransform(p,w(n,C,M,Y,a),w(L,F,S,T,W))}function h(p,F,S,T){v(C,b,F);v(M,k,S);v(Y,J,T);D.lerp(a,C,M,.5);D.rotate(a,Y,a,Math.PI);D.lerp(d,b,k,.5); D.rotate(d,J,d,Math.PI);F=b;S=k;T=J;var W=d;return B.getProjectiveTransform(p,w(n,C,M,Y,a),w(L,F,S,T,W))}function g(p,F,S,T,W){v(C,b,F);v(M,k,S);v(Y,J,T);v(a,d,W);F=b;S=k;T=J;W=d;return B.getProjectiveTransform(p,w(n,C,M,Y,a),w(L,F,S,T,W))}function w(p,F,S,T,W){p[0]=F[0];p[1]=F[1];p[2]=S[0];p[3]=S[1];p[4]=T[0];p[5]=T[1];p[6]=W[0];p[7]=W[1];return p}const l=z.create(),r=H.create();u=class extends N.JSONSupport{};e.__decorate([m.property({type:Number,json:{write:!0}})],u.prototype,"x",void 0);e.__decorate([m.property({type:Number, json:{write:!0}})],u.prototype,"y",void 0);u=e.__decorate([y.subclass("esri.layers.support.ControlPointsGeoreference.ControlPointJSONType")],u);I=class extends I.Clonable{constructor(){super(...arguments);this.mapPoint=this.sourcePoint=null}};e.__decorate([m.property()],I.prototype,"sourcePoint",void 0);e.__decorate([m.property({type:E})],I.prototype,"mapPoint",void 0);I=e.__decorate([y.subclass("esri.layers.support.ControlPointsGeoreference.ControlPoint")],I);N=class extends N.JSONSupportMixin(q){constructor(p){super(p); this.controlPoints=null;this.height=0;this.type="control-points";this.width=0}readControlPoints(p,F){const S=c.fromJSON(F.spatialReference),T=z.fromValues(...F.coefficients,1);return p.map(W=>{D.set(r,W.x,W.y);B.transformProjective(r,r,T);return{sourcePoint:W,mapPoint:new E({x:r[0],y:r[1],spatialReference:S})}})}writeControlPoints(p,F,S,T){null==this.transform?(p=new U("web-document-write:invalid-georeference","Invalid 'controlPoints', 'width', 'height' configuration.",{layer:T?.layer,georeference:this}), T?.messages?T.messages.push(p):O.getLogger(this).error(p.name,p.message)):null!=p&&t(p[0])&&(F.controlPoints=p.map(W=>{W=W.sourcePoint;return{x:W.x,y:W.y}}),F.spatialReference=p[0].mapPoint.spatialReference.toJSON(),F.coefficients=this.transform.slice(0,8))}get coords(){if(null==this.controlPoints)return null;const p=this._updateTransform(l);if(null==p||!t(this.controlPoints[0]))return null;var F=this.width,S=this.height,T=this.controlPoints[0].mapPoint.spatialReference;const W=H.fromValues(0,S), V=H.fromValues(0,0),ba=H.fromValues(F,0);F=H.fromValues(F,S);B.transformProjective(W,W,p);B.transformProjective(V,V,p);B.transformProjective(ba,ba,p);B.transformProjective(F,F,p);return new Q({rings:[[W,V,ba,F,W]],spatialReference:T})}set coords(p){if(null!=this.controlPoints&&t(this.controlPoints[0])){var F=this.controlPoints[0].mapPoint.spatialReference;p=this.projectOrWarn(p,F);if(null!=p){var {width:S,height:T}=this,{rings:[[W,V,ba,da]]}=p;p={sourcePoint:R.createScreenPoint(0,T),mapPoint:new E({x:W[0], y:W[1],spatialReference:F})};var aa={sourcePoint:R.createScreenPoint(0,0),mapPoint:new E({x:V[0],y:V[1],spatialReference:F})},ca={sourcePoint:R.createScreenPoint(S,0),mapPoint:new E({x:ba[0],y:ba[1],spatialReference:F})},Z={sourcePoint:R.createScreenPoint(S,T),mapPoint:new E({x:da[0],y:da[1],spatialReference:F})};t(p)&&t(aa)&&t(ca)&&t(Z)&&(g(l,p,aa,ca,Z),this.controlPoints=this.controlPoints.map(({sourcePoint:ea})=>{D.set(r,ea.x,ea.y);B.transformProjective(r,r,l);return{sourcePoint:ea,mapPoint:new E({x:r[0], y:r[1],spatialReference:F})}}))}}}get inverseTransform(){return null==this.transform?null:G.invert(z.create(),this.transform)}get transform(){return this._updateTransform()}toMap(p){if(null==p||null==this.transform||null==this.controlPoints||!t(this.controlPoints[0]))return null;D.set(r,p.x,p.y);p=this.controlPoints[0].mapPoint.spatialReference;B.transformProjective(r,r,this.transform);return new E({x:r[0],y:r[1],spatialReference:p})}toSource(p){if(null==p||null==this.inverseTransform||null==this.controlPoints|| !t(this.controlPoints[0]))return null;const F=this.controlPoints[0].mapPoint.spatialReference;p=p.normalize();p=P.projectOrLoad(p,F).geometry;if(null==p)return null;D.set(r,p.x,p.y);B.transformProjective(r,r,this.inverseTransform);return R.createScreenPoint(r[0],r[1])}toSourceNormalized(p){p=this.toSource(p);null!=p&&(p.x/=this.width,p.y/=this.height);return p}_updateTransform(p){const {controlPoints:F,width:S,height:T}=this;if(!(null!=F&&00===fa)?null:ea}_projectControlPoint(p,F){if(!t(p))return{valid:!0, controlPoint:p};const {sourcePoint:S,mapPoint:T}=p,{geometry:W,pending:V}=P.projectOrLoad(T,F);return V?{valid:!1,controlPoint:null}:V||W?{valid:!0,controlPoint:{sourcePoint:S,mapPoint:W}}:(O.getLogger(this).warn("map point could not be projected to the spatial reference",{georeference:this,controlPoint:p,sourceSpatialReference:T.spatialReference,targetSpatialReference:F}),{valid:!1,controlPoint:null})}};e.__decorate([m.property({type:[I],json:{write:{allowNull:!1,isRequired:!0,target:{controlPoints:{type:[u]}, coefficients:{type:[Number]},spatialReference:{type:c}}}}})],N.prototype,"controlPoints",void 0);e.__decorate([K.reader("controlPoints")],N.prototype,"readControlPoints",null);e.__decorate([x.writer("controlPoints")],N.prototype,"writeControlPoints",null);e.__decorate([m.property({clonable:!1})],N.prototype,"coords",null);e.__decorate([m.property({type:Number,nonNullable:!0,json:{write:!0}})],N.prototype,"height",void 0);e.__decorate([m.property({readOnly:!0})],N.prototype,"inverseTransform",null); e.__decorate([m.property({readOnly:!0})],N.prototype,"transform",null);e.__decorate([m.property({type:Number,nonNullable:!0,json:{write:!0}})],N.prototype,"width",void 0);N=e.__decorate([y.subclass("esri.layers.support.ControlPointsGeoreference")],N);const C=H.create(),M=H.create(),Y=H.create(),a=H.create(),b=H.create(),k=H.create(),J=H.create(),d=H.create(),f=Math.PI/2,n=Array(8).fill(0),L=Array(8).fill(0);return N})},"esri/core/perspectiveUtils":function(){define("exports ./libs/gl-matrix-2/math/mat3 ./libs/gl-matrix-2/factories/mat3f64 ./libs/gl-matrix-2/math/vec2 ../chunks/vec32 ./libs/gl-matrix-2/factories/vec3f64".split(" "), function(e,I,U,N,O,B){function R(y,x,G,z,D,H,E,Q,P){I.set(y,x,z,H,G,D,E,1,1,1);O.set(m,Q,P,1);I.adjoint(u,y);const [c,q,t]=O.transformMat3(m,m,I.transpose(u,u));I.set(u,c,0,0,0,q,0,0,0,t);return I.multiply(y,u,y)}const m=B.create(),u=U.create(),A=U.create(),K=U.create();e.getProjectiveTransform=function(y,x,G){R(A,x[0],x[1],x[2],x[3],x[4],x[5],x[6],x[7]);R(K,G[0],G[1],G[2],G[3],G[4],G[5],G[6],G[7]);I.multiply(y,I.adjoint(A,A),K);0!==y[8]&&(y[0]/=y[8],y[1]/=y[8],y[2]/=y[8],y[3]/=y[8],y[4]/=y[8],y[5]/= y[8],y[6]/=y[8],y[7]/=y[8],y[8]/=y[8]);return y};e.transformProjective=function(y,x,G){O.set(m,x[0],x[1],1);O.transformMat3(m,m,I.transpose(u,G));return 0===m[2]?N.set(y,m[0],m[1]):N.set(y,m[0]/m[2],m[1]/m[2])};Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})})},"esri/core/libs/gl-matrix-2/math/mat3":function(){define(["exports","./common"],function(e,I){function U(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[4];a[4]=b[5];a[5]=b[6];a[6]=b[8];a[7]=b[9];a[8]=b[10];return a}function N(a,b){a[0]= b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];a[6]=b[6];a[7]=b[7];a[8]=b[8];return a}function O(a,b,k,J,d,f,n,L,p,F){a[0]=b;a[1]=k;a[2]=J;a[3]=d;a[4]=f;a[5]=n;a[6]=L;a[7]=p;a[8]=F;return a}function B(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a}function R(a,b){if(a===b){const k=b[1],J=b[2],d=b[5];a[1]=b[3];a[2]=b[6];a[3]=k;a[5]=b[7];a[6]=J;a[7]=d}else a[0]=b[0],a[1]=b[3],a[2]=b[6],a[3]=b[1],a[4]=b[4],a[5]=b[7],a[6]=b[2],a[7]=b[5],a[8]=b[8];return a}function m(a, b){const k=b[0],J=b[1],d=b[2],f=b[3],n=b[4],L=b[5],p=b[6],F=b[7];b=b[8];const S=b*n-L*F,T=-b*f+L*p,W=F*f-n*p;let V=k*S+J*T+d*W;if(!V)return null;V=1/V;a[0]=S*V;a[1]=(-b*J+d*F)*V;a[2]=(L*J-d*n)*V;a[3]=T*V;a[4]=(b*k-d*p)*V;a[5]=(-L*k+d*f)*V;a[6]=W*V;a[7]=(-F*k+J*p)*V;a[8]=(n*k-J*f)*V;return a}function u(a,b){const k=b[0],J=b[1],d=b[2],f=b[3],n=b[4],L=b[5],p=b[6],F=b[7];b=b[8];a[0]=n*b-L*F;a[1]=d*F-J*b;a[2]=J*L-d*n;a[3]=L*p-f*b;a[4]=k*b-d*p;a[5]=d*f-k*L;a[6]=f*F-n*p;a[7]=J*p-k*F;a[8]=k*n-J*f;return a} function A(a){const b=a[3],k=a[4],J=a[5],d=a[6],f=a[7],n=a[8];return a[0]*(n*k-J*f)+a[1]*(-n*b+J*d)+a[2]*(f*b-k*d)}function K(a,b,k){const J=b[0],d=b[1],f=b[2],n=b[3],L=b[4],p=b[5],F=b[6],S=b[7];b=b[8];const T=k[0],W=k[1],V=k[2],ba=k[3],da=k[4],aa=k[5],ca=k[6],Z=k[7];k=k[8];a[0]=T*J+W*n+V*F;a[1]=T*d+W*L+V*S;a[2]=T*f+W*p+V*b;a[3]=ba*J+da*n+aa*F;a[4]=ba*d+da*L+aa*S;a[5]=ba*f+da*p+aa*b;a[6]=ca*J+Z*n+k*F;a[7]=ca*d+Z*L+k*S;a[8]=ca*f+Z*p+k*b;return a}function y(a,b,k){const J=b[0],d=b[1],f=b[2],n=b[3], L=b[4],p=b[5],F=b[6],S=b[7];b=b[8];const T=k[0];k=k[1];a[0]=J;a[1]=d;a[2]=f;a[3]=n;a[4]=L;a[5]=p;a[6]=T*J+k*n+F;a[7]=T*d+k*L+S;a[8]=T*f+k*p+b;return a}function x(a,b,k){const J=b[0],d=b[1],f=b[2],n=b[3],L=b[4],p=b[5],F=b[6],S=b[7];b=b[8];const T=Math.sin(k);k=Math.cos(k);a[0]=k*J+T*n;a[1]=k*d+T*L;a[2]=k*f+T*p;a[3]=k*n-T*J;a[4]=k*L-T*d;a[5]=k*p-T*f;a[6]=F;a[7]=S;a[8]=b;return a}function G(a,b,k){const J=k[0],d=k[1];k=k[2];a[0]=J*b[0];a[1]=J*b[1];a[2]=J*b[2];a[3]=d*b[3];a[4]=d*b[4];a[5]=d*b[5];a[6]= k*b[6];a[7]=k*b[7];a[8]=k*b[8];return a}function z(a,b,k){const J=k[0];k=k[1];a[0]=J*b[0];a[1]=J*b[1];a[2]=J*b[2];a[3]=k*b[3];a[4]=k*b[4];a[5]=k*b[5];return a}function D(a,b){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=b[0];a[7]=b[1];a[8]=1;return a}function H(a,b){const k=Math.sin(b);b=Math.cos(b);a[0]=b;a[1]=k;a[2]=0;a[3]=-k;a[4]=b;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a}function E(a,b){a[0]=b[0];a[1]=0;a[2]=0;a[3]=0;a[4]=b[1];a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a}function Q(a,b){a[0]=b[0];a[1]= b[1];a[2]=0;a[3]=b[2];a[4]=b[3];a[5]=0;a[6]=b[4];a[7]=b[5];a[8]=1;return a}function P(a,b){var k=b[0],J=b[1],d=b[2];b=b[3];var f=k+k,n=J+J;const L=d+d;k*=f;const p=J*f;J*=n;const F=d*f,S=d*n;d*=L;f*=b;n*=b;b*=L;a[0]=1-J-d;a[3]=p-b;a[6]=F+n;a[1]=p+b;a[4]=1-k-d;a[7]=S-f;a[2]=F-n;a[5]=S+f;a[8]=1-k-J;return a}function c(a,b){const k=b[0],J=b[1],d=b[2],f=b[4],n=b[5],L=b[6],p=b[8],F=b[9];b=b[10];const S=b*n-L*F,T=-b*f+L*p,W=F*f-n*p;var V=k*S+J*T+d*W;if(!V)return null;V=1/V;a[0]=S*V;a[1]=(-b*J+d*F)*V;a[2]= (L*J-d*n)*V;a[3]=T*V;a[4]=(b*k-d*p)*V;a[5]=(-L*k+d*f)*V;a[6]=W*V;a[7]=(-F*k+J*p)*V;a[8]=(n*k-J*f)*V;return a}function q(a,b){const k=b[0],J=b[1],d=b[2],f=b[3],n=b[4],L=b[5],p=b[6],F=b[7];var S=b[8],T=b[9],W=b[10],V=b[11];const ba=b[12],da=b[13],aa=b[14];b=b[15];const ca=k*L-J*n,Z=k*p-d*n,ea=k*F-f*n,fa=J*p-d*L,ha=J*F-f*L,ia=d*F-f*p,ja=S*da-T*ba,ka=S*aa-W*ba;S=S*b-V*ba;const la=T*aa-W*da;T=T*b-V*da;W=W*b-V*aa;V=ca*W-Z*T+ea*la+fa*S-ha*ka+ia*ja;if(!V)return null;V=1/V;a[0]=(L*W-p*T+F*la)*V;a[1]=(p*S- n*W-F*ka)*V;a[2]=(n*T-L*S+F*ja)*V;a[3]=(d*T-J*W-f*la)*V;a[4]=(k*W-d*S+f*ka)*V;a[5]=(J*S-k*T-f*ja)*V;a[6]=(da*ia-aa*ha+b*fa)*V;a[7]=(aa*ea-ba*ia-b*Z)*V;a[8]=(ba*ha-da*ea+b*ca)*V;return a}function t(a,b,k){a[0]=2/b;a[1]=0;a[2]=0;a[3]=0;a[4]=-2/k;a[5]=0;a[6]=-1;a[7]=1;a[8]=1;return a}function v(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"}function X(a){return Math.sqrt(a[0]**2+a[1]**2+a[2]**2+a[3]**2+a[4]**2+a[5]**2+a[6]**2+a[7]**2+a[8]**2)} function h(a,b,k){a[0]=b[0]+k[0];a[1]=b[1]+k[1];a[2]=b[2]+k[2];a[3]=b[3]+k[3];a[4]=b[4]+k[4];a[5]=b[5]+k[5];a[6]=b[6]+k[6];a[7]=b[7]+k[7];a[8]=b[8]+k[8];return a}function g(a,b,k){a[0]=b[0]-k[0];a[1]=b[1]-k[1];a[2]=b[2]-k[2];a[3]=b[3]-k[3];a[4]=b[4]-k[4];a[5]=b[5]-k[5];a[6]=b[6]-k[6];a[7]=b[7]-k[7];a[8]=b[8]-k[8];return a}function w(a,b,k){a[0]=b[0]*k;a[1]=b[1]*k;a[2]=b[2]*k;a[3]=b[3]*k;a[4]=b[4]*k;a[5]=b[5]*k;a[6]=b[6]*k;a[7]=b[7]*k;a[8]=b[8]*k;return a}function l(a,b,k,J){a[0]=b[0]+k[0]*J;a[1]= b[1]+k[1]*J;a[2]=b[2]+k[2]*J;a[3]=b[3]+k[3]*J;a[4]=b[4]+k[4]*J;a[5]=b[5]+k[5]*J;a[6]=b[6]+k[6]*J;a[7]=b[7]+k[7]*J;a[8]=b[8]+k[8]*J;return a}function r(a,b){return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]&&a[4]===b[4]&&a[5]===b[5]&&a[6]===b[6]&&a[7]===b[7]&&a[8]===b[8]}function C(a,b){const k=a[0],J=a[1],d=a[2],f=a[3],n=a[4],L=a[5],p=a[6],F=a[7];a=a[8];const S=b[0],T=b[1],W=b[2],V=b[3],ba=b[4],da=b[5],aa=b[6],ca=b[7];b=b[8];const Z=I.getEpsilon();return Math.abs(k-S)<=Z*Math.max(1,Math.abs(k), Math.abs(S))&&Math.abs(J-T)<=Z*Math.max(1,Math.abs(J),Math.abs(T))&&Math.abs(d-W)<=Z*Math.max(1,Math.abs(d),Math.abs(W))&&Math.abs(f-V)<=Z*Math.max(1,Math.abs(f),Math.abs(V))&&Math.abs(n-ba)<=Z*Math.max(1,Math.abs(n),Math.abs(ba))&&Math.abs(L-da)<=Z*Math.max(1,Math.abs(L),Math.abs(da))&&Math.abs(p-aa)<=Z*Math.max(1,Math.abs(p),Math.abs(aa))&&Math.abs(F-ca)<=Z*Math.max(1,Math.abs(F),Math.abs(ca))&&Math.abs(a-b)<=Z*Math.max(1,Math.abs(a),Math.abs(b))}function M(a){const b=I.getEpsilon(),k=a[0],J=a[1], d=a[2],f=a[3],n=a[4],L=a[5],p=a[6],F=a[7];a=a[8];return Math.abs(1-(k*k+f*f+p*p))<=b&&Math.abs(1-(J*J+n*n+F*F))<=b&&Math.abs(1-(d*d+L*L+a*a))<=b}const Y=Object.freeze(Object.defineProperty({__proto__:null,add:h,adjoint:u,copy:N,determinant:A,equals:C,exactEquals:r,frob:X,fromMat2d:Q,fromMat4:U,fromQuat:P,fromRotation:H,fromScaling:E,fromTranslation:D,identity:B,invert:m,isOrthoNormal:M,mul:K,multiply:K,multiplyScalar:w,multiplyScalarAndAdd:l,normalFromMat4:q,normalFromMat4Legacy:c,projection:t,rotate:x, scale:G,scaleByVec2:z,set:O,str:v,sub:g,subtract:g,translate:y,transpose:R},Symbol.toStringTag,{value:"Module"}));e.add=h;e.adjoint=u;e.copy=N;e.determinant=A;e.equals=C;e.exactEquals=r;e.frob=X;e.fromMat2d=Q;e.fromMat4=U;e.fromQuat=P;e.fromRotation=H;e.fromScaling=E;e.fromTranslation=D;e.identity=B;e.invert=m;e.isOrthoNormal=M;e.mat3=Y;e.mul=K;e.multiply=K;e.multiplyScalar=w;e.multiplyScalarAndAdd=l;e.normalFromMat4=q;e.normalFromMat4Legacy=c;e.projection=t;e.rotate=x;e.scale=G;e.scaleByVec2=z;e.set= O;e.str=v;e.sub=g;e.subtract=g;e.translate=y;e.transpose=R;Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})})},"esri/core/libs/gl-matrix-2/math/vec2":function(){define(["exports","./common"],function(e,I){function U(d,f){d[0]=f[0];d[1]=f[1];return d}function N(d,f,n){d[0]=f;d[1]=n;return d}function O(d,f,n){d[0]=f[0]+n[0];d[1]=f[1]+n[1];return d}function B(d,f,n){d[0]=f[0]-n[0];d[1]=f[1]-n[1];return d}function R(d,f,n){d[0]=f[0]*n[0];d[1]=f[1]*n[1];return d}function m(d,f,n){d[0]=f[0]/ n[0];d[1]=f[1]/n[1];return d}function u(d,f){d[0]=Math.ceil(f[0]);d[1]=Math.ceil(f[1]);return d}function A(d,f){d[0]=Math.floor(f[0]);d[1]=Math.floor(f[1]);return d}function K(d,f,n){d[0]=Math.min(f[0],n[0]);d[1]=Math.min(f[1],n[1]);return d}function y(d,f,n){d[0]=Math.max(f[0],n[0]);d[1]=Math.max(f[1],n[1]);return d}function x(d,f){d[0]=Math.round(f[0]);d[1]=Math.round(f[1]);return d}function G(d,f,n){d[0]=f[0]*n;d[1]=f[1]*n;return d}function z(d,f,n,L){d[0]=f[0]+n[0]*L;d[1]=f[1]+n[1]*L;return d} function D(d,f){const n=f[0]-d[0];d=f[1]-d[1];return Math.sqrt(n*n+d*d)}function H(d,f){const n=f[0]-d[0];d=f[1]-d[1];return n*n+d*d}function E(d){const f=d[0];d=d[1];return Math.sqrt(f*f+d*d)}function Q(d){const f=d[0];d=d[1];return f*f+d*d}function P(d,f){d[0]=-f[0];d[1]=-f[1];return d}function c(d,f){d[0]=1/f[0];d[1]=1/f[1];return d}function q(d,f){var n=f[0];const L=f[1];n=n*n+L*L;0n?Math.PI:Math.acos(n)}function Y(d){return"vec2("+d[0]+", "+d[1]+")"}function a(d,f){return d[0]===f[0]&& d[1]===f[1]}function b(d,f){const n=d[0];d=d[1];const L=f[0];f=f[1];const p=I.getEpsilon();return Math.abs(n-L)<=p*Math.max(1,Math.abs(n),Math.abs(L))&&Math.abs(d-f)<=p*Math.max(1,Math.abs(d),Math.abs(f))}function k(d,f,n,L,p){let F=f[0]-n[0];n=f[1]-n[1];p=(L[0]*F+L[1]*n)*(p-1);F=L[0]*p;n=L[1]*p;d[0]=f[0]+F;d[1]=f[1]+n;return d}const J=Object.freeze(Object.defineProperty({__proto__:null,add:O,angle:M,ceil:u,copy:U,cross:v,dist:D,distance:D,div:m,divide:m,dot:t,equals:b,exactEquals:a,floor:A,inverse:c, len:E,length:E,lerp:X,max:y,min:K,mul:R,multiply:R,negate:P,normalize:q,projectAndScale:k,random:h,rotate:C,round:x,scale:G,scaleAndAdd:z,set:N,sqrDist:H,sqrLen:Q,squaredDistance:H,squaredLength:Q,str:Y,sub:B,subtract:B,transformMat2:g,transformMat2d:w,transformMat3:l,transformMat4:r},Symbol.toStringTag,{value:"Module"}));e.add=O;e.angle=M;e.ceil=u;e.copy=U;e.cross=v;e.dist=D;e.distance=D;e.div=m;e.divide=m;e.dot=t;e.equals=b;e.exactEquals=a;e.floor=A;e.inverse=c;e.len=E;e.length=E;e.lerp=X;e.max= y;e.min=K;e.mul=R;e.multiply=R;e.negate=P;e.normalize=q;e.projectAndScale=k;e.random=h;e.rotate=C;e.round=x;e.scale=G;e.scaleAndAdd=z;e.set=N;e.sqrDist=H;e.sqrLen=Q;e.squaredDistance=H;e.squaredLength=Q;e.str=Y;e.sub=B;e.subtract=B;e.transformMat2=g;e.transformMat2d=w;e.transformMat3=l;e.transformMat4=r;e.vec2=J;Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})})},"esri/core/libs/gl-matrix-2/factories/vec2f64":function(){define(["exports"],function(e){function I(){return[0,0]}function U(D){return[D[0], D[1]]}function N(D,H){return[D,H]}function O(D,H=[0,0]){const E=Math.min(2,D.length);for(let Q=0;Q{if(c instanceof HTMLCanvasElement)var t=c;else{t=c instanceof HTMLImageElement?c.naturalWidth:c.width;var v=c instanceof HTMLImageElement?c.naturalHeight:c.height,X=document.createElement("canvas"),h=X.getContext("2d");X.width=t;X.height= v;c instanceof HTMLImageElement?h.drawImage(c,0,0,c.width,c.height):c instanceof ImageData&&h.putImageData(c,0,0);t=X}return t.toBlob(q)})}function P(c,q){const t=B.generateUUID();c=`${O.join("media",t)}.${D.getResourceContentExtension({type:"blob",blob:c})}`;return q.resourceFromPath(c)}m=class extends G{constructor(c){super(c);this.image=this.content=this.animationOptions=null;this.type="image";this.image=null}load(){const c=this.image;if("string"===typeof c){var q=N.getImageData(c).then(t=>{this._set("content", t)});this.addResolvingPromise(q)}else c instanceof HTMLImageElement?(q=c.decode().then(()=>{this._set("content",c)}),this.addResolvingPromise(q)):c?this._set("content",c):this.addResolvingPromise(Promise.reject(new U("image-element:invalid-image-type","Invalid image type",{image:c})));return Promise.resolve(this)}get contentWidth(){return null==this.content?0:this.content instanceof HTMLImageElement?this.content.naturalWidth:this.content.width}get contentHeight(){return null==this.content?0:this.content instanceof HTMLImageElement?this.content.naturalHeight:this.content.height}readImage(c,q,t){return H.fromJSON(q.url,t)}writeImage(c,q,t,v){if(null!=c){var X=v?.portalItem,h=v?.resources;if(X&&h){var g=E(c)?c:null;if(g){if(null==H.itemIdFromResourceUrl(g)){q[t]=g;return}v=H.toJSON(g,{...v,verifyItemRelativeUrls:v?.verifyItemRelativeUrls?{writtenUrls:v.verifyItemRelativeUrls.writtenUrls,rootPath:void 0}:void 0},H.MarkKeep.NO);if(X&&v&&!O.isAbsolute(v)){h.toKeep.push({resource:X.resourceFromPath(v),compress:!1}); q[t]=v;return}}q[t]="\x3cpending\x3e";h.pendingOperations.push(Q(c).then(w=>{const l=P(w,X);q[t]=l.itemRelativeUrl;h.toAdd.push({resource:l,content:{type:"blob",blob:w},compress:!1,finish:r=>{this.image=r.url}})}))}else"string"===typeof c&&(q[t]=H.toJSON(c,v))}}write(c,q){c=super.write(c,q);"mediaType"in c&&!c.url&&delete c.mediaType;return c}};e.__decorate([R.property()],m.prototype,"animationOptions",void 0);e.__decorate([R.property({readOnly:!0})],m.prototype,"content",void 0);e.__decorate([R.property({readOnly:!0})], m.prototype,"contentWidth",null);e.__decorate([R.property({readOnly:!0})],m.prototype,"contentHeight",null);e.__decorate([R.property({json:{name:"url",type:String,write:{overridePolicy(c,q,t){return{enabled:!z.isWritingLayerFromItemToWebDocument(t?.layer,t?.origin)}}}}})],m.prototype,"image",void 0);e.__decorate([K.reader("image",["url"])],m.prototype,"readImage",null);e.__decorate([x.writer("image")],m.prototype,"writeImage",null);e.__decorate([R.property({readOnly:!0,json:{read:!1,write:{target:"mediaType", ignoreOrigin:!0}}})],m.prototype,"type",void 0);return m=e.__decorate([y.subclass("esri.layers.support.ImageElement")],m)})},"esri/core/imageUtils":function(){define("require exports ../request ./Error ./promiseUtils ./urlUtils ../support/base64Utils".split(" "),function(e,I,U,N,O,B,R){function m(x,G,z){z||(K||(K=document.createElement("canvas"),K.width=1,K.height=1),z=K);return z.getContext("2d").createImageData(x,G)}async function u(x,G){x=window.URL.createObjectURL(x);try{const {data:z}=await U(x, {...G,responseType:"image"});return z}catch(z){if(!O.isAbortError(z))throw new N("invalid-image",`Could not fetch requested image at ${x}`);throw z;}finally{window.URL.revokeObjectURL(x)}}async function A(x,G){const z=B.dataComponents(x);if(z?.isBase64)return{arrayBuffer:R.base64ToArrayBuffer(z.data),mediaType:z.mediaType};G=await U(x,{responseType:"array-buffer",...G});x=G.data;G=G.getHeader?.("Content-Type")??"";return{arrayBuffer:x,mediaType:G}}let K=null,y=!0;I.createEmptyImageData=function(x, G,z){if(!x||!G)throw Error("Cannot construct image data without dimensions");if(y)try{return new ImageData(x,G)}catch(D){y=!1}return m(x,G,z)};I.getImageData=async function(x,G){const {arrayBuffer:z,mediaType:D}=await A(x,G);x="image/png"===D;if("image/gif"===D){const {isAnimatedGIF:H,parseGif:E}=await new Promise((Q,P)=>e(["./image/gif"],Q,P));if(H(z))return E(z,G)}if(x){const {isAnimatedPNG:H,parseApng:E}=await new Promise((Q,P)=>e(["./image/apng"],Q,P));if(H(z))return E(z,G)}x=new Blob([z],{type:D}); return u(x,G)};I.wrapImageData=function(x,G,z,D){if(!G||!z)throw Error("Cannot construct image data without dimensions");if(y)try{return new ImageData(x,G,z)}catch(H){y=!1}G=m(G,z,D);G.data.set(x,0);return G};Object.defineProperty(I,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/MediaElementBase":function(){define("../../chunks/tslib.es6 ../../core/Error ../../core/Identifiable ../../core/Loadable ../../core/Logger ../../core/MultiOriginJSONSupport ../../core/accessorSupport/decorators/property ../../core/has ../../core/RandomLCG ../../core/accessorSupport/decorators/reader ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/decorators/writer ./ControlPointsGeoreference ./CornersGeoreference ./ExtentAndRotationGeoreference ./GeoreferenceBase ./mediaUtils".split(" "), function(e,I,U,N,O,B,R,m,u,A,K,y,x,G,z,D,H){m={key:"type",base:D,typeMap:{"control-points":x,corners:G,"extent-and-rotation":z}};D={key:"type",base:D,typeMap:{"control-points":x}};U=class extends U.NumericIdentifiableMixin(B.MultiOriginJSONMixin(N)){constructor(E){super(E);this.georeference=null;this.opacity=1}readGeoreference(E){return x.fromJSON(E)}writeGeoreference(E,Q,P,c){const q=c?.resources?.pendingOperations,t=()=>{const v=H.toControlPointsGeoreference(this.georeference,this.contentWidth, this.contentHeight);v&&("control-points"!==E.type&&O.getLogger(this).warn(`only georeference of type 'control-points' may be persisted. The georeference of type '${E.type}' has been automatically converted.`),4!==v.controlPoints?.length&&c?.messages?c.messages.push(new I("property:unsupported","only 'control-points' georeference with 4 control points may be persisted.")):Q[P]=v.write({},c))};"control-points"!==E.type&&!this.loaded&&q?(Q[P]={},q.push(this.load().then(t))):t()}get contentWidth(){return 0}get contentHeight(){return 0}toSource(E){const {georeference:Q, contentWidth:P,contentHeight:c}=this;if(null==E||null==Q||0===P||0===c)return null;E=Q.toSourceNormalized(E);if(null==E)return null;E.x*=P;E.y*=c;return E}};e.__decorate([R.property({types:m,json:{write:!0,types:D}})],U.prototype,"georeference",void 0);e.__decorate([A.reader("georeference")],U.prototype,"readGeoreference",null);e.__decorate([y.writer("georeference")],U.prototype,"writeGeoreference",null);e.__decorate([R.property({json:{read:!1,write:!1}})],U.prototype,"opacity",void 0);return U=e.__decorate([K.subclass("esri.layers.support.MediaElementBase")], U)})},"esri/layers/support/CornersGeoreference":function(){define("../../chunks/tslib.es6 ../../core/perspectiveUtils ../../core/screenUtils ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ../../core/libs/gl-matrix-2/factories/mat3f64 ../../core/libs/gl-matrix-2/math/vec2 ../../core/libs/gl-matrix-2/factories/vec2f64 ../../geometry/Point ../../geometry/Polygon ../../geometry/projection ./GeoreferenceBase".split(" "), function(e,I,U,N,O,B,R,m,u,A,K,y,x,G,z){const D=K.create();O=class extends z{constructor(H){super(H);this.topRight=this.topLeft=this.bottomRight=this.bottomLeft=null;this.type="corners"}get coords(){let {topLeft:H,topRight:E,bottomLeft:Q,bottomRight:P}=this;if(null==H||null==E||null==Q||null==P)return null;const c=H.spatialReference;E=this.projectOrWarn(E,c);Q=this.projectOrWarn(Q,c);P=this.projectOrWarn(P,c);return null==E||null==Q||null==P?null:new x({rings:[[[Q.x,Q.y],[H.x,H.y],[E.x,E.y],[P.x, P.y],[Q.x,Q.y]]],spatialReference:c})}set coords(H){var {topLeft:E}=this;if(null!=E&&(E=E.spatialReference,H=this.projectOrWarn(H,E),null!=H)){var {rings:[[Q,P,c,q]]}=H;this.bottomLeft=new y({x:Q[0],y:Q[1],spatialReference:E});this.topLeft=new y({x:P[0],y:P[1],spatialReference:E});this.topRight=new y({x:c[0],y:c[1],spatialReference:E});this.bottomRight=new y({x:q[0],y:q[1],spatialReference:E})}}toSourceNormalized(H){const {topLeft:E,topRight:Q,bottomRight:P,bottomLeft:c}=this;if(null==H||null==E|| null==Q||null==P||null==c)return null;const q=E.spatialReference;H=H.normalize();H=G.projectOrLoad(H,q).geometry;if(null==H)return null;A.set(D,H.x,H.y);H=I.getProjectiveTransform(u.create(),[E.x,E.y,c.x,c.y,Q.x,Q.y,P.x,P.y],[0,0,0,1,1,0,1,1]);I.transformProjective(D,D,H);return U.createScreenPoint(D[0],D[1])}};e.__decorate([N.property({clonable:!1})],O.prototype,"coords",null);e.__decorate([N.property({type:y})],O.prototype,"bottomLeft",void 0);e.__decorate([N.property({type:y})],O.prototype,"bottomRight", void 0);e.__decorate([N.property({type:y})],O.prototype,"topLeft",void 0);e.__decorate([N.property({type:y})],O.prototype,"topRight",void 0);return O=e.__decorate([m.subclass("esri.layers.support.CornersGeoreference")],O)})},"esri/layers/support/ExtentAndRotationGeoreference":function(){define("../../chunks/tslib.es6 ../../core/mathUtils ../../core/screenUtils ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ../../core/libs/gl-matrix-2/math/common ../../geometry/Extent ../../geometry/Polygon ../../geometry/projection ./GeoreferenceBase".split(" "), function(e,I,U,N,O,B,R,m,u,A,K,y,x){function G(z,D,H){H=u.toRadian(H);const E=Math.cos(H),Q=Math.sin(H);return(P,c)=>[E*(P-z)+Q*(c-D)+z,E*(c-D)-Q*(P-z)+D]}O=class extends x{constructor(z){super(z);this.extent=null;this.rotation=0;this.type="extent-and-rotation"}get coords(){if(null==this.extent)return null;const {xmin:z,ymin:D,xmax:H,ymax:E,spatialReference:Q}=this.extent;if(this.rotation){const {x:c,y:q}=this.extent.center;var P=G(c,q,this.rotation);P=[P(z,D),P(z,E),P(H,E),P(H,D)];P.push(P[0])}else P= [[z,D],[z,E],[H,E],[H,D],[z,D]];return new K({rings:[P],spatialReference:Q})}set coords(z){if(null!=z&&null!=this.extent){var D=this.extent.spatialReference;z=this.projectOrWarn(z,D);if(null!=z?.extent){var {rings:[[H,E,Q]],extent:{center:{x:P,y:c}}}=z;z=I.rad2deg(Math.PI/2-Math.atan2(E[1]-H[1],E[0]-H[0]));var q=G(P,c,-z),[t,v]=q(H[0],H[1]),[X,h]=q(Q[0],Q[1]);this.extent=new A({xmin:t,ymin:v,xmax:X,ymax:h,spatialReference:D});this.rotation=z}}}toSourceNormalized(z){const {extent:D,rotation:H}=this; if(null==z||null==D)return null;const {xmin:E,ymin:Q,xmax:P,ymax:c,center:q,spatialReference:t}=D;z=z.normalize();var v=y.projectOrLoad(z,t).geometry;if(null==v)return null;z=v.x;v=v.y;H&&([z,v]=G(q.x,q.y,-H)(z,v));return U.createScreenPoint(I.scale(z,E,P,0,1),I.scale(v,c,Q,0,1))}};e.__decorate([N.property({clonable:!1})],O.prototype,"coords",null);e.__decorate([N.property({type:A})],O.prototype,"extent",void 0);e.__decorate([N.property({type:Number})],O.prototype,"rotation",void 0);return O=e.__decorate([m.subclass("esri.layers.support.ExtentAndRotationGeoreference")], O)})},"esri/layers/support/mediaUtils":function(){define("exports ../../geometry ../../core/screenUtils ../../core/accessorSupport/PropertyOrigin ../../geometry/support/spatialReferenceUtils ./ControlPointsGeoreference ../../geometry/Extent ../../geometry/Point".split(" "),function(e,I,U,N,O,B,R,m){e.createDefaultControlPointsGeoreference=async function(u,A){u.loaded||await u.load();const {contentWidth:K,contentHeight:y}=u;({spatialReference:u}=A);var x=O.getInfo(u),G=!1;x&&A.width>x.valid[1]-x.valid[0]&& (A=new R({xmin:x.valid[0],ymin:A.ymin,xmax:x.valid[1],ymax:A.ymax,spatialReference:A.spatialReference}),G=!0);A=A.expand(.5);const {center:z,width:D,height:H}=A;x=G||K>y?D:K/y*H;A=G||K>y?y/K*D:H;G=z.x-x/2;x=z.x+x/2;const E=z.y+A/2;A=z.y-A/2;return new B({controlPoints:[{sourcePoint:{x:100,y:y-100},mapPoint:new m({x:G,y:A,spatialReference:u})},{sourcePoint:{x:100,y:100},mapPoint:new m({x:G,y:E,spatialReference:u})},{sourcePoint:{x:K-100,y:100},mapPoint:new m({x,y:E,spatialReference:u})},{sourcePoint:{x:K- 100,y:y-100},mapPoint:new m({x,y:A,spatialReference:u})}],width:K,height:y})};e.createLocalModeControlPointsGeoreference=function(u){u=u.georeference;if("control-points"!==u.type)return null;const A={wkid:0},{width:K,height:y}=u;return new B({controlPoints:u.controlPoints.map(x=>{const {x:G,y:z}=x.sourcePoint;return{sourcePoint:{x:G,y:z},mapPoint:new m({x:G,y:y-z,spatialReference:A})}}),width:K,height:y})};e.isWritingLayerFromItemToWebDocument=function(u,A){A=N.nameToId(A);return"media"===u?.type&& !!u.portalItem&&null!=A&&A>N.OriginId.PORTAL_ITEM};e.toControlPointsGeoreference=function(u,A,K){if(!u||"control-points"===u.type)return u;({coords:u}=u);if(5!==u?.rings[0]?.length)return null;const [y,x,G,z]=u.rings[0];({spatialReference:u}=u);return new B({controlPoints:[{mapPoint:new m({x:y[0],y:y[1],spatialReference:u}),sourcePoint:U.createScreenPoint(0,K)},{mapPoint:new m({x:x[0],y:x[1],spatialReference:u}),sourcePoint:U.createScreenPoint(0,0)},{mapPoint:new m({x:G[0],y:G[1],spatialReference:u}), sourcePoint:U.createScreenPoint(A,0)},{mapPoint:new m({x:z[0],y:z[1],spatialReference:u}),sourcePoint:U.createScreenPoint(A,K)}],width:A,height:K})};Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})})},"esri/portal/support/resourceExtension":function(){define(["exports","../../core/urlUtils"],function(e,I){const U={},N=U["text/plain"],O={png:"image/png",jpeg:"image/jpeg",jpg:"image/jpg",bmp:"image/bmp",gif:"image/gif",json:"application/json",txt:"text/plain",xml:"application/xml",svg:"image/svg+xml", zip:"application/zip",pbf:"application/vnd.mapbox-vector-tile",gz:"application/gzip","bin.gz":"application/octet-stream"};for(const B in O)U[O[B]]=B;e.getResourceContentExtension=function(B){"json"===B.type?B="application/json":"blob"===B.type?B=B.blob.type:(B=I.getPathExtension(B.url),B=O[B]||"text/plain");return U[B]||N};Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/LocalMediaElementSource":function(){define("../../chunks/tslib.es6 ../../geometry ../../core/Collection ../../core/collectionUtils ../../core/Evented ../../core/Loadable ../../core/Logger ../../core/Promise ../../core/promiseUtils ../../core/reactiveUtils ../../core/accessorSupport/decorators/property ../../core/has ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ../../geometry/Extent ../../geometry/projection ../../geometry/support/aaBoundingRect ../../geometry/support/intersectsBase ../../geometry/support/spatialReferenceUtils ../graphics/data/BoundsStore ./ImageElement ./MediaElementBase ./MediaElementView ./VideoElement ../../geometry/SpatialReference".split(" "), function(e,I,U,N,O,B,R,m,u,A,K,y,x,G,z,D,H,E,Q,P,c,q,t,v,X){const h=U.ofType({key:"type",defaultKeyValue:"image",base:q,typeMap:{image:c,video:v}});I=class extends B.LoadableMixin(m.EsriPromiseMixin(O.EventedAccessor)){constructor(g){super(g);this._index=new P.BoundsStore;this._elementViewsMap=new Map;this._elementsIndexes=new Map;this._elementsChangedHandler=w=>{for(var l of w.removed){const r=this._elementViewsMap.get(l);this._elementViewsMap.delete(l);this._index.delete(r);this.removeHandles(r); r.destroy();this.notifyChange("fullExtent")}({spatialReference:l}=this);for(const r of w.added){if(this._elementViewsMap.get(r))continue;const C=new t.MediaElementView({spatialReference:l,element:r});this._elementViewsMap.set(r,C);w=A.watch(()=>C.coords,()=>this._updateIndexForElement(C,!1));this._updateIndexForElement(C,!0);this.addHandles(w,C)}this._elementsIndexes.clear();this.elements.forEach((r,C)=>this._elementsIndexes.set(r,C));this.emit("refresh")};this.elements=new h}async load(g){u.throwIfAborted(g); this.spatialReference||(g=this.elements.find(w=>null!=w.georeference?.coords),this._set("spatialReference",g?g.georeference.coords.spatialReference:X.WGS84));this._elementsChangedHandler({added:this.elements.items,removed:[]});this.addHandles(this.elements.on("change",this._elementsChangedHandler));return this}destroy(){this._index.clear();this._elementViewsMap.clear();this._elementsIndexes.clear()}set elements(g){this._set("elements",N.referenceSetter(g,this._get("elements"),h))}get fullExtent(){if("not-loaded"=== this.loadStatus)return null;const g=this._index.fullBounds;return null==g?null:new z({xmin:g[0],ymin:g[1],xmax:g[2],ymax:g[3],spatialReference:this.spatialReference})}set spatialReference(g){"not-loaded"!==this.loadStatus?R.getLogger(this).error("#spatialReference","spatialReference cannot be changed after the source is loaded."):this._set("spatialReference",g)}async queryElements(g,w){await this.load();await D.initializeProjection(g.spatialReference,this.spatialReference,null,w);g=Q.equals(g.spatialReference, this.spatialReference)?g:D.project(g,this.spatialReference);if(!g)return[];g=g.normalize();const l=[];for(const r of g)this._index.forEachInBounds(H.fromExtent(r),({normalizedCoords:C,element:M})=>{null!=C&&E.extentIntersectsPolygon(r,C)&&l.push(M)});l.sort((r,C)=>this._elementsIndexes.get(r)-this._elementsIndexes.get(C));return l}hasElement(g){return this.elements.includes(g)}_updateIndexForElement(g,w){const l=g.normalizedBounds,r=this._index.has(g),C=null!=l;this._index.delete(g);C&&this._index.set(g, l);this.notifyChange("fullExtent");w||(r!==C?this.emit("refresh"):this.emit("change",{element:g.element}))}};e.__decorate([K.property()],I.prototype,"elements",null);e.__decorate([K.property({readOnly:!0})],I.prototype,"fullExtent",null);e.__decorate([K.property()],I.prototype,"spatialReference",null);return I=e.__decorate([G.subclass("esri.layers.support.LocalMediaElementSource")],I)})},"esri/layers/graphics/data/BoundsStore":function(){define(["exports","../../../core/has","../../../core/libs/rbush/PooledRBush", "../../../geometry/support/aaBoundingRect"],function(e,I,U,N){function O(m,u,A){B.minX=u[0];B.minY=u[1];B.maxX=u[2];B.maxY=u[3];m.search(B,A)}const B={minX:0,minY:0,maxX:0,maxY:0};class R{constructor(){this._indexInvalid=!1;this._boundsToLoad=[];this._boundsById=new Map;this._idByBounds=new Map;this._index=new U.PooledRBush(9,I("esri-csp-restrictions")?m=>({minX:m[0],minY:m[1],maxX:m[2],maxY:m[3]}):["[0]","[1]","[2]","[3]"]);this._loadIndex=()=>{if(this._indexInvalid){const m=Array(this._idByBounds.size); let u=0;this._idByBounds.forEach((A,K)=>{m[u++]=K});this._indexInvalid=!1;this._index.clear();this._index.load(m)}else this._boundsToLoad.length&&(this._index.load(Array.from(new Set(this._boundsToLoad.filter(m=>this._idByBounds.has(m))))),this._boundsToLoad.length=0)}}get fullBounds(){if(!this._boundsById.size)return null;const m=N.empty();for(const u of this._boundsById.values())u&&(m[0]=Math.min(u[0],m[0]),m[1]=Math.min(u[1],m[1]),m[2]=Math.max(u[2],m[2]),m[3]=Math.max(u[3],m[3]));return m}get valid(){return!this._indexInvalid}clear(){this._indexInvalid= !1;this._boundsToLoad.length=0;this._boundsById.clear();this._idByBounds.clear();this._index.clear()}delete(m){const u=this._boundsById.get(m);this._boundsById.delete(m);u&&(this._idByBounds.delete(u),this._indexInvalid||this._index.remove(u))}forEachInBounds(m,u){this._loadIndex();O(this._index,m,A=>u(this._idByBounds.get(A)))}get(m){return this._boundsById.get(m)}has(m){return this._boundsById.has(m)}invalidateIndex(){this._indexInvalid||(this._indexInvalid=!0,this._boundsToLoad.length=0)}set(m, u){if(!this._indexInvalid){const A=this._boundsById.get(m);A&&(this._index.remove(A),this._idByBounds.delete(A))}this._boundsById.set(m,u);u&&(this._idByBounds.set(u,m),this._indexInvalid||(this._boundsToLoad.push(u),5E4=h.minX&&g.maxY>=h.minY}function D(h,g,w,l,r){for(g=[g,w];g.length;){w=g.pop();const C=g.pop();if(w-C<=l)continue;const M=C+Math.ceil((w-C)/l/2)*l;O.quickselect(h,M,C,w,r);g.push(C,M,M,w)}} class H{constructor(h=9,g){this._compareMinX=A;this._compareMinY=K;this._toBBox=w=>w;this._maxEntries=Math.max(4,h||9);this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries));g&&("function"===typeof g?this._toBBox=g:this._initFormat(g));this.clear()}destroy(){this.clear();E.prune();Q.prune();P.prune();c.prune()}all(h){B(this._data,h)}search(h,g){let w=this._data;const l=this._toBBox;if(z(h,w))for(E.clear();w;){for(let r=0,C=w.children.length;rthis._maxEntries)this._split(P,g),g--;else break;for(h=P;0<=g;g--)u(h.data[g],w)}_split(h,g){const w=h.data[g];var l=w.children.length;const r=this._minEntries;this._chooseSplitAxis(w,r,l);if(l=this._chooseSplitIndex(w,r,l))l=w.children.splice(l,w.children.length-l),l=w.leaf?new v(l):new X(l),l.height=w.height,R(w,this._toBBox),R(l,this._toBBox), g?h.data[g-1].children.push(l):this._splitRoot(w,l)}_splitRoot(h,g){this._data=new X([h,g]);this._data.height=h.height+1;R(this._data,this._toBBox)}_chooseSplitIndex(h,g,w){let l,r,C=void 0;l=r=Infinity;for(let Y=g;Y<=w-g;Y++){var M=m(h,0,Y,this._toBBox);const a=m(h,Y,w,this._toBBox),b=Math.max(0,Math.min(M.maxX,a.maxX)-Math.max(M.minX,a.minX))*Math.max(0,Math.min(M.maxY,a.maxY)-Math.max(M.minY,a.minY));M=y(M)+y(a);b=g;w--)r=h.children[w],u(C,h.leaf?l(r):r),M+=x(C);return M}_condense(h){for(let g=h.length-1;0<=g;g--){const w=h.data[g];if(0===w.children.length)if(0A;){if(600G-x/2?-1:1);O(m,u,Math.max(A,Math.floor(u-G*D/x+z)),Math.min(K,Math.floor(u+(x-G)*D/x+z)),y)}x=m[u];G=A;D=K;B(m,A,u);for(0y(m[G],x);)G++;for(;0 u?1:0}return function(m,u,A,K,y){O(m,u,A||0,K||m.length-1,y||R)}})})(U);I=I.getDefaultExportFromCjs(U.exports);e.quickselect=I})},"esri/layers/support/MediaElementView":function(){define("exports ../../chunks/tslib.es6 ../../core/Accessor ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ../../geometry/Polygon ../../geometry/projection ../../geometry/support/aaBoundingRect ../../geometry/support/normalizeUtilsSync".split(" "), function(e,I,U,N,O,B,R,m,u,A,K,y){e.MediaElementView=class extends U{constructor(x){super(x)}get bounds(){const x=this.coords;return null==x?.extent?null:K.fromExtent(x.extent)}get coords(){return A.projectOrLoad(this.element.georeference?.coords,this.spatialReference).geometry}get normalizedCoords(){return u.fromJSON(y.normalizeCentralMeridianSync(this.coords))}get normalizedBounds(){const x=null!=this.normalizedCoords?this.normalizedCoords.extent:null;return null!=x?K.fromExtent(x):null}};I.__decorate([N.property()], e.MediaElementView.prototype,"spatialReference",void 0);I.__decorate([N.property()],e.MediaElementView.prototype,"element",void 0);I.__decorate([N.property()],e.MediaElementView.prototype,"bounds",null);I.__decorate([N.property()],e.MediaElementView.prototype,"coords",null);I.__decorate([N.property()],e.MediaElementView.prototype,"normalizedCoords",null);I.__decorate([N.property()],e.MediaElementView.prototype,"normalizedBounds",null);e.MediaElementView=I.__decorate([m.subclass("esri.layers.support.MediaElementView")], e.MediaElementView);Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})})},"esri/geometry/support/normalizeUtilsSync":function(){define("exports ../../core/JSONSupport ./aaBoundingRect ./boundsUtils ./coordsUtils ./jsonUtils ./normalizeUtilsCommon ./spatialReferenceUtils".split(" "),function(e,I,U,N,O,B,R,m){function u(c,q){if(null==c)return null;var t=c.spatialReference,v=m.getInfo(t);c=I.isSerializable(c)?c.toJSON():c;if(!v)return c;t=m.isWebMercator(t)?102100:4326;const X=R.cutParams[t].maxX, h=R.cutParams[t].minX;if(B.isPoint(c))return K(c,X,h);if(B.isMultipoint(c))c.points=c.points.map(g=>K(g,X,h));else{if(B.isExtent(c))return A(c,v);if(B.isPolygon(c)||B.isPolyline(c)){t=N.getBoundsXY(Q,c);v=t[0];t=t[2];const g=2*R.offsetMagnitude(v,h)*X;c=0===g?c:R.updatePolyGeometry(c,g);v+=g;t+=g;return t>X?D(c,X,q):vv.extent);return 2>t.length?t[0]||c:2[[v.xmin, v.ymin],[v.xmin,v.ymax],[v.xmax,v.ymax],[v.xmax,v.ymin],[v.xmin,v.ymin]])}}function K(c,q,t){if(Array.isArray(c)){var v=c[0];v>q?(t=R.offsetMagnitude(v,q),c[0]=v+-2*t*q):vq?(t=R.offsetMagnitude(v,q),c.x+=-2*t*q):v2*r){w= {xmin:hY||c?t.push(new E({xmin:C,ymin:v,xmax:r,ymax:X},[M]),new E({xmin:l,ymin:v,xmax:Y,ymax:X},[a])):t.push(new E({xmin:C,ymin:v,xmax:Y,ymax:X},[M]));return t}function x(c,q){const [t, v]=q.valid;q=2*v;var X=0;c>v?(X=Math.ceil(Math.abs(c-v)/q),c-=X*q):c=c.xmin&&q<=c.xmax&&t>=c.ymin&&t<=c.ymax?!0:!1}function D(c,q,t=!0){const v=!B.isPolyline(c);v&&O.closeRings(c);if(t)return(new P).cut(c,q);t=v?c.rings:c.paths;const X=v?4:2,h=t.length;q*=-2;for(let g=0;g= X){const l=[];for(const r of w)l.push([r[0]+q,r[1]]);t.push(l)}}v?c.rings=t:c.paths=t;return c}function H(c,q,t){const v=c.length;1=this._minPts&&q.push(v);t=-2*this._xCut;for(const v of this._linesOut)if(v&&v.length>=this._minPts){for(const X of v)X[0]+=t;q.push(v)}this._closed?c.rings=q:c.paths=q;return c}moveTo(c){this._pushLineIn();this._pushLineOut();this._prevSide=this._side(c[0]);this._moveTo(c[0],c[1],this._prevSide);this._firstPt=this._prevPt= c}lineTo(c){const q=this._side(c[0]);if(-1===q*this._prevSide){const t=this._intersect(this._prevPt,c);this._lineTo(this._xCut,t,0);this._prevSide=0}this._lineTo(c[0],c[1],q);this._prevSide=q;this._prevPt=c}close(){const c=this._firstPt,q=this._prevPt;c[0]===q[0]&&c[1]===q[1]||this.lineTo(c);this._checkClosingPt(this._lineIn);this._checkClosingPt(this._lineOut)}_moveTo(c,q,t){this._closed?(this._lineIn.push([0>=t?c:this._xCut,q]),this._lineOut.push([0<=t?c:this._xCut,q])):(0>=t&&this._lineIn.push([c, q]),0<=t&&this._lineOut.push([c,q]))}_lineTo(c,q,t){this._closed?(H(this._lineIn,0>=t?c:this._xCut,q),H(this._lineOut,0<=t?c:this._xCut,q)):0>t?(0===this._prevSide&&this._pushLineOut(),this._lineIn.push([c,q])):0this._prevSide?(this._lineIn.push([c,q]),this._lineOut.push([c,q])):0this._xCut?1:0}_intersect(c,q){return c[1]+(this._xCut-c[0])/(q[0]-c[0])*(q[1]-c[1])}_pushLineIn(){this._lineIn&&this._lineIn.length>=this._minPts&&this._linesIn.push(this._lineIn);this._lineIn=[]}_pushLineOut(){this._lineOut&&this._lineOut.length>=this._minPts&&this._linesOut.push(this._lineOut);this._lineOut=[]}}e.CutVertical=P;e.normalizeCentralMeridianForDisplay=function(c){return u(c,!1)};e.normalizeCentralMeridianSync= function(c){return u(c,!0)};Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/VideoElement":function(){define("../../chunks/tslib.es6 ../../core/Error ../../core/events ../../core/Logger ../../core/accessorSupport/decorators/property ../../core/has ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ./MediaElementBase".split(" "),function(e,I,U,N,O,B,R,m,u){B=class extends u{constructor(A){super(A);this.autoplay=!0;this.content=null;this.type="video"}load(){const A= this.video;if("string"===typeof A){const K=document.createElement("video");K.src=A;K.crossOrigin="anonymous";K.autoplay=!0;K.muted=!0;K.loop=!0;K.playsInline=!0;this.addResolvingPromise(this._loadVideo(K).then(()=>{this._set("content",K)}))}else A instanceof HTMLVideoElement?this.addResolvingPromise(this._loadVideo(A).then(()=>{this._set("content",A)})):this.addResolvingPromise(Promise.reject(new I("video-element:invalid-video-type","Invalid video type",{video:A})));return Promise.resolve(this)}get contentWidth(){return this.content?.videoWidth?? 0}get contentHeight(){return this.content?.videoHeight??0}set video(A){"not-loaded"!==this.loadStatus?N.getLogger(this).error("#video","video cannot be changed after the element is loaded."):this._set("video",A)}_loadVideo(A){return new Promise((K,y)=>{const x=U.once(A,"canplay",()=>{this.removeHandles("canplay");this.autoplay?A.play().then(K,y):K()});this.addHandles(x,"canplay");"anonymous"!==A.crossOrigin&&(A.crossOrigin="anonymous",A.src?.includes("blob:")||(A.src=A.src))})}};e.__decorate([O.property()], B.prototype,"autoplay",void 0);e.__decorate([O.property({readOnly:!0})],B.prototype,"content",void 0);e.__decorate([O.property({readOnly:!0})],B.prototype,"contentWidth",null);e.__decorate([O.property({readOnly:!0})],B.prototype,"contentHeight",null);e.__decorate([O.property()],B.prototype,"video",null);return B=e.__decorate([m.subclass("esri.layers.support.VideoElement")],B)})},"*noref":1}}); define("require ../chunks/tslib.es6 ../core/Collection ../core/Error ../core/Logger ../core/MultiOriginJSONSupport ../core/promiseUtils ../core/accessorSupport/decorators/property ../core/accessorSupport/decorators/cast ../core/RandomLCG ../core/has ../core/accessorSupport/decorators/reader ../core/accessorSupport/decorators/subclass ../core/accessorSupport/decorators/writer ../core/accessorSupport/PropertyOrigin ./Layer ./mixins/BlendLayer ./mixins/OperationalLayer ./mixins/PortalLayer ./mixins/ScaleRangeLayer ./support/ControlPointsGeoreference ./support/ImageElement ./support/LocalMediaElementSource ./support/mediaUtils ./support/VideoElement ../webdoc/interfaces".split(" "),function(e, I,U,N,O,B,R,m,u,A,K,y,x,G,z,D,H,E,Q,P,c,q,t,v,X,h){function g(l){return"object"===typeof l&&null!=l&&"type"in l}function w(l){return g(l)&&"image"===l.type}B=class extends H.BlendLayer(P.ScaleRangeLayer(E.OperationalLayer(Q.PortalLayer(B.MultiOriginJSONMixin(D))))){constructor(l){super(l);this.copyright=this.georeference=this.effectiveSource=null;this.operationalLayerType="MediaLayer";this.spatialReference=null;this.type="media";this._debouncedSaveOperations=R.debounce(async(r,C,M)=>{const {save:Y, saveAs:a}=await new Promise((b,k)=>e(["./save/mediaLayerUtils"],b,k));switch(r){case h.SaveOperationType.SAVE:return Y(this,C);case h.SaveOperationType.SAVE_AS:return a(this,M,C)}});this.source=new t}load(l){this.addResolvingPromise(this._doLoad(l));return Promise.resolve(this)}async _doLoad(l){await this.loadFromPortal({supportedTypes:["Media Layer"]},l);var r=this.source;if(!r)throw new N("media-layer:source-missing","Set 'MediaLayer.source' before loading the layer.");const C=this._getSourceOverride(r, this.georeference);C&&(this.setAtOrigin("source",C,"web-map"),this.setAtOrigin("source",C,"web-scene"),r=C);r=g(r)?new t({elements:new U([r])}):r;this._set("effectiveSource",r);this.spatialReference&&(r.spatialReference=this.spatialReference);await r.load(l);this.spatialReference=r.spatialReference}destroy(){this.effectiveSource?.destroy();this.effectiveSource!==this.source&&this.source?.destroy()}readGeoreference(l,r){return l&&"itemId"in r&&r.itemId?l:void 0}get fullExtent(){return this.loaded? this.effectiveSource.fullExtent:null}set source(l){"loaded"===this.loadStatus||"failed"===this.loadStatus?O.getLogger(this).error("#source","source cannot be changed after the layer is loaded."):this._set("source",l)}castSource(l){return l?Array.isArray(l)?new t({elements:new U(l)}):l instanceof U?new t({elements:l}):l:null}readSource(l,r,C){if(!("itemId"in r&&r.itemId))return l=this._createSource(r),l?.read(r,C),l}writeSource(l,r,C,M){if(l&&l instanceof t){C=l.elements.length;if(1!==C){M?.messages&& M.messages.push(new N("media-layer:unsupported-source",`local media element source can only be persisted if it contains exactly one ImageElement, but it has ${C}.`));return}l=l.elements.at(0)}w(l)?l.write(r,M):M?.messages&&(l?M.messages.push(new N("media-layer:unsupported-source","only media elements of type 'ImageElement' can be persisted")):M.messages.push(new N("media-layer:unsupported-source","the media layer is missing a source")))}async save(l){return this._debouncedSaveOperations(h.SaveOperationType.SAVE, l)}async saveAs(l,r){return this._debouncedSaveOperations(h.SaveOperationType.SAVE_AS,r,l)}_createSource(l){if("mediaType"in l)switch(l.mediaType){case "image":return new q;case "video":return new X}return null}_getSourceOverride(l,r){if(g(l)&&this.originIdOf("source")===z.OriginId.PORTAL_ITEM&&r&&(this.originIdOf("georeference")===z.OriginId.WEB_MAP||this.originIdOf("georeference")===z.OriginId.WEB_SCENE)){l=l.toJSON();const C=this._createSource(l);C.read({...l},{origin:"portal-item"});C.read({georeference:r}, {origin:"web-map"});C.read({georeference:r},{origin:"web-scene"});return C}return null}};I.__decorate([m.property({readOnly:!0})],B.prototype,"effectiveSource",void 0);I.__decorate([m.property({readOnly:!0,json:{read:!1,write:!1,origins:{"web-document":{read:!0}}}})],B.prototype,"georeference",void 0);I.__decorate([y.reader("web-document","georeference")],B.prototype,"readGeoreference",null);I.__decorate([m.property({type:String})],B.prototype,"copyright",void 0);I.__decorate([m.property({readOnly:!0})], B.prototype,"fullExtent",null);I.__decorate([m.property({type:["MediaLayer"]})],B.prototype,"operationalLayerType",void 0);I.__decorate([m.property({type:["show","hide"]})],B.prototype,"listMode",void 0);I.__decorate([m.property({nonNullable:!0,json:{write:{enabled:!0,allowNull:!1,target:{url:{type:String},mediaType:{type:["image"]},georeference:{type:c}},overridePolicy(l,r,C){return{enabled:!0,allowNull:!1,ignoreOrigin:v.isWritingLayerFromItemToWebDocument(this,C?.origin)&&w(l)&&!!l.georeference&& l.originIdOf("georeference")>z.OriginId.PORTAL_ITEM}}}}})],B.prototype,"source",null);I.__decorate([u.cast("source")],B.prototype,"castSource",null);I.__decorate([y.reader("source",["url"])],B.prototype,"readSource",null);I.__decorate([G.writer("source")],B.prototype,"writeSource",null);I.__decorate([m.property()],B.prototype,"spatialReference",void 0);I.__decorate([m.property({readOnly:!0})],B.prototype,"type",void 0);return B=I.__decorate([x.subclass("esri.layers.MediaLayer")],B)});