{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/arcade.js"],"names":["module","exports","hljs","IDENT_RE","KEYWORDS","keyword","literal","built_in","NUMBER","className","variants","begin","C_NUMBER_RE","relevance","SUBST","end","keywords","contains","TEMPLATE_STRING","BACKSLASH_ESCAPE","APOS_STRING_MODE","QUOTE_STRING_MODE","REGEXP_MODE","PARAMS_CONTAINS","concat","C_BLOCK_COMMENT_MODE","C_LINE_COMMENT_MODE","name","aliases","returnBegin","RE_STARTERS_RE","excludeBegin","excludeEnd","beginKeywords","inherit","TITLE_MODE","illegal"],"mappings":"6EAkHAA,EAAOC,QAzGP,SAAgBC,GACd,IAAIC,EAAW,yBACXC,EAAW,CACbC,QAAS,0DACTC,QAAS,sHACTC,SAAU,wiCAMRC,EAAS,CACXC,UAAW,SACXC,SAAU,CAAC,CACTC,MAAO,mBACN,CACDA,MAAO,oBACN,CACDA,MAAOT,EAAKU,cAEdC,UAAW,GAETC,EAAQ,CACVL,UAAW,QACXE,MAAO,SACPI,IAAK,MACLC,SAAUZ,EACVa,SAAU,IAGRC,EAAkB,CACpBT,UAAW,SACXE,MAAO,IACPI,IAAK,IACLE,SAAU,CAACf,EAAKiB,iBAAkBL,IAEpCA,EAAMG,SAAW,CAACf,EAAKkB,iBAAkBlB,EAAKmB,kBAAmBH,EAAiBV,EAAQN,EAAKoB,aAC/F,IAAIC,EAAkBT,EAAMG,SAASO,OAAO,CAACtB,EAAKuB,qBAAsBvB,EAAKwB,sBAC7E,MAAO,CACLC,KAAM,gBACNC,QAAS,CAAC,UACVZ,SAAUZ,EACVa,SAAU,CAACf,EAAKkB,iBAAkBlB,EAAKmB,kBAAmBH,EAAiBhB,EAAKwB,oBAAqBxB,EAAKuB,qBAnC/F,CACXhB,UAAW,SACXE,MAAO,4GAiCiIH,EAAQ,CAE9IG,MAAO,UACPE,UAAW,EACXI,SAAU,CAAC,CACTN,MAAOR,EAAW,QAClB0B,aAAa,EACbhB,UAAW,EACXI,SAAU,CAAC,CACTR,UAAW,OACXE,MAAOR,EACPU,UAAW,OAGd,CAEDF,MAAO,IAAMT,EAAK4B,eAAiB,uBACnCd,SAAU,SACVC,SAAU,CAACf,EAAKwB,oBAAqBxB,EAAKuB,qBAAsBvB,EAAKoB,YAAa,CAChFb,UAAW,WACXE,MAAO,cAAgBR,EAAW,UAClC0B,aAAa,EACbd,IAAK,SACLE,SAAU,CAAC,CACTR,UAAW,SACXC,SAAU,CAAC,CACTC,MAAOR,GACN,CACDQ,MAAO,WACN,CACDA,MAAO,KACPI,IAAK,KACLgB,cAAc,EACdC,YAAY,EACZhB,SAAUZ,EACVa,SAAUM,QAIhBV,UAAW,GACV,CACDJ,UAAW,WACXwB,cAAe,WACflB,IAAK,KACLiB,YAAY,EACZf,SAAU,CAACf,EAAKgC,QAAQhC,EAAKiC,WAAY,CACvCxB,MAAOR,IACL,CACFM,UAAW,SACXE,MAAO,KACPI,IAAK,KACLgB,cAAc,EACdC,YAAY,EACZf,SAAUM,IAEZa,QAAS,QACR,CACDzB,MAAO,WAETyB,QAAS","file":"react-syntax-highlighter_languages_highlight_arcade-8a33ba75f68afcc619e0.js","sourcesContent":["/*\n Language: ArcGIS Arcade\n Category: scripting\n Author: John Foster <jfoster@esri.com>\n Website: https://developers.arcgis.com/arcade/\n Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python\n*/\n\n/** @type LanguageFn */\nfunction arcade(hljs) {\n  var IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';\n  var KEYWORDS = {\n    keyword: 'if for while var new function do return void else break',\n    literal: 'BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined',\n    built_in: 'Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic ' + 'Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd ' + 'DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct ' + 'DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem ' + 'FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf ' + 'Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month ' + 'MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon ' + 'Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum ' + 'SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime ' + 'TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance ' + 'Weekday When Within Year '\n  };\n  var SYMBOL = {\n    className: 'symbol',\n    begin: '\\\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+'\n  };\n  var NUMBER = {\n    className: 'number',\n    variants: [{\n      begin: '\\\\b(0[bB][01]+)'\n    }, {\n      begin: '\\\\b(0[oO][0-7]+)'\n    }, {\n      begin: hljs.C_NUMBER_RE\n    }],\n    relevance: 0\n  };\n  var SUBST = {\n    className: 'subst',\n    begin: '\\\\$\\\\{',\n    end: '\\\\}',\n    keywords: KEYWORDS,\n    contains: [] // defined later\n\n  };\n  var TEMPLATE_STRING = {\n    className: 'string',\n    begin: '`',\n    end: '`',\n    contains: [hljs.BACKSLASH_ESCAPE, SUBST]\n  };\n  SUBST.contains = [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, TEMPLATE_STRING, NUMBER, hljs.REGEXP_MODE];\n  var PARAMS_CONTAINS = SUBST.contains.concat([hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE]);\n  return {\n    name: 'ArcGIS Arcade',\n    aliases: ['arcade'],\n    keywords: KEYWORDS,\n    contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, TEMPLATE_STRING, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, SYMBOL, NUMBER, {\n      // object attr container\n      begin: /[{,]\\s*/,\n      relevance: 0,\n      contains: [{\n        begin: IDENT_RE + '\\\\s*:',\n        returnBegin: true,\n        relevance: 0,\n        contains: [{\n          className: 'attr',\n          begin: IDENT_RE,\n          relevance: 0\n        }]\n      }]\n    }, {\n      // \"value\" container\n      begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(return)\\\\b)\\\\s*',\n      keywords: 'return',\n      contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.REGEXP_MODE, {\n        className: 'function',\n        begin: '(\\\\(.*?\\\\)|' + IDENT_RE + ')\\\\s*=>',\n        returnBegin: true,\n        end: '\\\\s*=>',\n        contains: [{\n          className: 'params',\n          variants: [{\n            begin: IDENT_RE\n          }, {\n            begin: /\\(\\s*\\)/\n          }, {\n            begin: /\\(/,\n            end: /\\)/,\n            excludeBegin: true,\n            excludeEnd: true,\n            keywords: KEYWORDS,\n            contains: PARAMS_CONTAINS\n          }]\n        }]\n      }],\n      relevance: 0\n    }, {\n      className: 'function',\n      beginKeywords: 'function',\n      end: /\\{/,\n      excludeEnd: true,\n      contains: [hljs.inherit(hljs.TITLE_MODE, {\n        begin: IDENT_RE\n      }), {\n        className: 'params',\n        begin: /\\(/,\n        end: /\\)/,\n        excludeBegin: true,\n        excludeEnd: true,\n        contains: PARAMS_CONTAINS\n      }],\n      illegal: /\\[|%/\n    }, {\n      begin: /\\$[(.]/\n    }],\n    illegal: /#(?!!)/\n  };\n}\n\nmodule.exports = arcade;"],"sourceRoot":""}