@univer-cli/unit-screenshot 1.0.0-beta.2
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 +100 -0
- package/README.zh-CN.md +107 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +125 -0
- package/dist/index.mjs +1 -0
- package/package.json +23 -0
package/README.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# @univer-cli/unit-screenshot
|
|
2
|
+
|
|
3
|
+
English | [简体中文](./README.zh-CN.md)
|
|
4
|
+
|
|
5
|
+
Renders a materialized Univer UnitData to one or more PNGs, returning the image bytes, dimensions, page identity, and suggested filename.
|
|
6
|
+
|
|
7
|
+
This is the preferred entry point for Sheet, Doc, Slide, Board, and Base screenshots. It handles target selection, pagination, scale, naming, and resource limits; `@univer-cli/univer-render-runtime` provides the underlying browser lifecycle.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm add @univer-cli/unit-screenshot @univer-cli/univer-render-runtime
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Also required:
|
|
16
|
+
|
|
17
|
+
- A Render Page built by the application.
|
|
18
|
+
- Chrome, Chromium, or Edge.
|
|
19
|
+
- UnitData materialized to an explicit content state.
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
First mount the Render Page in the browser entry:
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { createPresetRenderUniver, mountUniverRenderPage } from "@univer-cli/univer-render-page";
|
|
27
|
+
|
|
28
|
+
const container = document.querySelector<HTMLElement>("#app");
|
|
29
|
+
if (container === null) throw new Error("#app is required");
|
|
30
|
+
|
|
31
|
+
await mountUniverRenderPage({
|
|
32
|
+
container,
|
|
33
|
+
createUniver: createPresetRenderUniver,
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
After building the page, create runtime and screenshot capabilities in Node.js:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { fileURLToPath } from "node:url";
|
|
41
|
+
import { createUnitScreenshot } from "@univer-cli/unit-screenshot";
|
|
42
|
+
import { createUniverRenderRuntime } from "@univer-cli/univer-render-runtime";
|
|
43
|
+
|
|
44
|
+
const runtime = await createUniverRenderRuntime({
|
|
45
|
+
renderPageRoot: fileURLToPath(new URL("../dist/render-page", import.meta.url)),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
const screenshot = createUnitScreenshot({ runtime });
|
|
50
|
+
const result = await screenshot.capture({
|
|
51
|
+
unitType: "sheet",
|
|
52
|
+
unitData: workbookData,
|
|
53
|
+
target: {
|
|
54
|
+
kind: "sheet-range",
|
|
55
|
+
sheetName: "Data",
|
|
56
|
+
range: "B2:H40",
|
|
57
|
+
scale: 2,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
for (const image of result.images) {
|
|
62
|
+
await writePng(image.name, image.bytes);
|
|
63
|
+
}
|
|
64
|
+
} finally {
|
|
65
|
+
await runtime.close();
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The capability does not write files; the application implements `writePng`.
|
|
70
|
+
|
|
71
|
+
## Target
|
|
72
|
+
|
|
73
|
+
Omitting `target` selects the default content conforming to the Unit type:
|
|
74
|
+
|
|
75
|
+
| Unit | Default target |
|
|
76
|
+
| ----- | -------------------------------------- |
|
|
77
|
+
| Sheet | used range of active worksheet |
|
|
78
|
+
| Doc | All pages |
|
|
79
|
+
| Slide | All slide pages |
|
|
80
|
+
| Board | Content bounds containing all elements |
|
|
81
|
+
| Base | Active table/view after opening |
|
|
82
|
+
|
|
83
|
+
For precise control, select a Sheet range, Doc pages, Slide pages or contact sheet, Board region or elements, or Base table/view. Slide page numbers are one-based; page IDs are also accepted.
|
|
84
|
+
|
|
85
|
+
## External pictures
|
|
86
|
+
|
|
87
|
+
If an image in UnitData contains only a UUID, inject its bytes or data URL through `resolveImage`. The package traverses image references and creates a copy suitable for browser transport; it does not modify the caller's UnitData.
|
|
88
|
+
|
|
89
|
+
Use `formulaReferenceUnits` when the host Unit contains cross-Unit formulas. This is an optional enhancement and does not change the ordinary `unitType + unitData` screenshot contract.
|
|
90
|
+
|
|
91
|
+
## Results and limits
|
|
92
|
+
|
|
93
|
+
A capture may return multiple images. Each image contains PNG bytes, dimensions, page/target identity, and a stable suggested filename. Limits can constrain the page count, pixels per image, and total pixels to prevent accidental memory exhaustion. Scale must be between 0.1 and 4.
|
|
94
|
+
|
|
95
|
+
`UnitScreenshotError` is thrown when rendering fails, a target is invalid, an image cannot be parsed, or a limit is exceeded. The application should always close the shared render runtime at the outermost lifecycle boundary.
|
|
96
|
+
|
|
97
|
+
Use `@univer-cli/univer-render-runtime` when you need direct control over browser operations. For Slide layout diagnosis, use `@univer-cli/unit-layout-lint`.
|
|
98
|
+
|
|
99
|
+
For the preset command, see
|
|
100
|
+
[`@univer-cli/unit-screenshot-command`](../unit-screenshot-command/README.md).
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# @univer-cli/unit-screenshot
|
|
2
|
+
|
|
3
|
+
[English](./README.md) | 简体中文
|
|
4
|
+
|
|
5
|
+
把已经物化的 Univer UnitData 渲染为一个或多个 PNG,并返回图片 bytes、尺寸、页面身份和建议文件名。
|
|
6
|
+
|
|
7
|
+
这是 Sheet、Doc、Slide、Board 或 Base 截图的首选入口。它负责 target 选择、分页、scale、命名与资源限制;
|
|
8
|
+
底层 browser lifecycle 由 `@univer-cli/univer-render-runtime` 提供。
|
|
9
|
+
|
|
10
|
+
## 安装
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pnpm add @univer-cli/unit-screenshot @univer-cli/univer-render-runtime
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
还需要:
|
|
17
|
+
|
|
18
|
+
- application 构建的 Render Page;
|
|
19
|
+
- Chrome、Chromium 或 Edge;
|
|
20
|
+
- 已物化到明确 content state 的 UnitData。
|
|
21
|
+
|
|
22
|
+
## 快速开始
|
|
23
|
+
|
|
24
|
+
先在 browser entry 中挂载 Render Page:
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import { createPresetRenderUniver, mountUniverRenderPage } from "@univer-cli/univer-render-page";
|
|
28
|
+
|
|
29
|
+
const container = document.querySelector<HTMLElement>("#app");
|
|
30
|
+
if (container === null) throw new Error("#app is required");
|
|
31
|
+
|
|
32
|
+
await mountUniverRenderPage({
|
|
33
|
+
container,
|
|
34
|
+
createUniver: createPresetRenderUniver,
|
|
35
|
+
});
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
构建页面后,在 Node.js 中创建 runtime 与 screenshot capability:
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import { fileURLToPath } from "node:url";
|
|
42
|
+
import { createUnitScreenshot } from "@univer-cli/unit-screenshot";
|
|
43
|
+
import { createUniverRenderRuntime } from "@univer-cli/univer-render-runtime";
|
|
44
|
+
|
|
45
|
+
const runtime = await createUniverRenderRuntime({
|
|
46
|
+
renderPageRoot: fileURLToPath(new URL("../dist/render-page", import.meta.url)),
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
const screenshot = createUnitScreenshot({ runtime });
|
|
51
|
+
const result = await screenshot.capture({
|
|
52
|
+
unitType: "sheet",
|
|
53
|
+
unitData: workbookData,
|
|
54
|
+
target: {
|
|
55
|
+
kind: "sheet-range",
|
|
56
|
+
sheetName: "Data",
|
|
57
|
+
range: "B2:H40",
|
|
58
|
+
scale: 2,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
for (const image of result.images) {
|
|
63
|
+
await writePng(image.name, image.bytes);
|
|
64
|
+
}
|
|
65
|
+
} finally {
|
|
66
|
+
await runtime.close();
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Capability 不写文件;`writePng` 由 application 实现。
|
|
71
|
+
|
|
72
|
+
## Target
|
|
73
|
+
|
|
74
|
+
省略 `target` 时会选择符合 Unit 类型的默认内容:
|
|
75
|
+
|
|
76
|
+
| Unit | 默认 target |
|
|
77
|
+
| ----- | ------------------------------ |
|
|
78
|
+
| Sheet | active worksheet 的 used range |
|
|
79
|
+
| Doc | 全部页面 |
|
|
80
|
+
| Slide | 全部 slide pages |
|
|
81
|
+
| Board | 包含全部元素的 content bounds |
|
|
82
|
+
| Base | 打开后的 active table/view |
|
|
83
|
+
|
|
84
|
+
需要精确控制时,可选择 Sheet range、Doc pages、Slide pages/contact sheet、Board region/elements 或 Base
|
|
85
|
+
table/view。Slide page number 从 1 开始,也可使用 page ID。
|
|
86
|
+
|
|
87
|
+
## 外置图片
|
|
88
|
+
|
|
89
|
+
UnitData 中的图片如果只包含 UUID,需要通过 `resolveImage` 注入真实 bytes 或 data URL。Package 会先遍历图片
|
|
90
|
+
引用,再创建适合 browser transport 的副本;不会修改调用方传入的 UnitData。
|
|
91
|
+
|
|
92
|
+
Host Unit 包含跨 Unit 公式时,可提供 `formulaReferenceUnits`。这是可选增强,不改变普通截图只需
|
|
93
|
+
`unitType + unitData` 的合同。
|
|
94
|
+
|
|
95
|
+
## 结果与限制
|
|
96
|
+
|
|
97
|
+
一次 capture 可能返回多张图片。每张图片包含 PNG bytes、宽高、page/target identity 和稳定建议名称。Limits 可
|
|
98
|
+
约束 page 数、单图像素和总像素,防止意外输入耗尽内存。Scale 的允许范围为 0.1 到 4。
|
|
99
|
+
|
|
100
|
+
渲染失败、target 非法、图片无法解析或超过限制时抛出 `UnitScreenshotError`。Application 始终应在最外层关闭
|
|
101
|
+
共享 render runtime。
|
|
102
|
+
|
|
103
|
+
需要直接控制 browser operation 时使用 `@univer-cli/univer-render-runtime`;需要 Slide layout 诊断时使用
|
|
104
|
+
`@univer-cli/unit-layout-lint`。
|
|
105
|
+
|
|
106
|
+
预设 command 见
|
|
107
|
+
[`@univer-cli/unit-screenshot-command`](../unit-screenshot-command/README.zh-CN.md)。
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';module['exports']=require('./index.mjs');
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { UniverBoardLayoutAnalysis, UniverRenderRuntime, UniverRenderUnit } from "@univer-cli/univer-render-runtime";
|
|
2
|
+
//#region src/errors.d.ts
|
|
3
|
+
type UnitScreenshotErrorCode = "INVALID_INPUT" | "PAGE_LIMIT_EXCEEDED" | "PIXEL_LIMIT_EXCEEDED" | "RENDER_RESULT_INVALID" | "SCREENSHOT_ABORTED";
|
|
4
|
+
declare class UnitScreenshotError extends Error {
|
|
5
|
+
readonly code: UnitScreenshotErrorCode;
|
|
6
|
+
constructor(code: UnitScreenshotErrorCode, message: string, options?: ErrorOptions);
|
|
7
|
+
}
|
|
8
|
+
declare function isUnitScreenshotError(value: unknown): value is UnitScreenshotError;
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/types.d.ts
|
|
11
|
+
type UnitInput<TType extends UniverRenderUnit["unitType"]> = Extract<UniverRenderUnit, {
|
|
12
|
+
readonly unitType: TType;
|
|
13
|
+
}>;
|
|
14
|
+
type ScreenshotPageSelector = number | string;
|
|
15
|
+
interface ScreenshotBoundingBox {
|
|
16
|
+
readonly left: number;
|
|
17
|
+
readonly top: number;
|
|
18
|
+
readonly width: number;
|
|
19
|
+
readonly height: number;
|
|
20
|
+
}
|
|
21
|
+
type UnitScreenshotInput = ((UnitInput<"sheet"> & {
|
|
22
|
+
readonly target?: {
|
|
23
|
+
readonly kind: "sheet-viewport";
|
|
24
|
+
readonly scale?: number;
|
|
25
|
+
} | {
|
|
26
|
+
readonly kind: "sheet-range";
|
|
27
|
+
readonly range: string;
|
|
28
|
+
readonly scale?: number;
|
|
29
|
+
readonly sheetName?: string;
|
|
30
|
+
};
|
|
31
|
+
}) | (UnitInput<"doc"> & {
|
|
32
|
+
readonly target?: {
|
|
33
|
+
readonly kind: "doc-pages";
|
|
34
|
+
readonly pages?: readonly number[];
|
|
35
|
+
readonly scale?: number;
|
|
36
|
+
};
|
|
37
|
+
}) | (UnitInput<"slide"> & {
|
|
38
|
+
readonly target?: {
|
|
39
|
+
readonly contactSheet?: {
|
|
40
|
+
readonly tile?: {
|
|
41
|
+
readonly columns: number;
|
|
42
|
+
readonly rows: number;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
readonly kind: "slide-pages";
|
|
46
|
+
readonly pages?: readonly ScreenshotPageSelector[];
|
|
47
|
+
readonly scale?: number;
|
|
48
|
+
};
|
|
49
|
+
}) | (UnitInput<"board"> & {
|
|
50
|
+
readonly target?: {
|
|
51
|
+
readonly kind: "board-content";
|
|
52
|
+
readonly elementIds?: readonly string[];
|
|
53
|
+
readonly padding?: number;
|
|
54
|
+
readonly region?: ScreenshotBoundingBox;
|
|
55
|
+
readonly scale?: number;
|
|
56
|
+
};
|
|
57
|
+
}) | (UnitInput<"base"> & {
|
|
58
|
+
readonly target?: {
|
|
59
|
+
readonly kind: "base-view";
|
|
60
|
+
readonly scale?: number;
|
|
61
|
+
};
|
|
62
|
+
})) & {
|
|
63
|
+
readonly signal?: AbortSignal;
|
|
64
|
+
};
|
|
65
|
+
interface ScreenshotImage {
|
|
66
|
+
readonly boardSelector?: {
|
|
67
|
+
readonly kind: "region";
|
|
68
|
+
readonly region: ScreenshotBoundingBox;
|
|
69
|
+
} | {
|
|
70
|
+
readonly kind: "elements";
|
|
71
|
+
readonly elementIds: readonly string[];
|
|
72
|
+
};
|
|
73
|
+
readonly bytes: Uint8Array;
|
|
74
|
+
readonly contentBounds?: ScreenshotBoundingBox;
|
|
75
|
+
readonly height: number;
|
|
76
|
+
readonly mediaType: "image/png";
|
|
77
|
+
readonly name: string;
|
|
78
|
+
readonly layoutAnalysis?: UniverBoardLayoutAnalysis;
|
|
79
|
+
readonly padding?: number;
|
|
80
|
+
readonly page?: number;
|
|
81
|
+
readonly pageId?: string;
|
|
82
|
+
readonly range?: string;
|
|
83
|
+
readonly role?: "board-content" | "contact-slide";
|
|
84
|
+
readonly scale?: number;
|
|
85
|
+
readonly sheetName?: string;
|
|
86
|
+
readonly tiles?: number;
|
|
87
|
+
readonly width: number;
|
|
88
|
+
}
|
|
89
|
+
interface UnitScreenshotResult {
|
|
90
|
+
readonly images: readonly ScreenshotImage[];
|
|
91
|
+
readonly unitId: string;
|
|
92
|
+
readonly unitType: UniverRenderUnit["unitType"];
|
|
93
|
+
}
|
|
94
|
+
interface UnitScreenshotLimits {
|
|
95
|
+
readonly maxPages: number;
|
|
96
|
+
readonly maxPixels: number;
|
|
97
|
+
}
|
|
98
|
+
interface UnitScreenshotOptions {
|
|
99
|
+
readonly limits?: Partial<UnitScreenshotLimits>;
|
|
100
|
+
readonly runtime: UniverRenderRuntime;
|
|
101
|
+
}
|
|
102
|
+
interface UnitScreenshot {
|
|
103
|
+
capture(input: UnitScreenshotInput): Promise<UnitScreenshotResult>;
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/unit-screenshot.d.ts
|
|
107
|
+
declare function createUnitScreenshot(options: UnitScreenshotOptions): UnitScreenshot;
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region src/image-assets.d.ts
|
|
110
|
+
interface ScreenshotImageAssetResolveInput {
|
|
111
|
+
readonly declaredMediaType?: string;
|
|
112
|
+
readonly signal?: AbortSignal;
|
|
113
|
+
readonly source: string;
|
|
114
|
+
}
|
|
115
|
+
interface ScreenshotImageAsset {
|
|
116
|
+
readonly bytes: Uint8Array;
|
|
117
|
+
readonly contentLength?: number;
|
|
118
|
+
readonly mediaType: string;
|
|
119
|
+
}
|
|
120
|
+
interface ScreenshotImageAssetResolver {
|
|
121
|
+
resolve(input: ScreenshotImageAssetResolveInput): Promise<ScreenshotImageAsset | undefined>;
|
|
122
|
+
}
|
|
123
|
+
declare function resolveUnitScreenshotImageAssets(unit: UniverRenderUnit, resolver: ScreenshotImageAssetResolver, signal?: AbortSignal): Promise<UniverRenderUnit>;
|
|
124
|
+
//#endregion
|
|
125
|
+
export { type ScreenshotBoundingBox, type ScreenshotImage, type ScreenshotImageAsset, type ScreenshotImageAssetResolveInput, type ScreenshotImageAssetResolver, type ScreenshotPageSelector, type UnitScreenshot, UnitScreenshotError, type UnitScreenshotErrorCode, type UnitScreenshotInput, type UnitScreenshotLimits, type UnitScreenshotOptions, type UnitScreenshotResult, createUnitScreenshot, isUnitScreenshotError, resolveUnitScreenshotImageAssets };
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x340c5d=_0x44d6;(function(_0xc89423,_0x10aa08){const _0x5e6d65=_0x44d6,_0x5bb3c0=_0xc89423();while(!![]){try{const _0x3da4fb=parseInt(_0x5e6d65(0x224))/0x1*(parseInt(_0x5e6d65(0x26d))/0x2)+-parseInt(_0x5e6d65(0x279))/0x3+parseInt(_0x5e6d65(0x208))/0x4*(-parseInt(_0x5e6d65(0x1f8))/0x5)+parseInt(_0x5e6d65(0x246))/0x6*(parseInt(_0x5e6d65(0x204))/0x7)+-parseInt(_0x5e6d65(0x22d))/0x8*(parseInt(_0x5e6d65(0x236))/0x9)+parseInt(_0x5e6d65(0x1f1))/0xa*(-parseInt(_0x5e6d65(0x22a))/0xb)+parseInt(_0x5e6d65(0x257))/0xc;if(_0x3da4fb===_0x10aa08)break;else _0x5bb3c0['push'](_0x5bb3c0['shift']());}catch(_0x132d75){_0x5bb3c0['push'](_0x5bb3c0['shift']());}}}(_0x4734,0x39d53));import{Buffer as _0x407e21}from'node:buffer';var t=class extends Error{[_0x340c5d(0x227)];constructor(_0x502b3a,_0x54997e,_0x5a95ff){const _0x3b5066=_0x340c5d;super(_0x54997e,_0x5a95ff),this['name']=_0x3b5066(0x216),this['code']=_0x502b3a;}};function n(_0x1895cf){return _0x1895cf instanceof t;}function r(_0x5a8b31){const _0x1dcf12=_0x340c5d;let _0x573c67=/^([A-Za-z]+)(\d+)(?::([A-Za-z]+)(\d+))?$/u['exec'](_0x5a8b31['trim']());if(_0x573c67===null)throw new t(_0x1dcf12(0x1fd),_0x1dcf12(0x248)+_0x5a8b31);let _0x17b056=a(_0x573c67[0x1]),_0x49e183=Number(_0x573c67[0x2])-0x1,_0x58306b=_0x573c67[0x3]===void 0x0?_0x17b056:a(_0x573c67[0x3]),_0x3544de=_0x573c67[0x4]===void 0x0?_0x49e183:Number(_0x573c67[0x4])-0x1;if(_0x49e183<0x0||_0x3544de<_0x49e183||_0x58306b<_0x17b056)throw new t('INVALID_INPUT',_0x1dcf12(0x248)+_0x5a8b31);return{'endColumn':_0x58306b,'endRow':_0x3544de,'startColumn':_0x17b056,'startRow':_0x49e183};}function i(_0x313346){const _0x3068ac=_0x340c5d;let _0x4f26ad=''+o(_0x313346[_0x3068ac(0x1ec)])+(_0x313346[_0x3068ac(0x255)]+0x1),_0x3c44b6=''+o(_0x313346[_0x3068ac(0x223)])+(_0x313346['endRow']+0x1);return _0x4f26ad===_0x3c44b6?_0x4f26ad:_0x4f26ad+':'+_0x3c44b6;}function a(_0x276def){const _0x508efb=_0x340c5d;return[..._0x276def[_0x508efb(0x1e8)]()][_0x508efb(0x226)]((_0x384221,_0x31c8f4)=>_0x384221*0x1a+_0x31c8f4[_0x508efb(0x20b)](0x0)-0x40,0x0)-0x1;}function o(_0x1e7f13){const _0xf1aa28=_0x340c5d;let _0x383e8a=_0x1e7f13+0x1,_0x12a43e='';for(;_0x383e8a>0x0;){let _0x3300e4=(_0x383e8a-0x1)%0x1a;_0x12a43e=String[_0xf1aa28(0x233)](0x41+_0x3300e4)+_0x12a43e,_0x383e8a=Math[_0xf1aa28(0x242)]((_0x383e8a-0x1)/0x1a);}return _0x12a43e;}var s={'maxPages':0x1e,'maxPixels':0x1000000},c=0x2,l=0.1,u=0x4,d=0x18,f=0x58;function p(_0x1cf070){const _0x1b400c=_0x340c5d;let _0x45d343={...s,..._0x1cf070[_0x1b400c(0x262)]};return E(_0x45d343),{async 'capture'(_0x1dffaf){const _0x121f5d=_0x1b400c;I(_0x1dffaf[_0x121f5d(0x200)]);let _0x5e8e99=x(_0x1dffaf[_0x121f5d(0x21f)]),_0x151efc;switch(_0x1dffaf[_0x121f5d(0x264)]){case'sheet':_0x151efc=await m(_0x1cf070[_0x121f5d(0x269)],_0x1dffaf,_0x45d343);break;case _0x121f5d(0x202):_0x151efc=await h(_0x1cf070[_0x121f5d(0x269)],_0x1dffaf,_0x45d343);break;case _0x121f5d(0x238):_0x151efc=await g(_0x1cf070[_0x121f5d(0x269)],_0x1dffaf,_0x45d343);break;case _0x121f5d(0x215):_0x151efc=await _(_0x1cf070[_0x121f5d(0x269)],_0x1dffaf,_0x45d343);break;case _0x121f5d(0x209):_0x151efc=await v(_0x1cf070[_0x121f5d(0x269)],_0x1dffaf,_0x45d343);}return{'images':_0x151efc,'unitId':_0x5e8e99,'unitType':_0x1dffaf['unitType']};}};}async function m(_0x403c3d,_0x408af0,_0x1961df){const _0x2e5a0f=_0x340c5d;let _0x3d1522=_0x408af0['target']??{'kind':_0x2e5a0f(0x251)},_0x245afb=S(_0x3d1522[_0x2e5a0f(0x213)]),_0x2232d7=_0x3d1522[_0x2e5a0f(0x1f2)]===_0x2e5a0f(0x1f6)?r(_0x3d1522[_0x2e5a0f(0x25f)]):M(j(_0x408af0[_0x2e5a0f(0x21f)]),_0x1961df[_0x2e5a0f(0x270)],_0x245afb);if(N(_0x2232d7,_0x245afb)>_0x1961df['maxPixels'])throw new t(_0x2e5a0f(0x1eb),_0x2e5a0f(0x21d)+_0x1961df[_0x2e5a0f(0x270)]+_0x2e5a0f(0x22b));let _0x44470f=i(_0x2232d7),_0x333746=await _0x403c3d[_0x2e5a0f(0x220)]({'unitType':_0x2e5a0f(0x23d),'unitData':_0x408af0[_0x2e5a0f(0x21f)],..._0x408af0[_0x2e5a0f(0x254)]===void 0x0?{}:{'formulaReferenceUnits':_0x408af0[_0x2e5a0f(0x254)]},..._0x408af0[_0x2e5a0f(0x21e)]===void 0x0?{}:{'embeddedUnits':_0x408af0['embeddedUnits']},'operation':{'kind':'sheet-range','range':_0x44470f,'scale':_0x245afb,..._0x3d1522[_0x2e5a0f(0x1f2)]===_0x2e5a0f(0x1f6)&&_0x3d1522['sheetName']!==void 0x0?{'sheetName':_0x3d1522[_0x2e5a0f(0x228)]}:{}},..._0x408af0['signal']===void 0x0?{}:{'signal':_0x408af0['signal']}});T(_0x333746,_0x1961df);let _0x25af0b=_0x3d1522[_0x2e5a0f(0x1f2)]==='sheet-range'?_0x3d1522[_0x2e5a0f(0x228)]:P(_0x408af0[_0x2e5a0f(0x21f)]);return[b(_0x333746,{'name':_0x3d1522[_0x2e5a0f(0x1f2)]===_0x2e5a0f(0x251)?_0x2e5a0f(0x20e):''+(_0x25af0b===void 0x0?'':F(_0x25af0b)+'-')+F(_0x44470f)+'.png','range':_0x44470f,..._0x25af0b===void 0x0?{}:{'sheetName':_0x25af0b}})];}async function h(_0x48f9ab,_0x2099a3,_0x22ab9d){const _0x771947=_0x340c5d;let _0x1ed006=_0x2099a3['target']??{'kind':_0x771947(0x20c)},_0x3ac63b=S(_0x1ed006[_0x771947(0x213)]),_0x480c03=await _0x48f9ab[_0x771947(0x267)]({'unitType':_0x771947(0x202),'unitData':_0x2099a3[_0x771947(0x21f)],..._0x2099a3['formulaReferenceUnits']===void 0x0?{}:{'formulaReferenceUnits':_0x2099a3['formulaReferenceUnits']},..._0x2099a3[_0x771947(0x21e)]===void 0x0?{}:{'embeddedUnits':_0x2099a3[_0x771947(0x21e)]},..._0x2099a3[_0x771947(0x200)]===void 0x0?{}:{'signal':_0x2099a3[_0x771947(0x200)]}});return await y(C(_0x1ed006['pages']??w(Math[_0x771947(0x21a)](_0x480c03,_0x22ab9d[_0x771947(0x1f5)])),_0x480c03,_0x22ab9d),_0x2099a3[_0x771947(0x200)],_0x22ab9d,async _0xda1eba=>await _0x48f9ab['render']({'unitType':_0x771947(0x202),'unitData':_0x2099a3['unitData'],..._0x2099a3[_0x771947(0x254)]===void 0x0?{}:{'formulaReferenceUnits':_0x2099a3['formulaReferenceUnits']},..._0x2099a3['embeddedUnits']===void 0x0?{}:{'embeddedUnits':_0x2099a3['embeddedUnits']},'operation':{'kind':_0x771947(0x265),'page':_0xda1eba,'scale':_0x3ac63b},..._0x2099a3['signal']===void 0x0?{}:{'signal':_0x2099a3[_0x771947(0x200)]}}),_0x274607=>_0x274607===0x1?_0x771947(0x20e):A(_0x274607));}async function g(_0x518922,_0xee4ea5,_0x42d828){const _0x29643b=_0x340c5d;let _0x4c8e6e=_0xee4ea5['target']??{'kind':_0x29643b(0x253)},_0x20022a=S(_0x4c8e6e['scale']),_0xc2b0c5=_0xee4ea5[_0x29643b(0x21f)]['slideOrder']??[],_0x3201e3=C(O(_0x4c8e6e[_0x29643b(0x27a)]??w(_0xc2b0c5[_0x29643b(0x1ea)]),_0xc2b0c5),_0xc2b0c5[_0x29643b(0x1ea)],_0x42d828),_0x33e049=await y(_0x3201e3,_0xee4ea5[_0x29643b(0x200)],_0x42d828,async _0x5140d6=>await _0x518922[_0x29643b(0x220)]({'unitType':_0x29643b(0x238),'unitData':_0xee4ea5['unitData'],..._0xee4ea5[_0x29643b(0x254)]===void 0x0?{}:{'formulaReferenceUnits':_0xee4ea5[_0x29643b(0x254)]},..._0xee4ea5['embeddedUnits']===void 0x0?{}:{'embeddedUnits':_0xee4ea5[_0x29643b(0x21e)]},'operation':{'kind':_0x29643b(0x26e),'page':_0x5140d6,'scale':_0x20022a},..._0xee4ea5[_0x29643b(0x200)]===void 0x0?{}:{'signal':_0xee4ea5['signal']}}),A);if(_0x4c8e6e[_0x29643b(0x207)]===void 0x0)return _0x33e049;k(_0x4c8e6e['contactSheet'],_0x3201e3[_0x29643b(0x1ea)]);let _0x3de464=await _0x518922[_0x29643b(0x22f)]({'images':_0x33e049[_0x29643b(0x247)](_0x48de58=>({'bytes':_0x48de58[_0x29643b(0x23a)],'page':_0x48de58[_0x29643b(0x278)]})),..._0x4c8e6e['contactSheet'][_0x29643b(0x1fc)]===void 0x0?{}:{'tile':_0x4c8e6e[_0x29643b(0x207)][_0x29643b(0x1fc)]}});return T(_0x3de464,_0x42d828),[..._0x33e049,b(_0x3de464,{'name':'contact-slide.png','role':_0x29643b(0x218),'tiles':_0x33e049[_0x29643b(0x1ea)]})];}function _0x4734(){const _0x47220a=['toLowerCase','Board\x20render\x20result\x20is\x20missing\x20layout\x20evidence','screenshot\x20was\x20aborted','sheet-viewport','value','slide-pages','formulaReferenceUnits','startRow','indexOf','9987276GAHtdR','SCREENSHOT_ABORTED','endRow','changed','max','test','\x20cannot\x20hold\x20','board\x20region\x20and\x20elementIds\x20are\x20exclusive','range','board\x20region\x20must\x20have\x20a\x20positive\x20size','isInteger','limits','layoutAnalysis','unitType','doc-page','toString','getDocumentPageCount','keys','runtime','number','stringify','padStart','2cxbnYY','slide-page','image/png','maxPixels','byteLength','\x20page\x20limit','contact\x20sheet\x20tile\x20','contentBounds','\x20and\x20','\x20is\x20outside\x20the\x20available\x20range\x201..','columns','page','958782UZCKJU','pages','toUpperCase','trim','length','PIXEL_LIMIT_EXCEEDED','startColumn','parse','sheets','sourceKey','sheetOrder','10bVXnPS','kind','source','elements','maxPages','sheet-range','scale\x20must\x20be\x20between\x20','519565Nrddhq','BASE64','rowCount','data','tile','INVALID_INPUT','page\x20','push','signal',';base64,','doc','resources','256655sblMRQ','cellData','page-','contactSheet','8exfKVN','base','isFinite','charCodeAt','doc-pages','padding','view.png','declaredMediaType','slide\x20page\x20id\x20not\x20found:\x20','no\x20pages\x20to\x20capture','RENDER_RESULT_INVALID','scale','base64','board','UnitScreenshotError','target','contact-slide','entries','min','.png','board-content.png','sheet\x20range\x20exceeds\x20the\x20','embeddedUnits','unitData','render','mimeType','set','endColumn','222634dAbIli','unitData.id\x20is\x20required','reduce','code','sheetName','contentLength','4064522rtasET','\x20pixel\x20limit','board-content','8TfkCEN','isArray','composeContactSheet','pageId','board\x20padding\x20and\x20scale\x20require\x20a\x20region\x20or\x20elementIds\x20selector','from','fromCharCode','fillImageSourceType','board\x20padding\x20must\x20be\x20non-negative','3249738qpfpLA','get','slide','size','bytes','UUID','height','sheet','every','typeKey','aborted','rows','floor','reason','region','isSafeInteger','72jhiPEF','map','invalid\x20A1\x20range:\x20','elementIds','string','data:','split','maxPages\x20must\x20be\x20a\x20positive\x20integer'];_0x4734=function(){return _0x47220a;};return _0x4734();}async function _(_0x48ab16,_0x540906,_0x32e117){const _0x2c1034=_0x340c5d;let _0x393e86=_0x540906['target']??{'kind':_0x2c1034(0x22c)},_0x349b30=S(_0x393e86[_0x2c1034(0x213)],0x1);D(_0x393e86);let _0x5ea1a0=await _0x48ab16['render']({'unitType':'board','unitData':_0x540906[_0x2c1034(0x21f)],..._0x540906[_0x2c1034(0x254)]===void 0x0?{}:{'formulaReferenceUnits':_0x540906[_0x2c1034(0x254)]},..._0x540906[_0x2c1034(0x21e)]===void 0x0?{}:{'embeddedUnits':_0x540906[_0x2c1034(0x21e)]},'operation':{'kind':_0x2c1034(0x22c),'scale':_0x349b30,..._0x393e86[_0x2c1034(0x244)]===void 0x0?{}:{'region':_0x393e86[_0x2c1034(0x244)]},..._0x393e86[_0x2c1034(0x249)]===void 0x0?{}:{'elementIds':_0x393e86[_0x2c1034(0x249)]},..._0x393e86[_0x2c1034(0x20d)]===void 0x0?{}:{'padding':_0x393e86[_0x2c1034(0x20d)]}},..._0x540906['signal']===void 0x0?{}:{'signal':_0x540906[_0x2c1034(0x200)]}});if(T(_0x5ea1a0,_0x32e117),_0x5ea1a0[_0x2c1034(0x215)]===void 0x0)throw new t(_0x2c1034(0x212),_0x2c1034(0x24f));return[b(_0x5ea1a0,{'name':_0x2c1034(0x21c),'role':_0x2c1034(0x22c),'pageId':_0x5ea1a0[_0x2c1034(0x215)][_0x2c1034(0x230)],'contentBounds':_0x5ea1a0[_0x2c1034(0x215)][_0x2c1034(0x274)],'layoutAnalysis':_0x5ea1a0['board'][_0x2c1034(0x263)],'scale':_0x5ea1a0['board'][_0x2c1034(0x213)],..._0x393e86['region']===void 0x0?_0x393e86[_0x2c1034(0x249)]===void 0x0?{}:{'boardSelector':{'kind':_0x2c1034(0x1f4),'elementIds':_0x393e86['elementIds']}}:{'boardSelector':{'kind':_0x2c1034(0x244),'region':_0x393e86[_0x2c1034(0x244)]}},..._0x393e86['padding']===void 0x0?{}:{'padding':_0x393e86[_0x2c1034(0x20d)]}})];}async function v(_0x5ee6b5,_0x534f58,_0x1466fc){const _0x2893e0=_0x340c5d;let _0x37f326=_0x534f58[_0x2893e0(0x217)]??{'kind':'base-view'},_0x360c2b=await _0x5ee6b5['render']({'unitType':_0x2893e0(0x209),'unitData':_0x534f58[_0x2893e0(0x21f)],..._0x534f58['formulaReferenceUnits']===void 0x0?{}:{'formulaReferenceUnits':_0x534f58[_0x2893e0(0x254)]},..._0x534f58['embeddedUnits']===void 0x0?{}:{'embeddedUnits':_0x534f58[_0x2893e0(0x21e)]},'operation':{'kind':'base-view','scale':S(_0x37f326[_0x2893e0(0x213)])},..._0x534f58['signal']===void 0x0?{}:{'signal':_0x534f58[_0x2893e0(0x200)]}});return T(_0x360c2b,_0x1466fc),[b(_0x360c2b,{'name':'view.png'})];}async function y(_0x1c21a2,_0x366f66,_0x2b90be,_0x2f83b8,_0x23cb6b){const _0x5bbfef=_0x340c5d;let _0x291efd=[];for(let _0x5b8e1b of _0x1c21a2){I(_0x366f66);let _0x281e64=await _0x2f83b8(_0x5b8e1b);T(_0x281e64,_0x2b90be),_0x291efd[_0x5bbfef(0x1ff)](b(_0x281e64,{'name':_0x23cb6b(_0x5b8e1b),'page':_0x5b8e1b}));}return _0x291efd;}function b(_0x440736,_0x1528e5){const _0x239ba1=_0x340c5d;let {board:_0x53db59,..._0x54abea}=_0x440736;return{..._0x54abea,..._0x1528e5,'mediaType':_0x239ba1(0x26f)};}function x(_0x38f517){const _0x340dcd=_0x340c5d;if(typeof _0x38f517['id']!='string'||_0x38f517['id']['length']===0x0)throw new t(_0x340dcd(0x1fd),_0x340dcd(0x225));return _0x38f517['id'];}function S(_0x183656,_0x30f02e=c){const _0x586f77=_0x340c5d;let _0x1fdb76=_0x183656??_0x30f02e;if(!Number[_0x586f77(0x20a)](_0x1fdb76)||_0x1fdb76<l||_0x1fdb76>u)throw new t(_0x586f77(0x1fd),_0x586f77(0x1f7)+l+_0x586f77(0x275)+u);return _0x1fdb76;}function C(_0x1d95ee,_0x1caa66,_0x55375c){const _0x4cbc4b=_0x340c5d;if(_0x1d95ee[_0x4cbc4b(0x1ea)]===0x0)throw new t('INVALID_INPUT',_0x4cbc4b(0x211));let _0x17d45c=[...new Set(_0x1d95ee)];if(_0x17d45c[_0x4cbc4b(0x1ea)]>_0x55375c[_0x4cbc4b(0x1f5)])throw new t('PAGE_LIMIT_EXCEEDED','capture\x20selects\x20'+_0x17d45c[_0x4cbc4b(0x1ea)]+'\x20pages,\x20over\x20the\x20'+_0x55375c[_0x4cbc4b(0x1f5)]+_0x4cbc4b(0x272));for(let _0x43bf2e of _0x17d45c)if(!Number[_0x4cbc4b(0x261)](_0x43bf2e)||_0x43bf2e<0x1||_0x43bf2e>_0x1caa66)throw new t(_0x4cbc4b(0x1fd),_0x4cbc4b(0x1fe)+_0x43bf2e+_0x4cbc4b(0x276)+_0x1caa66);return _0x17d45c;}function w(_0xeeafdf){const _0x129179=_0x340c5d;return Array[_0x129179(0x232)]({'length':_0xeeafdf},(_0x4a9eab,_0x16517d)=>_0x16517d+0x1);}function T(_0x516124,_0xdbc712){const _0x950dd=_0x340c5d;if(_0x516124['width']*_0x516124[_0x950dd(0x23c)]>_0xdbc712[_0x950dd(0x270)])throw new t(_0x950dd(0x1eb),'rendered\x20image\x20exceeds\x20the\x20'+_0xdbc712[_0x950dd(0x270)]+_0x950dd(0x22b));}function E(_0x5733af){const _0x56b87e=_0x340c5d;if(!Number[_0x56b87e(0x261)](_0x5733af['maxPages'])||_0x5733af['maxPages']<0x1)throw new t(_0x56b87e(0x1fd),_0x56b87e(0x24d));if(!Number[_0x56b87e(0x261)](_0x5733af['maxPixels'])||_0x5733af[_0x56b87e(0x270)]<0x1)throw new t(_0x56b87e(0x1fd),'maxPixels\x20must\x20be\x20a\x20positive\x20integer');}function D(_0x2b07c3){const _0x277bce=_0x340c5d;if(_0x2b07c3[_0x277bce(0x244)]!==void 0x0&&_0x2b07c3[_0x277bce(0x249)]!==void 0x0)throw new t(_0x277bce(0x1fd),_0x277bce(0x25e));if(_0x2b07c3[_0x277bce(0x244)]===void 0x0&&_0x2b07c3[_0x277bce(0x249)]===void 0x0&&(_0x2b07c3['padding']!==void 0x0||_0x2b07c3[_0x277bce(0x213)]!==void 0x0))throw new t(_0x277bce(0x1fd),_0x277bce(0x231));if(_0x2b07c3[_0x277bce(0x244)]!==void 0x0){let {left:_0x4a2bc7,top:_0x3511c9,width:_0x2f2220,height:_0x3ff190}=_0x2b07c3[_0x277bce(0x244)];if(![_0x4a2bc7,_0x3511c9,_0x2f2220,_0x3ff190][_0x277bce(0x23e)](Number['isFinite'])||_0x2f2220<=0x0||_0x3ff190<=0x0)throw new t(_0x277bce(0x1fd),_0x277bce(0x260));}if(_0x2b07c3[_0x277bce(0x249)]!==void 0x0&&_0x2b07c3['elementIds']['length']===0x0)throw new t(_0x277bce(0x1fd),'board\x20elementIds\x20cannot\x20be\x20empty');if(_0x2b07c3['padding']!==void 0x0&&(!Number[_0x277bce(0x20a)](_0x2b07c3[_0x277bce(0x20d)])||_0x2b07c3[_0x277bce(0x20d)]<0x0))throw new t(_0x277bce(0x1fd),_0x277bce(0x235));}function O(_0x27da13,_0x30453b){const _0x7810b1=_0x340c5d;return _0x27da13[_0x7810b1(0x247)](_0x30950d=>{const _0x409a12=_0x7810b1;if(typeof _0x30950d==_0x409a12(0x26a))return _0x30950d;let _0x15a164=_0x30453b[_0x409a12(0x256)](_0x30950d);if(_0x15a164===-0x1)throw new t(_0x409a12(0x1fd),_0x409a12(0x210)+_0x30950d);return _0x15a164+0x1;});}function k(_0xc768de,_0x20b65b){const _0x510edc=_0x340c5d;let _0x92e507=_0xc768de[_0x510edc(0x1fc)];if(_0x92e507!==void 0x0){if(!Number[_0x510edc(0x261)](_0x92e507[_0x510edc(0x277)])||_0x92e507[_0x510edc(0x277)]<0x1||!Number[_0x510edc(0x261)](_0x92e507[_0x510edc(0x241)])||_0x92e507[_0x510edc(0x241)]<0x1)throw new t(_0x510edc(0x1fd),'contact\x20sheet\x20tile\x20columns\x20and\x20rows\x20must\x20be\x20positive\x20integers');if(_0x92e507[_0x510edc(0x277)]*_0x92e507['rows']<_0x20b65b)throw new t(_0x510edc(0x1fd),_0x510edc(0x273)+_0x92e507[_0x510edc(0x277)]+'x'+_0x92e507[_0x510edc(0x241)]+_0x510edc(0x25d)+_0x20b65b+'\x20pages');}}function A(_0x24ec1a){const _0x576c74=_0x340c5d;return _0x576c74(0x206)+String(_0x24ec1a)[_0x576c74(0x26c)](0x2,'0')+_0x576c74(0x21b);}function j(_0x2cc404){const _0x2183a1=_0x340c5d;let _0x422c24=_0x2cc404[_0x2183a1(0x1f0)]?.[0x0],_0x35a2da=_0x422c24===void 0x0?void 0x0:_0x2cc404['sheets']?.[_0x422c24],_0x3e01f7=-0x1,_0xd5c285=-0x1;for(let [_0x3c7e16,_0x290f72]of Object[_0x2183a1(0x219)](_0x35a2da?.[_0x2183a1(0x205)]??{})){let _0x40df7b=Object[_0x2183a1(0x268)](_0x290f72);if(_0x40df7b[_0x2183a1(0x1ea)]!==0x0){_0x3e01f7=Math['max'](_0x3e01f7,Number(_0x3c7e16));for(let _0x28d35e of _0x40df7b)_0xd5c285=Math[_0x2183a1(0x25b)](_0xd5c285,Number(_0x28d35e));}}let _0x3aa3df=_0x35a2da?.[_0x2183a1(0x1fa)]??0x2**0x35-0x1,_0x2f1a5c=_0x35a2da?.['columnCount']??0x2**0x35-0x1;return{'startRow':0x0,'startColumn':0x0,'endRow':Math[_0x2183a1(0x25b)](0x0,Math[_0x2183a1(0x21a)](_0x3e01f7<0x0?0x20:_0x3e01f7,_0x3aa3df-0x1)),'endColumn':Math[_0x2183a1(0x25b)](0x0,Math[_0x2183a1(0x21a)](_0xd5c285<0x0?0x10:_0xd5c285,_0x2f1a5c-0x1))};}function M(_0x155b56,_0x33978f,_0x54a839){const _0x2c62d5=_0x340c5d;let _0x1c0f19=_0x155b56[_0x2c62d5(0x223)]-_0x155b56[_0x2c62d5(0x1ec)]+0x1,_0x452b68=_0x155b56[_0x2c62d5(0x259)]-_0x155b56['startRow']+0x1,_0x335830=Math[_0x2c62d5(0x242)](_0x33978f/(_0x1c0f19*f*_0x54a839)/(d*_0x54a839));return _0x335830<0x1&&(_0x1c0f19=Math['max'](0x1,Math[_0x2c62d5(0x242)](_0x33978f/(f*_0x54a839)/(d*_0x54a839))),_0x335830=0x1),{..._0x155b56,'endColumn':_0x155b56[_0x2c62d5(0x1ec)]+_0x1c0f19-0x1,'endRow':_0x155b56[_0x2c62d5(0x255)]+Math[_0x2c62d5(0x21a)](_0x452b68,_0x335830)-0x1};}function _0x44d6(_0x353fe1,_0x233620){_0x353fe1=_0x353fe1-0x1e8;const _0x47341e=_0x4734();let _0x44d692=_0x47341e[_0x353fe1];return _0x44d692;}function N(_0x22043b,_0x150230){const _0x7c8afe=_0x340c5d;let _0x2b6b69=_0x22043b[_0x7c8afe(0x259)]-_0x22043b[_0x7c8afe(0x255)]+0x1,_0xa9cfdc=_0x22043b[_0x7c8afe(0x223)]-_0x22043b[_0x7c8afe(0x1ec)]+0x1;return _0x2b6b69*d*_0x150230*_0xa9cfdc*f*_0x150230;}function P(_0x230f5f){const _0x11c9c3=_0x340c5d;let _0x3e9d37=_0x230f5f['sheetOrder']?.[0x0];return _0x3e9d37===void 0x0?void 0x0:_0x230f5f[_0x11c9c3(0x1ee)]?.[_0x3e9d37]?.['name'];}function F(_0x4c2c64){return _0x4c2c64['replace'](/[^\p{L}\p{N}._-]+/gu,'-')['replace'](/^-+|-+$/gu,'');}function I(_0x4c2292){const _0x17ff6a=_0x340c5d;if(_0x4c2292?.[_0x17ff6a(0x240)]===!0x0)throw new t('SCREENSHOT_ABORTED',_0x17ff6a(0x250),{'cause':_0x4c2292['reason']});}function L(_0x378bb3,_0x5670c7,_0x32927d){const _0xf0567e=_0x340c5d;if(Array[_0xf0567e(0x22e)](_0x378bb3)){for(let _0x5bd5bd of _0x378bb3)L(_0x5bd5bd,_0x5670c7,_0x32927d);return;}if(K(_0x378bb3)){for(let _0x30f7e3 of H(_0x378bb3,_0x5670c7))_0x32927d(_0x30f7e3);B(_0x378bb3[_0xf0567e(0x203)],_0x5670c7,_0x32927d);for(let [_0x383949,_0x3e22b5]of Object[_0xf0567e(0x219)](_0x378bb3))_0x383949!=='resources'&&L(_0x3e22b5,_0x5670c7,_0x32927d);}}function R(_0x198013,_0x36ea0a,_0x1e7ddc,_0x2c707a){const _0x3b3482=_0x340c5d;return z(_0x198013,_0x36ea0a,_0x1e7ddc,_0x2c707a)[_0x3b3482(0x252)];}function z(_0x120b2f,_0xcb7b79,_0x351815,_0x297a9a){const _0x18c3ea=_0x340c5d;if(Array[_0x18c3ea(0x22e)](_0x120b2f)){let _0x166cad=!0x1,_0x35cca2=_0x120b2f['map'](_0x110f9c=>{const _0x1f62cb=_0x18c3ea;let _0x47b75f=z(_0x110f9c,_0xcb7b79,_0x351815,_0x297a9a);return _0x166cad||=_0x47b75f[_0x1f62cb(0x25a)],_0x47b75f['value'];});return _0x166cad?{'changed':!0x0,'value':_0x35cca2}:{'changed':!0x1,'value':_0x120b2f};}if(!K(_0x120b2f))return{'changed':!0x1,'value':_0x120b2f};let _0x2173b7=!0x1,_0x1db5f7={..._0x120b2f};for(let [_0x32a7a4,_0x16bcb0]of Object[_0x18c3ea(0x219)](_0x120b2f)){let _0x1e2ad9=_0x32a7a4===_0x18c3ea(0x203)?V(_0x16bcb0,_0xcb7b79,_0x351815,_0x297a9a):z(_0x16bcb0,_0xcb7b79,_0x351815,_0x297a9a);_0x1e2ad9[_0x18c3ea(0x25a)]&&(_0x2173b7=!0x0,_0x1db5f7[_0x32a7a4]=_0x1e2ad9[_0x18c3ea(0x252)]);}for(let _0x1b3573 of H(_0x120b2f,_0xcb7b79)){let _0x2a6707=_0x297a9a[_0x18c3ea(0x237)](_0x1b3573[_0x18c3ea(0x1f3)]);_0x2a6707!==void 0x0&&(_0x2173b7=!0x0,_0x1db5f7[_0x1b3573[_0x18c3ea(0x1ef)]]=_0x2a6707,_0x1db5f7[_0x1b3573[_0x18c3ea(0x23f)]]=_0x351815);}return _0x2173b7?{'changed':!0x0,'value':_0x1db5f7}:{'changed':!0x1,'value':_0x120b2f};}function B(_0x20bb84,_0x41025e,_0x5e7cc5){const _0x285710=_0x340c5d;if(Array['isArray'](_0x20bb84))for(let _0x3aabc0 of _0x20bb84){if(L(_0x3aabc0,_0x41025e,_0x5e7cc5),!K(_0x3aabc0)||typeof _0x3aabc0[_0x285710(0x1fb)]!=_0x285710(0x24a))continue;let _0x5d6e83=G(_0x3aabc0[_0x285710(0x1fb)]);_0x5d6e83!==void 0x0&&L(_0x5d6e83,_0x41025e,_0x5e7cc5);}}function V(_0x583c4a,_0x1c02b5,_0x390b49,_0x156ea5){const _0x46a77b=_0x340c5d;if(!Array[_0x46a77b(0x22e)](_0x583c4a))return z(_0x583c4a,_0x1c02b5,_0x390b49,_0x156ea5);let _0x3a8ece=!0x1,_0x4b7059=_0x583c4a[_0x46a77b(0x247)](_0xc44db6=>{const _0x30395c=_0x46a77b;let _0x24c094=z(_0xc44db6,_0x1c02b5,_0x390b49,_0x156ea5),_0x1eee2=_0x24c094[_0x30395c(0x252)],_0x440012=_0x24c094['changed'];if(K(_0xc44db6)&&typeof _0xc44db6[_0x30395c(0x1fb)]=='string'){let _0x5c72ef=G(_0xc44db6['data']);if(_0x5c72ef!==void 0x0){let _0x4182bc=z(_0x5c72ef,_0x1c02b5,_0x390b49,_0x156ea5);_0x4182bc[_0x30395c(0x25a)]&&(_0x1eee2={...K(_0x1eee2)?_0x1eee2:_0xc44db6,'data':JSON[_0x30395c(0x26b)](_0x4182bc[_0x30395c(0x252)])},_0x440012=!0x0);}}return _0x3a8ece||=_0x440012,_0x1eee2;});return _0x3a8ece?{'changed':!0x0,'value':_0x4b7059}:{'changed':!0x1,'value':_0x583c4a};}function H(_0x43768e,_0x5510e7){const _0x4fd777=_0x340c5d;let _0x3ec653=[];return U(_0x3ec653,_0x43768e,_0x5510e7,'source','imageSourceType',!0x1),U(_0x3ec653,_0x43768e,_0x5510e7,'fillImageSource',_0x4fd777(0x234),!0x1),U(_0x3ec653,_0x43768e,_0x5510e7,'source','sourceType',!0x0),_0x3ec653;}function U(_0x40014e,_0x4b4989,_0x3506e0,_0x330487,_0x1e5da5,_0x97b81c){const _0x4cfe83=_0x340c5d;let _0x3e2b81=_0x4b4989[_0x330487];if(_0x4b4989[_0x1e5da5]!==_0x3506e0||typeof _0x3e2b81!=_0x4cfe83(0x24a)||_0x3e2b81[_0x4cfe83(0x1ea)]===0x0)return;let _0x273696=_0x4b4989[_0x4cfe83(0x221)];_0x97b81c&&typeof _0x273696==_0x4cfe83(0x24a)&&W(_0x273696)===void 0x0||_0x40014e[_0x4cfe83(0x1ff)]({...typeof _0x273696==_0x4cfe83(0x24a)?{'declaredMediaType':_0x273696}:{},'source':_0x3e2b81,'sourceKey':_0x330487,'typeKey':_0x1e5da5});}function W(_0x1d8526){const _0x537ec1=_0x340c5d;let _0x2c5fd9=_0x1d8526[_0x537ec1(0x24c)](';',0x1)[0x0]?.[_0x537ec1(0x1e9)]()[_0x537ec1(0x24e)]();return _0x2c5fd9!==void 0x0&&/^image\/[a-z0-9][a-z0-9.+-]*$/u['test'](_0x2c5fd9)?_0x2c5fd9:void 0x0;}function G(_0x50dd7f){const _0x113eda=_0x340c5d;try{return JSON[_0x113eda(0x1ed)](_0x50dd7f);}catch{return;}}function K(_0x3a268f){const _0x35db88=_0x340c5d;return typeof _0x3a268f=='object'&&!!_0x3a268f&&!Array[_0x35db88(0x22e)](_0x3a268f);}async function q(_0x3f03eb,_0x132d47,_0x4d6645){const _0x3af5bf=_0x340c5d;Q(_0x4d6645);let _0x288558=J(_0x3f03eb);if(_0x288558[_0x3af5bf(0x239)]===0x0)return _0x3f03eb;let _0x4a0da0=new Map();for(let _0x129285 of _0x288558['values']()){Q(_0x4d6645);try{let _0x46d386=await _0x132d47['resolve']({..._0x129285[_0x3af5bf(0x20f)]===void 0x0?{}:{'declaredMediaType':_0x129285['declaredMediaType']},..._0x4d6645===void 0x0?{}:{'signal':_0x4d6645},'source':_0x129285[_0x3af5bf(0x1f3)]});Q(_0x4d6645);let _0x4bbb5b=_0x46d386===void 0x0?void 0x0:X(_0x46d386);_0x4bbb5b!==void 0x0&&_0x4a0da0['set'](_0x129285[_0x3af5bf(0x1f3)],_0x4bbb5b);}catch(_0x434f5f){if(_0x4d6645?.[_0x3af5bf(0x240)]===!0x0)throw $(_0x434f5f,_0x4d6645);}}return _0x4a0da0['size']===0x0?_0x3f03eb:Y(_0x3f03eb,_0x4a0da0);}function J(_0x5e74e7){const _0x50dc6d=_0x340c5d;let _0x37825d=new Map(),_0x15539f=_0x59cc8a=>{const _0x1e645b=_0x44d6;L(_0x59cc8a[_0x1e645b(0x21f)],'UUID',_0x4e2b15=>{const _0xaa30ad=_0x1e645b;let _0xe114d5=_0x37825d[_0xaa30ad(0x237)](_0x4e2b15['source']);(_0xe114d5===void 0x0||_0xe114d5[_0xaa30ad(0x20f)]===void 0x0)&&_0x37825d[_0xaa30ad(0x222)](_0x4e2b15[_0xaa30ad(0x1f3)],{..._0x4e2b15[_0xaa30ad(0x20f)]===void 0x0?{}:{'declaredMediaType':_0x4e2b15[_0xaa30ad(0x20f)]},'source':_0x4e2b15['source']});});};_0x15539f(_0x5e74e7);for(let _0x3c3e45 of _0x5e74e7[_0x50dc6d(0x254)]??[])_0x15539f(_0x3c3e45);for(let _0x18a26e of _0x5e74e7[_0x50dc6d(0x21e)]??[])_0x15539f(_0x18a26e);return _0x37825d;}function Y(_0x17973a,_0x3ef05b){const _0x3fac1e=_0x340c5d;let _0x1ba505=R(_0x17973a[_0x3fac1e(0x21f)],_0x3fac1e(0x23b),'BASE64',_0x3ef05b),_0x31e42d=_0x17973a['formulaReferenceUnits']?.[_0x3fac1e(0x247)](_0x22501a=>({..._0x22501a,'unitData':R(_0x22501a[_0x3fac1e(0x21f)],_0x3fac1e(0x23b),_0x3fac1e(0x1f9),_0x3ef05b)})),_0xae7713=_0x17973a['embeddedUnits']?.[_0x3fac1e(0x247)](_0x1ffafc=>({..._0x1ffafc,'unitData':R(_0x1ffafc[_0x3fac1e(0x21f)],_0x3fac1e(0x23b),_0x3fac1e(0x1f9),_0x3ef05b)}));return{..._0x17973a,'unitData':_0x1ba505,..._0x31e42d===void 0x0?{}:{'formulaReferenceUnits':_0x31e42d},..._0xae7713===void 0x0?{}:{'embeddedUnits':_0xae7713}};}function X(_0xa920){const _0x235539=_0x340c5d;let _0x121b2b=Z(_0xa920['mediaType']);if(!(_0x121b2b===void 0x0||_0xa920[_0x235539(0x23a)][_0x235539(0x271)]===0x0||_0xa920[_0x235539(0x229)]!==void 0x0&&(!Number[_0x235539(0x245)](_0xa920[_0x235539(0x229)])||_0xa920[_0x235539(0x229)]<0x0||_0xa920[_0x235539(0x229)]!==_0xa920[_0x235539(0x23a)][_0x235539(0x271)])))return _0x235539(0x24b)+_0x121b2b+_0x235539(0x201)+_0x407e21['from'](_0xa920[_0x235539(0x23a)])[_0x235539(0x266)](_0x235539(0x214));}function Z(_0x4494a5){const _0x2c7581=_0x340c5d;let _0x27376a=_0x4494a5[_0x2c7581(0x24c)](';',0x1)[0x0]?.[_0x2c7581(0x1e9)]()['toLowerCase']();return _0x27376a!==void 0x0&&/^image\/[a-z0-9][a-z0-9.+-]*$/u[_0x2c7581(0x25c)](_0x27376a)?_0x27376a:void 0x0;}function Q(_0x61e266){const _0x592d00=_0x340c5d;if(_0x61e266?.[_0x592d00(0x240)]===!0x0)throw $(_0x61e266['reason'],_0x61e266);}function $(_0x4d960f,_0x505978){const _0x451e53=_0x340c5d;return new t(_0x451e53(0x258),_0x451e53(0x250),{'cause':_0x505978[_0x451e53(0x243)]??_0x4d960f});}export{t as UnitScreenshotError,p as createUnitScreenshot,n as isUnitScreenshotError,q as resolveUnitScreenshotImageAssets};
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@univer-cli/unit-screenshot",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "1.0.0-beta.2",
|
|
5
|
+
"main": "./dist/index.cjs",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.cjs"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"README.md",
|
|
18
|
+
"README.zh-CN.md"
|
|
19
|
+
],
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@univer-cli/univer-render-runtime": "1.0.0-beta.2"
|
|
22
|
+
}
|
|
23
|
+
}
|