// All material copyright ESRI, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.7/esri/copyright.txt for details. //>>built define("require exports dojo/Deferred dojo/promise/all dojo/promise/Promise ./Dictionary ./Feature ./FunctionWrapper ./ImmutablePathArray ./ImmutablePointArray ./kernel ./languageUtils ./treeAnalysis ./functions/date ./functions/geomasync ./functions/geometry ./functions/maths ./functions/stats ./functions/string ../geometry/Extent ../geometry/Geometry ../geometry/Multipoint ../geometry/Point ../geometry/Polygon ../geometry/Polyline ../geometry/SpatialReference".split(" "),function(R,t,l,B,fa,u,w, E,S,ga,g,f,m,ha,ia,ja,ka,la,ma,na,T,oa,pa,qa,ra,sa){function n(b){var a=new l;b instanceof Error?a.reject(b):a.reject(Error(b));return a.promise}function U(b){var a=new l;a.resolve(b);return a.promise}function H(b,a){for(var c=new l,d=[],e=0;eb&&(b=d.length+b);if(0>b||b>=d.length)throw Error("Assignment outside of array bounds");e=f.toNumber(d[b]);d[b]="++"===a.operator?e+1:e-1}else throw Error("Invalid Parameter");else if(d instanceof u){if(!1===f.isString(b))throw Error("Dictionary accessor must be a string");if(!0===d.hasField(b))e=f.toNumber(d.field(b)),d.setField(b,"++"===a.operator? e+1:e-1);else throw Error("Invalid Parameter");}else if(d instanceof w){if(!1===f.isString(b))throw Error("Feature accessor must be a string");if(!0===d.hasField(b))e=f.toNumber(d.field(b)),d.setField(b,"++"===a.operator?e+1:e-1);else throw Error("Invalid Parameter");}else{if(f.isImmutableArray(d))throw Error("Array is Immutable");throw Error("Invalid Parameter");}!1===a.prefix?c.resolve(e):c.resolve("++"===a.operator?e+1:e-1)},c),g.errback(c))},c),g.errback(c));else{var d=a.argument.name.toLowerCase(), e=void 0;if(null!==b.localScope&&void 0!==b.localScope[d])return e=f.toNumber(b.localScope[d].value),b.localScope[d]={value:"++"===a.operator?e+1:e-1,valueset:!0,node:a},!1===a.prefix?c.resolve(e):c.resolve("++"===a.operator?e+1:e-1),c.promise;void 0!==b.globalScope[d]&&(e=f.toNumber(b.globalScope[d].value),b.globalScope[d]={value:"++"===a.operator?e+1:e-1,valueset:!0,node:a},!1===a.prefix?c.resolve(e):c.resolve("++"===a.operator?e+1:e-1));throw Error("Variable not recognised");}}catch(k){c.reject(k)}return c.promise} function z(b,a,c,d){switch(a){case "\x3d":return b===f.voidOperation?null:b;case "/\x3d":return f.toNumber(c)/f.toNumber(b);case "*\x3d":return f.toNumber(c)*f.toNumber(b);case "-\x3d":return f.toNumber(c)-f.toNumber(b);case "+\x3d":return f.isString(c)||f.isString(b)?f.toString(c)+f.toString(b):f.toNumber(c)+f.toNumber(b);case "%\x3d":return f.toNumber(c)%f.toNumber(b);default:throw Error(m.nodeErrorMessage(d,"RUNTIME","OPERATORNOTRECOGNISED"));}}function za(b,a){var c=new l;try{if("MemberExpression"=== a.left.type)h(b,a.right).then(g.callback(function(d){h(b,a.left.object).then(g.callback(function(e){var k=null,k=null;!0===a.left.computed?k=h(b,a.left.property):(k=new l,k.resolve(a.left.property.name),k=k.promise);k.then(g.callback(function(b){if(f.isArray(e))if(f.isNumber(b)){0>b&&(b=e.length+b);if(0>b||b>e.length)throw Error("Assignment outside of array bounds");if(b===e.length&&"\x3d"!==a.operator)throw Error("Invalid Parameter");e[b]=z(d,a.operator,e[b],a)}else throw Error("Invalid Parameter"); else if(e instanceof u){if(!1===f.isString(b))throw Error("Dictionary accessor must be a string");if(!0===e.hasField(b))e.setField(b,z(d,a.operator,e.field(b),a));else{if("\x3d"!==a.operator)throw Error("Invalid Parameter");e.setField(b,z(d,a.operator,null,a))}}else if(e instanceof w){if(!1===f.isString(b))throw Error("Feature accessor must be a string");if(!0===e.hasField(b))e.setField(b,z(d,a.operator,e.field(b),a));else{if("\x3d"!==a.operator)throw Error("Invalid Parameter");e.setField(b,z(d,a.operator, null,a))}}else{if(f.isImmutableArray(e))throw Error("Array is Immutable");throw Error("Invalid Parameter");}c.resolve(f.voidOperation)},c),g.errback(c))},c),g.errback(c))},c),g.errback(c));else{var d=a.left.name.toLowerCase();if(null!==b.localScope&&void 0!==b.localScope[d])return h(b,a.right).then(g.callback(function(e){b.localScope[d]={value:z(e,a.operator,b.localScope[d].value,a),valueset:!0,node:a.right};c.resolve(f.voidOperation)},c),g.errback(c)),c.promise;if(void 0!==b.globalScope[d])return h(b, a.right).then(g.callback(function(e){b.globalScope[d]={value:z(e,a.operator,b.globalScope[d].value,a),valueset:!0,node:a.right};c.resolve(f.voidOperation)},c),g.errback(c)),c.promise;c.reject(Error("Cannot assign undeclared variable"))}}catch(e){c.reject(e)}return c.promise}function xa(b,a){var c=new l;try{"AssignmentExpression"===a.expression.type?h(b,a.expression).then(g.callback(function(a){c.resolve(a)},c),g.errback(c)):h(b,a.expression).then(g.callback(function(a){a===f.voidOperation?c.resolve(f.voidOperation): c.resolve(new f.ImplicitResult(a))},c),g.errback(c))}catch(d){c.reject(d)}return c.promise}function wa(b,a){var c=new l;try{if("AssignmentExpression"===a.test.type||"UpdateExpression"===a.test.type)return c.reject(Error(m.nodeErrorMessage(a.test,"RUNTIME","CANNOT_USE_ASSIGNMENT_IN_CONDITION"))),c.promise;h(b,a.test).then(g.callback(function(d){!0===d?h(b,a.consequent).then(g.callback(function(a){c.resolve(a)},c),g.errback(c)):!1===d?null!==a.alternate?h(b,a.alternate).then(g.callback(function(a){c.resolve(a)}, c),g.errback(c)):c.resolve(f.voidOperation):c.reject(Error(m.nodeErrorMessage(a.test,"RUNTIME","CANNOT_USE_NONBOOLEAN_IN_CONDITION")))},c),g.errback(c))}catch(d){c.reject(d)}return c.promise}function ua(b,a){var c=new l;try{X(b,a,0).then(g.callback(function(a){c.resolve(a)},c),g.errback(c))}catch(d){c.reject(d)}return c.promise}function X(b,a,c){var d=new l;try{c>=a.body.length?d.resolve(f.voidOperation):h(b,a.body[c]).then(g.callback(function(e){e instanceof f.ReturnResult||e===f.breakResult||e=== f.continueResult?d.resolve(e):c===a.body.length-1?d.resolve(e):X(b,a,c+1).then(g.callback(function(a){d.resolve(a)},d),g.errback(d))},d),g.errback(d))}catch(e){d.reject(e)}return d.promise}function va(b,a){var c=new l;try{null===a.argument?c.resolve(new f.ReturnResult(f.voidOperation)):h(b,a.argument).then(g.callback(function(a){c.resolve(new f.ReturnResult(a))},c),g.errback(c))}catch(d){c.reject(d)}return c.promise}function V(b,a,c){var d=new l;try{if(c>=a.declarations.length)return d.resolve(f.voidOperation), d.promise;h(b,a.declarations[c]).then(g.callback(function(e){c===a.declarations.length-1?d.resolve(f.voidOperation):V(b,a,c+1).then(g.callback(function(a){d.resolve(f.voidOperation)},d),g.errback(d))},d),g.errback(d))}catch(e){d.reject(e)}return d.promise}function ta(b,a){var c=new l;try{var d=null;null===a.init?(d=new l,d.resolve(null),d=d.promise):d=h(b,a.init);null!==b.localScope?d.then(g.callback(function(d){d===f.voidOperation&&(d=null);var e=a.id.name.toLowerCase();b.localScope[e]={value:d, valueset:!0,node:a.init};c.resolve(f.voidOperation)},c),g.errback(c)):d.then(g.callback(function(d){var e=a.id.name.toLowerCase();d===f.voidOperation&&(d=null);b.globalScope[e]={value:d,valueset:!0,node:a.init};c.resolve(f.voidOperation)},c),g.errback(c))}catch(e){c.reject(e)}return c.promise}function Y(b,a,c,d){a=a.toLowerCase();switch(a){case "hasz":return b=b.hasZ,void 0===b?!1:b;case "hasm":return b=b.hasM,void 0===b?!1:b;case "spatialreference":return a=b.spatialReference._arcadeCacheId,void 0=== a&&(c=!0,Object.freeze&&Object.isFrozen(b.spatialReference)&&(c=!1),c&&(x++,a=b.spatialReference._arcadeCacheId=x)),b=new u({wkt:b.spatialReference.wkt,wkid:b.spatialReference.wkid}),void 0!==a&&(b._arcadeCacheId="SPREF"+a.toString()),b}switch(b.type){case "extent":switch(a){case "xmin":case "xmax":case "ymin":case "ymax":case "zmin":case "zmax":case "mmin":case "mmax":return b=b[a],void 0!==b?b:null;case "type":return"Extent"}break;case "polygon":switch(a){case "rings":return a=f.isVersion4?b.cache._arcadeCacheId: b.getCacheValue("_arcadeCacheId"),void 0===a&&(x++,a=x,f.isVersion4?b.cache._arcadeCacheId=a:b.setCacheValue("_arcadeCacheId",a)),b=new S(b.rings,b.spatialReference,!0===b.hasZ,!0===b.hasM,a);case "type":return"Polygon"}break;case "point":switch(a){case "x":case "y":case "z":case "m":return void 0!==b[a]?b[a]:null;case "type":return"Point"}break;case "polyline":switch(a){case "paths":return a=f.isVersion4?b.cache._arcadeCacheId:b.getCacheValue("_arcadeCacheId"),void 0===a&&(x++,a=x,f.isVersion4?b.cache._arcadeCacheId= a:b.setCacheValue("_arcadeCacheId",a)),b=new S(b.paths,b.spatialReference,!0===b.hasZ,!0===b.hasM,a);case "type":return"Polyline"}break;case "multipoint":switch(a){case "points":return a=f.isVersion4?b.cache._arcadeCacheId:b.getCacheValue("_arcadeCacheId"),void 0===a&&(x++,a=x,f.isVersion4?b.cache._arcadeCacheId=a:b.setCacheValue("_arcadeCacheId",a)),b=new ga(b.points,b.spatialReference,!0===b.hasZ,!0===b.hasM,a,1);case "type":return"Multipoint"}}throw Error(m.nodeErrorMessage(d,"RUNTIME","PROPERTYNOTFOUND")); }function Ca(b,a){try{var c=new l;h(b,a.object).then(g.callback(function(d){null===d?c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","NOTFOUND"))):!1===a.computed?d instanceof u||d instanceof w?c.resolve(d.field(a.property.name)):d instanceof T?c.resolve(Y(d,a.property.name,b,a)):c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","INVALIDTYPE"))):h(b,a.property).then(g.callback(function(e){if(d instanceof u||d instanceof w)f.isString(e)?c.resolve(d.field(e)):c.reject(Error(m.nodeErrorMessage(a,"RUNTIME", "INVALIDTYPE")));else if(d instanceof T)f.isString(e)?c.resolve(Y(d,e,b,a)):c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","INVALIDTYPE")));else if(f.isArray(d))if(f.isNumber(e)&&isFinite(e)&&Math.floor(e)===e){0>e&&(e=d.length+e);if(e>=d.length||0>e)throw Error(m.nodeErrorMessage(a,"RUNTIME","OUTOFBOUNDS"));c.resolve(d[e])}else c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","INVALIDTYPE")));else if(f.isImmutableArray(d))if(f.isNumber(e)&&isFinite(e)&&Math.floor(e)===e){0>e&&(e=d.length()+e);if(e>= d.length()||0>e)throw Error(m.nodeErrorMessage(a,"RUNTIME","OUTOFBOUNDS"));c.resolve(d.get(e))}else c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","INVALIDTYPE")));else if(f.isString(d))if(f.isNumber(e)&&isFinite(e)&&Math.floor(e)===e){0>e&&(e=d.length+e);if(e>=d.length||0>e)throw Error(m.nodeErrorMessage(a,"RUNTIME","OUTOFBOUNDS"));c.resolve(d[e])}else c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","INVALIDTYPE")));else c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","INVALIDTYPE")))},c),g.errback(c))}, c),g.errback(c));return c.promise}catch(d){return n(d)}}function Ea(b,a){try{var c=new l;h(b,a.argument).then(g.callback(function(b){f.isBoolean(b)?"!"===a.operator?c.resolve(!b):"-"===a.operator?c.resolve(-1*f.toNumber(b)):"+"===a.operator?c.resolve(1*f.toNumber(b)):c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTEDUNARYOPERATOR"))):"-"===a.operator?c.resolve(-1*f.toNumber(b)):"+"===a.operator?c.resolve(1*f.toNumber(b)):c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTEDUNARYOPERATOR")))}, c),g.errback(c));return c.promise}catch(d){return n(d)}}function Ha(b,a){try{for(var c=new l,d=[],e=0;e=f?(d.push(b[0]),b=b.slice(1)):(d.push(a[0]),a=a.slice(1));G(b,a,c,d).then(g.callback(function(a){e.resolve(a)},e),g.errback(e))},e),g.errback(e)):0=e?(d.push(b[0]),b=b.slice(1)):(d.push(a[0]),a=a.slice(1))}else 0a.arguments.length)return n("Missing Parameters");if(2===a.arguments.length)h(b,a.arguments[1]).then(g.callback(function(a){c.resolve(a)},c),g.errback(c)); else{if(0===(a.arguments.length-1)%2)return n("Must have a default value result.");h(b,a.arguments[0]).then(g.callback(function(d){ba(b,a,1,d).then(g.callback(function(a){c.resolve(a)},c),g.errback(c))},c),g.errback(c))}return c.promise}catch(d){return n(d)}};r.when=function(b,a){try{var c=new l;if(3>a.arguments.length)return n("Missing Parameters");if(0===a.arguments.length%2)return n("Must have a default value result.");h(b,a.arguments[0]).then(g.callback(function(d){!1===f.isBoolean(d)?c.reject(Error("WHEN needs boolean test conditions")): ca(b,a,0,d).then(g.callback(function(a){c.resolve(a)},c),g.errback(c))},c),g.errback(c));return c.promise}catch(d){return n(d)}};r.sort=function(b,a){return C(b,a,function(a,b,e){var c=new l;f.pcCheck(e,1,2);a=e[0];f.isImmutableArray(a)&&(a=a.toArray());if(!1===f.isArray(a))return n(Error("Illegal Argument"));if(1