(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{"B/7n":function(e,n){function a(e){return e?"string"==typeof e?e:e.source:null}function t(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];var s=n.map((function(e){return a(e)})).join("");return s}function s(e){var 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"]},s=/\[\]|\[[^\]]+\]/,i=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,r=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];var s="("+n.map((function(e){return a(e)})).join("|")+")";return s}(/""|"[^"]+"/,/''|'[^']+'/,s,i),l=t(t("(",/\.|\.\/|\//,")?"),r,function(e){return t("(",e,")*")}(t(/(\.|\/)/,r))),o=t("(",s,"|",i,")(?==)"),c={begin:l,lexemes:/[\w.\/]+/},u=e.inherit(c,{keywords:{literal:["true","false","undefined","null"]}}),d={begin:/\(/,end:/\)/},m={className:"attr",begin:o,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,u,d]}}},g={contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},m,u,d],returnEnd:!0},b=e.inherit(c,{className:"name",keywords:n,starts:e.inherit(g,{end:/\)/})});d.contains=[b];var p=e.inherit(c,{keywords:n,className:"name",starts:e.inherit(g,{end:/\}\}/})}),h=e.inherit(c,{keywords:n,className:"name"}),w=e.inherit(c,{className:"name",keywords:n,starts:e.inherit(g,{end:/\}\}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[p],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[h]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[p]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[h]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[w]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[w]}]}}e.exports=function(e){var n=s(e);return n.name="HTMLbars",e.getLanguage("handlebars")&&(n.disableAutodetect=!0),n}}}]);
//# sourceMappingURL=react-syntax-highlighter_languages_highlight_htmlbars-934dbedbe9806c518445.js.map