// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("exports ../../core/Error ../../core/Logger ../../core/maybe ../../geometry/support/aaBoundingBox ../../geometry/support/aaBoundingRect ../../geometry/support/jsonUtils ./OptimizedFeature ./OptimizedFeatureSet ./OptimizedGeometry".split(" "),function(p,F,pa,qa,da,ra,I,C,sa,z){function v(a,b){return a?b?4:3:b?3:2}function J(a,b,c,d){if(a){if(c)return b&&d?ta:ea;if(b&&d)return ua}else if(b&&d)return ea;return va}function K({scale:a,translate:b},c){return Math.round((c-b[0])/a[0])}function L({scale:a, translate:b},c){return Math.round((b[1]-c)/a[1])}function D({scale:a,translate:b},c,d){return c*a[d]+b[d]}function M(a){a=a.coords;return{x:a[0],y:a[1]}}function fa(a,b){a.coords[0]=b.x;a.coords[1]=b.y;return a}function N(a){a=a.coords;return{x:a[0],y:a[1],z:a[2]}}function wa(a,b){a.coords[0]=b.x;a.coords[1]=b.y;a.coords[2]=b.z;return a}function O(a){a=a.coords;return{x:a[0],y:a[1],m:a[2]}}function xa(a,b){a.coords[0]=b.x;a.coords[1]=b.y;a.coords[2]=b.m;return a}function P(a){a=a.coords;return{x:a[0], y:a[1],z:a[2],m:a[3]}}function ya(a,b){a.coords[0]=b.x;a.coords[1]=b.y;a.coords[2]=b.z;a.coords[3]=b.m;return a}function Q(a,b){return a&&b?ya:a?wa:b?xa:fa}function ha(a,b,c,d,f){c=Q(c,d);for(const {geometry:e,attributes:g}of b)b=null!=e?c(new z,e):null,a.push(new C.OptimizedFeature(b,g,null,f?g[f]:void 0));return a}function ia(a,b,c=Q(null!=b.z,null!=b.m)){return c(a,b)}function ja(a,b,c,d){for(const {geometry:f,attributes:e}of b)a.push({attributes:e,geometry:null!=f?R(f,c,d):null});return a}function R(a, b,c){if(null==a)return null;const d=v(b,c),f=[];for(let e=0;e=f&&(a.lengths.push(t),u=r)}y(a.coords,u);return a.coords.length?a:null}function ba(a,b,c,d,f,e,g){let h=d,k=0;for(let l= e+c;lh&&(k=l,h=n)}h>d&&(k-e>c&&ba(a,b,c,d,f,e,k),f(a,b,a.length,k,b[k],b[k+1]),g-k>c&&ba(a,b,c,d,f,k,g))}function ca(a,b,c,d,f){const {coords:e,lengths:g}=b;c=v(c,d);if(!e.length)return a!==b&&A(a),a;qa.assertIsSome(f);const {originPosition:h,scale:k,translate:n}=f;f=za;f.originPosition=h;d=f.scale;d[0]=k[0]?? 1;d[1]=-(k[1]??1);d[2]=k[2]??1;d[3]=k[3]??1;var l=f.translate;l[0]=n[0]??0;l[1]=n[1]??0;l[2]=n[2]??0;l[3]=n[3]??0;if(!g.length){for(d=0;dpa.getLogger("esri.layers.graphics.featureConversionUtils"),aa={esriGeometryPoint:0,esriGeometryPolyline:2,esriGeometryPolygon:3,esriGeometryMultipoint:0,esriGeometryEnvelope:0},va=(a,b,c,d,f,e)=>{a[c]=f;a[c+1]=e},ea=(a,b,c,d,f,e)=>{a[c]= f;a[c+1]=e;a[c+2]=b[d+2]},ua=(a,b,c,d,f,e)=>{a[c]=f;a[c+1]=e;a[c+2]=b[d+3]},ta=(a,b,c,d,f,e)=>{a[c]=f;a[c+1]=e;a[c+2]=b[d+2];a[c+3]=b[d+3]},E=[],H=[],za={originPosition:"lowerLeft",scale:[1,1,1,1],translate:[0,0,0,0]};p.convertFromFeature=function(a,b,c,d,f){E[0]=a;[a]=X(H,E,b,c,d,f);y(E);y(H);return a};p.convertFromFeatureSet=function(a,b){const c=new sa,{hasM:d,hasZ:f,features:e,objectIdFieldName:g,spatialReference:h,geometryType:k,exceededTransferLimit:n,transform:l,fields:m}=a;m&&(c.fields=m); c.geometryType=k??null;c.objectIdFieldName=g??b??null;c.spatialReference=h??null;if(!c.objectIdFieldName)return G().error(new F("optimized-features:invalid-objectIdFieldName","objectIdFieldName is missing")),c;e&&X(c.features,e,k,f,d,c.objectIdFieldName);n&&(c.exceededTransferLimit=n);d&&(c.hasM=d);f&&(c.hasZ=f);l&&(c.transform=l);return c};p.convertFromFeatures=X;p.convertFromGeometry=function(a,b,c){if(null==a)return null;const d=new z;"hasZ"in a&&null==b&&(b=a.hasZ);"hasM"in a&&null==c&&(c=a.hasM); if(I.isPoint(a))return Q(null!=b?b:null!=a.z,null!=c?c:null!=a.m)(d,a);if(I.isPolygon(a))return W(d,a,b,c);if(I.isPolyline(a))return U(d,a,v(b,c));if(I.isMultipoint(a))return S(d,a,v(b,c));G().error("convertFromGeometry:unknown-geometry",new F(`Unable to parse unknown geometry type '${a}'`))};p.convertFromMultipoint=S;p.convertFromMultipointFeatures=ka;p.convertFromNestedArray=ma;p.convertFromPoint=ia;p.convertFromPointFeatures=ha;p.convertFromPolygon=W;p.convertFromPolyline=U;p.convertFromPolylineFeatures= la;p.convertToFeature=function(a,b,c,d){H[0]=a;Y(E,H,b,c,d);a=E[0];y(E);y(H);return a};p.convertToFeatureSet=function(a){const {objectIdFieldName:b,spatialReference:c,transform:d,fields:f,hasM:e,hasZ:g,features:h,geometryType:k,exceededTransferLimit:n,uniqueIdField:l,queryGeometry:m,queryGeometryType:q}=a;a=Y([],h,k,g,e);const r=na(m,q,!1,!1);a={features:a,fields:f,geometryType:k,objectIdFieldName:b,spatialReference:c,uniqueIdField:l,queryGeometry:r};d&&(a.transform=d);n&&(a.exceededTransferLimit= n);e&&(a.hasM=e);g&&(a.hasZ=g);return a};p.convertToFeatures=Y;p.convertToGeometry=na;p.convertToMultipoint=R;p.convertToMultipointFeatures=ja;p.convertToPoint=function(a,b,c){return a?b?c?P(a):N(a):c?O(a):M(a):null};p.convertToPolygon=V;p.convertToPolyline=T;p.generalizeOptimizedGeometry=function(a,b,c,d,f,e,g=c,h=d){A(a);if(!b?.coords.length)return null;f=aa[f];const {coords:k,lengths:n}=b;b=v(c,d);const l=v(c&&g,d&&h);c=J(c,d,g,h);if(!n.length)return c(a.coords,k,0,0,k[0],k[1]),A(a,b,0),a;d=0; e*=e;for(const m of n){if(m=f?a.lengths.push(h):y(a.coords,g*l);d+=m*b}return a.coords.length?a:null};p.getBoundsOptimizedGeometry=function(a,b,c,d){if(!b?.coords?.length)return null;c=v(c,d);let f=d=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY,g=Number.NEGATIVE_INFINITY;if(b&&b.coords){b=b.coords; for(let h=0;hr&&(b=Math.min(b,l));0u?d=Math.min(d,m):0=m&&0>=x:0<=w&&0<=r||0>=w&&0>=r;B&&m?(u+=l,w+=r):(u=l,w=r,h+=d);b(a.coords,e,h,f,u,w);f+=d;m=x}h+=d;l=(h-n)/d;l>=c&&(a.lengths[k]=l,n=h,k++)}a.coords.length>n&&(a.coords.length=n);a.lengths.length>k&&(a.lengths.length=k);return a.coords.length&&a.lengths.length?a:null};p.removeZMValues=function(a,b,c,d,f,e){A(a);a.lengths.push(...b.lengths);if(c===f&&d===e)for(var g=0;g