var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var _a, _b;
const kObject = Symbol.for("reflexo-obj");
var TypstDefaultParams;
(function(TypstDefaultParams2) {
TypstDefaultParams2[TypstDefaultParams2["PIXEL_PER_PT"] = 3] = "PIXEL_PER_PT";
})(TypstDefaultParams = TypstDefaultParams || (TypstDefaultParams = {}));
class RenderView {
constructor(pageInfos, container, options) {
__publicField(this, "pageInfos");
__publicField(this, "loadPageCount");
__publicField(this, "imageScaleFactor");
__publicField(this, "container");
__publicField(this, "canvasList");
__publicField(this, "textLayerList");
__publicField(this, "commonList");
__publicField(this, "textLayerParentList");
__publicField(this, "semanticLayerList");
this.pageInfos = pageInfos;
this.imageScaleFactor = options.pixelPerPt ?? TypstDefaultParams.PIXEL_PER_PT;
container.innerHTML = "";
container.style.width = "100%";
this.container = container;
this.canvasList = new Array(this.loadPageCount);
this.textLayerList = new Array(this.loadPageCount);
this.commonList = new Array(this.loadPageCount);
this.textLayerParentList = new Array(this.loadPageCount);
this.semanticLayerList = new Array(this.loadPageCount);
const createOver = (i, pageAst, commonDiv) => {
const width = Math.ceil(pageAst.width) * this.imageScaleFactor;
const height = Math.ceil(pageAst.height) * this.imageScaleFactor;
const canvas = this.canvasList[i] = document.createElement("canvas");
const semanticLayer = this.semanticLayerList[i] = document.createElement("div");
const textLayer = this.textLayerList[i] = document.createElement("div");
const textLayerParent = this.textLayerParentList[i] = document.createElement("div");
const ctx = canvas.getContext("2d");
if (ctx) {
const canvasDiv = document.createElement("div");
canvas.width = width;
canvas.height = height;
canvasDiv.appendChild(canvas);
commonDiv.appendChild(canvasDiv);
canvasDiv.style.position = "absolute";
}
{
textLayerParent.appendChild(textLayer);
textLayerParent.className = "typst-html-semantics";
const containerWidth = container.offsetWidth;
const originalScale = containerWidth / pageAst.width;
textLayerParent.style.width = `${containerWidth}px`;
textLayerParent.style.height = `${pageAst.height * originalScale}px`;
textLayerParent.style.setProperty("--data-text-width", `${originalScale}px`);
textLayerParent.style.setProperty("--data-text-height", `${originalScale}px`);
commonDiv.classList.add("typst-page");
commonDiv.classList.add("canvas");
commonDiv.style.width = `${containerWidth}px`;
commonDiv.style.height = `${height * originalScale}px`;
commonDiv.style.position = "relative";
semanticLayer.appendChild(textLayerParent);
commonDiv.appendChild(semanticLayer);
}
};
for (let i = 0; i < this.pageInfos.length; i++) {
const pageAst = this.pageInfos[i];
let commonDiv = void 0;
commonDiv = this.commonList[i] = document.createElement("div");
container.appendChild(commonDiv);
createOver(i, pageAst, commonDiv);
}
}
resetLayout() {
for (let i = 0; i < this.pageInfos.length; i++) {
const pageAst = this.pageInfos[i];
const width = Math.ceil(pageAst.width) * this.imageScaleFactor;
const height = Math.ceil(pageAst.height) * this.imageScaleFactor;
const canvasDiv = this.canvasList[i].parentElement;
if (!canvasDiv) {
throw new Error(`canvasDiv is null for page ${i}, canvas list length ${this.canvasList.length}`);
}
const commonDiv = this.commonList[i];
const textLayerParent = this.textLayerParentList[i];
const containerWidth = this.container.offsetWidth;
const originalScale = containerWidth / width;
textLayerParent.style.width = `${containerWidth}px`;
textLayerParent.style.height = `${height * originalScale}px`;
commonDiv.style.width = `${containerWidth}px`;
commonDiv.style.height = `${height * originalScale}px`;
const currentScale = this.container.offsetWidth / width;
canvasDiv.style.transformOrigin = "0px 0px";
canvasDiv.style.transform = `scale(${currentScale})`;
}
}
}
const once = (fn) => {
let called = false;
let res;
return () => {
if (called) {
return res;
}
called = true;
return res = fn();
};
};
class LazyWasmModule {
constructor(initFn) {
__publicField(this, "wasmBin");
__publicField(this, "initOnce");
if (typeof initFn !== "function") {
throw new Error("initFn is not a function");
}
this.initOnce = once(async () => {
await initFn(this.wasmBin);
});
}
async init(module) {
this.wasmBin = module;
await this.initOnce();
}
}
const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);
let idbProxyableTypes;
let cursorAdvanceMethods;
function getIdbProxyableTypes() {
return idbProxyableTypes || (idbProxyableTypes = [
IDBDatabase,
IDBObjectStore,
IDBIndex,
IDBCursor,
IDBTransaction
]);
}
function getCursorAdvanceMethods() {
return cursorAdvanceMethods || (cursorAdvanceMethods = [
IDBCursor.prototype.advance,
IDBCursor.prototype.continue,
IDBCursor.prototype.continuePrimaryKey
]);
}
const cursorRequestMap = /* @__PURE__ */ new WeakMap();
const transactionDoneMap = /* @__PURE__ */ new WeakMap();
const transactionStoreNamesMap = /* @__PURE__ */ new WeakMap();
const transformCache = /* @__PURE__ */ new WeakMap();
const reverseTransformCache = /* @__PURE__ */ new WeakMap();
function promisifyRequest(request) {
const promise = new Promise((resolve, reject) => {
const unlisten = () => {
request.removeEventListener("success", success);
request.removeEventListener("error", error);
};
const success = () => {
resolve(wrap(request.result));
unlisten();
};
const error = () => {
reject(request.error);
unlisten();
};
request.addEventListener("success", success);
request.addEventListener("error", error);
});
promise.then((value) => {
if (value instanceof IDBCursor) {
cursorRequestMap.set(value, request);
}
}).catch(() => {
});
reverseTransformCache.set(promise, request);
return promise;
}
function cacheDonePromiseForTransaction(tx) {
if (transactionDoneMap.has(tx))
return;
const done = new Promise((resolve, reject) => {
const unlisten = () => {
tx.removeEventListener("complete", complete);
tx.removeEventListener("error", error);
tx.removeEventListener("abort", error);
};
const complete = () => {
resolve();
unlisten();
};
const error = () => {
reject(tx.error || new DOMException("AbortError", "AbortError"));
unlisten();
};
tx.addEventListener("complete", complete);
tx.addEventListener("error", error);
tx.addEventListener("abort", error);
});
transactionDoneMap.set(tx, done);
}
let idbProxyTraps = {
get(target, prop, receiver) {
if (target instanceof IDBTransaction) {
if (prop === "done")
return transactionDoneMap.get(target);
if (prop === "objectStoreNames") {
return target.objectStoreNames || transactionStoreNamesMap.get(target);
}
if (prop === "store") {
return receiver.objectStoreNames[1] ? void 0 : receiver.objectStore(receiver.objectStoreNames[0]);
}
}
return wrap(target[prop]);
},
set(target, prop, value) {
target[prop] = value;
return true;
},
has(target, prop) {
if (target instanceof IDBTransaction && (prop === "done" || prop === "store")) {
return true;
}
return prop in target;
}
};
function replaceTraps(callback) {
idbProxyTraps = callback(idbProxyTraps);
}
function wrapFunction(func) {
if (func === IDBDatabase.prototype.transaction && !("objectStoreNames" in IDBTransaction.prototype)) {
return function(storeNames, ...args) {
const tx = func.call(unwrap(this), storeNames, ...args);
transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);
return wrap(tx);
};
}
if (getCursorAdvanceMethods().includes(func)) {
return function(...args) {
func.apply(unwrap(this), args);
return wrap(cursorRequestMap.get(this));
};
}
return function(...args) {
return wrap(func.apply(unwrap(this), args));
};
}
function transformCachableValue(value) {
if (typeof value === "function")
return wrapFunction(value);
if (value instanceof IDBTransaction)
cacheDonePromiseForTransaction(value);
if (instanceOfAny(value, getIdbProxyableTypes()))
return new Proxy(value, idbProxyTraps);
return value;
}
function wrap(value) {
if (value instanceof IDBRequest)
return promisifyRequest(value);
if (transformCache.has(value))
return transformCache.get(value);
const newValue = transformCachableValue(value);
if (newValue !== value) {
transformCache.set(value, newValue);
reverseTransformCache.set(newValue, value);
}
return newValue;
}
const unwrap = (value) => reverseTransformCache.get(value);
const readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"];
const writeMethods = ["put", "add", "delete", "clear"];
const cachedMethods = /* @__PURE__ */ new Map();
function getMethod(target, prop) {
if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === "string")) {
return;
}
if (cachedMethods.get(prop))
return cachedMethods.get(prop);
const targetFuncName = prop.replace(/FromIndex$/, "");
const useIndex = prop !== targetFuncName;
const isWrite = writeMethods.includes(targetFuncName);
if (
// Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.
!(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName))
) {
return;
}
const method = async function(storeName, ...args) {
const tx = this.transaction(storeName, isWrite ? "readwrite" : "readonly");
let target2 = tx.store;
if (useIndex)
target2 = target2.index(args.shift());
return (await Promise.all([
target2[targetFuncName](...args),
isWrite && tx.done
]))[0];
};
cachedMethods.set(prop, method);
return method;
}
replaceTraps((oldTraps) => ({
...oldTraps,
get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),
has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop)
}));
class ComponentBuilder {
constructor() {
__publicField(this, "loadedFonts", /* @__PURE__ */ new Set());
__publicField(this, "fetcher", fetch);
}
setFetcher(fetcher) {
this.fetcher = fetcher;
}
async loadFonts(builder, fonts) {
const escapeImport = new Function("m", "return import(m)");
const fetcher = this.fetcher || (this.fetcher = await async function() {
const { fetchBuilder, FileSystemCache } = await escapeImport("node-fetch-cache");
const cache = new FileSystemCache({
/// By default, we don't have a complicated cache policy.
cacheDirectory: ".cache/typst/fonts"
});
const cachedFetcher = fetchBuilder.withCache(cache);
return function(input, init) {
const timeout = setTimeout(() => {
console.warn("font fetching is stucking:", input);
}, 15e3);
return cachedFetcher(input, init).finally(() => {
clearTimeout(timeout);
});
};
}());
const fontsToLoad = fonts.filter((font) => {
if (font instanceof Uint8Array) {
return true;
}
if (this.loadedFonts.has(font)) {
return false;
}
this.loadedFonts.add(font);
return true;
});
const fontLists = await Promise.all(fontsToLoad.map(async (font) => {
if (font instanceof Uint8Array) {
await builder.add_raw_font(font);
return;
}
return new Uint8Array(await (await fetcher(font)).arrayBuffer());
}));
for (const font of fontLists) {
if (!font) {
continue;
}
await builder.add_raw_font(font);
}
}
async build(options, builder, hooks) {
const buildCtx = { ref: this, builder, hooks };
for (const fn of (options == null ? void 0 : options.beforeBuild) ?? []) {
await fn(void 0, buildCtx);
}
if (hooks.latelyBuild) {
hooks.latelyBuild(buildCtx);
}
const component = await builder.build();
return component;
}
}
async function buildComponent(options, gModule, Builder, hooks) {
var _a2;
await gModule.init((_a2 = options == null ? void 0 : options.getModule) == null ? void 0 : _a2.call(options));
return await new ComponentBuilder().build(options, new Builder(), hooks);
}
var PreviewMode;
(function(PreviewMode2) {
PreviewMode2[PreviewMode2["Doc"] = 0] = "Doc";
PreviewMode2[PreviewMode2["Slide"] = 1] = "Slide";
})(PreviewMode = PreviewMode || (PreviewMode = {}));
class TypstDocumentContext {
constructor(opts) {
__publicField(this, "hookedElem");
__publicField(this, "kModule");
__publicField(this, "opts");
__publicField(this, "modes", []);
/// Configuration fields
/// enable partial rendering
__publicField(this, "partialRendering", true);
/// underlying renderer
__publicField(this, "renderMode", "svg");
__publicField(this, "r");
/// preview mode
__publicField(this, "previewMode", PreviewMode.Doc);
/// whether this is a content preview
__publicField(this, "isContentPreview", false);
/// whether this content preview will mix outline titles
__publicField(this, "isMixinOutline", false);
/// background color
__publicField(this, "backgroundColor", "black");
/// default page color (empty string means transparent)
__publicField(this, "pageColor", "white");
/// pixel per pt
__publicField(this, "pixelPerPt", 3);
/// customized way to retrieving dom state
__publicField(this, "retrieveDOMState");
/// State fields
/// whether svg is updating (in triggerSvgUpdate)
__publicField(this, "isRendering", false);
/// whether kModule is initialized
__publicField(this, "moduleInitialized", false);
/// patch queue for updating data.
__publicField(this, "patchQueue", []);
/// resources to dispose
__publicField(this, "disposeList", []);
/// canvas render ctoken
__publicField(this, "canvasRenderCToken");
/// There are two scales in this class: The real scale is to adjust the size
/// of `hookedElem` to fit the svg. The virtual scale (scale ratio) is to let
/// user zoom in/out the svg. For example:
/// + the default value of virtual scale is 1, which means the svg is totally
/// fit in `hookedElem`.
/// + if user set virtual scale to 0.5, then the svg will be zoomed out to fit
/// in half width of `hookedElem`. "real" current scale of `hookedElem`
__publicField(this, "currentRealScale", 1);
/// "virtual" current scale of `hookedElem`
__publicField(this, "currentScaleRatio", 1);
/// timeout for delayed viewport change
__publicField(this, "vpTimeout");
/// sampled by last render time.
__publicField(this, "sampledRenderTime", 0);
/// page to partial render
__publicField(this, "partialRenderPage", 0);
/// outline data
__publicField(this, "outline");
/// cursor position in form of [page, x, y]
__publicField(this, "cursorPosition");
// id: number = rnd++;
/// Cache fields
/// cached state of container, default to retrieve state from `this.hookedElem`
__publicField(this, "cachedDOMState", {
width: 0,
height: 0,
window: {
innerWidth: 0,
innerHeight: 0
},
boundingRect: {
left: 0,
top: 0,
right: 0
}
});
var _a2, _b2;
this.hookedElem = opts.hookedElem;
this.kModule = opts.kModule;
this.opts = opts || {};
{
const { renderMode, previewMode, isContentPreview, retrieveDOMState } = opts || {};
this.partialRendering = false;
this.renderMode = renderMode ?? this.renderMode;
this.previewMode = previewMode ?? this.previewMode;
this.isContentPreview = isContentPreview || false;
this.retrieveDOMState = retrieveDOMState ?? (() => {
return {
width: this.hookedElem.offsetWidth,
height: this.hookedElem.offsetHeight,
window: {
innerWidth: window.innerWidth,
innerHeight: window.innerHeight
},
boundingRect: this.hookedElem.getBoundingClientRect()
};
});
this.backgroundColor = getComputedStyle(document.documentElement).getPropertyValue("--typst-preview-background-color");
}
this.hookedElem.classList.add("hide-scrollbar-x");
(_a2 = this.hookedElem.parentElement) == null ? void 0 : _a2.classList.add("hide-scrollbar-x");
if (this.previewMode === PreviewMode.Slide) {
this.hookedElem.classList.add("hide-scrollbar-y");
(_b2 = this.hookedElem.parentElement) == null ? void 0 : _b2.classList.add("hide-scrollbar-y");
}
this.installCtrlWheelHandler();
}
reset() {
this.kModule.reset();
this.moduleInitialized = false;
}
dispose() {
const disposeList = this.disposeList;
this.disposeList = [];
disposeList.forEach((x) => x());
}
static derive(ctx, mode) {
return ["rescale", "rerender", "postRender"].reduce((acc, x) => {
acc[x] = ctx[`${x}$${mode}`].bind(ctx);
console.assert(acc[x] !== void 0, `${x}$${mode} is undefined`);
return acc;
}, {});
}
registerMode(mode) {
const facade = TypstDocumentContext.derive(this, mode);
this.modes.push([mode, facade]);
if (mode === this.renderMode) {
this.r = facade;
}
}
installCtrlWheelHandler() {
const factors = [
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8,
0.9,
1,
1.1,
1.3,
1.5,
1.7,
1.9,
2.1,
2.4,
2.7,
3,
3.3,
3.7,
4.1,
4.6,
5.1,
5.7,
6.3,
7,
7.7,
8.5,
9.4,
10
];
const wheelEventHandler = (event) => {
var _a2, _b2, _c, _d;
if (event.ctrlKey) {
event.preventDefault();
this.cachedDOMState = this.retrieveDOMState();
if (window.onresize !== null) {
window.onresize = null;
}
const prevScaleRatio = this.currentScaleRatio;
if (event.deltaY < 0) {
if (this.currentScaleRatio >= factors.at(-1)) {
return;
} else {
this.currentScaleRatio = factors.filter((x) => x > this.currentScaleRatio).at(0);
}
} else if (event.deltaY > 0) {
if (this.currentScaleRatio <= factors.at(0)) {
return;
} else {
this.currentScaleRatio = factors.filter((x) => x < this.currentScaleRatio).at(-1);
}
} else {
return;
}
const scrollFactor = this.currentScaleRatio / prevScaleRatio;
const scrollX = event.pageX * (scrollFactor - 1);
const scrollY = event.pageY * (scrollFactor - 1);
if (Math.abs(this.currentScaleRatio - 1) < 1e-5) {
this.hookedElem.classList.add("hide-scrollbar-x");
(_a2 = this.hookedElem.parentElement) == null ? void 0 : _a2.classList.add("hide-scrollbar-x");
if (this.previewMode === PreviewMode.Slide) {
this.hookedElem.classList.add("hide-scrollbar-y");
(_b2 = this.hookedElem.parentElement) == null ? void 0 : _b2.classList.add("hide-scrollbar-y");
}
} else {
this.hookedElem.classList.remove("hide-scrollbar-x");
(_c = this.hookedElem.parentElement) == null ? void 0 : _c.classList.remove("hide-scrollbar-x");
if (this.previewMode === PreviewMode.Slide) {
this.hookedElem.classList.remove("hide-scrollbar-y");
(_d = this.hookedElem.parentElement) == null ? void 0 : _d.classList.remove("hide-scrollbar-y");
}
}
const svg = this.hookedElem.firstElementChild;
if (svg) {
const scaleRatio = this.getSvgScaleRatio();
const dataHeight = Number.parseFloat(svg.getAttribute("data-height"));
const scaledHeight = Math.ceil(dataHeight * scaleRatio);
this.hookedElem.style.height = `${scaledHeight * 2}px`;
}
window.scrollBy(scrollX, scrollY);
this.addViewportChange();
return false;
}
};
if (this.renderMode !== "dom") {
const vscodeAPI = typeof acquireVsCodeApi !== "undefined";
if (vscodeAPI) {
window.addEventListener("wheel", wheelEventHandler, {
passive: false
});
this.disposeList.push(() => {
window.removeEventListener("wheel", wheelEventHandler);
});
} else {
document.body.addEventListener("wheel", wheelEventHandler, {
passive: false
});
this.disposeList.push(() => {
document.body.removeEventListener("wheel", wheelEventHandler);
});
}
}
}
/// Get current scale from html to svg
// Note: one should retrieve dom state before rescale
getSvgScaleRatio() {
const svg = this.hookedElem.firstElementChild;
if (!svg) {
return 0;
}
const container = this.cachedDOMState;
const svgWidth = Number.parseFloat(svg.getAttribute("data-width") || svg.getAttribute("width") || "1");
const svgHeight = Number.parseFloat(svg.getAttribute("data-height") || svg.getAttribute("height") || "1");
this.currentRealScale = this.previewMode === PreviewMode.Slide ? Math.min(container.width / svgWidth, container.height / svgHeight) : container.width / svgWidth;
return this.currentRealScale * this.currentScaleRatio;
}
processQueue(svgUpdateEvent) {
const eventName = svgUpdateEvent[0];
switch (eventName) {
case "new":
case "diff-v1": {
if (eventName === "new") {
this.reset();
}
this.kModule.manipulateData({
action: "merge",
data: svgUpdateEvent[1]
});
this.moduleInitialized = true;
return true;
}
case "viewport-change": {
if (!this.moduleInitialized) {
console.log("viewport-change before initialization");
return false;
}
return true;
}
default:
console.log("svgUpdateEvent", svgUpdateEvent);
return false;
}
}
triggerUpdate() {
if (this.isRendering) {
return;
}
this.isRendering = true;
const doUpdate = async () => {
this.cachedDOMState = this.retrieveDOMState();
if (this.patchQueue.length === 0) {
this.isRendering = false;
this.postprocessChanges();
return;
}
try {
let t0 = performance.now();
const ctoken = this.canvasRenderCToken;
if (ctoken) {
await ctoken.cancel();
await ctoken.wait();
this.canvasRenderCToken = void 0;
console.log("cancel canvas rendering");
}
let needRerender = false;
while (this.patchQueue.length > 0) {
needRerender = this.processQueue(this.patchQueue.shift()) || needRerender;
}
let t1 = performance.now();
if (needRerender) {
this.r.rescale();
await this.r.rerender();
this.r.rescale();
}
let t2 = performance.now();
const d = (e, x, y) => `${e} ${(y - x).toFixed(2)} ms`;
this.sampledRenderTime = t2 - t0;
console.log([d("parse", t0, t1), d("rerender", t1, t2), d("total", t0, t2)].join(", "));
requestAnimationFrame(doUpdate);
} catch (e) {
console.error(e);
this.isRendering = false;
this.postprocessChanges();
}
};
requestAnimationFrame(doUpdate);
}
postprocessChanges() {
this.r.postRender();
if (this.previewMode === PreviewMode.Slide) {
document.querySelectorAll(".typst-page-number-indicator").forEach((x) => {
x.textContent = `${this.kModule.retrievePagesInfo().length}`;
});
}
}
addChangement(change) {
if (change[0] === "new") {
this.patchQueue.splice(0, this.patchQueue.length);
}
const pushChange = () => {
this.vpTimeout = void 0;
this.patchQueue.push(change);
this.triggerUpdate();
};
if (this.vpTimeout !== void 0) {
clearTimeout(this.vpTimeout);
}
if (change[0] === "viewport-change" && this.isRendering) {
this.vpTimeout = setTimeout(pushChange, this.sampledRenderTime || 100);
} else {
pushChange();
}
}
addViewportChange() {
this.addChangement(["viewport-change", ""]);
}
}
function provideDoc(Base) {
return class TypstDocument {
constructor(options) {
__publicField(this, "impl");
__publicField(this, "kModule");
if (options.isContentPreview) {
options.renderMode = "canvas";
}
this.kModule = options.kModule;
this.impl = new Base(options);
if (!this.impl.r) {
throw new Error(`mode is not supported, ${options == null ? void 0 : options.renderMode}`);
}
if (options.isContentPreview) {
this.impl.partialRendering = true;
this.impl.pixelPerPt = 1;
this.impl.isMixinOutline = true;
}
}
dispose() {
this.impl.dispose();
}
reset() {
this.impl.reset();
}
addChangement(change) {
this.impl.addChangement(change);
}
addViewportChange() {
this.impl.addViewportChange();
}
setPageColor(color) {
this.impl.pageColor = color;
this.addViewportChange();
}
setPartialRendering(partialRendering) {
this.impl.partialRendering = partialRendering;
}
setCursor(page, x, y) {
this.impl.cursorPosition = [page, x, y];
}
setPartialPageNumber(page) {
if (page <= 0 || page > this.kModule.retrievePagesInfo().length) {
return false;
}
this.impl.partialRenderPage = page - 1;
this.addViewportChange();
return true;
}
getPartialPageNumber() {
return this.impl.partialRenderPage + 1;
}
setOutineData(outline) {
this.impl.outline = outline;
this.addViewportChange();
}
};
}
function composeDoc(Base, ...mixins) {
return mixins.reduce((acc, mixin) => mixin(acc), Base);
}
class TypstCancellationToken {
constructor() {
__publicField(this, "isCancellationRequested", false);
__publicField(this, "_onCancelled");
__publicField(this, "_onCancelledResolveResolved");
let resolveT = void 0;
let resolveX = void 0;
this._onCancelled = new Promise((resolve) => {
resolveT = resolve;
if (resolveX) {
resolveX(resolve);
}
});
this._onCancelledResolveResolved = new Promise((resolve) => {
resolveX = resolve;
if (resolveT) {
resolve(resolveT);
}
});
}
async cancel() {
await this._onCancelledResolveResolved;
this.isCancellationRequested = true;
}
isCancelRequested() {
return this.isCancellationRequested;
}
async consume() {
(await this._onCancelledResolveResolved)();
}
wait() {
return this._onCancelled;
}
}
const animationFrame = () => new Promise((resolve) => requestAnimationFrame(resolve));
var TrackMode;
(function(TrackMode2) {
TrackMode2[TrackMode2["Doc"] = 0] = "Doc";
TrackMode2[TrackMode2["Pages"] = 1] = "Pages";
})(TrackMode || (TrackMode = {}));
var RepaintStage;
(function(RepaintStage2) {
RepaintStage2[RepaintStage2["Layout"] = 0] = "Layout";
RepaintStage2[RepaintStage2["Svg"] = 1] = "Svg";
RepaintStage2[RepaintStage2["Semantics"] = 2] = "Semantics";
RepaintStage2[RepaintStage2["PrepareCanvas"] = 3] = "PrepareCanvas";
RepaintStage2[RepaintStage2["Canvas"] = 4] = "Canvas";
})(RepaintStage || (RepaintStage = {}));
function provideDomDoc(Base) {
return class DomDocument extends Base {
constructor(...args) {
super(...args);
/// The template element for creating DOM by string.
__publicField(this, "tmpl", document.createElement("template"));
/// The stub element for replacing an invisible element.
__publicField(this, "stub", this.createElement(""));
/// Typescript side of lib.
__publicField(this, "plugin");
/// Rust side of kernel.
__publicField(this, "docKernel");
/// The element to track.
__publicField(this, "resourceHeader");
/// Expected exact state of the current DOM.
/// Initially it is empty meaning no any page is rendered.
__publicField(this, "pages", []);
/// The virtual scale of the document.
__publicField(this, "domScale", 1);
/// Track mode.
__publicField(this, "track_mode", TrackMode.Doc);
/// Current executing task.
__publicField(this, "current_task");
/// The currently maintained viewport.
__publicField(this, "viewport");
this.registerMode("dom");
this.disposeList.push(() => {
this.dispose();
});
this.plugin = this.opts.renderer;
if (this.opts.domScale !== void 0) {
if (this.opts.domScale <= 0) {
throw new Error("domScale must be positive");
}
this.domScale = this.opts.domScale;
}
}
dispose() {
for (const page of this.pages) {
page.dispose();
}
if (this.docKernel) {
this.docKernel.free();
}
}
createElement(tmpl) {
this.tmpl.innerHTML = tmpl;
return this.tmpl.content.firstElementChild;
}
async mountDom(pixelPerPt) {
console.log("mountDom", pixelPerPt);
if (this.docKernel) {
throw new Error("already mounted");
}
this.hookedElem.innerHTML = ``;
this.resourceHeader = this.hookedElem.querySelector(".typst-svg-resources");
this.docKernel = await this.plugin.renderer.mount_dom(this.kModule[kObject], this.hookedElem);
this.docKernel.bind_functions({
populateGlyphs: (data) => {
let svg = this.createElement(data);
console.log("populateGlyphs", svg);
let content = svg.firstElementChild;
this.resourceHeader.append(content);
}
});
}
async cancelAnyway$dom() {
console.log("cancelAnyway$dom");
if (this.current_task) {
const task = this.current_task;
this.current_task = void 0;
await task.cancel();
}
}
retrieveDOMPages() {
return Array.from(this.hookedElem.querySelectorAll(".typst-dom-page"));
}
// doesn't need to postRender
postRender$dom() {
}
// doesn't need to rescale
rescale$dom() {
}
getDomViewport(cachedWindow, cachedBoundingRect) {
const left = cachedBoundingRect.left;
const top = -cachedBoundingRect.top;
const right = cachedBoundingRect.right;
const bottom = cachedWindow.innerHeight - cachedBoundingRect.top;
const rect = {
x: 0,
y: top / this.domScale,
width: Math.max(right - left, 0) / this.domScale,
height: Math.max(bottom - top, 0) / this.domScale
};
if (rect.width <= 0 || rect.height <= 0) {
rect.x = rect.y = rect.width = rect.height = 0;
}
return rect;
}
// fast mode
async rerender$dom() {
const domState = this.retrieveDOMState();
const { x, y, width, height } = this.getDomViewport(domState.window, domState.boundingRect);
let dirty = await this.docKernel.relayout(x, y, width, height);
if (!dirty) {
return;
}
const cancel = new TypstCancellationToken();
this.doRender$dom(cancel);
this.current_task = cancel;
}
async doRender$dom(ctx) {
const condOrExit = (needFrame, cb) => {
if (needFrame && !ctx.isCancelRequested() && cb) {
return cb();
}
};
const pages = this.retrieveDOMPages().map((page) => {
const { innerWidth, innerHeight } = window;
const browserBBox = page.getBoundingClientRect();
return {
inWindow: !(browserBBox.left > innerWidth || browserBBox.right < 0 || browserBBox.top > innerHeight || browserBBox.bottom < 0),
page
};
});
const renderPage = async (i) => {
await animationFrame();
if (ctx.isCancelRequested()) {
console.log("cancel stage", RepaintStage.Layout, i);
return void 0;
}
const page = pages[i].page;
const browserBBox = page.getBoundingClientRect();
const v = this.getDomViewport(window, browserBBox);
const needCalc = (stage) => this.docKernel.need_repaint(i, v.x, v.y, v.width, v.height, stage);
const repaint = (stage) => this.docKernel.repaint(i, v.x, v.y, v.width, v.height, stage);
const calc = (stage) => {
if (ctx.isCancelRequested()) {
return void 0;
}
return condOrExit(needCalc(stage), () => repaint(stage));
};
await calc(RepaintStage.Layout);
const wScale = (browserBBox.width ? Number.parseFloat(page.getAttribute("data-width")) / browserBBox.width : 1) * this.domScale;
const hScale = (browserBBox.height ? Number.parseFloat(page.getAttribute("data-height")) / browserBBox.height : 1) * this.domScale;
v.x *= wScale;
v.y *= hScale;
v.y -= 100;
v.width *= wScale;
v.height *= hScale;
v.height += 200;
await calc(RepaintStage.Svg);
await calc(RepaintStage.Semantics);
if (ctx.isCancelRequested()) {
console.log("cancel stage", RepaintStage.Semantics, i);
return void 0;
}
if (needCalc(RepaintStage.PrepareCanvas)) {
const calcCanvasAfterPreparing = async () => {
await repaint(RepaintStage.PrepareCanvas);
if (ctx.isCancelRequested()) {
return void 0;
}
return calc(RepaintStage.Canvas);
};
calcCanvasAfterPreparing();
} else {
await calc(RepaintStage.Canvas);
}
};
const renderPages = async (inWindow) => {
for (let idx = 0; idx < pages.length; ++idx) {
if (ctx.isCancelRequested()) {
console.log("cancel page", RepaintStage.Layout, idx);
return;
}
if (pages[idx].inWindow === inWindow) {
await renderPage(idx);
}
}
};
this.cancelAnyway$dom();
await renderPages(true);
await renderPages(false);
if (ctx.isCancelRequested()) {
return;
}
console.log("finished", RepaintStage.Layout);
}
};
}
class TypstDomDocument extends provideDoc(composeDoc(TypstDocumentContext, provideDomDoc)) {
}
let RenderSession$1 = (_a = kObject, class RenderSession {
/**
* @internal
*/
constructor(plugin, o) {
__publicField(this, "plugin");
/**
* @internal
*/
__publicField(this, _a);
this.plugin = plugin;
this[kObject] = o;
}
/**
* @deprecated set in {@link RenderToCanvasOptions} instead
*
* Set the background color of the Typst document.
* @param {string} t - The background color in format of `^#?[0-9a-f]{6}$`
*
* Note: Default to `#ffffff`.
*
* Note: Only available in canvas rendering mode.
*/
set backgroundColor(t) {
if (t !== void 0) {
this[kObject].background_color = t;
}
}
/**
* Get the background color of the Typst document.
*
* Note: Default to `#ffffff`.
*
* Note: Only available in canvas rendering mode.
*/
get backgroundColor() {
return this[kObject].background_color;
}
/**
* Set the pixel per point scale up the canvas panel.
*
* Note: Default to `3`.
*
* Note: Only available in canvas rendering mode.
*/
set pixelPerPt(t) {
if (t !== void 0) {
this[kObject].pixel_per_pt = t;
}
}
/**
* @deprecated set in {@link RenderToCanvasOptions} instead
*
* Get the pixel per point scale up the canvas panel.
*
* Note: Default to `3`.
*
* Note: Only available in canvas rendering mode.
*/
get pixelPerPt() {
return this[kObject].pixel_per_pt;
}
/**
* Reset state
*/
reset() {
this.plugin.resetSession(this);
}
/**
* @deprecated
* use {@link docWidth} instead
*/
get doc_width() {
return this[kObject].doc_width;
}
get docWidth() {
return this[kObject].doc_width;
}
/**
* @deprecated
* use {@link docHeight} instead
*/
get doc_height() {
return this[kObject].doc_height;
}
get docHeight() {
return this[kObject].doc_height;
}
retrievePagesInfo() {
const pages_info = this[kObject].pages_info;
const pageInfos = [];
const pageCount = pages_info.page_count;
for (let i = 0; i < pageCount; i++) {
const pageAst = pages_info.page(i);
pageInfos.push({
pageOffset: pageAst.page_off,
width: pageAst.width_pt,
height: pageAst.height_pt
});
}
return pageInfos;
}
getSourceLoc(path) {
return this[kObject].source_span(path);
}
/**
* See {@link TypstRenderer#renderSvg} for more details.
*/
renderSvg(options) {
return this.plugin.renderSvg({
renderSession: this,
...options
});
}
/**
* See {@link TypstRenderer#renderToSvg} for more details.
*/
renderToSvg(options) {
return this.plugin.renderToSvg({
renderSession: this,
...options
});
}
/**
* See {@link TypstRenderer#renderCanvas} for more details.
*/
renderCanvas(options) {
return this.plugin.renderCanvas({
renderSession: this,
...options
});
}
/**
* See {@link TypstRenderer#manipulateData} for more details.
*/
manipulateData(opts) {
this.plugin.manipulateData({
renderSession: this,
...opts
});
}
/**
* See {@link TypstRenderer#renderSvgDiff} for more details.
*/
renderSvgDiff(opts) {
return this.plugin.renderSvgDiff({
renderSession: this,
...opts
});
}
/**
* @deprecated
* use {@link getSourceLoc} instead
*/
get_source_loc(path) {
return this[kObject].source_span(path);
}
/**
* @deprecated
* use {@link renderSvgDiff} instead
*/
render_in_window(rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y) {
return this[kObject].render_in_window(rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y);
}
/**
* @deprecated
* use {@link manipulateData} instead
*/
merge_delta(data) {
this.plugin.manipulateData({
renderSession: this,
action: "merge",
data
});
}
});
var ManageStatus;
(function(ManageStatus2) {
ManageStatus2[ManageStatus2["Delete"] = 0] = "Delete";
ManageStatus2[ManageStatus2["New"] = 1] = "New";
ManageStatus2[ManageStatus2["Update"] = 2] = "Update";
})(ManageStatus || (ManageStatus = {}));
let TypstWorker$1 = (_b = kObject, class TypstWorker {
/**
* @internal
*/
constructor(plugin, o) {
__publicField(this, "plugin");
/**
* @internal
*/
__publicField(this, _b);
/**
* @internal
*/
__publicField(this, "managedCanvasElemList", /* @__PURE__ */ new Map());
/**
* @internal
*/
__publicField(this, "canvasCounter", Math.random());
this.plugin = plugin;
this[kObject] = o;
}
/**
* See {@link TypstRenderer#manipulateData} for more details.
*/
manipulateData(action, data) {
return this[kObject].manipulate_data(action, data);
}
/**
* You must submit all canvas in pages to ensure synchronization with the background worker
*
* See {@link TypstRenderer#renderCanvas} for more details.
*/
renderCanvas(canvasElemList) {
const m = this.managedCanvasElemList;
for (const [_, elem] of m) {
elem[0] = ManageStatus.Delete;
}
for (const elem of canvasElemList) {
const canvas = elem.canvas;
let elemId = canvas.dataset.manageId;
let action = ManageStatus.Update;
if (!elemId) {
elemId = this.canvasCounter.toFixed(5);
this.canvasCounter += 1;
canvas.dataset.manageId = elemId;
action = ManageStatus.New;
}
let prev = m.get(elemId);
if (prev && prev[0] !== ManageStatus.Delete) {
throw new Error("cannot update a canvas for two times in batch");
}
m.set(elemId, [action, { ...elem }]);
}
const entries = Array.from(m.entries());
const actions = new Uint8Array(entries.length);
const elements = new Array(entries.length);
const options = entries.map(([key, [action, elem]], index) => {
if (!action) {
m.delete(key);
}
actions[index] = action;
elements[index] = elem.canvas;
return this.plugin.canvasOptionsToRust(elem);
});
return this[kObject].render_canvas(actions, elements, options);
}
async retrievePagesInfo() {
const pages_info = await this[kObject].get_pages_info();
console.log(pages_info);
const pageInfos = [];
const pageCount = pages_info.page_count;
for (let i = 0; i < pageCount; i++) {
const pageAst = pages_info.page(i);
pageInfos.push({
pageOffset: pageAst.page_off,
width: pageAst.width_pt,
height: pageAst.height_pt
});
}
return pageInfos;
}
});
const gRendererModule = (module) => new LazyWasmModule(async (bin) => {
return await module.default(bin);
});
function createTypstRenderer() {
return new TypstRendererDriver();
}
let warnOnceCanvasSet = true;
class TypstRendererDriver {
constructor() {
__publicField(this, "renderer");
__publicField(this, "rendererJs");
}
async init(options) {
var _a2;
this.rendererJs = await (((_a2 = options == null ? void 0 : options.getWrapper) == null ? void 0 : _a2.call(options)) || Promise.resolve().then(() => wasmPackShim));
const TypstRendererBuilder2 = this.rendererJs.TypstRendererBuilder;
this.renderer = await buildComponent(options, gRendererModule(this.rendererJs), TypstRendererBuilder2, {});
}
loadGlyphPack(_pack) {
return Promise.resolve();
}
createOptionsToRust(options) {
const rustOptions = new this.rendererJs.CreateSessionOptions();
if (options.format !== void 0) {
rustOptions.format = options.format;
}
if (options.artifactContent !== void 0) {
rustOptions.artifact_content = options.artifactContent;
}
return rustOptions;
}
canvasOptionsToRust(options) {
const rustOptions = new this.rendererJs.RenderPageImageOptions();
if (options.pageOffset === void 0) {
throw new Error("pageOffset is required in reflexo v0.5.0");
} else {
rustOptions.page_off = options.pageOffset;
}
if (options.cacheKey !== void 0) {
rustOptions.cache_key = options.cacheKey;
}
if (options.backgroundColor !== void 0) {
rustOptions.background_color = options.backgroundColor;
}
if (options.pixelPerPt !== void 0) {
rustOptions.pixel_per_pt = options.pixelPerPt;
}
if (options.dataSelection !== void 0) {
let encoded = 0;
if (options.dataSelection.body) {
encoded |= 1 << 0;
} else if (options.canvas && warnOnceCanvasSet) {
warnOnceCanvasSet = false;
console.warn("dataSelection.body is not set but providing canvas for body");
}
if (options.dataSelection.text || options.dataSelection.annotation) {
console.error("dataSelection.text and dataSelection.annotation are deprecated");
}
if (options.dataSelection.semantics) {
encoded |= 1 << 3;
}
rustOptions.data_selection = encoded;
}
return rustOptions;
}
retrievePagesInfoFromSession(session) {
return session.retrievePagesInfo();
}
/**
* Render a Typst document to canvas.
*/
renderCanvas(options) {
return this.withinOptionSession(options, async (sessionRef) => {
return this.renderer.render_page_to_canvas(sessionRef[kObject], options.canvas || void 0, this.canvasOptionsToRust(options));
});
}
// async renderPdf(artifactContent: string): Promise {
// return this.renderer.render_to_pdf(artifactContent);
// }
async inAnimationFrame(fn) {
return new Promise((resolve, reject) => {
requestAnimationFrame(() => {
try {
resolve(fn());
} catch (e) {
reject(e);
}
});
});
}
async renderDisplayLayer(session, canvasList, options) {
const pages_info = session[kObject].pages_info;
const page_count = pages_info.page_count;
const doRender = async (i, page_off) => {
const canvas = canvasList[i];
const ctx = canvas.getContext("2d");
if (!ctx) {
throw new Error("canvas context is null");
}
return await this.renderCanvas({
...options,
canvas: ctx,
renderSession: session,
pageOffset: page_off
});
};
const t = performance.now();
const textContentList = await (async () => {
const results = [];
for (let i = 0; i < page_count; i++) {
results.push(await this.inAnimationFrame(() => doRender(i, i)));
}
return results;
})();
const t2 = performance.now();
console.log(`display layer used: render = ${(t2 - t).toFixed(1)}ms`);
return textContentList;
}
renderTextLayer(layerList, textSourceList) {
const t2 = performance.now();
layerList.forEach((layer, i) => {
layer.innerHTML = textSourceList[i].htmlSemantics[0];
});
const t3 = performance.now();
console.log(`text layer used: render = ${(t3 - t2).toFixed(1)}ms`);
}
async render(options) {
if ("format" in options) {
if (options.format !== "vector") {
const artifactFormats = ["serde_json", "js", "ir"];
if (artifactFormats.includes(options.format)) {
throw new Error(`deprecated format ${options.format}, please use vector format`);
}
}
}
return this.renderToCanvas(options);
}
async renderDom(options) {
if ("format" in options) {
if (options.format !== "vector") {
const artifactFormats = ["serde_json", "js", "ir"];
if (artifactFormats.includes(options.format)) {
throw new Error(`deprecated format ${options.format}, please use vector format`);
}
}
}
return this.withinOptionSession(options, async (sessionRef) => {
const t = new TypstDomDocument({
...options,
renderMode: "dom",
hookedElem: options.container,
kModule: sessionRef,
renderer: this
});
await t.impl.mountDom(options.pixelPerPt);
return t;
});
}
async renderToCanvas(options) {
let session;
let renderPageResults;
const mountContainer = options.container;
mountContainer.style.visibility = "hidden";
const doRenderDisplayLayer = async (canvasList, resetLayout) => {
try {
renderPageResults = await this.renderDisplayLayer(session, canvasList, options);
resetLayout();
} finally {
mountContainer.style.visibility = "visible";
}
};
return this.withinOptionSession(options, async (sessionRef) => {
session = sessionRef;
if (session[kObject].pages_info.page_count === 0) {
throw new Error(`No page found in session`);
}
if (options.pixelPerPt !== void 0 && options.pixelPerPt <= 0) {
throw new Error("Invalid typst.RenderOptions.pixelPerPt, should be a positive number " + options.pixelPerPt);
}
let backgroundColor = options.backgroundColor;
if (backgroundColor !== void 0) {
if (!/^#[0-9a-f]{6}$/.test(backgroundColor)) {
throw new Error("Invalid typst.backgroundColor color for matching ^#?[0-9a-f]{6}$ " + backgroundColor);
}
}
session.pixelPerPt = options.pixelPerPt ?? TypstDefaultParams.PIXEL_PER_PT;
session.backgroundColor = backgroundColor ?? "#ffffff";
const t = performance.now();
const pageView = new RenderView(this.retrievePagesInfoFromSession(session), mountContainer, options);
const t2 = performance.now();
console.log(`layer used: retrieve = ${(t2 - t).toFixed(1)}ms`);
await doRenderDisplayLayer(pageView.canvasList, () => pageView.resetLayout());
this.renderTextLayer(pageView.textLayerList, renderPageResults);
return;
});
}
createModule(b) {
return Promise.resolve(new RenderSession$1(this, this.renderer.create_session(b && this.createOptionsToRust({
format: "vector",
artifactContent: b
}))));
}
async createWorkerV0(worker) {
return new TypstWorker$1(this, await this.renderer.create_worker(worker));
}
workerBridge() {
return this.renderer.create_worker_bridge();
}
renderSvg(options, container) {
if (options instanceof RenderSession$1 || container) {
throw new Error("removed api, please use renderToSvg({ renderSession, container }) instead");
}
return this.withinOptionSession(options, async (sessionRef) => {
let parts = void 0;
if (options.data_selection) {
parts = 0;
if (options.data_selection.body) {
parts |= 1 << 0;
}
if (options.data_selection.defs) {
parts |= 1 << 1;
}
if (options.data_selection.css) {
parts |= 1 << 2;
}
if (options.data_selection.js) {
parts |= 1 << 3;
}
}
return Promise.resolve(this.renderer.svg_data(sessionRef[kObject], parts));
});
}
renderSvgDiff(options) {
if (!options.window) {
return this.renderer.render_svg_diff(options.renderSession[kObject], 0, 0, 1e33, 1e33);
}
return this.renderer.render_svg_diff(options.renderSession[kObject], options.window.lo.x, options.window.lo.y, options.window.hi.x, options.window.hi.y);
}
renderToSvg(options) {
return this.withinOptionSession(options, async (sessionRef) => {
return Promise.resolve(this.renderer.render_svg(sessionRef[kObject], options.container));
});
}
getCustomV1(options) {
return Promise.resolve(this.renderer.get_customs(options.renderSession[kObject]));
}
resetSession(session) {
return this.renderer.reset(session[kObject]);
}
manipulateData(opts) {
return this.renderer.manipulate_data(opts.renderSession[kObject], opts.action ?? "reset", opts.data);
}
withinOptionSession(options, fn) {
function isRenderByContentOption(options2) {
return "artifactContent" in options2;
}
if ("renderSession" in options) {
return fn(options.renderSession);
}
if (isRenderByContentOption(options)) {
return this.runWithSession(options, fn);
}
throw new Error("Invalid render options, should be one of RenderByContentOptions|RenderBySessionOptions");
}
async runWithSession(arg1, arg2) {
let options = arg1;
let fn = arg2;
if (!arg2) {
options = void 0;
fn = arg1;
}
const session = this.renderer.create_session(
/* moved */
options && this.createOptionsToRust(options)
);
try {
const res = await fn(new RenderSession$1(this, session));
session.free();
return res;
} catch (e) {
session.free();
throw e;
}
}
}
window.TypstRenderModule = {
createTypstRenderer
};
let initialRender = true;
let jumppedCrossLink = false;
function postProcessCrossLinks(appElem, reEnters) {
const links = appElem.querySelectorAll(".typst-content-link");
if (links.length === 0) {
console.log("no links found, probe after a while");
setTimeout(() => postProcessCrossLinks(appElem, reEnters * 1.5), reEnters);
return;
}
links.forEach((a) => {
if (origin) {
const onclick = a.getAttribute("onclick");
if (onclick === null) {
let target = a.getAttribute("target");
if (target === "_blank") {
a.removeAttribute("target");
}
} else if (globalSemaLabels) {
if (onclick.startsWith("handleTypstLocation")) {
const [u, x, y] = onclick.split("(")[1].split(")")[0].split(",").slice(1).map((s) => Number.parseFloat(s.trim()));
for (const [label, _dom, pos] of globalSemaLabels) {
const [u1, x1, y1] = pos;
if (u === u1 && Math.abs(x - x1) < 0.01 && Math.abs(y - y1) < 0.01) {
a.id = `typst-label-${label}`;
a.setAttribute("href", `#label-${label}`);
a.setAttribute("xlink:href", `#label-${label}`);
break;
}
}
}
}
}
const decodeTypstUrlc = (s) => s.split("-").map((s2) => {
const n = Number.parseInt(s2);
if (Number.isNaN(n)) {
return s2;
} else {
return String.fromCharCode(n);
}
}).join("");
const href = a.getAttribute("href") || a.getAttribute("xlink:href");
if (href.startsWith("cross-link")) {
const url = new URL(href);
const pathLabelUnicodes = url.searchParams.get("path-label");
const labelUnicodes = url.searchParams.get("label");
const plb = decodeTypstUrlc(pathLabelUnicodes).replace(".typ", ".html").replace(/^\//g, "");
let absolutePath = window.typstPathToRoot ? window.typstPathToRoot.replace(/\/$/g, "") : "";
absolutePath = new URL(`${absolutePath}/${plb}`, window.location.href).href;
if (labelUnicodes) {
absolutePath += "#label-" + encodeURIComponent(decodeTypstUrlc(labelUnicodes));
}
a.setAttribute("href", absolutePath);
a.setAttribute("xlink:href", absolutePath);
}
});
if (window.location.hash && !jumppedCrossLink) {
const hash = window.location.hash;
const firstSep = hash.indexOf("-");
if (firstSep != -1 && hash.slice(0, firstSep) === "#label") {
const labelTarget = hash.slice(firstSep + 1);
for (const [label, dom, pos] of globalSemaLabels) {
if (label === labelTarget) {
const [_, x, y] = pos;
window.handleTypstLocation(dom, 1, x, y, {
behavior: initialRender ? "smooth" : "instant"
});
initialRender = false;
jumppedCrossLink = true;
break;
}
}
}
}
}
let prevHovers = void 0;
function updateHovers(elems) {
if (prevHovers) {
for (const h of prevHovers) {
h.classList.remove("focus");
}
}
prevHovers = elems;
}
let globalSemaLabels = [];
function findLinkInSvg(r, xy) {
const bbox = r.getBoundingClientRect();
if (xy[0] < bbox.left - 1 || xy[0] > bbox.right + 1 || xy[1] < bbox.top - 1 || xy[1] > bbox.bottom + 1) {
return;
}
if (r.classList.contains("pseudo-link")) {
return r;
}
for (let i = 0; i < r.children.length; i++) {
const a = findLinkInSvg(r.children[i], xy);
if (a) {
return a;
}
}
return void 0;
}
const findAncestor = (el, cls) => {
while (el && !el.classList.contains(cls)) el = el.parentElement;
return el;
};
window.typstBookRenderPage = function(plugin, relPath, appContainer) {
const getTheme = () => window.getTypstTheme();
let currTheme = getTheme();
let session = void 0;
let dom = void 0;
let disposeSession = () => {
};
const appElem = document.createElement("div");
if (appElem && appContainer) {
appElem.className = "typst-app";
appContainer.appendChild(appElem);
}
const dec = new TextDecoder();
window.typstBindSvgDom = async (_elem, _dom) => {
};
let runningSemantics = {};
const typstBindCustomSemantics = async (root, svg, semantics) => {
const index = root == null ? void 0 : root.getAttribute("data-index");
const key = `${index}`;
const width = root == null ? void 0 : root.getAttribute("data-width");
const keyResolving = `${width}`;
if (runningSemantics[key] === keyResolving) {
return;
}
runningSemantics[key] = keyResolving;
console.log("bind custom semantics", key, keyResolving, svg == null ? void 0 : svg.viewBox);
const customs = await plugin.getCustomV1({
renderSession: session
});
const semaLabel = customs.find((k) => k[0] === "sema-label");
if (semaLabel) {
const labelBin = semaLabel[1];
const labels = JSON.parse(dec.decode(labelBin));
globalSemaLabels = labels.map(([label, pos]) => {
const [_, u, x, y] = pos.split(/[pxy]/).map(Number.parseFloat);
return [encodeURIComponent(label), svg, [u, x, y]];
});
}
postProcessCrossLinks(semantics, 100);
};
let semanticHandlers = [];
window.typstBindCustomSemantics = (root, svg, semantics) => setTimeout(() => {
const semanticHandler = () => {
typstBindCustomSemantics(root, svg, semantics);
};
semanticHandler();
semanticHandlers.push(semanticHandler);
}, 0);
const baseHandleTypstLocation = window.handleTypstLocation;
window.handleTypstLocation = (elem, page, x, y, options) => {
const docRoot = findAncestor(elem, "typst-app");
if (!docRoot) {
console.warn("no typst-app found", elem);
return;
}
console.log(docRoot);
options = options || {};
options.isDom = true;
for (const h of docRoot.children) {
if (h.classList.contains("typst-dom-page")) {
const idx = Number.parseInt(h.getAttribute("data-index"));
if (idx + 1 === page) {
const svg = h.querySelector(".typst-svg-page");
if (svg) {
baseHandleTypstLocation(svg, page, x, y, options);
}
return;
}
}
}
};
window.assignSemaHash = (u, x, y) => {
var _a2;
for (const [label, dom2, pos] of globalSemaLabels) {
const [u1, x1, y1] = pos;
if (u === u1 && Math.abs(x - x1) < 0.01 && Math.abs(y - y1) < 0.01) {
location.hash = `label-${label}`;
(_a2 = window.typstCheckAndRerender) == null ? void 0 : _a2.call(window, false, new Error("assignSemaHash")).then(() => {
const width = dom2.viewBox.baseVal.width;
const height = dom2.viewBox.baseVal.height;
const bbox = dom2.getBoundingClientRect();
const domX1 = bbox.left + x1 / width * bbox.width;
const domY1 = bbox.top + y1 / height * bbox.height;
const lnk = findLinkInSvg(dom2, [domX1, domY1]);
if (!lnk) {
return;
}
const relatedElems = window.typstGetRelatedElements(lnk);
for (const h of relatedElems) {
h.classList.add("focus");
}
updateHovers(relatedElems);
return;
});
return;
}
}
updateHovers([]);
location.hash = `loc-${u}x${x.toFixed(2)}x${y.toFixed(2)}`;
};
async function reloadArtifact(theme) {
if (dom) {
dom.dispose();
dom = void 0;
}
if (session) {
disposeSession();
session = void 0;
}
appElem.innerHTML = "";
appElem.removeAttribute("data-applied-width");
const artifactData = await fetch(`${relPath}.${theme}.multi.sir.in`).then((response) => response.arrayBuffer()).then((buffer) => new Uint8Array(buffer));
const t1 = performance.now();
return new Promise((resolve) => {
return plugin.runWithSession((sessionRef) => {
return new Promise(async (doDisposeSession) => {
disposeSession = doDisposeSession;
session = sessionRef;
const t2 = performance.now();
jumppedCrossLink = false;
semanticHandlers.splice(0, semanticHandlers.length);
runningSemantics = {};
dom = await plugin.renderDom({
renderSession: sessionRef,
container: appElem,
pixelPerPt: 4.5
});
const mod = dom.impl.modes.find(([k, _]) => k == "dom");
const postRender = mod[1].postRender;
mod[1].postRender = function() {
console.log("hack run semantic handlers");
postRender.apply(this);
for (const h of semanticHandlers) {
h();
}
return;
};
console.log(
`theme = ${theme}, load artifact took ${t2 - t1} milliseconds, parse artifact took ${t2 - t1} milliseconds`
);
dom.addChangement(["new", artifactData]);
resolve(dom);
});
});
});
}
reloadArtifact(currTheme).then((dom2) => {
let base = Promise.resolve();
window.typstChangeTheme = () => {
const nextTheme = getTheme();
if (nextTheme === currTheme) {
return base;
}
currTheme = nextTheme;
return reloadArtifact(currTheme);
};
const viewportHandler = () => dom2.addViewportChange();
window.addEventListener("resize", viewportHandler);
window.addEventListener("scroll", viewportHandler);
dom2.impl.disposeList.push(() => {
window.removeEventListener("resize", viewportHandler);
window.removeEventListener("scroll", viewportHandler);
});
window.typstRerender = viewportHandler;
window.typstChangeTheme();
});
};
let wasm;
const heap = new Array(128).fill(void 0);
heap.push(void 0, null, true, false);
function getObject(idx) {
return heap[idx];
}
let heap_next = heap.length;
function dropObject(idx) {
if (idx < 132) return;
heap[idx] = heap_next;
heap_next = idx;
}
function takeObject(idx) {
const ret = getObject(idx);
dropObject(idx);
return ret;
}
function addHeapObject(obj) {
if (heap_next === heap.length) heap.push(heap.length + 1);
const idx = heap_next;
heap_next = heap[idx];
if (typeof heap_next !== "number") throw new Error("corrupt heap");
heap[idx] = obj;
return idx;
}
function _assertBoolean(n) {
if (typeof n !== "boolean") {
throw new Error(`expected a boolean argument, found ${typeof n}`);
}
}
const cachedTextDecoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) : { decode: () => {
throw Error("TextDecoder not available");
} };
if (typeof TextDecoder !== "undefined") {
cachedTextDecoder.decode();
}
let cachedUint8ArrayMemory0 = null;
function getUint8ArrayMemory0() {
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
}
return cachedUint8ArrayMemory0;
}
function getStringFromWasm0(ptr, len) {
ptr = ptr >>> 0;
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
}
let WASM_VECTOR_LEN = 0;
const cachedTextEncoder = typeof TextEncoder !== "undefined" ? new TextEncoder("utf-8") : { encode: () => {
throw Error("TextEncoder not available");
} };
const encodeString = typeof cachedTextEncoder.encodeInto === "function" ? function(arg, view) {
return cachedTextEncoder.encodeInto(arg, view);
} : function(arg, view) {
const buf = cachedTextEncoder.encode(arg);
view.set(buf);
return {
read: arg.length,
written: buf.length
};
};
function passStringToWasm0(arg, malloc, realloc) {
if (typeof arg !== "string") throw new Error(`expected a string argument, found ${typeof arg}`);
if (realloc === void 0) {
const buf = cachedTextEncoder.encode(arg);
const ptr2 = malloc(buf.length, 1) >>> 0;
getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);
WASM_VECTOR_LEN = buf.length;
return ptr2;
}
let len = arg.length;
let ptr = malloc(len, 1) >>> 0;
const mem = getUint8ArrayMemory0();
let offset = 0;
for (; offset < len; offset++) {
const code = arg.charCodeAt(offset);
if (code > 127) break;
mem[ptr + offset] = code;
}
if (offset !== len) {
if (offset !== 0) {
arg = arg.slice(offset);
}
ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
const ret = encodeString(arg, view);
if (ret.read !== arg.length) throw new Error("failed to pass whole string");
offset += ret.written;
ptr = realloc(ptr, len, offset, 1) >>> 0;
}
WASM_VECTOR_LEN = offset;
return ptr;
}
function isLikeNone(x) {
return x === void 0 || x === null;
}
let cachedDataViewMemory0 = null;
function getDataViewMemory0() {
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {
cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
}
return cachedDataViewMemory0;
}
function debugString(val) {
const type = typeof val;
if (type == "number" || type == "boolean" || val == null) {
return `${val}`;
}
if (type == "string") {
return `"${val}"`;
}
if (type == "symbol") {
const description = val.description;
if (description == null) {
return "Symbol";
} else {
return `Symbol(${description})`;
}
}
if (type == "function") {
const name = val.name;
if (typeof name == "string" && name.length > 0) {
return `Function(${name})`;
} else {
return "Function";
}
}
if (Array.isArray(val)) {
const length = val.length;
let debug = "[";
if (length > 0) {
debug += debugString(val[0]);
}
for (let i = 1; i < length; i++) {
debug += ", " + debugString(val[i]);
}
debug += "]";
return debug;
}
const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
let className;
if (builtInMatches.length > 1) {
className = builtInMatches[1];
} else {
return toString.call(val);
}
if (className == "Object") {
try {
return "Object(" + JSON.stringify(val) + ")";
} catch (_) {
return "Object";
}
}
if (val instanceof Error) {
return `${val.name}: ${val.message}
${val.stack}`;
}
return className;
}
const CLOSURE_DTORS = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((state) => {
wasm.__wbindgen_export_2.get(state.dtor)(state.a, state.b);
});
function makeClosure(arg0, arg1, dtor, f) {
const state = { a: arg0, b: arg1, cnt: 1, dtor };
const real = (...args) => {
state.cnt++;
try {
return f(state.a, state.b, ...args);
} finally {
if (--state.cnt === 0) {
wasm.__wbindgen_export_2.get(state.dtor)(state.a, state.b);
state.a = 0;
CLOSURE_DTORS.unregister(state);
}
}
};
real.original = state;
CLOSURE_DTORS.register(real, state, state);
return real;
}
function logError(f, args) {
try {
return f.apply(this, args);
} catch (e) {
let error = function() {
try {
return e instanceof Error ? `${e.message}
Stack:
${e.stack}` : e.toString();
} catch (_) {
return "";
}
}();
console.error("wasm-bindgen: imported JS function that was not marked as `catch` threw an error:", error);
throw e;
}
}
function _assertNum(n) {
if (typeof n !== "number") throw new Error(`expected a number argument, found ${typeof n}`);
}
function __wbg_adapter_26(arg0, arg1) {
_assertNum(arg0);
_assertNum(arg1);
wasm.__wbindgen_export_3(arg0, arg1);
}
function __wbg_adapter_29(arg0, arg1, arg2) {
_assertNum(arg0);
_assertNum(arg1);
wasm.__wbindgen_export_4(arg0, arg1, addHeapObject(arg2));
}
function makeMutClosure(arg0, arg1, dtor, f) {
const state = { a: arg0, b: arg1, cnt: 1, dtor };
const real = (...args) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
return f(a, state.b, ...args);
} finally {
if (--state.cnt === 0) {
wasm.__wbindgen_export_2.get(state.dtor)(a, state.b);
CLOSURE_DTORS.unregister(state);
} else {
state.a = a;
}
}
};
real.original = state;
CLOSURE_DTORS.register(real, state, state);
return real;
}
function __wbg_adapter_32(arg0, arg1, arg2) {
_assertNum(arg0);
_assertNum(arg1);
wasm.__wbindgen_export_5(arg0, arg1, addHeapObject(arg2));
}
function handleError(f, args) {
try {
return f.apply(this, args);
} catch (e) {
wasm.__wbindgen_export_7(addHeapObject(e));
}
}
function __wbg_adapter_61(arg0, arg1, arg2, arg3) {
_assertNum(arg0);
_assertNum(arg1);
wasm.__wbindgen_export_8(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
}
function _assertClass(instance, klass) {
if (!(instance instanceof klass)) {
throw new Error(`expected instance of ${klass.name}`);
}
return instance.ptr;
}
function renderer_build_info() {
const ret = wasm.renderer_build_info();
return takeObject(ret);
}
function passArray8ToWasm0(arg, malloc) {
const ptr = malloc(arg.length * 1, 1) >>> 0;
getUint8ArrayMemory0().set(arg, ptr / 1);
WASM_VECTOR_LEN = arg.length;
return ptr;
}
function passArrayJsValueToWasm0(array, malloc) {
const ptr = malloc(array.length * 4, 4) >>> 0;
const mem = getDataViewMemory0();
for (let i = 0; i < array.length; i++) {
mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);
}
WASM_VECTOR_LEN = array.length;
return ptr;
}
let cachedUint32ArrayMemory0 = null;
function getUint32ArrayMemory0() {
if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
}
return cachedUint32ArrayMemory0;
}
function passArray32ToWasm0(arg, malloc) {
const ptr = malloc(arg.length * 4, 4) >>> 0;
getUint32ArrayMemory0().set(arg, ptr / 4);
WASM_VECTOR_LEN = arg.length;
return ptr;
}
const __wbindgen_enum_CanvasWindingRule = ["nonzero", "evenodd"];
const CreateSessionOptionsFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_createsessionoptions_free(ptr >>> 0, 1));
class CreateSessionOptions {
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
CreateSessionOptionsFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_createsessionoptions_free(ptr, 0);
}
constructor() {
const ret = wasm.createsessionoptions_new();
this.__wbg_ptr = ret >>> 0;
CreateSessionOptionsFinalization.register(this, this.__wbg_ptr, this);
return this;
}
/**
* @param {string} format
*/
set format(format) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ptr0 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len0 = WASM_VECTOR_LEN;
wasm.createsessionoptions_set_format(this.__wbg_ptr, ptr0, len0);
}
/**
* @param {Uint8Array} artifact_content
*/
set artifact_content(artifact_content) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ptr0 = passArray8ToWasm0(artifact_content, wasm.__wbindgen_export_0);
const len0 = WASM_VECTOR_LEN;
wasm.createsessionoptions_set_artifact_content(this.__wbg_ptr, ptr0, len0);
}
}
const IncrDomDocClientFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_incrdomdocclient_free(ptr >>> 0, 1));
class IncrDomDocClient {
constructor() {
throw new Error("cannot invoke `new` directly");
}
static __wrap(ptr) {
ptr = ptr >>> 0;
const obj = Object.create(IncrDomDocClient.prototype);
obj.__wbg_ptr = ptr;
IncrDomDocClientFinalization.register(obj, obj.__wbg_ptr, obj);
return obj;
}
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
IncrDomDocClientFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_incrdomdocclient_free(ptr, 0);
}
/**
* @param {any} functions
*/
bind_functions(functions) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
wasm.incrdomdocclient_bind_functions(this.__wbg_ptr, addHeapObject(functions));
}
/**
* Relayout the document in the given window.
* @param {number} x
* @param {number} y
* @param {number} w
* @param {number} h
* @returns {Promise}
*/
relayout(x, y, w, h) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.incrdomdocclient_relayout(this.__wbg_ptr, x, y, w, h);
return takeObject(ret);
}
/**
* @param {number} page_num
* @param {number} x
* @param {number} y
* @param {number} w
* @param {number} h
* @param {number} stage
* @returns {boolean}
*/
need_repaint(page_num, x, y, w, h, stage) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
_assertNum(page_num);
_assertNum(stage);
wasm.incrdomdocclient_need_repaint(retptr, this.__wbg_ptr, page_num, x, y, w, h, stage);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
return r0 !== 0;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {number} page_num
* @param {number} x
* @param {number} y
* @param {number} w
* @param {number} h
* @param {number} stage
* @returns {any}
*/
repaint(page_num, x, y, w, h, stage) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
_assertNum(page_num);
_assertNum(stage);
wasm.incrdomdocclient_repaint(retptr, this.__wbg_ptr, page_num, x, y, w, h, stage);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
}
const PageInfoFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_pageinfo_free(ptr >>> 0, 1));
class PageInfo {
constructor() {
throw new Error("cannot invoke `new` directly");
}
static __wrap(ptr) {
ptr = ptr >>> 0;
const obj = Object.create(PageInfo.prototype);
obj.__wbg_ptr = ptr;
PageInfoFinalization.register(obj, obj.__wbg_ptr, obj);
return obj;
}
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
PageInfoFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_pageinfo_free(ptr, 0);
}
/**
* @returns {number}
*/
get page_off() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.pageinfo_page_off(this.__wbg_ptr);
return ret >>> 0;
}
/**
* @returns {number}
*/
get width_pt() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.pageinfo_width_pt(this.__wbg_ptr);
return ret;
}
/**
* @returns {number}
*/
get height_pt() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.pageinfo_height_pt(this.__wbg_ptr);
return ret;
}
}
const PagesInfoFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_pagesinfo_free(ptr >>> 0, 1));
class PagesInfo {
constructor() {
throw new Error("cannot invoke `new` directly");
}
static __wrap(ptr) {
ptr = ptr >>> 0;
const obj = Object.create(PagesInfo.prototype);
obj.__wbg_ptr = ptr;
PagesInfoFinalization.register(obj, obj.__wbg_ptr, obj);
return obj;
}
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
PagesInfoFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_pagesinfo_free(ptr, 0);
}
/**
* @returns {number}
*/
get page_count() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.pagesinfo_page_count(this.__wbg_ptr);
return ret >>> 0;
}
/**
* @param {number} num
* @returns {PageInfo | undefined}
*/
page_by_number(num) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
_assertNum(num);
const ret = wasm.pagesinfo_page_by_number(this.__wbg_ptr, num);
return ret === 0 ? void 0 : PageInfo.__wrap(ret);
}
/**
* @param {number} i
* @returns {PageInfo}
*/
page(i) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
_assertNum(i);
const ret = wasm.pagesinfo_page(this.__wbg_ptr, i);
return PageInfo.__wrap(ret);
}
/**
* @returns {number}
*/
width() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.pagesinfo_width(this.__wbg_ptr);
return ret;
}
/**
* @returns {number}
*/
height() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.pagesinfo_height(this.__wbg_ptr);
return ret;
}
}
const RenderPageImageOptionsFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_renderpageimageoptions_free(ptr >>> 0, 1));
class RenderPageImageOptions {
static __unwrap(jsValue) {
if (!(jsValue instanceof RenderPageImageOptions)) {
return 0;
}
return jsValue.__destroy_into_raw();
}
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
RenderPageImageOptionsFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_renderpageimageoptions_free(ptr, 0);
}
constructor() {
const ret = wasm.renderpageimageoptions_new();
this.__wbg_ptr = ret >>> 0;
RenderPageImageOptionsFinalization.register(this, this.__wbg_ptr, this);
return this;
}
/**
* @returns {number | undefined}
*/
get pixel_per_pt() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.renderpageimageoptions_pixel_per_pt(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getFloat32(retptr + 4 * 1, true);
return r0 === 0 ? void 0 : r1;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {number | undefined} [pixel_per_pt]
*/
set pixel_per_pt(pixel_per_pt) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
if (!isLikeNone(pixel_per_pt)) {
_assertNum(pixel_per_pt);
}
wasm.renderpageimageoptions_set_pixel_per_pt(this.__wbg_ptr, !isLikeNone(pixel_per_pt), isLikeNone(pixel_per_pt) ? 0 : pixel_per_pt);
}
/**
* @returns {string | undefined}
*/
get background_color() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.renderpageimageoptions_background_color(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
let v1;
if (r0 !== 0) {
v1 = getStringFromWasm0(r0, r1).slice();
wasm.__wbindgen_export_6(r0, r1 * 1, 1);
}
return v1;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {string | undefined} [background_color]
*/
set background_color(background_color) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
var ptr0 = isLikeNone(background_color) ? 0 : passStringToWasm0(background_color, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
var len0 = WASM_VECTOR_LEN;
wasm.renderpageimageoptions_set_background_color(this.__wbg_ptr, ptr0, len0);
}
/**
* @returns {number}
*/
get page_off() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.renderpageimageoptions_page_off(this.__wbg_ptr);
return ret >>> 0;
}
/**
* @param {number} page_off
*/
set page_off(page_off) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
_assertNum(page_off);
wasm.renderpageimageoptions_set_page_off(this.__wbg_ptr, page_off);
}
/**
* @returns {string | undefined}
*/
get cache_key() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.renderpageimageoptions_cache_key(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
let v1;
if (r0 !== 0) {
v1 = getStringFromWasm0(r0, r1).slice();
wasm.__wbindgen_export_6(r0, r1 * 1, 1);
}
return v1;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {string | undefined} [cache_key]
*/
set cache_key(cache_key) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
var ptr0 = isLikeNone(cache_key) ? 0 : passStringToWasm0(cache_key, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
var len0 = WASM_VECTOR_LEN;
wasm.renderpageimageoptions_set_cache_key(this.__wbg_ptr, ptr0, len0);
}
/**
* @returns {number | undefined}
*/
get data_selection() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.renderpageimageoptions_data_selection(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
return r0 === 0 ? void 0 : r1 >>> 0;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {number | undefined} [data_selection]
*/
set data_selection(data_selection) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
if (!isLikeNone(data_selection)) {
_assertNum(data_selection);
}
wasm.renderpageimageoptions_set_data_selection(this.__wbg_ptr, !isLikeNone(data_selection), isLikeNone(data_selection) ? 0 : data_selection);
}
}
const RenderSessionFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_rendersession_free(ptr >>> 0, 1));
class RenderSession2 {
constructor() {
throw new Error("cannot invoke `new` directly");
}
static __wrap(ptr) {
ptr = ptr >>> 0;
const obj = Object.create(RenderSession2.prototype);
obj.__wbg_ptr = ptr;
RenderSessionFinalization.register(obj, obj.__wbg_ptr, obj);
return obj;
}
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
RenderSessionFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_rendersession_free(ptr, 0);
}
/**
* @param {number} rect_lo_x
* @param {number} rect_lo_y
* @param {number} rect_hi_x
* @param {number} rect_hi_y
* @returns {string}
*/
render_in_window(rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y) {
let deferred1_0;
let deferred1_1;
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.rendersession_render_in_window(retptr, this.__wbg_ptr, rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
deferred1_0 = r0;
deferred1_1 = r1;
return getStringFromWasm0(r0, r1);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
wasm.__wbindgen_export_6(deferred1_0, deferred1_1, 1);
}
}
/**
* @returns {number | undefined}
*/
get pixel_per_pt() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.rendersession_pixel_per_pt(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getFloat32(retptr + 4 * 1, true);
return r0 === 0 ? void 0 : r1;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {number} pixel_per_pt
*/
set pixel_per_pt(pixel_per_pt) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
wasm.rendersession_set_pixel_per_pt(this.__wbg_ptr, pixel_per_pt);
}
/**
* @returns {string | undefined}
*/
get background_color() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.rendersession_background_color(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
let v1;
if (r0 !== 0) {
v1 = getStringFromWasm0(r0, r1).slice();
wasm.__wbindgen_export_6(r0, r1 * 1, 1);
}
return v1;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {string} background_color
*/
set background_color(background_color) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ptr0 = passStringToWasm0(background_color, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len0 = WASM_VECTOR_LEN;
wasm.rendersession_set_background_color(this.__wbg_ptr, ptr0, len0);
}
/**
* @returns {PagesInfo}
*/
get pages_info() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.rendersession_pages_info(this.__wbg_ptr);
return PagesInfo.__wrap(ret);
}
/**
* @returns {number}
*/
get doc_width() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.rendersession_doc_width(this.__wbg_ptr);
return ret;
}
/**
* @returns {number}
*/
get doc_height() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.rendersession_doc_height(this.__wbg_ptr);
return ret;
}
/**
* @param {Uint32Array} path
* @returns {string | undefined}
*/
source_span(path) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
const ptr0 = passArray32ToWasm0(path, wasm.__wbindgen_export_0);
const len0 = WASM_VECTOR_LEN;
wasm.rendersession_source_span(retptr, this.__wbg_ptr, ptr0, len0);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
if (r3) {
throw takeObject(r2);
}
let v2;
if (r0 !== 0) {
v2 = getStringFromWasm0(r0, r1).slice();
wasm.__wbindgen_export_6(r0, r1 * 1, 1);
}
return v2;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
}
const RenderSessionOptionsFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_rendersessionoptions_free(ptr >>> 0, 1));
class RenderSessionOptions {
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
RenderSessionOptionsFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_rendersessionoptions_free(ptr, 0);
}
constructor() {
const ret = wasm.rendersessionoptions_new();
this.__wbg_ptr = ret >>> 0;
RenderSessionOptionsFinalization.register(this, this.__wbg_ptr, this);
return this;
}
/**
* @returns {number | undefined}
*/
get pixel_per_pt() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.rendersessionoptions_pixel_per_pt(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getFloat32(retptr + 4 * 1, true);
return r0 === 0 ? void 0 : r1;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {number} pixel_per_pt
*/
set pixel_per_pt(pixel_per_pt) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
wasm.rendersessionoptions_set_pixel_per_pt(this.__wbg_ptr, pixel_per_pt);
}
/**
* @returns {string | undefined}
*/
get background_color() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.rendersessionoptions_background_color(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
let v1;
if (r0 !== 0) {
v1 = getStringFromWasm0(r0, r1).slice();
wasm.__wbindgen_export_6(r0, r1 * 1, 1);
}
return v1;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {string} background_color
*/
set background_color(background_color) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ptr0 = passStringToWasm0(background_color, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len0 = WASM_VECTOR_LEN;
wasm.rendersessionoptions_set_background_color(this.__wbg_ptr, ptr0, len0);
}
/**
* @returns {string | undefined}
*/
get format() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.rendersessionoptions_format(retptr, this.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
let v1;
if (r0 !== 0) {
v1 = getStringFromWasm0(r0, r1).slice();
wasm.__wbindgen_export_6(r0, r1 * 1, 1);
}
return v1;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {string} format
*/
set format(format) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ptr0 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len0 = WASM_VECTOR_LEN;
wasm.rendersessionoptions_set_format(this.__wbg_ptr, ptr0, len0);
}
}
const TypstRendererFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_typstrenderer_free(ptr >>> 0, 1));
class TypstRenderer {
static __wrap(ptr) {
ptr = ptr >>> 0;
const obj = Object.create(TypstRenderer.prototype);
obj.__wbg_ptr = ptr;
TypstRendererFinalization.register(obj, obj.__wbg_ptr, obj);
return obj;
}
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
TypstRendererFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_typstrenderer_free(ptr, 0);
}
/**
* @param {RenderSession} ses
* @param {any} canvas
* @param {RenderPageImageOptions | undefined} [options]
* @returns {Promise}
*/
render_page_to_canvas(ses, canvas, options) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
_assertClass(ses, RenderSession2);
if (ses.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
let ptr0 = 0;
if (!isLikeNone(options)) {
_assertClass(options, RenderPageImageOptions);
if (options.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
ptr0 = options.__destroy_into_raw();
}
const ret = wasm.typstrenderer_render_page_to_canvas(this.__wbg_ptr, ses.__wbg_ptr, addHeapObject(canvas), ptr0);
return takeObject(ret);
}
/**
* @param {any} _v
*/
load_glyph_pack(_v) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
wasm.typstrenderer_load_glyph_pack(retptr, this.__wbg_ptr, addHeapObject(_v));
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {RenderSession} ses
* @param {HTMLElement} elem
* @returns {Promise}
*/
mount_dom(ses, elem) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
_assertClass(ses, RenderSession2);
if (ses.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
const ret = wasm.typstrenderer_mount_dom(this.__wbg_ptr, ses.__wbg_ptr, addHeapObject(elem));
return takeObject(ret);
}
constructor() {
const ret = wasm.typstrenderer_new();
this.__wbg_ptr = ret >>> 0;
TypstRendererFinalization.register(this, this.__wbg_ptr, this);
return this;
}
/**
* @param {CreateSessionOptions | undefined} [options]
* @returns {RenderSession}
*/
create_session(options) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
let ptr0 = 0;
if (!isLikeNone(options)) {
_assertClass(options, CreateSessionOptions);
if (options.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
ptr0 = options.__destroy_into_raw();
}
wasm.typstrenderer_create_session(retptr, this.__wbg_ptr, ptr0);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
return RenderSession2.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {RenderSession} session
*/
reset(session) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
_assertClass(session, RenderSession2);
if (session.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
wasm.typstrenderer_reset(retptr, this.__wbg_ptr, session.__wbg_ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {RenderSession} session
* @param {string} action
* @param {Uint8Array} data
*/
manipulate_data(session, action, data) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
_assertClass(session, RenderSession2);
if (session.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
const ptr0 = passStringToWasm0(action, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len0 = WASM_VECTOR_LEN;
const ptr1 = passArray8ToWasm0(data, wasm.__wbindgen_export_0);
const len1 = WASM_VECTOR_LEN;
wasm.typstrenderer_manipulate_data(retptr, this.__wbg_ptr, session.__wbg_ptr, ptr0, len0, ptr1, len1);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {Uint8Array} artifact_content
* @param {string} decoder
* @returns {RenderSession}
*/
session_from_artifact(artifact_content, decoder) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
const ptr0 = passArray8ToWasm0(artifact_content, wasm.__wbindgen_export_0);
const len0 = WASM_VECTOR_LEN;
const ptr1 = passStringToWasm0(decoder, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len1 = WASM_VECTOR_LEN;
wasm.typstrenderer_session_from_artifact(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
return RenderSession2.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {RenderSession} session
* @param {number} rect_lo_x
* @param {number} rect_lo_y
* @param {number} rect_hi_x
* @param {number} rect_hi_y
* @returns {string}
*/
render_svg_diff(session, rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y) {
let deferred1_0;
let deferred1_1;
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
_assertClass(session, RenderSession2);
if (session.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
wasm.typstrenderer_render_svg_diff(retptr, this.__wbg_ptr, session.__wbg_ptr, rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
deferred1_0 = r0;
deferred1_1 = r1;
return getStringFromWasm0(r0, r1);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
wasm.__wbindgen_export_6(deferred1_0, deferred1_1, 1);
}
}
/**
* @param {RenderSession} session
* @param {number | undefined} [parts]
* @returns {string}
*/
svg_data(session, parts) {
let deferred2_0;
let deferred2_1;
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
_assertClass(session, RenderSession2);
if (session.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
if (!isLikeNone(parts)) {
_assertNum(parts);
}
wasm.typstrenderer_svg_data(retptr, this.__wbg_ptr, session.__wbg_ptr, !isLikeNone(parts), isLikeNone(parts) ? 0 : parts);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
var ptr1 = r0;
var len1 = r1;
if (r3) {
ptr1 = 0;
len1 = 0;
throw takeObject(r2);
}
deferred2_0 = ptr1;
deferred2_1 = len1;
return getStringFromWasm0(ptr1, len1);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
wasm.__wbindgen_export_6(deferred2_0, deferred2_1, 1);
}
}
/**
* @param {RenderSession} session
* @returns {Array | undefined}
*/
get_customs(session) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
_assertClass(session, RenderSession2);
if (session.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
const ret = wasm.typstrenderer_get_customs(this.__wbg_ptr, session.__wbg_ptr);
return takeObject(ret);
}
/**
* @param {RenderSession} session
* @param {HTMLElement} root
* @returns {boolean}
*/
render_svg(session, root) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
_assertClass(session, RenderSession2);
if (session.__wbg_ptr === 0) {
throw new Error("Attempt to use a moved value");
}
wasm.typstrenderer_render_svg(retptr, this.__wbg_ptr, session.__wbg_ptr, addHeapObject(root));
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
return r0 !== 0;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} _w
* @returns {Promise}
*/
create_worker(_w) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.typstrenderer_create_worker(this.__wbg_ptr, addHeapObject(_w));
return takeObject(ret);
}
/**
* @returns {WorkerBridge}
*/
create_worker_bridge() {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const ptr = this.__destroy_into_raw();
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(ptr);
wasm.typstrenderer_create_worker_bridge(retptr, ptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
return WorkerBridge.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
}
const TypstRendererBuilderFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_typstrendererbuilder_free(ptr >>> 0, 1));
class TypstRendererBuilder {
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
TypstRendererBuilderFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_typstrendererbuilder_free(ptr, 0);
}
/**
* @param {any} _pack
* @returns {Promise}
*/
add_glyph_pack(_pack) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.typstrendererbuilder_add_glyph_pack(this.__wbg_ptr, addHeapObject(_pack));
return takeObject(ret);
}
/**
* @param {Uint8Array} _font_buffer
* @returns {Promise}
*/
add_raw_font(_font_buffer) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.typstrendererbuilder_add_raw_font(this.__wbg_ptr, addHeapObject(_font_buffer));
return takeObject(ret);
}
/**
* @param {Array} _fonts
* @returns {Promise}
*/
add_web_fonts(_fonts) {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.typstrendererbuilder_add_web_fonts(this.__wbg_ptr, addHeapObject(_fonts));
return takeObject(ret);
}
constructor() {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.typstrendererbuilder_new(retptr);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
this.__wbg_ptr = r0 >>> 0;
TypstRendererBuilderFinalization.register(this, this.__wbg_ptr, this);
return this;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @returns {Promise}
*/
build() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const ptr = this.__destroy_into_raw();
_assertNum(ptr);
const ret = wasm.typstrendererbuilder_build(ptr);
return takeObject(ret);
}
}
const TypstWorkerFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_typstworker_free(ptr >>> 0, 1));
class TypstWorker2 {
constructor() {
throw new Error("cannot invoke `new` directly");
}
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
TypstWorkerFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_typstworker_free(ptr, 0);
}
/**
* @param {string} _action
* @param {Uint8Array} _data
* @returns {Promise}
*/
manipulate_data(_action, _data) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
const ptr0 = passStringToWasm0(_action, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len0 = WASM_VECTOR_LEN;
wasm.typstworker_manipulate_data(retptr, this.__wbg_ptr, ptr0, len0, addHeapObject(_data));
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @returns {Promise}
*/
get_pages_info() {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
_assertNum(this.__wbg_ptr);
const ret = wasm.typstworker_get_pages_info(this.__wbg_ptr);
return takeObject(ret);
}
/**
* @param {Uint8Array} _actions
* @param {(HTMLCanvasElement)[]} _canvas_list
* @param {(RenderPageImageOptions)[]} _data
* @returns {Promise}
*/
render_canvas(_actions, _canvas_list, _data) {
try {
if (this.__wbg_ptr == 0) throw new Error("Attempt to use a moved value");
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertNum(this.__wbg_ptr);
const ptr0 = passArray8ToWasm0(_actions, wasm.__wbindgen_export_0);
const len0 = WASM_VECTOR_LEN;
const ptr1 = passArrayJsValueToWasm0(_canvas_list, wasm.__wbindgen_export_0);
const len1 = WASM_VECTOR_LEN;
const ptr2 = passArrayJsValueToWasm0(_data, wasm.__wbindgen_export_0);
const len2 = WASM_VECTOR_LEN;
wasm.typstworker_render_canvas(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
}
const WorkerBridgeFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
}, unregister: () => {
} } : new FinalizationRegistry((ptr) => wasm.__wbg_workerbridge_free(ptr >>> 0, 1));
class WorkerBridge {
constructor() {
throw new Error("cannot invoke `new` directly");
}
static __wrap(ptr) {
ptr = ptr >>> 0;
const obj = Object.create(WorkerBridge.prototype);
obj.__wbg_ptr = ptr;
WorkerBridgeFinalization.register(obj, obj.__wbg_ptr, obj);
return obj;
}
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
WorkerBridgeFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_workerbridge_free(ptr, 0);
}
}
async function __wbg_load(module, imports) {
if (typeof Response === "function" && module instanceof Response) {
if (typeof WebAssembly.instantiateStreaming === "function") {
try {
return await WebAssembly.instantiateStreaming(module, imports);
} catch (e) {
if (module.headers.get("Content-Type") != "application/wasm") {
console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
} else {
throw e;
}
}
}
const bytes = await module.arrayBuffer();
return await WebAssembly.instantiate(bytes, imports);
} else {
const instance = await WebAssembly.instantiate(module, imports);
if (instance instanceof WebAssembly.Instance) {
return { instance, module };
} else {
return instance;
}
}
}
function __wbg_get_imports() {
const imports = {};
imports.wbg = {};
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
takeObject(arg0);
};
imports.wbg.__wbg_call_3bfa248576352471 = function() {
return handleError(function(arg0, arg1, arg2) {
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_typstrenderer_new = function() {
return logError(function(arg0) {
const ret = TypstRenderer.__wrap(arg0);
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
const ret = getObject(arg0);
return addHeapObject(ret);
};
imports.wbg.__wbg_incrdomdocclient_new = function() {
return logError(function(arg0) {
const ret = IncrDomDocClient.__wrap(arg0);
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbindgen_jsval_eq = function(arg0, arg1) {
const ret = getObject(arg0) === getObject(arg1);
_assertBoolean(ret);
return ret;
};
imports.wbg.__wbg_instanceof_CanvasRenderingContext2d_775df7bd32f07559 = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof CanvasRenderingContext2D;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_instanceof_OffscreenCanvasRenderingContext2d_07b9d9deabbab2c4 = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof OffscreenCanvasRenderingContext2D;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_new_034f913e7636e987 = function() {
return logError(function() {
const ret = new Array();
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
const ret = getStringFromWasm0(arg0, arg1);
return addHeapObject(ret);
};
imports.wbg.__wbg_set_425e70f7c64ac962 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
}, arguments);
};
imports.wbg.__wbg_new_e69b5f66fda8f13c = function() {
return logError(function() {
const ret = new Object();
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_set_e864d25d9b399c9f = function() {
return handleError(function(arg0, arg1, arg2) {
const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_remove_d7a18d9f46bc50fd = function() {
return logError(function(arg0) {
getObject(arg0).remove();
}, arguments);
};
imports.wbg.__wbg_new_abda76e883ba8a5f = function() {
return logError(function() {
const ret = new Error();
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_stack_658279fe44541cf6 = function() {
return logError(function(arg0, arg1) {
const ret = getObject(arg1).stack;
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
}, arguments);
};
imports.wbg.__wbg_error_f851667af71bcfc6 = function() {
return logError(function(arg0, arg1) {
let deferred0_0;
let deferred0_1;
try {
deferred0_0 = arg0;
deferred0_1 = arg1;
console.error(getStringFromWasm0(arg0, arg1));
} finally {
wasm.__wbindgen_export_6(deferred0_0, deferred0_1, 1);
}
}, arguments);
};
imports.wbg.__wbg_self_bf91bf94d9e04084 = function() {
return handleError(function() {
const ret = self.self;
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_window_52dd9f07d03fd5f8 = function() {
return handleError(function() {
const ret = window.window;
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_globalThis_05c129bf37fcf1be = function() {
return handleError(function() {
const ret = globalThis.globalThis;
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_global_3eca19bb09e9c484 = function() {
return handleError(function() {
const ret = global.global;
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbindgen_is_undefined = function(arg0) {
const ret = getObject(arg0) === void 0;
_assertBoolean(ret);
return ret;
};
imports.wbg.__wbg_newnoargs_1ede4bf2ebbaaf43 = function() {
return logError(function(arg0, arg1) {
const ret = new Function(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_call_a9ef466721e824f2 = function() {
return handleError(function(arg0, arg1) {
const ret = getObject(arg0).call(getObject(arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_new_70a2f23d1565c04c = function() {
return logError(function(arg0, arg1) {
const ret = new Error(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_new_b1572e0bf16bb8b0 = function() {
return handleError(function(arg0, arg1) {
const ret = new OffscreenCanvas(arg0 >>> 0, arg1 >>> 0);
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_getContext_211e7f0e615215a4 = function() {
return handleError(function(arg0, arg1, arg2) {
const ret = getObject(arg0).getContext(getStringFromWasm0(arg1, arg2));
return isLikeNone(ret) ? 0 : addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_save_51c5c825520e8fd0 = function() {
return logError(function(arg0) {
getObject(arg0).save();
}, arguments);
};
imports.wbg.__wbg_setfont_34289a9ff190aed8 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).font = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_measureText_8547338485b05bb0 = function() {
return handleError(function(arg0, arg1, arg2) {
const ret = getObject(arg0).measureText(getStringFromWasm0(arg1, arg2));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_width_e4c18791794a7c38 = function() {
return logError(function(arg0) {
const ret = getObject(arg0).width;
return ret;
}, arguments);
};
imports.wbg.__wbg_restore_cd7f36f354e951db = function() {
return logError(function(arg0) {
getObject(arg0).restore();
}, arguments);
};
imports.wbg.__wbg_push_36cf4d81d7da33d1 = function() {
return logError(function(arg0, arg1) {
const ret = getObject(arg0).push(getObject(arg1));
_assertNum(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_settype_623d2ee701e6310a = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).type = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_newwithu8arraysequenceandoptions_d41c0fdf78490206 = function() {
return handleError(function(arg0, arg1) {
const ret = new Blob(getObject(arg0), getObject(arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_log_f740dc2253ea759b = function() {
return logError(function(arg0) {
console.log(getObject(arg0));
}, arguments);
};
imports.wbg.__wbg_newwithlength_76462a666eca145f = function() {
return logError(function(arg0) {
const ret = new Uint8Array(arg0 >>> 0);
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_length_9254c4bd3b9f23c4 = function() {
return logError(function(arg0) {
const ret = getObject(arg0).length;
_assertNum(ret);
return ret;
}, arguments);
};
imports.wbg.__wbindgen_memory = function() {
const ret = wasm.memory;
return addHeapObject(ret);
};
imports.wbg.__wbg_buffer_ccaed51a635d8a2d = function() {
return logError(function(arg0) {
const ret = getObject(arg0).buffer;
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_newwithbyteoffsetandlength_7e3eb787208af730 = function() {
return logError(function(arg0, arg1, arg2) {
const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_set_ec2fcf81bc573fd9 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).set(getObject(arg1), arg2 >>> 0);
}, arguments);
};
imports.wbg.__wbg_instanceof_Window_6575cd7f1322f82f = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof Window;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_instanceof_WorkerGlobalScope_90a78b9e967b8726 = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof WorkerGlobalScope;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_createImageBitmap_7893beeb597d1f1b = function() {
return handleError(function(arg0, arg1) {
const ret = getObject(arg0).createImageBitmap(getObject(arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_get_ef828680c64da212 = function() {
return handleError(function(arg0, arg1) {
const ret = Reflect.get(getObject(arg0), getObject(arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbindgen_is_function = function(arg0) {
const ret = typeof getObject(arg0) === "function";
_assertBoolean(ret);
return ret;
};
imports.wbg.__wbg_call_5fb7c8066a4a4825 = function() {
return handleError(function(arg0, arg1, arg2, arg3) {
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_instanceof_Promise_f3fd1bcac3157f0c = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof Promise;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_createImageBitmap_17badae68300b0a6 = function() {
return handleError(function(arg0, arg1) {
const ret = getObject(arg0).createImageBitmap(getObject(arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_new_1073970097e5a420 = function() {
return logError(function(arg0, arg1) {
try {
var state0 = { a: arg0, b: arg1 };
var cb0 = (arg02, arg12) => {
const a = state0.a;
state0.a = 0;
try {
return __wbg_adapter_61(a, state0.b, arg02, arg12);
} finally {
state0.a = a;
}
};
const ret = new Promise(cb0);
return addHeapObject(ret);
} finally {
state0.a = state0.b = 0;
}
}, arguments);
};
imports.wbg.__wbg_instanceof_ImageBitmap_b77911fe0757088f = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof ImageBitmap;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_instanceof_OffscreenCanvas_ff1551edf0e1303c = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof OffscreenCanvas;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbindgen_number_new = function(arg0) {
const ret = arg0;
return addHeapObject(ret);
};
imports.wbg.__wbg_newwithpathstring_ac464baa5b9a788c = function() {
return handleError(function(arg0, arg1) {
const ret = new Path2D(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_new_b5bf9532bd5c97fd = function() {
return handleError(function() {
const ret = new Image();
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_createObjectURL_11804d71ac214694 = function() {
return handleError(function(arg0, arg1) {
const ret = URL.createObjectURL(getObject(arg1));
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
}, arguments);
};
imports.wbg.__wbg_width_fa277b4243adaabb = function() {
return logError(function(arg0) {
const ret = getObject(arg0).width;
_assertNum(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_height_250d8ced017769f8 = function() {
return logError(function(arg0) {
const ret = getObject(arg0).height;
_assertNum(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_drawImage_5c4488af6c903314 = function() {
return handleError(function(arg0, arg1, arg2, arg3) {
getObject(arg0).drawImage(getObject(arg1), arg2, arg3);
}, arguments);
};
imports.wbg.__wbg_transferToImageBitmap_a7216e0d45f09601 = function() {
return handleError(function(arg0) {
const ret = getObject(arg0).transferToImageBitmap();
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_setsrc_feb07d9d5b693db7 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).src = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_setonload_c44788491be30c5c = function() {
return logError(function(arg0, arg1) {
getObject(arg0).onload = getObject(arg1);
}, arguments);
};
imports.wbg.__wbg_setonerror_7e172f547433d10e = function() {
return logError(function(arg0, arg1) {
getObject(arg0).onerror = getObject(arg1);
}, arguments);
};
imports.wbg.__wbg_setTransform_ab9bffd1dfaadef8 = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
getObject(arg0).setTransform(arg1, arg2, arg3, arg4, arg5, arg6);
}, arguments);
};
imports.wbg.__wbg_putImageData_f9c66228770c0556 = function() {
return handleError(function(arg0, arg1, arg2, arg3) {
getObject(arg0).putImageData(getObject(arg1), arg2, arg3);
}, arguments);
};
imports.wbg.__wbg_globalCompositeOperation_7599ad6f23aa7915 = function() {
return handleError(function(arg0, arg1) {
const ret = getObject(arg1).globalCompositeOperation;
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
}, arguments);
};
imports.wbg.__wbg_setglobalCompositeOperation_1ec7de7c74b1fffb = function() {
return handleError(function(arg0, arg1, arg2) {
getObject(arg0).globalCompositeOperation = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_setfillStyle_2cc2c748b938a95e = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).fillStyle = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_fillRect_6784ab0aab9eebd5 = function() {
return logError(function(arg0, arg1, arg2, arg3, arg4) {
getObject(arg0).fillRect(arg1, arg2, arg3, arg4);
}, arguments);
};
imports.wbg.__wbg_drawImage_007806da723a1e8b = function() {
return handleError(function(arg0, arg1, arg2, arg3) {
getObject(arg0).drawImage(getObject(arg1), arg2, arg3);
}, arguments);
};
imports.wbg.__wbg_clip_6e3594f765ee3015 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).clip(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_setstrokeStyle_3c29a4e85b6087f5 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).strokeStyle = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_stroke_18a7adc53a38d993 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).stroke(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_drawImage_92c2feb5c6a72619 = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4, arg5) {
getObject(arg0).drawImage(getObject(arg1), arg2, arg3, arg4, arg5);
}, arguments);
};
imports.wbg.__wbg_drawImage_198159bdfa8bb195 = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4, arg5) {
getObject(arg0).drawImage(getObject(arg1), arg2, arg3, arg4, arg5);
}, arguments);
};
imports.wbg.__wbg_setlineWidth_267c5e81c3c67348 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).lineWidth = arg1;
}, arguments);
};
imports.wbg.__wbg_setlineCap_46e48efce673b5bc = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).lineCap = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_setlineJoin_a17a487f4008f18f = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).lineJoin = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_setmiterLimit_4b85dd19bf9935d5 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).miterLimit = arg1;
}, arguments);
};
imports.wbg.__wbg_setlineDashOffset_4c94a9565370ff7f = function() {
return logError(function(arg0, arg1) {
getObject(arg0).lineDashOffset = arg1;
}, arguments);
};
imports.wbg.__wbg_restore_53f9e3ba68ab6122 = function() {
return logError(function(arg0) {
getObject(arg0).restore();
}, arguments);
};
imports.wbg.__wbg_save_7da51dd755170877 = function() {
return logError(function(arg0) {
getObject(arg0).save();
}, arguments);
};
imports.wbg.__wbg_setLineDash_a27082dd66f071a9 = function() {
return handleError(function(arg0, arg1) {
getObject(arg0).setLineDash(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_fill_dfa41e6d1844b522 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).fill(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_fill_ab72269002ce7fc4 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).fill(getObject(arg1), __wbindgen_enum_CanvasWindingRule[arg2]);
}, arguments);
};
imports.wbg.__wbg_revokeObjectURL_8e72bad4541bdca0 = function() {
return handleError(function(arg0, arg1) {
URL.revokeObjectURL(getStringFromWasm0(arg0, arg1));
}, arguments);
};
imports.wbg.__wbg_stringify_eead5648c09faaf8 = function() {
return handleError(function(arg0) {
const ret = JSON.stringify(getObject(arg0));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbindgen_string_get = function(arg0, arg1) {
const obj = getObject(arg1);
const ret = typeof obj === "string" ? obj : void 0;
var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
var len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
};
imports.wbg.__wbindgen_cb_drop = function(arg0) {
const obj = takeObject(arg0).original;
if (obj.cnt-- == 1) {
obj.a = 0;
return true;
}
const ret = false;
_assertBoolean(ret);
return ret;
};
imports.wbg.__wbg_setTransform_378786ee36ec3a18 = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
getObject(arg0).setTransform(arg1, arg2, arg3, arg4, arg5, arg6);
}, arguments);
};
imports.wbg.__wbg_putImageData_44bf3a0787b975b7 = function() {
return handleError(function(arg0, arg1, arg2, arg3) {
getObject(arg0).putImageData(getObject(arg1), arg2, arg3);
}, arguments);
};
imports.wbg.__wbg_globalCompositeOperation_ce4b579a83346ce3 = function() {
return handleError(function(arg0, arg1) {
const ret = getObject(arg1).globalCompositeOperation;
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
}, arguments);
};
imports.wbg.__wbg_setglobalCompositeOperation_904684eaf6e9e441 = function() {
return handleError(function(arg0, arg1, arg2) {
getObject(arg0).globalCompositeOperation = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_setfillStyle_f8273bc6290143be = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).fillStyle = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_fillRect_0a5c5e635be36fc5 = function() {
return logError(function(arg0, arg1, arg2, arg3, arg4) {
getObject(arg0).fillRect(arg1, arg2, arg3, arg4);
}, arguments);
};
imports.wbg.__wbg_drawImage_cb573ac1888557f6 = function() {
return handleError(function(arg0, arg1, arg2, arg3) {
getObject(arg0).drawImage(getObject(arg1), arg2, arg3);
}, arguments);
};
imports.wbg.__wbg_clip_69ebc8c1a170c5e2 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).clip(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_setstrokeStyle_3c3c67fd62a77730 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).strokeStyle = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_stroke_a76887577bd68088 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).stroke(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_drawImage_79ac57dabab20303 = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4, arg5) {
getObject(arg0).drawImage(getObject(arg1), arg2, arg3, arg4, arg5);
}, arguments);
};
imports.wbg.__wbg_drawImage_02d5af4f48e0dc26 = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4, arg5) {
getObject(arg0).drawImage(getObject(arg1), arg2, arg3, arg4, arg5);
}, arguments);
};
imports.wbg.__wbg_setlineWidth_037dd016057a68de = function() {
return logError(function(arg0, arg1) {
getObject(arg0).lineWidth = arg1;
}, arguments);
};
imports.wbg.__wbg_setlineCap_aa5b25b6af766ba6 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).lineCap = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_setlineJoin_316d4ae6dc0464ea = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).lineJoin = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_setmiterLimit_06bd35f2d7370de1 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).miterLimit = arg1;
}, arguments);
};
imports.wbg.__wbg_setlineDashOffset_66ebdfaed783c789 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).lineDashOffset = arg1;
}, arguments);
};
imports.wbg.__wbg_setLineDash_8566a73c937296d9 = function() {
return handleError(function(arg0, arg1) {
getObject(arg0).setLineDash(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_fill_35e67b0a78856ae3 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).fill(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_fill_d28a44b2f91d1baf = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).fill(getObject(arg1), __wbindgen_enum_CanvasWindingRule[arg2]);
}, arguments);
};
imports.wbg.__wbg_log_c5235279373186d4 = function() {
return logError(function(arg0, arg1) {
console.log(getObject(arg0), getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_replaceWith_abcd4c84c203850c = function() {
return handleError(function(arg0, arg1) {
getObject(arg0).replaceWith(getObject(arg1));
}, arguments);
};
imports.wbg.__wbg_firstElementChild_26953b81a3e880c1 = function() {
return logError(function(arg0) {
const ret = getObject(arg0).firstElementChild;
return isLikeNone(ret) ? 0 : addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_instanceof_SvgGraphicsElement_aa4a8dae50f94d8e = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof SVGGraphicsElement;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_nextElementSibling_f4a27a6c59d89e33 = function() {
return logError(function(arg0) {
const ret = getObject(arg0).nextElementSibling;
return isLikeNone(ret) ? 0 : addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_lastElementChild_ae2f2e9fde5a862e = function() {
return logError(function(arg0) {
const ret = getObject(arg0).lastElementChild;
return isLikeNone(ret) ? 0 : addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_document_d7fa2c739c2b191a = function() {
return logError(function(arg0) {
const ret = getObject(arg0).document;
return isLikeNone(ret) ? 0 : addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_createElement_e4523490bd0ae51d = function() {
return handleError(function(arg0, arg1, arg2) {
const ret = getObject(arg0).createElement(getStringFromWasm0(arg1, arg2));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_instanceof_HtmlTemplateElement_bdfc6fd7326a5794 = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof HTMLTemplateElement;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_cloneNode_bd4b7e47afe3ce9f = function() {
return handleError(function(arg0) {
const ret = getObject(arg0).cloneNode();
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_instanceof_Element_1a81366cc90e70e2 = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof Element;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_setAttribute_2a8f647a8d92c712 = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4) {
getObject(arg0).setAttribute(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
}, arguments);
};
imports.wbg.__wbg_style_04eb1488bc2ceffc = function() {
return logError(function(arg0) {
const ret = getObject(arg0).style;
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_setProperty_b9a2384cbfb499fb = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4) {
getObject(arg0).setProperty(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
}, arguments);
};
imports.wbg.__wbg_setwidth_23bf2deedd907275 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).width = arg1 >>> 0;
}, arguments);
};
imports.wbg.__wbg_setheight_239dc283bbe50da4 = function() {
return logError(function(arg0, arg1) {
getObject(arg0).height = arg1 >>> 0;
}, arguments);
};
imports.wbg.__wbg_setinnerHTML_559d45055154f1d8 = function() {
return logError(function(arg0, arg1, arg2) {
getObject(arg0).innerHTML = getStringFromWasm0(arg1, arg2);
}, arguments);
};
imports.wbg.__wbg_getContext_bf8985355a4d22ca = function() {
return handleError(function(arg0, arg1, arg2) {
const ret = getObject(arg0).getContext(getStringFromWasm0(arg1, arg2));
return isLikeNone(ret) ? 0 : addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_clearRect_b31e8293856d6504 = function() {
return logError(function(arg0, arg1, arg2, arg3, arg4) {
getObject(arg0).clearRect(arg1, arg2, arg3, arg4);
}, arguments);
};
imports.wbg.__wbg_getAttribute_8ac49f4186f4cefd = function() {
return logError(function(arg0, arg1, arg2, arg3) {
const ret = getObject(arg1).getAttribute(getStringFromWasm0(arg2, arg3));
var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
var len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
}, arguments);
};
imports.wbg.__wbg_removeProperty_5acbca68235d0706 = function() {
return handleError(function(arg0, arg1, arg2, arg3) {
const ret = getObject(arg1).removeProperty(getStringFromWasm0(arg2, arg3));
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
}, arguments);
};
imports.wbg.__wbg_content_57ec141416462f04 = function() {
return logError(function(arg0) {
const ret = getObject(arg0).content;
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_firstElementChild_4d48ea0ca6da5169 = function() {
return logError(function(arg0) {
const ret = getObject(arg0).firstElementChild;
return isLikeNone(ret) ? 0 : addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_instanceof_HtmlCanvasElement_022ad88c76df9031 = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof HTMLCanvasElement;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_instanceof_SvgsvgElement_c57616bdbf67654f = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof SVGSVGElement;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_instanceof_HtmlDivElement_571e59de6195834c = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof HTMLDivElement;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_call_8547f4f9ec48f360 = function() {
return handleError(function(arg0, arg1, arg2, arg3, arg4) {
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3), getObject(arg4));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_appendChild_bc4a0deae90a5164 = function() {
return handleError(function(arg0, arg1) {
const ret = getObject(arg0).appendChild(getObject(arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_instanceof_HtmlElement_aab18e065dc9207d = function() {
return logError(function(arg0) {
let result;
try {
result = getObject(arg0) instanceof HTMLElement;
} catch (_) {
result = false;
}
const ret = result;
_assertBoolean(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_warn_41503a1c2194de89 = function() {
return logError(function(arg0) {
console.warn(getObject(arg0));
}, arguments);
};
imports.wbg.__wbg_new_fec2611eb9180f95 = function() {
return logError(function(arg0) {
const ret = new Uint8Array(getObject(arg0));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_clientWidth_600f98ddd2b6cb36 = function() {
return logError(function(arg0) {
const ret = getObject(arg0).clientWidth;
_assertNum(ret);
return ret;
}, arguments);
};
imports.wbg.__wbg_renderpageimageoptions_unwrap = function() {
return logError(function(arg0) {
const ret = RenderPageImageOptions.__unwrap(takeObject(arg0));
_assertNum(ret);
return ret;
}, arguments);
};
imports.wbg.__wbindgen_throw = function(arg0, arg1) {
throw new Error(getStringFromWasm0(arg0, arg1));
};
imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
const ret = debugString(getObject(arg1));
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
const len1 = WASM_VECTOR_LEN;
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
};
imports.wbg.__wbg_then_4866a7d9f55d8f3e = function() {
return logError(function(arg0, arg1, arg2) {
const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_queueMicrotask_848aa4969108a57e = function() {
return logError(function(arg0) {
const ret = getObject(arg0).queueMicrotask;
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_resolve_0aad7c1484731c99 = function() {
return logError(function(arg0) {
const ret = Promise.resolve(getObject(arg0));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_then_748f75edfb032440 = function() {
return logError(function(arg0, arg1) {
const ret = getObject(arg0).then(getObject(arg1));
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbg_queueMicrotask_c5419c06eab41e73 = function() {
return logError(function(arg0) {
queueMicrotask(getObject(arg0));
}, arguments);
};
imports.wbg.__wbindgen_closure_wrapper1668 = function() {
return logError(function(arg0, arg1, arg2) {
const ret = makeClosure(arg0, arg1, 201, __wbg_adapter_26);
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbindgen_closure_wrapper1669 = function() {
return logError(function(arg0, arg1, arg2) {
const ret = makeClosure(arg0, arg1, 201, __wbg_adapter_29);
return addHeapObject(ret);
}, arguments);
};
imports.wbg.__wbindgen_closure_wrapper2245 = function() {
return logError(function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 201, __wbg_adapter_32);
return addHeapObject(ret);
}, arguments);
};
return imports;
}
function __wbg_finalize_init(instance, module) {
wasm = instance.exports;
__wbg_init.__wbindgen_wasm_module = module;
cachedDataViewMemory0 = null;
cachedUint32ArrayMemory0 = null;
cachedUint8ArrayMemory0 = null;
return wasm;
}
function initSync(module) {
if (wasm !== void 0) return wasm;
if (typeof module !== "undefined") {
if (Object.getPrototypeOf(module) === Object.prototype) {
({ module } = module);
} else {
console.warn("using deprecated parameters for `initSync()`; pass a single object instead");
}
}
const imports = __wbg_get_imports();
if (!(module instanceof WebAssembly.Module)) {
module = new WebAssembly.Module(module);
}
const instance = new WebAssembly.Instance(module, imports);
return __wbg_finalize_init(instance, module);
}
async function __wbg_init(module_or_path) {
if (wasm !== void 0) return wasm;
if (typeof module_or_path !== "undefined") {
if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
({ module_or_path } = module_or_path);
} else {
console.warn("using deprecated parameters for the initialization function; pass a single object instead");
}
}
if (typeof module_or_path === "undefined") {
module_or_path = importWasmModule("typst_ts_renderer_bg.wasm", import.meta.url);
}
const imports = __wbg_get_imports();
if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {
module_or_path = fetch(module_or_path);
}
const { instance, module } = await __wbg_load(await module_or_path, imports);
return __wbg_finalize_init(instance, module);
}
let importWasmModule = async function(wasm_name, url) {
throw new Error("Cannot import wasm module without importer: " + wasm_name + " " + url);
};
function setImportWasmModule(importer) {
importWasmModule = importer;
}
let nodeJsImportWasmModule = async function(wasm_name, url) {
const escapeImport = new Function("m", "return import(m)");
const path = await escapeImport("path");
const { readFileSync } = await escapeImport("fs");
const wasmPath = new URL(path.join(path.dirname(url), wasm_name));
return await readFileSync(wasmPath).buffer;
};
const isNode = typeof process !== "undefined" && process.versions != null && process.versions.node != null;
if (isNode) {
setImportWasmModule(nodeJsImportWasmModule);
}
const wasmPackShim = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
CreateSessionOptions,
IncrDomDocClient,
PageInfo,
PagesInfo,
RenderPageImageOptions,
RenderSession: RenderSession2,
RenderSessionOptions,
TypstRenderer,
TypstRendererBuilder,
TypstWorker: TypstWorker2,
WorkerBridge,
default: __wbg_init,
initSync,
renderer_build_info,
setImportWasmModule
}, Symbol.toStringTag, { value: "Module" }));