@jetprint/editor-sdk 1.0.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/dist/assets/perspective.wasm +0 -0
- package/dist/assets/wasm_exec.js +553 -0
- package/dist/components/Editor/assets/editorIcons.d.ts +32 -0
- package/dist/components/Editor/components/CanvasSection.vue.d.ts +253 -0
- package/dist/components/Editor/components/CanvasZoomToolbar.vue.d.ts +23 -0
- package/dist/components/Editor/components/EditorAddToCartDialog.vue.d.ts +28 -0
- package/dist/components/Editor/components/EditorDefaultCanvasAxisLines.vue.d.ts +34 -0
- package/dist/components/Editor/components/EditorDefaultCanvasRulers.vue.d.ts +44 -0
- package/dist/components/Editor/components/EditorIcon.vue.d.ts +7 -0
- package/dist/components/Editor/components/EditorSelectionShortcutFab.vue.d.ts +56 -0
- package/dist/components/Editor/components/EditorSidebar.vue.d.ts +548 -0
- package/dist/components/Editor/components/EditorTopbar.vue.d.ts +363 -0
- package/dist/components/Editor/components/EditorTopbarMockupScope.vue.d.ts +12 -0
- package/dist/components/Editor/components/GalleryPanel.vue.d.ts +9 -0
- package/dist/components/Editor/components/LiveThreePreviewPane.vue.d.ts +30 -0
- package/dist/components/Editor/components/PreviewPanel.vue.d.ts +312 -0
- package/dist/components/Editor/components/ShortcutSettingsModal.vue.d.ts +11 -0
- package/dist/components/Editor/components/SplitPieceHandAlignPanel.vue.d.ts +14 -0
- package/dist/components/Editor/components/TemplateModal.vue.d.ts +35 -0
- package/dist/components/Editor/components/Theme1AddTextPanel.vue.d.ts +190 -0
- package/dist/components/Editor/components/Theme1UploadPanel.vue.d.ts +120 -0
- package/dist/components/Editor/composables/index.d.ts +56 -0
- package/dist/components/Editor/composables/useCanvasEventWiring.d.ts +40 -0
- package/dist/components/Editor/composables/useCanvasHistory.d.ts +18 -0
- package/dist/components/Editor/composables/useCanvasManager.d.ts +29 -0
- package/dist/components/Editor/composables/useCanvasObjectHelpers.d.ts +34 -0
- package/dist/components/Editor/composables/useCanvasStateByDiecut.d.ts +50 -0
- package/dist/components/Editor/composables/useCanvasViewport.d.ts +89 -0
- package/dist/components/Editor/composables/useClearCanvas.d.ts +32 -0
- package/dist/components/Editor/composables/useCompleteScreenshot.d.ts +68 -0
- package/dist/components/Editor/composables/useCopyToDiecuts.d.ts +56 -0
- package/dist/components/Editor/composables/useDiecutManager.d.ts +46 -0
- package/dist/components/Editor/composables/useDiecutScreenshot.d.ts +50 -0
- package/dist/components/Editor/composables/useDownloadPng.d.ts +11 -0
- package/dist/components/Editor/composables/useEditorReset.d.ts +21 -0
- package/dist/components/Editor/composables/useEditorShortcuts.d.ts +80 -0
- package/dist/components/Editor/composables/useEditorTopbarContext.d.ts +3 -0
- package/dist/components/Editor/composables/useEditorWatchers.d.ts +99 -0
- package/dist/components/Editor/composables/useEventHandlers.d.ts +13 -0
- package/dist/components/Editor/composables/useFontLoader.d.ts +8 -0
- package/dist/components/Editor/composables/useGuideResources.d.ts +38 -0
- package/dist/components/Editor/composables/useImageHandler.d.ts +10 -0
- package/dist/components/Editor/composables/useLayerOperations.d.ts +52 -0
- package/dist/components/Editor/composables/useLayerSync.d.ts +32 -0
- package/dist/components/Editor/composables/useLicense.d.ts +11 -0
- package/dist/components/Editor/composables/useObjectAdder.d.ts +76 -0
- package/dist/components/Editor/composables/usePatternHandler.d.ts +31 -0
- package/dist/components/Editor/composables/usePreviewManager.d.ts +240 -0
- package/dist/components/Editor/composables/usePreviewRenderer.d.ts +111 -0
- package/dist/components/Editor/composables/usePreviewUpdateQueue.d.ts +62 -0
- package/dist/components/Editor/composables/useProductData.d.ts +166 -0
- package/dist/components/Editor/composables/useSplitPieceHandTool.d.ts +34 -0
- package/dist/components/Editor/composables/useTemplateLoader.d.ts +36 -0
- package/dist/components/Editor/composables/useTemplateManager.d.ts +48 -0
- package/dist/components/Editor/composables/useTextHandler.d.ts +19 -0
- package/dist/components/Editor/composables/useToolState.d.ts +101 -0
- package/dist/components/Editor/composables/useToolStateSync.d.ts +49 -0
- package/dist/components/Editor/composables/useWorkerManager.d.ts +11 -0
- package/dist/components/Editor/config/fontConfig.d.ts +8 -0
- package/dist/components/Editor/editorCanvasGuides.d.ts +22 -0
- package/dist/components/Editor/fabric/PatternLayer.d.ts +104 -0
- package/dist/components/Editor/index.vue.d.ts +167 -0
- package/dist/components/Editor/liveRender/ThreeRenderViewer.vue.d.ts +31 -0
- package/dist/components/Editor/liveRender/dataAdapter.d.ts +2 -0
- package/dist/components/Editor/liveRender/prefetch.worker.d.ts +15 -0
- package/dist/components/Editor/liveRender/render.worker.d.ts +1 -0
- package/dist/components/Editor/liveRender/types.d.ts +130 -0
- package/dist/components/Editor/utils/blob.d.ts +5 -0
- package/dist/components/Editor/utils/buildSplitPieceDesignClipBlobs.d.ts +75 -0
- package/dist/components/Editor/utils/colorLabels.d.ts +6 -0
- package/dist/components/Editor/utils/dataBuilders.d.ts +108 -0
- package/dist/components/Editor/utils/designRestoreScale.d.ts +42 -0
- package/dist/components/Editor/utils/editorShortcutChord.d.ts +9 -0
- package/dist/components/Editor/utils/editorShortcutIds.d.ts +2 -0
- package/dist/components/Editor/utils/editorShortcutRegistry.d.ts +15 -0
- package/dist/components/Editor/utils/editorSizeOptions.d.ts +27 -0
- package/dist/components/Editor/utils/fabricMainCanvasSnapshot.d.ts +48 -0
- package/dist/components/Editor/utils/fabricRulerMath.d.ts +35 -0
- package/dist/components/Editor/utils/fabricScreenshotToBlob.d.ts +7 -0
- package/dist/components/Editor/utils/imageLoader.d.ts +10 -0
- package/dist/components/Editor/utils/objectUtils.d.ts +11 -0
- package/dist/components/Editor/utils/pattern.d.ts +56 -0
- package/dist/components/Editor/utils/scaleSplitClassicGridVisual.d.ts +9 -0
- package/dist/components/Editor/utils/screenshot.d.ts +8 -0
- package/dist/components/Editor/utils/selectionVisual.d.ts +7 -0
- package/dist/components/Editor/utils/tintMaskWithColor.d.ts +4 -0
- package/dist/components/Editor/utils/uploadLimit.d.ts +4 -0
- package/dist/components/Editor/workers/copyDiecuts.worker.d.ts +38 -0
- package/dist/components/Editor/workers/maskWorker.d.ts +13 -0
- package/dist/components/Editor/workers/renderWorker.d.ts +1 -0
- package/dist/components/Editor/workers/zoneScreenshotWorker.d.ts +49 -0
- package/dist/composables/useEditorI18n.d.ts +18 -0
- package/dist/copyDiecuts.worker.js +67 -0
- package/dist/deform.worker.js +760 -0
- package/dist/editor-sdk.es.js +73923 -0
- package/dist/index.d.ts +446 -0
- package/dist/locales/builtin-messages.d.ts +2 -0
- package/dist/locales/editor-locales.d.ts +7 -0
- package/dist/locales/en.d.ts +5 -0
- package/dist/locales/ja-JP.d.ts +5 -0
- package/dist/locales/ko-KR.d.ts +5 -0
- package/dist/locales/vi-VN.d.ts +5 -0
- package/dist/locales/zh.d.ts +5 -0
- package/dist/maskWorker.js +51 -0
- package/dist/prefetch.worker.js +16 -0
- package/dist/render.worker.js +27266 -0
- package/dist/renderWorker.js +40368 -0
- package/dist/style.css +1 -0
- package/dist/types.d.ts +483 -0
- package/dist/utils/backgroundRenderer.d.ts +64 -0
- package/dist/utils/encryptJson.d.ts +31 -0
- package/dist/utils/environment.d.ts +29 -0
- package/dist/utils/errorHandler.d.ts +27 -0
- package/dist/utils/fileToken.d.ts +18 -0
- package/dist/utils/http.d.ts +31 -0
- package/dist/utils/jsonFileCache.d.ts +6 -0
- package/dist/utils/license/api.d.ts +74 -0
- package/dist/utils/license/deviceId.d.ts +25 -0
- package/dist/utils/license/index.d.ts +9 -0
- package/dist/utils/license/licenseManager.d.ts +63 -0
- package/dist/utils/license/licenseStore.d.ts +17 -0
- package/dist/utils/license/retry.d.ts +11 -0
- package/dist/utils/license/tokenRefresh.d.ts +34 -0
- package/dist/utils/mediaBlobCache.d.ts +6 -0
- package/dist/utils/protection/encryptedModules.generated.d.ts +27 -0
- package/dist/utils/protection/moduleLoader.d.ts +17 -0
- package/dist/utils/renderService/blend.d.ts +4 -0
- package/dist/utils/renderService/deform.d.ts +21 -0
- package/dist/utils/renderService/deform.worker.d.ts +7 -0
- package/dist/utils/renderService/image.d.ts +8 -0
- package/dist/utils/renderService/index.d.ts +12 -0
- package/dist/utils/renderService/mask.d.ts +13 -0
- package/dist/utils/renderService/prepareRenderData.d.ts +2 -0
- package/dist/utils/renderService/psdConverter.d.ts +6 -0
- package/dist/utils/renderService/render.d.ts +14 -0
- package/dist/utils/renderService/render.worker.d.ts +17 -0
- package/dist/utils/renderService/types.d.ts +236 -0
- package/dist/utils/renderService/workerManager.d.ts +33 -0
- package/dist/utils/renderedImagesDB.d.ts +61 -0
- package/dist/utils/storage.d.ts +27 -0
- package/dist/utils/threeRenderService/index.d.ts +6 -0
- package/dist/utils/url.d.ts +39 -0
- package/dist/utils/workerBase.d.ts +38 -0
- package/dist/utils/workerLoader.d.ts +24 -0
- package/dist/wasm/index.d.ts +5 -0
- package/dist/wasm/perspectiveLoader.d.ts +70 -0
- package/dist/wasm/perspectiveLoader.worker.d.ts +116 -0
- package/dist/zoneScreenshotWorker.js +82 -0
- package/package.json +54 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
type Vec2 = {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
};
|
|
5
|
+
type CopyDiecutsWorkerRequest = {
|
|
6
|
+
id: number;
|
|
7
|
+
sourceObjects: any[];
|
|
8
|
+
targetJsonMap: Record<string, any>;
|
|
9
|
+
objectIndex: number;
|
|
10
|
+
targetScaleMap?: Record<string, number>;
|
|
11
|
+
/** 源分片在画布上 contain-fit 矩形中心;与 targetCenterMap 配合按"在分片内的相对位置"映射 */
|
|
12
|
+
sourceCenter?: Vec2;
|
|
13
|
+
/** 各目标分片在画布上 contain-fit 矩形中心 */
|
|
14
|
+
targetCenterMap?: Record<string, Vec2>;
|
|
15
|
+
/** 兜底:sourceCenter/targetCenter 缺失时使用旧的整组居中点 */
|
|
16
|
+
canvasCenter?: Vec2;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* 克隆一个对象到目标分片:
|
|
20
|
+
* - 缩放保持原 contain-fit 比例换算(scaleFactor)。
|
|
21
|
+
* - 位置按"在源分片内的相对位置"映射到目标分片对应位置(sourceCenter → targetCenter)。
|
|
22
|
+
*/
|
|
23
|
+
declare const cloneForCopy: (obj: any, startId: number, scaleFactor: number, sourceCenter?: Vec2, targetCenter?: Vec2) => {
|
|
24
|
+
cloned: any;
|
|
25
|
+
nextId: number;
|
|
26
|
+
};
|
|
27
|
+
declare const resolveOriginValue: (origin: string) => number;
|
|
28
|
+
declare const getObjectAABB: (o: any) => {
|
|
29
|
+
minL: number;
|
|
30
|
+
minT: number;
|
|
31
|
+
maxR: number;
|
|
32
|
+
maxB: number;
|
|
33
|
+
};
|
|
34
|
+
declare const centerGroup: (objects: any[], cx: number, cy: number) => void;
|
|
35
|
+
declare const processCopy: (payload: CopyDiecutsWorkerRequest) => {
|
|
36
|
+
updates: Record<string, any>;
|
|
37
|
+
nextObjectIndex: number;
|
|
38
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type MaskWorkerRequest = {
|
|
2
|
+
id: number;
|
|
3
|
+
baseBlob: Blob;
|
|
4
|
+
maskBlob: Blob;
|
|
5
|
+
maskWidth: number;
|
|
6
|
+
maskHeight: number;
|
|
7
|
+
left: number;
|
|
8
|
+
top: number;
|
|
9
|
+
canvasWidth: number;
|
|
10
|
+
canvasHeight: number;
|
|
11
|
+
};
|
|
12
|
+
declare const loadBitmap: (blob: Blob) => Promise<ImageBitmap>;
|
|
13
|
+
declare const cropAndMask: (payload: MaskWorkerRequest) => Promise<Blob | null>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zone 截图 Worker(轻量版)
|
|
3
|
+
* 只做最耗时的操作:逆 viewport 变换 + createImageBitmap 缩放
|
|
4
|
+
* Zone 裁切/mask 等轻量操作保留在主线程
|
|
5
|
+
*/
|
|
6
|
+
type ExportExt = {
|
|
7
|
+
minL: number;
|
|
8
|
+
minT: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
};
|
|
12
|
+
type TransformBitmapRequest = {
|
|
13
|
+
id: number;
|
|
14
|
+
type: 'TRANSFORM_BITMAP';
|
|
15
|
+
baseBitmap: ImageBitmap;
|
|
16
|
+
viewportTransform: number[];
|
|
17
|
+
canvasWidth: number;
|
|
18
|
+
canvasHeight: number;
|
|
19
|
+
exportExt: ExportExt;
|
|
20
|
+
multiplier: number;
|
|
21
|
+
};
|
|
22
|
+
type TransformBitmapResponse = {
|
|
23
|
+
id: number;
|
|
24
|
+
type: 'TRANSFORM_BITMAP_RESULT';
|
|
25
|
+
bitmap: ImageBitmap;
|
|
26
|
+
};
|
|
27
|
+
type ErrorResponse = {
|
|
28
|
+
id: number;
|
|
29
|
+
type: 'ERROR';
|
|
30
|
+
error: string;
|
|
31
|
+
};
|
|
32
|
+
type EncodeWebpRequest = {
|
|
33
|
+
id: number;
|
|
34
|
+
type: 'ENCODE_WEBP';
|
|
35
|
+
bitmap: ImageBitmap;
|
|
36
|
+
quality: number;
|
|
37
|
+
};
|
|
38
|
+
type EncodeWebpResponse = {
|
|
39
|
+
id: number;
|
|
40
|
+
type: 'ENCODE_WEBP_RESULT';
|
|
41
|
+
blob: Blob;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* 在 Worker 内用 OffscreenCanvas.convertToBlob 编码 webp。
|
|
45
|
+
* 主线程 canvas.toBlob('image/webp') 是阻塞计算(实测切换分片单次 ~1100ms),
|
|
46
|
+
* 挪到 worker 后主线程零阻塞,只剩传 bitmap 给 worker 的几 ms 开销。
|
|
47
|
+
*/
|
|
48
|
+
declare function processEncodeWebp(payload: EncodeWebpRequest): Promise<EncodeWebpResponse>;
|
|
49
|
+
declare function processTransformBitmap(payload: TransformBitmapRequest): Promise<TransformBitmapResponse>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK 编辑器内建 i18n
|
|
3
|
+
* 通过 inject 获取 Editor 根组件 provide 的 locale 与 messages,提供 t(key) 用于多语言切换
|
|
4
|
+
*/
|
|
5
|
+
import { type Ref, type ComputedRef } from 'vue';
|
|
6
|
+
import zhCN from '../locales/zh';
|
|
7
|
+
import enUS from '../locales/en';
|
|
8
|
+
export declare function useEditorI18n(): {
|
|
9
|
+
t: (key: string) => string;
|
|
10
|
+
locale: string | ComputedRef<string> | Ref<string, string>;
|
|
11
|
+
messages: Record<string, string> | ComputedRef<Record<string, string>> | Ref<Record<string, string>, Record<string, string>>;
|
|
12
|
+
};
|
|
13
|
+
export declare function getEditorI18nKeys(): {
|
|
14
|
+
provideLocaleKey: string;
|
|
15
|
+
provideMessagesKey: string;
|
|
16
|
+
};
|
|
17
|
+
/** 兼容旧版:等同 zh-CN / en-US 内置包 */
|
|
18
|
+
export { zhCN as defaultZh, enUS as defaultEn };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const B = (t, i, s, c, r) => {
|
|
2
|
+
const n = JSON.parse(JSON.stringify(t));
|
|
3
|
+
n.customData || (n.customData = {}), n.customData.id = i;
|
|
4
|
+
const a = C(n), f = (a.minL + a.maxR) / 2, l = (a.minT + a.maxB) / 2, o = !!n.customData?.isPatternRect;
|
|
5
|
+
if (s !== 1 && !o && (n.scaleX = (n.scaleX ?? 1) * s, n.scaleY = (n.scaleY ?? 1) * s), c && r) {
|
|
6
|
+
const e = C(n), x = (e.minL + e.maxR) / 2, g = (e.minT + e.maxB) / 2, p = r.x + (f - c.x) * s, y = r.y + (l - c.y) * s;
|
|
7
|
+
n.left = (n.left ?? 0) + p - x, n.top = (n.top ?? 0) + y - g;
|
|
8
|
+
}
|
|
9
|
+
return { cloned: n, nextId: i + 1 };
|
|
10
|
+
}, A = (t) => t === "left" || t === "top" ? -0.5 : t === "center" ? 0 : t === "right" || t === "bottom" ? 0.5 : 0, C = (t) => {
|
|
11
|
+
const i = t.left ?? 0, s = t.top ?? 0, c = (t.width ?? 0) * (t.scaleX ?? 1), r = (t.height ?? 0) * (t.scaleY ?? 1), a = (t.angle ?? 0) * Math.PI / 180, f = Math.cos(a), l = Math.sin(a), o = -A(t.originX ?? "left") * c, e = -A(t.originY ?? "top") * r, x = i + o * f - e * l, g = s + o * l + e * f, p = c / 2, y = r / 2, d = [-p, p].flatMap(
|
|
12
|
+
(m) => [-y, y].map((M) => ({
|
|
13
|
+
x: x + m * f - M * l,
|
|
14
|
+
y: g + m * l + M * f
|
|
15
|
+
}))
|
|
16
|
+
);
|
|
17
|
+
let h = 1 / 0, u = 1 / 0, b = -1 / 0, I = -1 / 0;
|
|
18
|
+
for (const m of d)
|
|
19
|
+
m.x < h && (h = m.x), m.y < u && (u = m.y), m.x > b && (b = m.x), m.y > I && (I = m.y);
|
|
20
|
+
return { minL: h, minT: u, maxR: b, maxB: I };
|
|
21
|
+
}, O = (t, i, s) => {
|
|
22
|
+
if (!t.length) return;
|
|
23
|
+
let c = 1 / 0, r = 1 / 0, n = -1 / 0, a = -1 / 0;
|
|
24
|
+
for (const o of t) {
|
|
25
|
+
const e = C(o);
|
|
26
|
+
e.minL < c && (c = e.minL), e.minT < r && (r = e.minT), e.maxR > n && (n = e.maxR), e.maxB > a && (a = e.maxB);
|
|
27
|
+
}
|
|
28
|
+
const f = i - (c + n) / 2, l = s - (r + a) / 2;
|
|
29
|
+
for (const o of t)
|
|
30
|
+
o.left = (o.left ?? 0) + f, o.top = (o.top ?? 0) + l;
|
|
31
|
+
}, R = (t) => {
|
|
32
|
+
const {
|
|
33
|
+
sourceObjects: i,
|
|
34
|
+
targetJsonMap: s,
|
|
35
|
+
objectIndex: c,
|
|
36
|
+
targetScaleMap: r,
|
|
37
|
+
sourceCenter: n,
|
|
38
|
+
targetCenterMap: a,
|
|
39
|
+
canvasCenter: f
|
|
40
|
+
} = t;
|
|
41
|
+
let l = Number.isFinite(c) ? c : 1;
|
|
42
|
+
const o = {};
|
|
43
|
+
return Object.entries(s || {}).forEach(([e, x]) => {
|
|
44
|
+
const g = Array.isArray(x?.objects) ? x.objects : [], p = r?.[e] ?? 1, y = a?.[e], d = [];
|
|
45
|
+
i.forEach((h) => {
|
|
46
|
+
const u = B(h, l, p, n, y);
|
|
47
|
+
d.push(u.cloned), l = u.nextId;
|
|
48
|
+
}), (!n || !y) && f && d.length && O(d, f.x, f.y), o[e] = { ...x, objects: [...g, ...d] };
|
|
49
|
+
}), { updates: o, nextObjectIndex: l };
|
|
50
|
+
};
|
|
51
|
+
self.onmessage = (t) => {
|
|
52
|
+
const i = t.data;
|
|
53
|
+
try {
|
|
54
|
+
const s = R(i);
|
|
55
|
+
self.postMessage({
|
|
56
|
+
id: i.id,
|
|
57
|
+
ok: !0,
|
|
58
|
+
data: s
|
|
59
|
+
});
|
|
60
|
+
} catch (s) {
|
|
61
|
+
self.postMessage({
|
|
62
|
+
id: i.id,
|
|
63
|
+
ok: !1,
|
|
64
|
+
error: s instanceof Error ? s.message : String(s)
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
};
|