@inkbar/core 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -1
- package/dist/dom.d.mts +477 -41
- package/dist/dom.d.mts.map +1 -1
- package/dist/dom.mjs +1338 -259
- package/dist/dom.mjs.map +1 -1
- package/dist/index.d.mts +16 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +181 -25
- package/dist/index.mjs.map +1 -1
- package/dist/{signatures-BwaXi7C8.d.mts → signatures-By4B40DP.d.mts} +86 -4
- package/dist/signatures-By4B40DP.d.mts.map +1 -0
- package/dist/{signatures-CMapTKrC.mjs → signatures-D68fuLlt.mjs} +268 -50
- package/dist/signatures-D68fuLlt.mjs.map +1 -0
- package/package.json +3 -3
- package/dist/signatures-BwaXi7C8.d.mts.map +0 -1
- package/dist/signatures-CMapTKrC.mjs.map +0 -1
|
@@ -96,6 +96,15 @@ function quadFromRect(r) {
|
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
|
+
/** One quad covering `r`, in the corner order of `quadFromRect`. */
|
|
100
|
+
function quadsFromRect(r) {
|
|
101
|
+
return [quadFromRect(r)];
|
|
102
|
+
}
|
|
103
|
+
/** The bounding box of every corner of `quads`. */
|
|
104
|
+
function rectFromQuads(quads) {
|
|
105
|
+
if (quads.length === 0) throw new RangeError("rectFromQuads needs at least one quad");
|
|
106
|
+
return unionRects(quads.map(rectFromQuad));
|
|
107
|
+
}
|
|
99
108
|
function unionRects(rects) {
|
|
100
109
|
if (rects.length === 0) throw new RangeError("unionRects needs at least one rect");
|
|
101
110
|
let x1 = Infinity;
|
|
@@ -251,6 +260,102 @@ function readonly(w) {
|
|
|
251
260
|
};
|
|
252
261
|
}
|
|
253
262
|
//#endregion
|
|
263
|
+
//#region src/model/records.ts
|
|
264
|
+
/**
|
|
265
|
+
* A keyed list of plain records. Records are stored as frozen copies, so a change's `before` and `after` can be
|
|
266
|
+
* kept as history entries without copying.
|
|
267
|
+
*/
|
|
268
|
+
function createRecordStore(key, opts = {}) {
|
|
269
|
+
const list = writable((opts.initial ?? []).map(frozen));
|
|
270
|
+
const emitter = new Emitter();
|
|
271
|
+
let destroyed = false;
|
|
272
|
+
function commit(next, change) {
|
|
273
|
+
if (destroyed) return;
|
|
274
|
+
list.set(next);
|
|
275
|
+
emitter.emit("change", change);
|
|
276
|
+
opts.onChange?.(next, change);
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
key,
|
|
280
|
+
list: readonly(list),
|
|
281
|
+
get: (id) => list.get().find((r) => r.id === id),
|
|
282
|
+
add(record) {
|
|
283
|
+
if (list.get().some((r) => r.id === record.id)) throw new InkError("DuplicateId", `A record with id ${record.id} already exists`, {
|
|
284
|
+
key,
|
|
285
|
+
id: record.id
|
|
286
|
+
});
|
|
287
|
+
const stored = frozen(record);
|
|
288
|
+
commit([...list.get(), stored], {
|
|
289
|
+
kind: "add",
|
|
290
|
+
record: stored
|
|
291
|
+
});
|
|
292
|
+
return stored;
|
|
293
|
+
},
|
|
294
|
+
update(id, patch) {
|
|
295
|
+
const before = list.get().find((r) => r.id === id);
|
|
296
|
+
if (destroyed || !before) return void 0;
|
|
297
|
+
const after = Object.freeze({
|
|
298
|
+
...before,
|
|
299
|
+
...patch,
|
|
300
|
+
id: before.id
|
|
301
|
+
});
|
|
302
|
+
commit(list.get().map((r) => r.id === id ? after : r), {
|
|
303
|
+
kind: "update",
|
|
304
|
+
id,
|
|
305
|
+
before,
|
|
306
|
+
after
|
|
307
|
+
});
|
|
308
|
+
return after;
|
|
309
|
+
},
|
|
310
|
+
remove(id) {
|
|
311
|
+
const record = list.get().find((r) => r.id === id);
|
|
312
|
+
if (destroyed || !record) return void 0;
|
|
313
|
+
commit(list.get().filter((r) => r.id !== id), {
|
|
314
|
+
kind: "remove",
|
|
315
|
+
record
|
|
316
|
+
});
|
|
317
|
+
return record;
|
|
318
|
+
},
|
|
319
|
+
replaceAll(incoming, reason) {
|
|
320
|
+
const prev = new Map(list.get().map((r) => [r.id, r]));
|
|
321
|
+
const added = [];
|
|
322
|
+
const updated = [];
|
|
323
|
+
const next = incoming.map((r) => {
|
|
324
|
+
const old = prev.get(r.id);
|
|
325
|
+
if (!old) {
|
|
326
|
+
added.push(r.id);
|
|
327
|
+
return frozen(r);
|
|
328
|
+
}
|
|
329
|
+
if (shallowEqual(old, r)) return old;
|
|
330
|
+
updated.push(r.id);
|
|
331
|
+
return frozen(r);
|
|
332
|
+
});
|
|
333
|
+
const kept = new Set(next.map((r) => r.id));
|
|
334
|
+
commit(next, {
|
|
335
|
+
kind: "replace",
|
|
336
|
+
reason,
|
|
337
|
+
added,
|
|
338
|
+
updated,
|
|
339
|
+
removed: [...prev.keys()].filter((id) => !kept.has(id))
|
|
340
|
+
});
|
|
341
|
+
},
|
|
342
|
+
on: (event, fn) => emitter.on(event, fn),
|
|
343
|
+
destroy() {
|
|
344
|
+
destroyed = true;
|
|
345
|
+
emitter.clear();
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
/** Freezes a copy, so the caller's object stays theirs; an already frozen record is kept. */
|
|
350
|
+
function frozen(record) {
|
|
351
|
+
return Object.isFrozen(record) ? record : Object.freeze({ ...record });
|
|
352
|
+
}
|
|
353
|
+
function shallowEqual(a, b) {
|
|
354
|
+
const ka = Object.keys(a);
|
|
355
|
+
const kb = Object.keys(b);
|
|
356
|
+
return ka.length === kb.length && ka.every((k) => Object.hasOwn(b, k) && a[k] === b[k]);
|
|
357
|
+
}
|
|
358
|
+
//#endregion
|
|
254
359
|
//#region src/model/selection.ts
|
|
255
360
|
const union = (a, b) => {
|
|
256
361
|
const x = Math.min(a.x, b.x);
|
|
@@ -1792,6 +1897,7 @@ function isProduction() {
|
|
|
1792
1897
|
}
|
|
1793
1898
|
//#endregion
|
|
1794
1899
|
//#region src/model/annotations/history.ts
|
|
1900
|
+
const noop = () => {};
|
|
1795
1901
|
/**
|
|
1796
1902
|
* Snapshot-based undo and redo over an uncontrolled store.
|
|
1797
1903
|
*
|
|
@@ -1811,6 +1917,8 @@ function createHistory(store, opts = {}) {
|
|
|
1811
1917
|
batch(fn) {
|
|
1812
1918
|
fn();
|
|
1813
1919
|
},
|
|
1920
|
+
track: () => noop,
|
|
1921
|
+
react: () => noop,
|
|
1814
1922
|
destroy() {}
|
|
1815
1923
|
};
|
|
1816
1924
|
const limit = opts.limit ?? 200;
|
|
@@ -1818,14 +1926,84 @@ function createHistory(store, opts = {}) {
|
|
|
1818
1926
|
const redoStack = [];
|
|
1819
1927
|
let previous = store.list.get();
|
|
1820
1928
|
let replaying = false;
|
|
1821
|
-
/**
|
|
1929
|
+
/**
|
|
1930
|
+
* Open step depth (batches, and an edit while its reactions run); while above zero, changes
|
|
1931
|
+
* update the baselines but push no entry.
|
|
1932
|
+
*/
|
|
1822
1933
|
let depth = 0;
|
|
1823
|
-
/** The
|
|
1824
|
-
let
|
|
1934
|
+
/** The lists when the outermost step opened (or were restarted by a replace). */
|
|
1935
|
+
let start = null;
|
|
1936
|
+
/** Each tracked store with its list as of the last change history saw. */
|
|
1937
|
+
const tracked = /* @__PURE__ */ new Map();
|
|
1938
|
+
const reactions = /* @__PURE__ */ new Set();
|
|
1825
1939
|
const sync = () => {
|
|
1826
1940
|
canUndo.set(undoStack.length > 0);
|
|
1827
1941
|
canRedo.set(redoStack.length > 0);
|
|
1828
1942
|
};
|
|
1943
|
+
const push = (entry) => {
|
|
1944
|
+
undoStack.push(entry);
|
|
1945
|
+
if (undoStack.length > limit) undoStack.shift();
|
|
1946
|
+
redoStack.length = 0;
|
|
1947
|
+
sync();
|
|
1948
|
+
};
|
|
1949
|
+
/**
|
|
1950
|
+
* Forgets `recordStore`'s records in every entry, so undo and redo leave it alone. An entry
|
|
1951
|
+
* left with nothing to replay (no annotation change, no other store) is dropped.
|
|
1952
|
+
*/
|
|
1953
|
+
const dropEntries = (recordStore) => {
|
|
1954
|
+
for (const stack of [undoStack, redoStack]) {
|
|
1955
|
+
const kept = stack.filter((entry) => {
|
|
1956
|
+
if (!entry.records.delete(recordStore)) return true;
|
|
1957
|
+
const { before, after } = entry.annotations;
|
|
1958
|
+
return entry.records.size > 0 || !sameList(before, after);
|
|
1959
|
+
});
|
|
1960
|
+
stack.splice(0, stack.length, ...kept);
|
|
1961
|
+
}
|
|
1962
|
+
sync();
|
|
1963
|
+
};
|
|
1964
|
+
const resetStacks = () => {
|
|
1965
|
+
undoStack.length = 0;
|
|
1966
|
+
redoStack.length = 0;
|
|
1967
|
+
sync();
|
|
1968
|
+
};
|
|
1969
|
+
/** Opens the outermost step from `annotations` and every tracked store's baseline. */
|
|
1970
|
+
const open = (annotations) => {
|
|
1971
|
+
const records = /* @__PURE__ */ new Map();
|
|
1972
|
+
for (const [s, t] of tracked) records.set(s, t.previous);
|
|
1973
|
+
start = {
|
|
1974
|
+
annotations,
|
|
1975
|
+
records
|
|
1976
|
+
};
|
|
1977
|
+
};
|
|
1978
|
+
/**
|
|
1979
|
+
* Closes the outermost step: one entry for everything that changed since it opened. A step
|
|
1980
|
+
* whose lists end where they began (the same objects in the same order) records nothing.
|
|
1981
|
+
*/
|
|
1982
|
+
const close = () => {
|
|
1983
|
+
const from = start;
|
|
1984
|
+
start = null;
|
|
1985
|
+
if (!from) return;
|
|
1986
|
+
const annotations = {
|
|
1987
|
+
before: from.annotations,
|
|
1988
|
+
after: store.list.get()
|
|
1989
|
+
};
|
|
1990
|
+
previous = annotations.after;
|
|
1991
|
+
const records = /* @__PURE__ */ new Map();
|
|
1992
|
+
for (const [s, t] of tracked) {
|
|
1993
|
+
const before = from.records.get(s) ?? t.previous;
|
|
1994
|
+
const after = s.list.get();
|
|
1995
|
+
t.previous = after;
|
|
1996
|
+
if (!sameList(before, after)) records.set(s, {
|
|
1997
|
+
before,
|
|
1998
|
+
after
|
|
1999
|
+
});
|
|
2000
|
+
}
|
|
2001
|
+
if (records.size === 0 && sameList(annotations.before, annotations.after)) return;
|
|
2002
|
+
push({
|
|
2003
|
+
annotations,
|
|
2004
|
+
records
|
|
2005
|
+
});
|
|
2006
|
+
};
|
|
1829
2007
|
let destroyed = false;
|
|
1830
2008
|
const unsubscribe = store.on("change", (change) => {
|
|
1831
2009
|
const current = store.list.get();
|
|
@@ -1838,39 +2016,40 @@ function createHistory(store, opts = {}) {
|
|
|
1838
2016
|
const f = change.fields.get(a.id);
|
|
1839
2017
|
return f && withEmbeddedFields(a, f) || a;
|
|
1840
2018
|
});
|
|
1841
|
-
for (const
|
|
1842
|
-
|
|
1843
|
-
|
|
2019
|
+
for (const { annotations } of [...undoStack, ...redoStack]) {
|
|
2020
|
+
annotations.before = fill(annotations.before);
|
|
2021
|
+
annotations.after = fill(annotations.after);
|
|
1844
2022
|
}
|
|
1845
|
-
if (
|
|
2023
|
+
if (start) start.annotations = fill(start.annotations);
|
|
1846
2024
|
previous = current;
|
|
1847
2025
|
return;
|
|
1848
2026
|
}
|
|
1849
2027
|
if (change.kind === "replace") {
|
|
1850
|
-
undoStack.length = 0;
|
|
1851
|
-
redoStack.length = 0;
|
|
1852
2028
|
previous = current;
|
|
1853
|
-
if (depth > 0)
|
|
1854
|
-
|
|
2029
|
+
if (depth > 0) open(current);
|
|
2030
|
+
resetStacks();
|
|
1855
2031
|
return;
|
|
1856
2032
|
}
|
|
1857
2033
|
if (depth > 0) {
|
|
1858
2034
|
previous = current;
|
|
2035
|
+
for (const fn of [...reactions]) fn(change);
|
|
1859
2036
|
return;
|
|
1860
2037
|
}
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
sync();
|
|
2038
|
+
open(previous);
|
|
2039
|
+
depth++;
|
|
2040
|
+
try {
|
|
2041
|
+
for (const fn of [...reactions]) fn(change);
|
|
2042
|
+
} finally {
|
|
2043
|
+
if (--depth === 0 && !destroyed) close();
|
|
2044
|
+
}
|
|
1869
2045
|
});
|
|
1870
|
-
|
|
2046
|
+
/** Replays a step's lists under the `replaying` guard, skipping stores no longer tracked. */
|
|
2047
|
+
const apply = (entry, side) => {
|
|
1871
2048
|
replaying = true;
|
|
1872
2049
|
try {
|
|
1873
|
-
|
|
2050
|
+
const { annotations } = entry;
|
|
2051
|
+
if (!sameList(annotations.before, annotations.after)) store.replaceAll([...annotations[side]], "history");
|
|
2052
|
+
for (const [s, snapshot] of entry.records) if (tracked.has(s)) s.replaceAll([...snapshot[side]], "history");
|
|
1874
2053
|
} finally {
|
|
1875
2054
|
replaying = false;
|
|
1876
2055
|
}
|
|
@@ -1882,14 +2061,14 @@ function createHistory(store, opts = {}) {
|
|
|
1882
2061
|
const entry = undoStack.pop();
|
|
1883
2062
|
if (destroyed || !entry) return;
|
|
1884
2063
|
redoStack.push(entry);
|
|
1885
|
-
apply(entry
|
|
2064
|
+
apply(entry, "before");
|
|
1886
2065
|
sync();
|
|
1887
2066
|
},
|
|
1888
2067
|
redo() {
|
|
1889
2068
|
const entry = redoStack.pop();
|
|
1890
2069
|
if (destroyed || !entry) return;
|
|
1891
2070
|
undoStack.push(entry);
|
|
1892
|
-
apply(entry
|
|
2071
|
+
apply(entry, "after");
|
|
1893
2072
|
sync();
|
|
1894
2073
|
},
|
|
1895
2074
|
batch(fn) {
|
|
@@ -1897,45 +2076,78 @@ function createHistory(store, opts = {}) {
|
|
|
1897
2076
|
fn();
|
|
1898
2077
|
return;
|
|
1899
2078
|
}
|
|
1900
|
-
if (depth++ === 0)
|
|
2079
|
+
if (depth++ === 0) open(store.list.get());
|
|
1901
2080
|
try {
|
|
1902
2081
|
const result = fn();
|
|
1903
2082
|
if (result !== null && typeof result === "object" && typeof result.then === "function" && !isProduction()) console.warn("[inkbar] history.batch(fn): fn returned a promise. Changes after its first await are not part of the batch.");
|
|
1904
2083
|
} finally {
|
|
1905
|
-
if (--depth === 0 && !destroyed)
|
|
1906
|
-
const before = batchStart;
|
|
1907
|
-
batchStart = null;
|
|
1908
|
-
const after = store.list.get();
|
|
1909
|
-
if (before && !sameAnnotations(before, after)) {
|
|
1910
|
-
undoStack.push({
|
|
1911
|
-
before,
|
|
1912
|
-
after
|
|
1913
|
-
});
|
|
1914
|
-
if (undoStack.length > limit) undoStack.shift();
|
|
1915
|
-
redoStack.length = 0;
|
|
1916
|
-
sync();
|
|
1917
|
-
}
|
|
1918
|
-
}
|
|
2084
|
+
if (--depth === 0 && !destroyed) close();
|
|
1919
2085
|
}
|
|
1920
2086
|
},
|
|
2087
|
+
track(recordStore) {
|
|
2088
|
+
if (destroyed || tracked.has(recordStore)) return noop;
|
|
2089
|
+
const unsubscribeStore = recordStore.on("change", (change) => {
|
|
2090
|
+
const t = tracked.get(recordStore);
|
|
2091
|
+
if (!t) return;
|
|
2092
|
+
const before = t.previous;
|
|
2093
|
+
const current = recordStore.list.get();
|
|
2094
|
+
t.previous = current;
|
|
2095
|
+
if (replaying || change.kind === "replace" && change.reason === "history") return;
|
|
2096
|
+
if (change.kind === "replace") {
|
|
2097
|
+
if (depth > 0 && start) start.records.set(recordStore, current);
|
|
2098
|
+
dropEntries(recordStore);
|
|
2099
|
+
return;
|
|
2100
|
+
}
|
|
2101
|
+
if (depth > 0) return;
|
|
2102
|
+
push({
|
|
2103
|
+
annotations: {
|
|
2104
|
+
before: previous,
|
|
2105
|
+
after: previous
|
|
2106
|
+
},
|
|
2107
|
+
records: /* @__PURE__ */ new Map([[recordStore, {
|
|
2108
|
+
before,
|
|
2109
|
+
after: current
|
|
2110
|
+
}]])
|
|
2111
|
+
});
|
|
2112
|
+
});
|
|
2113
|
+
tracked.set(recordStore, {
|
|
2114
|
+
previous: recordStore.list.get(),
|
|
2115
|
+
unsubscribe: unsubscribeStore
|
|
2116
|
+
});
|
|
2117
|
+
if (start) start.records.set(recordStore, recordStore.list.get());
|
|
2118
|
+
return () => {
|
|
2119
|
+
if (tracked.get(recordStore)?.unsubscribe !== unsubscribeStore) return;
|
|
2120
|
+
unsubscribeStore();
|
|
2121
|
+
tracked.delete(recordStore);
|
|
2122
|
+
start?.records.delete(recordStore);
|
|
2123
|
+
};
|
|
2124
|
+
},
|
|
2125
|
+
react(fn) {
|
|
2126
|
+
if (destroyed) return noop;
|
|
2127
|
+
const run = (edit) => fn(edit);
|
|
2128
|
+
reactions.add(run);
|
|
2129
|
+
return () => {
|
|
2130
|
+
reactions.delete(run);
|
|
2131
|
+
};
|
|
2132
|
+
},
|
|
1921
2133
|
destroy() {
|
|
1922
2134
|
destroyed = true;
|
|
1923
|
-
|
|
2135
|
+
start = null;
|
|
1924
2136
|
unsubscribe();
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
2137
|
+
for (const t of tracked.values()) t.unsubscribe();
|
|
2138
|
+
tracked.clear();
|
|
2139
|
+
reactions.clear();
|
|
2140
|
+
resetStacks();
|
|
1928
2141
|
},
|
|
1929
2142
|
clear() {
|
|
1930
|
-
undoStack.length = 0;
|
|
1931
|
-
redoStack.length = 0;
|
|
1932
2143
|
previous = store.list.get();
|
|
1933
|
-
|
|
2144
|
+
for (const [s, t] of tracked) t.previous = s.list.get();
|
|
2145
|
+
resetStacks();
|
|
1934
2146
|
}
|
|
1935
2147
|
};
|
|
1936
2148
|
}
|
|
1937
|
-
/** The same
|
|
1938
|
-
function
|
|
2149
|
+
/** The same objects in the same order. */
|
|
2150
|
+
function sameList(a, b) {
|
|
1939
2151
|
return a === b || a.length === b.length && a.every((x, i) => x === b[i]);
|
|
1940
2152
|
}
|
|
1941
2153
|
//#endregion
|
|
@@ -2382,6 +2594,7 @@ function createAnnotationStore(opts) {
|
|
|
2382
2594
|
console.warn(`[inkbar] ControlledMutationIgnored: the host did not apply a ${entry.change.kind} for annotation ${entry.id}. In controlled mode, pass the list from onChange back into the store.`);
|
|
2383
2595
|
}
|
|
2384
2596
|
function commit(next, change) {
|
|
2597
|
+
if (change.kind !== "replace") emitter.emit("edit", change);
|
|
2385
2598
|
if (controlled) {
|
|
2386
2599
|
if (change.kind !== "replace") {
|
|
2387
2600
|
const key = changeKey(change);
|
|
@@ -2480,6 +2693,7 @@ function createAnnotationStore(opts) {
|
|
|
2480
2693
|
after
|
|
2481
2694
|
};
|
|
2482
2695
|
if (controlled && before.source === "pdf") {
|
|
2696
|
+
emitter.emit("edit", change);
|
|
2483
2697
|
list.set(swap(list.get()));
|
|
2484
2698
|
if (proposed) proposed = next;
|
|
2485
2699
|
emitter.emit("change", change);
|
|
@@ -2868,7 +3082,7 @@ async function openDocument(source, options) {
|
|
|
2868
3082
|
if (!destroyed && patched.size > 0) store._patchEmbedded(patched);
|
|
2869
3083
|
}).catch(() => void 0);
|
|
2870
3084
|
}, () => void 0);
|
|
2871
|
-
|
|
3085
|
+
const doc = {
|
|
2872
3086
|
key: resolved.key,
|
|
2873
3087
|
status: readonly(status),
|
|
2874
3088
|
ready,
|
|
@@ -2879,6 +3093,9 @@ async function openDocument(source, options) {
|
|
|
2879
3093
|
if (!handles) throw statusError(status.get());
|
|
2880
3094
|
return textContentFromPdfjs(page, await (await handles.getPage(page)).getTextContent());
|
|
2881
3095
|
},
|
|
3096
|
+
async pageText(page) {
|
|
3097
|
+
return (await doc.text(page)).items.map((item) => item.str).join(" ");
|
|
3098
|
+
},
|
|
2882
3099
|
annotations: store,
|
|
2883
3100
|
embedded,
|
|
2884
3101
|
history,
|
|
@@ -2908,6 +3125,7 @@ async function openDocument(source, options) {
|
|
|
2908
3125
|
return handles;
|
|
2909
3126
|
}
|
|
2910
3127
|
};
|
|
3128
|
+
return doc;
|
|
2911
3129
|
}
|
|
2912
3130
|
const EMBEDDED_CONCURRENCY = 8;
|
|
2913
3131
|
/** Runs `task(0..count-1)` with at most `limit` in flight; results come back in index order. */
|
|
@@ -4707,6 +4925,6 @@ function createSignatureLibrary(store) {
|
|
|
4707
4925
|
};
|
|
4708
4926
|
}
|
|
4709
4927
|
//#endregion
|
|
4710
|
-
export { importAnnotations as $,
|
|
4928
|
+
export { importAnnotations as $, derived as $t, styleGroupOf as A, RectSchema as At, isTextMarkup as B, withCalloutBounds as Bt, repliesTo as C, NoteIconSchema as Ct, STYLE_GROUPS as D, PolygonSchema as Dt, withoutReplies as E, PolySchema as Et, typesInGroup as F, TextMarkupSchema as Ft, resizedRect as G, isKnown as Gt, movedEndpoint as H, LINE_ENDINGS as Ht, hasCallout as I, FringeSchema as It, withBox as J, cssVariableDefaults as Jt, scaled as K, pdfNameSet as Kt, hasCornerHandles as L, calloutStroke as Lt, styleGroupsOf as M, ShapeSchema as Mt, supportedProps as N, SquareSchema as Nt, createToolStyle as O, PolylineSchema as Ot, toFields as P, StampSchema as Pt, exportAnnotations as Q, createRecordStore as Qt, hasRectGeometry as R, freeTextBox as Rt, isThreadRoot as S, MaskSchema as St, threadRoot as T, PointSchema as Tt, movedTip as U, NOTE_ICONS as Ut, keepsAspect as V, INTENTS as Vt, resizedBox as W, PDF_NAME$1 as Wt, createAnnotationStore as X, staticDefaults as Xt, openDocument as Y, normalizeColor as Yt, deriveRect as Z, mergeLineRects as Zt, defaultEnds as _, unionRects as _n, IMAGE_DATA_URL as _t, createLocalSignatureStore as a, multiplyMatrix as an, pdfColorToHex as at, isAbandonedNote as b, isInkError as bn, LineSchema as bt, normaliseInk as c, quadsFromFlat as cn, AnnotationSchema as ct, recogniseStroke as d, rectFromPoints as dn, FreeTextSchema as dt, readonly as en, createHistory as et, DEFAULT_CORNER_RADIUS as f, rectFromQuad as fn, FreeTextStyleSchema as ft, constrain as g, translateRect as gn, GLOSS_VERSION$1 as gt, SHAPE_KINDS as h, translateQuad as hn, GLOSS_SCHEMA_ID as ht, createInkTemplate as i, invertMatrix as in, importedId as it, styleGroupOfType as j, RedactSchema as jt, fromAnnotation as k, QuadSchema as kt, placeSignature as l, quadsFromRect as ln, CircleSchema as lt, DEFAULT_SHAPE_SIZE as m, rectsIntersect as mn, GLOSS_MEDIA_TYPE as mt, SIGNATURE_INK_WIDTH as n, applyMatrix as nn, SUPPORTED_SUBTYPES as nt, createMemorySignatureStore as o, pointsFromFlat as on, summarise as ot, DEFAULT_SHAPE_OPTIONS as p, rectFromQuads as pn, GLOSS_FORMAT$1 as pt, translated as q, parsePdfDate as qt, createImageTemplate as r, approxEqual as rn, importEmbeddedPage as rt, createSignatureLibrary as s, quadFromRect as sn, AnnotationDocumentSchema as st, DEFAULT_SIGNATURE_WIDTH as t, writable as tn, isProduction as tt, RECOGNISE_THRESHOLD as u, rectContainsPoint as un, ExportedAnnotationSchema as ut, isPointerOnlyKind as v, Emitter as vn, InkSchema as vt, threadOf as w, NoteSchema as wt, isReply as x, LoupeSchema as xt, shapeInput as y, InkError as yn, LineEndingSchema as yt, isBubble as z, isStandardCallout as zt };
|
|
4711
4929
|
|
|
4712
|
-
//# sourceMappingURL=signatures-
|
|
4930
|
+
//# sourceMappingURL=signatures-D68fuLlt.mjs.map
|