arcadeAsyncRuntime.js 30.9 KB
// All material copyright ESRI, All Rights Reserved, unless otherwise specified.
// See https://js.arcgis.com/4.6/esri/copyright.txt for details.
//>>built
define("require exports ../geometry/Geometry ../geometry/Polygon ../geometry/Polyline ../geometry/Point ../geometry/Extent ../geometry/Multipoint ../geometry/SpatialReference dojo/promise/all dojo/Deferred dojo/promise/Promise ./languageUtils ./treeAnalysis ./Dictionary ./Feature ./FunctionWrapper ./functions/date ./functions/maths ./functions/geometry ./ImmutablePathArray ./ImmutablePointArray ./kernel ./functions/string ./functions/stats ./functions/geomasync".split(" "),function(R,t,S,fa,ga,ha,
ia,ja,ka,B,l,la,f,m,u,w,E,ma,na,oa,T,pa,g,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;e<a.arguments.length;e++)d.push(h(b,a.arguments[e]));B(d).then(g.callback(function(a){c.resolve(a)},c),g.errback(c));return c.promise}function v(b,a,c){var d=new l;try{return H(b,a).then(g.callback(function(e){d.resolve(c(b,a,e))},d),g.errback(d)),d.promise}catch(e){return n(e)}}
function C(b,a,c){var d=new l;try{return H(b,a).then(g.callback(function(e){e=c(b,a,e);e instanceof la?e.then(g.callback(function(c){d.resolve(c)},d),g.errback(d)):d.resolve(e)},d),g.errback(d)),d.promise}catch(e){return n(e)}}function h(b,a){try{switch(a.type){case "VariableDeclarator":return ta(b,a);case "VariableDeclaration":return V(b,a,0);case "BlockStatement":return ua(b,a);case "FunctionDeclaration":var c=new l;try{var d=a.id.name.toLowerCase();b.globalScope[d]={valueset:!0,node:null,value:new E(a,
b)};c.resolve(f.voidOperation)}catch(q){c.reject(q)}return c.promise;case "ReturnStatement":return va(b,a);case "IfStatement":return wa(b,a);case "ExpressionStatement":return xa(b,a);case "UpdateExpression":return ya(b,a);case "AssignmentExpression":return za(b,a);case "ForStatement":return Aa(b,a);case "ForInStatement":return Ba(b,a);case "BreakStatement":var e=new l;e.resolve(f.breakResult);return e.promise;case "EmptyStatement":var k=new l;k.resolve(f.voidOperation);return k.promise;case "ContinueStatement":var g=
new l;g.resolve(f.continueResult);return g.promise;case "Identifier":return I(b,a);case "MemberExpression":return Ca(b,a);case "Literal":return U(a.value);case "ThisExpression":return n(m.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTED"));case "CallExpression":return Da(b,a);case "UnaryExpression":return Ea(b,a);case "BinaryExpression":return Fa(b,a);case "LogicalExpression":return Ga(b,a);case "ConditionalExpression":return n(m.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTED"));case "ArrayExpression":return Ha(b,
a);case "ObjectExpression":return Ia(b,a);case "Property":return Ja(b,a);case "Array":return n(m.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTED"));default:return n(m.nodeErrorMessage(a,"RUNTIME","UNREOGNISED"))}}catch(q){return n(q)}}function Ia(b,a){try{for(var c=new l,d=[],e=0;e<a.properties.length;e++)d.push(h(b,a.properties[e]));B(d).then(g.callback(function(a){for(var b={},d=0;d<a.length;d++){var e=a[d];if(f.isFunctionParameter(e.value))throw Error("Illegal Argument");if(!1===f.isString(e.key))throw Error("Illegal Argument");
b[e.key.toString()]=e.value===f.voidOperation?null:e.value}a=new u(b);a.immutable=!1;c.resolve(a)},c),g.errback(c));return c.promise}catch(k){return n(k)}}function Ja(b,a){var c=new l;try{h(b,a.value).then(g.callback(function(b){c.resolve({key:"Identifier"===a.key.type?a.key.name:a.key.value,value:b})},c),g.errback(c))}catch(d){c.reject(d)}return c.promise}function W(b,a,c){var d=new l;try{h(b,a.body).then(g.callback(function(e){c.lastAction=e;c.lastAction===f.breakResult?(c.testResult=!1,d.resolve(c)):
c.lastAction instanceof f.ReturnResult?(c.testResult=!1,d.resolve(c)):null!==a.update?h(b,a.update).then(g.callback(function(a){d.resolve(c)},d),g.errback(d)):d.resolve(c)},d),g.errback(d))}catch(e){d.reject(e)}return d.promise}function Ka(b,a,c){var d=new l;try{return null!==a.test?(h(b,a.test).then(g.callback(function(e){!0===b.progressTracker.isCanceled()?d.reject(Error("Cancelled")):(c.testResult=e,!1===c.testResult?d.resolve(c):!0!==c.testResult?d.reject(Error(m.nodeErrorMessage(a,"RUNTIME",
"CANNOT_USE_NONBOOLEAN_IN_CONDITION"))):W(b,a,c).then(g.callback(function(a){d.resolve(a)},d),g.errback(d)))},d),g.errback(d)),d.promise):W(b,a,c)}catch(e){d.reject(e)}return d.promise}function F(b,a,c,d,e,k){try{Ka(b,a,c).then(function(){try{!0===c.testResult?(k++,100<k?(k=0,setTimeout(function(){F(b,a,c,function(a){d(a)},function(a){e(a)},k)})):F(b,a,c,function(a){d(a)},function(a){e(a)},k)):c.lastAction instanceof f.ReturnResult?d(c.lastAction):d(f.voidOperation)}catch(p){e(p)}},function(a){e(a)})}catch(p){e(p)}}
function Aa(b,a){var c=new l;try{null!==a.init?h(b,a.init).then(g.callback(function(){F(b,a,{testResult:!0,lastAction:f.voidOperation},function(a){c.resolve(a)},function(a){c.reject(a)},0)},c),g.errback(c)):F(b,a,{testResult:!0,lastAction:f.voidOperation},function(a){c.resolve(a)},function(a){c.reject(a)},0)}catch(d){c.reject(d)}return c.promise}function J(b,a,c,d,e,k,g,q,y,l){try{d<=k?q(f.voidOperation):(e.value="k"===g?c[k]:k,h(b,a.body).then(function(p){try{p instanceof f.ReturnResult?q(p):p===
f.breakResult?q(f.voidOperation):(l++,100<l?(l=0,setTimeout(function(){J(b,a,c,d,e,k+1,g,function(a){q(a)},function(a){y(a)},l)})):J(b,a,c,d,e,k+1,g,function(a){q(a)},function(a){y(a)},l))}catch(L){y(L)}},function(a){y(a)}))}catch(K){y(K)}}function M(b,a,c,d,e,k,g,q,l){try{c.length()<=e?g(f.voidOperation):(d.value="k"===k?c.get(e):e,h(b,a.body).then(function(p){p instanceof f.ReturnResult?g(p):p===f.breakResult?g(f.voidOperation):(l++,100<l?(l=0,setTimeout(function(){M(b,a,c,d,e+1,k,function(a){g(a)},
function(a){q(a)},l)})):M(b,a,c,d,e+1,k,function(a){g(a)},function(a){q(a)},l))},function(a){q(a)}))}catch(La){q(La)}}function N(b,a,c,d,e,k){try{void 0===k&&(k="i"),0===c.length?d.resolve(f.voidOperation):J(b,a,c,c.length,e,0,k,function(a){d.resolve(a)},function(a){d.reject(a)},0)}catch(p){d.reject(p)}}function Ma(b,a,c,d,e,k){try{void 0===k&&(k="i"),0===c.length?d.resolve(f.voidOperation):M(b,a,c,e,0,k,function(a){d.resolve(a)},function(a){d.reject(a)},0)}catch(p){d.reject(p)}}function Na(b,a,c,
d,e){try{var f=c.keys();N(b,a,f,d,e,"k")}catch(p){d.reject(p)}}function O(b,a,c,d,e,k,g,q){try{b.next().then(function(p){try{if(null===p)k(f.voidOperation);else{var l=new w(p.attributes,p.geometry,d);l._underlyingGraphic=p;e.value=l;h(a,c.body).then(function(p){try{p===f.breakResult?k(f.voidOperation):p instanceof f.ReturnResult?k(p):(q++,100<q?(q=0,setTimeout(function(){O(b,a,c,d,e,function(a){k(a)},function(a){g(a)},q)})):O(b,a,c,d,e,function(a){k(a)},function(a){g(a)},q))}catch(L){g(L)}},function(a){g(a)})}}catch(K){g(K)}},
function(a){g(a)})}catch(y){g(y)}}function Ba(b,a){var c=new l;try{h(b,a.right).then(g.callback(function(d){var e=null;"VariableDeclaration"===a.left.type?e=h(b,a.left):(e=new l,e.resolve(),e=e.promise);e.then(g.callback(function(){var e="VariableDeclaration"===a.left.type?a.left.declarations[0].id.name:a.left.name,g=null;null!==b.localScope&&void 0!==b.localScope[e]&&(g=b.localScope[e]);null===g&&void 0!==b.globalScope[e]&&(g=b.globalScope[e]);null===g?c.reject(Error(m.nodeErrorMessage(a,"RUNTIME",
"VARIABLENOTDECLARED"))):f.isArray(d)||f.isString(d)?N(b,a,d,c,g):f.isImmutableArray(d)?Ma(b,a,d,c,g):d instanceof u||d instanceof w?Na(b,a,d,c,g):f.isFeatureCursor(d)?O(d.iterator(b.progressTracker),b,a,d,g,function(a){c.resolve(a)},function(a){c.reject(a)},0):N(b,a,[],c,g)},c),g.errback(c))},c),g.errback(c))}catch(d){c.reject(d)}return c.promise}function ya(b,a){var c=new l;try{if("MemberExpression"===a.argument.type)h(b,a.argument.object).then(g.callback(function(d){var e=null,e=null;!0===a.argument.computed?
e=h(b,a.argument.property):(e=new l,e.resolve(a.argument.property.name),e=e.promise);e.then(g.callback(function(b){var e;if(f.isArray(d))if(f.isNumber(b)){0>b&&(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 T(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 T(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 pa(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 S?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 S)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<a.elements.length;e++)d.push(h(b,a.elements[e]));B(d).then(g.callback(function(b){for(var d=0;d<b.length;d++){if(f.isFunctionParameter(b[d])){c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","FUNCTIONCONTEXTILLEGAL")));return}b[d]===f.voidOperation&&(b[d]=null)}c.resolve(b)},c),g.errback(c));return c.promise}catch(k){return n(k)}}function Fa(b,a){try{var c=new l;B([h(b,a.left),h(b,a.right)]).then(g.callback(function(b){var d=
b[0];b=b[1];switch(a.operator){case "\x3d\x3d":c.resolve(f.equalityTest(d,b));break;case "\x3d":c.resolve(f.equalityTest(d,b));break;case "!\x3d":c.resolve(!f.equalityTest(d,b));break;case "\x3c":c.resolve(f.greaterThanLessThan(d,b,a.operator));break;case "\x3e":c.resolve(f.greaterThanLessThan(d,b,a.operator));break;case "\x3c\x3d":c.resolve(f.greaterThanLessThan(d,b,a.operator));break;case "\x3e\x3d":c.resolve(f.greaterThanLessThan(d,b,a.operator));break;case "+":f.isString(d)||f.isString(b)?c.resolve(f.toString(d)+
f.toString(b)):c.resolve(f.toNumber(d)+f.toNumber(b));break;case "-":c.resolve(f.toNumber(d)-f.toNumber(b));break;case "*":c.resolve(f.toNumber(d)*f.toNumber(b));break;case "/":c.resolve(f.toNumber(d)/f.toNumber(b));break;case "%":c.resolve(f.toNumber(d)%f.toNumber(b));break;default:c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","OPERATORNOTRECOGNISED")))}},c),g.errback(c));return c.promise}catch(d){return n(d)}}function Ga(b,a){try{var c=new l;if("AssignmentExpression"===a.left.type||"UpdateExpression"===
a.left.type)return c.reject(Error(m.nodeErrorMessage(a.left,"RUNTIME","CANNOT_USE_ASSIGNMENT_IN_CONDITION"))),c.promise;if("AssignmentExpression"===a.right.type||"UpdateExpression"===a.right.type)return c.reject(Error(m.nodeErrorMessage(a.right,"RUNTIME","CANNOT_USE_ASSIGNMENT_IN_CONDITION"))),c.promise;h(b,a.left).then(g.callback(function(d){if(f.isBoolean(d))switch(a.operator){case "||":!0===d?c.resolve(d):h(b,a.right).then(g.callback(function(b){if(f.isBoolean(b))c.resolve(b);else throw Error(m.nodeErrorMessage(a,
"RUNTIME","ONLYORORAND"));},c),g.errback(c));break;case "\x26\x26":!1===d?c.resolve(d):h(b,a.right).then(g.callback(function(b){if(f.isBoolean(b))c.resolve(b);else throw Error(m.nodeErrorMessage(a,"RUNTIME","ONLYORORAND"));},c),g.errback(c));break;default:throw Error(m.nodeErrorMessage(a,"RUNTIME","ONLYORORAND"));}else throw Error(m.nodeErrorMessage(a,"RUNTIME","ONLYBOOLEAN"));},c),g.errback(c));return c.promise}catch(d){return n(d)}}function I(b,a){try{var c=new l,d=a.name.toLowerCase();if(null!==
b.localScope&&void 0!==b.localScope[d]){var e=b.localScope[d];!0===e.valueset?c.resolve(e.value):null!==e.d?e.d.then(g.callback(function(a){c.resolve(a)},c),g.errback(c)):(e.d=h(b,e.node),e.d.then(g.callback(function(a){e.value=a;e.valueset=!0;c.resolve(a)},c),g.errback(c)));return c.promise}if(void 0!==b.globalScope[d]){var f=b.globalScope[d];!0===f.valueset?c.resolve(f.value):null!==f.d?f.d.then(g.callback(function(a){c.resolve(a)},c),g.errback(c)):(f.d=h(b,f.node),f.d.then(g.callback(function(a){f.value=
a;f.valueset=!0;c.resolve(a)},c),g.errback(c)))}else c.reject(Error(m.nodeErrorMessage(a,"RUNTIME","VARIABLENOTFOUND")));return c.promise}catch(p){return n(p)}}function Da(b,a){try{if("Identifier"!==a.callee.type)return n(m.nodeErrorMessage(a,"RUNTIME","ONLYNODESSUPPORTED"));if(null!==b.localScope&&void 0!==b.localScope[a.callee.name.toLowerCase()]){var c=b.localScope[a.callee.name.toLowerCase()];return c.value instanceof f.NativeFunction?c.value.fn(b,a):c.value instanceof E?Z(b,a,c.value.definition):
n(m.nodeErrorMessage(a,"RUNTIME","NOTAFUNCTION"))}return void 0!==b.globalScope[a.callee.name.toLowerCase()]?(c=b.globalScope[a.callee.name.toLowerCase()],c.value instanceof f.NativeFunction?c.value.fn(b,a):c.value instanceof E?Z(b,a,c.value.definition):n(m.nodeErrorMessage(a,"RUNTIME","NOTAFUNCTION"))):n(m.nodeErrorMessage(a,"RUNTIME","NOTFOUND"))}catch(d){return n(d)}}function aa(b){return null===b?"":f.isArray(b)||f.isImmutableArray(b)?"Array":f.isDate(b)?"Date":f.isString(b)?"String":f.isBoolean(b)?
"Boolean":f.isNumber(b)?"Number":b instanceof u?"Dictionary":b instanceof w?"Feature":b instanceof ha?"Point":b instanceof fa?"Polygon":b instanceof ga?"Polyline":b instanceof ja?"Multipoint":b instanceof ia?"Extent":f.isFunctionParameter(b)?"Function":b===f.voidOperation?"":"number"===typeof b&&isNaN(b)?"Number":"Unrecognised Type"}function ba(b,a,c,d){try{var e=new l;h(b,a.arguments[c]).then(g.callback(function(k){f.equalityTest(k,d)?h(b,a.arguments[c+1]).then(g.callback(function(a){e.resolve(a)},
e),g.errback(e)):(k=a.arguments.length-c,1===k?h(b,a.arguments[c]).then(g.callback(function(a){e.resolve(a)},e),g.errback(e)):2===k&&e.resolve(null),3===k?h(b,a.arguments[c+2]).then(g.callback(function(a){e.resolve(a)},e),g.errback(e)):ba(b,a,c+2,d).then(g.callback(function(a){e.resolve(a)},e),g.errback(e)))},e),g.errback(e));return e.promise}catch(k){return n(k)}}function ca(b,a,c,d){try{var e=new l;!0===d?h(b,a.arguments[c+1]).then(g.callback(function(a){e.resolve(a)},e),g.errback(e)):3===a.arguments.length-
c?h(b,a.arguments[c+2]).then(g.callback(function(a){e.resolve(a)},e),g.errback(e)):h(b,a.arguments[c+2]).then(g.callback(function(d){!1===f.isBoolean(d)?e.reject(Error("WHEN needs boolean test conditions")):ca(b,a,c+2,d).then(g.callback(function(a){e.resolve(a)},e),g.errback(e))},e),g.errback(e));return e.promise}catch(k){return n(k)}}function P(b,a){var c=new l;try{var d=b.length,e=Math.floor(d/2);if(0===d)return c.resolve([]),c.promise;if(1===d)return c.resolve([b[0]]),c.promise;var f=[P(b.slice(0,
e),a),P(b.slice(e,d),a)];B(f).then(g.callback(function(b){G(b[0],b[1],a,[]).then(g.callback(function(a){c.resolve(a)},c),g.errback(c))},c),g.errback(c))}catch(p){c.reject(p)}return c.promise}function G(b,a,c,d){var e=new l;try{0<b.length||0<a.length?0<b.length&&0<a.length?c(b[0],a[0]).then(g.callback(function(f){isNaN(f)&&(f=1);0>=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<b.length?(d.push(b[0]),
b=b.slice(1),G(b,a,c,d).then(g.callback(function(a){e.resolve(a)},e),g.errback(e))):0<a.length&&(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.resolve(d)}catch(k){e.reject(k)}return e.promise}function A(b,a){var c=b.length,d=Math.floor(c/2);a||(a=function(a,b){return a<b?-1:a===b?0:1});return 0===c?[]:1===c?[b[0]]:Oa(A(b.slice(0,d),a),A(b.slice(d,c),a),a)}function Oa(b,a,c){for(var d=[];0<b.length||0<a.length;)if(0<b.length&&0<a.length){var e=c(b[0],
a[0]);isNaN(e)&&(e=1);0>=e?(d.push(b[0]),b=b.slice(1)):(d.push(a[0]),a=a.slice(1))}else 0<b.length?(d.push(b[0]),b=b.slice(1)):0<a.length&&(d.push(a[0]),a=a.slice(1));return d}function da(b,a,c){var d=new l;try{var e=b.body;if(c.length!==b.params.length)return n(Error("Invalid Parameter calls to function."));for(var k=0;k<c.length;k++)a.localScope[b.params[k].name.toLowerCase()]={d:null,value:c[k],valueset:!0,node:null};h(a,e).then(g.callback(function(a){a instanceof f.ReturnResult?d.resolve(a.value):
a===f.breakResult?d.reject(Error("Cannot Break from a Function")):a===f.continueResult?d.reject(Error("Cannot Continue from a Function")):a instanceof f.ImplicitResult?d.resolve(a.value):d.resolve(a)},d),g.errback(d))}catch(p){d.reject(p)}return d.promise}function Z(b,a,c){return C(b,a,function(a,e,f){a={spatialReference:b.spatialReference,services:b.services,console:b.console,localScope:{},progressTracker:b.progressTracker,globalScope:b.globalScope,depthCounter:b.depthCounter+1};if(64<a.depthCounter)throw Error("Exceeded maximum function depth");
return da(c,a,f)})}function Q(b){return function(){var a={applicationCache:void 0===b.context.applicationCache?null:b.context.applicationCache,progressTracker:b.context.progressTracker,spatialReference:b.context.spatialReference,console:b.context.console,services:b.context.services,localScope:{},globalScope:b.context.globalScope,depthCounter:b.context.depthCounter+1};if(64<a.depthCounter)throw Error("Exceeded maximum function depth");return da(b.definition,a,arguments)}}function Pa(b,a){var c=new D;
if(void 0===b||null===b)b={};if(void 0===a||null===a)a={};var d=new u({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});d.immutable=!1;c.textformatting={value:d,valueset:!0,node:null};for(var e in a)c[e]={value:new f.NativeFunction(a[e]),native:!0,valueset:!0,node:null};for(e in b)c[e]=b[e]&&"esri.Graphic"===b[e].declaredClass?{value:new w(b[e]),valueset:!0,node:null}:{value:b[e],valueset:!0,node:null};return c}function Qa(b){console.log(b)}Object.defineProperty(t,
"__esModule",{value:!0});var x=0,r={};ma.registerFunctions(r,v);qa.registerFunctions(r,v);na.registerFunctions(r,v);oa.registerFunctions(r,v);ra.registerFunctions(r,v);sa.registerFunctions(r,v,C);r.typeof=function(b,a){return v(b,a,function(a,b,e){f.pcCheck(e,1,1);a=aa(e[0]);if("Unrecognised Type"===a)throw Error("Unrecognised Type");return a})};r.iif=function(b,a){try{var c=new l;f.pcCheck(null===a.arguments?[]:a.arguments,3,3);h(b,a.arguments[0]).then(g.callback(function(d){!1===f.isBoolean(d)?
c.reject(Error("IF Function must have a boolean test condition")):!0===d?h(b,a.arguments[1]).then(g.callback(function(a){c.resolve(a)},c),g.errback(c)):h(b,a.arguments[2]).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.decode=function(b,a){try{var c=new l;if(2>a.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<e.length){if(!1===f.isFunctionParameter(e[1]))return n(Error("Illegal Argument"));var d=Q(e[1]);P(a,d).then(g.callback(function(a){c.resolve(a)},c),g.errback(c))}else{if(0===a.length)return c.resolve([]),
c.promise;e={};for(b=0;b<a.length;b++){var h=aa(a[b]);""!==h&&(e[h]=!0)}if(!0===e.Array||!0===e.Dictionary||!0===e.Feature||!0===e.Point||!0===e.Polygon||!0===e.Polyline||!0===e.Multipoint||!0===e.Extent||!0===e.Function)return c.resolve(a.slice(0)),c.promise;b=0;h="";for(d in e)b++,h=d;1<b||"String"===h?a=A(a,function(a,b){if(null===a||void 0===a||a===f.voidOperation)return null===b||void 0===b||b===f.voidOperation?0:1;if(null===b||void 0===b||b===f.voidOperation)return-1;a=f.toString(a);b=f.toString(b);
return a<b?-1:a===b?0:1}):"Number"===h?a=A(a,function(a,b){return a-b}):"Boolean"===h?a=A(a,function(a,b){return a===b?0:b?-1:1}):"Date"===h&&(a=A(a,function(a,b){return b-a}));c.resolve(a)}return c.promise})};R={failDefferred:n,resolveDeffered:U,fixSpatialReference:f.fixSpatialReference,parseArguments:H,standardFunction:v,standardFunctionAsync:C,evaluateIdentifier:I,arcadeCustomFunction:Q};for(var ea in r)r[ea]={value:new f.NativeFunction(r[ea]),valueset:!0,node:null};var D=function(){};D.prototype=
r;D.prototype.infinity={value:Number.POSITIVE_INFINITY,valueset:!0,node:null};D.prototype.pi={value:Math.PI,valueset:!0,node:null};t.functionHelper=R;t.extend=function(b){for(var a={mode:"async",compiled:!1,functions:{},signatures:[],standardFunction:v,standardFunctionAsync:C,failDefferred:n,evaluateIdentifier:I,arcadeCustomFunctionHandler:Q},c=0;c<b.length;c++)b[c].registerFunctions(a);for(var d in a.functions)r[d]={value:new f.NativeFunction(a.functions[d]),valueset:!0,node:null},D.prototype[d]=
r[d];for(c=0;c<a.signatures.length;c++)m.addFunctionDeclaration(a.signatures[c],"f")};t.executeScript=function(b,a,c){var d=new l;if(null===c||void 0===c)c=new ka({wkid:102100});var e=Pa(a.vars,a.customfunctions);h({spatialReference:c,services:a.services,progressTracker:void 0===a.progressTracker||null===a.progressTracker?d.promise:a.progressTracker,globalScope:e,console:a.console?a.console:Qa,localScope:null,depthCounter:1},b.body[0].body).then(g.callback(function(a){a instanceof f.ReturnResult&&
(a=a.value);a instanceof f.ImplicitResult&&(a=a.value);a===f.voidOperation&&(a=null);a===f.breakResult?d.reject(Error("Cannot return BREAK")):a===f.continueResult?d.reject(Error("Cannot return CONTINUE")):a instanceof f.NativeFunction?d.reject(Error("Cannot return FUNCTION")):a instanceof E?d.reject(Error("Cannot return FUNCTION")):d.resolve(a)},d),g.errback(d));return d.promise};t.extractFieldLiterals=function(b,a){void 0===a&&(a=!1);return m.findFieldLiterals(b,a)};t.validateScript=function(b,a){return m.validateScript(b,
a,"full")};t.referencesMember=function(b,a){return m.referencesMember(b,a)};t.referencesFunction=function(b,a){return m.referencesFunction(b,a)};t.findFunctionCalls=function(b){return m.findFunctionCalls(b,!1)}});