{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/highlight.js/lib/core.js","webpack:///./node_modules/highlight.js/lib/languages/json.js","webpack:///./node_modules/clipboard/dist/clipboard.min.js","webpack:///./node_modules/rails-ujs/lib/assets/compiled/rails-ujs.js","webpack:///./app/javascript/packs/application.tsx","webpack:///./app/javascript/utils/dropdowns.ts","webpack:///./app/javascript/utils/clipboard.ts","webpack:///./app/javascript/elo/layout sync nonrecursive \\.js$","webpack:///./app/javascript/elo/layout/Box.js","webpack:///./app/javascript/elo/layout/Center.js","webpack:///./app/javascript/elo/layout/Cluster.js","webpack:///./app/javascript/elo/layout/Cover.js","webpack:///./app/javascript/elo/layout/Frame.js","webpack:///./app/javascript/elo/layout/Grid.js","webpack:///./app/javascript/elo/layout/Sidebar.js","webpack:///./app/javascript/elo/layout/Stack.js","webpack:///./app/javascript/elo/layout/StackSm.js","webpack:///./app/javascript/elo/layout/Switcher.js","webpack:///./app/assets/stylesheets/application.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","webpackPolyfill","deprecate","paths","children","_toConsumableArray","arr","Array","isArray","arr2","length","_arrayWithoutHoles","iter","iterator","toString","from","_iterableToArray","TypeError","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","err","_iterableToArrayLimit","_nonIterableRest","_possibleConstructorReturn","self","_typeof","ReferenceError","_assertThisInitialized","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","configurable","writable","_createClass","protoProps","staticProps","obj","constructor","deepFreeze","Map","clear","set","Error","Set","add","freeze","getOwnPropertyNames","forEach","prop","isFrozen","deepFreezeEs6","_default","Response","this","data","ignore","escapeHTML","replace","inherit","original","result","_len","arguments","objects","_key","_key2","tag","node","nodeName","toLowerCase","utils","nodeStream","_nodeStream","offset","child","firstChild","nextSibling","nodeType","nodeValue","event","match","mergeStreams","highlighted","processed","nodeStack","selectStream","open","map","attributes","attr","join","close","render","stream","substring","reverse","splice","pop","substr","emitsWrappingTags","kind","HTMLRenderer","parseTree","options","buffer","classPrefix","walk","text","className","sublanguage","concat","span","TokenTreeEmitter","_TokenTree","_this2","subClass","superClass","_inherits","openNode","addText","closeNode","emitter","root","TokenTree","rootNode","stack","top","JSON","stringify","builder","_walk","_this","every","el","_collapse","source","re","_len2","args","_key3","joined","x","C_NUMBER_RE","BACKSLASH_ESCAPE","begin","relevance","APOS_STRING_MODE","end","illegal","contains","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","NUMBER_RE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","IDENT_RE","UNDERSCORE_IDENT_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","opts","beginShebang","binary","on:begin","resp","index","ignoreMatch","END_SAME_AS_BEGIN","assign","_beginMatch","on:end","COMMON_KEYWORDS","compileLanguage","language","langRe","global","RegExp","case_insensitive","MultiRegex","matchIndexes","regexes","matchAt","position","exec","countMatchGroups","terminators","matcherRe","regexps","separator","backreferenceRe","numCaptures","ret","String","Number","lastIndex","findIndex","matchData","ResumableMultiRegex","rules","multiRegexes","count","regexIndex","matcher","slice","_ref","_ref2","addRule","compile","type","getMatcher","resumingScanAtSamePosition","m2","considerAll","skipIfhasPrecedingDot","response","input","includes","classNameAliases","compileMode","parent","_ref3","cmode","compiled","__beforeBegin","keywords","beginKeywords","keywordPattern","$pattern","rawKeywords","caseInsensitive","compiledKeywords","splitAndCompile","keys","keywordList","split","keyword","pair","scoreForKeyword","compileKeywords","lexemes","keywordPatternRe","beginRe","endSameAsBegin","endsWithParent","endRe","terminator_end","illegalRe","apply","variants","cached_variants","variant","dependencyOnParent","starts","expandOrCloneMode","mm","term","rule","buildModeRegex","providedScore","commonKeyword","BuildVuePlugin","hljs","Component","detectedLanguage","unknownLanguage","computed","autoDetect","getLanguage","highlightAuto","code","highlight","ignoreIllegals","console","warn","autodetect","Boolean","createElement","class","domProps","innerHTML","VuePlugin","install","Vue","component","escape$1","inherit$1","nodeStream$1","mergeStreams$1","NO_MATCH","ArrayProto","languages","aliases","plugins","SAFE_MODE","fixMarkupRe","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","noHighlightRe","languageDetectRe","tabReplace","useBR","__emitter","shouldNotHighlight","languageName","test","continuation","context","fire","_highlight","codeToHighlight","keywordData","matchText","processBuffer","subLanguage","modeBuffer","continuations","addSublanguage","processSubLanguage","buf","_data","keywordRelevance","cssClass","addKeyword","processKeywords","startNewMode","doIgnore","lexeme","resumeScanAtSamePosition","doBeginMatch","newMode","_i2","_beforeCallbacks","cb","skip","excludeBegin","returnBegin","doEndMatch","matchPlusRemainder","endMode","endOfMode","matched","startsWith","endsParent","origin","returnEnd","excludeEnd","lastMatch","processLexeme","textBeforeMatch","badRule","_err","iterations","error","md","list","current","unshift","item","processContinuations","processedCount","closeAllNodes","finalize","toHTML","message","illegalBy","msg","sofar","errorRaised","languageSubset","plaintext","justTextHighlightResult","results","filter","autoDetection","_sorted","sort","a","b","supersetOf","best","secondBest","second_best","fixMarkup","html","highlightBlock","element","block","classes","parentNode","find","_class","blockLanguage","document","textContent","originalStream","resultNode","prevClassName","currentLang","resultLang","trim","buildClassName","relavance","initHighlighting","called","blocks","querySelectorAll","registerAliases","aliasList","_ref4","alias","lang","plugin","arg","configure","userOptions","initHighlightingOnLoad","window","addEventListener","registerLanguage","languageDefinition","rawDefinition","listLanguages","requireLanguage","addPlugin","vuePlugin","debugMode","safeMode","versionString","HLJS","LITERALS","literal","ALLOWED_COMMENTS","TYPES","VALUE_CONTAINER","OBJECT","ARRAY","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","e","u","default","resolveOptions","listenClick","action","defaultAction","defaultTarget","defaultText","container","body","listener","onClick","delegateTarget","currentTarget","clipboardAction","trigger","querySelector","destroy","queryCommandSupported","hasAttribute","getAttribute","initSelection","selectedText","selectFake","selectTarget","documentElement","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","style","fontSize","border","padding","margin","pageYOffset","scrollTop","setAttribute","appendChild","copyText","removeEventListener","removeChild","execCommand","handleResult","emit","clearSelection","focus","getSelection","removeAllRanges","_action","_target","select","setSelectionRange","removeAttribute","createRange","selectNodeContents","addRange","on","fn","ctx","once","off","_","h","string","f","nodeList","HTMLElement","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","content","cspNonce","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","CustomEvent","preventDefault","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","*","xml","json","script","ajax","responseText","getResponseHeader","Math","floor","status","success","statusText","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","toUpperCase","indexOf","dataType","accept","crossDomain","withCredentials","onreadystatechange","DONE","parser","parse","head","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","checked","encodeURIComponent","formElements","form","allowAction","handleConfirm","answer","callback","confirm","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","method","display","click","isRemote","handleRemote","button","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","__webpack_exports__","rails_ujs__WEBPACK_IMPORTED_MODULE_0__","rails_ujs__WEBPACK_IMPORTED_MODULE_0___default","highlight_js_lib_core__WEBPACK_IMPORTED_MODULE_1__","highlight_js_lib_core__WEBPACK_IMPORTED_MODULE_1___default","highlight_js_lib_languages_json__WEBPACK_IMPORTED_MODULE_2__","highlight_js_lib_languages_json__WEBPACK_IMPORTED_MODULE_2___default","ClipboardJS","previousTooltip","dataset","tooltip","blur","hideMenuTimeout","showMenu","anchor","menu","offsetTop","right","offsetWidth","hideMenu","time","subnavs","getElementsByClassName","subnavAnchor","id","clearTimeout","subnavs_1","__values","subnavs_1_1","./Box.js","./Center.js","./Cluster.js","./Cover.js","./Frame.js","./Grid.js","./Sidebar.js","./Stack.js","./StackSm.js","./Switcher.js","webpackContext","req","webpackContextResolve","resolve","Box","borderWidth","invert","getElementById","val","customElements","define","Center","max","andText","gutters","intrinsic","styleEl","Cluster","justify","align","space","Cover","centered","minHeight","noPad","Frame","ratio","Grid","min","CSS","supports","classList","width","br","ResizeObserver","entries","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","q","contentRect","toggle","observe","Sidebar","contentMin","side","sideWidth","adjustedSpace","noStretch","Stack","recursive","splitAfter","StackSm","Switcher","threshold","limit","parseInt"],"mappings":"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","file":"js/application-8079e781f896aa43f446.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 846);\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj[\"delete\"] = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj[\"delete\"] = function () {\n throw new Error('set is read-only');\n };\n } // Freeze self\n\n\n Object.freeze(obj);\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name]; // Freeze prop if it is an object\n\n if (_typeof(prop) == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n return obj;\n}\n\nvar deepFreezeEs6 = deepFreeze;\nvar _default = deepFreeze;\ndeepFreezeEs6[\"default\"] = _default;\n\nvar Response =\n/*#__PURE__*/\nfunction () {\n /**\n * @param {CompiledMode} mode\n */\n function Response(mode) {\n _classCallCheck(this, Response);\n\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n this.data = mode.data;\n }\n\n _createClass(Response, [{\n key: \"ignoreMatch\",\n value: function ignoreMatch() {\n this.ignore = true;\n }\n }]);\n\n return Response;\n}();\n/**\n * @param {string} value\n * @returns {string}\n */\n\n\nfunction escapeHTML(value) {\n return value.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''');\n}\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\n\n\nfunction inherit(original) {\n /** @type Record */\n var result = Object.create(null);\n\n for (var key in original) {\n result[key] = original[key];\n }\n\n for (var _len = arguments.length, objects = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n objects[_key - 1] = arguments[_key];\n }\n\n objects.forEach(function (obj) {\n for (var _key2 in obj) {\n result[_key2] = obj[_key2];\n }\n });\n return (\n /** @type {T} */\n result\n );\n}\n/* Stream merging */\n\n/**\n * @typedef Event\n * @property {'start'|'stop'} event\n * @property {number} offset\n * @property {Node} node\n */\n\n/**\n * @param {Node} node\n */\n\n\nfunction tag(node) {\n return node.nodeName.toLowerCase();\n}\n/**\n * @param {Node} node\n */\n\n\nfunction nodeStream(node) {\n /** @type Event[] */\n var result = [];\n\n (function _nodeStream(node, offset) {\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (child.nodeType === 3) {\n offset += child.nodeValue.length;\n } else if (child.nodeType === 1) {\n result.push({\n event: 'start',\n offset: offset,\n node: child\n });\n offset = _nodeStream(child, offset); // Prevent void elements from having an end tag that would actually\n // double them in the output. There are more void elements in HTML\n // but we list only those realistically expected in code display.\n\n if (!tag(child).match(/br|hr|img|input/)) {\n result.push({\n event: 'stop',\n offset: offset,\n node: child\n });\n }\n }\n }\n\n return offset;\n })(node, 0);\n\n return result;\n}\n/**\n * @param {any} original - the original stream\n * @param {any} highlighted - stream of the highlighted source\n * @param {string} value - the original source itself\n */\n\n\nfunction mergeStreams(original, highlighted, value) {\n var processed = 0;\n var result = '';\n var nodeStack = [];\n\n function selectStream() {\n if (!original.length || !highlighted.length) {\n return original.length ? original : highlighted;\n }\n\n if (original[0].offset !== highlighted[0].offset) {\n return original[0].offset < highlighted[0].offset ? original : highlighted;\n }\n /*\n To avoid starting the stream just before it should stop the order is\n ensured that original always starts first and closes last:\n if (event1 == 'start' && event2 == 'start')\n return original;\n if (event1 == 'start' && event2 == 'stop')\n return highlighted;\n if (event1 == 'stop' && event2 == 'start')\n return original;\n if (event1 == 'stop' && event2 == 'stop')\n return highlighted;\n ... which is collapsed to:\n */\n\n\n return highlighted[0].event === 'start' ? original : highlighted;\n }\n /**\n * @param {Node} node\n */\n\n\n function open(node) {\n /** @param {Attr} attr */\n function attributeString(attr) {\n return ' ' + attr.nodeName + '=\"' + escapeHTML(attr.value) + '\"';\n } // @ts-ignore\n\n\n result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>';\n }\n /**\n * @param {Node} node\n */\n\n\n function close(node) {\n result += '';\n }\n /**\n * @param {Event} event\n */\n\n\n function render(event) {\n (event.event === 'start' ? open : close)(event.node);\n }\n\n while (original.length || highlighted.length) {\n var stream = selectStream();\n result += escapeHTML(value.substring(processed, stream[0].offset));\n processed = stream[0].offset;\n\n if (stream === original) {\n /*\n On any opening or closing tag of the original markup we first close\n the entire highlighted node stack, then render the original tag along\n with all the following original tags at the same offset and then\n reopen all the tags on the highlighted stack.\n */\n nodeStack.reverse().forEach(close);\n\n do {\n render(stream.splice(0, 1)[0]);\n stream = selectStream();\n } while (stream === original && stream.length && stream[0].offset === processed);\n\n nodeStack.reverse().forEach(open);\n } else {\n if (stream[0].event === 'start') {\n nodeStack.push(stream[0].node);\n } else {\n nodeStack.pop();\n }\n\n render(stream.splice(0, 1)[0]);\n }\n }\n\n return result + escapeHTML(value.substr(processed));\n}\n\nvar utils =\n/*#__PURE__*/\nObject.freeze({\n __proto__: null,\n escapeHTML: escapeHTML,\n inherit: inherit,\n nodeStream: nodeStream,\n mergeStreams: mergeStreams\n});\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n\n/** */\n\nvar SPAN_CLOSE = '';\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\n\nvar emitsWrappingTags = function emitsWrappingTags(node) {\n return !!node.kind;\n};\n/** @type {Renderer} */\n\n\nvar HTMLRenderer =\n/*#__PURE__*/\nfunction () {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n function HTMLRenderer(parseTree, options) {\n _classCallCheck(this, HTMLRenderer);\n\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n\n\n _createClass(HTMLRenderer, [{\n key: \"addText\",\n value: function addText(text) {\n this.buffer += escapeHTML(text);\n }\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n\n }, {\n key: \"openNode\",\n value: function openNode(node) {\n if (!emitsWrappingTags(node)) return;\n var className = node.kind;\n\n if (!node.sublanguage) {\n className = \"\".concat(this.classPrefix).concat(className);\n }\n\n this.span(className);\n }\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n\n }, {\n key: \"closeNode\",\n value: function closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n this.buffer += SPAN_CLOSE;\n }\n /**\n * returns the accumulated buffer\n */\n\n }, {\n key: \"value\",\n value: function value() {\n return this.buffer;\n } // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n\n }, {\n key: \"span\",\n value: function span(className) {\n this.buffer += \"\");\n }\n }]);\n\n return HTMLRenderer;\n}();\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n\n/** */\n\n\nvar TokenTree =\n/*#__PURE__*/\nfunction () {\n function TokenTree() {\n _classCallCheck(this, TokenTree);\n\n /** @type DataNode */\n this.rootNode = {\n children: []\n };\n this.stack = [this.rootNode];\n }\n\n _createClass(TokenTree, [{\n key: \"add\",\n\n /** @param {Node} node */\n value: function add(node) {\n this.top.children.push(node);\n }\n /** @param {string} kind */\n\n }, {\n key: \"openNode\",\n value: function openNode(kind) {\n /** @type Node */\n var node = {\n kind: kind,\n children: []\n };\n this.add(node);\n this.stack.push(node);\n }\n }, {\n key: \"closeNode\",\n value: function closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n } // eslint-disable-next-line no-undefined\n\n\n return undefined;\n }\n }, {\n key: \"closeAllNodes\",\n value: function closeAllNodes() {\n while (this.closeNode()) {\n ;\n }\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n\n }, {\n key: \"walk\",\n value: function walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode); // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n\n }, {\n key: \"top\",\n get: function get() {\n return this.stack[this.stack.length - 1];\n }\n }, {\n key: \"root\",\n get: function get() {\n return this.rootNode;\n }\n }], [{\n key: \"_walk\",\n value: function _walk(builder, node) {\n var _this = this;\n\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach(function (child) {\n return _this._walk(builder, child);\n });\n builder.closeNode(node);\n }\n\n return builder;\n }\n /**\n * @param {Node} node\n */\n\n }, {\n key: \"_collapse\",\n value: function _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(function (el) {\n return typeof el === \"string\";\n })) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach(function (child) {\n TokenTree._collapse(child);\n });\n }\n }\n }]);\n\n return TokenTree;\n}();\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\n\n\nvar TokenTreeEmitter =\n/*#__PURE__*/\nfunction (_TokenTree) {\n _inherits(TokenTreeEmitter, _TokenTree);\n\n /**\n * @param {*} options\n */\n function TokenTreeEmitter(options) {\n var _this2;\n\n _classCallCheck(this, TokenTreeEmitter);\n\n _this2 = _possibleConstructorReturn(this, _getPrototypeOf(TokenTreeEmitter).call(this));\n _this2.options = options;\n return _this2;\n }\n /**\n * @param {string} text\n * @param {string} kind\n */\n\n\n _createClass(TokenTreeEmitter, [{\n key: \"addKeyword\",\n value: function addKeyword(text, kind) {\n if (text === \"\") {\n return;\n }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n /**\n * @param {string} text\n */\n\n }, {\n key: \"addText\",\n value: function addText(text) {\n if (text === \"\") {\n return;\n }\n\n this.add(text);\n }\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n\n }, {\n key: \"addSublanguage\",\n value: function addSublanguage(emitter, name) {\n /** @type DataNode */\n var node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n }, {\n key: \"toHTML\",\n value: function toHTML() {\n var renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n }, {\n key: \"finalize\",\n value: function finalize() {\n return true;\n }\n }]);\n\n return TokenTreeEmitter;\n}(TokenTree);\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n\nfunction escape(value) {\n return new RegExp(value.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'm');\n}\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\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) } args\n * @returns {string}\n */\n\n\nfunction concat() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var joined = args.map(function (x) {\n return source(x);\n }).join(\"\");\n return joined;\n}\n/**\n * @param {RegExp} re\n * @returns {number}\n */\n\n\nfunction countMatchGroups(re) {\n return new RegExp(re.toString() + '|').exec('').length - 1;\n}\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\n\n\nfunction startsWith(re, lexeme) {\n var match = re && re.exec(lexeme);\n return match && match.index === 0;\n} // join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {string} separator\n * @returns {string}\n */\n\n\nfunction join(regexps) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"|\";\n // backreferenceRe matches an open parenthesis or backreference. To avoid\n // an incorrect parse, it additionally matches the following:\n // - [...] elements, where the meaning of parentheses and escapes change\n // - other escape sequences, so we do not misparse escape sequences as\n // interesting elements\n // - non-matching or lookahead parentheses, which do not capture. These\n // follow the '(' with a '?'.\n var backreferenceRe = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n var numCaptures = 0;\n var ret = '';\n\n for (var i = 0; i < regexps.length; i++) {\n numCaptures += 1;\n var offset = numCaptures;\n var re = source(regexps[i]);\n\n if (i > 0) {\n ret += separator;\n }\n\n ret += \"(\";\n\n while (re.length > 0) {\n var match = backreferenceRe.exec(re);\n\n if (match == null) {\n ret += re;\n break;\n }\n\n ret += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n ret += '\\\\' + String(Number(match[1]) + offset);\n } else {\n ret += match[0];\n\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n\n ret += \")\";\n }\n\n return ret;\n} // Common regexps\n\n\nvar IDENT_RE = '[a-zA-Z]\\\\w*';\nvar UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nvar NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nvar C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\n\nvar BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\n\nvar RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\n\nvar SHEBANG = function SHEBANG() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var beginShebang = /^#![ ]*\\//;\n\n if (opts.binary) {\n opts.begin = concat(beginShebang, /.*\\b/, opts.binary, /\\b.*/);\n }\n\n return inherit({\n className: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n\n /** @type {ModeCallback} */\n \"on:begin\": function onBegin(m, resp) {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n}; // Common modes\n\n\nvar BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]',\n relevance: 0\n};\nvar APOS_STRING_MODE = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nvar QUOTE_STRING_MODE = {\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nvar PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\n\nvar COMMENT = function COMMENT(begin, end) {\n var modeOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var mode = inherit({\n className: 'comment',\n begin: begin,\n end: end,\n contains: []\n }, modeOptions);\n mode.contains.push(PHRASAL_WORDS_MODE);\n mode.contains.push({\n className: 'doctag',\n begin: '(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',\n relevance: 0\n });\n return mode;\n};\n\nvar C_LINE_COMMENT_MODE = COMMENT('//', '$');\nvar C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nvar HASH_COMMENT_MODE = COMMENT('#', '$');\nvar NUMBER_MODE = {\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nvar C_NUMBER_MODE = {\n className: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nvar BINARY_NUMBER_MODE = {\n className: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nvar CSS_NUMBER_MODE = {\n className: 'number',\n begin: NUMBER_RE + '(' + '%|em|ex|ch|rem' + '|vw|vh|vmin|vmax' + '|cm|mm|in|pt|pc|px' + '|deg|grad|rad|turn' + '|s|ms' + '|Hz|kHz' + '|dpi|dpcm|dppx' + ')?',\n relevance: 0\n};\nvar REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n className: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [BACKSLASH_ESCAPE, {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }]\n }]\n};\nvar TITLE_MODE = {\n className: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nvar UNDERSCORE_TITLE_MODE = {\n className: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nvar METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\n\nvar END_SAME_AS_BEGIN = function END_SAME_AS_BEGIN(mode) {\n return Object.assign(mode, {\n /** @type {ModeCallback} */\n 'on:begin': function onBegin(m, resp) {\n resp.data._beginMatch = m[1];\n },\n\n /** @type {ModeCallback} */\n 'on:end': function onEnd(m, resp) {\n if (resp.data._beginMatch !== m[1]) resp.ignoreMatch();\n }\n });\n};\n\nvar MODES =\n/*#__PURE__*/\nObject.freeze({\n __proto__: null,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n CSS_NUMBER_MODE: CSS_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n}); // keywords that should have no default relevance value\n\nvar COMMON_KEYWORDS = ['of', 'and', 'for', 'in', 'not', 'or', 'if', 'then', 'parent', // common variable name\n'list', // common variable name\n'value' // common variable name\n]; // compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\n\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensativility of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(source(value), 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : ''));\n }\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n\n\n var MultiRegex =\n /*#__PURE__*/\n function () {\n function MultiRegex() {\n _classCallCheck(this, MultiRegex);\n\n this.matchIndexes = {}; // @ts-ignore\n\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n } // @ts-ignore\n\n\n _createClass(MultiRegex, [{\n key: \"addRule\",\n value: function addRule(re, opts) {\n opts.position = this.position++; // @ts-ignore\n\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n }, {\n key: \"compile\",\n value: function compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = function () {\n return null;\n };\n }\n\n var terminators = this.regexes.map(function (el) {\n return el[1];\n });\n this.matcherRe = langRe(join(terminators), true);\n this.lastIndex = 0;\n }\n /** @param {string} s */\n\n }, {\n key: \"exec\",\n value: function exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n var match = this.matcherRe.exec(s);\n\n if (!match) {\n return null;\n } // eslint-disable-next-line no-undefined\n\n\n var i = match.findIndex(function (el, i) {\n return i > 0 && el !== undefined;\n }); // @ts-ignore\n\n var matchData = this.matchIndexes[i]; // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n\n match.splice(0, i);\n return Object.assign(match, matchData);\n }\n }]);\n\n return MultiRegex;\n }();\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n Say this is our search group, and we match regex3, but wish to ignore it.\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n regex4 | regex5 ' ie, startAt = 3\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n MOST of the time the parser will be setting startAt manually to 0.\n */\n\n\n var ResumableMultiRegex =\n /*#__PURE__*/\n function () {\n function ResumableMultiRegex() {\n _classCallCheck(this, ResumableMultiRegex);\n\n // @ts-ignore\n this.rules = []; // @ts-ignore\n\n this.multiRegexes = [];\n this.count = 0;\n this.lastIndex = 0;\n this.regexIndex = 0;\n } // @ts-ignore\n\n\n _createClass(ResumableMultiRegex, [{\n key: \"getMatcher\",\n value: function getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n var matcher = new MultiRegex();\n this.rules.slice(index).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n re = _ref2[0],\n opts = _ref2[1];\n\n return matcher.addRule(re, opts);\n });\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n }, {\n key: \"resumingScanAtSamePosition\",\n value: function resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n }, {\n key: \"considerAll\",\n value: function considerAll() {\n this.regexIndex = 0;\n } // @ts-ignore\n\n }, {\n key: \"addRule\",\n value: function addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n /** @param {string} s */\n\n }, {\n key: \"exec\",\n value: function exec(s) {\n var m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n var result = m.exec(s); // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ;else {\n // use the second matcher result\n var m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }]);\n\n return ResumableMultiRegex;\n }();\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n\n\n function buildModeRegex(mode) {\n var mm = new ResumableMultiRegex();\n mode.contains.forEach(function (term) {\n return mm.addRule(term.begin, {\n rule: term,\n type: \"begin\"\n });\n });\n\n if (mode.terminator_end) {\n mm.addRule(mode.terminator_end, {\n type: \"end\"\n });\n }\n\n if (mode.illegal) {\n mm.addRule(mode.illegal, {\n type: \"illegal\"\n });\n }\n\n return mm;\n } // TODO: We need negative look-behind support to do this properly\n\n /**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n\n\n function skipIfhasPrecedingDot(match, response) {\n var before = match.input[match.index - 1];\n\n if (before === \".\") {\n response.ignoreMatch();\n }\n }\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n\n\n function compileMode(mode, parent) {\n var _ref3;\n\n var cmode =\n /** @type CompiledMode */\n mode;\n if (mode.compiled) return cmode;\n mode.compiled = true; // __beforeBegin is considered private API, internal use only\n\n mode.__beforeBegin = null;\n mode.keywords = mode.keywords || mode.beginKeywords;\n var keywordPattern = null;\n\n if (_typeof(mode.keywords) === \"object\") {\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n } // both are not allowed\n\n\n if (mode.lexemes && keywordPattern) {\n throw new Error(\"ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) \");\n } // `mode.lexemes` was the old standard before we added and now recommend\n // using `keywords.$pattern` to pass the keyword pattern\n\n\n cmode.keywordPatternRe = langRe(mode.lexemes || keywordPattern || /\\w+/, true);\n\n if (parent) {\n if (mode.beginKeywords) {\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfhasPrecedingDot;\n }\n\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(mode.begin);\n if (mode.endSameAsBegin) mode.end = mode.begin;\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(mode.end);\n cmode.terminator_end = source(mode.end) || '';\n\n if (mode.endsWithParent && parent.terminator_end) {\n cmode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;\n }\n }\n\n if (mode.illegal) cmode.illegalRe = langRe(mode.illegal); // eslint-disable-next-line no-undefined\n\n if (mode.relevance === undefined) mode.relevance = 1;\n if (!mode.contains) mode.contains = [];\n mode.contains = (_ref3 = []).concat.apply(_ref3, _toConsumableArray(mode.contains.map(function (c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n })));\n mode.contains.forEach(function (c) {\n compileMode(\n /** @type Mode */\n c, cmode);\n });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n } // self is not valid at the top-level\n\n\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n } // we need a null object, which inherit will guarantee\n\n\n language.classNameAliases = inherit(language.classNameAliases || {});\n return compileMode(\n /** @type Mode */\n language);\n}\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\n\n\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\n\n\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cached_variants) {\n mode.cached_variants = mode.variants.map(function (variant) {\n return inherit(mode, {\n variants: null\n }, variant);\n });\n } // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n\n\n if (mode.cached_variants) {\n return mode.cached_variants;\n } // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n\n\n if (dependencyOnParent(mode)) {\n return inherit(mode, {\n starts: mode.starts ? inherit(mode.starts) : null\n });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit(mode);\n } // no special dependency issues, just return ourselves\n\n\n return mode;\n}\n/***********************************************\n Keywords\n***********************************************/\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record} rawKeywords\n * @param {boolean} caseInsensitive\n */\n\n\nfunction compileKeywords(rawKeywords, caseInsensitive) {\n /** @type KeywordDict */\n var compiledKeywords = {};\n\n if (typeof rawKeywords === 'string') {\n // string\n splitAndCompile('keyword', rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function (className) {\n splitAndCompile(className, rawKeywords[className]);\n });\n }\n\n return compiledKeywords; // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} className\n * @param {string} keywordList\n */\n\n function splitAndCompile(className, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.toLowerCase();\n }\n\n keywordList.split(' ').forEach(function (keyword) {\n var pair = keyword.split('|');\n compiledKeywords[pair[0]] = [className, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\n\n\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\n\n\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\nvar version = \"10.4.1\"; // @ts-nocheck\n\nfunction hasValueOrEmptyAttribute(value) {\n return Boolean(value || value === \"\");\n}\n\nfunction BuildVuePlugin(hljs) {\n var Component = {\n props: [\"language\", \"code\", \"autodetect\"],\n data: function data() {\n return {\n detectedLanguage: \"\",\n unknownLanguage: false\n };\n },\n computed: {\n className: function className() {\n if (this.unknownLanguage) return \"\";\n return \"hljs \" + this.detectedLanguage;\n },\n highlighted: function highlighted() {\n // no idea what language to use, return raw code\n if (!this.autoDetect && !hljs.getLanguage(this.language)) {\n console.warn(\"The language \\\"\".concat(this.language, \"\\\" you specified could not be found.\"));\n this.unknownLanguage = true;\n return escapeHTML(this.code);\n }\n\n var result;\n\n if (this.autoDetect) {\n result = hljs.highlightAuto(this.code);\n this.detectedLanguage = result.language;\n } else {\n result = hljs.highlight(this.language, this.code, this.ignoreIllegals);\n this.detectedLanguage = this.language;\n }\n\n return result.value;\n },\n autoDetect: function autoDetect() {\n return !this.language || hasValueOrEmptyAttribute(this.autodetect);\n },\n ignoreIllegals: function ignoreIllegals() {\n return true;\n }\n },\n // this avoids needing to use a whole Vue compilation pipeline just\n // to build Highlight.js\n render: function render(createElement) {\n return createElement(\"pre\", {}, [createElement(\"code\", {\n \"class\": this.className,\n domProps: {\n innerHTML: this.highlighted\n }\n })]);\n } // template: `
`\n\n };\n var VuePlugin = {\n install: function install(Vue) {\n Vue.component('highlightjs', Component);\n }\n };\n return {\n Component: Component,\n VuePlugin: VuePlugin\n };\n}\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\nvar escape$1 = escapeHTML;\nvar inherit$1 = inherit;\nvar nodeStream$1 = utils.nodeStream,\n mergeStreams$1 = utils.mergeStreams;\nvar NO_MATCH = Symbol(\"nomatch\");\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\n\nvar HLJS = function HLJS(hljs) {\n // Convenience variables for build-in objects\n\n /** @type {unknown[]} */\n var ArrayProto = []; // Global internal variables used within the highlight.js library.\n\n /** @type {Record} */\n\n var languages = Object.create(null);\n /** @type {Record} */\n\n var aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n\n var plugins = []; // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n\n var SAFE_MODE = true;\n var fixMarkupRe = /(^(<[^>]+>|\\t|)+|\\n)/gm;\n var LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n\n var PLAINTEXT_LANGUAGE = {\n disableAutodetect: true,\n name: 'Plain text',\n contains: []\n }; // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n\n /** @type HLJSOptions */\n\n var options = {\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n tabReplace: null,\n useBR: false,\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n\n\n function blockLanguage(block) {\n var classes = block.className + ' ';\n classes += block.parentNode ? block.parentNode.className : ''; // language-* takes precedence over non-prefixed class names.\n\n var match = options.languageDetectRe.exec(classes);\n\n if (match) {\n var language = getLanguage(match[1]);\n\n if (!language) {\n console.warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n console.warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n\n return language ? match[1] : 'no-highlight';\n }\n\n return classes.split(/\\s+/).find(function (_class) {\n return shouldNotHighlight(_class) || getLanguage(_class);\n });\n }\n /**\n * Core highlighting function.\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} code - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode} [continuation] - current continuation mode, if any\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n\n\n function highlight(languageName, code, ignoreIllegals, continuation) {\n /** @type {{ code: string, language: string, result?: any }} */\n var context = {\n code: code,\n language: languageName\n }; // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n\n fire(\"before:highlight\", context); // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n\n var result = context.result ? context.result : _highlight(context.language, context.code, ignoreIllegals, continuation);\n result.code = context.code; // the plugin can change anything in result to suite it\n\n fire(\"after:highlight\", result);\n return result;\n }\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} code - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n\n\n function _highlight(languageName, code, ignoreIllegals, continuation) {\n var codeToHighlight = code;\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {RegExpMatchArray} match - regexp match data\n * @returns {KeywordData | false}\n */\n\n function keywordData(mode, match) {\n var matchText = language.case_insensitive ? match[0].toLowerCase() : match[0];\n return Object.prototype.hasOwnProperty.call(mode.keywords, matchText) && mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n var lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n var match = top.keywordPatternRe.exec(modeBuffer);\n var buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n var data = keywordData(top, match);\n\n if (data) {\n var _data = _slicedToArray(data, 2),\n kind = _data[0],\n keywordRelevance = _data[1];\n\n emitter.addText(buf);\n buf = \"\";\n relevance += keywordRelevance;\n var cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n } else {\n buf += match[0];\n }\n\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n\n var result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] =\n /** @type {CompiledMode} */\n result.top;\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n } // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n\n\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n\n emitter.addSublanguage(result.emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n\n modeBuffer = '';\n }\n /**\n * @param {Mode} mode - new mode to start\n */\n\n\n function startNewMode(mode) {\n if (mode.className) {\n emitter.openNode(language.classNameAliases[mode.className] || mode.className);\n }\n\n top = Object.create(mode, {\n parent: {\n value: top\n }\n });\n return top;\n }\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n\n\n function endOfMode(mode, match, matchPlusRemainder) {\n var matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n var resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.ignore) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n\n return mode;\n }\n } // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n\n\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n\n\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexs to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n\n\n function doBeginMatch(match) {\n var lexeme = match[0];\n var newMode = match.rule;\n var resp = new Response(newMode); // first internal before callbacks, then the public ones\n\n var beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n\n for (var _i2 = 0, _beforeCallbacks = beforeCallbacks; _i2 < _beforeCallbacks.length; _i2++) {\n var cb = _beforeCallbacks[_i2];\n if (!cb) continue;\n cb(match, resp);\n if (resp.ignore) return doIgnore(lexeme);\n }\n\n if (newMode && newMode.endSameAsBegin) {\n newMode.endRe = escape(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n\n processBuffer();\n\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n\n startNewMode(newMode); // if (mode[\"after:begin\"]) {\n // let resp = new Response(mode);\n // mode[\"after:begin\"](match, resp);\n // }\n\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n\n\n function doEndMatch(match) {\n var lexeme = match[0];\n var matchPlusRemainder = codeToHighlight.substr(match.index);\n var endMode = endOfMode(top, match, matchPlusRemainder);\n\n if (!endMode) {\n return NO_MATCH;\n }\n\n var origin = top;\n\n if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n\n processBuffer();\n\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n\n do {\n if (top.className) {\n emitter.closeNode();\n }\n\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n\n top = top.parent;\n } while (top !== endMode.parent);\n\n if (endMode.starts) {\n if (endMode.endSameAsBegin) {\n endMode.starts.endRe = endMode.endRe;\n }\n\n startNewMode(endMode.starts);\n }\n\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n var list = [];\n\n for (var current = top; current !== language; current = current.parent) {\n if (current.className) {\n list.unshift(current.className);\n }\n }\n\n list.forEach(function (item) {\n return emitter.openNode(item);\n });\n }\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n\n\n var lastMatch = {};\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceeding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n\n function processLexeme(textBeforeMatch, match) {\n var lexeme = match && match[0]; // add non-matched text to the current mode buffer\n\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n } // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n\n\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n var err = new Error('0 width match regex');\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n\n return 1;\n }\n\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n\n /** @type {AnnotatedError} */\n var _err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.className || '') + '\"');\n\n _err.mode = top;\n throw _err;\n } else if (match.type === \"end\") {\n var processed = doEndMatch(match);\n\n if (processed !== NO_MATCH) {\n return processed;\n }\n } // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n\n\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n } // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n\n\n if (iterations > 100000 && iterations > match.index * 3) {\n var _err2 = new Error('potential infinite loop, way more iterations than matches');\n\n throw _err2;\n }\n /*\n Why might be find ourselves here? Only one occasion now. An end match that was\n triggered but could not be completed. When might this happen? When an `endSameasBegin`\n rule sets the end rule to a specific match. Since the overall mode termination rule that's\n being used to scan the text isn't recompiled that means that any match that LOOKS like\n the end (but is not, because it is not an exact match to the beginning) will\n end up here. A definite end match, but when `doEndMatch` tries to \"reapply\"\n the end rule and fails to match, we wind up here, and just silently ignore the end.\n This causes no real harm other than stopping a few times too many.\n */\n\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n var language = getLanguage(languageName);\n\n if (!language) {\n console.error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n var md = compileLanguage(language);\n var result = '';\n /** @type {CompiledMode} */\n\n var top = continuation || md;\n /** @type Record */\n\n var continuations = {}; // keep continuations for sub-languages\n\n var emitter = new options.__emitter(options);\n processContinuations();\n var modeBuffer = '';\n var relevance = 0;\n var index = 0;\n var iterations = 0;\n var resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n\n top.matcher.lastIndex = index;\n var match = top.matcher.exec(codeToHighlight); // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n var beforeMatch = codeToHighlight.substring(index, match.index);\n var processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n return {\n relevance: relevance,\n value: result,\n language: languageName,\n illegal: false,\n emitter: emitter,\n top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n illegal: true,\n illegalBy: {\n msg: err.message,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode\n },\n sofar: result,\n relevance: 0,\n value: escape$1(codeToHighlight),\n emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n illegal: false,\n relevance: 0,\n value: escape$1(codeToHighlight),\n emitter: emitter,\n language: languageName,\n top: top,\n errorRaised: err\n };\n } else {\n throw err;\n }\n }\n }\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n\n\n function justTextHighlightResult(code) {\n var result = {\n relevance: 0,\n emitter: new options.__emitter(options),\n value: escape$1(code),\n illegal: false,\n top: PLAINTEXT_LANGUAGE\n };\n result.emitter.addText(code);\n return result;\n }\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - second_best (object with the same structure for second-best heuristically\n detected language, may be absent)\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n\n\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n var plaintext = justTextHighlightResult(code);\n var results = languageSubset.filter(getLanguage).filter(autoDetection).map(function (name) {\n return _highlight(name, code, false);\n });\n results.unshift(plaintext); // plaintext is always an option\n\n var sorted = results.sort(function (a, b) {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance; // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n } // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n\n\n return 0;\n });\n\n var _sorted = _slicedToArray(sorted, 2),\n best = _sorted[0],\n secondBest = _sorted[1];\n /** @type {AutoHighlightResult} */\n\n\n var result = best;\n result.second_best = secondBest;\n return result;\n }\n /**\n Post-processing of the highlighted markup:\n - replace TABs with something more useful\n - replace real line-breaks with '
' for non-pre containers\n @param {string} html\n @returns {string}\n */\n\n\n function fixMarkup(html) {\n if (!(options.tabReplace || options.useBR)) {\n return html;\n }\n\n return html.replace(fixMarkupRe, function (match) {\n if (match === '\\n') {\n return options.useBR ? '
' : match;\n } else if (options.tabReplace) {\n return match.replace(/\\t/g, options.tabReplace);\n }\n\n return match;\n });\n }\n /**\n * Builds new class name for block given the language name\n *\n * @param {string} prevClassName\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n\n\n function buildClassName(prevClassName, currentLang, resultLang) {\n var language = currentLang ? aliases[currentLang] : resultLang;\n var result = [prevClassName.trim()];\n\n if (!prevClassName.match(/\\bhljs\\b/)) {\n result.push('hljs');\n }\n\n if (!prevClassName.includes(language)) {\n result.push(language);\n }\n\n return result.join(' ').trim();\n }\n /**\n * Applies highlighting to a DOM node containing code. Accepts a DOM node and\n * two optional parameters for fixMarkup.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n\n\n function highlightBlock(element) {\n /** @type HTMLElement */\n var node = null;\n var language = blockLanguage(element);\n if (shouldNotHighlight(language)) return;\n fire(\"before:highlightBlock\", {\n block: element,\n language: language\n });\n\n if (options.useBR) {\n node = document.createElement('div');\n node.innerHTML = element.innerHTML.replace(/\\n/g, '').replace(//g, '\\n');\n } else {\n node = element;\n }\n\n var text = node.textContent;\n var result = language ? highlight(language, text, true) : highlightAuto(text);\n var originalStream = nodeStream$1(node);\n\n if (originalStream.length) {\n var resultNode = document.createElement('div');\n resultNode.innerHTML = result.value;\n result.value = mergeStreams$1(originalStream, nodeStream$1(resultNode), text);\n }\n\n result.value = fixMarkup(result.value);\n fire(\"after:highlightBlock\", {\n block: element,\n result: result\n });\n element.innerHTML = result.value;\n element.className = buildClassName(element.className, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relavance: result.relevance\n };\n\n if (result.second_best) {\n element.second_best = {\n language: result.second_best.language,\n // TODO: remove with version 11.0\n re: result.second_best.relevance,\n relavance: result.second_best.relevance\n };\n }\n }\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n\n\n function configure(userOptions) {\n if (userOptions.useBR) {\n console.warn(\"'useBR' option is deprecated and will be removed entirely in v11.0\");\n console.warn(\"Please see https://github.com/highlightjs/highlight.js/issues/2559\");\n }\n\n options = inherit$1(options, userOptions);\n }\n /**\n * Highlights to all
 blocks on a page\n   *\n   * @type {Function & {called?: boolean}}\n   */\n\n\n  var initHighlighting = function initHighlighting() {\n    if (initHighlighting.called) return;\n    initHighlighting.called = true;\n    var blocks = document.querySelectorAll('pre code');\n    ArrayProto.forEach.call(blocks, highlightBlock);\n  }; // Higlights all when DOMContentLoaded fires\n\n\n  function initHighlightingOnLoad() {\n    // @ts-ignore\n    window.addEventListener('DOMContentLoaded', initHighlighting, false);\n  }\n  /**\n   * Register a language grammar module\n   *\n   * @param {string} languageName\n   * @param {LanguageFn} languageDefinition\n   */\n\n\n  function registerLanguage(languageName, languageDefinition) {\n    var lang = null;\n\n    try {\n      lang = languageDefinition(hljs);\n    } catch (error) {\n      console.error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName)); // hard or soft error\n\n      if (!SAFE_MODE) {\n        throw error;\n      } else {\n        console.error(error);\n      } // languages that have serious errors are replaced with essentially a\n      // \"plaintext\" stand-in so that the code blocks will still get normal\n      // css classes applied to them - and one bad language won't break the\n      // entire highlighter\n\n\n      lang = PLAINTEXT_LANGUAGE;\n    } // give it a temporary name if it doesn't have one in the meta-data\n\n\n    if (!lang.name) lang.name = languageName;\n    languages[languageName] = lang;\n    lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n    if (lang.aliases) {\n      registerAliases(lang.aliases, {\n        languageName: languageName\n      });\n    }\n  }\n  /**\n   * @returns {string[]} List of language internal names\n   */\n\n\n  function listLanguages() {\n    return Object.keys(languages);\n  }\n  /**\n    intended usage: When one language truly requires another\n     Unlike `getLanguage`, this will throw when the requested language\n    is not available.\n     @param {string} name - name of the language to fetch/require\n    @returns {Language | never}\n  */\n\n\n  function requireLanguage(name) {\n    console.warn(\"requireLanguage is deprecated and will be removed entirely in the future.\");\n    console.warn(\"Please see https://github.com/highlightjs/highlight.js/pull/2844\");\n    var lang = getLanguage(name);\n\n    if (lang) {\n      return lang;\n    }\n\n    var err = new Error('The \\'{}\\' language is required, but not loaded.'.replace('{}', name));\n    throw err;\n  }\n  /**\n   * @param {string} name - name of the language to retrieve\n   * @returns {Language | undefined}\n   */\n\n\n  function getLanguage(name) {\n    name = (name || '').toLowerCase();\n    return languages[name] || languages[aliases[name]];\n  }\n  /**\n   *\n   * @param {string|string[]} aliasList - single alias or list of aliases\n   * @param {{languageName: string}} opts\n   */\n\n\n  function registerAliases(aliasList, _ref4) {\n    var languageName = _ref4.languageName;\n\n    if (typeof aliasList === 'string') {\n      aliasList = [aliasList];\n    }\n\n    aliasList.forEach(function (alias) {\n      aliases[alias] = languageName;\n    });\n  }\n  /**\n   * Determines if a given language has auto-detection enabled\n   * @param {string} name - name of the language\n   */\n\n\n  function autoDetection(name) {\n    var lang = getLanguage(name);\n    return lang && !lang.disableAutodetect;\n  }\n  /**\n   * @param {HLJSPlugin} plugin\n   */\n\n\n  function addPlugin(plugin) {\n    plugins.push(plugin);\n  }\n  /**\n   *\n   * @param {PluginEvent} event\n   * @param {any} args\n   */\n\n\n  function fire(event, args) {\n    var cb = event;\n    plugins.forEach(function (plugin) {\n      if (plugin[cb]) {\n        plugin[cb](args);\n      }\n    });\n  }\n  /**\n  Note: fixMarkup is deprecated and will be removed entirely in v11\n   @param {string} arg\n  @returns {string}\n  */\n\n\n  function deprecateFixMarkup(arg) {\n    console.warn(\"fixMarkup is deprecated and will be removed entirely in v11.0\");\n    console.warn(\"Please see https://github.com/highlightjs/highlight.js/issues/2534\");\n    return fixMarkup(arg);\n  }\n  /* Interface definition */\n\n\n  Object.assign(hljs, {\n    highlight: highlight,\n    highlightAuto: highlightAuto,\n    fixMarkup: deprecateFixMarkup,\n    highlightBlock: highlightBlock,\n    configure: configure,\n    initHighlighting: initHighlighting,\n    initHighlightingOnLoad: initHighlightingOnLoad,\n    registerLanguage: registerLanguage,\n    listLanguages: listLanguages,\n    getLanguage: getLanguage,\n    registerAliases: registerAliases,\n    requireLanguage: requireLanguage,\n    autoDetection: autoDetection,\n    inherit: inherit$1,\n    addPlugin: addPlugin,\n    // plugins for frameworks\n    vuePlugin: BuildVuePlugin(hljs).VuePlugin\n  });\n\n  hljs.debugMode = function () {\n    SAFE_MODE = false;\n  };\n\n  hljs.safeMode = function () {\n    SAFE_MODE = true;\n  };\n\n  hljs.versionString = version;\n\n  for (var key in MODES) {\n    // @ts-ignore\n    if (_typeof(MODES[key]) === \"object\") {\n      // @ts-ignore\n      deepFreezeEs6(MODES[key]);\n    }\n  } // merge all the modes/regexs into our main object\n\n\n  Object.assign(hljs, MODES);\n  return hljs;\n}; // export an \"instance\" of the highlighter\n\n\nvar highlight = HLJS({});\nmodule.exports = highlight;","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev \nWebsite: http://www.json.org\nCategory: common, protocols\n*/\nfunction json(hljs) {\n  var LITERALS = {\n    literal: 'true false null'\n  };\n  var ALLOWED_COMMENTS = [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE];\n  var TYPES = [hljs.QUOTE_STRING_MODE, hljs.C_NUMBER_MODE];\n  var VALUE_CONTAINER = {\n    end: ',',\n    endsWithParent: true,\n    excludeEnd: true,\n    contains: TYPES,\n    keywords: LITERALS\n  };\n  var OBJECT = {\n    begin: /\\{/,\n    end: /\\}/,\n    contains: [{\n      className: 'attr',\n      begin: /\"/,\n      end: /\"/,\n      contains: [hljs.BACKSLASH_ESCAPE],\n      illegal: '\\\\n'\n    }, hljs.inherit(VALUE_CONTAINER, {\n      begin: /:/\n    })].concat(ALLOWED_COMMENTS),\n    illegal: '\\\\S'\n  };\n  var ARRAY = {\n    begin: '\\\\[',\n    end: '\\\\]',\n    contains: [hljs.inherit(VALUE_CONTAINER)],\n    // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents\n    illegal: '\\\\S'\n  };\n  TYPES.push(OBJECT, ARRAY);\n  ALLOWED_COMMENTS.forEach(function (rule) {\n    TYPES.push(rule);\n  });\n  return {\n    name: 'JSON',\n    contains: TYPES,\n    keywords: LITERALS,\n    illegal: '\\\\S'\n  };\n}\n\nmodule.exports = json;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * clipboard.js v2.0.4\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n!function (t, e) {\n  \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = e() : \"function\" == typeof define && define.amd ? define([], e) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports.ClipboardJS = e() : t.ClipboardJS = e();\n}(this, function () {\n  return function (n) {\n    var o = {};\n\n    function r(t) {\n      if (o[t]) return o[t].exports;\n      var e = o[t] = {\n        i: t,\n        l: !1,\n        exports: {}\n      };\n      return n[t].call(e.exports, e, e.exports, r), e.l = !0, e.exports;\n    }\n\n    return r.m = n, r.c = o, r.d = function (t, e, n) {\n      r.o(t, e) || Object.defineProperty(t, e, {\n        enumerable: !0,\n        get: n\n      });\n    }, r.r = function (t) {\n      \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n        value: \"Module\"\n      }), Object.defineProperty(t, \"__esModule\", {\n        value: !0\n      });\n    }, r.t = function (e, t) {\n      if (1 & t && (e = r(e)), 8 & t) return e;\n      if (4 & t && \"object\" == _typeof(e) && e && e.__esModule) return e;\n      var n = Object.create(null);\n      if (r.r(n), Object.defineProperty(n, \"default\", {\n        enumerable: !0,\n        value: e\n      }), 2 & t && \"string\" != typeof e) for (var o in e) {\n        r.d(n, o, function (t) {\n          return e[t];\n        }.bind(null, o));\n      }\n      return n;\n    }, r.n = function (t) {\n      var e = t && t.__esModule ? function () {\n        return t[\"default\"];\n      } : function () {\n        return t;\n      };\n      return r.d(e, \"a\", e), e;\n    }, r.o = function (t, e) {\n      return Object.prototype.hasOwnProperty.call(t, e);\n    }, r.p = \"\", r(r.s = 0);\n  }([function (t, e, n) {\n    \"use strict\";\n\n    var r = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? function (t) {\n      return _typeof(t);\n    } : function (t) {\n      return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : _typeof(t);\n    },\n        i = function () {\n      function o(t, e) {\n        for (var n = 0; n < e.length; n++) {\n          var o = e[n];\n          o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(t, o.key, o);\n        }\n      }\n\n      return function (t, e, n) {\n        return e && o(t.prototype, e), n && o(t, n), t;\n      };\n    }(),\n        a = o(n(1)),\n        c = o(n(3)),\n        u = o(n(4));\n\n    function o(t) {\n      return t && t.__esModule ? t : {\n        \"default\": t\n      };\n    }\n\n    var l = function (t) {\n      function o(t, e) {\n        !function (t, e) {\n          if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n        }(this, o);\n\n        var n = function (t, e) {\n          if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n          return !e || \"object\" != _typeof(e) && \"function\" != typeof e ? t : e;\n        }(this, (o.__proto__ || Object.getPrototypeOf(o)).call(this));\n\n        return n.resolveOptions(e), n.listenClick(t), n;\n      }\n\n      return function (t, e) {\n        if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(e));\n        t.prototype = Object.create(e && e.prototype, {\n          constructor: {\n            value: t,\n            enumerable: !1,\n            writable: !0,\n            configurable: !0\n          }\n        }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n      }(o, c[\"default\"]), i(o, [{\n        key: \"resolveOptions\",\n        value: function value() {\n          var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};\n          this.action = \"function\" == typeof t.action ? t.action : this.defaultAction, this.target = \"function\" == typeof t.target ? t.target : this.defaultTarget, this.text = \"function\" == typeof t.text ? t.text : this.defaultText, this.container = \"object\" === r(t.container) ? t.container : document.body;\n        }\n      }, {\n        key: \"listenClick\",\n        value: function value(t) {\n          var e = this;\n          this.listener = (0, u[\"default\"])(t, \"click\", function (t) {\n            return e.onClick(t);\n          });\n        }\n      }, {\n        key: \"onClick\",\n        value: function value(t) {\n          var e = t.delegateTarget || t.currentTarget;\n          this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new a[\"default\"]({\n            action: this.action(e),\n            target: this.target(e),\n            text: this.text(e),\n            container: this.container,\n            trigger: e,\n            emitter: this\n          });\n        }\n      }, {\n        key: \"defaultAction\",\n        value: function value(t) {\n          return s(\"action\", t);\n        }\n      }, {\n        key: \"defaultTarget\",\n        value: function value(t) {\n          var e = s(\"target\", t);\n          if (e) return document.querySelector(e);\n        }\n      }, {\n        key: \"defaultText\",\n        value: function value(t) {\n          return s(\"text\", t);\n        }\n      }, {\n        key: \"destroy\",\n        value: function value() {\n          this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null);\n        }\n      }], [{\n        key: \"isSupported\",\n        value: function value() {\n          var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [\"copy\", \"cut\"],\n              e = \"string\" == typeof t ? [t] : t,\n              n = !!document.queryCommandSupported;\n          return e.forEach(function (t) {\n            n = n && !!document.queryCommandSupported(t);\n          }), n;\n        }\n      }]), o;\n    }();\n\n    function s(t, e) {\n      var n = \"data-clipboard-\" + t;\n      if (e.hasAttribute(n)) return e.getAttribute(n);\n    }\n\n    t.exports = l;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var o,\n        r = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? function (t) {\n      return _typeof(t);\n    } : function (t) {\n      return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : _typeof(t);\n    },\n        i = function () {\n      function o(t, e) {\n        for (var n = 0; n < e.length; n++) {\n          var o = e[n];\n          o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(t, o.key, o);\n        }\n      }\n\n      return function (t, e, n) {\n        return e && o(t.prototype, e), n && o(t, n), t;\n      };\n    }(),\n        a = n(2),\n        c = (o = a) && o.__esModule ? o : {\n      \"default\": o\n    };\n\n    var u = function () {\n      function e(t) {\n        !function (t, e) {\n          if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n        }(this, e), this.resolveOptions(t), this.initSelection();\n      }\n\n      return i(e, [{\n        key: \"resolveOptions\",\n        value: function value() {\n          var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};\n          this.action = t.action, this.container = t.container, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = \"\";\n        }\n      }, {\n        key: \"initSelection\",\n        value: function value() {\n          this.text ? this.selectFake() : this.target && this.selectTarget();\n        }\n      }, {\n        key: \"selectFake\",\n        value: function value() {\n          var t = this,\n              e = \"rtl\" == document.documentElement.getAttribute(\"dir\");\n          this.removeFake(), this.fakeHandlerCallback = function () {\n            return t.removeFake();\n          }, this.fakeHandler = this.container.addEventListener(\"click\", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement(\"textarea\"), this.fakeElem.style.fontSize = \"12pt\", this.fakeElem.style.border = \"0\", this.fakeElem.style.padding = \"0\", this.fakeElem.style.margin = \"0\", this.fakeElem.style.position = \"absolute\", this.fakeElem.style[e ? \"right\" : \"left\"] = \"-9999px\";\n          var n = window.pageYOffset || document.documentElement.scrollTop;\n          this.fakeElem.style.top = n + \"px\", this.fakeElem.setAttribute(\"readonly\", \"\"), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, c[\"default\"])(this.fakeElem), this.copyText();\n        }\n      }, {\n        key: \"removeFake\",\n        value: function value() {\n          this.fakeHandler && (this.container.removeEventListener(\"click\", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null);\n        }\n      }, {\n        key: \"selectTarget\",\n        value: function value() {\n          this.selectedText = (0, c[\"default\"])(this.target), this.copyText();\n        }\n      }, {\n        key: \"copyText\",\n        value: function value() {\n          var e = void 0;\n\n          try {\n            e = document.execCommand(this.action);\n          } catch (t) {\n            e = !1;\n          }\n\n          this.handleResult(e);\n        }\n      }, {\n        key: \"handleResult\",\n        value: function value(t) {\n          this.emitter.emit(t ? \"success\" : \"error\", {\n            action: this.action,\n            text: this.selectedText,\n            trigger: this.trigger,\n            clearSelection: this.clearSelection.bind(this)\n          });\n        }\n      }, {\n        key: \"clearSelection\",\n        value: function value() {\n          this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges();\n        }\n      }, {\n        key: \"destroy\",\n        value: function value() {\n          this.removeFake();\n        }\n      }, {\n        key: \"action\",\n        set: function set() {\n          var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : \"copy\";\n          if (this._action = t, \"copy\" !== this._action && \"cut\" !== this._action) throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n        },\n        get: function get() {\n          return this._action;\n        }\n      }, {\n        key: \"target\",\n        set: function set(t) {\n          if (void 0 !== t) {\n            if (!t || \"object\" !== (void 0 === t ? \"undefined\" : r(t)) || 1 !== t.nodeType) throw new Error('Invalid \"target\" value, use a valid Element');\n            if (\"copy\" === this.action && t.hasAttribute(\"disabled\")) throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n            if (\"cut\" === this.action && (t.hasAttribute(\"readonly\") || t.hasAttribute(\"disabled\"))) throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n            this._target = t;\n          }\n        },\n        get: function get() {\n          return this._target;\n        }\n      }]), e;\n    }();\n\n    t.exports = u;\n  }, function (t, e) {\n    t.exports = function (t) {\n      var e;\n      if (\"SELECT\" === t.nodeName) t.focus(), e = t.value;else if (\"INPUT\" === t.nodeName || \"TEXTAREA\" === t.nodeName) {\n        var n = t.hasAttribute(\"readonly\");\n        n || t.setAttribute(\"readonly\", \"\"), t.select(), t.setSelectionRange(0, t.value.length), n || t.removeAttribute(\"readonly\"), e = t.value;\n      } else {\n        t.hasAttribute(\"contenteditable\") && t.focus();\n        var o = window.getSelection(),\n            r = document.createRange();\n        r.selectNodeContents(t), o.removeAllRanges(), o.addRange(r), e = o.toString();\n      }\n      return e;\n    };\n  }, function (t, e) {\n    function n() {}\n\n    n.prototype = {\n      on: function on(t, e, n) {\n        var o = this.e || (this.e = {});\n        return (o[t] || (o[t] = [])).push({\n          fn: e,\n          ctx: n\n        }), this;\n      },\n      once: function once(t, e, n) {\n        var o = this;\n\n        function r() {\n          o.off(t, r), e.apply(n, arguments);\n        }\n\n        return r._ = e, this.on(t, r, n);\n      },\n      emit: function emit(t) {\n        for (var e = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[t] || []).slice(), o = 0, r = n.length; o < r; o++) {\n          n[o].fn.apply(n[o].ctx, e);\n        }\n\n        return this;\n      },\n      off: function off(t, e) {\n        var n = this.e || (this.e = {}),\n            o = n[t],\n            r = [];\n        if (o && e) for (var i = 0, a = o.length; i < a; i++) {\n          o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]);\n        }\n        return r.length ? n[t] = r : delete n[t], this;\n      }\n    }, t.exports = n;\n  }, function (t, e, n) {\n    var d = n(5),\n        h = n(6);\n\n    t.exports = function (t, e, n) {\n      if (!t && !e && !n) throw new Error(\"Missing required arguments\");\n      if (!d.string(e)) throw new TypeError(\"Second argument must be a String\");\n      if (!d.fn(n)) throw new TypeError(\"Third argument must be a Function\");\n      if (d.node(t)) return s = e, f = n, (l = t).addEventListener(s, f), {\n        destroy: function destroy() {\n          l.removeEventListener(s, f);\n        }\n      };\n      if (d.nodeList(t)) return a = t, c = e, u = n, Array.prototype.forEach.call(a, function (t) {\n        t.addEventListener(c, u);\n      }), {\n        destroy: function destroy() {\n          Array.prototype.forEach.call(a, function (t) {\n            t.removeEventListener(c, u);\n          });\n        }\n      };\n      if (d.string(t)) return o = t, r = e, i = n, h(document.body, o, r, i);\n      throw new TypeError(\"First argument must be a String, HTMLElement, HTMLCollection, or NodeList\");\n      var o, r, i, a, c, u, l, s, f;\n    };\n  }, function (t, n) {\n    n.node = function (t) {\n      return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType;\n    }, n.nodeList = function (t) {\n      var e = Object.prototype.toString.call(t);\n      return void 0 !== t && (\"[object NodeList]\" === e || \"[object HTMLCollection]\" === e) && \"length\" in t && (0 === t.length || n.node(t[0]));\n    }, n.string = function (t) {\n      return \"string\" == typeof t || t instanceof String;\n    }, n.fn = function (t) {\n      return \"[object Function]\" === Object.prototype.toString.call(t);\n    };\n  }, function (t, e, n) {\n    var a = n(7);\n\n    function i(t, e, n, o, r) {\n      var i = function (e, n, t, o) {\n        return function (t) {\n          t.delegateTarget = a(t.target, n), t.delegateTarget && o.call(e, t);\n        };\n      }.apply(this, arguments);\n\n      return t.addEventListener(n, i, r), {\n        destroy: function destroy() {\n          t.removeEventListener(n, i, r);\n        }\n      };\n    }\n\n    t.exports = function (t, e, n, o, r) {\n      return \"function\" == typeof t.addEventListener ? i.apply(null, arguments) : \"function\" == typeof n ? i.bind(null, document).apply(null, arguments) : (\"string\" == typeof t && (t = document.querySelectorAll(t)), Array.prototype.map.call(t, function (t) {\n        return i(t, e, n, o, r);\n      }));\n    };\n  }, function (t, e) {\n    if (\"undefined\" != typeof Element && !Element.prototype.matches) {\n      var n = Element.prototype;\n      n.matches = n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector;\n    }\n\n    t.exports = function (t, e) {\n      for (; t && 9 !== t.nodeType;) {\n        if (\"function\" == typeof t.matches && t.matches(e)) return t;\n        t = t.parentNode;\n      }\n    };\n  }]);\n});","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n(function () {\n  var context = this;\n  (function () {\n    (function () {\n      this.Rails = {\n        linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n        buttonClickSelector: {\n          selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n          exclude: 'form button'\n        },\n        inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n        formSubmitSelector: 'form',\n        formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n        formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n        formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n        fileInputSelector: 'input[name][type=file]:not([disabled])',\n        linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n        buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n      };\n    }).call(this);\n  }).call(context);\n  var Rails = context.Rails;\n  (function () {\n    (function () {\n      var nonce;\n      nonce = null;\n\n      Rails.loadCSPNonce = function () {\n        var ref;\n        return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n      };\n\n      Rails.cspNonce = function () {\n        return nonce != null ? nonce : Rails.loadCSPNonce();\n      };\n    }).call(this);\n    (function () {\n      var expando, m;\n      m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n      Rails.matches = function (element, selector) {\n        if (selector.exclude != null) {\n          return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n        } else {\n          return m.call(element, selector);\n        }\n      };\n\n      expando = '_ujsData';\n\n      Rails.getData = function (element, key) {\n        var ref;\n        return (ref = element[expando]) != null ? ref[key] : void 0;\n      };\n\n      Rails.setData = function (element, key, value) {\n        if (element[expando] == null) {\n          element[expando] = {};\n        }\n\n        return element[expando][key] = value;\n      };\n\n      Rails.$ = function (selector) {\n        return Array.prototype.slice.call(document.querySelectorAll(selector));\n      };\n    }).call(this);\n    (function () {\n      var $, csrfParam, csrfToken;\n      $ = Rails.$;\n\n      csrfToken = Rails.csrfToken = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-token]');\n        return meta && meta.content;\n      };\n\n      csrfParam = Rails.csrfParam = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-param]');\n        return meta && meta.content;\n      };\n\n      Rails.CSRFProtection = function (xhr) {\n        var token;\n        token = csrfToken();\n\n        if (token != null) {\n          return xhr.setRequestHeader('X-CSRF-Token', token);\n        }\n      };\n\n      Rails.refreshCSRFTokens = function () {\n        var param, token;\n        token = csrfToken();\n        param = csrfParam();\n\n        if (token != null && param != null) {\n          return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n            return input.value = token;\n          });\n        }\n      };\n    }).call(this);\n    (function () {\n      var CustomEvent, fire, matches, preventDefault;\n      matches = Rails.matches;\n      CustomEvent = window.CustomEvent;\n\n      if (typeof CustomEvent !== 'function') {\n        CustomEvent = function CustomEvent(event, params) {\n          var evt;\n          evt = document.createEvent('CustomEvent');\n          evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n          return evt;\n        };\n\n        CustomEvent.prototype = window.Event.prototype;\n        preventDefault = CustomEvent.prototype.preventDefault;\n\n        CustomEvent.prototype.preventDefault = function () {\n          var result;\n          result = preventDefault.call(this);\n\n          if (this.cancelable && !this.defaultPrevented) {\n            Object.defineProperty(this, 'defaultPrevented', {\n              get: function get() {\n                return true;\n              }\n            });\n          }\n\n          return result;\n        };\n      }\n\n      fire = Rails.fire = function (obj, name, data) {\n        var event;\n        event = new CustomEvent(name, {\n          bubbles: true,\n          cancelable: true,\n          detail: data\n        });\n        obj.dispatchEvent(event);\n        return !event.defaultPrevented;\n      };\n\n      Rails.stopEverything = function (e) {\n        fire(e.target, 'ujs:everythingStopped');\n        e.preventDefault();\n        e.stopPropagation();\n        return e.stopImmediatePropagation();\n      };\n\n      Rails.delegate = function (element, selector, eventType, handler) {\n        return element.addEventListener(eventType, function (e) {\n          var target;\n          target = e.target;\n\n          while (!(!(target instanceof Element) || matches(target, selector))) {\n            target = target.parentNode;\n          }\n\n          if (target instanceof Element && handler.call(target, e) === false) {\n            e.preventDefault();\n            return e.stopPropagation();\n          }\n        });\n      };\n    }).call(this);\n    (function () {\n      var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n      cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n      AcceptHeaders = {\n        '*': '*/*',\n        text: 'text/plain',\n        html: 'text/html',\n        xml: 'application/xml, text/xml',\n        json: 'application/json, text/javascript',\n        script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n      };\n\n      Rails.ajax = function (options) {\n        var xhr;\n        options = prepareOptions(options);\n        xhr = createXHR(options, function () {\n          var ref, response;\n          response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n          if (Math.floor(xhr.status / 100) === 2) {\n            if (typeof options.success === \"function\") {\n              options.success(response, xhr.statusText, xhr);\n            }\n          } else {\n            if (typeof options.error === \"function\") {\n              options.error(response, xhr.statusText, xhr);\n            }\n          }\n\n          return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n        });\n\n        if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n          return false;\n        }\n\n        if (xhr.readyState === XMLHttpRequest.OPENED) {\n          return xhr.send(options.data);\n        }\n      };\n\n      prepareOptions = function prepareOptions(options) {\n        options.url = options.url || location.href;\n        options.type = options.type.toUpperCase();\n\n        if (options.type === 'GET' && options.data) {\n          if (options.url.indexOf('?') < 0) {\n            options.url += '?' + options.data;\n          } else {\n            options.url += '&' + options.data;\n          }\n        }\n\n        if (AcceptHeaders[options.dataType] == null) {\n          options.dataType = '*';\n        }\n\n        options.accept = AcceptHeaders[options.dataType];\n\n        if (options.dataType !== '*') {\n          options.accept += ', */*; q=0.01';\n        }\n\n        return options;\n      };\n\n      createXHR = function createXHR(options, done) {\n        var xhr;\n        xhr = new XMLHttpRequest();\n        xhr.open(options.type, options.url, true);\n        xhr.setRequestHeader('Accept', options.accept);\n\n        if (typeof options.data === 'string') {\n          xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n        }\n\n        if (!options.crossDomain) {\n          xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n        }\n\n        CSRFProtection(xhr);\n        xhr.withCredentials = !!options.withCredentials;\n\n        xhr.onreadystatechange = function () {\n          if (xhr.readyState === XMLHttpRequest.DONE) {\n            return done(xhr);\n          }\n        };\n\n        return xhr;\n      };\n\n      processResponse = function processResponse(response, type) {\n        var parser, script;\n\n        if (typeof response === 'string' && typeof type === 'string') {\n          if (type.match(/\\bjson\\b/)) {\n            try {\n              response = JSON.parse(response);\n            } catch (error) {}\n          } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n            script = document.createElement('script');\n            script.setAttribute('nonce', cspNonce());\n            script.text = response;\n            document.head.appendChild(script).parentNode.removeChild(script);\n          } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n            parser = new DOMParser();\n            type = type.replace(/;.+/, '');\n\n            try {\n              response = parser.parseFromString(response, type);\n            } catch (error) {}\n          }\n        }\n\n        return response;\n      };\n\n      Rails.href = function (element) {\n        return element.href;\n      };\n\n      Rails.isCrossDomain = function (url) {\n        var e, originAnchor, urlAnchor;\n        originAnchor = document.createElement('a');\n        originAnchor.href = location.href;\n        urlAnchor = document.createElement('a');\n\n        try {\n          urlAnchor.href = url;\n          return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n        } catch (error) {\n          e = error;\n          return true;\n        }\n      };\n    }).call(this);\n    (function () {\n      var matches, toArray;\n      matches = Rails.matches;\n\n      toArray = function toArray(e) {\n        return Array.prototype.slice.call(e);\n      };\n\n      Rails.serializeElement = function (element, additionalParam) {\n        var inputs, params;\n        inputs = [element];\n\n        if (matches(element, 'form')) {\n          inputs = toArray(element.elements);\n        }\n\n        params = [];\n        inputs.forEach(function (input) {\n          if (!input.name || input.disabled) {\n            return;\n          }\n\n          if (matches(input, 'select')) {\n            return toArray(input.options).forEach(function (option) {\n              if (option.selected) {\n                return params.push({\n                  name: input.name,\n                  value: option.value\n                });\n              }\n            });\n          } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n            return params.push({\n              name: input.name,\n              value: input.value\n            });\n          }\n        });\n\n        if (additionalParam) {\n          params.push(additionalParam);\n        }\n\n        return params.map(function (param) {\n          if (param.name != null) {\n            return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n          } else {\n            return param;\n          }\n        }).join('&');\n      };\n\n      Rails.formElements = function (form, selector) {\n        if (matches(form, 'form')) {\n          return toArray(form.elements).filter(function (el) {\n            return matches(el, selector);\n          });\n        } else {\n          return toArray(form.querySelectorAll(selector));\n        }\n      };\n    }).call(this);\n    (function () {\n      var allowAction, fire, stopEverything;\n      fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n      Rails.handleConfirm = function (e) {\n        if (!allowAction(this)) {\n          return stopEverything(e);\n        }\n      };\n\n      allowAction = function allowAction(element) {\n        var answer, callback, message;\n        message = element.getAttribute('data-confirm');\n\n        if (!message) {\n          return true;\n        }\n\n        answer = false;\n\n        if (fire(element, 'confirm')) {\n          try {\n            answer = confirm(message);\n          } catch (error) {}\n\n          callback = fire(element, 'confirm:complete', [answer]);\n        }\n\n        return answer && callback;\n      };\n    }).call(this);\n    (function () {\n      var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, matches, setData, stopEverything;\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n      Rails.handleDisabledElement = function (e) {\n        var element;\n        element = this;\n\n        if (element.disabled) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.enableElement = function (e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n\n        if (matches(element, Rails.linkDisableSelector)) {\n          return enableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n          return enableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return enableFormElements(element);\n        }\n      };\n\n      Rails.disableElement = function (e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n\n        if (matches(element, Rails.linkDisableSelector)) {\n          return disableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n          return disableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return disableFormElements(element);\n        }\n      };\n\n      disableLinkElement = function disableLinkElement(element) {\n        var replacement;\n        replacement = element.getAttribute('data-disable-with');\n\n        if (replacement != null) {\n          setData(element, 'ujs:enable-with', element.innerHTML);\n          element.innerHTML = replacement;\n        }\n\n        element.addEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableLinkElement = function enableLinkElement(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n\n        if (originalText != null) {\n          element.innerHTML = originalText;\n          setData(element, 'ujs:enable-with', null);\n        }\n\n        element.removeEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      disableFormElements = function disableFormElements(form) {\n        return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n      };\n\n      disableFormElement = function disableFormElement(element) {\n        var replacement;\n        replacement = element.getAttribute('data-disable-with');\n\n        if (replacement != null) {\n          if (matches(element, 'button')) {\n            setData(element, 'ujs:enable-with', element.innerHTML);\n            element.innerHTML = replacement;\n          } else {\n            setData(element, 'ujs:enable-with', element.value);\n            element.value = replacement;\n          }\n        }\n\n        element.disabled = true;\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableFormElements = function enableFormElements(form) {\n        return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n      };\n\n      enableFormElement = function enableFormElement(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n\n        if (originalText != null) {\n          if (matches(element, 'button')) {\n            element.innerHTML = originalText;\n          } else {\n            element.value = originalText;\n          }\n\n          setData(element, 'ujs:enable-with', null);\n        }\n\n        element.disabled = false;\n        return setData(element, 'ujs:disabled', null);\n      };\n    }).call(this);\n    (function () {\n      var stopEverything;\n      stopEverything = Rails.stopEverything;\n\n      Rails.handleMethod = function (e) {\n        var csrfParam, csrfToken, form, formContent, href, link, method;\n        link = this;\n        method = link.getAttribute('data-method');\n\n        if (!method) {\n          return;\n        }\n\n        href = Rails.href(link);\n        csrfToken = Rails.csrfToken();\n        csrfParam = Rails.csrfParam();\n        form = document.createElement('form');\n        formContent = \"\";\n\n        if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n          formContent += \"\";\n        }\n\n        formContent += '';\n        form.method = 'post';\n        form.action = href;\n        form.target = link.target;\n        form.innerHTML = formContent;\n        form.style.display = 'none';\n        document.body.appendChild(form);\n        form.querySelector('[type=\"submit\"]').click();\n        return stopEverything(e);\n      };\n    }).call(this);\n    (function () {\n      var ajax,\n          fire,\n          getData,\n          isCrossDomain,\n          isRemote,\n          matches,\n          serializeElement,\n          setData,\n          stopEverything,\n          slice = [].slice;\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n      isRemote = function isRemote(element) {\n        var value;\n        value = element.getAttribute('data-remote');\n        return value != null && value !== 'false';\n      };\n\n      Rails.handleRemote = function (e) {\n        var button, data, dataType, element, method, url, withCredentials;\n        element = this;\n\n        if (!isRemote(element)) {\n          return true;\n        }\n\n        if (!fire(element, 'ajax:before')) {\n          fire(element, 'ajax:stopped');\n          return false;\n        }\n\n        withCredentials = element.getAttribute('data-with-credentials');\n        dataType = element.getAttribute('data-type') || 'script';\n\n        if (matches(element, Rails.formSubmitSelector)) {\n          button = getData(element, 'ujs:submit-button');\n          method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n          url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n          if (method.toUpperCase() === 'GET') {\n            url = url.replace(/\\?.*$/, '');\n          }\n\n          if (element.enctype === 'multipart/form-data') {\n            data = new FormData(element);\n\n            if (button != null) {\n              data.append(button.name, button.value);\n            }\n          } else {\n            data = serializeElement(element, button);\n          }\n\n          setData(element, 'ujs:submit-button', null);\n          setData(element, 'ujs:submit-button-formmethod', null);\n          setData(element, 'ujs:submit-button-formaction', null);\n        } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n          method = element.getAttribute('data-method');\n          url = element.getAttribute('data-url');\n          data = serializeElement(element, element.getAttribute('data-params'));\n        } else {\n          method = element.getAttribute('data-method');\n          url = Rails.href(element);\n          data = element.getAttribute('data-params');\n        }\n\n        ajax({\n          type: method || 'GET',\n          url: url,\n          data: data,\n          dataType: dataType,\n          beforeSend: function beforeSend(xhr, options) {\n            if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n              return fire(element, 'ajax:send', [xhr]);\n            } else {\n              fire(element, 'ajax:stopped');\n              return false;\n            }\n          },\n          success: function success() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:success', args);\n          },\n          error: function error() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:error', args);\n          },\n          complete: function complete() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:complete', args);\n          },\n          crossDomain: isCrossDomain(url),\n          withCredentials: withCredentials != null && withCredentials !== 'false'\n        });\n        return stopEverything(e);\n      };\n\n      Rails.formSubmitButtonClick = function (e) {\n        var button, form;\n        button = this;\n        form = button.form;\n\n        if (!form) {\n          return;\n        }\n\n        if (button.name) {\n          setData(form, 'ujs:submit-button', {\n            name: button.name,\n            value: button.value\n          });\n        }\n\n        setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n        setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n        return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n      };\n\n      Rails.preventInsignificantClick = function (e) {\n        var data, insignificantMetaClick, link, metaClick, method, primaryMouseKey;\n        link = this;\n        method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n        data = link.getAttribute('data-params');\n        metaClick = e.metaKey || e.ctrlKey;\n        insignificantMetaClick = metaClick && method === 'GET' && !data;\n        primaryMouseKey = e.button === 0;\n\n        if (!primaryMouseKey || insignificantMetaClick) {\n          return e.stopImmediatePropagation();\n        }\n      };\n    }).call(this);\n    (function () {\n      var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n      fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n      if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n        if (jQuery.rails) {\n          throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n        }\n\n        jQuery.rails = Rails;\n        jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n          if (!options.crossDomain) {\n            return CSRFProtection(xhr);\n          }\n        });\n      }\n\n      Rails.start = function () {\n        if (window._rails_loaded) {\n          throw new Error('rails-ujs has already been loaded!');\n        }\n\n        window.addEventListener('pageshow', function () {\n          $(Rails.formEnableSelector).forEach(function (el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n          return $(Rails.linkDisableSelector).forEach(function (el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n        });\n        delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.linkClickSelector, 'click', disableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n        delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n        delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n        delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n        delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n        delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n          return setTimeout(function () {\n            return disableElement(e);\n          }, 13);\n        });\n        delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n        delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n        document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n        document.addEventListener('DOMContentLoaded', loadCSPNonce);\n        return window._rails_loaded = true;\n      };\n\n      if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n        Rails.start();\n      }\n    }).call(this);\n  }).call(this);\n\n  if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n    module.exports = Rails;\n  } else if (typeof define === \"function\" && define.amd) {\n    define(Rails);\n  }\n}).call(this);","// TODO: fix defining elos components on JSX to use in tsx files\n// declare namespace JSX {\n//   interface IntrinsicElements {\n//     'stack-l': any\n//   }\n// }\n\n// Import Vanilla JS Components\nrequire('utils/dropdowns.ts');\nrequire('utils/clipboard.ts');\n\n// Rails UJS helper\nimport Rails from 'rails-ujs';\nvar ClipboardJS = require('clipboard/dist/clipboard.min.js');\nRails.start();\n\nfunction createClipboards() {\n  var clipboard = new ClipboardJS('.clipboard');\n  clipboard.on('success', function (e: any) {\n    var trigger = e.trigger;\n    // Get the previous tooltip text.\n    var previousTooltip = trigger.dataset.tooltip;\n    // Set the tooltip text to 'Copied' and display it for a bit.\n    trigger.dataset.tooltip = 'Copied!';\n    trigger.focus();\n    // On Mouse out, remove the forced focus state, and return the tooltip to the original text.\n    trigger.addEventListener('mouseleave', function () {\n      trigger.blur();\n      setTimeout(function () {\n        trigger.dataset.tooltip = previousTooltip;\n      }, 500)\n    })\n    e.clearSelection();\n  })\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  try {\n    createClipboards();\n  } catch (error) {\n    throw new Error(error);\n  }\n});\n\n// Import Every Layout Components\nfunction importAll (r: any) {\n  r.keys().forEach(r);\n}\nimportAll(require['context']('../elo/layout/', false, /\\.js$/));\n\n// highlighter\nimport hljs from 'highlight.js/lib/core';\nimport json from 'highlight.js/lib/languages/json';\nhljs.registerLanguage('json', json);\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  try {\n    hljs.initHighlightingOnLoad();\n  } catch (error) {\n    throw new Error(error);\n  }\n});\n\nimport 'application.scss';\nimport 'react-select/dist/react-select.css';\nimport 'simplebar/dist/simplebar.min.css';","// timeout id for nice show/hide handling\nvar hideMenuTimeout: any;\n\nfunction showMenu(anchor: HTMLElement, menu: HTMLElement):void {\n  menu.style.display = \"block\";\n  menu.style.top = `calc(${anchor.offsetTop}px + .5rem)`;\n  menu.style.right = `${anchor.offsetWidth + 40}px`;\n}\n\nfunction hideMenu(menu: HTMLElement, time?: number):void {\n  hideMenuTimeout = setTimeout(() => {\n    menu.style.display = \"none\";\n  }, time ? time : 300);\n}\n\n// TODO: make subnavs take up the entirety of the enu when the screen size reaches a threshold just larger that the width of the menu\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n\n  // Gather all subnavAnchors\n  var subnavs: any = document.getElementsByClassName(\"subnav\");\n\n  // iterate over them and position their submenus next to them\n  for (let subnavAnchor of subnavs) {\n\n    // find the Menu that is referenced by the subnav list-item\n    var menu: any = [].slice.call(document.querySelectorAll(`[name=${subnavAnchor.id}]`))[0];\n\n    // On list-item hover, show menu\n    subnavAnchor.addEventListener(\"mouseover\", () => {\n      clearTimeout(hideMenuTimeout);\n      showMenu(subnavAnchor, menu);\n    });\n\n    // Hide menu when user no longer hovers on subnav anchor item.\n    subnavAnchor.addEventListener(\"mouseleave\", () => {\n      hideMenu(menu);\n    });\n\n    // Override hide timeout from exiting the subnav anchor element to keep menu displayed.\n    menu.addEventListener(\"mouseover\", () => {\n      clearTimeout(hideMenuTimeout);\n      showMenu(subnavAnchor, menu);\n    });\n\n    // Hide menu when mouse leaves.\n    menu.addEventListener(\"mouseleave\", () => {\n      hideMenu(menu);\n    })\n\n    // If a user clicks on a menuItem, prevent it from floating\n    menu.addEventListener(\"click\", () => {\n      hideMenu(menu, 0);\n    })\n  }\n});","//  Clipboard!\nvar ClipboardJS = require('clipboard/dist/clipboard.min.js');\n\nfunction createClipboards() {\n  var clipboard = new ClipboardJS('.clipboard');\n  clipboard.on('success', function (e: any) {\n    var trigger = e.trigger;\n    // Get the previous tooltip text.\n    var previousTooltip = trigger.dataset.tooltip;\n    // Set the tooltip text to 'Copied' and display it for a bit.\n    trigger.dataset.tooltip = 'Copied!';\n    trigger.focus();\n    // On Mouse out, remove the forced focus state, and return the tooltip to the original text.\n    trigger.addEventListener('mouseleave', function () {\n      trigger.blur();\n      setTimeout(function () {\n        trigger.dataset.tooltip = previousTooltip;\n      }, 500)\n    })\n    e.clearSelection();\n  })\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  try {\n    createClipboards();\n  } catch (error) {\n    throw Error(error);\n  }\n});","var map = {\n\t\"./Box.js\": 850,\n\t\"./Center.js\": 851,\n\t\"./Cluster.js\": 852,\n\t\"./Cover.js\": 853,\n\t\"./Frame.js\": 854,\n\t\"./Grid.js\": 855,\n\t\"./Sidebar.js\": 856,\n\t\"./Stack.js\": 857,\n\t\"./StackSm.js\": 858,\n\t\"./Switcher.js\": 859\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 849;","// import \"./Box.css\";\n\n/**\n * @module box-l\n * @description\n * A custom element for generic boxes/containers\n * @property {string} padding=var(--s1) A CSS `padding` value\n * @property {string} borderWidth=var(--border-thin) A CSS `border-width` value\n * @property {boolean} invert=false Whether to apply an inverted theme. Only recommended for greyscale designs.\n */\nexport default class Box extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      this.i = `Box-${[this.padding, this.borderWidth, this.invert].join('')}`;\n      this.dataset.i = this.i;\n      if (!document.getElementById(this.i)) {\n        document.head.innerHTML += `\n        \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n\n  get padding() {\n    return this.getAttribute('padding') || 'var(--s0)';\n  }\n\n  set padding(val) {\n    return this.setAttribute('padding', val);\n  }\n\n  get borderWidth() {\n    return this.getAttribute('borderWidth') || '0';\n  }\n\n  set borderWidth(val) {\n    return this.setAttribute('borderWidth', val);\n  }\n\n  static get observedAttributes() {\n    return ['borderWidth', 'padding', 'invert'];\n  }\n\n  get invert() {\n    return this.hasAttribute('invert');\n  }\n\n  set invert(val) {\n    if (val) {\n      return this.setAttribute('invert', '');\n    } else {\n      return this.removeAttribute('invert');\n    }\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n  customElements.define('box-l', Box);\n}\n","/**\n * @module center-l\n * @description\n * A custom element for centering a block-level element horizontally,\n * with a max-width value representing the typographic measure\n * @property {string} max=var(--measure) A CSS `max-width` value\n * @property {boolean} andText=false Center align the text too (`text-align: center`)\n * @property {boolean} gutters=0 The minimum space on either side of the content\n * @property {boolean} intrinsic=false Center child elements based on their content width\n */\nexport default class Center extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      this.i = `Center-${[this.max, this.andText, this.gutters, this.intrinsic].join('')}`;\n      this.dataset.i = this.i;\n      if (!document.getElementById(this.i)) {\n        let styleEl = document.createElement('style');\n        styleEl.id = this.i;\n        styleEl.innerHTML = `\n          [data-i=\"${this.i}\"] {\n            max-width: ${this.max};\n            ${this.gutters ? `\n            padding-left: ${this.gutters};\n            padding-right: ${this.gutters};`\n            : ''}\n            ${this.andText ? `text-align: center;` : ''}\n            ${this.intrinsic ? `\n            display: flex;\n            flex-direction: column;\n            align-items: center;`\n            : ''}\n          }\n        `.replace(/\\s\\s+/g, ' ').trim();\n        document.head.appendChild(styleEl);\n      }\n    }\n  }\n\n  get max() {\n    return this.getAttribute('max') || 'var(--measure)';\n  }\n\n  set max(val) {\n    return this.setAttribute('max', val);\n  }\n\n  get andText() {\n    return this.hasAttribute('andText');\n  }\n\n  set andText(val) {\n    if (val) {\n      return this.setAttribute('andText', '');\n    } else {\n      return this.removeAttribute('andText');\n    }\n  }\n\n  get gutters() {\n    return this.getAttribute('gutters') || null;\n  }\n\n  set gutters(val) {\n    return this.setAttribute('gutters', val);\n  }\n\n  get intrinsic() {\n    return this.hasAttribute('intrinsic');\n  }\n\n  set intrinsic(val) {\n    if (val) {\n      return this.setAttribute('intrinsic', '');\n    } else {\n      return this.removeAttribute('intrinsic');\n    }\n  }\n\n  static get observedAttributes() {\n    return ['max', 'andText', 'gutters', 'intrinsic'];\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n\n  customElements.define('center-l', Center);\n}\n","// import \"./Cluster.css\";\n\n/**\n * @module cluster-l\n * @description\n * A custom element for grouping items, with control over the margin between them\n * @property {string} justify=center A CSS `justify-content` value\n * @property {string} align=center A CSS `align-items` value\n * @property {string} space=var(--s1) A CSS `margin` value. The minimum space between the clustered child elements.\n */\nexport default class Cluster extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      this.i = `Cluster-${[this.justify, this.align, this.space].join('')}`;\n      this.dataset.i = this.i;\n      if (!document.getElementById(this.i)) {\n        document.head.innerHTML += `\n        \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n\n  get justify() {\n    return this.getAttribute('justify') || 'center';\n  }\n\n  set justify(val) {\n    return this.setAttribute('justify', val);\n  }\n\n  get align() {\n    return this.getAttribute('align') || 'center';\n  }\n\n  set align(val) {\n    return this.setAttribute('align', val);\n  }\n\n  get space() {\n    return this.getAttribute('space') || 'var(--s1)';\n  }\n\n  set space(val) {\n    return this.setAttribute('space', val);\n  }\n\n  static get observedAttributes() {\n    return ['justify', 'align', 'space'];\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n  customElements.define('cluster-l', Cluster);\n}\n","// import \"./Cover.css\";\n\n/**\n * @module cover-l\n * @description\n * A custom element for covering a block-level element horizontally,\n * with a max-width value representing the typographic measure\n * @property {string} centered=h1 A simple selector such an element or class selector, representing the centered (main) element in the cover\n * @property {string} space=var(--s1) The minimum space between and around all of the child elements\n * @property {string} minHeight=100vh The minimum height for the **Cover**\n * @property {boolean} noPad=false Whether the spacing is also applied as padding to the container element\n */\nexport default class Cover extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      this.i = `Cover-${[this.centered, this.space, this.minHeight, this.noPad].join('')}`;\n      this.dataset.i = this.i;\n      if (!document.getElementById(this.i)) {\n        document.head.innerHTML += `\n        \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n\n  get centered() {\n    return this.getAttribute('centered') || 'h1';\n  }\n\n  set centered(val) {\n    return this.setAttribute('centered', val);\n  }\n\n  get space() {\n    return this.getAttribute('space') || 'var(--s1)';\n  }\n\n  set space(val) {\n    return this.setAttribute('space', val);\n  }\n\n  get minHeight() {\n    return this.getAttribute('minHeight') || '100vh';\n  }\n\n  set minHeight(val) {\n    return this.setAttribute('minHeight', val);\n  }\n\n  get noPad() {\n    return this.hasAttribute('noPad');\n  }\n\n  set noPad(val) {\n    if (val) {\n      return this.setAttribute('noPad', '');\n    } else {\n      return this.removeAttribute('noPad');\n    }\n  }\n\n  static get observedAttributes() {\n    return ['centered', 'space', 'minHeight', 'noPad'];\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n  customElements.define('cover-l', Cover);\n}\n","// import \"./Frame.css\";\n\n/**\n * @module frame-l\n * @description\n * A custom element for augmenting image ratios\n * @property {string} ratio=6:9 The element's aspect ratio\n */\nexport default class Frame extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      if (!this.children.length < 1) {\n        console.warn(' elements should have just one child element');\n      }\n      this.i = `Frame-${[this.ratio].join('')}`;\n      this.dataset.i = this.i;\n      if (!document.getElementById(this.i)) {\n        const ratio = this.ratio.split(':');\n        document.head.innerHTML += `\n        \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n\n  get ratio() {\n    return this.getAttribute('ratio') || '6:9';\n  }\n\n  set ratio(val) {\n    return this.setAttribute('ratio', val);\n  }\n\n  static get observedAttributes() {\n    return ['ratio'];\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n  customElements.define('frame-l', Frame);\n}\n","// import \"./Grid.css\";\n\n/**\n * @module grid-l\n * @description\n * A custom element for creating a responsive grid using the CSS Grid module\n * @property {string} min=250px A CSS length value representing x in `minmax(min(x, 100%), 1fr)`\n * @property {string} space=var(--s0) The space between grid cells\n */\nexport default class Grid extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      this.i = `Grid-${[this.min, this.space].join('')}`;\n      this.dataset.i = this.i;\n      if (!document.getElementById(this.i)) {\n        document.head.innerHTML += `\n        \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n\n  get min() {\n    return this.getAttribute('min') || '250px';\n  }\n\n  set min(val) {\n    return this.setAttribute('min', val);\n  }\n\n  get space() {\n    return this.getAttribute('space') || 'var(--s1)';\n  }\n\n  set space(val) {\n    return this.setAttribute('space', val);\n  }\n\n  static get observedAttributes() {\n    return ['min', 'space'];\n  }\n\n  connectedCallback() {\n    if ('ResizeObserver' in window && !CSS.supports('width', `min(${this.min}, 100%)`)) {\n      const test = document.createElement('div');\n      test.classList.add('test');\n      test.style.width = this.min;\n      this.appendChild(test);\n      const br = test.offsetWidth;\n      this.removeChild(test);\n\n      const ro = new ResizeObserver(entries => {\n        for (let entry of entries) {\n          const cr = entry.contentRect;\n          const q = cr.width > br;\n          this.classList.toggle('grid-l--above', q);\n        }\n      });\n\n      ro.observe(this);\n    }\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n  customElements.define('grid-l', Grid);\n}\n","// import \"./Sidebar.css\";\n\n/**\n * @module sidebar-l\n * @description\n * A custom element for placing two elements side-by-side. If space permits, the sidebar element has a set width, and the companion takes up the rest of the available horizontal space. If not, the elements are collapsed into a single column, each taking up 100% of the horizontal space.\n * @property {string} side=left Which element to treat as the sidebar (all values but \"left\" are considered \"right\")\n * @property {string} sideWidth Represents the width of the sidebar _when_ adjacent. If not set (`null`) it defaults to the sidebar's content width\n * @property {string} contentMin=50% A CSS **percentage** value. The minimum width of the content element in the horizontal configuration\n * @property {string} space=var(--s1) A CSS margin value representing the space between the two elements\n * @property {boolean} noStretch=false Make the adjacent elements adopt their natural height\n */\nexport default class Sidebar extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      if (!this.contentMin.includes('%')) {\n        console.warn('The value for each  `contentMin` property should be a percentage. Otherwise overflow is likely to occur');\n      }\n      this.i = `Sidebar-${[this.side, this.sideWidth, this.contentMin, this.space].join('')}`;\n      this.dataset.i = this.i;\n      this.adjustedSpace = this.space === '0' ? '0px' : this.space;\n      if (!document.getElementById(this.i)) {\n        document.head.innerHTML += `\n        \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n\n  get side() {\n    return this.getAttribute('side') || 'left';\n  }\n\n  set side(val) {\n    return this.setAttribute('side', val);\n  }\n\n  get sideWidth() {\n    return this.getAttribute('sideWidth') || null;\n  }\n\n  set sideWidth(val) {\n    return this.setAttribute('sideWidth', val);\n  }\n\n  get contentMin() {\n    return this.getAttribute('contentMin') || '50%';\n  }\n\n  set contentMin(val) {\n    return this.setAttribute('contentMin', val);\n  }\n\n  get space() {\n    return this.getAttribute('space') || 'var(--s1)';\n  }\n\n  set space(val) {\n    return this.setAttribute('space', val);\n  }\n\n  get noStretch() {\n    return this.hasAttribute('noStretch');\n  }\n\n  set noStretch(val) {\n    if (val) {\n      this.setAttribute('noStretch', '');\n    } else {\n      this.removeAttribute('noStretch');\n    }\n  }\n\n  static get observedAttributes() {\n    return ['side', 'sideWidth', 'contentMin', 'space', 'noStretch'];\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback(name) {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n  customElements.define('sidebar-l', Sidebar);\n}\n","// import \"./Stack.css\";\n\n/**\n * @module stack-l\n * @description\n * A custom element for injecting white space (margin) between flow\n * (block) elements along a vertical axis.\n * @property {string} space=var(--s1) A CSS `margin` value\n * @property {boolean} recursive=false Whether the spaces apply recursively (i.e. regardless of nesting level)\n * @property {number} splitAfter=null The element after which to _split_ the stack with an auto margin\n */\nexport default class Stack extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      this.i = `Stack-${[this.space, this.recursive, this.splitAfter].join('')}`;\n      this.dataset.i = this.i;\n      if (!document.getElementById(this.i)) {\n        document.head.innerHTML += `\n        \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n\n  get space() {\n    return this.getAttribute('space') || 'var(--s0)';\n  }\n\n  set space(val) {\n    return this.setAttribute('space', val);\n  }\n\n  get recursive() {\n    return this.hasAttribute('recursive');\n  }\n\n  set recursive(val) {\n    return this.setAttribute(val ? 'recursive' : '');\n  }\n\n  get splitAfter() {\n    return this.getAttribute('splitAfter') || null;\n  }\n\n  set splitAfter(val) {\n    return this.setAttribute('splitAfter', val);\n  }\n\n  static get observedAttributes() {\n    return ['space', 'recursive', 'splitAfter'];\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n  customElements.define('stack-l', Stack);\n}\n","// import \"./Stack.css\";\n\n/**\n * @module stack-l\n * @description\n * A custom element for injecting white space (margin) between flow\n * (block) elements along a vertical axis.\n * @property {string} space=var(--s1) A CSS `margin` value\n * @property {boolean} recursive=false Whether the spaces apply recursively (i.e. regardless of nesting level)\n * @property {number} splitAfter=null The element after which to _split_ the stack with an auto margin\n */\n  export default class StackSm extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      this.i = `Stack-${[this.space, this.recursive, this.splitAfter].join('')}`;\n      this.dataset.i = this.i;\n      if (!document.getElementById(this.i)) {\n        document.head.innerHTML += `\n        \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n\n  get space() {\n    return this.getAttribute('space') || 'var(--s-2)';\n  }\n\n  set space(val) {\n    return this.setAttribute('space', val);\n  }\n\n  get recursive() {\n    return this.hasAttribute('recursive');\n  }\n\n  set recursive(val) {\n    return this.setAttribute(val ? 'recursive' : '');\n  }\n\n  get splitAfter() {\n    return this.getAttribute('splitAfter') || null;\n  }\n\n  set splitAfter(val) {\n    return this.setAttribute('splitAfter', val);\n  }\n\n  static get observedAttributes() {\n    return ['space', 'recursive', 'splitAfter'];\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n  customElements.define('stack-sm', StackSm);\n}\n","// import \"./Switcher.css\";\n\n/**\n * @module switcher-l\n * @description Switch directly between horizontal and vertical layouts at a given (container width-based) breakpoint or 'threshold'\n * @property {string} threshold=var(--measure) A CSS `width` value (representing the 'container breakpoint')\n * @property {string} space=var(--s1) A CSS `margin` value\n * @property {integer} limit=4 A number representing the maximum number of items permitted for a horizontal layout\n */\nexport default class Switcher extends HTMLElement {\n  constructor() {\n    super();\n    this.render = () => {\n      this.i = `Switcher-${[this.threshold, this.space, this.limit].join('')}`;\n      this.dataset.i = this.i;\n      this.adjustedSpace = this.space === '0' ? '0px' : this.space;\n      if (!document.getElementById(this.i)) {\n        document.head.innerHTML += `\n          \n        `.replace(/\\s\\s+/g, ' ').trim();\n      }\n    }\n  }\n  get threshold() {\n    return this.getAttribute('threshold') || 'var(--measure)';\n  }\n\n  set threshold(val) {\n    return this.setAttribute('threshold', val);\n  }\n\n  get space() {\n    return this.getAttribute('space') || 'var(--s1)';\n  }\n\n  set space(val) {\n    return this.setAttribute('space', val);\n  }\n\n  get limit() {\n    return this.getAttribute('limit') || '5';\n  }\n\n  set limit(val) {\n    return this.getAttribute('limit', val);\n  }\n\n  static get observedAttributes() {\n    return ['threshold', 'space', 'limit'];\n  }\n\n  connectedCallback() {\n    this.render();\n  }\n\n  attributeChangedCallback() {\n    this.render();\n  }\n}\n\nif ('customElements' in window) {\n\n  customElements.define('switcher-l', Switcher);\n}\n","module.exports = __webpack_public_path__ + \"media/stylesheets/application-83c8bca1.scss\";"],"sourceRoot":""}