@build-qube/papyra 0.4.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 +12 -1
- package/dist/attachments.d.ts +6 -1
- package/dist/attachments.d.ts.map +1 -1
- package/dist/attachments.js +6 -1
- package/dist/attachments.js.map +1 -1
- package/dist/cache.d.ts +5 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +8 -0
- package/dist/cache.js.map +1 -1
- package/dist/canvas.d.ts +2 -2
- package/dist/canvas.d.ts.map +1 -1
- package/dist/canvas.js +20 -7
- package/dist/canvas.js.map +1 -1
- package/dist/core.d.ts +57 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +40 -0
- package/dist/core.js.map +1 -0
- package/dist/document.d.ts +28 -20
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +79 -360
- package/dist/document.js.map +1 -1
- package/dist/engine.d.ts +327 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +485 -0
- package/dist/engine.js.map +1 -0
- package/dist/errors.d.ts +2 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -1
- package/dist/errors.js.map +1 -1
- package/dist/fingerprint.d.ts +2 -1
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +2 -1
- package/dist/fingerprint.js.map +1 -1
- package/dist/index.d.ts +6 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -14
- package/dist/index.js.map +1 -1
- package/dist/links.d.ts +6 -1
- package/dist/links.d.ts.map +1 -1
- package/dist/links.js +6 -1
- package/dist/links.js.map +1 -1
- package/dist/office.d.ts +85 -0
- package/dist/office.d.ts.map +1 -0
- package/dist/office.js +135 -0
- package/dist/office.js.map +1 -0
- package/dist/papyra-engine.d.ts +68 -0
- package/dist/papyra-engine.d.ts.map +1 -0
- package/dist/papyra-engine.js +173 -0
- package/dist/papyra-engine.js.map +1 -0
- package/dist/runtime.d.ts +7 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +11 -0
- package/dist/runtime.js.map +1 -1
- package/dist/scheduler.d.ts +10 -2
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +26 -7
- package/dist/scheduler.js.map +1 -1
- package/dist/sheets.d.ts +160 -0
- package/dist/sheets.d.ts.map +1 -0
- package/dist/sheets.js +153 -0
- package/dist/sheets.js.map +1 -0
- package/dist/source.d.ts +1 -1
- package/dist/source.js +1 -1
- package/dist/text.d.ts +6 -1
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +6 -1
- package/dist/text.js.map +1 -1
- package/dist/tiff-image.d.ts +97 -0
- package/dist/tiff-image.d.ts.map +1 -0
- package/dist/tiff-image.js +65 -0
- package/dist/tiff-image.js.map +1 -0
- package/dist/tiff.d.ts +2 -73
- package/dist/tiff.d.ts.map +1 -1
- package/dist/tiff.js +4 -53
- package/dist/tiff.js.map +1 -1
- package/dist/types.d.ts +22 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/workbook.d.ts +3 -134
- package/dist/workbook.d.ts.map +1 -1
- package/dist/workbook.js +6 -141
- package/dist/workbook.js.map +1 -1
- package/package.json +24 -3
package/README.md
CHANGED
|
@@ -122,7 +122,7 @@ width on screen is the page's height, and `vp.dpi` carries the answer back.
|
|
|
122
122
|
Renders draw annotations by default. Pass `{ annotations: false }` when you are drawing
|
|
123
123
|
your own link or highlight layer, or they appear twice.
|
|
124
124
|
|
|
125
|
-
##
|
|
125
|
+
## Three things that will bite you
|
|
126
126
|
|
|
127
127
|
**Size with `fitWidth`, not `dpi`.** Page areas vary by two orders of magnitude. At a
|
|
128
128
|
fixed 36 DPI, US Letter is a 216x279 thumbnail while a 42x30in drawing is a 1512x1080,
|
|
@@ -137,6 +137,17 @@ Cross-Origin-Opener-Policy: same-origin
|
|
|
137
137
|
Cross-Origin-Embedder-Policy: require-corp
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
+
**A panic in the browser build is fatal.** It aborts that wasm instance, and papyra
|
|
141
|
+
fails until the page reloads; natively it is a rejected promise like any other error.
|
|
142
|
+
|
|
143
|
+
## Engines
|
|
144
|
+
|
|
145
|
+
Other engines — pdf.js for pages that cannot be isolated, Tauri, and the experimental
|
|
146
|
+
Word and PowerPoint `@build-qube/papyra/office` — are covered in the
|
|
147
|
+
[Engines guide](https://buildqube.github.io/Papyra/docs/guides/engines).
|
|
148
|
+
Code that opens documents with another engine imports from `@build-qube/papyra/core`,
|
|
149
|
+
which never loads papyra's wasm.
|
|
150
|
+
|
|
140
151
|
## More
|
|
141
152
|
|
|
142
153
|
The [full API reference](https://buildqube.github.io/Papyra/docs) is generated from
|
package/dist/attachments.d.ts
CHANGED
|
@@ -49,7 +49,12 @@ export interface Attachment {
|
|
|
49
49
|
*/
|
|
50
50
|
readonly relationship: string | null;
|
|
51
51
|
}
|
|
52
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* An attachment as the bindings report it, as an {@link Attachment} at `index`.
|
|
54
|
+
*
|
|
55
|
+
* Exported for engines whose host answers in the native bindings' shapes, as
|
|
56
|
+
* `tauri-plugin-papyra` does, so they normalise exactly as papyra's own engine does.
|
|
57
|
+
*/
|
|
53
58
|
export declare function toAttachment(native: NativeAttachment, index: number): Attachment;
|
|
54
59
|
/**
|
|
55
60
|
* The attachment's media type, falling back to its extension.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../src/attachments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,oFAAoF;IACpF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED
|
|
1
|
+
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../src/attachments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,oFAAoF;IACpF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,UAAU,CAWZ;AAiBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAK5D;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAE7D"}
|
package/dist/attachments.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* An attachment as the bindings report it, as an {@link Attachment} at `index`.
|
|
3
|
+
*
|
|
4
|
+
* Exported for engines whose host answers in the native bindings' shapes, as
|
|
5
|
+
* `tauri-plugin-papyra` does, so they normalise exactly as papyra's own engine does.
|
|
6
|
+
*/
|
|
2
7
|
export function toAttachment(native, index) {
|
|
3
8
|
return {
|
|
4
9
|
index,
|
package/dist/attachments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../src/attachments.ts"],"names":[],"mappings":"AAqDA
|
|
1
|
+
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../src/attachments.ts"],"names":[],"mappings":"AAqDA;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAwB,EACxB,KAAa;IAEb,OAAO;QACL,KAAK;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;QACvC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;KAC1C,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,YAAY,GAA2B;IAC3C,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxE,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,0BAA0B,CAAC;AAC/D,CAAC;AAED,qEAAqE;AACrE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,cAAc;IACd,qBAAqB;IACrB,eAAe;IACf,aAAa;CACd,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACpD,CAAC"}
|
package/dist/cache.d.ts
CHANGED
|
@@ -31,6 +31,11 @@ export declare class RenderCache<T> {
|
|
|
31
31
|
get(key: string): T | undefined;
|
|
32
32
|
set(key: string, value: T): void;
|
|
33
33
|
clear(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Empty the cache and refuse every later `set`. For a closed document, whose
|
|
36
|
+
* in-flight work still resolves into it afterwards.
|
|
37
|
+
*/
|
|
38
|
+
close(): void;
|
|
34
39
|
get stats(): CacheStats;
|
|
35
40
|
}
|
|
36
41
|
//# sourceMappingURL=cache.d.ts.map
|
package/dist/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW,CAAC,CAAC;;IAUxB,YAAY,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAG5D;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAW9B;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAc/B;IAcD,KAAK,IAAI,IAAI,CAGZ;IAED,IAAI,KAAK,IAAI,UAAU,CAQtB;CACF"}
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW,CAAC,CAAC;;IAUxB,YAAY,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAG5D;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAW9B;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAc/B;IAcD,KAAK,IAAI,IAAI,CAGZ;IAED;;;OAGG;IACH,KAAK,IAAI,IAAI,CAGZ;IAED,IAAI,KAAK,IAAI,UAAU,CAQtB;CACF"}
|
package/dist/cache.js
CHANGED
|
@@ -73,6 +73,14 @@ export class RenderCache {
|
|
|
73
73
|
this.#entries.clear();
|
|
74
74
|
this.#bytes = 0;
|
|
75
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Empty the cache and refuse every later `set`. For a closed document, whose
|
|
78
|
+
* in-flight work still resolves into it afterwards.
|
|
79
|
+
*/
|
|
80
|
+
close() {
|
|
81
|
+
this.#budget = 0;
|
|
82
|
+
this.clear();
|
|
83
|
+
}
|
|
76
84
|
get stats() {
|
|
77
85
|
return {
|
|
78
86
|
bytes: this.#bytes,
|
package/dist/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/canvas.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RenderedPage } from './types.js';
|
|
1
|
+
import type { PageBitmap, RenderedPage } from './types.js';
|
|
2
2
|
import type { Rotation } from './viewport.js';
|
|
3
3
|
/**
|
|
4
4
|
* Wrap a rendered page as `ImageData`, ready for `putImageData`.
|
|
@@ -33,5 +33,5 @@ export interface PaintOptions {
|
|
|
33
33
|
* });
|
|
34
34
|
* ```
|
|
35
35
|
*/
|
|
36
|
-
export declare function paintToCanvas(page:
|
|
36
|
+
export declare function paintToCanvas(page: PageBitmap, canvas: HTMLCanvasElement | OffscreenCanvas, options?: PaintOptions): void;
|
|
37
37
|
//# sourceMappingURL=canvas.d.ts.map
|
package/dist/canvas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../src/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../src/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAU9C;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAMzD;AAED,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAC3C,OAAO,GAAE,YAAiB,GACzB,IAAI,CA2CN"}
|
package/dist/canvas.js
CHANGED
|
@@ -30,19 +30,32 @@ export function paintToCanvas(page, canvas, options = {}) {
|
|
|
30
30
|
const ctx = canvas.getContext('2d');
|
|
31
31
|
if (!ctx)
|
|
32
32
|
throw new Error('papyra: could not get a 2d canvas context');
|
|
33
|
+
// An `ImageBitmap` is already a drawable surface: no copy, no scratch canvas.
|
|
34
|
+
const pixels = 'data' in page;
|
|
33
35
|
if (rotation === 0) {
|
|
34
|
-
|
|
36
|
+
if (pixels)
|
|
37
|
+
ctx.putImageData(toImageData(page), 0, 0);
|
|
38
|
+
else
|
|
39
|
+
ctx.drawImage(page, 0, 0);
|
|
35
40
|
return;
|
|
36
41
|
}
|
|
37
42
|
// `putImageData` writes straight to the backing store and ignores the transform, so
|
|
38
43
|
// a rotation cannot go through it. The pixels land on a scratch surface first and
|
|
39
44
|
// are then blitted under a transform, which is one extra copy — against rotating
|
|
40
45
|
// the buffer ourselves, which is a copy plus a per-pixel loop in JS.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
let source;
|
|
47
|
+
if (pixels) {
|
|
48
|
+
const scratch = scratchCanvas(page.width, page.height);
|
|
49
|
+
const scratchCtx = scratch.getContext('2d');
|
|
50
|
+
if (!scratchCtx) {
|
|
51
|
+
throw new Error('papyra: could not get a 2d canvas context');
|
|
52
|
+
}
|
|
53
|
+
scratchCtx.putImageData(toImageData(page), 0, 0);
|
|
54
|
+
source = scratch;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
source = page;
|
|
58
|
+
}
|
|
46
59
|
// Each pair puts the rotated page's origin back at the canvas corner: at 90° the
|
|
47
60
|
// page's top-left corner ends up top-right, so the axes move there first.
|
|
48
61
|
if (rotation === 90)
|
|
@@ -52,7 +65,7 @@ export function paintToCanvas(page, canvas, options = {}) {
|
|
|
52
65
|
else
|
|
53
66
|
ctx.translate(0, canvas.height);
|
|
54
67
|
ctx.rotate((rotation * Math.PI) / 180);
|
|
55
|
-
ctx.drawImage(
|
|
68
|
+
ctx.drawImage(source, 0, 0);
|
|
56
69
|
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
57
70
|
}
|
|
58
71
|
/**
|
package/dist/canvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../src/canvas.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAkB;IAC5C,OAAO,IAAI,SAAS,CAClB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EACjC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CACZ,CAAC;AACJ,CAAC;AAcD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAC3B,
|
|
1
|
+
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../src/canvas.ts"],"names":[],"mappings":"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"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Everything in papyra that runs without its engine.
|
|
3
|
+
*
|
|
4
|
+
* Painting a rendered bitmap, page geometry, search over extracted text, outline and
|
|
5
|
+
* structure trees, the priority queue, the error types, and {@link PagedEngine} and
|
|
6
|
+
* {@link PdfEngine} to build an engine on. papyra's own engine is not here but in
|
|
7
|
+
* `@build-qube/papyra/engine`.
|
|
8
|
+
*
|
|
9
|
+
* The main entry exports all of it too, but importing that loads the engine — on a
|
|
10
|
+
* browser, a wasm module of about 2.5 MB that needs a cross-origin-isolated page to
|
|
11
|
+
* start. Code that only draws pages, or that will hand the opening to another engine,
|
|
12
|
+
* imports from here.
|
|
13
|
+
*
|
|
14
|
+
* Nothing in this module's graph may reach `@build-qube/papyra-native` at all, not
|
|
15
|
+
* even through `import()`: a bundler emits the 6 MB wasm as soon as its graph reaches
|
|
16
|
+
* the loader, whether or not tree-shaking later drops the code that would fetch it.
|
|
17
|
+
* So an app whose viewer runs on another engine ships no wasm. `test/unit/core.test.ts`
|
|
18
|
+
* walks the graph and fails if anything does.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
export type { Attachment } from './attachments.js';
|
|
23
|
+
export { attachmentMediaType, isInvoiceAttachment, toAttachment, } from './attachments.js';
|
|
24
|
+
export type { CacheStats } from './cache.js';
|
|
25
|
+
export type { PaintOptions } from './canvas.js';
|
|
26
|
+
export { paintToCanvas, toImageData } from './canvas.js';
|
|
27
|
+
export type { BoolCell, Cell, CellKind, DateCell, DurationCell, EmptyCell, ErrorCell, MergedRange, NumberCell, TextCell, } from './cells.js';
|
|
28
|
+
export { CellWindow, columnName } from './cells.js';
|
|
29
|
+
export type { EncodedFormat, EncodedImage, EncodeOptions, RasterFormat, SvgPage, } from './encoded.js';
|
|
30
|
+
export { encodedImage, mimeType, svgPage } from './encoded.js';
|
|
31
|
+
export type { Availability, BackendRenderOptions, Capabilities, PagedBackend, PagedDoc, PdfBackend, PdfDoc, } from './engine.js';
|
|
32
|
+
export { PagedEngine, PdfEngine, RENDER_ONLY } from './engine.js';
|
|
33
|
+
export { EncryptedWorkbookError, IncorrectPasswordError, PasswordError, PasswordRequiredError, rethrowLoadError, } from './errors.js';
|
|
34
|
+
export { fingerprint } from './fingerprint.js';
|
|
35
|
+
export type { LinkTarget, PageLink } from './links.js';
|
|
36
|
+
export { toPageLink } from './links.js';
|
|
37
|
+
export type { DestinationKind, OutlineDestination, OutlineNode, } from './outline.js';
|
|
38
|
+
export { buildOutlineTree, walkOutline } from './outline.js';
|
|
39
|
+
export type { JobHandle, JobTiming } from './scheduler.js';
|
|
40
|
+
export { AbortError, DEFAULT_PRIORITY } from './scheduler.js';
|
|
41
|
+
export type { MatchOptions, SearchMatch } from './search.js';
|
|
42
|
+
export { findRanges, searchPageText } from './search.js';
|
|
43
|
+
export type { SheetInfo, SheetKind, SheetSource, SheetVisibility, WindowRange, WorkbookFormat, WorkbookOptions, WorkbookSource, } from './sheets.js';
|
|
44
|
+
export { openWorkbookWith, Sheet, Workbook } from './sheets.js';
|
|
45
|
+
export { toBytes } from './source.js';
|
|
46
|
+
export type { MarkedContent, OrderedLine, StructNode, } from './structure.js';
|
|
47
|
+
export { buildStructTree, readingOrder, structuredPageString, walkStructTree, } from './structure.js';
|
|
48
|
+
export type { BorderEdge, BorderStyle, CellStyle, ColumnSpan, HorizontalAlign, RowSize, SheetLayout, VerticalAlign, } from './styles.js';
|
|
49
|
+
export { cssColor } from './styles.js';
|
|
50
|
+
export type { PageText, Quad, Rect, TextLine } from './text.js';
|
|
51
|
+
export { lineQuad, pageString, quadBounds, scaleQuad, scaleRect, toPageText, } from './text.js';
|
|
52
|
+
export type { TiffCompression, TiffPage, TiffRenderOptions, TiffSource, } from './tiff-image.js';
|
|
53
|
+
export { TIFF_MAX_PIXELS, TiffImage } from './tiff-image.js';
|
|
54
|
+
export type { DocumentMetadata, OpenOptions, PageBitmap, PageSize, PdfSource, RenderedPage, RenderHandle, RenderOptions, SearchOptions, StreamedPage, StreamOptions, SvgOptions, } from './types.js';
|
|
55
|
+
export type { Rotation, Viewport, ViewportOptions } from './viewport.js';
|
|
56
|
+
export { rotatePage, rotateSize, viewport, viewportQuad, viewportRect, } from './viewport.js';
|
|
57
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/core.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Everything in papyra that runs without its engine.
|
|
3
|
+
*
|
|
4
|
+
* Painting a rendered bitmap, page geometry, search over extracted text, outline and
|
|
5
|
+
* structure trees, the priority queue, the error types, and {@link PagedEngine} and
|
|
6
|
+
* {@link PdfEngine} to build an engine on. papyra's own engine is not here but in
|
|
7
|
+
* `@build-qube/papyra/engine`.
|
|
8
|
+
*
|
|
9
|
+
* The main entry exports all of it too, but importing that loads the engine — on a
|
|
10
|
+
* browser, a wasm module of about 2.5 MB that needs a cross-origin-isolated page to
|
|
11
|
+
* start. Code that only draws pages, or that will hand the opening to another engine,
|
|
12
|
+
* imports from here.
|
|
13
|
+
*
|
|
14
|
+
* Nothing in this module's graph may reach `@build-qube/papyra-native` at all, not
|
|
15
|
+
* even through `import()`: a bundler emits the 6 MB wasm as soon as its graph reaches
|
|
16
|
+
* the loader, whether or not tree-shaking later drops the code that would fetch it.
|
|
17
|
+
* So an app whose viewer runs on another engine ships no wasm. `test/unit/core.test.ts`
|
|
18
|
+
* walks the graph and fails if anything does.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
export { attachmentMediaType, isInvoiceAttachment, toAttachment, } from './attachments.js';
|
|
23
|
+
export { paintToCanvas, toImageData } from './canvas.js';
|
|
24
|
+
export { CellWindow, columnName } from './cells.js';
|
|
25
|
+
export { encodedImage, mimeType, svgPage } from './encoded.js';
|
|
26
|
+
export { PagedEngine, PdfEngine, RENDER_ONLY } from './engine.js';
|
|
27
|
+
export { EncryptedWorkbookError, IncorrectPasswordError, PasswordError, PasswordRequiredError, rethrowLoadError, } from './errors.js';
|
|
28
|
+
export { fingerprint } from './fingerprint.js';
|
|
29
|
+
export { toPageLink } from './links.js';
|
|
30
|
+
export { buildOutlineTree, walkOutline } from './outline.js';
|
|
31
|
+
export { AbortError, DEFAULT_PRIORITY } from './scheduler.js';
|
|
32
|
+
export { findRanges, searchPageText } from './search.js';
|
|
33
|
+
export { openWorkbookWith, Sheet, Workbook } from './sheets.js';
|
|
34
|
+
export { toBytes } from './source.js';
|
|
35
|
+
export { buildStructTree, readingOrder, structuredPageString, walkStructTree, } from './structure.js';
|
|
36
|
+
export { cssColor } from './styles.js';
|
|
37
|
+
export { lineQuad, pageString, quadBounds, scaleQuad, scaleRect, toPageText, } from './text.js';
|
|
38
|
+
export { TIFF_MAX_PIXELS, TiffImage } from './tiff-image.js';
|
|
39
|
+
export { rotatePage, rotateSize, viewport, viewportQuad, viewportRect, } from './viewport.js';
|
|
40
|
+
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAazD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQpD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAU/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMxC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWzD,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAMtC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,WAAW,CAAC;AAOnB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgB7D,OAAO,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC"}
|
package/dist/document.d.ts
CHANGED
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { type CacheStats } from './cache.js';
|
|
1
|
+
import type { Attachment } from './attachments.js';
|
|
2
|
+
import type { CacheStats } from './cache.js';
|
|
4
3
|
import { PageImage, type SvgPage } from './encode.js';
|
|
5
|
-
import { type
|
|
6
|
-
import {
|
|
4
|
+
import { type Capabilities, type PdfDoc } from './engine.js';
|
|
5
|
+
import type { PageLink } from './links.js';
|
|
6
|
+
import type { OutlineNode } from './outline.js';
|
|
7
|
+
import { type PapyraEngine } from './papyra-engine.js';
|
|
7
8
|
import { type JobHandle } from './scheduler.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
9
|
+
import type { SearchMatch } from './search.js';
|
|
10
|
+
import type { StructNode } from './structure.js';
|
|
10
11
|
import { type PageText } from './text.js';
|
|
11
|
-
import type { DocumentMetadata, OpenOptions, PageSize, PdfSource, RenderedPage, RenderOptions, SearchOptions, StreamedPage, StreamOptions, SvgOptions } from './types.js';
|
|
12
|
-
/** A queued render, plus whether it was served from cache without rendering at all. */
|
|
13
|
-
export interface RenderHandle extends JobHandle<RenderedPage> {
|
|
14
|
-
/**
|
|
15
|
-
* The page was already in the cache and nothing was queued.
|
|
16
|
-
*
|
|
17
|
-
* `promise` still resolves normally, so this only matters for instrumentation —
|
|
18
|
-
* a cache hit costs none of the ~93ms floor a real render does.
|
|
19
|
-
*/
|
|
20
|
-
readonly cached: boolean;
|
|
21
|
-
}
|
|
12
|
+
import type { DocumentMetadata, OpenOptions, PageSize, PdfSource, RenderedPage, RenderHandle, RenderOptions, SearchOptions, StreamedPage, StreamOptions, SvgOptions } from './types.js';
|
|
22
13
|
/**
|
|
23
14
|
* A queued export render. No `cached` flag: unlike {@link RenderHandle} the image path
|
|
24
15
|
* never comes from the cache, which is keyed by page and size with no format dimension.
|
|
@@ -44,8 +35,11 @@ export declare function open(source: PdfSource, options?: OpenOptions): Promise<
|
|
|
44
35
|
* Every page-level call goes through one shared scheduler, so a thumbnail sweep can
|
|
45
36
|
* never starve the page on screen — attach a {@link RenderOptions.priority} and the
|
|
46
37
|
* queue reorders around it. Construct via {@link open}, not `new`.
|
|
38
|
+
*
|
|
39
|
+
* A {@link PdfDoc} in its own right: a viewer written against engines can be handed
|
|
40
|
+
* one of these and will reach it through papyra's engine.
|
|
47
41
|
*/
|
|
48
|
-
export declare class Document {
|
|
42
|
+
export declare class Document implements PdfDoc {
|
|
49
43
|
#private;
|
|
50
44
|
/**
|
|
51
45
|
* A stable identifier for this document's bytes.
|
|
@@ -60,11 +54,25 @@ export declare class Document {
|
|
|
60
54
|
*/
|
|
61
55
|
readonly fingerprint: string;
|
|
62
56
|
/** @internal — construct via {@link open}. */
|
|
63
|
-
constructor(
|
|
57
|
+
constructor(doc: PdfDoc, engine: PapyraEngine);
|
|
58
|
+
/** The engine that opened this document: always papyra's own. */
|
|
59
|
+
get engine(): string;
|
|
60
|
+
/** Everything: papyra's engine implements every optional capability. */
|
|
61
|
+
get capabilities(): Capabilities;
|
|
64
62
|
/** Rendered pages held for reuse, and how often that has paid off. */
|
|
65
63
|
get cache(): CacheStats;
|
|
66
64
|
/** Drop every cached page. */
|
|
67
65
|
clearCache(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Release this document: its caches, and its queue's claim on the engine. Every
|
|
68
|
+
* method and getter that reaches the queue or a cache throws afterwards, the stats
|
|
69
|
+
* and a second `close` included; what the handle was opened with — `pageCount`,
|
|
70
|
+
* `fingerprint`, `engine`, `capabilities` — stays readable. Work already running
|
|
71
|
+
* finishes, but nothing it produces is cached. Optional — an unreachable document
|
|
72
|
+
* is collected — but it frees the caches at once rather than whenever the
|
|
73
|
+
* collector gets to them.
|
|
74
|
+
*/
|
|
75
|
+
close(): Promise<void>;
|
|
68
76
|
/** Pages queued but not yet started, pages rendering, and the longest wait so far. */
|
|
69
77
|
get queued(): {
|
|
70
78
|
/** Submitted but not started. These are the ones priority can still reorder. */
|
package/dist/document.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,KAAK,OAAO,EAAW,MAAM,aAAa,CAAC;AAC/D,OAAO,EAIL,KAAK,YAAY,EAEjB,KAAK,MAAM,EAKZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,KAAK,QAAQ,EAAc,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAE/C;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAE3C;;;;;;;GAOG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,CAEnB;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAS,YAAW,MAAM;;IAMrC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,8CAA8C;IAC9C,YAAY,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAK5C;IAUD,iEAAiE;IACjE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,wEAAwE;IACxE,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,sEAAsE;IACtE,IAAI,KAAK,IAAI,UAAU,CAEtB;IAED,8BAA8B;IAC9B,UAAU,IAAI,IAAI,CAEjB;IAED;;;;;;;;OAQG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAErB;IAED,sFAAsF;IACtF,IAAI,MAAM,IAAI;QACZ,gFAAgF;QAChF,OAAO,EAAE,MAAM,CAAC;QAChB,4EAA4E;QAC5E,OAAO,EAAE,MAAM,CAAC;QAChB;;;;;WAKG;QACH,YAAY,EAAE,MAAM,CAAC;KACtB,CAMA;IAED,4EAA4E;IAC5E,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;;;;;;OAUG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAEtC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ,IAAI,gBAAgB,CAE/B;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAE7C;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAExC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,WAAW,IAAI,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAElD;IAED;;;;;;;OAOG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEvD;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAEvD;IAED,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAEhC;IAED,yDAAyD;IACnD,UAAU,CACd,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAEvB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,SAAS,CAAC,CAEpB;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,WAAW,CAqBnE;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAEzE;IAED;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,SAAS,CA2B5D;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,YAAY,CAG/D;IAED;;;;;;;;;;;OAWG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC,CAsBzB;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,cAAc,CAAC,YAAY,CAAC,CAMhE;IAED;;;;;;;;;;OAUG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GACxD,OAAO,CAAC,QAAQ,CAAC,CAEnB;IAED;;;;;;;;;;;;;;OAcG;IACG,SAAS,CAAC,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;IAoBD;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,cAAc,CAAC,WAAW,CAAC,CAE7B;IAED,2EAA2E;IAC3E,IAAI,SAAS,IAAI,UAAU,CAE1B;IAED,wDAAwD;IACxD,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
|