// 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 ./Dictionary ./Feature ./FunctionWrapper ./ImmutablePathArray ./ImmutablePointArray ./languageUtils ./treeAnalysis ./functions/date ./functions/geometry ./functions/geomsync ./functions/maths ./functions/stats ./functions/string ../geometry/Extent ../geometry/Geometry ../geometry/Multipoint ../geometry/Point ../geometry/Polygon ../geometry/Polyline ../geometry/SpatialReference".split(" "),function(na,t,x,A,E,C,S,c,k,T,U,V,W,X,Y,Z,H,aa,ba,ca,da,ea){function I(b,a){for(var e= [],c=0;ch&&(h=d.length+h);if(0>h||h>d.length)throw Error("Assignment outside of array bounds");if(h===d.length&& "\x3d"!==a.operator)throw Error("Invalid Parameter");d[h]=B(q,a.operator,d[h],a)}else throw Error("Invalid Parameter");else if(d instanceof x){if(!1===c.isString(h))throw Error("Dictionary accessor must be a string");if(!0===d.hasField(h))d.setField(h,B(q,a.operator,d.field(h),a));else{if("\x3d"!==a.operator)throw Error("Invalid Parameter");d.setField(h,B(q,a.operator,null,a))}}else if(d instanceof A){if(!1===c.isString(h))throw Error("Feature accessor must be a string");if(!0===d.hasField(h))d.setField(h, B(q,a.operator,d.field(h),a));else{if("\x3d"!==a.operator)throw Error("Invalid Parameter");d.setField(h,B(q,a.operator,null,a))}}else{if(c.isImmutableArray(d))throw Error("Array is Immutable");throw Error("Invalid Parameter");}z=c.voidOperation}else if(d=a.left.name.toLowerCase(),null!==b.localScope&&void 0!==b.localScope[d])b.localScope[d]={value:B(q,a.operator,b.localScope[d].value,a),valueset:!0,node:a.right},z=c.voidOperation;else if(void 0!==b.globalScope[d])b.globalScope[d]={value:B(q,a.operator, b.globalScope[d].value,a),valueset:!0,node:a.right},z=c.voidOperation;else throw Error("Variable not recognised");return z;case "UpdateExpression":var r;var n,d=null,h="";if("MemberExpression"===a.argument.type){d=g(b,a.argument.object);h=!0===a.argument.computed?g(b,a.argument.property):a.argument.property.name;if(c.isArray(d))if(c.isNumber(h)){0>h&&(h=d.length+h);if(0>h||h>=d.length)throw Error("Assignment outside of array bounds");n=c.toNumber(d[h]);d[h]="++"===a.operator?n+1:n-1}else throw Error("Invalid Parameter"); else if(d instanceof x){if(!1===c.isString(h))throw Error("Dictionary accessor must be a string");if(!0===d.hasField(h))n=c.toNumber(d.field(h)),d.setField(h,"++"===a.operator?n+1:n-1);else throw Error("Invalid Parameter");}else if(d instanceof A){if(!1===c.isString(h))throw Error("Feature accessor must be a string");if(!0===d.hasField(h))n=c.toNumber(d.field(h)),d.setField(h,"++"===a.operator?n+1:n-1);else throw Error("Invalid Parameter");}else{if(c.isImmutableArray(d))throw Error("Array is Immutable"); throw Error("Invalid Parameter");}r=!1===a.prefix?n:"++"===a.operator?n+1:n-1}else if(d=a.argument.name.toLowerCase(),null!==b.localScope&&void 0!==b.localScope[d])n=c.toNumber(b.localScope[d].value),b.localScope[d]={value:"++"===a.operator?n+1:n-1,valueset:!0,node:a},r=!1===a.prefix?n:"++"===a.operator?n+1:n-1;else if(void 0!==b.globalScope[d])n=c.toNumber(b.globalScope[d].value),b.globalScope[d]={value:"++"===a.operator?n+1:n-1,valueset:!0,node:a},r=!1===a.prefix?n:"++"===a.operator?n+1:n-1;else throw Error("Variable not recognised"); return r;case "BreakStatement":return c.breakResult;case "ContinueStatement":return c.continueResult;case "ForStatement":null!==a.init&&g(b,a.init);h={testResult:!0,lastAction:c.voidOperation};do b:{z=b;q=a;r=h;if(null!==q.test){r.testResult=g(z,q.test);if(!1===r.testResult)break b;if(!0!==r.testResult)throw Error(k.nodeErrorMessage(q,"RUNTIME","CANNOT_USE_NONBOOLEAN_IN_CONDITION"));}r.lastAction=g(z,q.body);r.lastAction===c.breakResult?r.testResult=!1:r.lastAction instanceof c.ReturnResult?r.testResult= !1:null!==q.update&&g(z,q.update)}while(!0===h.testResult);d=h.lastAction instanceof c.ReturnResult?h.lastAction:c.voidOperation;return d;case "ForInStatement":return ga(b,a);case "Identifier":return J(b,a);case "MemberExpression":return ha(b,a);case "Literal":return a.value;case "ThisExpression":throw Error(k.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTED"));case "CallExpression":return ia(b,a);case "UnaryExpression":return ja(b,a);case "BinaryExpression":return ka(b,a);case "LogicalExpression":return la(b, a);case "ConditionalExpression":throw Error(k.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTED"));case "ArrayExpression":try{for(d=[],h=0;h f&&(f=e.length+f);if(f>=e.length||0>f)throw Error(k.nodeErrorMessage(a,"RUNTIME","OUTOFBOUNDS"));return e[f]}}else if(c.isString(e)){if(c.isNumber(f)&&isFinite(f)&&Math.floor(f)===f){0>f&&(f=e.length+f);if(f>=e.length||0>f)throw Error(k.nodeErrorMessage(a,"RUNTIME","OUTOFBOUNDS"));return e[f]}}else if(c.isImmutableArray(e)&&c.isNumber(f)&&isFinite(f)&&Math.floor(f)===f){0>f&&(f=e.length()+f);if(f>=e.length()||0>f)throw Error(k.nodeErrorMessage(a,"RUNTIME","OUTOFBOUNDS"));return e.get(f)}throw Error(k.nodeErrorMessage(a, "RUNTIME","INVALIDTYPE"));}catch(d){throw d;}}function ja(b,a){try{var e=g(b,a.argument);if(c.isBoolean(e)){if("!"===a.operator)return!e;if("-"===a.operator)return-1*c.toNumber(e);if("+"===a.operator)return 1*c.toNumber(e);throw Error(k.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTEDUNARYOPERATOR"));}if("-"===a.operator)return-1*c.toNumber(e);if("+"===a.operator)return 1*c.toNumber(e);throw Error(k.nodeErrorMessage(a,"RUNTIME","NOTSUPPORTEDUNARYOPERATOR"));}catch(f){throw f;}}function ka(b,a){try{var e= [g(b,a.left),g(b,a.right)],f=e[0],d=e[1];switch(a.operator){case "\x3d\x3d":return c.equalityTest(f,d);case "\x3d":return c.equalityTest(f,d);case "!\x3d":return!c.equalityTest(f,d);case "\x3c":return c.greaterThanLessThan(f,d,a.operator);case "\x3e":return c.greaterThanLessThan(f,d,a.operator);case "\x3c\x3d":return c.greaterThanLessThan(f,d,a.operator);case "\x3e\x3d":return c.greaterThanLessThan(f,d,a.operator);case "+":return c.isString(f)||c.isString(d)?c.toString(f)+c.toString(d):c.toNumber(f)+ c.toNumber(d);case "-":return c.toNumber(f)-c.toNumber(d);case "*":return c.toNumber(f)*c.toNumber(d);case "/":return c.toNumber(f)/c.toNumber(d);case "%":return c.toNumber(f)%c.toNumber(d);default:throw Error(k.nodeErrorMessage(a,"RUNTIME","OPERATORNOTRECOGNISED"));}}catch(l){throw l;}}function la(b,a){try{if("AssignmentExpression"===a.left.type||"UpdateExpression"===a.left.type)throw Error(k.nodeErrorMessage(a.left,"RUNTIME","CANNOT_USE_ASSIGNMENT_IN_CONDITION"));if("AssignmentExpression"===a.right.type|| "UpdateExpression"===a.right.type)throw Error(k.nodeErrorMessage(a.right,"RUNTIME","CANNOT_USE_ASSIGNMENT_IN_CONDITION"));var e=g(b,a.left);if(c.isBoolean(e))switch(a.operator){case "||":if(!0===e)return e;var f=g(b,a.right);if(c.isBoolean(f))return f;throw Error(k.nodeErrorMessage(a,"RUNTIME","ONLYORORAND"));case "\x26\x26":if(!1===e)return e;f=g(b,a.right);if(c.isBoolean(f))return f;throw Error(k.nodeErrorMessage(a,"RUNTIME","ONLYORORAND"));default:throw Error(k.nodeErrorMessage(a,"RUNTIME","ONLYORORAND")); }else throw Error(k.nodeErrorMessage(a,"RUNTIME","ONLYBOOLEAN"));}catch(d){throw d;}}function J(b,a){var e;try{var c=a.name.toLowerCase();if(null!==b.localScope&&void 0!==b.localScope[c])return e=b.localScope[c],!0!==e.valueset&&(e.value=g(b,e.node),e.valueset=!0),e.value;if(void 0!==b.globalScope[c])return e=b.globalScope[c],!0!==e.valueset&&(e.value=g(b,e.node),e.valueset=!0),e.value;throw Error(k.nodeErrorMessage(a,"RUNTIME","VARIABLENOTFOUND"));}catch(d){throw d;}}function ia(b,a){try{if("Identifier"!== a.callee.type)throw Error(k.nodeErrorMessage(a,"RUNTIME","ONLYNODESSUPPORTED"));if(null!==b.localScope&&void 0!==b.localScope[a.callee.name.toLowerCase()]){var e=b.localScope[a.callee.name.toLowerCase()];if(e.value instanceof c.NativeFunction)return e.value.fn(b,a);if(e.value instanceof E)return L(b,a,e.value.definition);throw Error(k.nodeErrorMessage(a,"RUNTIME","NOTAFUNCTION"));}if(void 0!==b.globalScope[a.callee.name.toLowerCase()]){e=b.globalScope[a.callee.name.toLowerCase()];if(e.value instanceof c.NativeFunction)return e.value.fn(b,a);if(e.value instanceof E)return L(b,a,e.value.definition);throw Error(k.nodeErrorMessage(a,"RUNTIME","NOTAFUNCTION"));}throw Error(k.nodeErrorMessage(a,"RUNTIME","NOTFOUND"));}catch(f){throw f;}}function M(b){return null==b?"":c.isArray(b)||c.isImmutableArray(b)?"Array":c.isDate(b)?"Date":c.isString(b)?"String":c.isBoolean(b)?"Boolean":c.isNumber(b)?"Number":b instanceof x?"Dictionary":b instanceof A?"Feature":b instanceof ba?"Point":b instanceof ca?"Polygon": b instanceof da?"Polyline":b instanceof aa?"Multipoint":b instanceof Z?"Extent":c.isFunctionParameter(b)?"Function":b===c.voidOperation?"":"number"===typeof b&&isNaN(b)?"Number":"Unrecognised Type"}function N(b,a,e,f){try{var d=g(b,a.arguments[e]);if(c.equalityTest(d,f))return g(b,a.arguments[e+1]);var l=a.arguments.length-e;return 1===l?g(b,a.arguments[e]):2===l?null:3===l?g(b,a.arguments[e+2]):N(b,a,e+2,f)}catch(v){throw v;}}function O(b,a,e,f){try{if(!0===f)return g(b,a.arguments[e+1]);if(3=== a.arguments.length-e)return g(b,a.arguments[e+2]);var d=g(b,a.arguments[e+2]);if(!1===c.isBoolean(d))throw Error("WHEN needs boolean test conditions");return O(b,a,e+2,d)}catch(l){throw l;}}function w(b,a){var c=b.length,f=Math.floor(c/2);if(0===c)return[];if(1===c)return[b[0]];var d=w(b.slice(0,f),a);b=w(b.slice(f,c),a);for(c=[];0=f?(c.push(d[0]),d=d.slice(1)):(c.push(b[0]),b=b.slice(1))):0a.arguments.length)throw Error("Missing Parameters");if(2===a.arguments.length)return g(b,a.arguments[1]);if(0=== (a.arguments.length-1)%2)throw Error("Must have a default value result.");var c=g(b,a.arguments[0]);return N(b,a,1,c)}catch(f){throw f;}};p.when=function(b,a){try{if(3>a.arguments.length)throw Error("Missing Parameters");if(0===a.arguments.length%2)throw Error("Must have a default value result.");var e=g(b,a.arguments[0]);if(!1===c.isBoolean(e))throw Error("WHEN needs boolean test conditions");return O(b,a,0,e)}catch(f){throw f;}};p.top=function(b,a){return m(b,a,function(a,b,d){c.pcCheck(d,2,2); if(c.isArray(d[0]))return c.toNumber(d[1])>=d[0].length?d[0].slice(0):d[0].slice(0,c.toNumber(d[1]));if(c.isImmutableArray(d[0]))return c.toNumber(d[1])>=d[0].length()?d[0].slice(0):d[0].slice(0,c.toNumber(d[1]));throw Error("Top cannot accept this parameter type");})};p.first=function(b,a){return m(b,a,function(a,b,d){c.pcCheck(d,1,1);return c.isArray(d[0])?0===d[0].length?null:d[0][0]:c.isImmutableArray(d[0])?0===d[0].length()?null:d[0].get(0):null})};p.sort=function(b,a){return m(b,a,function(a, b,d){c.pcCheck(d,1,2);a=d[0];c.isImmutableArray(a)&&(a=a.toArray());if(!1===c.isArray(a))throw Error("Illegal Argument");if(1