/******/ (function() { // webpackBootstrap /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ (function(module) { function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } var getDate = function getDate() { var d = new Date(); return d.toLocaleDateString(lang, { day: "numeric", month: "long", year: "numeric" }); }; String.prototype.toTitleCase = function () { return this.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); }; String.prototype.toSentenceCase = function () { return this.charAt(0).toUpperCase() + this.substr(1).toLowerCase(); }; String.prototype.toContent = function () { return this.replace(/-/g, " "); }; String.prototype.toPath = function () { return this.trim().replace(/ /g, "_").replace(/-/g, "_").replace(/[\/\W]/g, "").replace(/_/g, "-"); }; var font = { size: 0 }; var copyColourFallback = function copyColourFallback(copyInfo, attr) { console.log("fallback"); var textArea = document.createElement('textarea'); textArea.value = copyInfo; // Avoid scrolling to bottom textArea.style.top = '0'; textArea.style.left = '0'; textArea.style.position = 'fixed'; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { var successful = document.execCommand('copy'); setTimeout(function () { if (successful) { //copyInfo.success(); showMessage("Copied ".concat(attr, ".")); } else { //copyInfo.error(); showMessage("Copy failed (".concat(attr, ")."), false); } }, 1); } catch (err) { setTimeout(function () { showMessage("Copy failed (".concat(attr, "). ").concat(err.Message), false); //copyInfo.error(err); }, 1); } document.body.removeChild(textArea); }; var showMessage = function showMessage(m, s) { s = s == undefined ? true : s; console.log("Copy success (navigator.clipboard)"); var status = document.createElement("div"); status.setAttribute("id", "copystatus"); // status.style.display = "none"; status.innerHTML = "
" + m + "
"; document.querySelector("body").prepend(status); status.querySelector("div").style.top = window.scrollY + 100 + "px"; setTimeout(function () { status.remove(); }, 1000); }; var oneClickSelect = function oneClickSelect(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : e.currentTarget; // In here, "this" is the element var range, selection; if (window.getSelection) { selection = window.getSelection(); range = document.createRange(); range.selectNodeContents(t); selection.removeAllRanges(); selection.addRange(range); } else if (document.body.createTextRange) { range = document.body.createTextRange(); range.moveToElementText(t); range.select(); } }; var getURLVars = function getURLVars() { var oResult = {}; if (location.search.length > 0) { var aQueryString = location.search.substr(1).split("&"); for (var i = 0; i < aQueryString.length; i++) { var aTemp = aQueryString[i].split("="); if (aTemp[1].length > 0) { oResult[aTemp[0]] = decodeURIComponent(aTemp[1].replace(/\+/g, '%20')); } } } return oResult; }; module.exports = { url: function () { var v = {}; if (location.search.length > 0) { var qs = location.search.substr(1).split("&"); for (var i = 0; i < qs.length; i++) { var t = qs[i].split("="); if (t[1].length > 0) { v[t[0]] = decodeURIComponent(t[1].replace(/\+/g, '%20')); } } } return v; }(), cookie: { set: function set(name, value, expires, path, domain, secure) { switch (_typeof(expires)) { case "number": var d = new Date(); expires = d.setTime(d + expires * 24 * 60 * 60 * 1000); break; case "object": expires = expires.toGMTString(); } document.cookie = name + "=" + escape(value) + (expires ? "; expires=" + expires : "") + "; path=/" + (domain ? "; domain=" + domain : "") + (secure ? "; secure" : ""); }, get: function get(cname) { var name = cname + "="; var ca = document.cookie.split(";"); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) === " ") { c = c.substring(1); } if (c.indexOf(name) === 0) { return c.substring(name.length, c.length); } } return ""; }, remove: function remove(cname) { module.exports.cookie.set(cname, "", -1); } }, colour: { copy: function copy(w, t) { var c = t.parentNode.getAttribute("data-" + (w == "var" ? "token" : w)); c = w == "var" ? "var(".concat(c, ")") : c; if (navigator.clipboard) { navigator.clipboard.writeText(c).then(function () { showMessage("Copied ".concat(w, ".")); }, function (e) { copyColourFallback(c, w); }); } else { copyColourFallback(c, w); } }, positionTooltip: function positionTooltip() { document.querySelectorAll("color-pill > span").forEach(function (ps) { ps.querySelectorAll("div.tooltip-tc").forEach(function (tip) { if (font.size * 10 > ps.offsetLeft) { tip.setAttribute("tip-position", "right"); } else { tip.setAttribute("tip-position", "bottom"); } }); }); } }, getCSS: function getCSS(el, prop) { var b = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; return window.getComputedStyle(el, null).getPropertyValue(prop); }, init: function init() { var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var url = getURLVars(); font.size = parseFloat(getComputedStyle(document.documentElement).fontSize.replace("px", "")); if (url.p !== undefined) { document.querySelectorAll("main article:not([data-path^='" + url.p + "'])").forEach(function (a) { a.remove(); }); if (url.p == -1) { document.querySelector("title").innerHTML = "".concat(url.p.toContent().toTitleCase(), " | ").concat(document.querySelector("title").getAttribute("data-site")); } else { var theTitle = document.querySelectorAll("article"); if (theTitle.length > 0) { theTitle = theTitle[0].getAttribute("data-name").toContent().toTitleCase(); if (document.querySelector("article").getAttribute("data-display") !== null) { theTitle = document.querySelector("article").getAttribute("data-display"); } document.querySelector("title").innerHTML = "".concat(theTitle, " | ").concat(document.querySelector("title").getAttribute("data-site")); } } } if (typeof args.beforeArticleLoad == "function") args.beforeArticleLoad(); document.querySelectorAll("article").forEach(function (a) { if (a.getAttribute("data-template") != "none") { var observer = new IntersectionObserver(function (articles) { articles.forEach(function (article) { var a = article.target; // console.log("observing: ", { id: a.getAttribute("id"), intersecting: a.isIntersecting } ) // if (article.intersectionRatio > 0) { // console.log("Is interesecting: ", { id: article.target.getAttribute("id"), intersecting: article.isIntersecting, ratio: article.intersectionRatio } ) if (article.isIntersecting == true) { var path = a.getAttribute("data-path"); path = "patterns/" + (a.getAttribute("data-core") == "true" ? "core/" + path.substring(path.lastIndexOf("/") + 1) : a.getAttribute("data-path")) + "/index.html"; var ASYNC = true; var ajx = new XMLHttpRequest(); ajx.onreadystatechange = function () { if (ajx.readyState == 4) { observer.unobserve(article.target); switch (ajx.status) { case 200: a.innerHTML = a.innerHTML + ajx.responseText; a.style.height = "auto"; switch (a.getAttribute("data-template")) { case "pug": a.querySelectorAll("pre").forEach(function (aa) { aa.innerHTML = "").concat(aa.innerHTML, ""); }); break; case "md": a.querySelectorAll("code").forEach(function (aa) { aa.classList.add("language-html"); }); break; } a.querySelectorAll("code").forEach(function (c) { c.classList.add("line-numbers"); c.innerHTML = c.innerHTML.replace(/ span, color-pill > span").forEach(function (pill) { pill.onclick = function (e) { e.preventDefault(); var w = ""; if (e.metaKey || e.ctrlKey || e.keyCode == 91 || e.keyCode == 224) { w = "var"; } else if (e.altKey) { w = "token"; } else if (e.shiftKey) { w = "rgb"; } else { w = "hex"; } module.exports.colour.copy(w, pill); }; }); break; case 404: if (typeof args.notFound == "function") args.notFound(a, path); break; default: console.log("uncaught http error", { status: ajx.status, path: a.getAttribute("data-path") }); } a.style.height = "auto"; if (typeof args.done == "function") args.done(a); } }; ajx.open("GET", path, ASYNC); ajx.send(); } }); }, { threshold: 0, rootMargin: "100%" }); observer.observe(a); } else { a.style.height = "auto"; } }); if (typeof args.afterArticleLoad == "function") args.afterArticleLoad(); } }; /***/ }), /* 2 */ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { /* ********************************************** Begin prism-core.js ********************************************** */ /// var _self = (typeof window !== 'undefined') ? window // if in browser : ( (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) ? self // if in worker : {} // if in node js ); /** * Prism: Lightweight, robust, elegant syntax highlighting * * @license MIT * @author Lea Verou * @namespace * @public */ var Prism = (function (_self) { // Private helper vars var lang = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i; var uniqueId = 0; // The grammar object for plaintext var plainTextGrammar = {}; var _ = { /** * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load * additional languages or plugins yourself. * * By setting this value to `true`, Prism will not automatically highlight all code elements on the page. * * You obviously have to change this value before the automatic highlighting started. To do this, you can add an * empty Prism object into the global scope before loading the Prism script like this: * * ```js * window.Prism = window.Prism || {}; * Prism.manual = true; * // add a new