/******/ (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 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, null, new Date(null));
}
},
oneClickSelect: function oneClickSelect(e) {
var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : e.currentTarget;
// In here, "this" is the element
alert("here");
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();
}
},
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;
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