{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/htmlbars.js"],"names":["source","re","concat","_len","arguments","length","args","Array","_key","joined","map","x","join","module","exports","hljs","definition","BUILT_INS","LITERALS","literal","BRACKET_QUOTED_ID_REGEX","PLAIN_ID_REGEX","IDENTIFIER_REGEX","HASH_PARAM_REGEX","HELPER_NAME_OR_PATH_EXPRESSION","begin","lexemes","HELPER_PARAMETER","inherit","keywords","SUB_EXPRESSION","end","HASH","className","relevance","starts","contains","NUMBER_MODE","QUOTE_STRING_MODE","APOS_STRING_MODE","HELPER_PARAMETERS","keyword","returnEnd","SUB_EXPRESSION_CONTENTS","OPENING_BLOCK_MUSTACHE_CONTENTS","CLOSING_BLOCK_MUSTACHE_CONTENTS","BASIC_MUSTACHE_CONTENTS","name","aliases","case_insensitive","subLanguage","skip","COMMENT","handlebars","getLanguage","disableAutodetect"],"mappings":"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","file":"react-syntax-highlighter_languages_highlight_htmlbars-54eb61f00a2af8a6f1c4.js","sourcesContent":["/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\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) } 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: Handlebars\nRequires: xml.js\nAuthor: Robin Ward <robin.ward@gmail.com>\nDescription: Matcher for Handlebars as well as EmberJS additions.\nWebsite: https://handlebarsjs.com\nCategory: template\n*/\n\n\nfunction handlebars(hljs) {\n  var BUILT_INS = {\n    'builtin-name': ['action', 'bindattr', 'collection', 'component', 'concat', 'debugger', 'each', 'each-in', 'get', 'hash', 'if', 'in', 'input', 'link-to', 'loc', 'log', 'lookup', 'mut', 'outlet', 'partial', 'query-params', 'render', 'template', 'textarea', 'unbound', 'unless', 'view', 'with', 'yield'].join(\" \")\n  };\n  var LITERALS = {\n    literal: ['true', 'false', 'undefined', 'null'].join(\" \")\n  }; // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments\n  // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths\n  // like a/b, ./abc/cde, and abc.bcd\n\n  var DOUBLE_QUOTED_ID_REGEX = /\".*?\"/;\n  var SINGLE_QUOTED_ID_REGEX = /'.*?'/;\n  var BRACKET_QUOTED_ID_REGEX = /\\[.*?\\]/;\n  var PLAIN_ID_REGEX = /[^\\s!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]+/;\n  var PATH_DELIMITER_REGEX = /\\.|\\//;\n  var IDENTIFIER_REGEX = concat('(', SINGLE_QUOTED_ID_REGEX, '|', DOUBLE_QUOTED_ID_REGEX, '|', BRACKET_QUOTED_ID_REGEX, '|', PLAIN_ID_REGEX, '|', PATH_DELIMITER_REGEX, ')+'); // identifier followed by a equal-sign (without the equal sign)\n\n  var HASH_PARAM_REGEX = concat('(', BRACKET_QUOTED_ID_REGEX, '|', PLAIN_ID_REGEX, ')(?==)');\n  var HELPER_NAME_OR_PATH_EXPRESSION = {\n    begin: IDENTIFIER_REGEX,\n    lexemes: /[\\w.\\/]+/\n  };\n  var HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: LITERALS\n  });\n  var SUB_EXPRESSION = {\n    begin: /\\(/,\n    end: /\\)/ // the \"contains\" is added below when all necessary sub-modes are defined\n\n  };\n  var HASH = {\n    // fka \"attribute-assignment\", parameters of the form 'key=value'\n    className: 'attr',\n    begin: HASH_PARAM_REGEX,\n    relevance: 0,\n    starts: {\n      begin: /=/,\n      end: /=/,\n      starts: {\n        contains: [hljs.NUMBER_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, HELPER_PARAMETER, SUB_EXPRESSION]\n      }\n    }\n  };\n  var BLOCK_PARAMS = {\n    // parameters of the form '{{#with x as | y |}}...{{/with}}'\n    begin: /as\\s+\\|/,\n    keywords: {\n      keyword: 'as'\n    },\n    end: /\\|/,\n    contains: [{\n      // define sub-mode in order to prevent highlighting of block-parameter named \"as\"\n      begin: /\\w+/\n    }]\n  };\n  var HELPER_PARAMETERS = {\n    contains: [hljs.NUMBER_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, BLOCK_PARAMS, HASH, HELPER_PARAMETER, SUB_EXPRESSION],\n    returnEnd: true // the property \"end\" is defined through inheritance when the mode is used. If depends\n    // on the surrounding mode, but \"endsWithParent\" does not work here (i.e. it includes the\n    // end-token of the surrounding mode)\n\n  };\n  var SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    className: 'name',\n    keywords: BUILT_INS,\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /\\)/\n    })\n  });\n  SUB_EXPRESSION.contains = [SUB_EXPRESSION_CONTENTS];\n  var OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: BUILT_INS,\n    className: 'name',\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /}}/\n    })\n  });\n  var CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    keywords: BUILT_INS,\n    className: 'name'\n  });\n  var BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n    className: 'name',\n    keywords: BUILT_INS,\n    starts: hljs.inherit(HELPER_PARAMETERS, {\n      end: /}}/\n    })\n  });\n  var ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {\n    begin: /\\\\\\{\\{/,\n    skip: true\n  };\n  var PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {\n    begin: /\\\\\\\\(?=\\{\\{)/,\n    skip: true\n  };\n  return {\n    name: 'Handlebars',\n    aliases: ['hbs', 'html.hbs', 'html.handlebars', 'htmlbars'],\n    case_insensitive: true,\n    subLanguage: 'xml',\n    contains: [ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH, PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH, hljs.COMMENT(/\\{\\{!--/, /--\\}\\}/), hljs.COMMENT(/\\{\\{!/, /\\}\\}/), {\n      // open raw block \"{{{{raw}}}} content not evaluated {{{{/raw}}}}\"\n      className: 'template-tag',\n      begin: /\\{\\{\\{\\{(?!\\/)/,\n      end: /\\}\\}\\}\\}/,\n      contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],\n      starts: {\n        end: /\\{\\{\\{\\{\\//,\n        returnEnd: true,\n        subLanguage: 'xml'\n      }\n    }, {\n      // close raw block\n      className: 'template-tag',\n      begin: /\\{\\{\\{\\{\\//,\n      end: /\\}\\}\\}\\}/,\n      contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n    }, {\n      // open block statement\n      className: 'template-tag',\n      begin: /\\{\\{#/,\n      end: /\\}\\}/,\n      contains: [OPENING_BLOCK_MUSTACHE_CONTENTS]\n    }, {\n      className: 'template-tag',\n      begin: /\\{\\{(?=else\\}\\})/,\n      end: /\\}\\}/,\n      keywords: 'else'\n    }, {\n      className: 'template-tag',\n      begin: /\\{\\{(?=else if)/,\n      end: /\\}\\}/,\n      keywords: 'else if'\n    }, {\n      // closing block statement\n      className: 'template-tag',\n      begin: /\\{\\{\\//,\n      end: /\\}\\}/,\n      contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n    }, {\n      // template variable or helper-call that is NOT html-escaped\n      className: 'template-variable',\n      begin: /\\{\\{\\{/,\n      end: /\\}\\}\\}/,\n      contains: [BASIC_MUSTACHE_CONTENTS]\n    }, {\n      // template variable or helper-call that is html-escaped\n      className: 'template-variable',\n      begin: /\\{\\{/,\n      end: /\\}\\}/,\n      contains: [BASIC_MUSTACHE_CONTENTS]\n    }]\n  };\n}\n/*\n Language: HTMLBars (legacy)\n Requires: xml.js\n Description: Matcher for Handlebars as well as EmberJS additions.\n Website: https://github.com/tildeio/htmlbars\n Category: template\n */\n\n\nfunction htmlbars(hljs) {\n  var definition = handlebars(hljs);\n  definition.name = \"HTMLbars\"; // HACK: This lets handlebars do the auto-detection if it's been loaded (by\n  // default the build script will load in alphabetical order) and if not (perhaps\n  // an install is only using `htmlbars`, not `handlebars`) then this will still\n  // allow HTMLBars to participate in the auto-detection\n  // worse case someone will have HTMLbars and handlebars competing for the same\n  // content and will need to change their setup to only require handlebars, but\n  // I don't consider this a breaking change\n\n  if (hljs.getLanguage(\"handlebars\")) {\n    definition.disableAutodetect = true;\n  }\n\n  return definition;\n}\n\nmodule.exports = htmlbars;"],"sourceRoot":""}