fix big screen rendering
Browse files- dist/distill.bundle.js +126 -126
- dist/distill.bundle.js.map +0 -0
- dist/main.bundle.js +83 -92
- dist/main.bundle.js.map +1 -1
- dist/style.css +2 -2
- src/style.css +2 -2
dist/distill.bundle.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
/******/ (() => { // webpackBootstrap
|
| 2 |
/******/ var __webpack_modules__ = ({
|
| 3 |
|
| 4 |
-
/***/
|
| 5 |
/***/ ((module, exports, __webpack_require__) => {
|
| 6 |
|
| 7 |
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); }
|
|
@@ -1446,17 +1446,17 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 1446 |
_iterator9.f();
|
| 1447 |
}
|
| 1448 |
if (frontMatter.bibliographyParsed) {
|
| 1449 |
-
var
|
| 1450 |
-
|
| 1451 |
try {
|
| 1452 |
-
for (
|
| 1453 |
-
var waitingCallback =
|
| 1454 |
waitingCallback();
|
| 1455 |
}
|
| 1456 |
} catch (err) {
|
| 1457 |
-
|
| 1458 |
} finally {
|
| 1459 |
-
|
| 1460 |
}
|
| 1461 |
}
|
| 1462 |
var footnotesList = document.querySelector("d-footnote-list");
|
|
@@ -1563,17 +1563,17 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 1563 |
}
|
| 1564 |
};
|
| 1565 |
// Add polyfill script tags
|
| 1566 |
-
var
|
| 1567 |
-
|
| 1568 |
try {
|
| 1569 |
-
for (
|
| 1570 |
-
var polyfill =
|
| 1571 |
addPolyfill(polyfill, polyfillLoaded);
|
| 1572 |
}
|
| 1573 |
} catch (err) {
|
| 1574 |
-
|
| 1575 |
} finally {
|
| 1576 |
-
|
| 1577 |
}
|
| 1578 |
}
|
| 1579 |
}, {
|
|
@@ -1657,16 +1657,16 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 1657 |
_classCallCheck(this, Article);
|
| 1658 |
_this5 = _callSuper(this, Article);
|
| 1659 |
new MutationObserver(function (mutations) {
|
| 1660 |
-
var
|
| 1661 |
-
|
| 1662 |
try {
|
| 1663 |
-
for (
|
| 1664 |
-
var mutation =
|
| 1665 |
-
var
|
| 1666 |
-
|
| 1667 |
try {
|
| 1668 |
-
for (
|
| 1669 |
-
var addedNode =
|
| 1670 |
switch (addedNode.nodeName) {
|
| 1671 |
case '#text':
|
| 1672 |
{
|
|
@@ -1684,15 +1684,15 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 1684 |
}
|
| 1685 |
}
|
| 1686 |
} catch (err) {
|
| 1687 |
-
|
| 1688 |
} finally {
|
| 1689 |
-
|
| 1690 |
}
|
| 1691 |
}
|
| 1692 |
} catch (err) {
|
| 1693 |
-
|
| 1694 |
} finally {
|
| 1695 |
-
|
| 1696 |
}
|
| 1697 |
}).observe(_this5, {
|
| 1698 |
childList: true
|
|
@@ -1998,11 +1998,11 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 1998 |
function parseBibtex(bibtex) {
|
| 1999 |
var bibliography = new Map();
|
| 2000 |
var parsedEntries = bibtexParse.toJSON(bibtex);
|
| 2001 |
-
var
|
| 2002 |
-
|
| 2003 |
try {
|
| 2004 |
-
for (
|
| 2005 |
-
var entry =
|
| 2006 |
// normalize tags; note entryTags is an object, not Map
|
| 2007 |
for (var _i = 0, _Object$entries = Object.entries(entry.entryTags); _i < _Object$entries.length; _i++) {
|
| 2008 |
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
@@ -2015,9 +2015,9 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 2015 |
bibliography.set(entry.citationKey, entry.entryTags);
|
| 2016 |
}
|
| 2017 |
} catch (err) {
|
| 2018 |
-
|
| 2019 |
} finally {
|
| 2020 |
-
|
| 2021 |
}
|
| 2022 |
return bibliography;
|
| 2023 |
}
|
|
@@ -2039,19 +2039,19 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 2039 |
subtree: true
|
| 2040 |
};
|
| 2041 |
var observer = new MutationObserver(function (entries) {
|
| 2042 |
-
var
|
| 2043 |
-
|
| 2044 |
try {
|
| 2045 |
-
for (
|
| 2046 |
-
var entry =
|
| 2047 |
if (entry.target.nodeName === 'SCRIPT' || entry.type === 'characterData') {
|
| 2048 |
_this6.parseIfPossible();
|
| 2049 |
}
|
| 2050 |
}
|
| 2051 |
} catch (err) {
|
| 2052 |
-
|
| 2053 |
} finally {
|
| 2054 |
-
|
| 2055 |
}
|
| 2056 |
});
|
| 2057 |
observer.observe(_this6, options);
|
|
@@ -2181,12 +2181,12 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 2181 |
return _createClass(Cite, [{
|
| 2182 |
key: "connectedCallback",
|
| 2183 |
value: function connectedCallback() {
|
| 2184 |
-
var
|
| 2185 |
this.outerSpan = this.root.querySelector("#citation-");
|
| 2186 |
this.innerSpan = this.root.querySelector(".citation-number");
|
| 2187 |
this.hoverBox = this.root.querySelector("d-hover-box");
|
| 2188 |
window.customElements.whenDefined("d-hover-box").then(function () {
|
| 2189 |
-
|
| 2190 |
});
|
| 2191 |
// in case this component got connected after values were set
|
| 2192 |
if (this.numbers) {
|
|
@@ -2301,22 +2301,22 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 2301 |
list.className = 'references';
|
| 2302 |
element.appendChild(list);
|
| 2303 |
}
|
| 2304 |
-
var
|
| 2305 |
-
|
| 2306 |
try {
|
| 2307 |
-
for (
|
| 2308 |
-
var
|
| 2309 |
-
key =
|
| 2310 |
-
entry =
|
| 2311 |
var listItem = dom.createElement('li');
|
| 2312 |
listItem.id = key;
|
| 2313 |
listItem.innerHTML = bibliography_cite(entry);
|
| 2314 |
list.appendChild(listItem);
|
| 2315 |
}
|
| 2316 |
} catch (err) {
|
| 2317 |
-
|
| 2318 |
} finally {
|
| 2319 |
-
|
| 2320 |
}
|
| 2321 |
} else {
|
| 2322 |
element.style.display = 'none';
|
|
@@ -3992,17 +3992,17 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 3992 |
var T$5 = Template('d-footnote', "\n<style>\n\nd-math[block] {\n display: block;\n}\n\n:host {\n\n}\n\nsup {\n line-height: 1em;\n font-size: 0.75em;\n position: relative;\n top: -.5em;\n vertical-align: baseline;\n}\n\nspan {\n color: hsla(206, 90%, 20%, 0.7);\n cursor: default;\n}\n\n.footnote-container {\n padding: 10px;\n}\n\n</style>\n\n<d-hover-box>\n <div class=\"footnote-container\">\n <slot id=\"slot\"></slot>\n </div>\n</d-hover-box>\n\n<sup>\n <span id=\"fn-\" data-hover-ref=\"\"></span>\n</sup>\n\n");
|
| 3993 |
var Footnote = /*#__PURE__*/function (_T$4) {
|
| 3994 |
function Footnote() {
|
| 3995 |
-
var
|
| 3996 |
_classCallCheck(this, Footnote);
|
| 3997 |
-
|
| 3998 |
var options = {
|
| 3999 |
childList: true,
|
| 4000 |
characterData: true,
|
| 4001 |
subtree: true
|
| 4002 |
};
|
| 4003 |
-
var observer = new MutationObserver(
|
| 4004 |
-
observer.observe(
|
| 4005 |
-
return
|
| 4006 |
}
|
| 4007 |
_inherits(Footnote, _T$4);
|
| 4008 |
return _createClass(Footnote, [{
|
|
@@ -4018,14 +4018,14 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4018 |
}, {
|
| 4019 |
key: "connectedCallback",
|
| 4020 |
value: function connectedCallback() {
|
| 4021 |
-
var
|
| 4022 |
// listen and notify about changes to slotted content
|
| 4023 |
// const slot = this.shadowRoot.querySelector('#slot');
|
| 4024 |
// console.warn(slot.textContent);
|
| 4025 |
// slot.addEventListener('slotchange', this.notify);
|
| 4026 |
this.hoverBox = this.root.querySelector('d-hover-box');
|
| 4027 |
window.customElements.whenDefined('d-hover-box').then(function () {
|
| 4028 |
-
|
| 4029 |
});
|
| 4030 |
// create numeric ID
|
| 4031 |
Footnote.currentFootnoteId += 1;
|
|
@@ -4076,11 +4076,11 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4076 |
if (footnotes.length) {
|
| 4077 |
// ensure footnote list is visible
|
| 4078 |
this.root.style.display = '';
|
| 4079 |
-
var
|
| 4080 |
-
|
| 4081 |
try {
|
| 4082 |
-
for (
|
| 4083 |
-
var footnote =
|
| 4084 |
// construct and append list item to show footnote
|
| 4085 |
var listItem = document.createElement('li');
|
| 4086 |
listItem.id = footnote.id + '-listing';
|
|
@@ -4094,9 +4094,9 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4094 |
this.list.appendChild(listItem);
|
| 4095 |
}
|
| 4096 |
} catch (err) {
|
| 4097 |
-
|
| 4098 |
} finally {
|
| 4099 |
-
|
| 4100 |
}
|
| 4101 |
} else {
|
| 4102 |
// ensure footnote list is invisible
|
|
@@ -4126,14 +4126,14 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4126 |
}, {
|
| 4127 |
key: "bindDivEvents",
|
| 4128 |
value: function bindDivEvents(element) {
|
| 4129 |
-
var
|
| 4130 |
// For mice, same behavior as hovering on links
|
| 4131 |
element.addEventListener('mouseover', function () {
|
| 4132 |
-
if (!
|
| 4133 |
-
|
| 4134 |
});
|
| 4135 |
element.addEventListener('mouseout', function () {
|
| 4136 |
-
|
| 4137 |
});
|
| 4138 |
// Don't trigger body touchstart event when touching within box
|
| 4139 |
element.addEventListener('touchstart', function (event) {
|
|
@@ -4143,7 +4143,7 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4143 |
});
|
| 4144 |
// Close box when touching outside box
|
| 4145 |
document.body.addEventListener('touchstart', function () {
|
| 4146 |
-
|
| 4147 |
}, {
|
| 4148 |
passive: true
|
| 4149 |
});
|
|
@@ -4151,21 +4151,21 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4151 |
}, {
|
| 4152 |
key: "bindTriggerEvents",
|
| 4153 |
value: function bindTriggerEvents(node) {
|
| 4154 |
-
var
|
| 4155 |
node.addEventListener('mouseover', function () {
|
| 4156 |
-
if (!
|
| 4157 |
-
|
| 4158 |
}
|
| 4159 |
-
|
| 4160 |
});
|
| 4161 |
node.addEventListener('mouseout', function () {
|
| 4162 |
-
|
| 4163 |
});
|
| 4164 |
node.addEventListener('touchstart', function (event) {
|
| 4165 |
-
if (
|
| 4166 |
-
|
| 4167 |
} else {
|
| 4168 |
-
|
| 4169 |
}
|
| 4170 |
// Don't trigger body touchstart event when touching link
|
| 4171 |
event.stopPropagation();
|
|
@@ -4205,10 +4205,10 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4205 |
}, {
|
| 4206 |
key: "extendTimeout",
|
| 4207 |
value: function extendTimeout(time) {
|
| 4208 |
-
var
|
| 4209 |
this.stopTimeout();
|
| 4210 |
this.timeout = setTimeout(function () {
|
| 4211 |
-
|
| 4212 |
}, time);
|
| 4213 |
}
|
| 4214 |
}]);
|
|
@@ -4268,12 +4268,12 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4268 |
return _createClass(TOC, [{
|
| 4269 |
key: "connectedCallback",
|
| 4270 |
value: function connectedCallback() {
|
| 4271 |
-
var
|
| 4272 |
if (!this.getAttribute('prerendered')) {
|
| 4273 |
window.onload = function () {
|
| 4274 |
var article = document.querySelector('d-article');
|
| 4275 |
var headings = article.querySelectorAll('h2, h3');
|
| 4276 |
-
renderTOC(
|
| 4277 |
};
|
| 4278 |
}
|
| 4279 |
}
|
|
@@ -4286,11 +4286,11 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4286 |
}(/*#__PURE__*/_wrapNativeSuper(HTMLElement));
|
| 4287 |
function renderTOC(element, headings) {
|
| 4288 |
var ToC = "\n <style>\n\n d-toc {\n contain: layout style;\n display: block;\n }\n\n d-toc ul {\n padding-left: 0;\n }\n\n d-toc ul > ul {\n padding-left: 24px;\n }\n\n d-toc a {\n border-bottom: none;\n text-decoration: none;\n }\n\n </style>\n <nav role=\"navigation\" class=\"table-of-contents\"></nav>\n <h2>Table of contents</h2>\n <ul>";
|
| 4289 |
-
var
|
| 4290 |
-
|
| 4291 |
try {
|
| 4292 |
-
for (
|
| 4293 |
-
var el =
|
| 4294 |
// should element be included in TOC?
|
| 4295 |
var isInTitle = el.parentElement.tagName == 'D-TITLE';
|
| 4296 |
var isException = el.getAttribute('no-toc');
|
|
@@ -4307,9 +4307,9 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4307 |
ToC += newLine;
|
| 4308 |
}
|
| 4309 |
} catch (err) {
|
| 4310 |
-
|
| 4311 |
} finally {
|
| 4312 |
-
|
| 4313 |
}
|
| 4314 |
ToC += '</ul></nav>';
|
| 4315 |
element.innerHTML = ToC;
|
|
@@ -4345,14 +4345,14 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4345 |
//
|
| 4346 |
var Figure = /*#__PURE__*/function (_HTMLElement8) {
|
| 4347 |
function Figure() {
|
| 4348 |
-
var
|
| 4349 |
_classCallCheck(this, Figure);
|
| 4350 |
-
|
| 4351 |
// debugger
|
| 4352 |
-
|
| 4353 |
-
|
| 4354 |
-
|
| 4355 |
-
return
|
| 4356 |
}
|
| 4357 |
_inherits(Figure, _HTMLElement8);
|
| 4358 |
return _createClass(Figure, [{
|
|
@@ -4477,20 +4477,20 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4477 |
}, {
|
| 4478 |
key: "didObserveMarginIntersection",
|
| 4479 |
value: function didObserveMarginIntersection(entries) {
|
| 4480 |
-
var
|
| 4481 |
-
|
| 4482 |
try {
|
| 4483 |
-
for (
|
| 4484 |
-
var entry =
|
| 4485 |
var figure = entry.target;
|
| 4486 |
if (entry.isIntersecting && !figure._ready) {
|
| 4487 |
Figure.addToReadyQueue(figure);
|
| 4488 |
}
|
| 4489 |
}
|
| 4490 |
} catch (err) {
|
| 4491 |
-
|
| 4492 |
} finally {
|
| 4493 |
-
|
| 4494 |
}
|
| 4495 |
}
|
| 4496 |
}, {
|
|
@@ -4507,11 +4507,11 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4507 |
}, {
|
| 4508 |
key: "didObserveDirectIntersection",
|
| 4509 |
value: function didObserveDirectIntersection(entries) {
|
| 4510 |
-
var
|
| 4511 |
-
|
| 4512 |
try {
|
| 4513 |
-
for (
|
| 4514 |
-
var entry =
|
| 4515 |
var figure = entry.target;
|
| 4516 |
if (entry.isIntersecting) {
|
| 4517 |
figure._seenOnScreen = new Date();
|
|
@@ -4526,9 +4526,9 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4526 |
}
|
| 4527 |
}
|
| 4528 |
} catch (err) {
|
| 4529 |
-
|
| 4530 |
} finally {
|
| 4531 |
-
|
| 4532 |
}
|
| 4533 |
}
|
| 4534 |
}]);
|
|
@@ -4563,13 +4563,13 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 4563 |
return _createClass(Interstitial, [{
|
| 4564 |
key: "connectedCallback",
|
| 4565 |
value: function connectedCallback() {
|
| 4566 |
-
var
|
| 4567 |
if (this.shouldRemoveSelf()) {
|
| 4568 |
this.parentElement.removeChild(this);
|
| 4569 |
} else {
|
| 4570 |
var passwordInput = this.root.querySelector('#interstitial-password-input');
|
| 4571 |
passwordInput.oninput = function (event) {
|
| 4572 |
-
return
|
| 4573 |
};
|
| 4574 |
}
|
| 4575 |
}
|
|
@@ -7813,7 +7813,7 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 7813 |
return _createClass(Slider, [{
|
| 7814 |
key: "connectedCallback",
|
| 7815 |
value: function connectedCallback() {
|
| 7816 |
-
var
|
| 7817 |
this.connected = true;
|
| 7818 |
this.setAttribute('role', 'slider');
|
| 7819 |
// Makes the element tab-able.
|
|
@@ -7840,27 +7840,27 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 7840 |
this.ticks = this.ticks ? this.ticks : false;
|
| 7841 |
this.renderTicks();
|
| 7842 |
this.drag = drag().container(this.background).on('start', function () {
|
| 7843 |
-
|
| 7844 |
-
|
| 7845 |
-
|
| 7846 |
-
|
| 7847 |
}).on('drag', function () {
|
| 7848 |
-
|
| 7849 |
}).on('end', function () {
|
| 7850 |
-
|
| 7851 |
-
|
| 7852 |
-
|
| 7853 |
-
if (
|
| 7854 |
-
|
| 7855 |
});
|
| 7856 |
this.drag(select(this.background));
|
| 7857 |
this.addEventListener('focusin', function () {
|
| 7858 |
-
if (!
|
| 7859 |
-
|
| 7860 |
}
|
| 7861 |
});
|
| 7862 |
this.addEventListener('focusout', function () {
|
| 7863 |
-
|
| 7864 |
});
|
| 7865 |
this.addEventListener('keydown', this.onKeyDown);
|
| 7866 |
}
|
|
@@ -7988,7 +7988,7 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 7988 |
}, {
|
| 7989 |
key: "renderTicks",
|
| 7990 |
value: function renderTicks() {
|
| 7991 |
-
var
|
| 7992 |
var ticksContainer = this.root.querySelector('.ticks');
|
| 7993 |
if (this.ticks !== false) {
|
| 7994 |
var tickData = [];
|
|
@@ -8002,7 +8002,7 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 8002 |
tickData.forEach(function (d) {
|
| 8003 |
var tick = document.createElement('div');
|
| 8004 |
tick.classList.add('tick');
|
| 8005 |
-
tick.style.left =
|
| 8006 |
ticksContainer.appendChild(tick);
|
| 8007 |
});
|
| 8008 |
} else {
|
|
@@ -8124,18 +8124,18 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 8124 |
throw new Error("Insufficient Runlevel for adding custom elements!");
|
| 8125 |
}
|
| 8126 |
var allComponents = components.concat(distillComponents);
|
| 8127 |
-
var
|
| 8128 |
-
|
| 8129 |
try {
|
| 8130 |
-
for (
|
| 8131 |
-
var component =
|
| 8132 |
console.debug("Runlevel 2: Registering custom element: " + component.is);
|
| 8133 |
customElements.define(component.is, component);
|
| 8134 |
}
|
| 8135 |
} catch (err) {
|
| 8136 |
-
|
| 8137 |
} finally {
|
| 8138 |
-
|
| 8139 |
}
|
| 8140 |
console.debug("Runlevel 3: Distill Template finished registering custom elements.");
|
| 8141 |
console.debug("Runlevel 3->4.");
|
|
@@ -8214,7 +8214,7 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
| 8214 |
/******/ // startup
|
| 8215 |
/******/ // Load entry module and return exports
|
| 8216 |
/******/ // This entry module used 'module' so it can't be inlined
|
| 8217 |
-
/******/ var __webpack_exports__ = __webpack_require__(
|
| 8218 |
/******/
|
| 8219 |
/******/ })()
|
| 8220 |
;
|
|
|
|
| 1 |
/******/ (() => { // webpackBootstrap
|
| 2 |
/******/ var __webpack_modules__ = ({
|
| 3 |
|
| 4 |
+
/***/ 231:
|
| 5 |
/***/ ((module, exports, __webpack_require__) => {
|
| 6 |
|
| 7 |
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); }
|
|
|
|
| 1446 |
_iterator9.f();
|
| 1447 |
}
|
| 1448 |
if (frontMatter.bibliographyParsed) {
|
| 1449 |
+
var _iterator0 = _createForOfIteratorHelper(Controller.waitingOn.bibliography.slice()),
|
| 1450 |
+
_step0;
|
| 1451 |
try {
|
| 1452 |
+
for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
|
| 1453 |
+
var waitingCallback = _step0.value;
|
| 1454 |
waitingCallback();
|
| 1455 |
}
|
| 1456 |
} catch (err) {
|
| 1457 |
+
_iterator0.e(err);
|
| 1458 |
} finally {
|
| 1459 |
+
_iterator0.f();
|
| 1460 |
}
|
| 1461 |
}
|
| 1462 |
var footnotesList = document.querySelector("d-footnote-list");
|
|
|
|
| 1563 |
}
|
| 1564 |
};
|
| 1565 |
// Add polyfill script tags
|
| 1566 |
+
var _iterator1 = _createForOfIteratorHelper(Polyfills.neededPolyfills),
|
| 1567 |
+
_step1;
|
| 1568 |
try {
|
| 1569 |
+
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
| 1570 |
+
var polyfill = _step1.value;
|
| 1571 |
addPolyfill(polyfill, polyfillLoaded);
|
| 1572 |
}
|
| 1573 |
} catch (err) {
|
| 1574 |
+
_iterator1.e(err);
|
| 1575 |
} finally {
|
| 1576 |
+
_iterator1.f();
|
| 1577 |
}
|
| 1578 |
}
|
| 1579 |
}, {
|
|
|
|
| 1657 |
_classCallCheck(this, Article);
|
| 1658 |
_this5 = _callSuper(this, Article);
|
| 1659 |
new MutationObserver(function (mutations) {
|
| 1660 |
+
var _iterator10 = _createForOfIteratorHelper(mutations),
|
| 1661 |
+
_step10;
|
| 1662 |
try {
|
| 1663 |
+
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
| 1664 |
+
var mutation = _step10.value;
|
| 1665 |
+
var _iterator11 = _createForOfIteratorHelper(mutation.addedNodes),
|
| 1666 |
+
_step11;
|
| 1667 |
try {
|
| 1668 |
+
for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
|
| 1669 |
+
var addedNode = _step11.value;
|
| 1670 |
switch (addedNode.nodeName) {
|
| 1671 |
case '#text':
|
| 1672 |
{
|
|
|
|
| 1684 |
}
|
| 1685 |
}
|
| 1686 |
} catch (err) {
|
| 1687 |
+
_iterator11.e(err);
|
| 1688 |
} finally {
|
| 1689 |
+
_iterator11.f();
|
| 1690 |
}
|
| 1691 |
}
|
| 1692 |
} catch (err) {
|
| 1693 |
+
_iterator10.e(err);
|
| 1694 |
} finally {
|
| 1695 |
+
_iterator10.f();
|
| 1696 |
}
|
| 1697 |
}).observe(_this5, {
|
| 1698 |
childList: true
|
|
|
|
| 1998 |
function parseBibtex(bibtex) {
|
| 1999 |
var bibliography = new Map();
|
| 2000 |
var parsedEntries = bibtexParse.toJSON(bibtex);
|
| 2001 |
+
var _iterator12 = _createForOfIteratorHelper(parsedEntries),
|
| 2002 |
+
_step12;
|
| 2003 |
try {
|
| 2004 |
+
for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
|
| 2005 |
+
var entry = _step12.value;
|
| 2006 |
// normalize tags; note entryTags is an object, not Map
|
| 2007 |
for (var _i = 0, _Object$entries = Object.entries(entry.entryTags); _i < _Object$entries.length; _i++) {
|
| 2008 |
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
|
|
| 2015 |
bibliography.set(entry.citationKey, entry.entryTags);
|
| 2016 |
}
|
| 2017 |
} catch (err) {
|
| 2018 |
+
_iterator12.e(err);
|
| 2019 |
} finally {
|
| 2020 |
+
_iterator12.f();
|
| 2021 |
}
|
| 2022 |
return bibliography;
|
| 2023 |
}
|
|
|
|
| 2039 |
subtree: true
|
| 2040 |
};
|
| 2041 |
var observer = new MutationObserver(function (entries) {
|
| 2042 |
+
var _iterator13 = _createForOfIteratorHelper(entries),
|
| 2043 |
+
_step13;
|
| 2044 |
try {
|
| 2045 |
+
for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
|
| 2046 |
+
var entry = _step13.value;
|
| 2047 |
if (entry.target.nodeName === 'SCRIPT' || entry.type === 'characterData') {
|
| 2048 |
_this6.parseIfPossible();
|
| 2049 |
}
|
| 2050 |
}
|
| 2051 |
} catch (err) {
|
| 2052 |
+
_iterator13.e(err);
|
| 2053 |
} finally {
|
| 2054 |
+
_iterator13.f();
|
| 2055 |
}
|
| 2056 |
});
|
| 2057 |
observer.observe(_this6, options);
|
|
|
|
| 2181 |
return _createClass(Cite, [{
|
| 2182 |
key: "connectedCallback",
|
| 2183 |
value: function connectedCallback() {
|
| 2184 |
+
var _this0 = this;
|
| 2185 |
this.outerSpan = this.root.querySelector("#citation-");
|
| 2186 |
this.innerSpan = this.root.querySelector(".citation-number");
|
| 2187 |
this.hoverBox = this.root.querySelector("d-hover-box");
|
| 2188 |
window.customElements.whenDefined("d-hover-box").then(function () {
|
| 2189 |
+
_this0.hoverBox.listen(_this0);
|
| 2190 |
});
|
| 2191 |
// in case this component got connected after values were set
|
| 2192 |
if (this.numbers) {
|
|
|
|
| 2301 |
list.className = 'references';
|
| 2302 |
element.appendChild(list);
|
| 2303 |
}
|
| 2304 |
+
var _iterator14 = _createForOfIteratorHelper(entries),
|
| 2305 |
+
_step14;
|
| 2306 |
try {
|
| 2307 |
+
for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
|
| 2308 |
+
var _step14$value = _slicedToArray(_step14.value, 2),
|
| 2309 |
+
key = _step14$value[0],
|
| 2310 |
+
entry = _step14$value[1];
|
| 2311 |
var listItem = dom.createElement('li');
|
| 2312 |
listItem.id = key;
|
| 2313 |
listItem.innerHTML = bibliography_cite(entry);
|
| 2314 |
list.appendChild(listItem);
|
| 2315 |
}
|
| 2316 |
} catch (err) {
|
| 2317 |
+
_iterator14.e(err);
|
| 2318 |
} finally {
|
| 2319 |
+
_iterator14.f();
|
| 2320 |
}
|
| 2321 |
} else {
|
| 2322 |
element.style.display = 'none';
|
|
|
|
| 3992 |
var T$5 = Template('d-footnote', "\n<style>\n\nd-math[block] {\n display: block;\n}\n\n:host {\n\n}\n\nsup {\n line-height: 1em;\n font-size: 0.75em;\n position: relative;\n top: -.5em;\n vertical-align: baseline;\n}\n\nspan {\n color: hsla(206, 90%, 20%, 0.7);\n cursor: default;\n}\n\n.footnote-container {\n padding: 10px;\n}\n\n</style>\n\n<d-hover-box>\n <div class=\"footnote-container\">\n <slot id=\"slot\"></slot>\n </div>\n</d-hover-box>\n\n<sup>\n <span id=\"fn-\" data-hover-ref=\"\"></span>\n</sup>\n\n");
|
| 3993 |
var Footnote = /*#__PURE__*/function (_T$4) {
|
| 3994 |
function Footnote() {
|
| 3995 |
+
var _this1;
|
| 3996 |
_classCallCheck(this, Footnote);
|
| 3997 |
+
_this1 = _callSuper(this, Footnote);
|
| 3998 |
var options = {
|
| 3999 |
childList: true,
|
| 4000 |
characterData: true,
|
| 4001 |
subtree: true
|
| 4002 |
};
|
| 4003 |
+
var observer = new MutationObserver(_this1.notify);
|
| 4004 |
+
observer.observe(_this1, options);
|
| 4005 |
+
return _this1;
|
| 4006 |
}
|
| 4007 |
_inherits(Footnote, _T$4);
|
| 4008 |
return _createClass(Footnote, [{
|
|
|
|
| 4018 |
}, {
|
| 4019 |
key: "connectedCallback",
|
| 4020 |
value: function connectedCallback() {
|
| 4021 |
+
var _this10 = this;
|
| 4022 |
// listen and notify about changes to slotted content
|
| 4023 |
// const slot = this.shadowRoot.querySelector('#slot');
|
| 4024 |
// console.warn(slot.textContent);
|
| 4025 |
// slot.addEventListener('slotchange', this.notify);
|
| 4026 |
this.hoverBox = this.root.querySelector('d-hover-box');
|
| 4027 |
window.customElements.whenDefined('d-hover-box').then(function () {
|
| 4028 |
+
_this10.hoverBox.listen(_this10);
|
| 4029 |
});
|
| 4030 |
// create numeric ID
|
| 4031 |
Footnote.currentFootnoteId += 1;
|
|
|
|
| 4076 |
if (footnotes.length) {
|
| 4077 |
// ensure footnote list is visible
|
| 4078 |
this.root.style.display = '';
|
| 4079 |
+
var _iterator15 = _createForOfIteratorHelper(footnotes),
|
| 4080 |
+
_step15;
|
| 4081 |
try {
|
| 4082 |
+
for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
|
| 4083 |
+
var footnote = _step15.value;
|
| 4084 |
// construct and append list item to show footnote
|
| 4085 |
var listItem = document.createElement('li');
|
| 4086 |
listItem.id = footnote.id + '-listing';
|
|
|
|
| 4094 |
this.list.appendChild(listItem);
|
| 4095 |
}
|
| 4096 |
} catch (err) {
|
| 4097 |
+
_iterator15.e(err);
|
| 4098 |
} finally {
|
| 4099 |
+
_iterator15.f();
|
| 4100 |
}
|
| 4101 |
} else {
|
| 4102 |
// ensure footnote list is invisible
|
|
|
|
| 4126 |
}, {
|
| 4127 |
key: "bindDivEvents",
|
| 4128 |
value: function bindDivEvents(element) {
|
| 4129 |
+
var _this11 = this;
|
| 4130 |
// For mice, same behavior as hovering on links
|
| 4131 |
element.addEventListener('mouseover', function () {
|
| 4132 |
+
if (!_this11.visible) _this11.showAtNode(element);
|
| 4133 |
+
_this11.stopTimeout();
|
| 4134 |
});
|
| 4135 |
element.addEventListener('mouseout', function () {
|
| 4136 |
+
_this11.extendTimeout(500);
|
| 4137 |
});
|
| 4138 |
// Don't trigger body touchstart event when touching within box
|
| 4139 |
element.addEventListener('touchstart', function (event) {
|
|
|
|
| 4143 |
});
|
| 4144 |
// Close box when touching outside box
|
| 4145 |
document.body.addEventListener('touchstart', function () {
|
| 4146 |
+
_this11.hide();
|
| 4147 |
}, {
|
| 4148 |
passive: true
|
| 4149 |
});
|
|
|
|
| 4151 |
}, {
|
| 4152 |
key: "bindTriggerEvents",
|
| 4153 |
value: function bindTriggerEvents(node) {
|
| 4154 |
+
var _this12 = this;
|
| 4155 |
node.addEventListener('mouseover', function () {
|
| 4156 |
+
if (!_this12.visible) {
|
| 4157 |
+
_this12.showAtNode(node);
|
| 4158 |
}
|
| 4159 |
+
_this12.stopTimeout();
|
| 4160 |
});
|
| 4161 |
node.addEventListener('mouseout', function () {
|
| 4162 |
+
_this12.extendTimeout(300);
|
| 4163 |
});
|
| 4164 |
node.addEventListener('touchstart', function (event) {
|
| 4165 |
+
if (_this12.visible) {
|
| 4166 |
+
_this12.hide();
|
| 4167 |
} else {
|
| 4168 |
+
_this12.showAtNode(node);
|
| 4169 |
}
|
| 4170 |
// Don't trigger body touchstart event when touching link
|
| 4171 |
event.stopPropagation();
|
|
|
|
| 4205 |
}, {
|
| 4206 |
key: "extendTimeout",
|
| 4207 |
value: function extendTimeout(time) {
|
| 4208 |
+
var _this13 = this;
|
| 4209 |
this.stopTimeout();
|
| 4210 |
this.timeout = setTimeout(function () {
|
| 4211 |
+
_this13.hide();
|
| 4212 |
}, time);
|
| 4213 |
}
|
| 4214 |
}]);
|
|
|
|
| 4268 |
return _createClass(TOC, [{
|
| 4269 |
key: "connectedCallback",
|
| 4270 |
value: function connectedCallback() {
|
| 4271 |
+
var _this14 = this;
|
| 4272 |
if (!this.getAttribute('prerendered')) {
|
| 4273 |
window.onload = function () {
|
| 4274 |
var article = document.querySelector('d-article');
|
| 4275 |
var headings = article.querySelectorAll('h2, h3');
|
| 4276 |
+
renderTOC(_this14, headings);
|
| 4277 |
};
|
| 4278 |
}
|
| 4279 |
}
|
|
|
|
| 4286 |
}(/*#__PURE__*/_wrapNativeSuper(HTMLElement));
|
| 4287 |
function renderTOC(element, headings) {
|
| 4288 |
var ToC = "\n <style>\n\n d-toc {\n contain: layout style;\n display: block;\n }\n\n d-toc ul {\n padding-left: 0;\n }\n\n d-toc ul > ul {\n padding-left: 24px;\n }\n\n d-toc a {\n border-bottom: none;\n text-decoration: none;\n }\n\n </style>\n <nav role=\"navigation\" class=\"table-of-contents\"></nav>\n <h2>Table of contents</h2>\n <ul>";
|
| 4289 |
+
var _iterator16 = _createForOfIteratorHelper(headings),
|
| 4290 |
+
_step16;
|
| 4291 |
try {
|
| 4292 |
+
for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
|
| 4293 |
+
var el = _step16.value;
|
| 4294 |
// should element be included in TOC?
|
| 4295 |
var isInTitle = el.parentElement.tagName == 'D-TITLE';
|
| 4296 |
var isException = el.getAttribute('no-toc');
|
|
|
|
| 4307 |
ToC += newLine;
|
| 4308 |
}
|
| 4309 |
} catch (err) {
|
| 4310 |
+
_iterator16.e(err);
|
| 4311 |
} finally {
|
| 4312 |
+
_iterator16.f();
|
| 4313 |
}
|
| 4314 |
ToC += '</ul></nav>';
|
| 4315 |
element.innerHTML = ToC;
|
|
|
|
| 4345 |
//
|
| 4346 |
var Figure = /*#__PURE__*/function (_HTMLElement8) {
|
| 4347 |
function Figure() {
|
| 4348 |
+
var _this15;
|
| 4349 |
_classCallCheck(this, Figure);
|
| 4350 |
+
_this15 = _callSuper(this, Figure);
|
| 4351 |
// debugger
|
| 4352 |
+
_this15._ready = false;
|
| 4353 |
+
_this15._onscreen = false;
|
| 4354 |
+
_this15._offscreen = true;
|
| 4355 |
+
return _this15;
|
| 4356 |
}
|
| 4357 |
_inherits(Figure, _HTMLElement8);
|
| 4358 |
return _createClass(Figure, [{
|
|
|
|
| 4477 |
}, {
|
| 4478 |
key: "didObserveMarginIntersection",
|
| 4479 |
value: function didObserveMarginIntersection(entries) {
|
| 4480 |
+
var _iterator17 = _createForOfIteratorHelper(entries),
|
| 4481 |
+
_step17;
|
| 4482 |
try {
|
| 4483 |
+
for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
|
| 4484 |
+
var entry = _step17.value;
|
| 4485 |
var figure = entry.target;
|
| 4486 |
if (entry.isIntersecting && !figure._ready) {
|
| 4487 |
Figure.addToReadyQueue(figure);
|
| 4488 |
}
|
| 4489 |
}
|
| 4490 |
} catch (err) {
|
| 4491 |
+
_iterator17.e(err);
|
| 4492 |
} finally {
|
| 4493 |
+
_iterator17.f();
|
| 4494 |
}
|
| 4495 |
}
|
| 4496 |
}, {
|
|
|
|
| 4507 |
}, {
|
| 4508 |
key: "didObserveDirectIntersection",
|
| 4509 |
value: function didObserveDirectIntersection(entries) {
|
| 4510 |
+
var _iterator18 = _createForOfIteratorHelper(entries),
|
| 4511 |
+
_step18;
|
| 4512 |
try {
|
| 4513 |
+
for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
|
| 4514 |
+
var entry = _step18.value;
|
| 4515 |
var figure = entry.target;
|
| 4516 |
if (entry.isIntersecting) {
|
| 4517 |
figure._seenOnScreen = new Date();
|
|
|
|
| 4526 |
}
|
| 4527 |
}
|
| 4528 |
} catch (err) {
|
| 4529 |
+
_iterator18.e(err);
|
| 4530 |
} finally {
|
| 4531 |
+
_iterator18.f();
|
| 4532 |
}
|
| 4533 |
}
|
| 4534 |
}]);
|
|
|
|
| 4563 |
return _createClass(Interstitial, [{
|
| 4564 |
key: "connectedCallback",
|
| 4565 |
value: function connectedCallback() {
|
| 4566 |
+
var _this16 = this;
|
| 4567 |
if (this.shouldRemoveSelf()) {
|
| 4568 |
this.parentElement.removeChild(this);
|
| 4569 |
} else {
|
| 4570 |
var passwordInput = this.root.querySelector('#interstitial-password-input');
|
| 4571 |
passwordInput.oninput = function (event) {
|
| 4572 |
+
return _this16.passwordChanged(event);
|
| 4573 |
};
|
| 4574 |
}
|
| 4575 |
}
|
|
|
|
| 7813 |
return _createClass(Slider, [{
|
| 7814 |
key: "connectedCallback",
|
| 7815 |
value: function connectedCallback() {
|
| 7816 |
+
var _this17 = this;
|
| 7817 |
this.connected = true;
|
| 7818 |
this.setAttribute('role', 'slider');
|
| 7819 |
// Makes the element tab-able.
|
|
|
|
| 7840 |
this.ticks = this.ticks ? this.ticks : false;
|
| 7841 |
this.renderTicks();
|
| 7842 |
this.drag = drag().container(this.background).on('start', function () {
|
| 7843 |
+
_this17.mouseEvent = true;
|
| 7844 |
+
_this17.background.classList.add('mousedown');
|
| 7845 |
+
_this17.changeValue = _this17.value;
|
| 7846 |
+
_this17.dragUpdate();
|
| 7847 |
}).on('drag', function () {
|
| 7848 |
+
_this17.dragUpdate();
|
| 7849 |
}).on('end', function () {
|
| 7850 |
+
_this17.mouseEvent = false;
|
| 7851 |
+
_this17.background.classList.remove('mousedown');
|
| 7852 |
+
_this17.dragUpdate();
|
| 7853 |
+
if (_this17.changeValue !== _this17.value) _this17.dispatchChange();
|
| 7854 |
+
_this17.changeValue = _this17.value;
|
| 7855 |
});
|
| 7856 |
this.drag(select(this.background));
|
| 7857 |
this.addEventListener('focusin', function () {
|
| 7858 |
+
if (!_this17.mouseEvent) {
|
| 7859 |
+
_this17.background.classList.add('focus');
|
| 7860 |
}
|
| 7861 |
});
|
| 7862 |
this.addEventListener('focusout', function () {
|
| 7863 |
+
_this17.background.classList.remove('focus');
|
| 7864 |
});
|
| 7865 |
this.addEventListener('keydown', this.onKeyDown);
|
| 7866 |
}
|
|
|
|
| 7988 |
}, {
|
| 7989 |
key: "renderTicks",
|
| 7990 |
value: function renderTicks() {
|
| 7991 |
+
var _this18 = this;
|
| 7992 |
var ticksContainer = this.root.querySelector('.ticks');
|
| 7993 |
if (this.ticks !== false) {
|
| 7994 |
var tickData = [];
|
|
|
|
| 8002 |
tickData.forEach(function (d) {
|
| 8003 |
var tick = document.createElement('div');
|
| 8004 |
tick.classList.add('tick');
|
| 8005 |
+
tick.style.left = _this18.scale(d) * 100 + '%';
|
| 8006 |
ticksContainer.appendChild(tick);
|
| 8007 |
});
|
| 8008 |
} else {
|
|
|
|
| 8124 |
throw new Error("Insufficient Runlevel for adding custom elements!");
|
| 8125 |
}
|
| 8126 |
var allComponents = components.concat(distillComponents);
|
| 8127 |
+
var _iterator19 = _createForOfIteratorHelper(allComponents),
|
| 8128 |
+
_step19;
|
| 8129 |
try {
|
| 8130 |
+
for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
|
| 8131 |
+
var component = _step19.value;
|
| 8132 |
console.debug("Runlevel 2: Registering custom element: " + component.is);
|
| 8133 |
customElements.define(component.is, component);
|
| 8134 |
}
|
| 8135 |
} catch (err) {
|
| 8136 |
+
_iterator19.e(err);
|
| 8137 |
} finally {
|
| 8138 |
+
_iterator19.f();
|
| 8139 |
}
|
| 8140 |
console.debug("Runlevel 3: Distill Template finished registering custom elements.");
|
| 8141 |
console.debug("Runlevel 3->4.");
|
|
|
|
| 8214 |
/******/ // startup
|
| 8215 |
/******/ // Load entry module and return exports
|
| 8216 |
/******/ // This entry module used 'module' so it can't be inlined
|
| 8217 |
+
/******/ var __webpack_exports__ = __webpack_require__(231);
|
| 8218 |
/******/
|
| 8219 |
/******/ })()
|
| 8220 |
;
|
dist/distill.bundle.js.map
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
dist/main.bundle.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
| 3 |
|
| 4 |
;// ./src/fragmentLoader.js
|
| 5 |
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); }
|
| 6 |
-
function
|
|
|
|
| 7 |
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
| 8 |
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
| 9 |
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
@@ -15,10 +16,10 @@ function loadFragments() {
|
|
| 15 |
return _loadFragments.apply(this, arguments);
|
| 16 |
}
|
| 17 |
function _loadFragments() {
|
| 18 |
-
_loadFragments = _asyncToGenerator(/*#__PURE__*/
|
| 19 |
var fragmentElements, FetchQueue, fetchQueue, currentIndex, elements;
|
| 20 |
-
return
|
| 21 |
-
while (1) switch (_context7.
|
| 22 |
case 0:
|
| 23 |
// Find all elements with ids starting with 'fragment-'
|
| 24 |
fragmentElements = Array.from(document.querySelectorAll('[id^="fragment-"]'));
|
|
@@ -35,16 +36,13 @@ function _loadFragments() {
|
|
| 35 |
return _createClass(FetchQueue, [{
|
| 36 |
key: "sleep",
|
| 37 |
value: function () {
|
| 38 |
-
var _sleep = _asyncToGenerator(/*#__PURE__*/
|
| 39 |
-
return
|
| 40 |
-
while (1) switch (_context.
|
| 41 |
case 0:
|
| 42 |
-
return _context.
|
| 43 |
return setTimeout(resolve, ms);
|
| 44 |
}));
|
| 45 |
-
case 1:
|
| 46 |
-
case "end":
|
| 47 |
-
return _context.stop();
|
| 48 |
}
|
| 49 |
}, _callee);
|
| 50 |
}));
|
|
@@ -56,51 +54,51 @@ function _loadFragments() {
|
|
| 56 |
}, {
|
| 57 |
key: "fetchWithRetry",
|
| 58 |
value: function () {
|
| 59 |
-
var _fetchWithRetry = _asyncToGenerator(/*#__PURE__*/
|
| 60 |
var retryCount,
|
| 61 |
response,
|
| 62 |
delay,
|
| 63 |
-
_args2 = arguments
|
| 64 |
-
|
| 65 |
-
|
|
|
|
| 66 |
case 0:
|
| 67 |
retryCount = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : 0;
|
| 68 |
-
_context2.
|
| 69 |
-
_context2.
|
| 70 |
return fetch(fragmentPath);
|
| 71 |
-
case
|
| 72 |
-
response = _context2.
|
| 73 |
if (response.ok) {
|
| 74 |
-
_context2.
|
| 75 |
break;
|
| 76 |
}
|
| 77 |
throw new Error("HTTP error! status: ".concat(response.status));
|
| 78 |
-
case
|
| 79 |
-
_context2.
|
| 80 |
return response.text();
|
| 81 |
-
case
|
| 82 |
-
return _context2.
|
| 83 |
-
case
|
| 84 |
-
_context2.
|
| 85 |
-
|
| 86 |
if (!(retryCount < this.maxRetries)) {
|
| 87 |
-
_context2.
|
| 88 |
break;
|
| 89 |
}
|
| 90 |
// Exponential backoff: 1s, 2s, 4s
|
| 91 |
delay = this.baseDelay * Math.pow(2, retryCount);
|
| 92 |
console.warn("Retry ".concat(retryCount + 1, "/").concat(this.maxRetries, " for ").concat(fragmentPath, " after ").concat(delay, "ms"));
|
| 93 |
-
_context2.
|
| 94 |
return this.sleep(delay);
|
| 95 |
-
case
|
| 96 |
-
return _context2.
|
| 97 |
-
case
|
| 98 |
-
throw
|
| 99 |
-
case
|
| 100 |
-
|
| 101 |
-
return _context2.stop();
|
| 102 |
}
|
| 103 |
-
}, _callee2, this, [[1,
|
| 104 |
}));
|
| 105 |
function fetchWithRetry(_x2) {
|
| 106 |
return _fetchWithRetry.apply(this, arguments);
|
|
@@ -110,31 +108,31 @@ function _loadFragments() {
|
|
| 110 |
}, {
|
| 111 |
key: "addFetch",
|
| 112 |
value: function () {
|
| 113 |
-
var _addFetch = _asyncToGenerator(/*#__PURE__*/
|
| 114 |
var _this = this;
|
| 115 |
var fragmentName, fragmentPath;
|
| 116 |
-
return
|
| 117 |
-
while (1) switch (_context5.
|
| 118 |
case 0:
|
| 119 |
fragmentName = element.id.replace('fragment-', '');
|
| 120 |
fragmentPath = "fragments/".concat(fragmentName, ".html");
|
| 121 |
-
return _context5.
|
| 122 |
-
var _ref = _asyncToGenerator(/*#__PURE__*/
|
| 123 |
var fetchPromise;
|
| 124 |
-
return
|
| 125 |
-
while (1) switch (_context4.
|
| 126 |
case 0:
|
| 127 |
try {
|
| 128 |
-
fetchPromise = _asyncToGenerator(/*#__PURE__*/
|
| 129 |
-
var html, temp, scripts;
|
| 130 |
-
return
|
| 131 |
-
while (1) switch (_context3.
|
| 132 |
case 0:
|
| 133 |
-
_context3.
|
| 134 |
-
_context3.
|
| 135 |
return _this.fetchWithRetry(fragmentPath);
|
| 136 |
-
case
|
| 137 |
-
html = _context3.
|
| 138 |
// Process the fragment
|
| 139 |
temp = document.createElement('div');
|
| 140 |
temp.innerHTML = html;
|
|
@@ -153,19 +151,18 @@ function _loadFragments() {
|
|
| 153 |
});
|
| 154 |
_this.activeFetches--;
|
| 155 |
resolve();
|
| 156 |
-
_context3.
|
| 157 |
break;
|
| 158 |
-
case
|
| 159 |
-
_context3.
|
| 160 |
-
|
| 161 |
-
console.error("Failed to load fragment ".concat(fragmentPath, " after ").concat(_this.maxRetries, " retries:"),
|
| 162 |
_this.activeFetches--;
|
| 163 |
-
reject(
|
| 164 |
-
case
|
| 165 |
-
|
| 166 |
-
return _context3.stop();
|
| 167 |
}
|
| 168 |
-
}, _callee3, null, [[0,
|
| 169 |
}))();
|
| 170 |
_this.queue.push(fetchPromise);
|
| 171 |
_this.activeFetches++;
|
|
@@ -173,8 +170,7 @@ function _loadFragments() {
|
|
| 173 |
reject(error);
|
| 174 |
}
|
| 175 |
case 1:
|
| 176 |
-
|
| 177 |
-
return _context4.stop();
|
| 178 |
}
|
| 179 |
}, _callee4);
|
| 180 |
}));
|
|
@@ -182,9 +178,6 @@ function _loadFragments() {
|
|
| 182 |
return _ref.apply(this, arguments);
|
| 183 |
};
|
| 184 |
}()));
|
| 185 |
-
case 3:
|
| 186 |
-
case "end":
|
| 187 |
-
return _context5.stop();
|
| 188 |
}
|
| 189 |
}, _callee5);
|
| 190 |
}));
|
|
@@ -196,19 +189,18 @@ function _loadFragments() {
|
|
| 196 |
}, {
|
| 197 |
key: "processNext",
|
| 198 |
value: function () {
|
| 199 |
-
var _processNext = _asyncToGenerator(/*#__PURE__*/
|
| 200 |
-
return
|
| 201 |
-
while (1) switch (_context6.
|
| 202 |
case 0:
|
| 203 |
if (!(this.activeFetches < this.maxConcurrent && element)) {
|
| 204 |
-
_context6.
|
| 205 |
break;
|
| 206 |
}
|
| 207 |
-
_context6.
|
| 208 |
return this.addFetch(element);
|
| 209 |
-
case
|
| 210 |
-
|
| 211 |
-
return _context6.stop();
|
| 212 |
}
|
| 213 |
}, _callee6, this);
|
| 214 |
}));
|
|
@@ -223,42 +215,41 @@ function _loadFragments() {
|
|
| 223 |
currentIndex = 0;
|
| 224 |
elements = fragmentElements; // Assuming this is defined elsewhere
|
| 225 |
// Initial loading of first 3 elements
|
| 226 |
-
case
|
| 227 |
if (!(currentIndex < elements.length && currentIndex < 3)) {
|
| 228 |
-
_context7.
|
| 229 |
break;
|
| 230 |
}
|
| 231 |
-
_context7.
|
| 232 |
return fetchQueue.processNext(elements[currentIndex]);
|
| 233 |
-
case
|
| 234 |
currentIndex++;
|
| 235 |
-
_context7.
|
| 236 |
break;
|
| 237 |
-
case
|
| 238 |
if (!(currentIndex < elements.length)) {
|
| 239 |
-
_context7.
|
| 240 |
break;
|
| 241 |
}
|
| 242 |
-
_context7.
|
| 243 |
return Promise.race(fetchQueue.queue);
|
| 244 |
-
case
|
| 245 |
// Remove completed fetch from queue
|
| 246 |
fetchQueue.queue = fetchQueue.queue.filter(function (p) {
|
| 247 |
return p.status === 'pending';
|
| 248 |
});
|
| 249 |
// Add next element to queue
|
| 250 |
-
_context7.
|
| 251 |
return fetchQueue.processNext(elements[currentIndex]);
|
| 252 |
-
case
|
| 253 |
currentIndex++;
|
| 254 |
-
_context7.
|
| 255 |
break;
|
| 256 |
-
case
|
| 257 |
-
_context7.
|
| 258 |
return Promise.all(fetchQueue.queue);
|
| 259 |
-
case
|
| 260 |
-
|
| 261 |
-
return _context7.stop();
|
| 262 |
}
|
| 263 |
}, _callee7);
|
| 264 |
}));
|
|
|
|
| 3 |
|
| 4 |
;// ./src/fragmentLoader.js
|
| 5 |
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); }
|
| 6 |
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
| 7 |
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
|
| 8 |
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
| 9 |
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
| 10 |
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
|
|
| 16 |
return _loadFragments.apply(this, arguments);
|
| 17 |
}
|
| 18 |
function _loadFragments() {
|
| 19 |
+
_loadFragments = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {
|
| 20 |
var fragmentElements, FetchQueue, fetchQueue, currentIndex, elements;
|
| 21 |
+
return _regenerator().w(function (_context7) {
|
| 22 |
+
while (1) switch (_context7.n) {
|
| 23 |
case 0:
|
| 24 |
// Find all elements with ids starting with 'fragment-'
|
| 25 |
fragmentElements = Array.from(document.querySelectorAll('[id^="fragment-"]'));
|
|
|
|
| 36 |
return _createClass(FetchQueue, [{
|
| 37 |
key: "sleep",
|
| 38 |
value: function () {
|
| 39 |
+
var _sleep = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(ms) {
|
| 40 |
+
return _regenerator().w(function (_context) {
|
| 41 |
+
while (1) switch (_context.n) {
|
| 42 |
case 0:
|
| 43 |
+
return _context.a(2, new Promise(function (resolve) {
|
| 44 |
return setTimeout(resolve, ms);
|
| 45 |
}));
|
|
|
|
|
|
|
|
|
|
| 46 |
}
|
| 47 |
}, _callee);
|
| 48 |
}));
|
|
|
|
| 54 |
}, {
|
| 55 |
key: "fetchWithRetry",
|
| 56 |
value: function () {
|
| 57 |
+
var _fetchWithRetry = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(fragmentPath) {
|
| 58 |
var retryCount,
|
| 59 |
response,
|
| 60 |
delay,
|
| 61 |
+
_args2 = arguments,
|
| 62 |
+
_t;
|
| 63 |
+
return _regenerator().w(function (_context2) {
|
| 64 |
+
while (1) switch (_context2.n) {
|
| 65 |
case 0:
|
| 66 |
retryCount = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : 0;
|
| 67 |
+
_context2.p = 1;
|
| 68 |
+
_context2.n = 2;
|
| 69 |
return fetch(fragmentPath);
|
| 70 |
+
case 2:
|
| 71 |
+
response = _context2.v;
|
| 72 |
if (response.ok) {
|
| 73 |
+
_context2.n = 3;
|
| 74 |
break;
|
| 75 |
}
|
| 76 |
throw new Error("HTTP error! status: ".concat(response.status));
|
| 77 |
+
case 3:
|
| 78 |
+
_context2.n = 4;
|
| 79 |
return response.text();
|
| 80 |
+
case 4:
|
| 81 |
+
return _context2.a(2, _context2.v);
|
| 82 |
+
case 5:
|
| 83 |
+
_context2.p = 5;
|
| 84 |
+
_t = _context2.v;
|
| 85 |
if (!(retryCount < this.maxRetries)) {
|
| 86 |
+
_context2.n = 7;
|
| 87 |
break;
|
| 88 |
}
|
| 89 |
// Exponential backoff: 1s, 2s, 4s
|
| 90 |
delay = this.baseDelay * Math.pow(2, retryCount);
|
| 91 |
console.warn("Retry ".concat(retryCount + 1, "/").concat(this.maxRetries, " for ").concat(fragmentPath, " after ").concat(delay, "ms"));
|
| 92 |
+
_context2.n = 6;
|
| 93 |
return this.sleep(delay);
|
| 94 |
+
case 6:
|
| 95 |
+
return _context2.a(2, this.fetchWithRetry(fragmentPath, retryCount + 1));
|
| 96 |
+
case 7:
|
| 97 |
+
throw _t;
|
| 98 |
+
case 8:
|
| 99 |
+
return _context2.a(2);
|
|
|
|
| 100 |
}
|
| 101 |
+
}, _callee2, this, [[1, 5]]);
|
| 102 |
}));
|
| 103 |
function fetchWithRetry(_x2) {
|
| 104 |
return _fetchWithRetry.apply(this, arguments);
|
|
|
|
| 108 |
}, {
|
| 109 |
key: "addFetch",
|
| 110 |
value: function () {
|
| 111 |
+
var _addFetch = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(element) {
|
| 112 |
var _this = this;
|
| 113 |
var fragmentName, fragmentPath;
|
| 114 |
+
return _regenerator().w(function (_context5) {
|
| 115 |
+
while (1) switch (_context5.n) {
|
| 116 |
case 0:
|
| 117 |
fragmentName = element.id.replace('fragment-', '');
|
| 118 |
fragmentPath = "fragments/".concat(fragmentName, ".html");
|
| 119 |
+
return _context5.a(2, new Promise(/*#__PURE__*/function () {
|
| 120 |
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(resolve, reject) {
|
| 121 |
var fetchPromise;
|
| 122 |
+
return _regenerator().w(function (_context4) {
|
| 123 |
+
while (1) switch (_context4.n) {
|
| 124 |
case 0:
|
| 125 |
try {
|
| 126 |
+
fetchPromise = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
| 127 |
+
var html, temp, scripts, _t2;
|
| 128 |
+
return _regenerator().w(function (_context3) {
|
| 129 |
+
while (1) switch (_context3.n) {
|
| 130 |
case 0:
|
| 131 |
+
_context3.p = 0;
|
| 132 |
+
_context3.n = 1;
|
| 133 |
return _this.fetchWithRetry(fragmentPath);
|
| 134 |
+
case 1:
|
| 135 |
+
html = _context3.v;
|
| 136 |
// Process the fragment
|
| 137 |
temp = document.createElement('div');
|
| 138 |
temp.innerHTML = html;
|
|
|
|
| 151 |
});
|
| 152 |
_this.activeFetches--;
|
| 153 |
resolve();
|
| 154 |
+
_context3.n = 3;
|
| 155 |
break;
|
| 156 |
+
case 2:
|
| 157 |
+
_context3.p = 2;
|
| 158 |
+
_t2 = _context3.v;
|
| 159 |
+
console.error("Failed to load fragment ".concat(fragmentPath, " after ").concat(_this.maxRetries, " retries:"), _t2);
|
| 160 |
_this.activeFetches--;
|
| 161 |
+
reject(_t2);
|
| 162 |
+
case 3:
|
| 163 |
+
return _context3.a(2);
|
|
|
|
| 164 |
}
|
| 165 |
+
}, _callee3, null, [[0, 2]]);
|
| 166 |
}))();
|
| 167 |
_this.queue.push(fetchPromise);
|
| 168 |
_this.activeFetches++;
|
|
|
|
| 170 |
reject(error);
|
| 171 |
}
|
| 172 |
case 1:
|
| 173 |
+
return _context4.a(2);
|
|
|
|
| 174 |
}
|
| 175 |
}, _callee4);
|
| 176 |
}));
|
|
|
|
| 178 |
return _ref.apply(this, arguments);
|
| 179 |
};
|
| 180 |
}()));
|
|
|
|
|
|
|
|
|
|
| 181 |
}
|
| 182 |
}, _callee5);
|
| 183 |
}));
|
|
|
|
| 189 |
}, {
|
| 190 |
key: "processNext",
|
| 191 |
value: function () {
|
| 192 |
+
var _processNext = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(element) {
|
| 193 |
+
return _regenerator().w(function (_context6) {
|
| 194 |
+
while (1) switch (_context6.n) {
|
| 195 |
case 0:
|
| 196 |
if (!(this.activeFetches < this.maxConcurrent && element)) {
|
| 197 |
+
_context6.n = 1;
|
| 198 |
break;
|
| 199 |
}
|
| 200 |
+
_context6.n = 1;
|
| 201 |
return this.addFetch(element);
|
| 202 |
+
case 1:
|
| 203 |
+
return _context6.a(2);
|
|
|
|
| 204 |
}
|
| 205 |
}, _callee6, this);
|
| 206 |
}));
|
|
|
|
| 215 |
currentIndex = 0;
|
| 216 |
elements = fragmentElements; // Assuming this is defined elsewhere
|
| 217 |
// Initial loading of first 3 elements
|
| 218 |
+
case 1:
|
| 219 |
if (!(currentIndex < elements.length && currentIndex < 3)) {
|
| 220 |
+
_context7.n = 3;
|
| 221 |
break;
|
| 222 |
}
|
| 223 |
+
_context7.n = 2;
|
| 224 |
return fetchQueue.processNext(elements[currentIndex]);
|
| 225 |
+
case 2:
|
| 226 |
currentIndex++;
|
| 227 |
+
_context7.n = 1;
|
| 228 |
break;
|
| 229 |
+
case 3:
|
| 230 |
if (!(currentIndex < elements.length)) {
|
| 231 |
+
_context7.n = 6;
|
| 232 |
break;
|
| 233 |
}
|
| 234 |
+
_context7.n = 4;
|
| 235 |
return Promise.race(fetchQueue.queue);
|
| 236 |
+
case 4:
|
| 237 |
// Remove completed fetch from queue
|
| 238 |
fetchQueue.queue = fetchQueue.queue.filter(function (p) {
|
| 239 |
return p.status === 'pending';
|
| 240 |
});
|
| 241 |
// Add next element to queue
|
| 242 |
+
_context7.n = 5;
|
| 243 |
return fetchQueue.processNext(elements[currentIndex]);
|
| 244 |
+
case 5:
|
| 245 |
currentIndex++;
|
| 246 |
+
_context7.n = 3;
|
| 247 |
break;
|
| 248 |
+
case 6:
|
| 249 |
+
_context7.n = 7;
|
| 250 |
return Promise.all(fetchQueue.queue);
|
| 251 |
+
case 7:
|
| 252 |
+
return _context7.a(2);
|
|
|
|
| 253 |
}
|
| 254 |
}, _callee7);
|
| 255 |
}));
|
dist/main.bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"version":3,"file":"main.bundle.js","mappings":"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","sources":["webpack://blogpost/./src/fragmentLoader.js","webpack://blogpost/./src/syncHFSpacesURLHash.js","webpack://blogpost/./src/index.js"],"sourcesContent":["async function loadFragments() {\n // Find all elements with ids starting with 'fragment-'\n const fragmentElements = Array.from(document.querySelectorAll('[id^=\"fragment-\"]'));\n \n class FetchQueue {\n constructor(maxConcurrent = 3) {\n this.queue = [];\n this.maxConcurrent = maxConcurrent;\n this.activeFetches = 0;\n this.maxRetries = 3; // Maximum number of retry attempts\n this.baseDelay = 1000; // Base delay in milliseconds (1 second)\n }\n\n async sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n async fetchWithRetry(fragmentPath, retryCount = 0) {\n try {\n const response = await fetch(fragmentPath);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.text();\n } catch (error) {\n if (retryCount < this.maxRetries) {\n // Exponential backoff: 1s, 2s, 4s\n const delay = this.baseDelay * Math.pow(2, retryCount);\n console.warn(`Retry ${retryCount + 1}/${this.maxRetries} for ${fragmentPath} after ${delay}ms`);\n await this.sleep(delay);\n return this.fetchWithRetry(fragmentPath, retryCount + 1);\n }\n throw error;\n }\n }\n\n async addFetch(element) {\n const fragmentName = element.id.replace('fragment-', '');\n const fragmentPath = `fragments/${fragmentName}.html`;\n \n return new Promise(async (resolve, reject) => {\n try {\n const fetchPromise = (async () => {\n try {\n const html = await this.fetchWithRetry(fragmentPath);\n \n // Process the fragment\n const temp = document.createElement('div');\n temp.innerHTML = html;\n element.innerHTML = temp.innerHTML;\n \n // Handle scripts\n const scripts = temp.getElementsByTagName('script');\n Array.from(scripts).forEach(oldScript => {\n const newScript = document.createElement('script');\n Array.from(oldScript.attributes).forEach(attr => {\n newScript.setAttribute(attr.name, attr.value);\n });\n newScript.textContent = oldScript.textContent;\n oldScript.parentNode.removeChild(oldScript);\n document.body.appendChild(newScript);\n });\n \n this.activeFetches--;\n resolve();\n } catch (error) {\n console.error(`Failed to load fragment ${fragmentPath} after ${this.maxRetries} retries:`, error);\n this.activeFetches--;\n reject(error);\n }\n })();\n\n this.queue.push(fetchPromise);\n this.activeFetches++;\n } catch (error) {\n reject(error);\n }\n });\n }\n\n async processNext(element) {\n if (this.activeFetches < this.maxConcurrent && element) {\n await this.addFetch(element);\n }\n }\n }\n\n // Initialize queue\n const fetchQueue = new FetchQueue(3);\n let currentIndex = 0;\n const elements = fragmentElements; // Assuming this is defined elsewhere\n\n // Initial loading of first 3 elements\n while (currentIndex < elements.length && currentIndex < 3) {\n await fetchQueue.processNext(elements[currentIndex]);\n currentIndex++;\n }\n\n // Process remaining elements as fetches complete\n while (currentIndex < elements.length) {\n // Wait for any fetch to complete\n await Promise.race(fetchQueue.queue);\n // Remove completed fetch from queue\n fetchQueue.queue = fetchQueue.queue.filter(p => p.status === 'pending');\n // Add next element to queue\n await fetchQueue.processNext(elements[currentIndex]);\n currentIndex++;\n }\n\n // Wait for remaining fetches to complete\n await Promise.all(fetchQueue.queue);\n}\n\nexport { loadFragments }","const queryArg = \"section\";\n\nfunction syncHFSpacesURLHash() {\n // Handle explicit section requests (don't update hash automatically on load)\n const hasExplicitRequest = handleExplicitSectionRequest();\n \n // Set up hash change monitoring\n updateHashBasedOnHashChange();\n \n // Always set up scroll monitoring to update hash during scrolling\n setupScrollMonitoring();\n \n // If no explicit request, we don't update the hash on initial load\n // The hash will only start updating when the user scrolls\n}\n\nfunction handleExplicitSectionRequest() {\n // Check for section parameter in URL\n const urlParams = new URLSearchParams(window.location.search);\n const sectionId = urlParams.get(queryArg);\n \n // If we have an explicit section request\n if (sectionId) {\n const targetElement = document.getElementById(sectionId);\n if (targetElement) {\n // Slight delay to ensure the browser doesn't try to do its own scrolling first\n setTimeout(() => {\n targetElement.scrollIntoView();\n history.replaceState(null, null, `#${sectionId}`);\n }, 100);\n }\n return true;\n }\n \n // No explicit section parameter found\n return false;\n}\n\nfunction setupScrollMonitoring() {\n // Variables to manage throttling\n let isScrolling = false;\n let lastKnownScrollPosition = 0;\n let initialScroll = true;\n \n // Add the scroll event listener\n window.addEventListener('scroll', function() {\n lastKnownScrollPosition = window.scrollY;\n \n if (!isScrolling) {\n window.requestAnimationFrame(function() {\n // Skip the first scroll event which might be browser's automatic scroll\n // to a hash on page load\n if (initialScroll) {\n initialScroll = false;\n } else {\n updateHashBasedOnScroll(lastKnownScrollPosition);\n }\n isScrolling = false;\n });\n }\n \n isScrolling = true;\n });\n}\n\n// Function to update the URL hash based on scroll position\nfunction updateHashBasedOnScroll(scrollPosition) {\n const closestHeading = findClosestHeading(scrollPosition);\n \n // Update the URL hash if we found a closest element\n if (closestHeading && closestHeading.id) {\n // Only update if the hash is different to avoid unnecessary operations\n if (window.location.hash !== `#${closestHeading.id}`) {\n silentlyUpdateHash(closestHeading.id);\n postMessageToHFSpaces(closestHeading.id);\n }\n }\n}\n\n// Find the closest heading to the current scroll position\nfunction findClosestHeading(scrollPosition) {\n // Get only heading elements with IDs that we want to track\n const headingsWithIds = Array.from(document.querySelectorAll('h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]'));\n\n // Skip if there are no headings with IDs\n if (headingsWithIds.length === 0) return null;\n\n // Find the element closest to the middle of the viewport\n let closestHeading = null;\n let closestDistance = Infinity;\n const viewportMiddle = scrollPosition + window.innerHeight / 2;\n \n // Iterate through all headings to find the closest one\n headingsWithIds.forEach(heading => {\n const headingTop = heading.getBoundingClientRect().top + scrollPosition;\n const distance = Math.abs(headingTop - viewportMiddle);\n \n if (distance < closestDistance) {\n closestDistance = distance;\n closestHeading = heading;\n }\n });\n \n return closestHeading;\n}\n\n// Update hash without triggering scroll or other side effects\nfunction silentlyUpdateHash(id) {\n history.replaceState(null, null, `#${id}`);\n}\n\nfunction updateHashBasedOnHashChange() {\n window.addEventListener('hashchange', () => {\n const elementId = window.location.hash.slice(1);\n postMessageToHFSpaces(elementId);\n });\n}\n\nfunction postMessageToHFSpaces(elementId) {\n const parentOrigin = \"https://huggingface.co\";\n window.parent.postMessage({ queryString: `${queryArg}=${elementId}` }, parentOrigin);\n}\n\nexport { syncHFSpacesURLHash };\n","// import { plotClusters } from './clusters'\nimport { loadFragments } from './fragmentLoader'\nimport { syncHFSpacesURLHash } from './syncHFSpacesURLHash'\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n console.log(\"DOMContentLoaded\");\n loadFragments();\n init_memory_plot();\n syncHFSpacesURLHash();\n}, { once: true });\n"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","loadFragments","_loadFragments","_callee7","fragmentElements","FetchQueue","fetchQueue","currentIndex","elements","_callee7$","_context7","Array","from","document","querySelectorAll","maxConcurrent","undefined","queue","activeFetches","maxRetries","baseDelay","_sleep","_callee","ms","_callee$","_context","setTimeout","sleep","_x","_fetchWithRetry","_callee2","fragmentPath","retryCount","response","delay","_args2","_callee2$","_context2","fetch","ok","concat","status","text","t0","Math","pow","console","warn","fetchWithRetry","_x2","_addFetch","_callee5","element","_this","fragmentName","_callee5$","_context5","id","replace","_ref","_callee4","reject","fetchPromise","_callee4$","_context4","_callee3","html","temp","scripts","_callee3$","_context3","createElement","innerHTML","getElementsByTagName","oldScript","newScript","attributes","attr","setAttribute","textContent","parentNode","removeChild","body","appendChild","error","_x4","_x5","addFetch","_x3","_processNext","_callee6","_callee6$","_context6","processNext","_x6","race","filter","all","queryArg","syncHFSpacesURLHash","hasExplicitRequest","handleExplicitSectionRequest","updateHashBasedOnHashChange","setupScrollMonitoring","urlParams","URLSearchParams","window","location","search","sectionId","get","targetElement","getElementById","scrollIntoView","history","replaceState","isScrolling","lastKnownScrollPosition","initialScroll","addEventListener","scrollY","requestAnimationFrame","updateHashBasedOnScroll","scrollPosition","closestHeading","findClosestHeading","hash","silentlyUpdateHash","postMessageToHFSpaces","headingsWithIds","closestDistance","Infinity","viewportMiddle","innerHeight","heading","headingTop","getBoundingClientRect","top","distance","abs","elementId","parentOrigin","parent","postMessage","queryString","log","init_memory_plot","once"],"sourceRoot":""}
|
|
|
|
| 1 |
+
{"version":3,"file":"main.bundle.js","mappings":"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","sources":["webpack://blogpost/./src/fragmentLoader.js","webpack://blogpost/./src/syncHFSpacesURLHash.js","webpack://blogpost/./src/index.js"],"sourcesContent":["async function loadFragments() {\n // Find all elements with ids starting with 'fragment-'\n const fragmentElements = Array.from(document.querySelectorAll('[id^=\"fragment-\"]'));\n \n class FetchQueue {\n constructor(maxConcurrent = 3) {\n this.queue = [];\n this.maxConcurrent = maxConcurrent;\n this.activeFetches = 0;\n this.maxRetries = 3; // Maximum number of retry attempts\n this.baseDelay = 1000; // Base delay in milliseconds (1 second)\n }\n\n async sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n async fetchWithRetry(fragmentPath, retryCount = 0) {\n try {\n const response = await fetch(fragmentPath);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.text();\n } catch (error) {\n if (retryCount < this.maxRetries) {\n // Exponential backoff: 1s, 2s, 4s\n const delay = this.baseDelay * Math.pow(2, retryCount);\n console.warn(`Retry ${retryCount + 1}/${this.maxRetries} for ${fragmentPath} after ${delay}ms`);\n await this.sleep(delay);\n return this.fetchWithRetry(fragmentPath, retryCount + 1);\n }\n throw error;\n }\n }\n\n async addFetch(element) {\n const fragmentName = element.id.replace('fragment-', '');\n const fragmentPath = `fragments/${fragmentName}.html`;\n \n return new Promise(async (resolve, reject) => {\n try {\n const fetchPromise = (async () => {\n try {\n const html = await this.fetchWithRetry(fragmentPath);\n \n // Process the fragment\n const temp = document.createElement('div');\n temp.innerHTML = html;\n element.innerHTML = temp.innerHTML;\n \n // Handle scripts\n const scripts = temp.getElementsByTagName('script');\n Array.from(scripts).forEach(oldScript => {\n const newScript = document.createElement('script');\n Array.from(oldScript.attributes).forEach(attr => {\n newScript.setAttribute(attr.name, attr.value);\n });\n newScript.textContent = oldScript.textContent;\n oldScript.parentNode.removeChild(oldScript);\n document.body.appendChild(newScript);\n });\n \n this.activeFetches--;\n resolve();\n } catch (error) {\n console.error(`Failed to load fragment ${fragmentPath} after ${this.maxRetries} retries:`, error);\n this.activeFetches--;\n reject(error);\n }\n })();\n\n this.queue.push(fetchPromise);\n this.activeFetches++;\n } catch (error) {\n reject(error);\n }\n });\n }\n\n async processNext(element) {\n if (this.activeFetches < this.maxConcurrent && element) {\n await this.addFetch(element);\n }\n }\n }\n\n // Initialize queue\n const fetchQueue = new FetchQueue(3);\n let currentIndex = 0;\n const elements = fragmentElements; // Assuming this is defined elsewhere\n\n // Initial loading of first 3 elements\n while (currentIndex < elements.length && currentIndex < 3) {\n await fetchQueue.processNext(elements[currentIndex]);\n currentIndex++;\n }\n\n // Process remaining elements as fetches complete\n while (currentIndex < elements.length) {\n // Wait for any fetch to complete\n await Promise.race(fetchQueue.queue);\n // Remove completed fetch from queue\n fetchQueue.queue = fetchQueue.queue.filter(p => p.status === 'pending');\n // Add next element to queue\n await fetchQueue.processNext(elements[currentIndex]);\n currentIndex++;\n }\n\n // Wait for remaining fetches to complete\n await Promise.all(fetchQueue.queue);\n}\n\nexport { loadFragments }","const queryArg = \"section\";\n\nfunction syncHFSpacesURLHash() {\n // Handle explicit section requests (don't update hash automatically on load)\n const hasExplicitRequest = handleExplicitSectionRequest();\n \n // Set up hash change monitoring\n updateHashBasedOnHashChange();\n \n // Always set up scroll monitoring to update hash during scrolling\n setupScrollMonitoring();\n \n // If no explicit request, we don't update the hash on initial load\n // The hash will only start updating when the user scrolls\n}\n\nfunction handleExplicitSectionRequest() {\n // Check for section parameter in URL\n const urlParams = new URLSearchParams(window.location.search);\n const sectionId = urlParams.get(queryArg);\n \n // If we have an explicit section request\n if (sectionId) {\n const targetElement = document.getElementById(sectionId);\n if (targetElement) {\n // Slight delay to ensure the browser doesn't try to do its own scrolling first\n setTimeout(() => {\n targetElement.scrollIntoView();\n history.replaceState(null, null, `#${sectionId}`);\n }, 100);\n }\n return true;\n }\n \n // No explicit section parameter found\n return false;\n}\n\nfunction setupScrollMonitoring() {\n // Variables to manage throttling\n let isScrolling = false;\n let lastKnownScrollPosition = 0;\n let initialScroll = true;\n \n // Add the scroll event listener\n window.addEventListener('scroll', function() {\n lastKnownScrollPosition = window.scrollY;\n \n if (!isScrolling) {\n window.requestAnimationFrame(function() {\n // Skip the first scroll event which might be browser's automatic scroll\n // to a hash on page load\n if (initialScroll) {\n initialScroll = false;\n } else {\n updateHashBasedOnScroll(lastKnownScrollPosition);\n }\n isScrolling = false;\n });\n }\n \n isScrolling = true;\n });\n}\n\n// Function to update the URL hash based on scroll position\nfunction updateHashBasedOnScroll(scrollPosition) {\n const closestHeading = findClosestHeading(scrollPosition);\n \n // Update the URL hash if we found a closest element\n if (closestHeading && closestHeading.id) {\n // Only update if the hash is different to avoid unnecessary operations\n if (window.location.hash !== `#${closestHeading.id}`) {\n silentlyUpdateHash(closestHeading.id);\n postMessageToHFSpaces(closestHeading.id);\n }\n }\n}\n\n// Find the closest heading to the current scroll position\nfunction findClosestHeading(scrollPosition) {\n // Get only heading elements with IDs that we want to track\n const headingsWithIds = Array.from(document.querySelectorAll('h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]'));\n\n // Skip if there are no headings with IDs\n if (headingsWithIds.length === 0) return null;\n\n // Find the element closest to the middle of the viewport\n let closestHeading = null;\n let closestDistance = Infinity;\n const viewportMiddle = scrollPosition + window.innerHeight / 2;\n \n // Iterate through all headings to find the closest one\n headingsWithIds.forEach(heading => {\n const headingTop = heading.getBoundingClientRect().top + scrollPosition;\n const distance = Math.abs(headingTop - viewportMiddle);\n \n if (distance < closestDistance) {\n closestDistance = distance;\n closestHeading = heading;\n }\n });\n \n return closestHeading;\n}\n\n// Update hash without triggering scroll or other side effects\nfunction silentlyUpdateHash(id) {\n history.replaceState(null, null, `#${id}`);\n}\n\nfunction updateHashBasedOnHashChange() {\n window.addEventListener('hashchange', () => {\n const elementId = window.location.hash.slice(1);\n postMessageToHFSpaces(elementId);\n });\n}\n\nfunction postMessageToHFSpaces(elementId) {\n const parentOrigin = \"https://huggingface.co\";\n window.parent.postMessage({ queryString: `${queryArg}=${elementId}` }, parentOrigin);\n}\n\nexport { syncHFSpacesURLHash };\n","// import { plotClusters } from './clusters'\nimport { loadFragments } from './fragmentLoader'\nimport { syncHFSpacesURLHash } from './syncHFSpacesURLHash'\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n console.log(\"DOMContentLoaded\");\n loadFragments();\n init_memory_plot();\n syncHFSpacesURLHash();\n}, { once: true });\n"],"names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","enumerable","configurable","writable","_invoke","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_toPrimitive","_typeof","toPrimitive","String","Number","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","loadFragments","_loadFragments","_callee7","fragmentElements","FetchQueue","fetchQueue","currentIndex","elements","_context7","Array","from","document","querySelectorAll","maxConcurrent","undefined","queue","activeFetches","maxRetries","baseDelay","_sleep","_callee","ms","_context","setTimeout","sleep","_x","_fetchWithRetry","_callee2","fragmentPath","retryCount","response","delay","_args2","_t","_context2","fetch","ok","Error","concat","status","text","Math","pow","console","warn","fetchWithRetry","_x2","_addFetch","_callee5","element","_this","fragmentName","_context5","id","replace","_ref","_callee4","reject","fetchPromise","_context4","_callee3","html","temp","scripts","_t2","_context3","createElement","innerHTML","getElementsByTagName","forEach","oldScript","newScript","attributes","attr","setAttribute","name","textContent","parentNode","removeChild","body","appendChild","error","push","_x4","_x5","addFetch","_x3","_processNext","_callee6","_context6","processNext","_x6","race","filter","all","queryArg","syncHFSpacesURLHash","hasExplicitRequest","handleExplicitSectionRequest","updateHashBasedOnHashChange","setupScrollMonitoring","urlParams","URLSearchParams","window","location","search","sectionId","get","targetElement","getElementById","scrollIntoView","history","replaceState","isScrolling","lastKnownScrollPosition","initialScroll","addEventListener","scrollY","requestAnimationFrame","updateHashBasedOnScroll","scrollPosition","closestHeading","findClosestHeading","hash","silentlyUpdateHash","postMessageToHFSpaces","headingsWithIds","closestDistance","Infinity","viewportMiddle","innerHeight","heading","headingTop","getBoundingClientRect","top","distance","abs","elementId","slice","parentOrigin","parent","postMessage","queryString","log","init_memory_plot","once"],"sourceRoot":""}
|
dist/style.css
CHANGED
|
@@ -161,7 +161,7 @@ d-contents > nav a.active {
|
|
| 161 |
border-bottom-style: solid;
|
| 162 |
border-bottom-color: rgba(0, 0, 0, 0.1);
|
| 163 |
overflow-y: scroll;
|
| 164 |
-
height: calc(100vh - 40px);
|
| 165 |
scrollbar-width: none;
|
| 166 |
z-index: -100;
|
| 167 |
}
|
|
@@ -221,7 +221,7 @@ toggle-icon.collapsed {
|
|
| 221 |
position: sticky;
|
| 222 |
top: 10px; /* Adjust this value if needed */
|
| 223 |
overflow-y: auto;
|
| 224 |
-
height: calc(100vh - 40px);
|
| 225 |
scrollbar-width: none;
|
| 226 |
transition: max-height 0.3s ease-out;
|
| 227 |
z-index: -100;
|
|
|
|
| 161 |
border-bottom-style: solid;
|
| 162 |
border-bottom-color: rgba(0, 0, 0, 0.1);
|
| 163 |
overflow-y: scroll;
|
| 164 |
+
/* height: calc(100vh - 40px); */
|
| 165 |
scrollbar-width: none;
|
| 166 |
z-index: -100;
|
| 167 |
}
|
|
|
|
| 221 |
position: sticky;
|
| 222 |
top: 10px; /* Adjust this value if needed */
|
| 223 |
overflow-y: auto;
|
| 224 |
+
/* height: calc(100vh - 40px); */
|
| 225 |
scrollbar-width: none;
|
| 226 |
transition: max-height 0.3s ease-out;
|
| 227 |
z-index: -100;
|
src/style.css
CHANGED
|
@@ -161,7 +161,7 @@ d-contents > nav a.active {
|
|
| 161 |
border-bottom-style: solid;
|
| 162 |
border-bottom-color: rgba(0, 0, 0, 0.1);
|
| 163 |
overflow-y: scroll;
|
| 164 |
-
height: calc(100vh - 40px);
|
| 165 |
scrollbar-width: none;
|
| 166 |
z-index: -100;
|
| 167 |
}
|
|
@@ -221,7 +221,7 @@ toggle-icon.collapsed {
|
|
| 221 |
position: sticky;
|
| 222 |
top: 10px; /* Adjust this value if needed */
|
| 223 |
overflow-y: auto;
|
| 224 |
-
height: calc(100vh - 40px);
|
| 225 |
scrollbar-width: none;
|
| 226 |
transition: max-height 0.3s ease-out;
|
| 227 |
z-index: -100;
|
|
|
|
| 161 |
border-bottom-style: solid;
|
| 162 |
border-bottom-color: rgba(0, 0, 0, 0.1);
|
| 163 |
overflow-y: scroll;
|
| 164 |
+
/* height: calc(100vh - 40px); */
|
| 165 |
scrollbar-width: none;
|
| 166 |
z-index: -100;
|
| 167 |
}
|
|
|
|
| 221 |
position: sticky;
|
| 222 |
top: 10px; /* Adjust this value if needed */
|
| 223 |
overflow-y: auto;
|
| 224 |
+
/* height: calc(100vh - 40px); */
|
| 225 |
scrollbar-width: none;
|
| 226 |
transition: max-height 0.3s ease-out;
|
| 227 |
z-index: -100;
|