mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-09 03:46:16 -08:00
136 lines
4.5 KiB
JavaScript
136 lines
4.5 KiB
JavaScript
// Generated by yarn build:site-assets. Do not edit.
|
|
"use strict";
|
|
(() => {
|
|
// packages/artplayer-vitepress/browser/loader.ts
|
|
function parameters(url) {
|
|
const result = {};
|
|
for (const part of new URL(url).search.slice(1).split("&")) {
|
|
const index = part.indexOf("=");
|
|
if (index >= 0)
|
|
result[part.slice(0, index)] = part.slice(index + 1);
|
|
}
|
|
return result;
|
|
}
|
|
function suspendDefine(host) {
|
|
const descriptor = Object.getOwnPropertyDescriptor(host, "define");
|
|
if (descriptor?.configurable === false) {
|
|
if (!("value" in descriptor) || !descriptor.writable)
|
|
throw new Error("Cannot temporarily suspend the AMD loader");
|
|
Object.defineProperty(host, "define", { value: void 0 });
|
|
} else {
|
|
Object.defineProperty(host, "define", { value: void 0, configurable: true, writable: true, enumerable: descriptor?.enumerable ?? true });
|
|
}
|
|
return () => {
|
|
if (descriptor)
|
|
Object.defineProperty(host, "define", descriptor);
|
|
else Reflect.deleteProperty(host, "define");
|
|
};
|
|
}
|
|
function createLibraryLoader(host = window) {
|
|
const loaded = /* @__PURE__ */ new Set();
|
|
let queue = Promise.resolve();
|
|
let cancel;
|
|
let disposed = false;
|
|
const ensureActive = () => {
|
|
if (disposed)
|
|
throw new Error("Documentation loader was disposed");
|
|
};
|
|
function load(url, script) {
|
|
return new Promise((resolve, reject) => {
|
|
const element = host.document.createElement(script ? "script" : "link");
|
|
let restore;
|
|
let settled = false;
|
|
function finish(error) {
|
|
if (settled)
|
|
return;
|
|
settled = true;
|
|
element.removeEventListener("load", success);
|
|
element.removeEventListener("error", failure);
|
|
cancel = void 0;
|
|
try {
|
|
restore?.();
|
|
} catch (cause) {
|
|
error = new Error(`Failed to restore AMD loader: ${String(cause)}`);
|
|
}
|
|
if (error) {
|
|
element.remove();
|
|
reject(error);
|
|
} else {
|
|
resolve();
|
|
}
|
|
}
|
|
function success() {
|
|
finish();
|
|
}
|
|
function failure() {
|
|
finish(new Error(`Loading ${script ? "script" : "style"} failed: ${url}`));
|
|
}
|
|
element.addEventListener("load", success);
|
|
element.addEventListener("error", failure);
|
|
cancel = () => finish(new Error(`Cancelled documentation dependency: ${url}`));
|
|
try {
|
|
ensureActive();
|
|
if (script) {
|
|
restore = suspendDefine(host);
|
|
const node = element;
|
|
node.type = "text/javascript";
|
|
node.src = url;
|
|
node.async = false;
|
|
} else {
|
|
const node = element;
|
|
node.rel = "stylesheet";
|
|
node.href = url;
|
|
}
|
|
host.document.head.appendChild(element);
|
|
} catch (cause) {
|
|
finish(cause instanceof Error ? cause : new Error(String(cause)));
|
|
}
|
|
});
|
|
}
|
|
return {
|
|
loadLibraries(encoded = "") {
|
|
const work = queue.then(async () => {
|
|
ensureActive();
|
|
const urls = decodeURIComponent(encoded).split(/\r?\n/).map((url) => url.trim()).filter(Boolean);
|
|
const result = [];
|
|
for (const url of urls) {
|
|
ensureActive();
|
|
const absolute = new URL(url, host.location.href);
|
|
const extension = absolute.pathname.toLowerCase().split(".").pop();
|
|
if (extension !== "js" && extension !== "css")
|
|
continue;
|
|
if (!loaded.has(absolute.href)) {
|
|
await load(absolute.href, extension === "js");
|
|
loaded.add(absolute.href);
|
|
}
|
|
result.push(url);
|
|
}
|
|
return result;
|
|
});
|
|
queue = work.catch(() => {
|
|
});
|
|
return work;
|
|
},
|
|
dispose() {
|
|
disposed = true;
|
|
cancel?.();
|
|
loaded.clear();
|
|
}
|
|
};
|
|
}
|
|
async function exampleSource(name, request = fetch) {
|
|
const response = await request(`./assets/example/${name}.js`);
|
|
if (!response.ok)
|
|
throw new Error(`Loading example failed: ${name} (${response.status})`);
|
|
return response.text();
|
|
}
|
|
|
|
// packages/artplayer-vitepress/browser/editor-loader.ts
|
|
var loader = createLibraryLoader();
|
|
Object.assign(window, { ArtplayerDocsLoader: { ...loader, exampleSource, parameters } });
|
|
window.addEventListener("pagehide", (event) => {
|
|
if (!event.persisted)
|
|
loader.dispose();
|
|
});
|
|
})();
|