// 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 ../../geometry ../../Graphic ../../core/has ../../core/lang ../../core/typedArrayUtil ../../geometry/support/jsonUtils ./dehydratedPoint ../../geometry/SpatialReference".split(" "),function(c,X,v,Y,l,m,w,x,y){function n(a){return"declaredClass"in a}function e(a){return"declaredClass"in a}function p(a){return"declaredClass"in a}function q(a){return null==a?null:n(a)?a:w.fromJSON(z(a))}function z(a){const {wkid:b,wkt:f,wkt2:g,latestWkid:h}=a.spatialReference,d={wkid:b,wkt:f,wkt2:g,latestWkid:h}; switch(a.type){case "point":const {x:A,y:B,z:C,m:D}=a;return{x:A,y:B,z:C,m:D,spatialReference:d};case "polygon":const {rings:E,hasZ:F,hasM:G}=a;return{rings:r(E),hasZ:F,hasM:G,spatialReference:d};case "polyline":const {paths:H,hasZ:I,hasM:J}=a;return{paths:r(H),hasZ:I,hasM:J,spatialReference:d};case "extent":const {xmin:K,xmax:L,ymin:M,ymax:N,zmin:O,zmax:P,mmin:Q,mmax:R,hasZ:S,hasM:T}=a;return{xmin:K,xmax:L,ymin:M,ymax:N,zmin:O,zmax:P,mmin:Q,mmax:R,hasZ:S,hasM:T,spatialReference:d};case "multipoint":const {points:k, hasZ:U,hasM:V}=a;return{points:t(k)?u(k):k,hasZ:U,hasM:V,spatialReference:d}}}function r(a){return W(a)?a.map(b=>u(b)):a}function u(a){return a.map(b=>Array.from(b))}function W(a){for(const b of a)if(0!==b.length)return t(b);return!1}function t(a){return 0