Added back patched

This commit is contained in:
squidfunk
2021-02-12 16:22:06 +01:00
parent d664fafa6a
commit 44751785a0
22 changed files with 247 additions and 31 deletions

View File

@@ -21,6 +21,7 @@
*/
import {
EMPTY,
NEVER,
Observable,
Subject,
@@ -31,6 +32,7 @@ import {
import {
bufferCount,
catchError,
concatMap,
debounceTime,
distinctUntilChanged,
distinctUntilKeyChanged,
@@ -47,7 +49,9 @@ import { configuration } from "~/_"
import {
Viewport,
ViewportOffset,
createElement,
getElement,
getElementOrThrow,
getElements,
replaceElement,
request,
@@ -279,17 +283,44 @@ export function setupInstantLoading(
"[data-md-component=container]",
"[data-md-component=skip]"
]) {
const next = getElement(selector, replacement)
const prev = getElement(selector)
const source = getElement(selector)
const target = getElement(selector, replacement)
if (
typeof next !== "undefined" &&
typeof prev !== "undefined"
typeof source !== "undefined" &&
typeof target !== "undefined"
) {
replaceElement(prev, next)
replaceElement(source, target)
}
}
})
/* Re-evaluate scripts */
document$
.pipe(
skip(1),
map(() => getElementOrThrow("[data-md-component=container]")),
switchMap(el => of(...getElements("script", el))),
concatMap(el => {
const script = createElement("script")
if (el.src) {
script.src = el.src
replaceElement(el, script)
/* Complete when script is loaded */
return new Observable(observer => {
script.onload = () => observer.complete()
})
/* Complete immediately */
} else {
script.textContent = el.textContent!
replaceElement(el, script)
return EMPTY
}
})
)
.subscribe()
/* Debounce update of viewport offset */
viewport$
.pipe(