{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/javascript.js"],"names":["KEYWORDS","LITERALS","BUILT_INS","concat","source","re","lookahead","_len","arguments","length","args","Array","_key","joined","map","x","join","module","exports","hljs","IDENT_RE$1","FRAGMENT","XML_TAG","begin","end","KEYWORDS$1","$pattern","keyword","literal","built_in","NUMBER","className","variants","C_NUMBER_RE","relevance","SUBST","keywords","contains","HTML_TEMPLATE","starts","returnEnd","BACKSLASH_ESCAPE","subLanguage","CSS_TEMPLATE","TEMPLATE_STRING","APOS_STRING_MODE","QUOTE_STRING_MODE","REGEXP_MODE","PARAMS_CONTAINS","C_BLOCK_COMMENT_MODE","C_LINE_COMMENT_MODE","PARAMS","excludeBegin","excludeEnd","name","aliases","SHEBANG","binary","COMMENT","endsParent","RE_STARTERS_RE","UNDERSCORE_IDENT_RE","returnBegin","skip","beginKeywords","inherit","TITLE_MODE","illegal","METHOD_GUARD","UNDERSCORE_TITLE_MODE"],"mappings":"8EAAA,IACIA,EAAW,CAAC,KAChB,KAAM,KAAM,KAAM,MAAO,QAAS,UAAW,MAAO,MAAO,WAAY,KAAM,SAAU,OAAQ,OAAQ,QAAS,QAAS,aAAc,OAAQ,QAAS,OAAQ,UAAW,MAAO,SAAU,WAAY,SAAU,SAAU,MAAO,QAAS,QAAS,QAGrP,WAAY,QAAS,QAAS,SAAU,SAAU,OAAQ,SAAU,WAChEC,EAAW,CAAC,OAAQ,QAAS,OAAQ,YAAa,MAAO,YAMzDC,EAAY,GAAGC,OAHI,CAAC,cAAe,aAAc,gBAAiB,eAAgB,UAAW,UAAW,OAAQ,WAAY,QAAS,aAAc,WAAY,YAAa,qBAAsB,YAAa,qBAAsB,SAAU,YAC1N,CAAC,YAAa,OAAQ,QAAS,UAAW,SAAU,WAAY,eAAgB,SAAU,UAHvG,CAAC,OAAQ,WAAY,SAAU,OAAQ,OAAQ,SAAU,SAAU,SAAU,WAAY,UAAW,QAAS,SAAU,MAAO,MAAO,UAAW,UAAW,QAAS,UAAW,OAAQ,UAAW,eAAgB,aAAc,aAAc,YAAa,cAAe,cAAe,eAAgB,QAAS,aAAc,oBAAqB,eAC/U,CAAC,YAAa,gBAAiB,aAAc,iBAAkB,cAAe,YAAa,aAe7G,SAASC,EAAOC,GACd,OAAKA,EACa,iBAAPA,EAAwBA,EAC5BA,EAAGD,OAFM,KAUlB,SAASE,EAAUD,GACjB,OAAOF,EAAO,MAAOE,EAAI,KAQ3B,SAASF,IACP,IAAK,IAAII,EAAOC,UAAUC,OAAQC,EAAO,IAAIC,MAAMJ,GAAOK,EAAO,EAAGA,EAAOL,EAAMK,IAC/EF,EAAKE,GAAQJ,UAAUI,GAGzB,IAAIC,EAASH,EAAKI,KAAI,SAAUC,GAC9B,OAAOX,EAAOW,MACbC,KAAK,IACR,OAAOH,EA6OTI,EAAOC,QAnOP,SAAoBC,GAClB,IAAIC,EA9DS,2BA+DTC,EACK,KADLA,EAEG,MAEHC,EAAU,CACZC,MAAO,sBACPC,IAAK,6BAEHC,EAAa,CACfC,SAxEW,2BAyEXC,QAAS3B,EAASgB,KAAK,KACvBY,QAAS3B,EAASe,KAAK,KACvBa,SAAU3B,EAAUc,KAAK,MAEvBc,EAAS,CACXC,UAAW,SACXC,SAAU,CAAC,CACTT,MAAO,qBACN,CACDA,MAAO,sBACN,CACDA,MAAOJ,EAAKc,YAAc,OAE5BC,UAAW,GAETC,EAAQ,CACVJ,UAAW,QACXR,MAAO,SACPC,IAAK,MACLY,SAAUX,EACVY,SAAU,IAGRC,EAAgB,CAClBf,MAAO,QACPC,IAAK,GACLe,OAAQ,CACNf,IAAK,IACLgB,WAAW,EACXH,SAAU,CAAClB,EAAKsB,iBAAkBN,GAClCO,YAAa,QAGbC,EAAe,CACjBpB,MAAO,OACPC,IAAK,GACLe,OAAQ,CACNf,IAAK,IACLgB,WAAW,EACXH,SAAU,CAAClB,EAAKsB,iBAAkBN,GAClCO,YAAa,QAGbE,EAAkB,CACpBb,UAAW,SACXR,MAAO,IACPC,IAAK,IACLa,SAAU,CAAClB,EAAKsB,iBAAkBN,IAEpCA,EAAME,SAAW,CAAClB,EAAK0B,iBAAkB1B,EAAK2B,kBAAmBR,EAAeK,EAAcC,EAAiBd,EAAQX,EAAK4B,aAC5H,IAAIC,EAAkBb,EAAME,SAASlC,OAAO,CAC5C,CACEoB,MAAO,KACPC,IAAK,KACLa,SAAU,CAAC,QAAQlC,OAAOgC,EAAME,SAAU,CAAClB,EAAK8B,qBAAsB9B,EAAK+B,uBAC1E/B,EAAK8B,qBAAsB9B,EAAK+B,sBAC/BC,EAAS,CACXpB,UAAW,SACXR,MAAO,KACPC,IAAK,KACL4B,cAAc,EACdC,YAAY,EACZhB,SAAUW,GAEZ,MAAO,CACLM,KAAM,aACNC,QAAS,CAAC,KAAM,MAAO,MAAO,OAC9BnB,SAAUX,EACVY,SAAU,CAAClB,EAAKqC,QAAQ,CACtBC,OAAQ,OACRvB,UAAW,IACT,CACFH,UAAW,OACXG,UAAW,GACXX,MAAO,gCACNJ,EAAK0B,iBAAkB1B,EAAK2B,kBAAmBR,EAAeK,EAAcC,EAAiBzB,EAAK+B,oBAAqB/B,EAAKuC,QAAQ,UAAW,OAAQ,CACxJxB,UAAW,EACXG,SAAU,CAAC,CACTN,UAAW,SACXR,MAAO,aACPc,SAAU,CAAC,CACTN,UAAW,OACXR,MAAO,MACPC,IAAK,MACLU,UAAW,GACV,CACDH,UAAW,WACXR,MAAOH,EAAa,gBACpBuC,YAAY,EACZzB,UAAW,GAGb,CACEX,MAAO,cACPW,UAAW,QAGbf,EAAK8B,qBAAsBnB,EAAQ,CAErCP,MAAOpB,EAAO,YAUdG,EAAUH,EAEV,sCAAuCiB,EAAa,WACpDc,UAAW,EACXG,SAAU,CAAC,CACTN,UAAW,OACXR,MAAOH,EAAad,EAAU,SAC9B4B,UAAW,KAEZ,CAEDX,MAAO,IAAMJ,EAAKyC,eAAiB,kCACnCxB,SAAU,oBACVC,SAAU,CAAClB,EAAK+B,oBAAqB/B,EAAK8B,qBAAsB9B,EAAK4B,YAAa,CAChFhB,UAAW,WAIXR,MAAO,4CAAuEJ,EAAK0C,oBAAsB,UACzGC,aAAa,EACbtC,IAAK,SACLa,SAAU,CAAC,CACTN,UAAW,SACXC,SAAU,CAAC,CACTT,MAAOJ,EAAK0C,qBACX,CACD9B,UAAW,KACXR,MAAO,UACPwC,MAAM,GACL,CACDxC,MAAO,KACPC,IAAK,KACL4B,cAAc,EACdC,YAAY,EACZjB,SAAUX,EACVY,SAAUW,OAGb,CAEDzB,MAAO,IACPW,UAAW,GACV,CACDH,UAAW,GACXR,MAAO,KACPC,IAAK,MACLuC,MAAM,GACL,CAED/B,SAAU,CAAC,CACTT,MAAOF,EACPG,IAAKH,GACJ,CACDE,MAAOD,EAAQC,MACfC,IAAKF,EAAQE,MAEfkB,YAAa,MACbL,SAAU,CAAC,CACTd,MAAOD,EAAQC,MACfC,IAAKF,EAAQE,IACbuC,MAAM,EACN1B,SAAU,CAAC,YAGfH,UAAW,GACV,CACDH,UAAW,WACXiC,cAAe,WACfxC,IAAK,KACL6B,YAAY,EACZhB,SAAU,CAAClB,EAAK8C,QAAQ9C,EAAK+C,WAAY,CACvC3C,MAAOH,IACL+B,GACJgB,QAAS,QACR,CACD5C,MAAO,UAENJ,EAAKiD,aAAc,CAEpBrC,UAAW,QACXiC,cAAe,QACfxC,IAAK,QACL6B,YAAY,EACZc,QAAS,WACT9B,SAAU,CAAC,CACT2B,cAAe,WACd7C,EAAKkD,wBACP,CACDL,cAAe,cACfxC,IAAK,KACL6B,YAAY,GACX,CACD9B,MAAO,mBAAqBH,EAAa,OACzCI,IAAK,IACLY,SAAU,UACVC,SAAU,CAAClB,EAAK8C,QAAQ9C,EAAK+C,WAAY,CACvC3C,MAAOH,IACL,CACFG,MAAO,QAET4B,KAEFgB,QAAS","file":"react-syntax-highlighter_languages_highlight_javascript-04c24e6f01ab6a53a172.js","sourcesContent":["var IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nvar KEYWORDS = [\"as\", // for exports\n\"in\", \"of\", \"if\", \"for\", \"while\", \"finally\", \"var\", \"new\", \"function\", \"do\", \"return\", \"void\", \"else\", \"break\", \"catch\", \"instanceof\", \"with\", \"throw\", \"case\", \"default\", \"try\", \"switch\", \"continue\", \"typeof\", \"delete\", \"let\", \"yield\", \"const\", \"class\", // JS handles these with a special rule\n// \"get\",\n// \"set\",\n\"debugger\", \"async\", \"await\", \"static\", \"import\", \"from\", \"export\", \"extends\"];\nvar LITERALS = [\"true\", \"false\", \"null\", \"undefined\", \"NaN\", \"Infinity\"];\nvar TYPES = [\"Intl\", \"DataView\", \"Number\", \"Math\", \"Date\", \"String\", \"RegExp\", \"Object\", \"Function\", \"Boolean\", \"Error\", \"Symbol\", \"Set\", \"Map\", \"WeakSet\", \"WeakMap\", \"Proxy\", \"Reflect\", \"JSON\", \"Promise\", \"Float64Array\", \"Int16Array\", \"Int32Array\", \"Int8Array\", \"Uint16Array\", \"Uint32Array\", \"Float32Array\", \"Array\", \"Uint8Array\", \"Uint8ClampedArray\", \"ArrayBuffer\"];\nvar ERROR_TYPES = [\"EvalError\", \"InternalError\", \"RangeError\", \"ReferenceError\", \"SyntaxError\", \"TypeError\", \"URIError\"];\nvar BUILT_IN_GLOBALS = [\"setInterval\", \"setTimeout\", \"clearInterval\", \"clearTimeout\", \"require\", \"exports\", \"eval\", \"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", \"escape\", \"unescape\"];\nvar BUILT_IN_VARIABLES = [\"arguments\", \"this\", \"super\", \"console\", \"window\", \"document\", \"localStorage\", \"module\", \"global\" // Node.js\n];\nvar BUILT_INS = [].concat(BUILT_IN_GLOBALS, BUILT_IN_VARIABLES, TYPES, ERROR_TYPES);\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\n\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n  return re.source;\n}\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\n\n\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\n\n\nfunction concat() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  var joined = args.map(function (x) {\n    return source(x);\n  }).join(\"\");\n  return joined;\n}\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n\nfunction javascript(hljs) {\n  var IDENT_RE$1 = IDENT_RE;\n  var FRAGMENT = {\n    begin: '<>',\n    end: '</>'\n  };\n  var XML_TAG = {\n    begin: /<[A-Za-z0-9\\\\._:-]+/,\n    end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/\n  };\n  var KEYWORDS$1 = {\n    $pattern: IDENT_RE,\n    keyword: KEYWORDS.join(\" \"),\n    literal: LITERALS.join(\" \"),\n    built_in: BUILT_INS.join(\" \")\n  };\n  var NUMBER = {\n    className: 'number',\n    variants: [{\n      begin: '\\\\b(0[bB][01]+)n?'\n    }, {\n      begin: '\\\\b(0[oO][0-7]+)n?'\n    }, {\n      begin: hljs.C_NUMBER_RE + 'n?'\n    }],\n    relevance: 0\n  };\n  var SUBST = {\n    className: 'subst',\n    begin: '\\\\$\\\\{',\n    end: '\\\\}',\n    keywords: KEYWORDS$1,\n    contains: [] // defined later\n\n  };\n  var HTML_TEMPLATE = {\n    begin: 'html`',\n    end: '',\n    starts: {\n      end: '`',\n      returnEnd: false,\n      contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n      subLanguage: 'xml'\n    }\n  };\n  var CSS_TEMPLATE = {\n    begin: 'css`',\n    end: '',\n    starts: {\n      end: '`',\n      returnEnd: false,\n      contains: [hljs.BACKSLASH_ESCAPE, SUBST],\n      subLanguage: 'css'\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, HTML_TEMPLATE, CSS_TEMPLATE, TEMPLATE_STRING, NUMBER, hljs.REGEXP_MODE];\n  var PARAMS_CONTAINS = SUBST.contains.concat([// eat recursive parens in sub expressions\n  {\n    begin: /\\(/,\n    end: /\\)/,\n    contains: [\"self\"].concat(SUBST.contains, [hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE])\n  }, hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE]);\n  var PARAMS = {\n    className: 'params',\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true,\n    contains: PARAMS_CONTAINS\n  };\n  return {\n    name: 'JavaScript',\n    aliases: ['js', 'jsx', 'mjs', 'cjs'],\n    keywords: KEYWORDS$1,\n    contains: [hljs.SHEBANG({\n      binary: \"node\",\n      relevance: 5\n    }), {\n      className: 'meta',\n      relevance: 10,\n      begin: /^\\s*['\"]use (strict|asm)['\"]/\n    }, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, TEMPLATE_STRING, hljs.C_LINE_COMMENT_MODE, hljs.COMMENT('/\\\\*\\\\*', '\\\\*/', {\n      relevance: 0,\n      contains: [{\n        className: 'doctag',\n        begin: '@[A-Za-z]+',\n        contains: [{\n          className: 'type',\n          begin: '\\\\{',\n          end: '\\\\}',\n          relevance: 0\n        }, {\n          className: 'variable',\n          begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n          endsParent: true,\n          relevance: 0\n        }, // eat spaces (not newlines) so we can find\n        // types or variables\n        {\n          begin: /(?=[^\\n])\\s/,\n          relevance: 0\n        }]\n      }]\n    }), hljs.C_BLOCK_COMMENT_MODE, NUMBER, {\n      // object attr container\n      begin: concat(/[{,\\n]\\s*/, // we need to look ahead to make sure that we actually have an\n      // attribute coming up so we don't steal a comma from a potential\n      // \"value\" container\n      //\n      // NOTE: this might not work how you think.  We don't actually always\n      // enter this mode and stay.  Instead it might merely match `,\n      // <comments up next>` and then immediately end after the , because it\n      // fails to find any actual attrs. But this still does the job because\n      // it prevents the value contain rule from grabbing this instead and\n      // prevening this rule from firing when we actually DO have keys.\n      lookahead(concat( // we also need to allow for multiple possible comments inbetween\n      // the first key:value pairing\n      /(((\\/\\/.*$)|(\\/\\*(.|\\n)*\\*\\/))\\s*)*/, IDENT_RE$1 + '\\\\s*:'))),\n      relevance: 0,\n      contains: [{\n        className: 'attr',\n        begin: IDENT_RE$1 + lookahead('\\\\s*:'),\n        relevance: 0\n      }]\n    }, {\n      // \"value\" container\n      begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n      keywords: 'return throw case',\n      contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.REGEXP_MODE, {\n        className: 'function',\n        // we have to count the parens to make sure we actually have the\n        // correct bounding ( ) before the =>.  There could be any number of\n        // sub-expressions inside also surrounded by parens.\n        begin: '(\\\\([^(]*' + '(\\\\([^(]*' + '(\\\\([^(]*' + '\\\\))?' + '\\\\))?' + '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>',\n        returnBegin: true,\n        end: '\\\\s*=>',\n        contains: [{\n          className: 'params',\n          variants: [{\n            begin: hljs.UNDERSCORE_IDENT_RE\n          }, {\n            className: null,\n            begin: /\\(\\s*\\)/,\n            skip: true\n          }, {\n            begin: /\\(/,\n            end: /\\)/,\n            excludeBegin: true,\n            excludeEnd: true,\n            keywords: KEYWORDS$1,\n            contains: PARAMS_CONTAINS\n          }]\n        }]\n      }, {\n        // could be a comma delimited list of params to a function call\n        begin: /,/,\n        relevance: 0\n      }, {\n        className: '',\n        begin: /\\s/,\n        end: /\\s*/,\n        skip: true\n      }, {\n        // JSX\n        variants: [{\n          begin: FRAGMENT.begin,\n          end: FRAGMENT.end\n        }, {\n          begin: XML_TAG.begin,\n          end: XML_TAG.end\n        }],\n        subLanguage: 'xml',\n        contains: [{\n          begin: XML_TAG.begin,\n          end: XML_TAG.end,\n          skip: true,\n          contains: ['self']\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$1\n      }), PARAMS],\n      illegal: /\\[|%/\n    }, {\n      begin: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n\n    }, hljs.METHOD_GUARD, {\n      // ES6 class\n      className: 'class',\n      beginKeywords: 'class',\n      end: /[{;=]/,\n      excludeEnd: true,\n      illegal: /[:\"\\[\\]]/,\n      contains: [{\n        beginKeywords: 'extends'\n      }, hljs.UNDERSCORE_TITLE_MODE]\n    }, {\n      beginKeywords: 'constructor',\n      end: /\\{/,\n      excludeEnd: true\n    }, {\n      begin: '(get|set)\\\\s+(?=' + IDENT_RE$1 + '\\\\()',\n      end: /{/,\n      keywords: \"get set\",\n      contains: [hljs.inherit(hljs.TITLE_MODE, {\n        begin: IDENT_RE$1\n      }), {\n        begin: /\\(\\)/\n      }, // eat to avoid empty params\n      PARAMS]\n    }],\n    illegal: /#(?!!)/\n  };\n}\n\nmodule.exports = javascript;"],"sourceRoot":""}