UNPKG

@arcgis/core

Version:

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

1 lines • 24.4 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6061,6312,6342,8125],{36633(e,t,r){r.d(t,{O:()=>g});var n=r(55537),s=r(79187),i=r(83661),o=r(15756);function a(){return u(new i.P,-1,Number.NaN)}function u(e,t,r){return{m_coordinate:e.clone(),m_vertexIndex:t,m_geometryIndex:0,m_distance:r,m_bRightSide:!1,isEmpty:c}}function c(){return Number.isNaN(this.m_distance)}function h(e,t,r=-1,a=-1){if(e.isEmpty())return 3;const u=e.getGeometryType();if((0,n.f)(u))return function(e,t,r,s){if(r>=0||s>=0)return(0,n.a)("");if(e.isDegenerate(0))return e.getStartXY().equals(t)?2:3;if(!e.isCurve()){const r=i.P.orientationRobust(t,e.getStartXY(),e.getEndXY());return r<0?1:r>0?0:2}const o=e.getClosestCoordinate(t,!1),a=e.getTangent(o),u=e.getCoord2D(o),c=i.P.orientationRobust(t,u,u.add(a));return c<0?1:c>0?0:2}(e,t,r,a);if(u===n.G.enumPolygon)return function(e,t,r,i){(r>=0||i>=0)&&(0,n.a)("");const a=new s.Envelope2D;e.queryEnvelope(a);const u=(0,o.l)(e,t,0);return 0===u?0:1===u?1:2}(e,t,r,a);if(u===n.G.enumPolyline)return function(e,t,r,s){(r<0&&s>=0||r>=0&&s<0)&&(0,n.a)("");const o=e.querySegmentIterator();if(r<0){let e=Number.MAX_VALUE,n=0;for(;o.nextPath();)for(;o.hasNextSegment();){const a=o.nextSegment(),u=a.getClosestCoordinate(t,!1),c=a.getCoord2D(u),h=i.P.sqrDistance(c,t);h<e?(n=1,r=o.getStartPointIndex(),s=o.getPathIndex(),e=h):h===e&&n++}if(0===n)return 3;if(1===n)return o.resetToVertex(r,s),h(o.nextSegment(),t)}const a=function(e,t,r,n){const s={i1:-1,i2:-1,bRight1:!1,bRight2:!1};if(s.i1=function(e,t,r){for(e.resetToVertex(t,r);e.hasNextSegment();)if(!e.nextSegment().isDegenerate(0))return e.getStartPointIndex();for(e.resetToVertex(t,r);e.hasPreviousSegment();)if(!e.previousSegment().isDegenerate(0))return e.getStartPointIndex();return-1}(t,r,n),-1!==s.i1){t.resetToVertex(s.i1,-1);const r=t.nextSegment(),n=r.getClosestCoordinate(e,!1),o=r.getCoord2D(n),a=i.P.sqrDistance(o,e);{const t=o.clone();t.subThis(r.getStartXY());const n=e.clone();n.subThis(r.getStartXY()),s.bRight1=t.crossProduct(n)<0}if(s.i2=function(e,t){for(e.resetToVertex(t,-1),e.nextSegment();e.hasNextSegment();)if(!e.nextSegment().isDegenerate(0))return e.getStartPointIndex();return-1}(t,s.i1),-1!==s.i2){t.resetToVertex(s.i2,-1);const r=t.nextSegment(),n=r.getClosestCoordinate(e,!1),o=r.getCoord2D(n);if(i.P.sqrDistance(o,e)>a)s.i2=-1;else{const t=o.clone();t.subThis(r.getStartXY());const n=e.clone();n.subThis(r.getStartXY()),s.bRight2=t.crossProduct(n)<0}}if(-1===s.i2&&(s.i2=function(e,t){for(e.resetToVertex(t,-1);e.hasPreviousSegment();)if(!e.previousSegment().isDegenerate(0))return e.getStartPointIndex();return-1}(t,s.i1),-1!==s.i2)){t.resetToVertex(s.i2,-1);const r=t.nextSegment(),n=r.getClosestCoordinate(e,!1),o=r.getCoord2D(n);if(i.P.sqrDistance(o,e)>a)s.i2=-1;else{const t=o.clone();t.subThis(r.getStartXY());const n=e.clone();n.subThis(r.getStartXY()),s.bRight2=t.crossProduct(n)<0;const i=s.i1;s.i1=s.i2,s.i2=i;const a=s.bRight1;s.bRight1=s.bRight2,s.bRight2=a}}}return s}(t,o,r,s);if(-1!==a.i1&&-1===a.i2)return a.bRight1?1:0;if(-1!==a.i1&&-1!==a.i2){if(a.bRight1===a.bRight2)return a.bRight1?1:0;{o.resetToVertex(a.i1,-1);const e=o.nextSegment().getTangent(1);o.resetToVertex(a.i2,-1);const t=o.nextSegment().getTangent(0);return e.crossProduct(t)>=0?1:0}}return o.resetToVertex(r,s),h(o.nextSegment(),t)}(e,t,r,a);if(u===n.G.enumEnvelope){const r=new s.Envelope2D;return e.queryEnvelope(r),r.contains(t)?r.containsExclusive(t)?1:2:0}return 3}var l=r(95213);class g{getOperatorType(){return 10500}accelerateGeometry(e,t,r){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}getNearestCoordinate(e,t,r,s){if(t.isNAN()&&(0,n.a)("NAN xy coordinates are not allowed"),e.isEmpty())return a();switch(e.getGeometryType()){case n.G.enumPoint:return this.pointGetNearestVertex(e,t);case n.G.enumMultiPoint:return this.multiVertexGetNearestVertex(e,t);case n.G.enumPolyline:case n.G.enumPolygon:return this.multiPathGetNearestCoordinate(e,t,r,s);default:(0,n.t)("")}}getNearestVertex(e,t){if(t.isNAN()&&(0,n.a)("NAN xy coordinates are not allowed"),e.isEmpty())return a();switch(e.getGeometryType()){case n.G.enumPoint:return this.pointGetNearestVertex(e,t);case n.G.enumMultiPoint:case n.G.enumPolyline:case n.G.enumPolygon:return this.multiVertexGetNearestVertex(e,t);default:(0,n.t)("")}}getNearestVertices(e,t,r,s){if(0===s&&(0,n.a)(""),t.isNAN()&&(0,n.a)("NAN xy coordinates are not allowed"),e.isEmpty())return[];switch(e.getGeometryType()){case n.G.enumPoint:return this.pointGetNearestVertices(e,t,r,s);case n.G.enumMultiPoint:case n.G.enumPolyline:case n.G.enumPolygon:return this.multiVertexGetNearestVertices(e,t,r,s);default:(0,n.t)("")}}multiPathGetNearestCoordinate(e,t,r,a){if(e.getGeometryType()===n.G.enumPolygon&&r){const r=new s.Envelope2D;e.queryEnvelope(r);const n=(0,l.d)(null,r,!1);let i;if(i=(0,o.l)(e,t,a?0:n),0!==i){const e=u(t,-1,0);return a&&(e.m_bRightSide=!0),e}}const c=e.querySegmentIterator(),g=new i.P;let m=-1,f=-1,x=Number.MAX_VALUE,p=0;for(;c.nextPath();)for(;c.hasNextSegment();){const e=c.nextSegment(),r=e.getClosestCoordinate(t,!1),n=e.getCoord2D(r),s=i.P.sqrDistance(n,t);s<x?(p=1,g.assign(n),m=c.getStartPointIndex(),f=c.getPathIndex(),x=s):s===x&&p++}-1===m&&(0,n.a)("");const y=u(g,m,Math.sqrt(x));if(a)if(e.getGeometryType()!==n.G.enumPolygon){let r=!1;if(p>1){const n=h(e,t,m,f);r=0!==n&&3!==n}else c.resetToVertex(m,f),r=0!==h(c.nextSegment(),t);y.m_bRightSide=r}else r||0!==(0,o.l)(e,t,0)&&(y.m_bRightSide=!0);return y}pointGetNearestVertex(e,t){const r=e.getXY();return u(r,0,i.P.distance(r,t))}multiVertexGetNearestVertex(e,t){const r=e.getAttributeStreamRef(0),n=e.getPointCount();let s=-1;const o=new i.P;let a=Number.MAX_VALUE;const c=new i.P;for(let e=0;e<n;e++){r.queryPoint2D(2*e,c);const n=i.P.sqrDistance(c,t);n<a&&(o.assign(c),s=e,a=n)}return u(o,s,Math.sqrt(a))}pointGetNearestVertices(e,t,r,n){const s=[];if(0!==n){const n=r*r,o=e.getXY(),a=i.P.sqrDistance(o,t);a<=n&&s.push(u(o,0,Math.sqrt(a)))}return s}multiVertexGetNearestVertices(e,t,r,n){const s=[];if(0!==n){const o=e.getAttributeStreamRef(0),a=e.getPointCount();s.length=n+1;const c=r*r;for(let e=0;e<a;e++){const r=o.read(2*e),n=o.read(2*e+1),a=t.x-r,h=t.y-n,l=a*a+h*h;l<=c&&s.push(u(i.P.construct(r,n),e,Math.sqrt(l)))}s.sort((e,t)=>e.m_distance-t.m_distance)}return s.slice(0,n)}}},61691(e,t,r){r.d(t,{G:()=>n});class n{*[Symbol.iterator](){let e=this.next();for(;e;)yield e,e=this.next()}}},76061(e,t,r){r.d(t,{S:()=>s});var n=r(61691);class s extends n.G{constructor(e){super(),this.m_iGeom=-1,this.m_aGeoms=e?e.slice():[]}next(){if(this.m_iGeom<this.m_aGeoms.length-1){const e=this.m_aGeoms[++this.m_iGeom];return this.m_aGeoms[this.m_iGeom]=null,e}return null}tock(){return!1}getGeometryID(){return this.m_iGeom}getRank(){return 1}}},78125(e,t,r){r.r(t),r.d(t,{fromExtent:()=>p,fromGeometry:()=>x,fromMultipoint:()=>y,fromPoint:()=>d,fromPolygon:()=>v,fromPolyline:()=>C,fromPolylineUsingImportOperator:()=>P,fromSpatialReference:()=>M,getSpatialReference:()=>f,toExtent:()=>V,toGeometry:()=>S,toMultipoint:()=>E,toPoint:()=>R,toPolygon:()=>G,toPolyline:()=>b});var n=r(83661),s=(r(79187),r(55537)),i=r(95213),o=r(88885),a=r(5443),u=r(48526),c=r(86738),h=r(39829),l=r(82799),g=(r(90293),r(83299));const m="_gxVersion";function f(e){return Array.isArray(e)?e[0].spatialReference:e.spatialReference}function x(e){switch(e.type){case"point":return d(e);case"multipoint":return y(e);case"polyline":return C(e);case"polygon":return v(e);case"extent":return p(e);default:throw new Error(`Unsupported geometry type: ${e.type}`)}}function p(e){if(!e.getCacheValue(m)){const t=new i.E;t.setCoords(e.xmin,e.ymin,e.xmax,e.ymax),e.hasM&&t.setInterval(2,0,e.mmin,e.mmax),e.hasZ&&t.setInterval(1,0,e.zmin,e.zmax),e.setCacheValue(m,t)}return e.getCacheValue(m)}function y(e){if(!e.getCacheValue(m)){const t=new o.M,r=new i.P,n=e.points,s=e.hasM,a=e.hasZ,u=a?3:2;for(let e=0,i=n.length;e<i;e++){const i=n[e];r.setXYCoords(i[0],i[1]),a&&r.setZ(i[2]??0),s&&r.setM(i[u]??NaN),t.add(r)}e.setCacheValue(m,t)}return e.getCacheValue(m)}function d(e){if(!e.getCacheValue(m)){const t=new i.P;t.setXYCoords(e.x,e.y),e.hasM&&t.setM(e.m),e.hasZ&&t.setZ(e.z),e.setCacheValue(m,t)}return e.getCacheValue(m)}function v(e){if(!e.getCacheValue(m)){const{curveRings:t,hasM:r,hasZ:n,rings:s}=e,i=(0,g.fromGeometryToGXGeometry)({curveRings:t,hasM:r,hasZ:n,rings:s});e.setCacheValue(m,i)}return e.getCacheValue(m)}function C(e){if(!e.getCacheValue(m)){const{curvePaths:t,hasM:r,hasZ:n,paths:s}=e,i=(0,g.fromGeometryToGXGeometry)({curvePaths:t,hasM:r,hasZ:n,paths:s});e.setCacheValue(m,i)}return e.getCacheValue(m)}function P(e){if(!e.getCacheValue(m)){const{curvePaths:t,hasM:r,hasZ:n,paths:s}=e,i=(0,g.fromGeometryToGXGeometryUsingImportOperator)({curvePaths:t,hasM:r,hasZ:n,paths:s});e.setCacheValue(m,i)}return e.getCacheValue(m)}function M(e){return(0,g.fromSpatialReference)(e)}function S(e,t){if(e)switch(e.getGeometryType()){case s.G.enumPoint:return R(e,t);case s.G.enumEnvelope:return V(e,t);case s.G.enumMultiPoint:return E(e,t);case s.G.enumPolyline:return b(e,t);case s.G.enumPolygon:return G(e,t)}return null}function V(e,t){if(e.isEmpty())return null;const r=new a.A({xmin:e.getXMin(),ymin:e.getYMin(),xmax:e.getXMax(),ymax:e.getYMax(),spatialReference:t}),n=e.getDescription();if(n.hasM()){const t=e.queryInterval(2,0);r.mmin=t.vmin,r.mmax=t.vmax}if(n.hasZ()){const t=e.queryInterval(1,0);r.zmin=t.vmin,r.zmax=t.vmax}return r.setCacheValue(m,e),r}function E(e,t){if(e.isEmpty())return null;const r=e.getDescription(),n=r.hasM(),s=r.hasZ(),o=[],a=new i.P;for(let t=0,r=e.getPointCount();t<r;t++){e.getPointByVal(t,a);const r=[a.getX(),a.getY()];s&&r.push(a.getZ()),n&&r.push(a.getM()),o.push(r)}const c=new u.A({hasM:n,hasZ:s,points:o,spatialReference:t});return c.setCacheValue(m,e),c}function R(e,t){if(e instanceof n.P)return new c.A({x:e.x,y:e.y,spatialReference:t});if(e.isEmpty())return null;const r=new c.A({x:e.getX(),y:e.getY(),spatialReference:t}),s=e.getDescription();return s.hasM()&&(r.m=e.getM()),s.hasZ()&&(r.z=e.getZ()),r.setCacheValue(m,e),r}function G(e,t){if(e.isEmpty())return null;const r=h.A.fromJSON({...(0,g.toGeometry)(e,null),spatialReference:t});return r.setCacheValue(m,e),r}function b(e,t){if(e.isEmpty())return null;const r=l.A.fromJSON({...(0,g.toGeometry)(e,null),spatialReference:t});return r.setCacheValue(m,e),r}},87992(e,t,r){r.d(t,{JR:()=>E,ME:()=>M,MY:()=>R,NO:()=>P,Nh:()=>V,V2:()=>A,_s:()=>w,e6:()=>O,gh:()=>S,tr:()=>Y,uX:()=>p});var n=r(5482),s=r(69397),i=r(16930),o=(r(70328),r(19419)),a=r(60408),u=r(21325),c=r(513),h=r(50954),l=r(79567),g=r(52006),m=r(49663),f=r(46068),x=r(92722);class p{constructor({type:e,spatialReference:t,vertexCount:r,vertexXY:n,vertexZ:s,vertexM:i,partCount:o,partOffsets:a,partFlags:u,segmentFlags:c,segmentIndices:h,segmentParams:l,segmentCountArc:g,segmentCountBezier:m}){this.segmentCountArc=0,this.segmentCountBezier=0,this.type=e,this.spatialReference=t,this.vertexCount=r,this.vertexXY=n,this.vertexZ=s,this.vertexM=i,this.partCount=o,this.partOffsets=a,this.partFlags=u,this.segmentFlags=c,this.segmentIndices=h,this.segmentParams=l,this.segmentCountArc=g,this.segmentCountBezier=m}get segmentParamCount(){return 10*this.segmentCountArc+4*this.segmentCountBezier}get segmentCountLine(){const{segmentCount:e,segmentCountArc:t,segmentCountBezier:r}=this;return e&&e-t-r}get segmentCount(){return"polyline"===this.type?this.vertexCount-this.partCount:"polygon"===this.type?this.vertexCount:0}get hasZ(){return null!=this.vertexZ}get hasM(){return null!=this.vertexM}hasCurves(){return null!=this.segmentFlags}isMultipart(){return"polyline"===this.type||"polygon"===this.type}get usedMemory(){function e(e){return e?s.Ul+e.byteLength:0}return e(this.vertexXY)+e(this.vertexZ)+e(this.vertexM)+e(this.partOffsets)+e(this.partFlags)+e(this.segmentFlags)+e(this.segmentIndices)+e(this.segmentParams)}clone(){const{type:e,vertexCount:t,partCount:r,hasZ:n,hasM:s,segmentCountArc:i,segmentCountBezier:o}=this,a=A(e,t,r,n,s,this.hasCurves(),i,o);a.spatialReference=this.spatialReference;const{vertexXY:u,vertexZ:c,vertexM:h}=this;if(a.vertexXY.set(u.subarray(0,2*t),0),a.vertexZ?.set(c.subarray(0,t),0),a.vertexM?.set(h.subarray(0,t),0),this.isMultipart()){const{partOffsets:e,partFlags:t}=this;a.partFlags.set(t.subarray(0,r+1)),a.partOffsets.set(e.subarray(0,r+1))}if(this.hasCurves()){const{segmentFlags:e,segmentIndices:r,segmentParams:n,segmentParamCount:s}=this;a.segmentFlags.set(e.subarray(0,t),0),a.segmentIndices.set(r.subarray(0,t),0),a.segmentParams.set(n.subarray(0,s),0)}return a}equals(e){return this.equalsWithinTolerance(e,0)}equalsWithinTolerance(e,t){if(null==e)return!1;if(this===e)return!0;if(!(0,u.aI)(this.spatialReference,e.spatialReference))return!1;if(this.vertexCount!==e.vertexCount||this.partCount!==e.partCount)return!1;if(this.hasZ!==e.hasZ||this.hasM!==e.hasM)return!1;if(this.hasCurves()!==e.hasCurves()||this.segmentCountArc!==e.segmentCountArc||this.segmentCountBezier!==e.segmentCountBezier)return!1;const r=0===t?(e,t)=>e!==t||isNaN(e)!==isNaN(t):(e,r)=>Math.abs(e-r)>t||isNaN(e)!==isNaN(r);for(let t=0;t<this.vertexCount;++t)if(r(this.vertexXY[2*t],e.vertexXY[2*t])||r(this.vertexXY[2*t+1],e.vertexXY[2*t+1]))return!1;if(this.hasZ)for(let t=0;t<this.vertexCount;++t)if(r(this.vertexZ[t],e.vertexZ[t]))return!1;if(this.hasM)for(let t=0;t<this.vertexCount;++t)if(r(this.vertexM[t],e.vertexM[t]))return!1;for(let t=0;t<this.partCount;++t)if(this.partFlags[t]!==e.partFlags[t]||this.partOffsets[t]!==e.partOffsets[t])return!1;if(this.hasCurves()){for(let t=0;t<this.vertexCount;++t)if(this.segmentFlags[t]!==e.segmentFlags[t]||this.segmentIndices[t]!==e.segmentIndices[t])return!1;for(let t=0;t<this.segmentParamCount;++t)if(r(this.segmentParams[t],e.segmentParams[t]))return!1}return!0}get parts(){return this.isMultipart()?new y(this):[][Symbol.iterator]()}}class y{constructor(e){this.geometry=e,this.value=new d(e)}get done(){return this.value.index>=this.geometry.partCount}next(){return++this.value.index,this}[Symbol.iterator](){return this}}class d{constructor(e){this.geometry=e,this.index=-1,this._readVertex=N(e),this._segments=new v(this)}get segments(){return this._segments.reset(),this._segments}get startVertex(){return this._readVertex(this.geometry.partOffsets[this.index])}get vertexCount(){const e=this.geometry.partOffsets;return e[this.index+1]-e[this.index]}}class v{constructor(e){this._part=e,this._partStart=0,this._partEnd=0,this._isPolygon="polygon"===e.geometry.type,this.value=new C(e.geometry)}get done(){return this.value.indexOfStartVertex>this._partEnd}next(){++this.value.indexOfStartVertex;const e=this.value.indexOfStartVertex>=this._partEnd;return this.value.indexOfEndVertex=e&&this._isPolygon?this._partStart:this.value.indexOfStartVertex+1,this}[Symbol.iterator](){return this}reset(){const{index:e}=this._part,t=this._part.geometry.partOffsets;this._partStart=t[e],this._partEnd=t[e+1]-(this._isPolygon?1:2),this.value.indexOfStartVertex=this._partStart-1}}class C{constructor(e){this.geometry=e,this.indexOfStartVertex=-1,this.indexOfEndVertex=-1,this._readVertex=N(e)}get xStart(){return this.geometry.vertexXY[2*this.indexOfStartVertex]}get yStart(){return this.geometry.vertexXY[2*this.indexOfStartVertex+1]}get zStart(){return this.geometry.vertexZ[this.indexOfStartVertex]}get mStart(){return this.geometry.vertexM[this.indexOfStartVertex]}get xEnd(){return this.geometry.vertexXY[2*this.indexOfEndVertex]}get yEnd(){return this.geometry.vertexXY[2*this.indexOfEndVertex+1]}get zEnd(){return this.geometry.vertexZ[this.indexOfEndVertex]}get mEnd(){return this.geometry.vertexM[this.indexOfEndVertex]}get start(){return this._readVertex(this.indexOfStartVertex)}get end(){return this._readVertex(this.indexOfEndVertex)}get curve(){const e=this.geometry.segmentFlags?.[this.indexOfStartVertex]??1;if(1===e)return this.end;const t=this.geometry.segmentParams;let r=this.geometry.segmentIndices[this.indexOfStartVertex];if(2===e){const e=t[r++],n=t[r++],s=t[r++],i=t[r++];return{b:[this.end,[e,n],[s,i]]}}const n=t[r++],s=t[r++],i=t[r++],o=t[r++],a=t[r++],u=t[r++];r++,r++;const c=t[r++],h=t[r++];if(!Boolean(4&n)&&1===i)return{c:[this.end,[c,h]]};const l=2&n?0:1,g=1&n?0:1;return{a:[this.end,[a,u],l,g,o,s,i]}}}function P(e,t){const r={stack:[],error:void 0,hasError:!1};try{return t??=(0,o.Ie)(),(0,n.mS)(r,new G(e,["vertexZ","vertexM","spatialReference"]),!1),(0,o.bx)(t,function(e){let t;const{vertexCount:r,vertexXY:s,vertexZ:i,vertexM:a}=e,u=b(e);if(e.hasCurves()){const r={stack:[],error:void 0,hasError:!1};try{(0,n.mS)(r,new G(e,["vertexZ","vertexM"]),!1);const s=(0,o.Ie)();for(const t of e.parts){let e=t.startVertex;for(const{curve:r}of t.segments)(0,l.e)(s,e,r),e=(0,g.yP)(r)}const[i,a,c,h]=s;t={xmin:i,ymin:a,xmax:c,ymax:h,spatialReference:u}}catch(e){r.error=e,r.hasError=!0}finally{(0,n.hk)(r)}}else{let e,n,i,o;e=n=1/0,i=o=-1/0;for(let t=0;t<r;++t){const r=s[2*t],a=s[2*t+1];e=Math.min(e,r),i=Math.max(i,r),n=Math.min(n,a),o=Math.max(o,a)}t={xmin:e,ymin:n,xmax:i,ymax:o,spatialReference:u}}if(i){let e=1/0,r=-1/0;for(const t of i)e=Math.min(e,t),r=Math.max(r,t);t.zmin=e,t.zmax=r}if(a){let e=1/0,r=-1/0;for(const t of a)e=Math.min(e,t),r=Math.max(r,t);t.mmin=e,t.mmax=r}return t}(e)),t}catch(e){r.error=e,r.hasError=!0}finally{(0,n.hk)(r)}}function M(e){let t,r,n;if((0,a.fT)(e)){n="point";const{x:s,y:i,z:o,m:a}=e,u=[s,i];null!=o&&u.push(o),null!=a&&u.push(a),r=[[u]],t=1}else(0,a.U9)(e)?(n="multipoint",r=[e.points],t=e.points.length):(0,a.Rg)(e)?(n="polyline",r=e.curvePaths??e.paths,t=r.reduce((e,t)=>e+t.length,0)):(n="polygon",r=e.curveRings??e.rings,t=r.reduce((e,t)=>(0===t.length||(e+=t.length,_(t[0],(0,g.yP)(t.at(-1)))&&--e),e),0));const s=A(n,t,n.includes("point")?0:r.length,(0,a.Pv)(e),(0,a.W0)(e),(0,g.Ed)(e)),{hasZ:i,hasM:o,vertexXY:u,vertexZ:c,vertexM:h}=s;function l(e){u[2*f]=e[0],u[2*f+1]=e[1],i&&(c[f]=e[2]),o&&(h[f]=e[m]),++f}s.spatialReference=e.spatialReference??void 0;const m=s.hasZ?3:2;let f=0;if(!s.isMultipart()){if(!i&&!o){for(const[e,t]of r[0])u[2*f]=e,u[2*f+1]=t,++f;return s}for(const e of r[0])l(e);return s}const x="polygon"===n,{partOffsets:p}=s;let y=0;if(!s.hasCurves()){for(const e of r){if(p[y++]=f,0===e.length)continue;let t=e.length;if(x&&_(e[0],e.at(-1))&&--t,i||o)for(let r=0;r<t;++r)l(e[r]);else for(let r=0;r<t;++r){const[t,n]=e[r];u[2*f]=t,u[2*f+1]=n,++f}}return p[y]=f,s}function d(e){const t=v+e;if(t<=(s.segmentParams?.length??0))return;let r=t*I;r=20*Math.ceil(r/20);const n=s.segmentParams;s.segmentParams=new Float64Array(r),null!=n&&s.segmentParams.set(n)}let v=0;for(const e of r){if(s.partOffsets[y++]=f,0===e.length)continue;const t=e[0];let r=t;for(let t=1;t<e.length;++t){const n=e[t];l(r);const i=f-1;(0,g.wY)(n)?(d(10),++s.segmentCountArc,v=w(r,n,s,i,v),r=n.a[0]):(0,g.DA)(n)?(d(10),++s.segmentCountArc,v=Z(r,n,s,i,v),r=n.a[0]):(0,g.aO)(n)?(d(10),++s.segmentCountArc,v=O(r,n,s,i,v),r=n.c[0]):(0,g.n1)(n)?(d(4),++s.segmentCountBezier,v=Y(0,n,s,i,v),r=n.b[0]):r=n}x&&_(t,r)||l(r)}return s.partOffsets[y]=f,s}function S(e){const t=N(e),{vertexCount:r,partCount:n,hasZ:s,hasM:i}=e,o=b(e);if("point"===e.type){const[t,r]=e.vertexXY,n=e.vertexZ?.[0],s=e.vertexM?.[0];return{x:t,y:r,z:n,m:s,spatialReference:o}}let a=0;if("multipoint"===e.type){const e=[];for(;a<r;)e.push(t(a++));return{points:e,spatialReference:o,hasZ:s,hasM:i}}const u="polygon"===e.type;if(!e.hasCurves()){const r=new Array;for(let s=0;s<n;++s){const n=e.partOffsets[s+1],i=new Array;for(;a<n;)i.push(t(a++));u&&i.length>0&&i.push(i[0]),r.push(i)}return u?{rings:r,hasZ:s,hasM:i,spatialReference:o}:{paths:r,hasZ:s,hasM:i,spatialReference:o}}const c=new Array;for(const{segments:t,startVertex:r}of e.parts){const e=[r];for(const{curve:r}of t)e.push(r);c.push(e)}return u?{rings:[],curveRings:c,hasZ:s,hasM:i,spatialReference:o}:{paths:[],curvePaths:c,hasZ:s,hasM:i,spatialReference:o}}function V(e,{lengths:t,coords:r,hasZ:n,hasM:s},i){const o=e.includes("point")?0:t.length,a="polygon"===e,u="point"===e?1:t.reduce((e,t)=>e+t,0)-(a?o:0);n??=!1,s??=!1;const c=A(e,u,o,n,s,!1,0,0);if(c.spatialReference=i??void 0,!c.isMultipart()){for(let e=0,t=0;e<u;++e)c.vertexXY[2*e]=r[t++],c.vertexXY[2*e+1]=r[t++],n&&(c.vertexZ[e]=r[t++]),s&&(c.vertexM[e]=r[t++]);return c}const h=2+Number(n)+Number(s);let l=0,g=0;c.partOffsets[0]=0;for(const e of t){const t=c.partOffsets[g],i=t+e-Number(a);c.partOffsets[++g]=i;for(let e=t;e<i;++e)c.vertexXY[2*e]=r[l++],c.vertexXY[2*e+1]=r[l++],n&&(c.vertexZ[e]=r[l++]),s&&(c.vertexM[e]=r[l++]);a&&(l+=h)}return c}function E({type:e,vertexCount:t,vertexXY:r,vertexZ:n,vertexM:s,partCount:i,partOffsets:o,hasZ:a,hasM:u}){const c=new x.A([],[],a,u);i=Math.max(i,1);const h="polygon"===e;let l=0;for(let e=0;e<i;++e){const i=o?.[e+1]??t,g=c.coords.length;for(let e=l;e<i;++e)c.coords.push(r[2*e],r[2*e+1]),a&&c.coords.push(n[e]),u&&c.coords.push(s[e]);if(h){const e=l;c.coords.push(r[2*e],r[2*e+1]),a&&c.coords.push(n[e]),u&&c.coords.push(s[e])}c.lengths.push((c.coords.length-g)/c.stride),l=i}return"point"===e&&(c.lengths.length=0),c}function R(e,t){return"getSpatialReference"in e&&(t=function(e){if(null==e)return;const t=e.getText()||void 0,r=e.isCustomWkid()?0:e.getOldID();if(r<=0)return{wkt:t};let n=e.getLatestID();(n<=0||n===r)&&(n=void 0);const s=e.getVCS();if(null==s)return{wkid:r,latestWkid:n,wkt:t};const i=s.isCustomWkid()?0:s.getOldID();if(i<=0)return{wkt:t};let o=e.getLatestVerticalID();return(o<=0||o===i)&&(o=void 0),{wkid:r,wkt:t,latestWkid:n,vcsWkid:i,latestVcsWkid:o}}(e.getSpatialReference()),e=e.getGeometry()),new p({...e.toFlatGeometry(),spatialReference:t})}class G{constructor(e,t){this.target=e,this.keys=t,this.oldValues=t.map(t=>e[t]);for(const r of t)e[r]=void 0}[Symbol.dispose](){this.keys.map((e,t)=>{this.target[e]=this.oldValues[t]})}}function b({spatialReference:e}){return e instanceof i.A?e.toJSON():e}function N({vertexXY:e,vertexZ:t,vertexM:r}){return t?r?n=>[e[2*n],e[2*n+1],t[n],r[n]]:r=>[e[2*r],e[2*r+1],t[r]]:r?t=>[e[2*t],e[2*t+1],r[t]]:t=>[e[2*t],e[2*t+1]]}function _(e,t){return e.every((e,r)=>e===t[r])}function A(e,t,r,n,s,i,o,a){o??=0,a??=0;const u=new p({type:e,vertexCount:t,vertexXY:null,vertexZ:void 0,vertexM:void 0,partCount:r,partOffsets:void 0,partFlags:void 0,segmentFlags:void 0,segmentIndices:void 0,segmentParams:void 0,segmentCountArc:o,segmentCountBezier:a});let c=2*Float64Array.BYTES_PER_ELEMENT*t;n&&(c+=Float64Array.BYTES_PER_ELEMENT*t),s&&(c+=Float64Array.BYTES_PER_ELEMENT*t),u.isMultipart()&&(c+=(r+1)*Int32Array.BYTES_PER_ELEMENT,c+=(r+1)*Int8Array.BYTES_PER_ELEMENT),i&&(c+=t*Int8Array.BYTES_PER_ELEMENT,c+=t*Int32Array.BYTES_PER_ELEMENT,c+=u.segmentParamCount*Float64Array.BYTES_PER_ELEMENT);const h=new ArrayBuffer(c);let l=0;return u.vertexXY=new Float64Array(h,l,2*t),l+=u.vertexXY.byteLength,n&&(u.vertexZ=new Float64Array(h,l,t),l+=u.vertexZ.byteLength),s&&(u.vertexM=new Float64Array(h,l,t),l+=u.vertexM.byteLength),i&&(u.segmentParams=new Float64Array(h,l,u.segmentParamCount),l+=u.segmentParams.byteLength,u.segmentIndices=new Int32Array(h,l,t),u.segmentIndices.fill(X),l+=u.segmentIndices.byteLength),u.isMultipart()&&(u.partOffsets=new Int32Array(h,l,r+1),l+=u.partOffsets.byteLength,u.partFlags=new Int8Array(h,l,r+1),l+=u.partFlags.byteLength,"polygon"===u.type&&u.partFlags.subarray(0,r).fill(1)),i&&(u.segmentFlags=new Int8Array(h,l,t),u.segmentFlags.fill(1),l+=u.segmentFlags.byteLength),u}function w(e,t,{segmentFlags:r,segmentIndices:n,segmentParams:s},i,o){r[i]=4,n[i]=o;const[a,[u,c],h,l,g,m,x]=t.a;let p=4;l||(p|=1),h||(p|=2);const y=(0,f.SW)(e,t),[d,v]=(0,f.Uk)(y,.5);return s[o++]=p,s[o++]=m,s[o++]=x,s[o++]=g,s[o++]=u,s[o++]=c,s[o++]=y.u2-y.u1,s[o++]=y.u1,s[o++]=d,s[o++]=v,o}function Z(e,t,{segmentFlags:r,segmentIndices:n,segmentParams:s},i,o){r[i]=4,n[i]=o;const a=(0,m.i)(e,t);return T(a,4,...(0,c.mq)(a,.5),s,o)}function O(e,t,{segmentFlags:r,segmentIndices:n,segmentParams:s},i,o){return r[i]=4,n[i]=o,T((0,h.pM)(e,t),0,...t.c[1],s,o)}function T(e,t,r,n,s,i){const{cx:o,cy:a,thetaStart:u,thetaEnd:c,radius:h}=e;return u>c||(t|=1),Math.abs(c-u)<=Math.PI||(t|=2),s[i++]=t,s[i++]=h,s[i++]=1,s[i++]=0,s[i++]=o,s[i++]=a,s[i++]=c-u,s[i++]=u,s[i++]=r,s[i++]=n,i}function Y(e,{b:[t,[r,n],[s,i]]},{segmentFlags:o,segmentIndices:a,segmentParams:u},c,h){return o[c]=2,a[c]=h,u[h++]=r,u[h++]=n,u[h++]=s,u[h++]=i,h}const I=1.61803,X=-1}}]);