@arcgis/core 4.25.0-next.20221020 → 4.25.0-next.20221021
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/WebMap.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0b0f3e93f658a012d5f0.js +1 -0
- package/assets/esri/core/workers/chunks/2ebba71cbbfa62ddf46a.js +1 -0
- package/assets/esri/core/workers/chunks/6dfb2ddfd72009564a34.js +1 -0
- package/assets/esri/core/workers/chunks/883cfe319b15ebabf71e.js +1 -0
- package/assets/esri/core/workers/chunks/925f53f4ef097c5ce204.js +1 -0
- package/assets/esri/core/workers/chunks/9d410721f42259efe666.js +1 -0
- package/assets/esri/core/workers/chunks/b5e6a868256c5aae6d5e.js +1 -0
- package/assets/esri/core/workers/chunks/{a9b77bea0b8d7a2e5f65.js → c8c0f091aab41e4effa5.js} +1 -1
- package/assets/esri/core/workers/chunks/d573ec98401fbae26383.js +1 -0
- package/layers/MapNotesLayer.js +1 -1
- package/package.json +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
- package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
- package/views/3d/analysis/Slice/SliceTool.js +1 -1
- package/views/3d/analysis/Slice/SliceVisualization.js +1 -1
- package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.js +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
- package/views/3d/interactive/manipulatorUtils.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/draw/DrawOperation.js +1 -1
- package/views/draw/drawSurfaces.js +1 -1
- package/views/interactive/dragEventPipeline.js +1 -1
- package/views/interactive/snapping/SnappingDragPipelineStep.js +1 -1
- package/views/interactive/snapping/SnappingOperation.js +1 -1
- package/assets/esri/core/workers/chunks/09255015e57bdfa5337f.js +0 -1
- package/assets/esri/core/workers/chunks/24ffd7180bb947bc8aec.js +0 -1
- package/assets/esri/core/workers/chunks/5f1c474a0e2dd8da6f2f.js +0 -1
- package/assets/esri/core/workers/chunks/6a2358861b3d3007ad26.js +0 -1
- package/assets/esri/core/workers/chunks/bf248b08e18a50878f38.js +0 -1
- package/assets/esri/core/workers/chunks/c9399a106dc167368a39.js +0 -1
- package/assets/esri/core/workers/chunks/cdfa8b788bde5334672a.js +0 -1
- package/assets/esri/core/workers/chunks/dbf72099949febfae5a1.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[4370,3172,9880,661],{22303:(e,t,r)=>{r.d(t,{Z:()=>m});var n,s,a=r(35270),i=r(22021),o=r(70586),l=r(75215);function u(e){return(0,i.uZ)((0,l.vU)(e),0,255)}function c(e,t,r){return e=Number(e),isNaN(e)?r:e<t?t:e>r?r:e}class h{constructor(e){this.r=255,this.g=255,this.b=255,this.a=1,e&&this.setColor(e)}static blendColors(e,t,r,n=new h){return n.r=Math.round(e.r+(t.r-e.r)*r),n.g=Math.round(e.g+(t.g-e.g)*r),n.b=Math.round(e.b+(t.b-e.b)*r),n.a=e.a+(t.a-e.a)*r,n._sanitize()}static fromRgb(e,t){const r=e.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(r){const e=r[2].split(/\s*,\s*/),n=r[1];if("rgb"===n&&3===e.length||"rgba"===n&&4===e.length){const r=e[0];if("%"===r.charAt(r.length-1)){const r=e.map((e=>2.56*parseFloat(e)));return 4===e.length&&(r[3]=parseFloat(e[3])),h.fromArray(r,t)}return h.fromArray(e.map((e=>parseFloat(e))),t)}if("hsl"===n&&3===e.length||"hsla"===n&&4===e.length)return h.fromArray((0,a.B7)(parseFloat(e[0]),parseFloat(e[1])/100,parseFloat(e[2])/100,parseFloat(e[3])),t)}return null}static fromHex(e,t=new h){if(4!==e.length&&7!==e.length||"#"!==e[0])return null;const r=4===e.length?4:8,n=(1<<r)-1;let s=Number("0x"+e.substr(1));return isNaN(s)?null:(["b","g","r"].forEach((e=>{const a=s&n;s>>=r,t[e]=4===r?17*a:a})),t.a=1,t)}static fromArray(e,t=new h){return t._set(Number(e[0]),Number(e[1]),Number(e[2]),Number(e[3])),isNaN(t.a)&&(t.a=1),t._sanitize()}static fromString(e,t){const r=(0,a.St)(e)?(0,a.h$)(e):null;return r&&h.fromArray(r,t)||h.fromRgb(e,t)||h.fromHex(e,t)}static fromJSON(e){return e&&new h([e[0],e[1],e[2],e[3]/255])}static toUnitRGB(e){return(0,o.pC)(e)?[e.r/255,e.g/255,e.b/255]:null}static toUnitRGBA(e){return(0,o.pC)(e)?[e.r/255,e.g/255,e.b/255,null!=e.a?e.a:1]:null}get isBright(){return.299*this.r+.587*this.g+.114*this.b>=127}setColor(e){return"string"==typeof e?h.fromString(e,this):Array.isArray(e)?h.fromArray(e,this):(this._set(e.r??0,e.g??0,e.b??0,e.a??1),e instanceof h||this._sanitize()),this}toRgb(){return[this.r,this.g,this.b]}toRgba(){return[this.r,this.g,this.b,this.a]}toHex(){const e=this.r.toString(16),t=this.g.toString(16),r=this.b.toString(16);return`#${e.length<2?"0"+e:e}${t.length<2?"0"+t:t}${r.length<2?"0"+r:r}`}toCss(e=!1){const t=this.r+", "+this.g+", "+this.b;return e?`rgba(${t}, ${this.a})`:`rgb(${t})`}toString(){return this.toCss(!0)}toJSON(){return this.toArray()}toArray(e=h.AlphaMode.ALWAYS){const t=u(this.r),r=u(this.g),n=u(this.b);return e===h.AlphaMode.ALWAYS||1!==this.a?[t,r,n,u(255*this.a)]:[t,r,n]}clone(){return new h(this.toRgba())}hash(){return this.r<<24|this.g<<16|this.b<<8|255*this.a}equals(e){return(0,o.pC)(e)&&e.r===this.r&&e.g===this.g&&e.b===this.b&&e.a===this.a}_sanitize(){return this.r=Math.round(c(this.r,0,255)),this.g=Math.round(c(this.g,0,255)),this.b=Math.round(c(this.b,0,255)),this.a=c(this.a,0,1),this}_set(e,t,r,n){this.r=e,this.g=t,this.b=r,this.a=n}}h.prototype.declaredClass="esri.Color",n=h||(h={}),(s=n.AlphaMode||(n.AlphaMode={}))[s.ALWAYS=0]="ALWAYS",s[s.UNLESS_OPAQUE=1]="UNLESS_OPAQUE";const m=h},99880:(e,t,r)=>{r.d(t,{V:()=>l});var n=r(68773),s=(r(3172),r(20102)),a=r(92604),i=r(17452);const o=a.Z.getLogger("esri.assets");function l(e){if(!n.Z.assetsPath)throw o.errorOnce("The API assets location needs to be set using config.assetsPath. More information: https://arcg.is/1OzLe50"),new s.Z("assets:path-not-set","config.assetsPath is not set");return(0,i.v_)(n.Z.assetsPath,e)}},52138:(e,t,r)=>{r.d(t,{a:()=>l,d:()=>f,e:()=>m,f:()=>d,g:()=>b,h:()=>S,i:()=>i,j:()=>w,k:()=>h,m:()=>u,s:()=>a,t:()=>o,v:()=>c,x:()=>v,y:()=>p});var n=r(65617),s=r(46851);function a(e,t,r,n,s,a,i,o,l,u,c,h,m,d,f,p,g){return e[0]=t,e[1]=r,e[2]=n,e[3]=s,e[4]=a,e[5]=i,e[6]=o,e[7]=l,e[8]=u,e[9]=c,e[10]=h,e[11]=m,e[12]=d,e[13]=f,e[14]=p,e[15]=g,e}function i(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function o(e,t){if(e===t){const r=t[1],n=t[2],s=t[3],a=t[6],i=t[7],o=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=a,e[11]=t[14],e[12]=s,e[13]=i,e[14]=o}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function l(e,t){const r=t[0],n=t[1],s=t[2],a=t[3],i=t[4],o=t[5],l=t[6],u=t[7],c=t[8],h=t[9],m=t[10],d=t[11],f=t[12],p=t[13],g=t[14],y=t[15],b=r*o-n*i,M=r*l-s*i,w=r*u-a*i,S=n*l-s*o,v=n*u-a*o,k=s*u-a*l,q=c*p-h*f,x=c*g-m*f,O=c*y-d*f,C=h*g-m*p,T=h*y-d*p,U=m*y-d*g;let P=b*U-M*T+w*C+S*O-v*x+k*q;return P?(P=1/P,e[0]=(o*U-l*T+u*C)*P,e[1]=(s*T-n*U-a*C)*P,e[2]=(p*k-g*v+y*S)*P,e[3]=(m*v-h*k-d*S)*P,e[4]=(l*O-i*U-u*x)*P,e[5]=(r*U-s*O+a*x)*P,e[6]=(g*w-f*k-y*M)*P,e[7]=(c*k-m*w+d*M)*P,e[8]=(i*T-o*O+u*q)*P,e[9]=(n*O-r*T-a*q)*P,e[10]=(f*v-p*w+y*b)*P,e[11]=(h*w-c*v-d*b)*P,e[12]=(o*x-i*C-l*q)*P,e[13]=(r*C-n*x+s*q)*P,e[14]=(p*M-f*S-g*b)*P,e[15]=(c*S-h*M+m*b)*P,e):null}function u(e,t,r){const n=t[0],s=t[1],a=t[2],i=t[3],o=t[4],l=t[5],u=t[6],c=t[7],h=t[8],m=t[9],d=t[10],f=t[11],p=t[12],g=t[13],y=t[14],b=t[15];let M=r[0],w=r[1],S=r[2],v=r[3];return e[0]=M*n+w*o+S*h+v*p,e[1]=M*s+w*l+S*m+v*g,e[2]=M*a+w*u+S*d+v*y,e[3]=M*i+w*c+S*f+v*b,M=r[4],w=r[5],S=r[6],v=r[7],e[4]=M*n+w*o+S*h+v*p,e[5]=M*s+w*l+S*m+v*g,e[6]=M*a+w*u+S*d+v*y,e[7]=M*i+w*c+S*f+v*b,M=r[8],w=r[9],S=r[10],v=r[11],e[8]=M*n+w*o+S*h+v*p,e[9]=M*s+w*l+S*m+v*g,e[10]=M*a+w*u+S*d+v*y,e[11]=M*i+w*c+S*f+v*b,M=r[12],w=r[13],S=r[14],v=r[15],e[12]=M*n+w*o+S*h+v*p,e[13]=M*s+w*l+S*m+v*g,e[14]=M*a+w*u+S*d+v*y,e[15]=M*i+w*c+S*f+v*b,e}function c(e,t,r){const n=r[0],s=r[1],a=r[2];if(t===e)e[12]=t[0]*n+t[4]*s+t[8]*a+t[12],e[13]=t[1]*n+t[5]*s+t[9]*a+t[13],e[14]=t[2]*n+t[6]*s+t[10]*a+t[14],e[15]=t[3]*n+t[7]*s+t[11]*a+t[15];else{const r=t[0],i=t[1],o=t[2],l=t[3],u=t[4],c=t[5],h=t[6],m=t[7],d=t[8],f=t[9],p=t[10],g=t[11];e[0]=r,e[1]=i,e[2]=o,e[3]=l,e[4]=u,e[5]=c,e[6]=h,e[7]=m,e[8]=d,e[9]=f,e[10]=p,e[11]=g,e[12]=r*n+u*s+d*a+t[12],e[13]=i*n+c*s+f*a+t[13],e[14]=o*n+h*s+p*a+t[14],e[15]=l*n+m*s+g*a+t[15]}return e}function h(e,t,r){const n=r[0],s=r[1],a=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function m(e,t,r,n){let a,i,o,l,u,c,h,m,d,f,p,g,y,b,M,w,S,v,k,q,x,O,C,T,U=n[0],P=n[1],Z=n[2],E=Math.sqrt(U*U+P*P+Z*Z);return E<(0,s.g)()?null:(E=1/E,U*=E,P*=E,Z*=E,a=Math.sin(r),i=Math.cos(r),o=1-i,l=t[0],u=t[1],c=t[2],h=t[3],m=t[4],d=t[5],f=t[6],p=t[7],g=t[8],y=t[9],b=t[10],M=t[11],w=U*U*o+i,S=P*U*o+Z*a,v=Z*U*o-P*a,k=U*P*o-Z*a,q=P*P*o+i,x=Z*P*o+U*a,O=U*Z*o+P*a,C=P*Z*o-U*a,T=Z*Z*o+i,e[0]=l*w+m*S+g*v,e[1]=u*w+d*S+y*v,e[2]=c*w+f*S+b*v,e[3]=h*w+p*S+M*v,e[4]=l*k+m*q+g*x,e[5]=u*k+d*q+y*x,e[6]=c*k+f*q+b*x,e[7]=h*k+p*q+M*x,e[8]=l*O+m*C+g*T,e[9]=u*O+d*C+y*T,e[10]=c*O+f*C+b*T,e[11]=h*O+p*C+M*T,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function d(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function f(e,t,r){if(0===t)return i(e);let n,a,o,l=r[0],u=r[1],c=r[2],h=Math.sqrt(l*l+u*u+c*c);return h<(0,s.g)()?null:(h=1/h,l*=h,u*=h,c*=h,n=Math.sin(t),a=Math.cos(t),o=1-a,e[0]=l*l*o+a,e[1]=u*l*o+c*n,e[2]=c*l*o-u*n,e[3]=0,e[4]=l*u*o-c*n,e[5]=u*u*o+a,e[6]=c*u*o+l*n,e[7]=0,e[8]=l*c*o+u*n,e[9]=u*c*o-l*n,e[10]=c*c*o+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function p(e,t){const r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function g(e,t,r){const n=t[0],s=t[1],a=t[2],i=t[3],o=n+n,l=s+s,u=a+a,c=n*o,h=n*l,m=n*u,d=s*l,f=s*u,p=a*u,g=i*o,y=i*l,b=i*u;return e[0]=1-(d+p),e[1]=h+b,e[2]=m-y,e[3]=0,e[4]=h-b,e[5]=1-(c+p),e[6]=f+g,e[7]=0,e[8]=m+y,e[9]=f-g,e[10]=1-(c+d),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}const y=(0,n.c)();function b(e,t,r,n){const s=t[0],a=t[1],i=t[2],o=t[3],l=s+s,u=a+a,c=i+i,h=s*l,m=s*u,d=s*c,f=a*u,p=a*c,g=i*c,y=o*l,b=o*u,M=o*c,w=n[0],S=n[1],v=n[2];return e[0]=(1-(f+g))*w,e[1]=(m+M)*w,e[2]=(d-b)*w,e[3]=0,e[4]=(m-M)*S,e[5]=(1-(h+g))*S,e[6]=(p+y)*S,e[7]=0,e[8]=(d+b)*v,e[9]=(p-y)*v,e[10]=(1-(h+f))*v,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function M(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e[9]=t[9]-r[9],e[10]=t[10]-r[10],e[11]=t[11]-r[11],e[12]=t[12]-r[12],e[13]=t[13]-r[13],e[14]=t[14]-r[14],e[15]=t[15]-r[15],e}function w(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function S(e,t){if(e===t)return!0;const r=e[0],n=e[1],a=e[2],i=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],m=e[9],d=e[10],f=e[11],p=e[12],g=e[13],y=e[14],b=e[15],M=t[0],w=t[1],S=t[2],v=t[3],k=t[4],q=t[5],x=t[6],O=t[7],C=t[8],T=t[9],U=t[10],P=t[11],Z=t[12],E=t[13],N=t[14],B=t[15],A=(0,s.g)();return Math.abs(r-M)<=A*Math.max(1,Math.abs(r),Math.abs(M))&&Math.abs(n-w)<=A*Math.max(1,Math.abs(n),Math.abs(w))&&Math.abs(a-S)<=A*Math.max(1,Math.abs(a),Math.abs(S))&&Math.abs(i-v)<=A*Math.max(1,Math.abs(i),Math.abs(v))&&Math.abs(o-k)<=A*Math.max(1,Math.abs(o),Math.abs(k))&&Math.abs(l-q)<=A*Math.max(1,Math.abs(l),Math.abs(q))&&Math.abs(u-x)<=A*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(c-O)<=A*Math.max(1,Math.abs(c),Math.abs(O))&&Math.abs(h-C)<=A*Math.max(1,Math.abs(h),Math.abs(C))&&Math.abs(m-T)<=A*Math.max(1,Math.abs(m),Math.abs(T))&&Math.abs(d-U)<=A*Math.max(1,Math.abs(d),Math.abs(U))&&Math.abs(f-P)<=A*Math.max(1,Math.abs(f),Math.abs(P))&&Math.abs(p-Z)<=A*Math.max(1,Math.abs(p),Math.abs(Z))&&Math.abs(g-E)<=A*Math.max(1,Math.abs(g),Math.abs(E))&&Math.abs(y-N)<=A*Math.max(1,Math.abs(y),Math.abs(N))&&Math.abs(b-B)<=A*Math.max(1,Math.abs(b),Math.abs(B))}function v(e){const t=(0,s.g)(),r=e[0],n=e[1],a=e[2],i=e[4],o=e[5],l=e[6],u=e[8],c=e[9],h=e[10];return Math.abs(1-(r*r+i*i+u*u))<=t&&Math.abs(1-(n*n+o*o+c*c))<=t&&Math.abs(1-(a*a+l*l+h*h))<=t}const k=u,q=M;Object.freeze(Object.defineProperty({__proto__:null,copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},set:a,identity:i,transpose:o,invert:l,adjoint:function(e,t){const r=t[0],n=t[1],s=t[2],a=t[3],i=t[4],o=t[5],l=t[6],u=t[7],c=t[8],h=t[9],m=t[10],d=t[11],f=t[12],p=t[13],g=t[14],y=t[15];return e[0]=o*(m*y-d*g)-h*(l*y-u*g)+p*(l*d-u*m),e[1]=-(n*(m*y-d*g)-h*(s*y-a*g)+p*(s*d-a*m)),e[2]=n*(l*y-u*g)-o*(s*y-a*g)+p*(s*u-a*l),e[3]=-(n*(l*d-u*m)-o*(s*d-a*m)+h*(s*u-a*l)),e[4]=-(i*(m*y-d*g)-c*(l*y-u*g)+f*(l*d-u*m)),e[5]=r*(m*y-d*g)-c*(s*y-a*g)+f*(s*d-a*m),e[6]=-(r*(l*y-u*g)-i*(s*y-a*g)+f*(s*u-a*l)),e[7]=r*(l*d-u*m)-i*(s*d-a*m)+c*(s*u-a*l),e[8]=i*(h*y-d*p)-c*(o*y-u*p)+f*(o*d-u*h),e[9]=-(r*(h*y-d*p)-c*(n*y-a*p)+f*(n*d-a*h)),e[10]=r*(o*y-u*p)-i*(n*y-a*p)+f*(n*u-a*o),e[11]=-(r*(o*d-u*h)-i*(n*d-a*h)+c*(n*u-a*o)),e[12]=-(i*(h*g-m*p)-c*(o*g-l*p)+f*(o*m-l*h)),e[13]=r*(h*g-m*p)-c*(n*g-s*p)+f*(n*m-s*h),e[14]=-(r*(o*g-l*p)-i*(n*g-s*p)+f*(n*l-s*o)),e[15]=r*(o*m-l*h)-i*(n*m-s*h)+c*(n*l-s*o),e},determinant:function(e){const t=e[0],r=e[1],n=e[2],s=e[3],a=e[4],i=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],m=e[11],d=e[12],f=e[13],p=e[14],g=e[15];return(t*i-r*a)*(h*g-m*p)-(t*o-n*a)*(c*g-m*f)+(t*l-s*a)*(c*p-h*f)+(r*o-n*i)*(u*g-m*d)-(r*l-s*i)*(u*p-h*d)+(n*l-s*o)*(u*f-c*d)},multiply:u,translate:c,scale:h,rotate:m,rotateX:function(e,t,r){const n=Math.sin(r),s=Math.cos(r),a=t[4],i=t[5],o=t[6],l=t[7],u=t[8],c=t[9],h=t[10],m=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*s+u*n,e[5]=i*s+c*n,e[6]=o*s+h*n,e[7]=l*s+m*n,e[8]=u*s-a*n,e[9]=c*s-i*n,e[10]=h*s-o*n,e[11]=m*s-l*n,e},rotateY:function(e,t,r){const n=Math.sin(r),s=Math.cos(r),a=t[0],i=t[1],o=t[2],l=t[3],u=t[8],c=t[9],h=t[10],m=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*s-u*n,e[1]=i*s-c*n,e[2]=o*s-h*n,e[3]=l*s-m*n,e[8]=a*n+u*s,e[9]=i*n+c*s,e[10]=o*n+h*s,e[11]=l*n+m*s,e},rotateZ:function(e,t,r){const n=Math.sin(r),s=Math.cos(r),a=t[0],i=t[1],o=t[2],l=t[3],u=t[4],c=t[5],h=t[6],m=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*s+u*n,e[1]=i*s+c*n,e[2]=o*s+h*n,e[3]=l*s+m*n,e[4]=u*s-a*n,e[5]=c*s-i*n,e[6]=h*s-o*n,e[7]=m*s-l*n,e},fromTranslation:d,fromScaling:function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromRotation:f,fromXRotation:p,fromYRotation:function(e,t){const r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromZRotation:function(e,t){const r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},fromRotationTranslation:g,fromQuat2:function(e,t){const r=y,n=-t[0],s=-t[1],a=-t[2],i=t[3],o=t[4],l=t[5],u=t[6],c=t[7],h=n*n+s*s+a*a+i*i;return h>0?(r[0]=2*(o*i+c*n+l*a-u*s)/h,r[1]=2*(l*i+c*s+u*n-o*a)/h,r[2]=2*(u*i+c*a+o*s-l*n)/h):(r[0]=2*(o*i+c*n+l*a-u*s),r[1]=2*(l*i+c*s+u*n-o*a),r[2]=2*(u*i+c*a+o*s-l*n)),g(e,t,r),e},getTranslation:function(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e},getScaling:function(e,t){const r=t[0],n=t[1],s=t[2],a=t[4],i=t[5],o=t[6],l=t[8],u=t[9],c=t[10];return e[0]=Math.sqrt(r*r+n*n+s*s),e[1]=Math.sqrt(a*a+i*i+o*o),e[2]=Math.sqrt(l*l+u*u+c*c),e},getRotation:function(e,t){const r=t[0]+t[5]+t[10];let n=0;return r>0?(n=2*Math.sqrt(r+1),e[3]=.25*n,e[0]=(t[6]-t[9])/n,e[1]=(t[8]-t[2])/n,e[2]=(t[1]-t[4])/n):t[0]>t[5]&&t[0]>t[10]?(n=2*Math.sqrt(1+t[0]-t[5]-t[10]),e[3]=(t[6]-t[9])/n,e[0]=.25*n,e[1]=(t[1]+t[4])/n,e[2]=(t[8]+t[2])/n):t[5]>t[10]?(n=2*Math.sqrt(1+t[5]-t[0]-t[10]),e[3]=(t[8]-t[2])/n,e[0]=(t[1]+t[4])/n,e[1]=.25*n,e[2]=(t[6]+t[9])/n):(n=2*Math.sqrt(1+t[10]-t[0]-t[5]),e[3]=(t[1]-t[4])/n,e[0]=(t[8]+t[2])/n,e[1]=(t[6]+t[9])/n,e[2]=.25*n),e},fromRotationTranslationScale:b,fromRotationTranslationScaleOrigin:function(e,t,r,n,s){const a=t[0],i=t[1],o=t[2],l=t[3],u=a+a,c=i+i,h=o+o,m=a*u,d=a*c,f=a*h,p=i*c,g=i*h,y=o*h,b=l*u,M=l*c,w=l*h,S=n[0],v=n[1],k=n[2],q=s[0],x=s[1],O=s[2],C=(1-(p+y))*S,T=(d+w)*S,U=(f-M)*S,P=(d-w)*v,Z=(1-(m+y))*v,E=(g+b)*v,N=(f+M)*k,B=(g-b)*k,A=(1-(m+p))*k;return e[0]=C,e[1]=T,e[2]=U,e[3]=0,e[4]=P,e[5]=Z,e[6]=E,e[7]=0,e[8]=N,e[9]=B,e[10]=A,e[11]=0,e[12]=r[0]+q-(C*q+P*x+N*O),e[13]=r[1]+x-(T*q+Z*x+B*O),e[14]=r[2]+O-(U*q+E*x+A*O),e[15]=1,e},fromQuat:function(e,t){const r=t[0],n=t[1],s=t[2],a=t[3],i=r+r,o=n+n,l=s+s,u=r*i,c=n*i,h=n*o,m=s*i,d=s*o,f=s*l,p=a*i,g=a*o,y=a*l;return e[0]=1-h-f,e[1]=c+y,e[2]=m-g,e[3]=0,e[4]=c-y,e[5]=1-u-f,e[6]=d+p,e[7]=0,e[8]=m+g,e[9]=d-p,e[10]=1-u-h,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},frustum:function(e,t,r,n,s,a,i){const o=1/(r-t),l=1/(s-n),u=1/(a-i);return e[0]=2*a*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*a*l,e[6]=0,e[7]=0,e[8]=(r+t)*o,e[9]=(s+n)*l,e[10]=(i+a)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*a*2*u,e[15]=0,e},perspective:function(e,t,r,n,s){const a=1/Math.tan(t/2);let i;return e[0]=a/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=s&&s!==1/0?(i=1/(n-s),e[10]=(s+n)*i,e[14]=2*s*n*i):(e[10]=-1,e[14]=-2*n),e},perspectiveFromFieldOfView:function(e,t,r,n){const s=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),o=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+o),u=2/(s+a);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=-(i-o)*l*.5,e[9]=(s-a)*u*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e},ortho:function(e,t,r,n,s,a,i){const o=1/(t-r),l=1/(n-s),u=1/(a-i);return e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+r)*o,e[13]=(s+n)*l,e[14]=(i+a)*u,e[15]=1,e},lookAt:function(e,t,r,n){let a,o,l,u,c,h,m,d,f,p;const g=t[0],y=t[1],b=t[2],M=n[0],w=n[1],S=n[2],v=r[0],k=r[1],q=r[2],x=(0,s.g)();return Math.abs(g-v)<x&&Math.abs(y-k)<x&&Math.abs(b-q)<x?i(e):(m=g-v,d=y-k,f=b-q,p=1/Math.sqrt(m*m+d*d+f*f),m*=p,d*=p,f*=p,a=w*f-S*d,o=S*m-M*f,l=M*d-w*m,p=Math.sqrt(a*a+o*o+l*l),p?(p=1/p,a*=p,o*=p,l*=p):(a=0,o=0,l=0),u=d*l-f*o,c=f*a-m*l,h=m*o-d*a,p=Math.sqrt(u*u+c*c+h*h),p?(p=1/p,u*=p,c*=p,h*=p):(u=0,c=0,h=0),e[0]=a,e[1]=u,e[2]=m,e[3]=0,e[4]=o,e[5]=c,e[6]=d,e[7]=0,e[8]=l,e[9]=h,e[10]=f,e[11]=0,e[12]=-(a*g+o*y+l*b),e[13]=-(u*g+c*y+h*b),e[14]=-(m*g+d*y+f*b),e[15]=1,e)},targetTo:function(e,t,r,n){const s=t[0],a=t[1],i=t[2],o=n[0],l=n[1],u=n[2];let c=s-r[0],h=a-r[1],m=i-r[2],d=c*c+h*h+m*m;d>0&&(d=1/Math.sqrt(d),c*=d,h*=d,m*=d);let f=l*m-u*h,p=u*c-o*m,g=o*h-l*c;return d=f*f+p*p+g*g,d>0&&(d=1/Math.sqrt(d),f*=d,p*=d,g*=d),e[0]=f,e[1]=p,e[2]=g,e[3]=0,e[4]=h*g-m*p,e[5]=m*f-c*g,e[6]=c*p-h*f,e[7]=0,e[8]=c,e[9]=h,e[10]=m,e[11]=0,e[12]=s,e[13]=a,e[14]=i,e[15]=1,e},str:function(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"},frob:function(e){return Math.sqrt(e[0]**2+e[1]**2+e[2]**2+e[3]**2+e[4]**2+e[5]**2+e[6]**2+e[7]**2+e[8]**2+e[9]**2+e[10]**2+e[11]**2+e[12]**2+e[13]**2+e[14]**2+e[15]**2)},add:function(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e[9]=t[9]+r[9],e[10]=t[10]+r[10],e[11]=t[11]+r[11],e[12]=t[12]+r[12],e[13]=t[13]+r[13],e[14]=t[14]+r[14],e[15]=t[15]+r[15],e},subtract:M,multiplyScalar:function(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e[9]=t[9]*r,e[10]=t[10]*r,e[11]=t[11]*r,e[12]=t[12]*r,e[13]=t[13]*r,e[14]=t[14]*r,e[15]=t[15]*r,e},multiplyScalarAndAdd:function(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e[9]=t[9]+r[9]*n,e[10]=t[10]+r[10]*n,e[11]=t[11]+r[11]*n,e[12]=t[12]+r[12]*n,e[13]=t[13]+r[13]*n,e[14]=t[14]+r[14]*n,e[15]=t[15]+r[15]*n,e},exactEquals:w,equals:S,isOrthoNormal:v,mul:k,sub:q},Symbol.toStringTag,{value:"Module"}))},35270:(e,t,r)=>{r.d(t,{B7:()=>l,St:()=>s,VL:()=>i,h$:()=>a,rW:()=>u});const n={transparent:[0,0,0,0],black:[0,0,0,1],silver:[192,192,192,1],gray:[128,128,128,1],white:[255,255,255,1],maroon:[128,0,0,1],red:[255,0,0,1],purple:[128,0,128,1],fuchsia:[255,0,255,1],green:[0,128,0,1],lime:[0,255,0,1],olive:[128,128,0,1],yellow:[255,255,0,1],navy:[0,0,128,1],blue:[0,0,255,1],teal:[0,128,128,1],aqua:[0,255,255,1],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],blanchedalmond:[255,235,205,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],oldlace:[253,245,230,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],rebeccapurple:[102,51,153,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],whitesmoke:[245,245,245,1],yellowgreen:[154,205,50,1]};function s(e){return n[e]||n[e.toLowerCase()]}function a(e){return n[e]??n[e.toLowerCase()]}function i(e){return[...a(e)]}function o(e,t,r){r<0&&++r,r>1&&--r;const n=6*r;return n<1?e+(t-e)*n:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}function l(e,t,r,n=1){const s=(e%360+360)%360/360,a=r<=.5?r*(t+1):r+t-r*t,i=2*r-a;return[Math.round(255*o(i,a,s+1/3)),Math.round(255*o(i,a,s)),Math.round(255*o(i,a,s-1/3)),n]}function u(e){const t=e.length>5,r=t?8:4,n=(1<<r)-1,s=t?1:17,a=t?9===e.length:5===e.length;let i=Number("0x"+e.substr(1));if(isNaN(i))return null;const o=[0,0,0,1];let l;return a&&(l=i&n,i>>=r,o[3]=s*l/255),l=i&n,i>>=r,o[2]=s*l,l=i&n,i>>=r,o[1]=s*l,l=i&n,i>>=r,o[0]=s*l,o}},36030:(e,t,r)=>{r.d(t,{J:()=>a});var n=r(35454),s=r(5600);function a(e,t={}){const r=e instanceof n.X?e:new n.X(e,t),a={type:t?.ignoreUnknown??1?r.apiValues:String,json:{type:r.jsonValues,read:!t?.readOnly&&{reader:r.read},write:{writer:r.write}}};return void 0!==t?.readOnly&&(a.readOnly=!!t.readOnly),void 0!==t?.default&&(a.json.default=t.default),void 0!==t?.name&&(a.json.name=t.name),(0,s.Cb)(a)}},10661:(e,t,r)=>{r.d(t,{s:()=>s});var n=r(39020);class s{constructor(){this._observers=[]}observe(e){return this._observers.includes(e)||this._observers.push(e),new n.X(this._observers,e)}notify(){const e=this._observers.slice();for(let t=0;t<e.length;++t){const r=e[t];r.onInvalidated(),r.onCommitted()}}}},67900:(e,t,r)=>{r.d(t,{$C:()=>q,En:()=>v,Jo:()=>_,_R:()=>x,c9:()=>C,cM:()=>O,gV:()=>A,hd:()=>u,qE:()=>P,ty:()=>k}),r(80442);var n=r(35454),s=r(70586),a=r(24678),i=r(68441),o=r(8744),l=r(58116);const u=39.37,c=i.sv.radius*Math.PI/200,h=/UNIT\[([^\]]+)\]\]$/i,m=l.Z,d=/UNIT\[([^\]]+)\]/i,f=new Set([4261,4305,4807,4810,4811,4812,4816,4819,4821,4901,4902,37225,104139,104140]),p=(0,n.w)()({meter:"meters",foot:"feet",foot_us:"us-feet",foot_clarke:"clarke-feet",yard_clarke:"clarke-yards",link_clarke:"clarke-links",yard_sears:"sears-yards",foot_sears:"sears-feet",chain_sears:"sears-chains",chain_benoit_1895_b:"benoit-1895-b-chains",yard_indian:"indian-yards",yard_indian_1937:"indian-1937-yards",foot_gold_coast:"gold-coast-feet",chain_sears_1922_truncated:"sears-1922-truncated-chains","50_kilometers":"50-kilometers","150_kilometers":"150-kilometers"}),g=e=>e*e,y=e=>e*e*e,b={length:{baseUnit:"meters",units:{millimeters:{inBaseUnits:.001},centimeters:{inBaseUnits:.01},decimeters:{inBaseUnits:.1},meters:{inBaseUnits:1},kilometers:{inBaseUnits:1e3},inches:{inBaseUnits:.0254},feet:{inBaseUnits:.3048},yards:{inBaseUnits:.9144},miles:{inBaseUnits:1609.344},"nautical-miles":{inBaseUnits:1852},"us-feet":{inBaseUnits:1200/3937}}},area:{baseUnit:"square-meters",units:{"square-millimeters":{inBaseUnits:g(.001)},"square-centimeters":{inBaseUnits:g(.01)},"square-decimeters":{inBaseUnits:g(.1)},"square-meters":{inBaseUnits:1},"square-kilometers":{inBaseUnits:g(1e3)},"square-inches":{inBaseUnits:g(.0254)},"square-feet":{inBaseUnits:g(.3048)},"square-yards":{inBaseUnits:g(.9144)},"square-miles":{inBaseUnits:g(1609.344)},"square-us-feet":{inBaseUnits:g(1200/3937)},acres:{inBaseUnits:.0015625*g(1609.344)},ares:{inBaseUnits:100},hectares:{inBaseUnits:1e4}}},volume:{baseUnit:"liters",units:{liters:{inBaseUnits:1},"cubic-millimeters":{inBaseUnits:1e3*y(.001)},"cubic-centimeters":{inBaseUnits:1e3*y(.01)},"cubic-decimeters":{inBaseUnits:1e3*y(.1)},"cubic-meters":{inBaseUnits:1e3},"cubic-kilometers":{inBaseUnits:1e3*y(1e3)},"cubic-inches":{inBaseUnits:1e3*y(.0254)},"cubic-feet":{inBaseUnits:1e3*y(.3048)},"cubic-yards":{inBaseUnits:1e3*y(.9144)},"cubic-miles":{inBaseUnits:1e3*y(1609.344)}}},angle:{baseUnit:"radians",units:{radians:{inBaseUnits:1},degrees:{inBaseUnits:Math.PI/180}}}},M=(()=>{const e={};for(const t in b)for(const r in b[t].units)e[r]=t;return e})();function w(e){const t=M[e];if(!t)throw new Error("unknown type");return t}function S(e,t=null){return t=t||w(e),b[t].baseUnit===e}function v(e,t,r){if(t===r)return e;const n=w(t);if(n!==w(r))throw new Error("incompatible units");const s=S(t,n)?e:function(e,t,r){return e*b[r].units[t].inBaseUnits}(e,t,n);return S(r,n)?s:function(e,t,r){return e/b[r].units[t].inBaseUnits}(s,r,n)}function k(e,t,r){return v(e,t,"meters")/(r*Math.PI/180)}function q(e){return p.fromJSON(e.toLowerCase())||null}function x(e){if((0,s.pC)(e)&&!(0,o.N$)(e))return 1;const t=C(e);return t>1e5?1:t}function O(e){return C(e)>=(0,a.Iu)(e).metersPerDegree?"meters":P(e)}function C(e,t=i.sv.metersPerDegree){return(0,s.Pt)(function(e,t=!1){const r=(0,s.pC)(e)?e.wkid:null,n=(0,s.pC)(e)?e.wkt:null;let a=null;if(r){if((0,o.o$)(r))return i.yr.metersPerDegree;if((0,o.ME)(r))return i.Z1.metersPerDegree;a=m.values[m[r]],!a&&t&&f.has(r)&&(a=c)}else n&&(E(n)?a=T(h.exec(n),a):Z(n)&&(a=T(d.exec(n),a)));return a}(e,!0),t)}function T(e,t){return e&&e[1]?U(e[1]):t}function U(e){return parseFloat(e.split(",")[1])}function P(e){const t=(0,s.pC)(e)?e.wkid:null,r=(0,s.pC)(e)?e.wkt:null;let n=null;if(t)n=m.units[m[t]];else if(r){const e=E(r)?h:Z(r)?d:null;if(e){const t=e.exec(r);t&&t[1]&&(n=function(e){const t=/[\\"\\']{1}([^\\"\\']+)/.exec(e);let r=t&&t[1];if(!r||!m.units.includes(r)){const t=U(e);r=null;const n=m.values;for(let e=0;e<n.length;++e)if(Math.abs(t-n[e])<1e-7){r=m.units[e];break}}return r}(t[1]))}}return(0,s.pC)(n)?q(n):null}function Z(e){return/^GEOCCS/i.test(e)}function E(e){return/^PROJCS/i.test(e)}new Map([["meters","square-meters"],["feet","square-feet"],["us-feet","square-us-feet"]]);const N={esriAcres:"acres",esriAres:"ares",esriHectares:"hectares",esriSquareCentimeters:"square-centimeters",esriSquareDecimeters:"square-decimeters",esriSquareFeet:"square-feet",esriSquareInches:"square-inches",esriSquareKilometers:"square-kilometers",esriSquareMeters:"square-meters",esriSquareMiles:"square-miles",esriSquareMillimeters:"square-millimeters",esriSquareUsFeet:"square-us-feet",esriSquareYards:"square-yards"},B={esriCentimeters:"centimeters",esriDecimeters:"decimeters",esriFeet:"feet",esriInches:"inches",esriKilometers:"kilometers",esriMeters:"meters",esriMiles:"miles",esriMillimeters:"millimeters",esriNauticalMiles:"nautical-miles",esriYards:"yards"},A=(0,n.w)()(N),_=(0,n.w)()(B);(0,n.w)()({...N,...B})},66577:(e,t,r)=>{r.d(t,{qM:()=>c});var n=r(75215),s=r(6570),a=r(9361),i=r(65091),o=r(94139),l=r(38913),u=r(58901);r(82971),r(86973),r(33955);const c={base:a.Z,key:"type",typeMap:{extent:s.Z,multipoint:i.Z,point:o.Z,polyline:u.Z,polygon:l.Z}};(0,n.N7)(c)},24678:(e,t,r)=>{r.d(t,{GG:()=>l,HQ:()=>u,Iu:()=>d,VY:()=>c,e8:()=>f,rS:()=>m,wY:()=>h});var n=r(70586),s=r(82971),a=r(68441),i=r(8744);function o(e){return new s.Z({wkt:`GEOCCS["Spherical geocentric",\n DATUM["Not specified",\n SPHEROID["Sphere",${e.radius},0]],\n PRIMEM["Greenwich",0.0,\n AUTHORITY["EPSG","8901"]],\n UNIT["m",1.0],\n AXIS["Geocentric X",OTHER],\n AXIS["Geocentric Y",EAST],\n AXIS["Geocentric Z",NORTH]\n ]`})}const l=o(a.sv),u=o(a.yr),c=o(a.Z1),h=new s.Z({wkt:`GEOCCS["WGS 84",\n DATUM["WGS_1984",\n SPHEROID["WGS 84",${a.sv.radius},298.257223563,\n AUTHORITY["EPSG","7030"]],\n AUTHORITY["EPSG","6326"]],\n PRIMEM["Greenwich",0,\n AUTHORITY["EPSG","8901"]],\n UNIT["m",1.0,\n AUTHORITY["EPSG","9001"]],\n AXIS["Geocentric X",OTHER],\n AXIS["Geocentric Y",OTHER],\n AXIS["Geocentric Z",NORTH],\n AUTHORITY["EPSG","4978"]\n]`});function m(e){return e&&((0,i.BZ)(e)||e===u)?u:e&&((0,i.V2)(e)||e===c)?c:l}function d(e){return(0,n.pC)(e)&&((0,i.BZ)(e)||e===u)?a.yr:(0,n.pC)(e)&&((0,i.V2)(e)||e===c)?a.Z1:a.sv}function f(e){return(0,i.o$)(e)?a.yr:(0,i.ME)(e)?a.Z1:a.sv}},24470:(e,t,r)=>{r.d(t,{Gv:()=>b,HH:()=>u,SO:()=>h,Ue:()=>a,al:()=>o,cS:()=>p,fS:()=>y,jE:()=>m,jn:()=>c,kK:()=>d,oJ:()=>l,r3:()=>f}),r(80442),r(22021);var n=r(70586),s=r(6570);function a(e=M){return[e[0],e[1],e[2],e[3]]}function i(e,t){return e!==t&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]),e}function o(e,t,r,n,s=a()){return s[0]=e,s[1]=t,s[2]=r,s[3]=n,s}function l(e,t=a()){return t[0]=e.xmin,t[1]=e.ymin,t[2]=e.xmax,t[3]=e.ymax,t}function u(e,t){return new s.Z({xmin:e[0],ymin:e[1],xmax:e[2],ymax:e[3],spatialReference:t})}function c(e,t,r){if((0,n.Wi)(t))i(r,e);else if("length"in t)g(t)?(r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r[2]=Math.max(e[2],t[2]),r[3]=Math.max(e[3],t[3])):2!==t.length&&3!==t.length||(r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r[2]=Math.max(e[2],t[0]),r[3]=Math.max(e[3],t[1]));else switch(t.type){case"extent":r[0]=Math.min(e[0],t.xmin),r[1]=Math.min(e[1],t.ymin),r[2]=Math.max(e[2],t.xmax),r[3]=Math.max(e[3],t.ymax);break;case"point":r[0]=Math.min(e[0],t.x),r[1]=Math.min(e[1],t.y),r[2]=Math.max(e[2],t.x),r[3]=Math.max(e[3],t.y)}}function h(e){return function(e){return(0,n.Wi)(e)||e[0]>=e[2]?0:e[2]-e[0]}(e)*function(e){return e[1]>=e[3]?0:e[3]-e[1]}(e)}function m(e,t,r){return t>=e[0]&&r>=e[1]&&t<=e[2]&&r<=e[3]}function d(e,t){return Math.max(t[0],e[0])<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])<=Math.min(t[3],e[3])}function f(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}function p(e){return e?i(e,b):a(b)}function g(e){return null!=e&&4===e.length}function y(e,t){return g(e)&&g(t)?e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]:e===t}const b=[1/0,1/0,-1/0,-1/0],M=[0,0,0,0]},33955:(e,t,r)=>{r.d(t,{Ji:()=>g,YX:()=>c,aW:()=>h,im:()=>p,l9:()=>d,oU:()=>f,q9:()=>b,wp:()=>m});var n=r(70586),s=r(6570),a=r(9361),i=r(65091),o=r(94139),l=r(38913),u=r(58901);function c(e){return void 0!==e.xmin&&void 0!==e.ymin&&void 0!==e.xmax&&void 0!==e.ymax}function h(e){return void 0!==e.points}function m(e){return void 0!==e.x&&void 0!==e.y}function d(e){return void 0!==e.paths}function f(e){return void 0!==e.rings}function p(e){return(0,n.Wi)(e)?null:e instanceof a.Z?e:m(e)?o.Z.fromJSON(e):d(e)?u.Z.fromJSON(e):f(e)?l.Z.fromJSON(e):h(e)?i.Z.fromJSON(e):c(e)?s.Z.fromJSON(e):null}function g(e){return e?m(e)?"esriGeometryPoint":d(e)?"esriGeometryPolyline":f(e)?"esriGeometryPolygon":c(e)?"esriGeometryEnvelope":h(e)?"esriGeometryMultipoint":null:null}const y={esriGeometryPoint:o.Z,esriGeometryPolyline:u.Z,esriGeometryPolygon:l.Z,esriGeometryEnvelope:s.Z,esriGeometryMultipoint:i.Z};function b(e){return e&&y[e]||null}},86973:(e,t,r)=>{r.d(t,{Mk:()=>s,P$:()=>a});var n=r(35454);const s=(0,n.w)()({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon"}),a=(0,n.w)()({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryEnvelope:"extent",mesh:"mesh"})},61576:(e,t,r)=>{r.r(t),r.d(t,{default:()=>g}),r(66577);var n=r(70586),s=r(18571),a=r(5847),i=r(75993),o=r(55914),l=r(55444),u=r(73506),c=r(15612),h=r(80676),m=r(87521),d=r(72758),f=r(23808),p=r(6570);class g{convertVectorFieldData(e){const t=a.Z.fromJSON(e.pixelBlock),r=(0,h.KC)(t,e.type);return Promise.resolve((0,n.pC)(r)&&r.toJSON())}async decode(e){const t=await(0,i.J)(e.data,e.options);return t&&t.toJSON()}symbolize(e){e.pixelBlock=a.Z.fromJSON(e.pixelBlock),e.extent=e.extent?p.Z.fromJSON(e.extent):null;const t=this.symbolizer.symbolize(e);return Promise.resolve((0,n.pC)(t)&&t.toJSON())}async updateSymbolizer(e){this.symbolizer=d.Z.fromJSON(e.symbolizerJSON),e.histograms&&"rasterStretch"===this.symbolizer?.rendererJSON.type&&(this.symbolizer.rendererJSON.histograms=e.histograms)}async updateRasterFunction(e){this.rasterFunction=(0,l.Ue)(e.rasterFunctionJSON)}async process(e){const t=this.rasterFunction.process({extent:p.Z.fromJSON(e.extent),primaryPixelBlocks:e.primaryPixelBlocks.map((e=>(0,n.pC)(e)?a.Z.fromJSON(e):null)),primaryRasterIds:e.primaryRasterIds});return(0,n.pC)(t)?t.toJSON():null}stretch(e){const t=this.symbolizer.simpleStretch(a.Z.fromJSON(e.srcPixelBlock),e.stretchParams);return Promise.resolve((0,n.pC)(t)&&t.toJSON())}estimateStatisticsHistograms(e){const t=(0,c.Hv)(a.Z.fromJSON(e.srcPixelBlock));return Promise.resolve(t)}split(e){const t=(0,o.Vl)(a.Z.fromJSON(e.srcPixelBlock),e.tileSize,e.maximumPyramidLevel);return t&&t.forEach(((e,r)=>{t.set(r,e?.toJSON())})),Promise.resolve(t)}async mosaicAndTransform(e){const t=e.srcPixelBlocks.map((e=>e?new a.Z(e):null)),r=(0,o.us)(t,e.srcMosaicSize,{blockWidths:e.blockWidths,alignmentInfo:e.alignmentInfo,clipOffset:e.clipOffset,clipSize:e.clipSize});let s,i=r;return e.coefs&&(i=(0,o.Uk)(r,e.destDimension,e.coefs,e.sampleSpacing,e.interpolation)),e.projectDirections&&e.gcsGrid&&(s=(0,o.Qh)(e.destDimension,e.gcsGrid),i=(0,n.Wg)((0,h.xQ)(i,e.isUV?"vector-uv":"vector-magdir",s))),{pixelBlock:i?.toJSON(),localNorthDirections:s}}async createFlowMesh(e,t){const r={data:new Float32Array(e.flowData.buffer),mask:new Uint8Array(e.flowData.maskBuffer),width:e.flowData.width,height:e.flowData.height},{vertexData:n,indexData:s}=await(0,f.GE)(e.meshType,e.simulationSettings,r,t.signal);return{result:{vertexBuffer:n.buffer,indexBuffer:s.buffer},transferList:[n.buffer,s.buffer]}}async getProjectionOffsetGrid(e){const t=p.Z.fromJSON(e.projectedExtent),r=p.Z.fromJSON(e.srcBufferExtent);let n=null;e.datumTransformationSteps&&(n=new s.Z({steps:e.datumTransformationSteps})),(e.includeGCSGrid||(0,u.Mk)(t.spatialReference,r.spatialReference,n))&&await(0,u.zD)();const a=e.rasterTransform?(0,m.c)(e.rasterTransform):null;return(0,u.Qp)({...e,projectedExtent:t,srcBufferExtent:r,datumTransformation:n,rasterTransform:a})}}},3172:(e,t,r)=>{r.r(t),r.d(t,{default:()=>d});var n=r(68773),s=r(40330),a=r(20102),i=r(80442),o=r(22974),l=r(70586),u=r(95330),c=r(17452),h=r(71058),m=r(85958);async function d(e,t){const o=(0,c.HK)(e),y=(0,c.jc)(e);y||o||(e=(0,c.Fv)(e));const b={url:e,requestOptions:{...(0,l.Wg)(t)}};let M=(0,c.oh)(e);if(M){const e=await async function(e,t){if(null!=e.responseData)return e.responseData;if(e.headers&&(t.requestOptions.headers={...t.requestOptions.headers,...e.headers}),e.query&&(t.requestOptions.query={...t.requestOptions.query,...e.query}),e.before){let r,n;try{n=await e.before(t)}catch(e){r=k("request:interceptor",e,t)}if((n instanceof Error||n instanceof a.Z)&&(r=k("request:interceptor",n,t)),r)throw e.error&&e.error(r),r;return n}}(M,b);if(null!=e)return{data:e,getHeader:w,requestOptions:b.requestOptions,url:b.url};M.after||M.error||(M=null)}if(e=b.url,"image"===(t=b.requestOptions).responseType){if((0,i.Z)("host-webworker")||(0,i.Z)("host-node"))throw k("request:invalid-parameters",new Error("responseType 'image' is not supported in Web Workers or Node environment"),b)}else if(o)throw k("request:invalid-parameters",new Error("Data URLs are not supported for responseType = "+t.responseType),b);if("head"===t.method){if(t.body)throw k("request:invalid-parameters",new Error("body parameter cannot be set when method is 'head'"),b);if(o||y)throw k("request:invalid-parameters",new Error("data and blob URLs are not supported for method 'head'"),b)}if(await async function(){(0,i.Z)("host-webworker")?f||(f=await r.e(9884).then(r.bind(r,29884))):d._abortableFetch||(d._abortableFetch=globalThis.fetch.bind(globalThis))}(),f)return f.execute(e,t);const S=new AbortController;(0,u.fu)(t,(()=>S.abort()));const v={controller:S,credential:void 0,credentialToken:void 0,fetchOptions:void 0,hasToken:!1,interceptor:M,params:b,redoRequest:!1,useIdentity:p.useIdentity,useProxy:!1,useSSL:!1,withCredentials:!1},C=await async function(e){let t,r;await async function(e){const t=e.params.url,r=e.params.requestOptions,a=e.controller.signal,i=r.body;let o=null,l=null;if(g&&"HTMLFormElement"in globalThis&&(i instanceof FormData?o=i:i instanceof HTMLFormElement&&(o=new FormData(i))),"string"==typeof i&&(l=i),e.fetchOptions={cache:r.cacheBust&&!d._abortableFetch.polyfill?"no-cache":"default",credentials:"same-origin",headers:r.headers||{},method:"head"===r.method?"HEAD":"GET",mode:"cors",priority:p.priority,redirect:"follow",signal:a},(o||l)&&(e.fetchOptions.body=o||l),"anonymous"===r.authMode&&(e.useIdentity=!1),e.hasToken=!!(/token=/i.test(t)||r.query?.token||o?.get("token")),!e.hasToken&&n.Z.apiKey&&(0,h.r)(t)&&(r.query||(r.query={}),r.query.token=n.Z.apiKey,e.hasToken=!0),e.useIdentity&&!e.hasToken&&!e.credentialToken&&!x(t)&&!(0,u.Hc)(a)){let n;"immediate"===r.authMode?(await q(),n=await s.id.getCredential(t,{signal:a}),e.credential=n):"no-prompt"===r.authMode?(await q(),n=await s.id.getCredential(t,{prompt:!1,signal:a}).catch((()=>{})),e.credential=n):s.id&&(n=s.id.findCredential(t)),n&&(e.credentialToken=n.token,e.useSSL=!!n.ssl)}}(e);try{do{[t,r]=await O(e)}while(!await T(e,t,r))}catch(r){const n=k("request:server",r,e.params,t);throw n.details.ssl=e.useSSL,e.interceptor&&e.interceptor.error&&e.interceptor.error(n),n}const a=e.params.url;if(r&&/\/sharing\/rest\/(accounts|portals)\/self/i.test(a)){if(!e.hasToken&&!e.credentialToken&&r.user?.username&&!(0,c.kl)(a)){const e=(0,c.P$)(a,!0);e&&p.trustedServers.push(e)}Array.isArray(r.authorizedCrossOriginNoCorsDomains)&&(0,m.Hu)(r.authorizedCrossOriginNoCorsDomains)}const i=e.credential;if(i&&s.id){const e=s.id.findServerInfo(i.server);let t=e&&e.owningSystemUrl;if(t){t=t.replace(/\/?$/,"/sharing");const e=s.id.findCredential(t,i.userId);e&&-1===s.id._getIdenticalSvcIdx(t,e)&&e.resources.unshift(t)}}return{data:r,getHeader:t?e=>t?.headers.get(e):w,requestOptions:e.params.requestOptions,ssl:e.useSSL,url:e.params.url}}(v);return M?.after?.(C),C}let f;const p=n.Z.request,g="FormData"in globalThis,y=[499,498,403,401],b=["COM_0056","COM_0057","SB_0008"],M=[/\/arcgis\/tokens/i,/\/sharing(\/rest)?\/generatetoken/i,/\/rest\/info/i],w=()=>null,S=Symbol();function v(e){const t=(0,c.P$)(e);return!t||t.endsWith(".arcgis.com")||d._corsServers.includes(t)||(0,c.kl)(t)}function k(e,t,r,n){let s="Error";const i={url:r.url,requestOptions:r.requestOptions,getHeader:w,ssl:!1};if(t instanceof a.Z)return t.details?(t.details=(0,o.d9)(t.details),t.details.url=r.url,t.details.requestOptions=r.requestOptions):t.details=i,t;if(t){const e=n&&(e=>n.headers.get(e)),r=n&&n.status,a=t.message;a&&(s=a),e&&(i.getHeader=e),i.httpStatus=(null!=t.httpCode?t.httpCode:t.code)||r||0,i.subCode=t.subcode,i.messageCode=t.messageCode,"string"==typeof t.details?i.messages=[t.details]:i.messages=t.details,i.raw=S in t?t[S]:t}return(0,u.D_)(t)?(0,u.zE)():new a.Z(e,s,i)}async function q(){s.id||await Promise.all([r.e(6261),r.e(1400),r.e(1761)]).then(r.bind(r,55142))}function x(e){return M.some((t=>t.test(e)))}async function O(e){let t=e.params.url;const r=e.params.requestOptions,n=e.fetchOptions??{},a=(0,c.jc)(t)||(0,c.HK)(t),o=r.responseType||"json",l=a?0:null!=r.timeout?r.timeout:p.timeout;let h=!1;if(!a){e.useSSL&&(t=(0,c.hO)(t)),r.cacheBust&&"default"===n.cache&&(t=(0,c.ZN)(t,"request.preventCache",Date.now()));let a={...r.query};e.credentialToken&&(a.token=e.credentialToken);let o=(0,c.B7)(a);(0,i.Z)("esri-url-encodes-apostrophe")&&(o=o.replace(/'/g,"%27"));const l=t.length+1+o.length;let u;h="delete"===r.method||"post"===r.method||"put"===r.method||!!r.body||l>p.maxUrlLength;const d=r.useProxy||!!(0,c.ed)(t);if(d){const e=(0,c.b7)(t);u=e.path,!h&&u.length+1+l>p.maxUrlLength&&(h=!0),e.query&&(a={...e.query,...a})}if("HEAD"===n.method&&(h||d)){if(h){if(l>p.maxUrlLength)throw k("request:invalid-parameters",new Error("URL exceeds maximum length"),e.params);throw k("request:invalid-parameters",new Error("cannot use POST request when method is 'head'"),e.params)}if(d)throw k("request:invalid-parameters",new Error("cannot use proxy when method is 'head'"),e.params)}if(h?(n.method="delete"===r.method?"DELETE":"put"===r.method?"PUT":"POST",r.body?t=(0,c.fl)(t,a):(n.body=(0,c.B7)(a),n.headers||(n.headers={}),n.headers["Content-Type"]="application/x-www-form-urlencoded")):t=(0,c.fl)(t,a),d&&(e.useProxy=!0,t=`${u}?${t}`),a.token&&g&&n.body instanceof FormData&&!/\/(sharing|usrsvcs)\/(appservices|servers)\//i.test(t)&&n.body.set("token",a.token),r.hasOwnProperty("withCredentials"))e.withCredentials=r.withCredentials;else if(!(0,c.D6)(t,(0,c.TI)()))if((0,c.kl)(t))e.withCredentials=!0;else if(s.id){const r=s.id.findServerInfo(t);r&&r.webTierAuth&&(e.withCredentials=!0)}e.withCredentials&&(n.credentials="include",(0,m.jH)(t)&&await(0,m.jz)(h?(0,c.fl)(t,a):t))}let f,y,b=0,M=!1;l>0&&(b=setTimeout((()=>{M=!0,e.controller.abort()}),l));try{if("native-request-init"===r.responseType)y=n,y.url=t;else if("image"!==r.responseType||"default"!==n.cache||"GET"!==n.method||h||function(e){if(e)for(const t of Object.getOwnPropertyNames(e))if(e[t])return!0;return!1}(r.headers)||!a&&!e.useProxy&&p.proxyUrl&&!v(t)){if(f=await d._abortableFetch(t,n),e.useProxy||function(e){const t=(0,c.P$)(e);t&&!d._corsServers.includes(t)&&d._corsServers.push(t)}(t),"native"===r.responseType)y=f;else if("HEAD"!==n.method)if(f.ok){switch(o){case"array-buffer":y=await f.arrayBuffer();break;case"blob":case"image":y=await f.blob();break;default:y=await f.text()}if(b&&(clearTimeout(b),b=0),"json"===o||"xml"===o||"document"===o)if(y)switch(o){case"json":y=JSON.parse(y);break;case"xml":y=C(y,"application/xml");break;case"document":y=C(y,"text/html")}else y=null;if(y){if("array-buffer"===o||"blob"===o){const e=f.headers.get("Content-Type");if(e&&/application\/json|text\/plain/i.test(e)&&y["blob"===o?"size":"byteLength"]<=750)try{const e=await new Response(y).json();e.error&&(y=e)}catch{}}"image"===o&&y instanceof Blob&&(y=await U(URL.createObjectURL(y),e,!0))}}else y=await f.text()}else y=await U(t,e)}catch(n){if("AbortError"===n.name){if(M)throw new Error("Timeout exceeded");throw(0,u.zE)("Request canceled")}if(!(!f&&n instanceof TypeError&&p.proxyUrl)||r.body||"delete"===r.method||"head"===r.method||"post"===r.method||"put"===r.method||e.useProxy||v(t))throw n;e.redoRequest=!0,(0,c.tD)({proxyUrl:p.proxyUrl,urlPrefix:(0,c.P$)(t)??""})}finally{b&&clearTimeout(b)}return[f,y]}function C(e,t){let r;try{r=(new DOMParser).parseFromString(e,t)}catch{}if(!r||r.getElementsByTagName("parsererror").length)throw new SyntaxError("XML Parse error");return r}async function T(e,t,r){if(e.redoRequest)return e.redoRequest=!1,!1;const n=e.params.requestOptions;if(!t||"native"===n.responseType||"native-request-init"===n.responseType)return!0;let a,i;if(!t.ok)throw a=new Error(`Unable to load ${t.url} status: ${t.status}`),a[S]=r,a;r&&(r.error?a=r.error:"error"===r.status&&Array.isArray(r.messages)&&(a={...r},a[S]=r,a.details=r.messages));let o,l=null;a&&(i=Number(a.code),l=a.hasOwnProperty("subcode")?Number(a.subcode):null,o=a.messageCode,o=o&&o.toUpperCase());const u=n.authMode;if(403===i&&(4===l||a.message&&a.message.toLowerCase().includes("ssl")&&!a.message.toLowerCase().includes("permission"))){if(!e.useSSL)return e.useSSL=!0,!1}else if(!e.hasToken&&e.useIdentity&&("no-prompt"!==u||498===i)&&void 0!==i&&y.includes(i)&&!x(e.params.url)&&(403!==i||o&&!b.includes(o)&&(null==l||2===l&&e.credentialToken))){await q();try{const t=await s.id.getCredential(e.params.url,{error:k("request:server",a,e.params),prompt:"no-prompt"!==u,signal:e.controller.signal,token:e.credentialToken});return e.credential=t,e.credentialToken=t.token,e.useSSL=e.useSSL||t.ssl,!1}catch(t){if("no-prompt"===u)return e.credential=void 0,e.credentialToken=void 0,!1;a=t}}if(a)throw a;return!0}function U(e,t,r=!1){const n=t.controller.signal,s=new Image;return t.withCredentials?s.crossOrigin="use-credentials":s.crossOrigin="anonymous",s.alt="",s.fetchPriority=p.priority,s.src=e,(0,m.fY)(s,e,r,n)}d._abortableFetch=null,d._corsServers=["https://server.arcgisonline.com","https://services.arcgisonline.com"]},98046:(e,t,r)=>{r.d(t,{Z:()=>d});var n,s=r(43697),a=r(22303),i=r(22974),o=r(5600),l=r(75215),u=r(36030),c=r(52011),h=r(899);let m=n=class extends h.Z{constructor(e){super(e),this.algorithm=null,this.fromColor=null,this.toColor=null,this.type="algorithmic"}clone(){return new n({fromColor:(0,i.d9)(this.fromColor),toColor:(0,i.d9)(this.toColor),algorithm:this.algorithm})}};(0,s._)([(0,u.J)({esriCIELabAlgorithm:"cie-lab",esriHSVAlgorithm:"hsv",esriLabLChAlgorithm:"lab-lch"})],m.prototype,"algorithm",void 0),(0,s._)([(0,o.Cb)({type:a.Z,json:{type:[l.z8],write:!0}})],m.prototype,"fromColor",void 0),(0,s._)([(0,o.Cb)({type:a.Z,json:{type:[l.z8],write:!0}})],m.prototype,"toColor",void 0),(0,s._)([(0,o.Cb)({type:["algorithmic"]})],m.prototype,"type",void 0),m=n=(0,s._)([(0,c.j)("esri.rest.support.AlgorithmicColorRamp")],m);const d=m},899:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(43697),s=r(96674),a=r(5600),i=(r(67676),r(75215),r(52011));let o=class extends s.wq{constructor(e){super(e),this.type=null}};(0,n._)([(0,a.Cb)({readOnly:!0,json:{read:!1,write:!0}})],o.prototype,"type",void 0),o=(0,n._)([(0,i.j)("esri.rest.support.ColorRamp")],o);const l=o},1515:(e,t,r)=>{r.d(t,{Z:()=>h});var n,s=r(43697),a=r(22974),i=r(5600),o=(r(75215),r(52011)),l=r(98046),u=r(899);let c=n=class extends u.Z{constructor(e){super(e),this.colorRamps=null,this.type="multipart"}clone(){return new n({colorRamps:(0,a.d9)(this.colorRamps)})}};(0,s._)([(0,i.Cb)({type:[l.Z],json:{write:!0}})],c.prototype,"colorRamps",void 0),(0,s._)([(0,i.Cb)({type:["multipart"]})],c.prototype,"type",void 0),c=n=(0,s._)([(0,o.j)("esri.rest.support.MultipartColorRamp")],c);const h=c},94593:(e,t,r)=>{r.d(t,{V:()=>i,i:()=>o});var n=r(98046),s=r(899),a=r(1515);const i={key:"type",base:s.Z,typeMap:{algorithmic:n.Z,multipart:a.Z}};function o(e){return e&&e.type?"algorithmic"===e.type?n.Z.fromJSON(e):"multipart"===e.type?a.Z.fromJSON(e):null:null}},71058:(e,t,r)=>{r.d(t,{r:()=>a});var n=r(17452);const s=["elevation3d.arcgis.com","js.arcgis.com","jsdev.arcgis.com","jsqa.arcgis.com","static.arcgis.com"];function a(e){const t=(0,n.P$)(e,!0);return!!t&&t.endsWith(".arcgis.com")&&!s.includes(t)&&!e.endsWith("/sharing/rest/generateToken")}},85958:(e,t,r)=>{r.d(t,{Hu:()=>c,fY:()=>l,jH:()=>h,jz:()=>m});var n=r(68773),s=r(80442),a=r(70586),i=r(95330),o=r(17452);function l(e,t,r=!1,n){return new Promise(((o,l)=>{if((0,i.Hc)(n))return void l(u());let c=()=>{d(),l(new Error(`Unable to load ${t}`))},h=()=>{const t=e;d(),o(t)},m=()=>{if(!e)return;const t=e;d(),t.src="",l(u())};const d=()=>{(0,s.Z)("esri-image-decode")||(e.removeEventListener("error",c),e.removeEventListener("load",h)),c=null,h=null,e=null,(0,a.pC)(n)&&n.removeEventListener("abort",m),m=null,r&&URL.revokeObjectURL(t)};(0,a.pC)(n)&&n.addEventListener("abort",m),(0,s.Z)("esri-image-decode")?e.decode().then(h,c):(e.addEventListener("error",c),e.addEventListener("load",h))}))}function u(){try{return new DOMException("Aborted","AbortError")}catch{const e=new Error;return e.name="AbortError",e}}function c(e){n.Z.request.crossOriginNoCorsDomains||(n.Z.request.crossOriginNoCorsDomains={});const t=n.Z.request.crossOriginNoCorsDomains;for(let r of e)r=r.toLowerCase(),/^https?:\/\//.test(r)?t[(0,o.P$)(r)??""]=0:(t[(0,o.P$)("http://"+r)??""]=0,t[(0,o.P$)("https://"+r)??""]=0)}function h(e){const t=n.Z.request.crossOriginNoCorsDomains;if(t){let r=(0,o.P$)(e);if(r)return r=r.toLowerCase(),!(0,o.D6)(r,(0,o.TI)())&&t[r]<Date.now()-36e5}return!1}async function m(e){const t=n.Z.request.crossOriginNoCorsDomains,r=(0,o.P$)(e);t&&r&&(t[r.toLowerCase()]=Date.now());const s=(0,o.mN)(e);e=s.path,"json"===s.query?.f&&(e+="?f=json");try{await fetch(e,{mode:"no-cors",credentials:"include"})}catch{}}}}]);
|
package/layers/MapNotesLayer.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import"../geometry.js";import t from"../Graphic.js";import"../symbols.js";import r from"../core/Collection.js";import o from"../core/Error.js";import{clone as i}from"../core/lang.js";import{isSome as a,isNone as l}from"../core/maybe.js";import{MultiOriginJSONMixin as n}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as s}from"../core/object.js";import p from"../core/Warning.js";import{property as y}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{reader as m}from"../core/accessorSupport/decorators/reader.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{writer as c}from"../core/accessorSupport/decorators/writer.js";import{canProjectWithoutEngine as d,isLoaded as f,load as g,project as b}from"../geometry/projection.js";import{normalizeCentralMeridian as S}from"../geometry/support/normalizeUtils.js";import{equals as h}from"../geometry/support/spatialReferenceUtils.js";import O from"./FeatureLayer.js";import w from"./GraphicsLayer.js";import j from"./Layer.js";import{findLastObjectIdFromFeatures as N}from"./graphics/objectIdUtils.js";import{BlendLayer as L}from"./mixins/BlendLayer.js";import{OperationalLayer as x}from"./mixins/OperationalLayer.js";import{PortalLayer as J}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as v}from"./mixins/ScaleRangeLayer.js";import T from"./support/Field.js";import C from"../symbols/SimpleFillSymbol.js";import M from"../symbols/SimpleLineSymbol.js";import I from"../symbols/SimpleMarkerSymbol.js";import R from"../symbols/TextSymbol.js";import D from"../geometry/SpatialReference.js";import E from"../geometry/Extent.js";function F(e){return"markup"===e.featureCollectionType||e.layers.some((e=>null!=e.layerDefinition.visibilityField||!G(e)))}function G({layerDefinition:e,featureSet:t}){const r=e.geometryType??t.geometryType;return z.find((t=>r===t.geometryTypeJSON&&e.drawingInfo?.renderer?.symbol?.type===t.identifyingSymbol.type))}const _=new T({name:"OBJECTID",alias:"OBJECTID",type:"oid",nullable:!1,editable:!1}),P=new T({name:"title",alias:"Title",type:"string",nullable:!0,editable:!0});let k=class extends w{constructor(e){super(e),this.visibilityMode="inherited"}initialize(){for(const e of this.graphics)e.sourceLayer=this.layer;this.graphics.on("after-add",(e=>{e.item.sourceLayer=this.layer})),this.graphics.on("after-remove",(e=>{e.item.sourceLayer=null}))}get sublayers(){return this.graphics}};e([y({readOnly:!0})],k.prototype,"sublayers",null),e([y()],k.prototype,"layer",void 0),e([y()],k.prototype,"layerId",void 0),e([y({readOnly:!0})],k.prototype,"visibilityMode",void 0),k=e([u("esri.layers.MapNotesLayer.MapNotesSublayer")],k);const z=[{geometryType:"polygon",geometryTypeJSON:"esriGeometryPolygon",id:"polygonLayer",layerId:0,title:"Polygons",identifyingSymbol:(new C).toJSON()},{geometryType:"polyline",geometryTypeJSON:"esriGeometryPolyline",id:"polylineLayer",layerId:1,title:"Polylines",identifyingSymbol:(new M).toJSON()},{geometryType:"multipoint",geometryTypeJSON:"esriGeometryMultipoint",id:"multipointLayer",layerId:2,title:"Multipoints",identifyingSymbol:(new I).toJSON()},{geometryType:"point",geometryTypeJSON:"esriGeometryPoint",id:"pointLayer",layerId:3,title:"Points",identifyingSymbol:(new I).toJSON()},{geometryType:"point",geometryTypeJSON:"esriGeometryPoint",id:"textLayer",layerId:4,title:"Text",identifyingSymbol:(new R).toJSON()}];let B=class extends(L(v(x(J(n(j)))))){constructor(e){super(e),this.capabilities={operations:{supportsMapNotesEditing:!0}},this.featureCollections=null,this.featureCollectionJSON=null,this.featureCollectionType="notes",this.legendEnabled=!1,this.listMode="hide-children",this.minScale=0,this.maxScale=0,this.spatialReference=D.WGS84,this.sublayers=new r(z.map((e=>new k({id:e.id,layerId:e.layerId,title:e.title,layer:this})))),this.title="Map Notes",this.type="map-notes",this.visibilityMode="inherited"}readCapabilities(e,t,r){return{operations:{supportsMapNotesEditing:!F(t)&&"portal-item"!==r?.origin}}}readFeatureCollections(e,t,o){if(!F(t))return null;const i=t.layers.map((e=>{const t=new O;return t.read(e,o),t}));return new r({items:i})}readLegacyfeatureCollectionJSON(e,t){return F(t)?i(t.featureCollection):null}readFullExtent(e,t){if(!t.layers.length||t.layers.every((e=>!e.layerDefinition.extent)))return new E({xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:D.WGS84});const r=D.fromJSON(t.layers[0].layerDefinition.spatialReference);return t.layers.reduce(((e,t)=>{const r=t.layerDefinition.extent;return r?E.fromJSON(r).union(e):e}),new E({spatialReference:r}))}readMinScale(e,t){for(const r of t.layers)if(null!=r.layerDefinition.minScale)return r.layerDefinition.minScale;return 0}readMaxScale(e,t){for(const r of t.layers)if(null!=r.layerDefinition.maxScale)return r.layerDefinition.maxScale;return 0}get multipointLayer(){return this._findSublayer("multipointLayer")}get pointLayer(){return this._findSublayer("pointLayer")}get polygonLayer(){return this._findSublayer("polygonLayer")}get polylineLayer(){return this._findSublayer("polylineLayer")}readSpatialReference(e,t){return t.layers.length?D.fromJSON(t.layers[0].layerDefinition.spatialReference):D.WGS84}readSublayers(e,o,i){if(F(o))return null;const l=[];let n=o.layers.reduce(((e,t)=>Math.max(e,t.layerDefinition.id??-1)),-1)+1;for(const r of o.layers){const{layerDefinition:e,featureSet:o}=r,i=e.id??n++,s=G(r);if(a(s)){const r=new k({id:s.id,title:e.name,layerId:i,layer:this,graphics:o.features.map((({geometry:e,symbol:r,attributes:o,popupInfo:i})=>t.fromJSON({attributes:o,geometry:e,symbol:r,popupTemplate:i})))});l.push(r)}}return new r(l)}writeSublayers(e,t,r,i){const{minScale:n,maxScale:p}=this;if(l(e))return;const y=e.some((e=>e.graphics.length>0));if(!this.capabilities.operations.supportsMapNotesEditing)return void(y&&i?.messages?.push(new o("map-notes-layer:editing-not-supported","New map notes cannot be added to this layer")));const m=[];let u=this.spatialReference.toJSON();e:for(const o of e)for(const e of o.graphics)if(a(e.geometry)){u=e.geometry.spatialReference.toJSON();break e}for(const o of z){const t=e.find((e=>o.id===e.id));this._writeMapNoteSublayer(m,t,o,n,p,u,i)}s("featureCollection.layers",m,t)}get textLayer(){return this._findSublayer("textLayer")}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Feature Collection"]},e)),Promise.resolve(this)}read(e,t){"featureCollection"in e&&(e=i(e),Object.assign(e,e.featureCollection)),super.read(e,t)}async beforeSave(){if(l(this.sublayers))return;let e=null;const t=[];for(const o of this.sublayers)for(const r of o.graphics)if(a(r.geometry)){const o=r.geometry;e?h(o.spatialReference,e)||(d(o.spatialReference,e)||f()||await g(),r.geometry=b(o,e)):e=o.spatialReference,t.push(r)}const r=await S(t.map((e=>e.geometry)));t.forEach(((e,t)=>e.geometry=r[t]))}_findSublayer(e){return l(this.sublayers)?null:this.sublayers?.find((t=>t.id===e))??null}_writeMapNoteSublayer(e,t,r,o,a,n,s){const p=[];if(!l(t)){for(const e of t.graphics)this._writeMapNote(p,e,r.geometryType,s);this._normalizeObjectIds(p,_),e.push({layerDefinition:{name:t.title,drawingInfo:{renderer:{type:"simple",symbol:i(r.identifyingSymbol)}},id:t.layerId,geometryType:r.geometryTypeJSON,minScale:o,maxScale:a,objectIdField:"OBJECTID",fields:[_.toJSON(),P.toJSON()],spatialReference:n},featureSet:{features:p,geometryType:r.geometryTypeJSON}})}}_writeMapNote(e,t,r,o){if(l(t))return;const{geometry:i,symbol:n,popupTemplate:s}=t;if(l(i))return;if(i.type!==r)return void o?.messages?.push(new p("map-notes-layer:invalid-geometry-type",`Geometry "${i.type}" cannot be saved in "${r}" layer`,{graphic:t}));if(l(n))return void o?.messages?.push(new p("map-notes-layer:no-symbol","Skipping map notes with no symbol",{graphic:t}));const y={attributes:{...t.attributes},geometry:i.toJSON(),symbol:n.toJSON()};a(s)&&(y.popupInfo=s.toJSON()),e.push(y)}_normalizeObjectIds(e,t){const r=t.name;let o=N(r,e)+1;const i=new Set;for(const a of e){a.attributes||(a.attributes={});const{attributes:e}=a;(null==e[r]||i.has(e[r]))&&(e[r]=o++),i.add(e[r])}}};e([y({readOnly:!0})],B.prototype,"capabilities",void 0),e([m(["portal-item","web-map"],"capabilities",["layers"])],B.prototype,"readCapabilities",null),e([y({readOnly:!0})],B.prototype,"featureCollections",void 0),e([m(["web-map","portal-item"],"featureCollections",["layers"])],B.prototype,"readFeatureCollections",null),e([y({readOnly:!0,json:{origins:{"web-map":{write:{enabled:!0,target:"featureCollection"}}}}})],B.prototype,"featureCollectionJSON",void 0),e([m(["web-map","portal-item"],"featureCollectionJSON",["featureCollection"])],B.prototype,"readLegacyfeatureCollectionJSON",null),e([y({readOnly:!0,json:{read:!0,write:{enabled:!0,ignoreOrigin:!0}}})],B.prototype,"featureCollectionType",void 0),e([y({json:{write:!1}})],B.prototype,"fullExtent",void 0),e([m(["web-map","portal-item"],"fullExtent",["layers"])],B.prototype,"readFullExtent",null),e([y({readOnly:!0,json:{origins:{"web-map":{write:{target:"featureCollection.showLegend",overridePolicy(){return{enabled:null!=this.featureCollectionJSON}}}}}}})],B.prototype,"legendEnabled",void 0),e([y({type:["show","hide","hide-children"]})],B.prototype,"listMode",void 0),e([y({type:Number,nonNullable:!0,json:{write:!1}})],B.prototype,"minScale",void 0),e([m(["web-map","portal-item"],"minScale",["layers"])],B.prototype,"readMinScale",null),e([y({type:Number,nonNullable:!0,json:{write:!1}})],B.prototype,"maxScale",void 0),e([m(["web-map","portal-item"],"maxScale",["layers"])],B.prototype,"readMaxScale",null),e([y({readOnly:!0})],B.prototype,"multipointLayer",null),e([y({value:"ArcGISFeatureLayer",type:["ArcGISFeatureLayer"]})],B.prototype,"operationalLayerType",void 0),e([y({readOnly:!0})],B.prototype,"pointLayer",null),e([y({readOnly:!0})],B.prototype,"polygonLayer",null),e([y({readOnly:!0})],B.prototype,"polylineLayer",null),e([y({type:D})],B.prototype,"spatialReference",void 0),e([m(["web-map","portal-item"],"spatialReference",["layers"])],B.prototype,"readSpatialReference",null),e([y({readOnly:!0,json:{origins:{"web-map":{write:{ignoreOrigin:!0}}}}})],B.prototype,"sublayers",void 0),e([m("web-map","sublayers",["layers"])],B.prototype,"readSublayers",null),e([c("web-map","sublayers")],B.prototype,"writeSublayers",null),e([y({readOnly:!0})],B.prototype,"textLayer",null),e([y()],B.prototype,"title",void 0),e([y({readOnly:!0,json:{read:!1}})],B.prototype,"type",void 0),B=e([u("esri.layers.MapNotesLayer")],B);const W=B;export{W as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../geometry.js";import t from"../Graphic.js";import"../symbols.js";import r from"../core/Collection.js";import o from"../core/Error.js";import{clone as i}from"../core/lang.js";import{isSome as l,isNone as a}from"../core/maybe.js";import{MultiOriginJSONMixin as n}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as s}from"../core/object.js";import p from"../core/Warning.js";import{property as y}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{reader as m}from"../core/accessorSupport/decorators/reader.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{writer as c}from"../core/accessorSupport/decorators/writer.js";import{projectOrLoad as f,canProjectWithoutEngine as d,isLoaded as g,load as b,project as S}from"../geometry/projection.js";import{empty as h,expand as O,equals as w,toExtent as j,NEGATIVE_INFINITY as N}from"../geometry/support/aaBoundingRect.js";import{normalizeCentralMeridian as L}from"../geometry/support/normalizeUtils.js";import{equals as x}from"../geometry/support/spatialReferenceUtils.js";import J from"./FeatureLayer.js";import T from"./GraphicsLayer.js";import v from"./Layer.js";import{findLastObjectIdFromFeatures as C}from"./graphics/objectIdUtils.js";import{BlendLayer as M}from"./mixins/BlendLayer.js";import{OperationalLayer as I}from"./mixins/OperationalLayer.js";import{PortalLayer as R}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as E}from"./mixins/ScaleRangeLayer.js";import D from"./support/Field.js";import _ from"../symbols/SimpleFillSymbol.js";import G from"../symbols/SimpleLineSymbol.js";import P from"../symbols/SimpleMarkerSymbol.js";import F from"../symbols/TextSymbol.js";import B from"../geometry/SpatialReference.js";import k from"../geometry/Extent.js";function z(e){return"markup"===e.featureCollectionType||e.layers.some((e=>null!=e.layerDefinition.visibilityField||!U(e)))}function U({layerDefinition:e,featureSet:t}){const r=e.geometryType??t.geometryType;return H.find((t=>r===t.geometryTypeJSON&&e.drawingInfo?.renderer?.symbol?.type===t.identifyingSymbol.type))}function W(){return new k({xmin:-180,ymin:-90,xmax:180,ymax:90})}const A=new D({name:"OBJECTID",alias:"OBJECTID",type:"oid",nullable:!1,editable:!1}),$=new D({name:"title",alias:"Title",type:"string",nullable:!0,editable:!0});let q=class extends T{constructor(e){super(e),this.visibilityMode="inherited"}initialize(){for(const e of this.graphics)e.sourceLayer=this.layer;this.graphics.on("after-add",(e=>{e.item.sourceLayer=this.layer})),this.graphics.on("after-remove",(e=>{e.item.sourceLayer=null}))}get fullExtent(){const e=this.layer.spatialReference,t=this.fullBounds;return a(t)?f(W(),e).geometry:j(t,e)}get fullBounds(){const e=this.layer.spatialReference,t=h();return this.graphics.forEach((r=>{const o=l(r.geometry)?f(r.geometry,e).geometry:null;l(o)&&O(t,"point"===o.type?o:o.extent,t)})),w(t,N)?null:t}get sublayers(){return this.graphics}};e([y({readOnly:!0})],q.prototype,"fullExtent",null),e([y({readOnly:!0})],q.prototype,"fullBounds",null),e([y({readOnly:!0})],q.prototype,"sublayers",null),e([y()],q.prototype,"layer",void 0),e([y()],q.prototype,"layerId",void 0),e([y({readOnly:!0})],q.prototype,"visibilityMode",void 0),q=e([u("esri.layers.MapNotesLayer.MapNotesSublayer")],q);const H=[{geometryType:"polygon",geometryTypeJSON:"esriGeometryPolygon",id:"polygonLayer",layerId:0,title:"Polygons",identifyingSymbol:(new _).toJSON()},{geometryType:"polyline",geometryTypeJSON:"esriGeometryPolyline",id:"polylineLayer",layerId:1,title:"Polylines",identifyingSymbol:(new G).toJSON()},{geometryType:"multipoint",geometryTypeJSON:"esriGeometryMultipoint",id:"multipointLayer",layerId:2,title:"Multipoints",identifyingSymbol:(new P).toJSON()},{geometryType:"point",geometryTypeJSON:"esriGeometryPoint",id:"pointLayer",layerId:3,title:"Points",identifyingSymbol:(new P).toJSON()},{geometryType:"point",geometryTypeJSON:"esriGeometryPoint",id:"textLayer",layerId:4,title:"Text",identifyingSymbol:(new F).toJSON()}];let K=class extends(M(E(I(R(n(v)))))){constructor(e){super(e),this.capabilities={operations:{supportsMapNotesEditing:!0}},this.featureCollections=null,this.featureCollectionJSON=null,this.featureCollectionType="notes",this.legendEnabled=!1,this.listMode="hide-children",this.minScale=0,this.maxScale=0,this.spatialReference=B.WGS84,this.sublayers=new r(H.map((e=>new q({id:e.id,layerId:e.layerId,title:e.title,layer:this})))),this.title="Map Notes",this.type="map-notes",this.visibilityMode="inherited"}readCapabilities(e,t,r){return{operations:{supportsMapNotesEditing:!z(t)&&"portal-item"!==r?.origin}}}readFeatureCollections(e,t,o){if(!z(t))return null;const i=t.layers.map((e=>{const t=new J;return t.read(e,o),t}));return new r({items:i})}readLegacyfeatureCollectionJSON(e,t){return z(t)?i(t.featureCollection):null}get fullExtent(){const e=this.spatialReference,t=h();if(l(this.sublayers))this.sublayers.forEach((({fullBounds:e})=>l(e)?O(t,e,t):t),t);else if(this.featureCollectionJSON?.layers.some((e=>e.layerDefinition.extent))){this.featureCollectionJSON.layers.forEach((r=>{const o=f(r.layerDefinition.extent,e).geometry;l(o)&&O(t,o,t)}))}return w(t,N)?f(W(),e).geometry:j(t,e)}readMinScale(e,t){for(const r of t.layers)if(null!=r.layerDefinition.minScale)return r.layerDefinition.minScale;return 0}readMaxScale(e,t){for(const r of t.layers)if(null!=r.layerDefinition.maxScale)return r.layerDefinition.maxScale;return 0}get multipointLayer(){return this._findSublayer("multipointLayer")}get pointLayer(){return this._findSublayer("pointLayer")}get polygonLayer(){return this._findSublayer("polygonLayer")}get polylineLayer(){return this._findSublayer("polylineLayer")}readSpatialReference(e,t){return t.layers.length?B.fromJSON(t.layers[0].layerDefinition.spatialReference):B.WGS84}readSublayers(e,o,i){if(z(o))return null;const a=[];let n=o.layers.reduce(((e,t)=>Math.max(e,t.layerDefinition.id??-1)),-1)+1;for(const r of o.layers){const{layerDefinition:e,featureSet:o}=r,i=e.id??n++,s=U(r);if(l(s)){const r=new q({id:s.id,title:e.name,layerId:i,layer:this,graphics:o.features.map((({geometry:e,symbol:r,attributes:o,popupInfo:i})=>t.fromJSON({attributes:o,geometry:e,symbol:r,popupTemplate:i})))});a.push(r)}}return new r(a)}writeSublayers(e,t,r,i){const{minScale:n,maxScale:p}=this;if(a(e))return;const y=e.some((e=>e.graphics.length>0));if(!this.capabilities.operations.supportsMapNotesEditing)return void(y&&i?.messages?.push(new o("map-notes-layer:editing-not-supported","New map notes cannot be added to this layer")));const m=[];let u=this.spatialReference.toJSON();e:for(const o of e)for(const e of o.graphics)if(l(e.geometry)){u=e.geometry.spatialReference.toJSON();break e}for(const o of H){const t=e.find((e=>o.id===e.id));this._writeMapNoteSublayer(m,t,o,n,p,u,i)}s("featureCollection.layers",m,t)}get textLayer(){return this._findSublayer("textLayer")}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Feature Collection"]},e)),Promise.resolve(this)}read(e,t){"featureCollection"in e&&(e=i(e),Object.assign(e,e.featureCollection)),super.read(e,t)}async beforeSave(){if(a(this.sublayers))return;let e=null;const t=[];for(const o of this.sublayers)for(const r of o.graphics)if(l(r.geometry)){const o=r.geometry;e?x(o.spatialReference,e)||(d(o.spatialReference,e)||g()||await b(),r.geometry=S(o,e)):e=o.spatialReference,t.push(r)}const r=await L(t.map((e=>e.geometry)));t.forEach(((e,t)=>e.geometry=r[t]))}_findSublayer(e){return a(this.sublayers)?null:this.sublayers?.find((t=>t.id===e))??null}_writeMapNoteSublayer(e,t,r,o,l,n,s){const p=[];if(!a(t)){for(const e of t.graphics)this._writeMapNote(p,e,r.geometryType,s);this._normalizeObjectIds(p,A),e.push({layerDefinition:{name:t.title,drawingInfo:{renderer:{type:"simple",symbol:i(r.identifyingSymbol)}},id:t.layerId,geometryType:r.geometryTypeJSON,minScale:o,maxScale:l,objectIdField:"OBJECTID",fields:[A.toJSON(),$.toJSON()],spatialReference:n},featureSet:{features:p,geometryType:r.geometryTypeJSON}})}}_writeMapNote(e,t,r,o){if(a(t))return;const{geometry:i,symbol:n,popupTemplate:s}=t;if(a(i))return;if(i.type!==r)return void o?.messages?.push(new p("map-notes-layer:invalid-geometry-type",`Geometry "${i.type}" cannot be saved in "${r}" layer`,{graphic:t}));if(a(n))return void o?.messages?.push(new p("map-notes-layer:no-symbol","Skipping map notes with no symbol",{graphic:t}));const y={attributes:{...t.attributes},geometry:i.toJSON(),symbol:n.toJSON()};l(s)&&(y.popupInfo=s.toJSON()),e.push(y)}_normalizeObjectIds(e,t){const r=t.name;let o=C(r,e)+1;const i=new Set;for(const l of e){l.attributes||(l.attributes={});const{attributes:e}=l;(null==e[r]||i.has(e[r]))&&(e[r]=o++),i.add(e[r])}}};e([y({readOnly:!0})],K.prototype,"capabilities",void 0),e([m(["portal-item","web-map"],"capabilities",["layers"])],K.prototype,"readCapabilities",null),e([y({readOnly:!0})],K.prototype,"featureCollections",void 0),e([m(["web-map","portal-item"],"featureCollections",["layers"])],K.prototype,"readFeatureCollections",null),e([y({readOnly:!0,json:{origins:{"web-map":{write:{enabled:!0,target:"featureCollection"}}}}})],K.prototype,"featureCollectionJSON",void 0),e([m(["web-map","portal-item"],"featureCollectionJSON",["featureCollection"])],K.prototype,"readLegacyfeatureCollectionJSON",null),e([y({readOnly:!0,json:{read:!0,write:{enabled:!0,ignoreOrigin:!0}}})],K.prototype,"featureCollectionType",void 0),e([y({readOnly:!0})],K.prototype,"fullExtent",null),e([y({readOnly:!0,json:{origins:{"web-map":{write:{target:"featureCollection.showLegend",overridePolicy(){return{enabled:null!=this.featureCollectionJSON}}}}}}})],K.prototype,"legendEnabled",void 0),e([y({type:["show","hide","hide-children"]})],K.prototype,"listMode",void 0),e([y({type:Number,nonNullable:!0,json:{write:!1}})],K.prototype,"minScale",void 0),e([m(["web-map","portal-item"],"minScale",["layers"])],K.prototype,"readMinScale",null),e([y({type:Number,nonNullable:!0,json:{write:!1}})],K.prototype,"maxScale",void 0),e([m(["web-map","portal-item"],"maxScale",["layers"])],K.prototype,"readMaxScale",null),e([y({readOnly:!0})],K.prototype,"multipointLayer",null),e([y({value:"ArcGISFeatureLayer",type:["ArcGISFeatureLayer"]})],K.prototype,"operationalLayerType",void 0),e([y({readOnly:!0})],K.prototype,"pointLayer",null),e([y({readOnly:!0})],K.prototype,"polygonLayer",null),e([y({readOnly:!0})],K.prototype,"polylineLayer",null),e([y({type:B})],K.prototype,"spatialReference",void 0),e([m(["web-map","portal-item"],"spatialReference",["layers"])],K.prototype,"readSpatialReference",null),e([y({readOnly:!0,json:{origins:{"web-map":{write:{ignoreOrigin:!0}}}}})],K.prototype,"sublayers",void 0),e([m("web-map","sublayers",["layers"])],K.prototype,"readSublayers",null),e([c("web-map","sublayers")],K.prototype,"writeSublayers",null),e([y({readOnly:!0})],K.prototype,"textLayer",null),e([y()],K.prototype,"title",void 0),e([y({readOnly:!0,json:{read:!1}})],K.prototype,"type",void 0),K=e([u("esri.layers.MapNotesLayer")],K);const Q=K;export{Q as default};
|
package/package.json
CHANGED
package/support/revision.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
const d="
|
|
5
|
+
const d="20221021",b="25fb9e50db9d48be15163d43fbdfd4f44c107c0d";export{d as buildDate,b as commitHash};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isAbortError as e,eachAlways as t}from"../../../../core/promiseUtils.js";import{addQueryParameters as s}from"../../../../core/urlUtils.js";import{open as r}from"../../../../core/workers/workers.js";import i from"./GlyphMosaic.js";import o from"./GlyphSource.js";import a from"./SpriteMosaic.js";import l from"../../tiling/TileKey.js";class n{constructor(e,t,s){this._layer=e,this._styleRepository=t,this.devicePixelRatio=s,this._spriteMosaic=null,this._glyphMosaic=null,this._connection=null}destroy(){this._connection&&(this._connection.close(),this._connection=null),this._styleRepository=null,this._layer=null,this._spriteMosaic&&(this._spriteMosaic=null),this._glyphMosaic&&(this._glyphMosaic=null)}get spriteMosaic(){return this._spriteSourcePromise.then((()=>this._spriteMosaic))}get glyphMosaic(){return this._glyphMosaic}async start(e){this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,e),this._spriteSourcePromise.then((e=>{this._spriteMosaic=new a(1024,1024,250),this._spriteMosaic.setSpriteSource(e)}));const t=new o(this._layer.currentStyleInfo.glyphsUrl?s(this._layer.currentStyleInfo.glyphsUrl,{...this._layer.customParameters,token:this._layer.apiKey}):null);this._glyphMosaic=new i(1024,1024,t),this._broadcastPromise=r("WorkerTileHandler",{client:this,schedule:e.schedule,signal:e.signal}).then((t=>{this._connection=t,this._connection.broadcast("setStyle",this._layer.currentStyleInfo.style,e)}))}async updateStyle(e){return await this._broadcastPromise,this._broadcastPromise=Promise.all(this._connection.broadcast("updateStyle",e)),this._broadcastPromise}setSpriteSource(e){const t=new a(1024,1024,250);return t.setSpriteSource(e),this._spriteMosaic=t,this._spriteSourcePromise=Promise.resolve(e),t}async setStyle(e,t){await this._broadcastPromise,this._styleRepository=e,this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,null),this._spriteSourcePromise.then((e=>{this._spriteMosaic=new a(1024,1024,250),this._spriteMosaic.setSpriteSource(e)}));const r=new o(this._layer.currentStyleInfo.glyphsUrl?s(this._layer.currentStyleInfo.glyphsUrl,{...this._layer.customParameters,token:this._layer.apiKey}):null);return this._glyphMosaic=new i(1024,1024,r),this._broadcastPromise=Promise.all(this._connection.broadcast("setStyle",t)),this._broadcastPromise}fetchTileData(e,t){return this._getRefKeys(e,t).then((e=>{const s=this._layer.sourceNameToSource,r=[];for(const t in s)r.push(t);return this._getSourcesData(r,e,t)}))}parseTileData(e,t){const s=e&&e.data;if(!s)return Promise.resolve(null);const{sourceName2DataAndRefKey:r,transferList:i}=s;return 0===Object.keys(r).length?Promise.resolve(null):this._broadcastPromise.then((()=>this._connection.invoke("createTileAndParse",{key:e.key.id,sourceName2DataAndRefKey:r,styleLayerUIDs:e.styleLayerUIDs},{...t,transferList:i})))}async getSprites(e){return await this._spriteSourcePromise,this._spriteMosaic.getSpriteItems(e)}getGlyphs(e){return this._glyphMosaic.getGlyphItems(e.font,e.codePoints)}async _getTilePayload(t,s,r){const i=l.pool.acquire(t.id),o=this._layer.sourceNameToSource[s],{level:a,row:n,col:c}=i;l.pool.release(i);try{return{protobuff:await o.requestTile(a,n,c,r),sourceName:s}}catch(h){if(e(h))throw h;return{protobuff:null,sourceName:s}}}_getRefKeys(e,s){const r=this._layer.sourceNameToSource,i=new Array;for(const t in r){const o=r[t].getRefKey(e,s);i.push(o)}return t(i)}_getSourcesData(e,s,r){const i=[];for(let t=0;t<s.length;t++)if(null==s[t].value||null==e[t])i.push(null);else{const o=this._getTilePayload(s[t].value,e[t],r);i.push(o)}return t(i).then((e=>{const t={},r=[];for(let i=0;i<e.length;i++)if(e[i].value&&e[i].value&&e[i].value.protobuff&&e[i].value.protobuff.byteLength>0){const o=s[i].value.id;t[e[i].value.sourceName]={refKey:o,protobuff:e[i].value.protobuff},r.push(e[i].value.protobuff)}return{sourceName2DataAndRefKey:t,transferList:r}}))}}export{n as TileHandler};
|
|
5
|
+
import{isAbortError as e,eachAlways as t}from"../../../../core/promiseUtils.js";import{addQueryParameters as s}from"../../../../core/urlUtils.js";import{open as r}from"../../../../core/workers/workers.js";import i from"./GlyphMosaic.js";import o from"./GlyphSource.js";import a from"./SpriteMosaic.js";import l from"../../tiling/TileKey.js";class n{constructor(e,t,s){this._layer=e,this._styleRepository=t,this.devicePixelRatio=s,this._spriteMosaic=null,this._glyphMosaic=null,this._connection=null}destroy(){this._connection&&(this._connection.close(),this._connection=null),this._styleRepository=null,this._layer=null,this._spriteMosaic&&(this._spriteMosaic=null),this._glyphMosaic&&(this._glyphMosaic=null)}get spriteMosaic(){return this._spriteSourcePromise.then((()=>this._spriteMosaic))}get glyphMosaic(){return this._glyphMosaic}async start(e){this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,e),this._spriteSourcePromise.then((e=>{this._spriteMosaic=new a(1024,1024,250),this._spriteMosaic.setSpriteSource(e)}));const t=new o(this._layer.currentStyleInfo.glyphsUrl?s(this._layer.currentStyleInfo.glyphsUrl,{...this._layer.customParameters,token:this._layer.apiKey}):null);this._glyphMosaic=new i(1024,1024,t),this._broadcastPromise=r("WorkerTileHandler",{client:this,schedule:e.schedule,signal:e.signal}).then((t=>{this._connection=t,this._layer&&this._connection.broadcast("setStyle",this._layer.currentStyleInfo.style,e)}))}async updateStyle(e){return await this._broadcastPromise,this._broadcastPromise=Promise.all(this._connection.broadcast("updateStyle",e)),this._broadcastPromise}setSpriteSource(e){const t=new a(1024,1024,250);return t.setSpriteSource(e),this._spriteMosaic=t,this._spriteSourcePromise=Promise.resolve(e),t}async setStyle(e,t){await this._broadcastPromise,this._styleRepository=e,this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,null),this._spriteSourcePromise.then((e=>{this._spriteMosaic=new a(1024,1024,250),this._spriteMosaic.setSpriteSource(e)}));const r=new o(this._layer.currentStyleInfo.glyphsUrl?s(this._layer.currentStyleInfo.glyphsUrl,{...this._layer.customParameters,token:this._layer.apiKey}):null);return this._glyphMosaic=new i(1024,1024,r),this._broadcastPromise=Promise.all(this._connection.broadcast("setStyle",t)),this._broadcastPromise}fetchTileData(e,t){return this._getRefKeys(e,t).then((e=>{const s=this._layer.sourceNameToSource,r=[];for(const t in s)r.push(t);return this._getSourcesData(r,e,t)}))}parseTileData(e,t){const s=e&&e.data;if(!s)return Promise.resolve(null);const{sourceName2DataAndRefKey:r,transferList:i}=s;return 0===Object.keys(r).length?Promise.resolve(null):this._broadcastPromise.then((()=>this._connection.invoke("createTileAndParse",{key:e.key.id,sourceName2DataAndRefKey:r,styleLayerUIDs:e.styleLayerUIDs},{...t,transferList:i})))}async getSprites(e){return await this._spriteSourcePromise,this._spriteMosaic.getSpriteItems(e)}getGlyphs(e){return this._glyphMosaic.getGlyphItems(e.font,e.codePoints)}async _getTilePayload(t,s,r){const i=l.pool.acquire(t.id),o=this._layer.sourceNameToSource[s],{level:a,row:n,col:c}=i;l.pool.release(i);try{return{protobuff:await o.requestTile(a,n,c,r),sourceName:s}}catch(h){if(e(h))throw h;return{protobuff:null,sourceName:s}}}_getRefKeys(e,s){const r=this._layer.sourceNameToSource,i=new Array;for(const t in r){const o=r[t].getRefKey(e,s);i.push(o)}return t(i)}_getSourcesData(e,s,r){const i=[];for(let t=0;t<s.length;t++)if(null==s[t].value||null==e[t])i.push(null);else{const o=this._getTilePayload(s[t].value,e[t],r);i.push(o)}return t(i).then((e=>{const t={},r=[];for(let i=0;i<e.length;i++)if(e[i].value&&e[i].value&&e[i].value.protobuff&&e[i].value.protobuff.byteLength>0){const o=s[i].value.id;t[e[i].value.sourceName]={refKey:o,protobuff:e[i].value.protobuff},r.push(e[i].value.protobuff)}return{sourceName2DataAndRefKey:t,transferList:r}}))}}export{n as TileHandler};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../../../chunks/tslib.es6.js";import i from"../../../../Color.js";import"../../../../geometry.js";import{LengthDimensionMeasureType as e}from"../../../../analysis/dimensionUtils.js";import n from"../../../../analysis/LengthDimension.js";import{HandleOwner as a}from"../../../../core/HandleOwner.js";import o from"../../../../core/Handles.js";import{equals as s}from"../../../../core/lang.js";import{isNone as r,applySome as p,isSome as l,destroyMaybe as u,unwrapOr as d}from"../../../../core/maybe.js";import{ignoreAbortErrors as m}from"../../../../core/promiseUtils.js";import{watch as c,sync as h,syncAndInitial as g,initial as f}from"../../../../core/reactiveUtils.js";import{property as _}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as M}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as y}from"../../../../chunks/vec3f64.js";import{clonePoint as v}from"../../../../layers/graphics/hydratedFeatures.js";import{LengthDimensionConstraint as S,computeConstraint as w,applyConstraint as C}from"./lengthDimensionConstraintUtils.js";import{LengthDimensionManipulators as b,createPointManipulator as P,pointManipulatorHandles as D,createOffsetManipulator as O,offsetManipulatorHandles as H,createOrientationManipulator as j,headingManipulatorHandles as T,rotationManipulatorHandles as z,createMeasureTypeManipulator as G,measureTypeManipulatorHandles as x,updateOffsetManipulatorTransform as U,updateHeadingManipulatorTransform as V,updateRotationManipulatorTransform as R,updateMeasureTypeManipulatorTransform as L,unfocusedOffsetWidth as k,focusedOffsetWidth as I}from"./lengthDimensionManipulatorUtils.js";import{isValidComputation as E,arePointsVerticallyAligned as F,computeGeometryFromDimension as A,computationToGeometryDependencies as B}from"./lengthDimensionUtils.js";import{settings as q}from"./settings.js";import{getRotateHeadingTexture as N}from"../Slice/images/Factory.js";import{SnappingVisualizer3D as J}from"../../interactive/SnappingVisualizer3D.js";import{LineVisualElement as K}from"../../interactive/visualElements/LineVisualElement.js";import{RenderOccludedFlag as Q}from"../../webgl-engine/lib/Material.js";import{createStipplePatternSimple as W}from"../../webgl-engine/materials/lineStippleUtils.js";import{RibbonLineMaterial as X}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createCoordinateHelper as Y}from"../../../interactive/coordinateHelper.js";import{EditGeometry as Z}from"../../../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as $}from"../../../interactive/editGeometry/EditGeometryOperations.js";import{acquire as tt}from"../../../interactive/snapping/SceneSnappingManagerPool.js";import{SnappingContext as it}from"../../../interactive/snapping/SnappingContext.js";import{SnappingPipeline as et}from"../../../interactive/snapping/SnappingDragPipelineStep.js";import{SnappingOperation as nt}from"../../../interactive/snapping/SnappingOperation.js";import at from"../../../../geometry/Point.js";let ot=class extends a{constructor(t){super(t),this._stagedDimension=null,this._computationManipulators=new Map,this._computationHandles=new o,this._snappingPipeline=new et,this._updateHeadingManipulatorLineSize=()=>{},this._updateRotationManipulatorLineSize=()=>{},this._snappingManagerResult=tt(t.view),this.addHandles(this._snappingManagerResult),this._unfocusedOffsetManipulatorMaterial=st(),this._focusedOffsetManipulatorMaterial=st(),this._thinOffsetManipulatorMaterial=st(),this._thinOffsetManipulatorMaterial.setParameters({stipplePattern:W(2)}),this._constraintSnappingIndicator=new K({view:t.view,attached:!0,width:1,color:i.toUnitRGBA(q.constraint.color),renderOccluded:Q.OccludeAndTransparent,stipplePattern:W(5)})}initialize(){this._snappingOperation=new nt({view:this.view}),this._orientationManipulatorTexture=N(this.view.toolViewManager.textures);const{computations:t}=this.analysisViewData;for(const i of t)this._addComputation(i);this.addHandles([t.on("after-add",(t=>this._addComputation(t.item))),t.on("after-remove",(t=>this._removeComputation(t.item)))]),this.addHandles([c((()=>({stagedPoint:this._snappingOperation.stagedPoint,stagedComputation:this._stagedComputation})),(({stagedPoint:t,stagedComputation:i})=>{if(r(i))return;const e=p(t,(t=>v(t,new at)));this._applyPointUpdate(i,{endPoint:e})}),h),c((()=>({stagedDimension:this._stagedDimension,selectedComputation:this.analysisViewData.selectedComputation,firstGrabbedManipulator:this.firstGrabbedManipulator})),((t,i)=>{const{stagedDimension:e,selectedComputation:n,firstGrabbedManipulator:a}=t;if(e===i.stagedDimension&&a===i.firstGrabbedManipulator){for(const o of[n,i.selectedComputation])if(l(o)){const i=this._computationManipulators.get(o);this._updateManipulators(o,i,t)}}else for(const[o,s]of this._computationManipulators)this._updateManipulators(o,s,t)}),g),c((()=>this.analysis.style.lineSize),(t=>{this._updateManipulatorStyle(t)}),f),c((()=>this.view.state.camera),(()=>{l(this._stagedComputation)&&this._updateStagedDimensionOffset(this._stagedComputation)}))]),this.addHandles(this._constraintHandles),this.addHandles(this._snappingIndicatorHandles)}destroy(){this._snappingOperation=u(this._snappingOperation),this._computationHandles.destroy(),this._constraintSnappingIndicator.destroy()}get updating(){return this.updatingHandles.updating||this._snappingManager.updating}get firstGrabbedManipulator(){return this.parentTool.firstGrabbedManipulator}get hasGrabbedManipulators(){return this.parentTool.hasGrabbedManipulators}get _snappingManager(){return this._snappingManagerResult.snappingManager}get _activeComputation(){if(l(this._stagedComputation))return this._stagedComputation;const{selectedComputation:t}=this.analysisViewData;return this.hasGrabbedManipulators&&l(t)?t:null}get _stagedComputation(){const t=this._stagedDimension,i=this.analysisViewData.computations.at(-1);return r(t)||r(i)||i.dimension!==t?null:i}get _constraintHandles(){return[c((()=>{const t=this._activeComputation;if(r(t))return null;const{measureType:i,orientation:e}=t.dimension;return{measureType:i,orientation:e,computation:t}}),((t,i)=>{if(l(t)&&r(i)){const{measureType:i,orientation:n,computation:a}=t;switch(a.previousConstraint){case S.Horizontal:a.preConstraintProperties={measureType:e.Horizontal,orientation:0};break;case S.Vertical:a.preConstraintProperties={measureType:e.Vertical,orientation:0};break;case S.Direct:a.preConstraintProperties={measureType:e.Direct,orientation:n};break;default:a.preConstraintProperties={measureType:i,orientation:n}}}r(t)&&l(i)&&(i.computation.preConstraintProperties=null)}),h)]}get _snappingIndicatorHandles(){const t="snapping-indicator-event-handles";return[c((()=>({stagedComputation:this._stagedComputation,activeComputation:this._activeComputation})),(({stagedComputation:i,activeComputation:e})=>{const n=this._constraintSnappingIndicator;if(this.removeHandles(t),r(e))n.attached=!1;else if(e===i)n.attached=!0;else{const{start:i,end:a}=this._computationManipulators.get(e),o=()=>{n.attached=i.grabbing||a.grabbing};o(),this.addHandles([i.events.on("grab-changed",o),a.events.on("grab-changed",o)],t)}})),c((()=>{const t=this._activeComputation;return l(t)?{geometry:t.geometry,constraint:t.previousConstraint}:{}}),(({geometry:t,constraint:i})=>{const e=this._constraintSnappingIndicator;l(t)&&l(i)&&i!==S.Direct?(e.visible=!0,e.setGeometryFromSegment(t.directSegment)):e.visible=!1}))]}removeStaged(){return!!l(this._stagedDimension)&&(this.analysis.dimensions.remove(this._stagedDimension),this._stagedDimension=null,!0)}onDeactivate(){this.removeStaged(),this._snappingManager.doneSnapping()}onClick(t){const{_stagedDimension:i}=this;if(r(i)){const i=this._onUnstagedClick(t);return this.analysis.dimensions.add(i),null}return this._onStagedClick(t),i}onPointerMove({mapPoint:t,pointerType:i}){if("touch"===i&&r(this._stagedDimension))return;const e=this._snappingContext(i);this.updatingHandles.addPromise(m(this._snappingOperation.snap({point:t},this._snappingManager,e)))}onManipulatorSelectionChanged(){if(l(this.analysisViewData.selectedComputation)){this._computationManipulators.get(this.analysisViewData.selectedComputation).offset.selected||(this.analysisViewData.selectedDimension=null)}}_onUnstagedClick({mapPoint:t,pointerType:i}){const a="mouse"===i?d(this._snappingOperation.stagedPoint,t):t,o=new n({startPoint:v(a,new at),endPoint:null,measureType:e.Horizontal});return this._stagedDimension=o,this._snappingManager.doneSnapping(),o}_onStagedClick({mapPoint:t,pointerType:i}){const e=this._stagedComputation;if(r(e))return;const n="mouse"===i?d(this._snappingOperation.stagedPoint,t):t,a=v(n,new at);this._applyPointUpdate(e,{endPoint:a}),this._stagedDimension=null,this._snappingManager.doneSnapping()}_addComputation(t){if(this._computationManipulators.has(t))return;const i=this._setupPointManipulator(t,{isStart:!0}),n=this._setupPointManipulator(t,{isStart:!1}),a=this._setupOffsetManipulator(t),o=this._setupHeadingManipulator(t),s=this._setupRotationManipulator(t),r=this._setupMeasureTypeManipulator(t,e.Direct),p=this._setupMeasureTypeManipulator(t,e.Horizontal),l=this._setupMeasureTypeManipulator(t,e.Vertical),u=new b({start:i,end:n,offset:a,heading:o,rotation:s,direct:r,horizontal:p,vertical:l});this._setupComputationToManipulatorsSync(t,u),this._computationManipulators.set(t,u),this.manipulators.addMany(u.values())}_removeComputation(t){const i=this._computationManipulators.get(t);if(!r(i)){this._computationHandles.remove(t),this._computationManipulators.delete(t);for(const t of i.values())this.manipulators.remove(t)}}_setupComputationToManipulatorsSync(t,i){this._computationHandles.add([c((()=>t.geometry),(()=>this._updateManipulators(t,i)),{...g,equals:s})],t)}_setupPointManipulator(t,i){const{view:e}=this,{dimension:n}=t,a=P(e,{metadata:n}),o=D(a,{isStart:i.isStart,createSnappingPipelineStep:(t,i)=>this._snappingPipeline.createSnapDragEventPipelineStep({snappingContext:this._snappingContext(i),snappingManager:this._snappingManager,updatingHandles:this.updatingHandles,cancel:t}),dimension:n,onUpdate:i=>{this._applyPointUpdate(t,i)},snappingPipeline:this._snappingPipeline,view:e});return this._computationHandles.add(o,t),a}_setupOffsetManipulator(t){const{view:i}=this,e=O(i,{lineSizePt:this.analysis.style.lineSize,unfocusedMaterial:this._unfocusedOffsetManipulatorMaterial,focusedMaterial:this._focusedOffsetManipulatorMaterial,metadata:t.dimension}),n=H(e,{computation:t,view:i});return this._computationHandles.add(n,t),e}_setupHeadingManipulator(t){const{view:i}=this,{manipulator:e,updateLineSize:n}=j(i,{lineSizePt:this.analysis.style.lineSize,metadata:t.dimension,texture:this._orientationManipulatorTexture.texture}),a=T(e,{computation:t,view:i});return this._computationHandles.add(a,t),this._updateHeadingManipulatorLineSize=n,e}_setupRotationManipulator(t){const{view:i}=this,{manipulator:e,updateLineSize:n}=j(i,{lineSizePt:this.analysis.style.lineSize,metadata:t.dimension,texture:this._orientationManipulatorTexture.texture}),a=z(e,{computation:t,view:i});return this._computationHandles.add(a,t),this._updateRotationManipulatorLineSize=n,e}_setupMeasureTypeManipulator(t,i){const{view:e}=this,n=G(e,{lineSizePt:this.analysis.style.lineSize,unfocusedMaterial:this._unfocusedOffsetManipulatorMaterial,focusedMaterial:this._focusedOffsetManipulatorMaterial,thinOffsetManipulatorMaterial:this._thinOffsetManipulatorMaterial,metadata:t.dimension}),a=x(n,{computation:t,manipulatorMeasureType:i,view:e});return this._computationHandles.add(a,t),n}_updateManipulators(t,i,n={stagedDimension:this._stagedDimension,selectedComputation:this.analysisViewData.selectedComputation,firstGrabbedManipulator:this.firstGrabbedManipulator}){const{stagedDimension:a,selectedComputation:o,firstGrabbedManipulator:s}=n,{start:p,end:u,offset:d,heading:m,rotation:c}=i,h=o===t,g=E(t),{dimension:f}=t;for(const e of i.values()){const t=g&&r(a)&&(r(s)||e===s);e===d?(e.available=t,e.selected=h):e.available=t&&h}if(!g)return;l(w(t,this.view))?i.forEachMeasureTypeManipulator((t=>t.available=!1)):i.manipulatorForMeasureType(f.measureType).available=!1;for(const r of[m,c])f.measureType===e.Direct&&0!==f.offset||(r.available=!1);F(t)?c.available=!1:m.available=!1;const{geometry:_}=t;p.renderLocation=_.directSegment.startRenderSpace,u.renderLocation=_.directSegment.endRenderSpace;const{renderCoordsHelper:M}=this.view;U(d,_),m.available&&V(m,t,M),c.available&&R(c,t,M),i.forEachMeasureTypeManipulator(((i,e)=>{i.available&&L(i,t,e,M)}))}_updateManipulatorStyle(t){const i=k(t),e=I(t);for(const{offset:n}of this._computationManipulators.values())n.radius=e/2;this._unfocusedOffsetManipulatorMaterial.setParameters({width:i}),this._focusedOffsetManipulatorMaterial.setParameters({width:e}),this._updateHeadingManipulatorLineSize(t),this._updateRotationManipulatorLineSize(t)}_snappingContext(t){return new it({elevationInfo:{mode:"absolute-height",offset:0},pointer:t,editGeometryOperations:new $(new Z("point",Y(!0,!1,this.view.spatialReference))),visualizer:new J})}_applyPointUpdate(t,i){const{view:e}=this,n=B(t);"startPoint"in i&&(n.elevationAlignedStartPoint=i.startPoint),"endPoint"in i&&(n.elevationAlignedEndPoint=i.endPoint);const a=A(n,e.renderCoordsHelper);if(r(a))return;const o=w({...n,geometry:a},e);C(t,i,{...n,constraint:o,unconstrainedGeometry:a,view:e}),t===this._stagedComputation&&this._updateStagedDimensionOffset(t)}_updateStagedDimensionOffset(t){if(r(t.geometry))return;t.geometry.directSegment.eval(.5,rt);const i=this.view.state.camera.computeRenderPixelSizeAt(rt);t.dimension.offset=q.initialOffsetPx*i}get testInfo(){const t=t=>this.analysisViewData.computations.find((i=>i.dimension===t));return{getManipulatorsForDimension:i=>this._computationManipulators.get(t(i)),getComputationForDimension:i=>t(i),getConstraintForDimension:i=>{const e=t(i);return l(e)?w(e,this.view):null},stagedDimension:this._stagedDimension,constraintSnappingIndicator:this._constraintSnappingIndicator}}};function st(){const{color:t,opacity:e}=q.offsetManipulator;return new X({color:[...i.toUnitRGB(t),e],width:1,renderOccluded:Q.OccludeAndTransparent,writeDepth:!1,hasPolygonOffset:!0})}t([_({constructOnly:!0})],ot.prototype,"analysis",void 0),t([_({constructOnly:!0})],ot.prototype,"analysisViewData",void 0),t([_({constructOnly:!0})],ot.prototype,"manipulators",void 0),t([_({constructOnly:!0})],ot.prototype,"parentTool",void 0),t([_({constructOnly:!0,nonNullable:!0})],ot.prototype,"view",void 0),t([_({readOnly:!0})],ot.prototype,"updating",null),t([_()],ot.prototype,"firstGrabbedManipulator",null),t([_()],ot.prototype,"hasGrabbedManipulators",null),t([_()],ot.prototype,"_stagedDimension",void 0),t([_()],ot.prototype,"_activeComputation",null),t([_()],ot.prototype,"_stagedComputation",null),ot=t([M("esri.views.3d.analysis.Dimension.LengthDimensionSubTool")],ot);const rt=y();export{ot as LengthDimensionSubTool};
|
|
5
|
+
import{_ as t}from"../../../../chunks/tslib.es6.js";import i from"../../../../Color.js";import"../../../../geometry.js";import{LengthDimensionMeasureType as e}from"../../../../analysis/dimensionUtils.js";import a from"../../../../analysis/LengthDimension.js";import{HandleOwner as n}from"../../../../core/HandleOwner.js";import o from"../../../../core/Handles.js";import{equals as s}from"../../../../core/lang.js";import{isNone as r,applySome as p,isSome as l,destroyMaybe as u,unwrapOr as d}from"../../../../core/maybe.js";import{ignoreAbortErrors as m}from"../../../../core/promiseUtils.js";import{watch as c,sync as h,syncAndInitial as g,initial as f}from"../../../../core/reactiveUtils.js";import{property as _}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as M}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as y}from"../../../../chunks/vec3f64.js";import{clonePoint as v}from"../../../../layers/graphics/hydratedFeatures.js";import{LengthDimensionConstraint as w,computeConstraint as b,applyConstraint as C}from"./lengthDimensionConstraintUtils.js";import{LengthDimensionManipulators as S,createPointManipulator as P,pointManipulatorHandles as D,createOffsetManipulator as O,offsetManipulatorHandles as j,createOrientationManipulator as H,headingManipulatorHandles as T,rotationManipulatorHandles as G,createMeasureTypeManipulator as z,measureTypeManipulatorHandles as U,updateOffsetManipulatorTransform as V,updateHeadingManipulatorTransform as x,updateRotationManipulatorTransform as I,updateMeasureTypeManipulatorTransform as R,unfocusedOffsetWidth as k,focusedOffsetWidth as E,updateOrientationManipulator as F}from"./lengthDimensionManipulatorUtils.js";import{isValidComputation as A,arePointsVerticallyAligned as L,computeGeometryFromDimension as q,computationToGeometryDependencies as B}from"./lengthDimensionUtils.js";import{settings as N}from"./settings.js";import{getRotateHeadingTexture as J}from"../Slice/images/Factory.js";import{SnappingVisualizer3D as K}from"../../interactive/SnappingVisualizer3D.js";import{LineVisualElement as Q}from"../../interactive/visualElements/LineVisualElement.js";import{RenderOccludedFlag as W}from"../../webgl-engine/lib/Material.js";import{ImageMaterial as X}from"../../webgl-engine/materials/ImageMaterial.js";import{createStipplePatternSimple as Y}from"../../webgl-engine/materials/lineStippleUtils.js";import{RibbonLineMaterial as Z}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createCoordinateHelper as $}from"../../../interactive/coordinateHelper.js";import{EditGeometry as tt}from"../../../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as it}from"../../../interactive/editGeometry/EditGeometryOperations.js";import{acquire as et}from"../../../interactive/snapping/SceneSnappingManagerPool.js";import{SnappingContext as at}from"../../../interactive/snapping/SnappingContext.js";import{SnappingPipeline as nt}from"../../../interactive/snapping/SnappingDragPipelineStep.js";import{SnappingOperation as ot}from"../../../interactive/snapping/SnappingOperation.js";import st from"../../../../geometry/Point.js";let rt=class extends n{constructor(t){super(t),this._stagedDimension=null,this._computationManipulators=new Map,this._computationHandles=new o,this._snappingPipeline=new nt,this._snappingManagerResult=et(t.view),this.addHandles(this._snappingManagerResult),this._unfocusedOffsetManipulatorMaterial=pt(),this._focusedOffsetManipulatorMaterial=pt(),this._thinOffsetManipulatorMaterial=pt(),this._thinOffsetManipulatorMaterial.setParameters({stipplePattern:Y(2)}),this._constraintSnappingIndicator=new Q({view:t.view,attached:!0,width:1,color:i.toUnitRGBA(N.constraint.color),renderOccluded:W.OccludeAndTransparent,stipplePattern:Y(5)})}initialize(){this._snappingOperation=new ot({view:this.view}),this._orientationManipulatorTexture=J(this.view.toolViewManager.textures),this._orientationManipulatorMaterial=new X({transparent:!0,writeDepth:!1,textureId:this._orientationManipulatorTexture.texture.id,renderOccluded:W.Opaque});const{computations:t}=this.analysisViewData;for(const i of t)this._addComputation(i);this.addHandles([t.on("after-add",(t=>this._addComputation(t.item))),t.on("after-remove",(t=>this._removeComputation(t.item)))]),this.addHandles([c((()=>({stagedPoint:this._snappingOperation.stagedPoint,stagedComputation:this._stagedComputation})),(({stagedPoint:t,stagedComputation:i})=>{if(r(i))return;const e=p(t,(t=>v(t,new st)));this._applyPointUpdate(i,{endPoint:e})}),h),c((()=>({stagedDimension:this._stagedDimension,selectedComputation:this.analysisViewData.selectedComputation,firstGrabbedManipulator:this.firstGrabbedManipulator})),((t,i)=>{const{stagedDimension:e,selectedComputation:a,firstGrabbedManipulator:n}=t;if(e===i.stagedDimension&&n===i.firstGrabbedManipulator){for(const o of[a,i.selectedComputation])if(l(o)){const i=this._computationManipulators.get(o);this._updateManipulators(o,i,t)}}else for(const[o,s]of this._computationManipulators)this._updateManipulators(o,s,t)}),g),c((()=>this.analysis.style.lineSize),(t=>{this._updateManipulatorStyle(t)}),f),c((()=>this.view.state.camera),(()=>{l(this._stagedComputation)&&this._updateStagedDimensionOffset(this._stagedComputation)}))]),this.addHandles(this._constraintHandles),this.addHandles(this._snappingIndicatorHandles)}destroy(){this._snappingOperation=u(this._snappingOperation),this._computationHandles.destroy(),this._constraintSnappingIndicator.destroy(),this._orientationManipulatorMaterial.dispose(),this._orientationManipulatorTexture.release()}get updating(){return this.updatingHandles.updating||this._snappingManager.updating}get firstGrabbedManipulator(){return this.parentTool.firstGrabbedManipulator}get hasGrabbedManipulators(){return this.parentTool.hasGrabbedManipulators}get _snappingManager(){return this._snappingManagerResult.snappingManager}get _activeComputation(){if(l(this._stagedComputation))return this._stagedComputation;const{selectedComputation:t}=this.analysisViewData;return this.hasGrabbedManipulators&&l(t)?t:null}get _stagedComputation(){const t=this._stagedDimension,i=this.analysisViewData.computations.at(-1);return r(t)||r(i)||i.dimension!==t?null:i}get _constraintHandles(){return[c((()=>{const t=this._activeComputation;if(r(t))return null;const{measureType:i,orientation:e}=t.dimension;return{measureType:i,orientation:e,computation:t}}),((t,i)=>{if(l(t)&&r(i)){const{measureType:i,orientation:a,computation:n}=t;switch(n.previousConstraint){case w.Horizontal:n.preConstraintProperties={measureType:e.Horizontal,orientation:0};break;case w.Vertical:n.preConstraintProperties={measureType:e.Vertical,orientation:0};break;case w.Direct:n.preConstraintProperties={measureType:e.Direct,orientation:a};break;default:n.preConstraintProperties={measureType:i,orientation:a}}}r(t)&&l(i)&&(i.computation.preConstraintProperties=null)}),h)]}get _snappingIndicatorHandles(){const t="snapping-indicator-event-handles";return[c((()=>({stagedComputation:this._stagedComputation,activeComputation:this._activeComputation})),(({stagedComputation:i,activeComputation:e})=>{const a=this._constraintSnappingIndicator;if(this.removeHandles(t),r(e))a.attached=!1;else if(e===i)a.attached=!0;else{const{start:i,end:n}=this._computationManipulators.get(e),o=()=>{a.attached=i.grabbing||n.grabbing};o(),this.addHandles([i.events.on("grab-changed",o),n.events.on("grab-changed",o)],t)}})),c((()=>{const t=this._activeComputation;return l(t)?{geometry:t.geometry,constraint:t.previousConstraint}:{}}),(({geometry:t,constraint:i})=>{const e=this._constraintSnappingIndicator;l(t)&&l(i)&&i!==w.Direct?(e.visible=!0,e.setGeometryFromSegment(t.directSegment)):e.visible=!1}))]}removeStaged(){return!!l(this._stagedDimension)&&(this.analysis.dimensions.remove(this._stagedDimension),this._stagedDimension=null,!0)}onDeactivate(){this.removeStaged(),this._snappingManager.doneSnapping()}onClick(t){const{_stagedDimension:i}=this;if(r(i)){const i=this._onUnstagedClick(t);return this.analysis.dimensions.add(i),null}return this._onStagedClick(t),i}onPointerMove({mapPoint:t,pointerType:i}){if("touch"===i&&r(this._stagedDimension))return;const e=this._snappingContext(i);this.updatingHandles.addPromise(m(this._snappingOperation.snap({point:t},this._snappingManager,e)))}onManipulatorSelectionChanged(){if(l(this.analysisViewData.selectedComputation)){this._computationManipulators.get(this.analysisViewData.selectedComputation).offset.selected||(this.analysisViewData.selectedDimension=null)}}_onUnstagedClick({mapPoint:t,pointerType:i}){const n="mouse"===i?d(this._snappingOperation.stagedPoint,t):t,o=new a({startPoint:v(n,new st),endPoint:null,measureType:e.Horizontal});return this._stagedDimension=o,this._snappingManager.doneSnapping(),o}_onStagedClick({mapPoint:t,pointerType:i}){const e=this._stagedComputation;if(r(e))return;const a="mouse"===i?d(this._snappingOperation.stagedPoint,t):t,n=v(a,new st);this._applyPointUpdate(e,{endPoint:n}),this._stagedDimension=null,this._snappingManager.doneSnapping()}_addComputation(t){if(this._computationManipulators.has(t))return;const i=this._setupPointManipulator(t,{isStart:!0}),a=this._setupPointManipulator(t,{isStart:!1}),n=this._setupOffsetManipulator(t),o=this._setupHeadingManipulator(t),s=this._setupRotationManipulator(t),r=this._setupMeasureTypeManipulator(t,e.Direct),p=this._setupMeasureTypeManipulator(t,e.Horizontal),l=this._setupMeasureTypeManipulator(t,e.Vertical),u=new S({start:i,end:a,offset:n,heading:o,rotation:s,direct:r,horizontal:p,vertical:l});this._setupComputationToManipulatorsSync(t,u),this._computationManipulators.set(t,u),this.manipulators.addMany(u.values())}_removeComputation(t){const i=this._computationManipulators.get(t);if(!r(i)){this._computationHandles.remove(t),this._computationManipulators.delete(t);for(const t of i.values())this.manipulators.remove(t)}}_setupComputationToManipulatorsSync(t,i){this._computationHandles.add([c((()=>t.geometry),(()=>this._updateManipulators(t,i)),{...g,equals:s})],t)}_setupPointManipulator(t,i){const{view:e}=this,{dimension:a}=t,n=P(e,{metadata:a}),o=D(n,{isStart:i.isStart,createSnappingPipelineStep:(t,i)=>this._snappingPipeline.createSnapDragEventPipelineStep({snappingContext:this._snappingContext(i),snappingManager:this._snappingManager,updatingHandles:this.updatingHandles,cancel:t}),dimension:a,onUpdate:i=>{this._applyPointUpdate(t,i)},snappingPipeline:this._snappingPipeline,view:e});return this._computationHandles.add(o,t),n}_setupOffsetManipulator(t){const{view:i}=this,e=O(i,{lineSizePt:this.analysis.style.lineSize,unfocusedMaterial:this._unfocusedOffsetManipulatorMaterial,focusedMaterial:this._focusedOffsetManipulatorMaterial,metadata:t.dimension}),a=j(e,{computation:t,view:i});return this._computationHandles.add(a,t),e}_setupHeadingManipulator(t){const{view:i}=this,e=H(i,{lineSizePt:this.analysis.style.lineSize,material:this._orientationManipulatorMaterial,metadata:t.dimension}),a=T(e,{computation:t,view:i});return this._computationHandles.add(a,t),e}_setupRotationManipulator(t){const{view:i}=this,e=H(i,{lineSizePt:this.analysis.style.lineSize,material:this._orientationManipulatorMaterial,metadata:t.dimension}),a=G(e,{computation:t,view:i});return this._computationHandles.add(a,t),e}_setupMeasureTypeManipulator(t,i){const{view:e}=this,a=z(e,{lineSizePt:this.analysis.style.lineSize,unfocusedMaterial:this._unfocusedOffsetManipulatorMaterial,focusedMaterial:this._focusedOffsetManipulatorMaterial,thinOffsetManipulatorMaterial:this._thinOffsetManipulatorMaterial,metadata:t.dimension}),n=U(a,{computation:t,manipulatorMeasureType:i,view:e});return this._computationHandles.add(n,t),a}_updateManipulators(t,i,a={stagedDimension:this._stagedDimension,selectedComputation:this.analysisViewData.selectedComputation,firstGrabbedManipulator:this.firstGrabbedManipulator}){const{stagedDimension:n,selectedComputation:o,firstGrabbedManipulator:s}=a,{start:p,end:u,offset:d,heading:m,rotation:c}=i,h=o===t,g=A(t),{dimension:f}=t;for(const e of i.values()){const t=g&&r(n)&&(r(s)||e===s);e===d?(e.available=t,e.selected=h):e.available=t&&h}if(!g)return;l(b(t,this.view))?i.forEachMeasureTypeManipulator((t=>t.available=!1)):i.manipulatorForMeasureType(f.measureType).available=!1;for(const r of[m,c])f.measureType===e.Direct&&0!==f.offset||(r.available=!1);L(t)?c.available=!1:m.available=!1;const{geometry:_}=t;p.renderLocation=_.directSegment.startRenderSpace,u.renderLocation=_.directSegment.endRenderSpace;const{renderCoordsHelper:M}=this.view;V(d,_),m.available&&x(m,t,M),c.available&&I(c,t,M),i.forEachMeasureTypeManipulator(((i,e)=>{i.available&&R(i,t,e,M)}))}_updateManipulatorStyle(t){const i=k(t),e=E(t),a={lineSizePt:t,material:this._orientationManipulatorMaterial};for(const{offset:n,heading:o,rotation:s}of this._computationManipulators.values())n.radius=e/2,F(o,a),F(s,a);this._unfocusedOffsetManipulatorMaterial.setParameters({width:i}),this._focusedOffsetManipulatorMaterial.setParameters({width:e})}_snappingContext(t){return new at({elevationInfo:{mode:"absolute-height",offset:0},pointer:t,editGeometryOperations:new it(new tt("point",$(!0,!1,this.view.spatialReference))),visualizer:new K})}_applyPointUpdate(t,i){const{view:e}=this,a=B(t);"startPoint"in i&&(a.elevationAlignedStartPoint=i.startPoint),"endPoint"in i&&(a.elevationAlignedEndPoint=i.endPoint);const n=q(a,e.renderCoordsHelper);if(r(n))return;const o=b({...a,geometry:n},e);C(t,i,{...a,constraint:o,unconstrainedGeometry:n,view:e}),t===this._stagedComputation&&this._updateStagedDimensionOffset(t)}_updateStagedDimensionOffset(t){if(r(t.geometry))return;t.geometry.directSegment.eval(.5,lt);const i=this.view.state.camera.computeRenderPixelSizeAt(lt);t.dimension.offset=N.initialOffsetPx*i}get testInfo(){const t=t=>this.analysisViewData.computations.find((i=>i.dimension===t));return{getManipulatorsForDimension:i=>this._computationManipulators.get(t(i)),getComputationForDimension:i=>t(i),getConstraintForDimension:i=>{const e=t(i);return l(e)?b(e,this.view):null},stagedDimension:this._stagedDimension,constraintSnappingIndicator:this._constraintSnappingIndicator}}};function pt(){const{color:t,opacity:e}=N.offsetManipulator;return new Z({color:[...i.toUnitRGB(t),e],width:1,renderOccluded:W.OccludeAndTransparent,writeDepth:!1,hasPolygonOffset:!0})}t([_({constructOnly:!0})],rt.prototype,"analysis",void 0),t([_({constructOnly:!0})],rt.prototype,"analysisViewData",void 0),t([_({constructOnly:!0})],rt.prototype,"manipulators",void 0),t([_({constructOnly:!0})],rt.prototype,"parentTool",void 0),t([_({constructOnly:!0,nonNullable:!0})],rt.prototype,"view",void 0),t([_({readOnly:!0})],rt.prototype,"updating",null),t([_()],rt.prototype,"firstGrabbedManipulator",null),t([_()],rt.prototype,"hasGrabbedManipulators",null),t([_()],rt.prototype,"_stagedDimension",void 0),t([_()],rt.prototype,"_activeComputation",null),t([_()],rt.prototype,"_stagedComputation",null),rt=t([M("esri.views.3d.analysis.Dimension.LengthDimensionSubTool")],rt);const lt=y();export{rt as LengthDimensionSubTool};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../../Color.js";import"../../../../geometry.js";import{lengthDimensionMeasureType as t,LengthDimensionMeasureType as n}from"../../../../analysis/dimensionUtils.js";import{cyclicalDegrees as r}from"../../../../core/Cyclical.js";import{rad2deg as o}from"../../../../core/mathUtils.js";import{isNone as i,unwrapOr as a}from"../../../../core/maybe.js";import{pt2px as s}from"../../../../core/screenUtils.js";import{k as c}from"../../../../chunks/mat4.js";import{c as m}from"../../../../chunks/mat4f64.js";import{g as d,c as l,b as u,f as p,e as f,l as g,s as h,y}from"../../../../chunks/vec3.js";import{c as v,Z as S,f as M}from"../../../../chunks/vec3f64.js";import{fromPositionAndNormal as
|
|
5
|
+
import e from"../../../../Color.js";import"../../../../geometry.js";import{lengthDimensionMeasureType as t,LengthDimensionMeasureType as n}from"../../../../analysis/dimensionUtils.js";import{cyclicalDegrees as r}from"../../../../core/Cyclical.js";import{rad2deg as o}from"../../../../core/mathUtils.js";import{isNone as i,unwrapOr as a}from"../../../../core/maybe.js";import{pt2px as s}from"../../../../core/screenUtils.js";import{k as c}from"../../../../chunks/mat4.js";import{c as m}from"../../../../chunks/mat4f64.js";import{g as d,c as l,b as u,f as p,e as f,l as g,s as h,y}from"../../../../chunks/vec3.js";import{c as v,Z as S,f as M}from"../../../../chunks/vec3f64.js";import{fromPositionAndNormal as j,create as x,signedDistance as P,normal as H}from"../../../../geometry/support/plane.js";import{sv3d as w}from"../../../../geometry/support/vectorStacks.js";import{clonePoint as C}from"../../../../layers/graphics/hydratedFeatures.js";import{isValidComputation as T,computeGeometryFromDimension as k,computationToGeometryDependencies as b,headingFromGeometry as O,computeOffsetForPoint as z,computeSegmentForMeasureType as U,computeOffsetAxis as D,directUp as F,directStartToEnd as R,dimensionStartToEnd as E}from"./lengthDimensionUtils.js";import{settings as L}from"./settings.js";import{Manipulator3D as A}from"../../interactive/Manipulator3D.js";import{createSphereManipulator as G,worldScaledManipulatorSettings as W,createRotateManipulator as B,updateRotateManipulator as I,calculateInputRotationTransform as N,calculateTranslateRotateFromBases as V}from"../../interactive/manipulatorUtils.js";import{screenToMap3D as Z,screenToRenderPlane as q,hideManipulatorWhileDragging as J}from"../../interactive/editingTools/dragEventPipeline3D.js";import{EuclideanSegment as K}from"../../interactive/visualElements/support/Segment.js";import{MARKER_SIZE_PER_LINE_WIDTH as Q}from"../../support/engineContent/marker.js";import{createPolylineGeometry as X}from"../../webgl-engine/lib/GeometryUtil.js";import{createManipulatorDragEventPipeline as Y,resetProperties as $,EventPipeline as _}from"../../../interactive/dragEventPipeline.js";import{ManipulatorStateCustomFlags as ee,ManipulatorStateFlags as te}from"../../../interactive/interfaces.js";import ne from"../../../../geometry/Point.js";class re{constructor(e){this.start=e.start,this.end=e.end,this.offset=e.offset,this.heading=e.heading,this.rotation=e.rotation,this.direct=e.direct,this.horizontal=e.horizontal,this.vertical=e.vertical}manipulatorName(e){return Object.keys(this).find((t=>this.hasOwnProperty(t)&&e===this[t]))}values(){return[this.start,this.end,this.offset,this.heading,this.rotation,this.direct,this.horizontal,this.vertical]}forEachMeasureTypeManipulator(e){for(const n of t)e(this.manipulatorForMeasureType(n),n)}manipulatorForMeasureType(e){switch(e){case n.Direct:return this.direct;case n.Horizontal:return this.horizontal;case n.Vertical:return this.vertical}}}function oe(t,n){const r=G(t,e.toUnitRGB(L.pointManipulators.color),L.pointManipulators.opacity,Fe);return r.available=!1,r.grabCursor="crosshair",r.radius=L.pointManipulators.radius,r.metadata=n.metadata,r.collisionPriority=1,r}function ie(e,t){const n=[M(-.5,0,0),M(.5,0,0)],{lengthFraction:r}=L.offsetManipulator,o=X(n.map((e=>d(v(),e,r))));return new A({view:e,renderObjects:[{geometry:o,material:t.unfocusedMaterial,stateMask:te.Unfocused|te.Selected|Fe},{geometry:o,material:t.focusedMaterial,stateMask:te.Focused|Fe}],collisionType:{type:"line",paths:[n]},radius:De(t.lineSizePt)/2,metadata:t.metadata,available:!1,...W})}function ae(e,{lineSizePt:t,material:n}){const{calloutOffsetPx:r,calloutOpacity:o,calloutWidth:i,discScale:a,focusMultiplier:c}=L.orientationManipulator;return{calloutLength:.25*Q*L.markers.lineSizeFraction*s(t)+r,calloutOpacity:o,calloutWidth:i,customStateMask:Fe,discScale:a,focusMultiplier:c,material:n,metadata:e}}function se(e,t){return B(e,ae(t.metadata,t))}function ce(e,t){I(e,ae(e.metadata,t))}function me(e,t){const n=[M(-.5,0,0),M(.5,0,0)],{lengthFraction:r}=L.offsetManipulator,o=X(n),i=X(n.map((e=>d(v(),e,r))));return new A({view:e,renderObjects:[{geometry:i,material:t.unfocusedMaterial,stateMask:te.Unfocused|Fe},{geometry:i,material:t.focusedMaterial,stateMask:te.Focused|Fe},{geometry:o,material:t.thinOffsetManipulatorMaterial,stateMask:Fe}],collisionType:{type:"line",paths:[n]},radius:De(t.lineSizePt)/2,available:!1,metadata:t.metadata,...W})}function de(e,{isStart:t,createSnappingPipelineStep:n,dimension:r,onUpdate:o,snappingPipeline:i,view:a}){const s=t?"startPoint":"endPoint",c=Y(e,((e,t,c,m)=>{const d=J(e);t.next(d).next(Z(a)).next(n(c,m),i.next).next((e=>{const t=C(e.mapEnd,new ne);o("startPoint"===s?{startPoint:t}:{endPoint:t})})),c.next(d).next($(r,[s]))}));return[c]}function le(e,{computation:t,view:n}){return[Y(e,((e,r,o)=>{if(!T(t)||!e.selected)return;const{geometry:i,dimension:a}=t,s=J(e);r.next(s).next(ve(n,a,i.dimensionSegment,i.primaryOffsetAxis)),o.next(s).next($(a,["offset"]))}))]}function ue(e,{computation:t,view:n}){return[Y(e,((e,r,o)=>{ge({cancel:o,computation:t,settingHeading:!0,steps:r,view:n})}))]}function pe(e,{computation:t,view:n}){return[Y(e,((e,r,o)=>{ge({cancel:o,computation:t,settingHeading:!1,steps:r,view:n})})),e.events.on("immediate-click",(e=>{fe(e,t,n)}))]}function fe(e,t,n){const{dimension:o,geometry:a}=t;if(90===o.orientation||270===o.orientation)return o.orientation=0,void e.stopPropagation();if(i(a))return;const{renderCoordsHelper:s}=n,c=k({...b(t),orientation:90},s),m=k({...b(t),orientation:270},s);if(i(c)||i(m))return;const d=O(c,s),l=O(m,s),u=Se(a,n),p=r.shortestSignedDiff(u,d),f=r.shortestSignedDiff(u,l);o.orientation=Math.abs(p)<Math.abs(f)?90:270,e.stopPropagation()}function ge(e){const{cancel:t,computation:n,settingHeading:r,steps:i,view:s}=e;if(!T(n))return;const{renderCoordsHelper:c}=s,{dimension:m,geometry:d}=n,u=v(),p=Te(v(),d,d.directSegment,c),f=ke(w.get(),{forHeading:r,geometry:d,renderCoordsHelper:c}),g=j(p,f,x()),h=a(m.orientation,r?()=>O(d,s.renderCoordsHelper):0);i.next(q(s,g)).next((e=>{"start"===e.action&&l(u,e.renderStart);const t=H(g),n=N(u,e.renderEnd,p,t);let i=h-o(n);r||(i=he(i)),m.orientation=i})),t.next($(m,["orientation"]))}function he(e){const t=r.normalize(e)%90;return t<L.orientationSnapThresholdDegrees?e-t:90-t<L.orientationSnapThresholdDegrees?e+(90-t):e}function ye(e,{computation:t,manipulatorMeasureType:r,view:o}){let i=n.Direct,a=0,s=0;return[e.events.on("grab-changed",(n=>{if("start"!==n.action||!T(t))return;const{dimension:c,geometry:m}=t;i=c.measureType,a=c.offset,s=c.orientation;const d=l(w.get(),e.renderLocation);c.measureType=r,c.offset=z(d,r,m,o.renderCoordsHelper),c.orientation=0})),Y(e,((e,n,c)=>{if(!T(t))return;const{geometry:m,dimension:d}=t,{renderCoordsHelper:l}=o,u=U(Ae,r,t,l),p=D(w.get(),{measureType:r,directSegment:m.directSegment,renderCoordsHelper:l}),f=J(e);n.next(f).next(ve(o,d,u,p)),c.next(f).next((e=>(d.measureType=i,d.offset=a,d.orientation=s,e)))}))]}function ve(e,t,n,r){const o=u(w.get(),n.endRenderSpace,n.startRenderSpace);p(o,o,r);const i=j(n.startRenderSpace,o,x()),a=j(n.startRenderSpace,r,x()),s=t.offset;let c,m=0;const d=new _;return d.next(q(e,i)).next((n=>{"start"===n.action&&(m=P(a,n.renderStart));const r=(P(a,n.renderEnd)-m)*e.renderCoordsHelper.unitInMeters;t.offset=s+r,c=n})),e=>(d.execute(e),c)}function Se(e,t){const{directSegment:n}=e,{renderCoordsHelper:r}=t,o=F(w.get(),e,r),i=R(w.get(),e),a=p(w.get(),i,o),{viewForward:s}=t.state.camera;f(a,s)>0&&d(a,a,-1);const c=n.eval(.5,w.get());return r.headingAtPosition(c,a)}function Me(e,t){const{dimensionSegment:n,primaryOffsetAxis:r}=t,o=E(Re,t),i=V(o,r,S,Le),a=g(o);c(i,i,h(Re,a,a,a)),e.modelTransform=i,e.renderLocation=n.eval(.5,Re)}function je(e,t,n){Pe(e,t,n,{forHeading:!0})}function xe(e,t,n){Pe(e,t,n,{forHeading:!1})}function Pe(e,t,n,{forHeading:r}){const{dimension:o,geometry:i}=t,{primaryOffsetAxis:a}=i,s=d(He,a,o.offset>=0?1:-1),c=ke(we,{forHeading:r,geometry:i,renderCoordsHelper:n});p(c,c,s);const m=V(s,c,S,Le);e.modelTransform=m,e.renderLocation=Te(Re,i,i.dimensionSegment,n)}const He=v(),we=v();function Ce(e,t,n,r){const{geometry:o}=t,i=U(Ae,n,t,r),a=D(Re,{measureType:n,directSegment:o.directSegment,renderCoordsHelper:r}),s=y(Ee,i.endRenderSpace,i.startRenderSpace),m=V(s,a,S,Le),d=g(s);c(m,m,h(Ee,d,d,d)),e.modelTransform=m,e.renderLocation=i.eval(.5,Ee)}function Te(e,t,n,r){const{startRenderSpace:o,endRenderSpace:i}=n,a=be(t,r)?o:i;return l(e,a)}function ke(e,{forHeading:t,geometry:n,renderCoordsHelper:r}){return t?F(e,n,r):E(e,n,{invert:!0})}function be(e,t){const n=R(Oe,e),r=F(ze,e,t);return f(n,r)>0}const Oe=v(),ze=v();function Ue(e){return s(e)+L.offsetManipulator.linePaddingPx}function De(e){return s(e)+L.offsetManipulator.focusedLinePaddingPx}const Fe=ee.Custom1,Re=v(),Ee=v(),Le=m(),Ae=new K;export{Fe as DidPointerMoveRecentlyFlag,re as LengthDimensionManipulators,Se as automaticHeadingFromCamera,me as createMeasureTypeManipulator,ie as createOffsetManipulator,se as createOrientationManipulator,oe as createPointManipulator,De as focusedOffsetWidth,ue as headingManipulatorHandles,ye as measureTypeManipulatorHandles,le as offsetManipulatorHandles,de as pointManipulatorHandles,pe as rotationManipulatorHandles,he as snapOrientationToNearestRightAngle,Ue as unfocusedOffsetWidth,je as updateHeadingManipulatorTransform,Ce as updateMeasureTypeManipulatorTransform,Me as updateOffsetManipulatorTransform,ce as updateOrientationManipulator,xe as updateRotationManipulatorTransform};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../analysis/SlicePlane.js";import{clock as i}from"../../../../core/clock.js";import a from"../../../../core/Handles.js";import{releaseMaybe as s,destroyMaybe as n,isSome as r,isNone as l,removeMaybe as o}from"../../../../core/maybe.js";import{watch as h,sync as p,syncAndInitial as u}from"../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../core/scheduling.js";import{createScreenPoint as d,screenPointObjectToArray as _,createScreenPointArray as v}from"../../../../core/screenUtils.js";import{property as y}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as P}from"../../../../core/accessorSupport/decorators/subclass.js";import{d as m,C as g,m as w}from"../../../../chunks/mat4.js";import{e as f,l as M,c as D,g as T,a as V,m as b,n as k,s as E}from"../../../../chunks/vec3.js";import{a as S,c as H}from"../../../../chunks/vec3f64.js";import{a as x,c as I,n as R,f as j}from"../../../../chunks/boundedPlane.js";import{signedDistance as C,create as O,intersectRay as z,normal as G}from"../../../../geometry/support/plane.js";import{create as U}from"../../../../geometry/support/ray.js";import{sv3d as L,sm4d as K,sv2d as A}from"../../../../geometry/support/vectorStacks.js";import{POINTER_MOVE_TIMER_MS as B,PLANE_PREVIEW_OUTLINE_WIDTH as F,forceVerticalModifier as N,forceHorizontalModifier as q,PLANE_OUTLINE_COLOR as Z,PLANE_BACKGROUND_COLOR as J,PREVIEW_FADE_DOT_THRESHOLD as Q,PREVIEW_FADE_DURATION_SECONDS as W,INITIAL_DEPTH_OFFSET_FRAC as X}from"./sliceToolConfig.js";import{createShiftManipulator as Y,createRotateManipulator as $,createResizeManipulator as tt,createGridVisualElement as et,createOutlineVisualElement as it,planeToShape as at,createRotatePlane as st,RotationAxis as nt,resizePlane as rt,calculatePlaneHalfSize as lt,SliceOrientation as ot,createPlane as ht,DidPointerMoveRecentlyFlag as pt,calculateBoundedPlaneTranslateRotate as ut,updateShiftRestartHandle as ct,updateRotateHeadingHandle as dt,updateRotateTiltHandle as _t,updateResizeHandle as vt,createShiftPlane as yt}from"./sliceToolUtils.js";import{getRotateHeadingTexture as Pt,getTiltRotateTexture as mt}from"./images/Factory.js";import{calculateInputRotationTransform as gt}from"../../interactive/manipulatorUtils.js";import{screenToRenderPlane as wt}from"../../interactive/editingTools/dragEventPipeline3D.js";import{fromScreen as ft}from"../../support/geometryUtils/ray.js";import{newIntersector as Mt}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as Dt}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{AnalysisToolBase as Tt}from"../../../interactive/AnalysisToolBase.js";import{createManipulatorDragEventPipeline as Vt}from"../../../interactive/dragEventPipeline.js";import{createScreenPointFromEvent as bt}from"../../../support/screenUtils.js";var kt;let Et=kt=class extends Tt{constructor(t){super(t),this._clock=i,this._previewPlaneOpacity=1,this.removeIncompleteOnCancel=!1,this.layersMode="none",this.shiftManipulator=null,this.rotateHeadingManipulator=null,this.rotateTiltManipulator=null,this.resizeManipulators=null,this._handles=new a,this._viewHandles=new a,this._frameTask=null,this._pointerMoveTimerMs=B,this._prevPointerMoveTimeout=null,this._previewPlaneGridVisualElement=null,this._previewPlaneOutlineVisualElement=null,this._startPlane=x(),this._previewPlane=null,this._activeKeyModifiers={},this._lastCursorPosition=d(),this._resizeHandles=[{direction:[1,0]},{direction:[1,1]},{direction:[0,1]},{direction:[-1,1]},{direction:[-1,0]},{direction:[-1,-1]},{direction:[0,-1]},{direction:[1,-1]}],this._intersector=Mt(t.view.state.viewingMode),this._intersector.options.store=Dt.MIN}initialize(){if(null==this.analysis)throw new Error("SliceTool requires valid analysis, but null was provided.");this._rotateHeadingImage=Pt(this.view.toolViewManager.textures),this._rotateTiltImage=mt(this.view.toolViewManager.textures);const t=t=>{this._updateManipulatorsInteractive(t),t.grabbing||(r(this.analysisViewData.plane)&&I(this.analysisViewData.plane,this._startPlane),this.inputState=null)};this.shiftManipulator=Y(this.view),this.manipulators.add(this.shiftManipulator),this.shiftManipulator.events.on("grab-changed",(e=>{this._onShiftGrab(e),t(this.shiftManipulator)})),this._handles.add(this._createShiftDragPipeline(this.shiftManipulator)),this.rotateHeadingManipulator=$(this.view,this._rotateHeadingImage.texture),this.manipulators.add(this.rotateHeadingManipulator),this.rotateHeadingManipulator.events.on("grab-changed",(e=>{this._onRotateHeadingGrab(e),t(this.rotateHeadingManipulator)})),this._handles.add(this._createRotateHeadingDragPipeline(this.rotateHeadingManipulator)),this.rotateTiltManipulator=$(this.view,this._rotateTiltImage.texture),this.manipulators.add(this.rotateTiltManipulator),this.rotateTiltManipulator.events.on("grab-changed",(e=>{this._onRotateTiltGrab(e),t(this.rotateTiltManipulator)})),this._handles.add(this._createRotateTiltDragPipeline(this.rotateTiltManipulator)),this.resizeManipulators=this._resizeHandles.map(((e,i)=>{const a=tt(this.view,e);return a.events.on("grab-changed",(e=>{this._onResizeGrab(e,i),t(a)})),this._handles.add(this._createResizeDragPipeline(a)),a})),this.manipulators.addMany(this.resizeManipulators),this._previewPlaneGridVisualElement=et(this.view),this._previewPlaneOutlineVisualElement=it(this.view),this._previewPlaneOutlineVisualElement.width=F,this._handles.add(h((()=>this.analysisViewData.plane),(()=>this._updateManipulators()),p));const e=h((()=>this.state),(t=>{"sliced"===t&&this.finishToolCreation()}),u);this._handles.add([e,h((()=>this.view.state.camera),(()=>this._onCameraChange()))])}destroy(){this._rotateHeadingImage=s(this._rotateHeadingImage),this._rotateTiltImage=s(this._rotateTiltImage),this._handles=n(this._handles),this._viewHandles=n(this._viewHandles),this._removeFrameTask(),this._clearPointerMoveTimeout(),this._previewPlaneOutlineVisualElement=n(this._previewPlaneOutlineVisualElement),this._previewPlaneGridVisualElement=n(this._previewPlaneGridVisualElement)}get state(){const t=!!this.analysisViewData.plane,e=!!this.inputState;return t?t&&e?"slicing":t&&!e?"sliced":"ready":"ready"}get cursor(){return this._isPlacingSlicePlane||"exclude"===this.layersMode?"crosshair":r(this._creatingPointerId)?"grabbing":null}set analysis(t){if(null==t)throw new Error("SliceTool requires valid analysis, but null was provided.");this._handles.remove("analysis"),this._set("analysis",t)}get inputState(){return this._get("inputState")}set inputState(t){this._set("inputState",t),this.analysisViewData.showGrid=r(t)&&"resize"===t.type,this._updateMaterials()}get _isPlacingSlicePlane(){return!this.inputState&&!this.analysisViewData.plane&&this.active}get _creatingPointerId(){return r(this.inputState)&&"shift"===this.inputState.type?this.inputState.creatingPointerId:null}enterExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","exclude"),this.active||(this.view.activeTool=this))}exitExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","none"),this.active&&(this.view.activeTool=null))}onDeactivate(){this._set("layersMode","none"),this._updatePreviewPlane(null)}onShow(){this._updateVisibility(!0)}onHide(){this._updateVisibility(!1)}_updateVisibility(t){this._updateManipulators(),t||this._clearPointerMoveTimeout()}onInputEvent(t){switch(t.type){case"pointer-drag":if(!Ht(t))return;this._isPlacingSlicePlane?this._onClickPlacePlane(t)&&t.stopPropagation():this._onPointerDrag(t)&&t.stopPropagation();break;case"pointer-move":this._onPointerMove(t);break;case"pointer-up":this._onPointerUp(t)&&t.stopPropagation();break;case"immediate-click":if(!Ht(t))return;this._onClickPlacePlane(t)&&t.stopPropagation();break;case"click":if(!Ht(t))return;this._onClickExcludeLayer(t)&&t.stopPropagation();break;case"drag":this.inputState&&t.stopPropagation();break;case"key-down":this._onKeyDown(t)&&t.stopPropagation();break;case"key-up":this._onKeyUp(t)&&t.stopPropagation()}}onEditableChange(){this.analysisViewData.editable=this.internallyEditable}_onPointerDrag(t){const e=this.inputState;if(t.pointerId===this._creatingPointerId&&r(e)&&"shift"===e.type){const i=bt(t);return this.shiftManipulator.events.emit("drag",{action:e.hasBeenDragged?"update":"start",pointerType:t.pointerType,start:i,screenPoint:i}),e.hasBeenDragged=!0,!0}return!1}_onPointerMove(t){this._lastCursorPosition.x=t.x,this._lastCursorPosition.y=t.y,this._resetPointerMoveTimeout(),"touch"!==t.pointerType&&this._updatePreviewPlane(bt(t),this._activeKeyModifiers)}_onCameraChange(){this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),this._updateManipulators()}_onPointerUp(t){if(t.pointerId===this._creatingPointerId&&r(this.analysisViewData.plane)){const e=bt(t);return this.shiftManipulator.events.emit("drag",{action:"end",start:e,screenPoint:e}),I(this.analysisViewData.plane,this._startPlane),this.inputState=null,!0}return!1}_onClickPlacePlane(t){if("exclude"===this.layersMode)return!1;if(this._isPlacingSlicePlane){const i=bt(t),a=x();if(this._pickPlane(i,!1,this._activeKeyModifiers,a)){if(I(a,this._startPlane),this.analysis.shape=at(a,this.view,this.view.spatialReference,new e),"pointer-drag"===t.type){const e=this._calculatePickRay(i);this.inputState=St(e,t.pointerId,a.origin,a)}return!0}}return!1}_onClickExcludeLayer(t){return!("exclude"!==this.layersMode||!this.created)&&(this.view.hitTest(bt(t)).then((t=>{if(t.results.length){const e=t.results[0],i="graphic"===e?.type&&e.graphic;if(i){const t=i.sourceLayer||i.layer;t&&this.analysis.excludedLayers.push(t)}}else t.ground.layer?this.analysis.excludedLayers.push(t.ground.layer):this.analysis.excludeGroundSurface=!0})),this._set("layersMode","none"),this.active&&(this.view.activeTool=null),!0)}_onKeyDown(t){return(t.key===N||t.key===q)&&(this._activeKeyModifiers[t.key]=!0,r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onKeyUp(t){return!(t.key!==N&&t.key!==q||!this._activeKeyModifiers[t.key])&&(delete this._activeKeyModifiers[t.key],r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onShiftGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=this._calculatePickRay(t.screenPoint);I(this.analysisViewData.plane,this._startPlane),this.inputState=St(e,null,this.shiftManipulator.renderLocation,this.analysisViewData.plane)}_createShiftDragPipeline(t){return Vt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"shift"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.shiftPlane)).next(this._shiftDragAdjustSensitivity(a)).next(this._shiftDragUpdatePlane(a)),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_shiftDragAdjustSensitivity(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=.001,a=Math.min((1-Math.abs(f(R(this.analysisViewData.plane),e.ray.direction)/M(e.ray.direction)))/i,1),s=-C(this._startPlane.plane,e.renderEnd),n=-C(this._startPlane.plane,t.startPoint);return t.depth=t.depth*(1-a)+s*a-n,e}}_shiftDragUpdatePlane(t){return()=>{if(l(this.analysisViewData.plane))return;const e=D(L.get(),this._startPlane.origin),i=D(L.get(),R(this._startPlane));T(i,i,-t.depth),V(i,i,e);const a=j(i,this.analysisViewData.plane.basis1,this.analysisViewData.plane.basis2,x());this._updateBoundedPlane(a)}}_onRotateHeadingGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.HEADING,O()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateHeadingDragPipeline(t){return Vt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_onRotateTiltGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.TILT,O()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateTiltDragPipeline(t){return Vt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_rotateDragRenderPlaneToRotate(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=G(t.rotatePlane),a=gt(t.startPoint,e.renderEnd,this.analysisViewData.plane.origin,i);return{...e,rotateAxis:i,rotateAngle:a}}}_rotateDragUpdatePlaneFromRotate(){return t=>{if(l(this.analysisViewData.plane))return;const e=m(K.get(),t.rotateAngle,t.rotateAxis);if(l(e))return;const i=b(L.get(),this._startPlane.basis1,e),a=b(L.get(),this._startPlane.basis2,e),s=j(this.analysisViewData.plane.origin,i,a,x());this._updateBoundedPlane(s)}}_onResizeGrab(t,e){if("start"!==t.action||l(this.analysisViewData.plane))return;const i=this._calculatePickRay(t.screenPoint),a=L.get();z(this.analysisViewData.plane.plane,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"resize",activeHandleIdx:e,startPoint:S(a)})}_createResizeDragPipeline(t){return Vt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"resize"!==a.type||l(this.analysisViewData.plane))return;const s=I(this.analysisViewData.plane,x());e.next(wt(this.view,this.analysisViewData.plane.plane)).next(this._resizeDragUpdatePlane(a)),i.next((()=>{this._updateBoundedPlane(s)}))}))}_resizeDragUpdatePlane(t){return e=>{if(l(this.analysisViewData.plane))return;const i=this._resizeHandles[t.activeHandleIdx],a=rt(i,t.startPoint,e.renderEnd,this.view.state.camera,this._startPlane,I(this.analysisViewData.plane));this._updateBoundedPlane(a)}}_updateBoundedPlane(t){const e=this.analysisViewData;if(!r(e))throw new Error("valid internal object expected");e.plane=t}_updatePreviewPlane(t,e={}){let i=this._previewPlane;if(this._previewPlane=null,l(t))return this._removeFrameTask(),void this._updateManipulators();if(!this.analysisViewData.plane&&this.active){const a=r(i)?i:x();if(i=r(i)?I(i,xt):null,this._pickPlane(t,!0,e,a)){const t=Q;let e=!1;r(i)&&(e=f(i.plane,a.plane)<t||f(k(L.get(),i.basis1),k(L.get(),a.basis1))<t),e&&(this._previewPlaneOpacity=0),this._previewPlane=a}}r(this._previewPlane)&&l(this._frameTask)&&0===this._previewPlaneOpacity?this._frameTask=c({update:({deltaTime:t})=>{this._previewPlaneOpacity=Math.min(this._previewPlaneOpacity+t/(1e3*W),1),this._updateManipulators(),1===this._previewPlaneOpacity&&this._removeFrameTask()}}):l(this._previewPlane)&&r(this._frameTask)?this._removeFrameTask():r(this._previewPlane)&&this._updateManipulators()}_removeFrameTask(){this._frameTask=o(this._frameTask)}_calculatePickRay(t){const e=U(),i=_(t,It);return ft(this.view.state.camera,i,e),k(e.direction,e.direction),e}_pickMinResult(t){const e=_(t,A.get());return this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(e,this._intersector),this._intersector.results.min}_pickPlane(t,e,i,a){const s=this._pickMinResult(t),n=L.get();if(!s.getIntersectionPoint(n))return!1;const r=s.getTransformedNormal(L.get()),l=this.view.state.camera;f(r,l.viewForward)>0&&T(r,r,-1);const o=lt(n,l),h=(e?1:-1)*o*X,p=T(L.get(),r,h);V(p,p,n);const u=this.analysis.tiltEnabled?ot.TILTED:ot.HORIZONTAL_OR_VERTICAL,c=i[N]?ot.VERTICAL:i[q]?ot.HORIZONTAL:u;return ht(p,r,o,o,l,c,this.view.renderCoordsHelper,a),!0}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=o(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.shiftManipulator.state|=pt,this.rotateHeadingManipulator.state|=pt,this.rotateTiltManipulator.state|=pt,this._prevPointerMoveTimeout=this._clock.setTimeout((()=>{this.shiftManipulator.state&=~pt,this.rotateHeadingManipulator.state&=~pt,this.rotateTiltManipulator.state&=~pt}),this._pointerMoveTimerMs)}_updateManipulators(){if(kt.disableEngineLayers)return;let t=null,e=!1;if(r(this.analysisViewData.plane))t=this.analysisViewData.plane,e=!1;else{if(!r(this._previewPlane))return this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!1,void(this._previewPlaneGridVisualElement.visible=!1);t=this._previewPlane,e=!0}const i=ut(t,K.get());e?(this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!0,this._previewPlaneGridVisualElement.visible=!0):(this.shiftManipulator.available=!0,this.rotateHeadingManipulator.available=!0,this.rotateTiltManipulator.available=this.analysis.tiltEnabled,this.resizeManipulators.forEach((t=>t.available=!0)),ct(this.shiftManipulator,i,t,this.view.state.camera),dt(this.rotateHeadingManipulator,i,t,this.view.renderCoordsHelper),_t(this.rotateTiltManipulator,i,t),this.resizeManipulators.forEach(((e,a)=>vt(e,this._resizeHandles[a],i,t))),this._previewPlaneOutlineVisualElement.visible=!1,this._previewPlaneGridVisualElement.visible=!1);const a=E(L.get(),M(t.basis1),M(t.basis2),1),s=g(K.get(),a),n=w(s,i,s);this._previewPlaneOutlineVisualElement.transform=n,this._previewPlaneGridVisualElement.transform=n,this._updateMaterials()}_updateMaterials(){const t=[Z[0],Z[1],Z[2],Z[3]*this._previewPlaneOpacity];this._previewPlaneOutlineVisualElement.color=t;const e=[J[0],J[1],J[2],J[3]*this._previewPlaneOpacity],i=[0,0,0,0];this._previewPlaneGridVisualElement.backgroundColor=e,this._previewPlaneGridVisualElement.gridColor=i}_updateManipulatorsInteractive(t){if(!t.grabbing)return this.shiftManipulator.interactive=!0,this.rotateHeadingManipulator.interactive=!0,this.rotateTiltManipulator.interactive=!0,void this.resizeManipulators.forEach((t=>{t.interactive=!0}));this.shiftManipulator.interactive=this.shiftManipulator===t,this.rotateHeadingManipulator.interactive=this.rotateHeadingManipulator===t,this.rotateTiltManipulator.interactive=this.rotateTiltManipulator===t,this.resizeManipulators.forEach((e=>{e.interactive=e===t}))}testData(){return{plane:this.analysisViewData.plane,setPointerMoveTimerMs:t=>{this._pointerMoveTimerMs=t}}}};function St(t,e,i,a){const s=yt(i,R(a),t.direction,O()),n=H();return z(s,t,n)?{type:"shift",creatingPointerId:e,hasBeenDragged:!1,shiftPlane:s,depth:0,startPoint:n}:null}function Ht(t){return"mouse"!==t.pointerType||0===t.button}Et.disableEngineLayers=!1,t([y()],Et.prototype,"_clock",void 0),t([y({constructOnly:!0})],Et.prototype,"view",void 0),t([y()],Et.prototype,"analysisViewData",void 0),t([y({readOnly:!0})],Et.prototype,"state",null),t([y({readOnly:!0})],Et.prototype,"cursor",null),t([y()],Et.prototype,"analysis",null),t([y()],Et.prototype,"removeIncompleteOnCancel",void 0),t([y({readOnly:!0})],Et.prototype,"layersMode",void 0),t([y({value:null})],Et.prototype,"inputState",null),t([y()],Et.prototype,"_isPlacingSlicePlane",null),t([y()],Et.prototype,"_creatingPointerId",null),Et=kt=t([P("esri.views.3d.analysis.Slice.SliceTool")],Et);const xt=x(),It=v(),Rt=Et;export{Rt as default};
|
|
5
|
+
import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../analysis/SlicePlane.js";import{clock as i}from"../../../../core/clock.js";import a from"../../../../core/Handles.js";import{releaseMaybe as s,destroyMaybe as n,isSome as r,isNone as l,removeMaybe as o}from"../../../../core/maybe.js";import{watch as h,sync as p,syncAndInitial as u}from"../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../core/scheduling.js";import{createScreenPoint as d,screenPointObjectToArray as _,createScreenPointArray as v}from"../../../../core/screenUtils.js";import{property as P}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../../core/accessorSupport/decorators/subclass.js";import{d as m,C as g,m as w}from"../../../../chunks/mat4.js";import{e as f,l as M,c as D,g as T,a as V,m as b,n as k,s as E}from"../../../../chunks/vec3.js";import{a as S,c as H}from"../../../../chunks/vec3f64.js";import{a as x,c as I,n as R,f as j}from"../../../../chunks/boundedPlane.js";import{signedDistance as O,create as C,intersectRay as z,normal as G}from"../../../../geometry/support/plane.js";import{create as U}from"../../../../geometry/support/ray.js";import{sv3d as L,sm4d as K,sv2d as A}from"../../../../geometry/support/vectorStacks.js";import{POINTER_MOVE_TIMER_MS as B,PLANE_PREVIEW_OUTLINE_WIDTH as F,forceVerticalModifier as N,forceHorizontalModifier as q,PLANE_OUTLINE_COLOR as Z,PLANE_BACKGROUND_COLOR as J,PREVIEW_FADE_DOT_THRESHOLD as Q,PREVIEW_FADE_DURATION_SECONDS as W,INITIAL_DEPTH_OFFSET_FRAC as X}from"./sliceToolConfig.js";import{createShiftManipulator as Y,createRotateManipulator as $,createResizeManipulator as tt,createGridVisualElement as et,createOutlineVisualElement as it,planeToShape as at,createRotatePlane as st,RotationAxis as nt,resizePlane as rt,calculatePlaneHalfSize as lt,SliceOrientation as ot,createPlane as ht,DidPointerMoveRecentlyFlag as pt,calculateBoundedPlaneTranslateRotate as ut,updateShiftRestartHandle as ct,updateRotateHeadingHandle as dt,updateRotateTiltHandle as _t,updateResizeHandle as vt,createShiftPlane as Pt}from"./sliceToolUtils.js";import{getRotateHeadingTexture as yt,getTiltRotateTexture as mt}from"./images/Factory.js";import{calculateInputRotationTransform as gt}from"../../interactive/manipulatorUtils.js";import{screenToRenderPlane as wt}from"../../interactive/editingTools/dragEventPipeline3D.js";import{fromScreen as ft}from"../../support/geometryUtils/ray.js";import{newIntersector as Mt}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as Dt}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{AnalysisToolBase as Tt}from"../../../interactive/AnalysisToolBase.js";import{createManipulatorDragEventPipeline as Vt}from"../../../interactive/dragEventPipeline.js";import{createScreenPointFromEvent as bt}from"../../../support/screenUtils.js";var kt;let Et=kt=class extends Tt{constructor(t){super(t),this._clock=i,this._previewPlaneOpacity=1,this.removeIncompleteOnCancel=!1,this.layersMode="none",this.shiftManipulator=null,this.rotateHeadingManipulator=null,this.rotateTiltManipulator=null,this.resizeManipulators=null,this._handles=new a,this._viewHandles=new a,this._frameTask=null,this._pointerMoveTimerMs=B,this._prevPointerMoveTimeout=null,this._previewPlaneGridVisualElement=null,this._previewPlaneOutlineVisualElement=null,this._startPlane=x(),this._previewPlane=null,this._activeKeyModifiers={},this._lastCursorPosition=d(),this._resizeHandles=[{direction:[1,0]},{direction:[1,1]},{direction:[0,1]},{direction:[-1,1]},{direction:[-1,0]},{direction:[-1,-1]},{direction:[0,-1]},{direction:[1,-1]}],this._intersector=Mt(t.view.state.viewingMode),this._intersector.options.store=Dt.MIN}initialize(){if(null==this.analysis)throw new Error("SliceTool requires valid analysis, but null was provided.");this._rotateHeadingImage=yt(this.view.toolViewManager.textures),this._rotateTiltImage=mt(this.view.toolViewManager.textures);const t=t=>{this._updateManipulatorsInteractive(t),t.grabbing||(r(this.analysisViewData.plane)&&I(this.analysisViewData.plane,this._startPlane),this.inputState=null)};this.shiftManipulator=Y(this.view),this.manipulators.add(this.shiftManipulator),this.shiftManipulator.events.on("grab-changed",(e=>{this._onShiftGrab(e),t(this.shiftManipulator)})),this._handles.add(this._createShiftDragPipeline(this.shiftManipulator)),this.rotateHeadingManipulator=$(this.view,this._rotateHeadingImage.texture),this.manipulators.add(this.rotateHeadingManipulator),this.rotateHeadingManipulator.events.on("grab-changed",(e=>{this._onRotateHeadingGrab(e),t(this.rotateHeadingManipulator)})),this._handles.add(this._createRotateHeadingDragPipeline(this.rotateHeadingManipulator)),this.rotateTiltManipulator=$(this.view,this._rotateTiltImage.texture),this.manipulators.add(this.rotateTiltManipulator),this.rotateTiltManipulator.events.on("grab-changed",(e=>{this._onRotateTiltGrab(e),t(this.rotateTiltManipulator)})),this._handles.add(this._createRotateTiltDragPipeline(this.rotateTiltManipulator)),this.resizeManipulators=this._resizeHandles.map(((e,i)=>{const a=tt(this.view,e);return a.events.on("grab-changed",(e=>{this._onResizeGrab(e,i),t(a)})),this._handles.add(this._createResizeDragPipeline(a)),a})),this.manipulators.addMany(this.resizeManipulators),this._previewPlaneGridVisualElement=et(this.view),this._previewPlaneOutlineVisualElement=it(this.view),this._previewPlaneOutlineVisualElement.width=F,this._handles.add(h((()=>this.analysisViewData.plane),(()=>this._updateManipulators()),p));const e=h((()=>this.state),(t=>{"sliced"===t&&this.finishToolCreation()}),u);this._handles.add([e,h((()=>this.view.state.camera),(()=>this._onCameraChange()))])}destroy(){this._rotateHeadingImage=s(this._rotateHeadingImage),this._rotateTiltImage=s(this._rotateTiltImage),this._handles=n(this._handles),this._viewHandles=n(this._viewHandles),this._removeFrameTask(),this._clearPointerMoveTimeout(),this._previewPlaneOutlineVisualElement=n(this._previewPlaneOutlineVisualElement),this._previewPlaneGridVisualElement=n(this._previewPlaneGridVisualElement)}get state(){const t=!!this.analysisViewData.plane,e=!!this.inputState;return t?t&&e?"slicing":t&&!e?"sliced":"ready":"ready"}get cursor(){return this._isPlacingSlicePlane||"exclude"===this.layersMode?"crosshair":r(this._creatingPointerId)?"grabbing":null}set analysis(t){if(null==t)throw new Error("SliceTool requires valid analysis, but null was provided.");this._handles.remove("analysis"),this._set("analysis",t)}get inputState(){return this._get("inputState")}set inputState(t){this._set("inputState",t),this.analysisViewData.showGrid=r(t)&&"resize"===t.type,this._updateMaterials()}get _isPlacingSlicePlane(){return!this.inputState&&!this.analysisViewData.plane&&this.active}get _creatingPointerId(){return r(this.inputState)&&"shift"===this.inputState.type?this.inputState.creatingPointerId:null}enterExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","exclude"),this.active||(this.view.activeTool=this))}exitExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","none"),this.active&&(this.view.activeTool=null))}onDeactivate(){this._set("layersMode","none"),this._updatePreviewPlane(null)}onShow(){this._updateVisibility(!0)}onHide(){this._updateVisibility(!1)}_updateVisibility(t){this._updateManipulators(),t||this._clearPointerMoveTimeout()}onInputEvent(t){switch(t.type){case"pointer-drag":if(!Ht(t))return;this._isPlacingSlicePlane?this._onClickPlacePlane(t)&&t.stopPropagation():this._onPointerDrag(t)&&t.stopPropagation();break;case"pointer-move":this._onPointerMove(t);break;case"pointer-up":this._onPointerUp(t)&&t.stopPropagation();break;case"immediate-click":if(!Ht(t))return;this._onClickPlacePlane(t)&&t.stopPropagation();break;case"click":if(!Ht(t))return;this._onClickExcludeLayer(t)&&t.stopPropagation();break;case"drag":this.inputState&&t.stopPropagation();break;case"key-down":this._onKeyDown(t)&&t.stopPropagation();break;case"key-up":this._onKeyUp(t)&&t.stopPropagation()}}onEditableChange(){this.analysisViewData.editable=this.internallyEditable}_onPointerDrag(t){const e=this.inputState;if(t.pointerId===this._creatingPointerId&&r(e)&&"shift"===e.type){const i=bt(t);return this.shiftManipulator.events.emit("drag",{action:e.hasBeenDragged?"update":"start",pointerType:t.pointerType,start:i,screenPoint:i}),e.hasBeenDragged=!0,!0}return!1}_onPointerMove(t){this._lastCursorPosition.x=t.x,this._lastCursorPosition.y=t.y,this._resetPointerMoveTimeout(),"touch"!==t.pointerType&&this._updatePreviewPlane(bt(t),this._activeKeyModifiers)}_onCameraChange(){this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),this._updateManipulators()}_onPointerUp(t){if(t.pointerId===this._creatingPointerId&&r(this.analysisViewData.plane)){const e=bt(t);return this.shiftManipulator.events.emit("drag",{action:"end",start:e,screenPoint:e}),I(this.analysisViewData.plane,this._startPlane),this.inputState=null,!0}return!1}_onClickPlacePlane(t){if("exclude"===this.layersMode)return!1;if(this._isPlacingSlicePlane){const i=bt(t),a=x();if(this._pickPlane(i,!1,this._activeKeyModifiers,a)){if(I(a,this._startPlane),this.analysis.shape=at(a,this.view,this.view.spatialReference,new e),"pointer-drag"===t.type){const e=this._calculatePickRay(i);this.inputState=St(e,t.pointerId,a.origin,a)}return!0}}return!1}_onClickExcludeLayer(t){return!("exclude"!==this.layersMode||!this.created)&&(this.view.hitTest(bt(t)).then((t=>{if(t.results.length){const e=t.results[0],i="graphic"===e?.type&&e.graphic;if(i){const t=i.sourceLayer||i.layer;t&&this.analysis.excludedLayers.push(t)}}else t.ground.layer?this.analysis.excludedLayers.push(t.ground.layer):this.analysis.excludeGroundSurface=!0})),this._set("layersMode","none"),this.active&&(this.view.activeTool=null),!0)}_onKeyDown(t){return(t.key===N||t.key===q)&&(this._activeKeyModifiers[t.key]=!0,r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onKeyUp(t){return!(t.key!==N&&t.key!==q||!this._activeKeyModifiers[t.key])&&(delete this._activeKeyModifiers[t.key],r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onShiftGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=this._calculatePickRay(t.screenPoint);I(this.analysisViewData.plane,this._startPlane),this.inputState=St(e,null,this.shiftManipulator.renderLocation,this.analysisViewData.plane)}_createShiftDragPipeline(t){return Vt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"shift"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.shiftPlane)).next(this._shiftDragAdjustSensitivity(a)).next(this._shiftDragUpdatePlane(a)),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_shiftDragAdjustSensitivity(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=.001,a=Math.min((1-Math.abs(f(R(this.analysisViewData.plane),e.ray.direction)/M(e.ray.direction)))/i,1),s=-O(this._startPlane.plane,e.renderEnd),n=-O(this._startPlane.plane,t.startPoint);return t.depth=t.depth*(1-a)+s*a-n,e}}_shiftDragUpdatePlane(t){return()=>{if(l(this.analysisViewData.plane))return;const e=D(L.get(),this._startPlane.origin),i=D(L.get(),R(this._startPlane));T(i,i,-t.depth),V(i,i,e);const a=j(i,this.analysisViewData.plane.basis1,this.analysisViewData.plane.basis2,x());this._updateBoundedPlane(a)}}_onRotateHeadingGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.HEADING,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateHeadingDragPipeline(t){return Vt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_onRotateTiltGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.TILT,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateTiltDragPipeline(t){return Vt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_rotateDragRenderPlaneToRotate(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=G(t.rotatePlane),a=gt(t.startPoint,e.renderEnd,this.analysisViewData.plane.origin,i);return{...e,rotateAxis:i,rotateAngle:a}}}_rotateDragUpdatePlaneFromRotate(){return t=>{if(l(this.analysisViewData.plane))return;const e=m(K.get(),t.rotateAngle,t.rotateAxis);if(l(e))return;const i=b(L.get(),this._startPlane.basis1,e),a=b(L.get(),this._startPlane.basis2,e),s=j(this.analysisViewData.plane.origin,i,a,x());this._updateBoundedPlane(s)}}_onResizeGrab(t,e){if("start"!==t.action||l(this.analysisViewData.plane))return;const i=this._calculatePickRay(t.screenPoint),a=L.get();z(this.analysisViewData.plane.plane,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"resize",activeHandleIdx:e,startPoint:S(a)})}_createResizeDragPipeline(t){return Vt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"resize"!==a.type||l(this.analysisViewData.plane))return;const s=I(this.analysisViewData.plane,x());e.next(wt(this.view,this.analysisViewData.plane.plane)).next(this._resizeDragUpdatePlane(a)),i.next((()=>{this._updateBoundedPlane(s)}))}))}_resizeDragUpdatePlane(t){return e=>{if(l(this.analysisViewData.plane))return;const i=this._resizeHandles[t.activeHandleIdx],a=rt(i,t.startPoint,e.renderEnd,this.view.state.camera,this._startPlane,I(this.analysisViewData.plane));this._updateBoundedPlane(a)}}_updateBoundedPlane(t){const e=this.analysisViewData;if(!r(e))throw new Error("valid internal object expected");e.plane=t}_updatePreviewPlane(t,e={}){let i=this._previewPlane;if(this._previewPlane=null,l(t))return this._removeFrameTask(),void this._updateManipulators();if(!this.analysisViewData.plane&&this.active){const a=r(i)?i:x();if(i=r(i)?I(i,xt):null,this._pickPlane(t,!0,e,a)){const t=Q;let e=!1;r(i)&&(e=f(i.plane,a.plane)<t||f(k(L.get(),i.basis1),k(L.get(),a.basis1))<t),e&&(this._previewPlaneOpacity=0),this._previewPlane=a}}r(this._previewPlane)&&l(this._frameTask)&&0===this._previewPlaneOpacity?this._frameTask=c({update:({deltaTime:t})=>{this._previewPlaneOpacity=Math.min(this._previewPlaneOpacity+t/(1e3*W),1),this._updateManipulators(),1===this._previewPlaneOpacity&&this._removeFrameTask()}}):l(this._previewPlane)&&r(this._frameTask)?this._removeFrameTask():r(this._previewPlane)&&this._updateManipulators()}_removeFrameTask(){this._frameTask=o(this._frameTask)}_calculatePickRay(t){const e=U(),i=_(t,It);return ft(this.view.state.camera,i,e),k(e.direction,e.direction),e}_pickMinResult(t){const e=_(t,A.get());return this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(e,this._intersector),this._intersector.results.min}_pickPlane(t,e,i,a){const s=this._pickMinResult(t),n=L.get();if(!s.getIntersectionPoint(n))return!1;const r=s.getTransformedNormal(L.get()),l=this.view.state.camera;f(r,l.viewForward)>0&&T(r,r,-1);const o=lt(n,l),h=(e?1:-1)*o*X,p=T(L.get(),r,h);V(p,p,n);const u=this.analysis.tiltEnabled?ot.TILTED:ot.HORIZONTAL_OR_VERTICAL,c=i[N]?ot.VERTICAL:i[q]?ot.HORIZONTAL:u;return ht(p,r,o,o,l,c,this.view.renderCoordsHelper,a),!0}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=o(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.shiftManipulator.state|=pt,this.rotateHeadingManipulator.state|=pt,this.rotateTiltManipulator.state|=pt,this._prevPointerMoveTimeout=this._clock.setTimeout((()=>{this.shiftManipulator.state&=~pt,this.rotateHeadingManipulator.state&=~pt,this.rotateTiltManipulator.state&=~pt}),this._pointerMoveTimerMs)}_updateManipulators(){if(kt.disableEngineLayers)return;let t=null,e=!1;if(r(this.analysisViewData.plane))t=this.analysisViewData.plane,e=!1;else{if(!r(this._previewPlane))return this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!1,void(this._previewPlaneGridVisualElement.visible=!1);t=this._previewPlane,e=!0}const i=ut(t,K.get());e?(this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.attached=!0,this._previewPlaneGridVisualElement.attached=!0,this._previewPlaneOutlineVisualElement.visible=!0,this._previewPlaneGridVisualElement.visible=!0):(this.shiftManipulator.available=!0,this.rotateHeadingManipulator.available=!0,this.rotateTiltManipulator.available=this.analysis.tiltEnabled,this.resizeManipulators.forEach((t=>t.available=!0)),ct(this.shiftManipulator,i,t,this.view.state.camera),dt(this.rotateHeadingManipulator,i,t,this.view.renderCoordsHelper),_t(this.rotateTiltManipulator,i,t),this.resizeManipulators.forEach(((e,a)=>vt(e,this._resizeHandles[a],i,t))),this._previewPlaneOutlineVisualElement.visible=!1,this._previewPlaneGridVisualElement.visible=!1);const a=E(L.get(),M(t.basis1),M(t.basis2),1),s=g(K.get(),a),n=w(s,i,s);this._previewPlaneOutlineVisualElement.transform=n,this._previewPlaneGridVisualElement.transform=n,this._updateMaterials()}_updateMaterials(){const t=[Z[0],Z[1],Z[2],Z[3]*this._previewPlaneOpacity];this._previewPlaneOutlineVisualElement.color=t;const e=[J[0],J[1],J[2],J[3]*this._previewPlaneOpacity],i=[0,0,0,0];this._previewPlaneGridVisualElement.backgroundColor=e,this._previewPlaneGridVisualElement.gridColor=i}_updateManipulatorsInteractive(t){if(!t.grabbing)return this.shiftManipulator.interactive=!0,this.rotateHeadingManipulator.interactive=!0,this.rotateTiltManipulator.interactive=!0,void this.resizeManipulators.forEach((t=>{t.interactive=!0}));this.shiftManipulator.interactive=this.shiftManipulator===t,this.rotateHeadingManipulator.interactive=this.rotateHeadingManipulator===t,this.rotateTiltManipulator.interactive=this.rotateTiltManipulator===t,this.resizeManipulators.forEach((e=>{e.interactive=e===t}))}testData(){return{plane:this.analysisViewData.plane,setPointerMoveTimerMs:t=>{this._pointerMoveTimerMs=t}}}};function St(t,e,i,a){const s=Pt(i,R(a),t.direction,C()),n=H();return z(s,t,n)?{type:"shift",creatingPointerId:e,hasBeenDragged:!1,shiftPlane:s,depth:0,startPoint:n}:null}function Ht(t){return"mouse"!==t.pointerType||0===t.button}Et.disableEngineLayers=!1,t([P()],Et.prototype,"_clock",void 0),t([P({constructOnly:!0})],Et.prototype,"view",void 0),t([P()],Et.prototype,"analysisViewData",void 0),t([P({readOnly:!0})],Et.prototype,"state",null),t([P({readOnly:!0})],Et.prototype,"cursor",null),t([P()],Et.prototype,"analysis",null),t([P()],Et.prototype,"removeIncompleteOnCancel",void 0),t([P({readOnly:!0})],Et.prototype,"layersMode",void 0),t([P({value:null})],Et.prototype,"inputState",null),t([P()],Et.prototype,"_isPlacingSlicePlane",null),t([P()],Et.prototype,"_creatingPointerId",null),Et=kt=t([y("esri.views.3d.analysis.Slice.SliceTool")],Et);const xt=x(),It=v(),Rt=Et;export{Rt as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as i}from"../../../../chunks/tslib.es6.js";import e from"../../../../core/Accessor.js";import s from"../../../../core/Handles.js";import{isNone as t,isSome as r,destroyMaybe as o}from"../../../../core/maybe.js";import{watch as l,syncAndInitial as a}from"../../../../core/reactiveUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as
|
|
5
|
+
import{_ as i}from"../../../../chunks/tslib.es6.js";import e from"../../../../core/Accessor.js";import s from"../../../../core/Handles.js";import{isNone as t,isSome as r,destroyMaybe as o}from"../../../../core/maybe.js";import{watch as l,syncAndInitial as a}from"../../../../core/reactiveUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../../core/accessorSupport/decorators/subclass.js";import{C as p,m as u}from"../../../../chunks/mat4.js";import{s as h,l as c}from"../../../../chunks/vec3.js";import{Z as d}from"../../../../chunks/vec4f64.js";import{sv3d as v,sm4d as _}from"../../../../geometry/support/vectorStacks.js";import{PLANE_OUTLINE_COLOR as w,PLANE_PREVIEW_OUTLINE_WIDTH as V,PLANE_OUTLINE_WIDTH as f,PLANE_BACKGROUND_COLOR as E,GRID_COLOR as g}from"./sliceToolConfig.js";import{createGridVisualElement as y,createOutlineVisualElement as j,calculateBoundedPlaneTranslateRotate as b}from"./sliceToolUtils.js";import{createStipplePatternSimple as S}from"../../webgl-engine/materials/lineStippleUtils.js";let k=class extends e{constructor(i){super(i),this._handles=new s,this._gridVisualElement=null,this._outlineVisualElement=null,this.showGrid=!1,this.preview=!0}initialize(){const i=this.analysisViewData;if(t(i))throw new Error("expected internal object to be valid");this._gridVisualElement=y(this.view),this._outlineVisualElement=j(this.view),this._handles.add([l((()=>({visible:r(i.plane)&&this.analysisViewData.visible,active:this.analysisViewData.active,preview:this.preview,showGrid:this.showGrid})),(i=>this._updateMaterials(i)),a),l((()=>i.plane),(i=>this._updatePlane(i)),a)],"internal")}destroy(){this._handles.destroy(),this._gridVisualElement=o(this._gridVisualElement),this._outlineVisualElement=o(this._outlineVisualElement),this.set("view",null)}_updatePlane(i){if(t(i))return;this._gridVisualElement.attached=!0,this._outlineVisualElement.attached=!0;const e=h(v.get(),c(i.basis1),c(i.basis2),1),s=p(_.get(),e),r=b(i,_.get()),o=u(s,r,s);this._outlineVisualElement.transform=o,this._gridVisualElement.transform=o}_updateMaterials({visible:i,active:e,preview:s,showGrid:t}){this._outlineVisualElement.color=w,this._outlineVisualElement.width=s?V:f,this._outlineVisualElement.stipplePattern=e?null:S(5),this._gridVisualElement.backgroundColor=E,this._gridVisualElement.gridColor=t?g:d,this._gridVisualElement.visible=i,this._outlineVisualElement.visible=i}};i([n()],k.prototype,"view",void 0),i([n()],k.prototype,"analysis",void 0),i([n()],k.prototype,"analysisViewData",void 0),i([n()],k.prototype,"showGrid",void 0),i([n()],k.prototype,"preview",void 0),k=i([m("esri.views.3d.analysis.Slice.SliceVisualization")],k);export{k as SliceVisualization};
|