@jetprint/editor-sdk 1.2.2 → 1.2.4
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/components/Editor/components/EditorSidebar.vue.d.ts +35 -0
- package/dist/components/Editor/components/Theme1UploadPanel.vue.d.ts +35 -0
- package/dist/components/Editor/composables/useBackgroundRemoval.d.ts +61 -0
- package/dist/components/Editor/composables/useBrushRefine.d.ts +31 -0
- package/dist/components/Editor/composables/usePreviewManager.d.ts +516 -0
- package/dist/components/Editor/index.vue.d.ts +3 -3
- package/dist/components/Editor/liveRender/types.d.ts +4 -0
- package/dist/components/Editor/utils/pattern.d.ts +1 -1
- package/dist/editor-sdk.es.js +41056 -39173
- package/dist/style.css +1 -1
- package/dist/types.d.ts +24 -0
- package/dist/utils/fileToken.d.ts +4 -2
- package/dist/utils/protection/encryptedModules.generated.d.ts +1 -1
- package/dist/utils/renderService/layerEffects.d.ts +148 -0
- package/dist/utils/renderService/types.d.ts +4 -0
- package/package.json +1 -1
|
@@ -209,6 +209,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
209
209
|
type: BooleanConstructor;
|
|
210
210
|
default: boolean;
|
|
211
211
|
};
|
|
212
|
+
/** 当前选中图层是否为图片(控制抠图按钮显示) */
|
|
213
|
+
activeLayerIsImage: {
|
|
214
|
+
type: BooleanConstructor;
|
|
215
|
+
default: boolean;
|
|
216
|
+
};
|
|
217
|
+
/** 抠图处理中:按钮 disabled + 显示 loading */
|
|
218
|
+
removeBgProcessing: {
|
|
219
|
+
type: BooleanConstructor;
|
|
220
|
+
default: boolean;
|
|
221
|
+
};
|
|
222
|
+
/** 是否显示「自动抠图」按钮(默认隐藏;第三方需显式开启) */
|
|
223
|
+
showBackgroundRemove: {
|
|
224
|
+
type: BooleanConstructor;
|
|
225
|
+
default: boolean;
|
|
226
|
+
};
|
|
212
227
|
/** actionId → 快捷键展示文案,用于图层工具 title */
|
|
213
228
|
shortcutKeys: {
|
|
214
229
|
type: PropType<Record<string, string>>;
|
|
@@ -234,6 +249,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
234
249
|
"apply-image-pattern": (...args: any[]) => void;
|
|
235
250
|
"update-image-pattern-scale": (...args: any[]) => void;
|
|
236
251
|
"crop-layer": (...args: any[]) => void;
|
|
252
|
+
"remove-bg-layer": (...args: any[]) => void;
|
|
237
253
|
"update:activeTab": (...args: any[]) => void;
|
|
238
254
|
"update:urlInput": (...args: any[]) => void;
|
|
239
255
|
"update:selectedProductIndex": (...args: any[]) => void;
|
|
@@ -452,6 +468,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
452
468
|
type: BooleanConstructor;
|
|
453
469
|
default: boolean;
|
|
454
470
|
};
|
|
471
|
+
/** 当前选中图层是否为图片(控制抠图按钮显示) */
|
|
472
|
+
activeLayerIsImage: {
|
|
473
|
+
type: BooleanConstructor;
|
|
474
|
+
default: boolean;
|
|
475
|
+
};
|
|
476
|
+
/** 抠图处理中:按钮 disabled + 显示 loading */
|
|
477
|
+
removeBgProcessing: {
|
|
478
|
+
type: BooleanConstructor;
|
|
479
|
+
default: boolean;
|
|
480
|
+
};
|
|
481
|
+
/** 是否显示「自动抠图」按钮(默认隐藏;第三方需显式开启) */
|
|
482
|
+
showBackgroundRemove: {
|
|
483
|
+
type: BooleanConstructor;
|
|
484
|
+
default: boolean;
|
|
485
|
+
};
|
|
455
486
|
/** actionId → 快捷键展示文案,用于图层工具 title */
|
|
456
487
|
shortcutKeys: {
|
|
457
488
|
type: PropType<Record<string, string>>;
|
|
@@ -477,6 +508,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
477
508
|
"onApply-image-pattern"?: ((...args: any[]) => any) | undefined;
|
|
478
509
|
"onUpdate-image-pattern-scale"?: ((...args: any[]) => any) | undefined;
|
|
479
510
|
"onCrop-layer"?: ((...args: any[]) => any) | undefined;
|
|
511
|
+
"onRemove-bg-layer"?: ((...args: any[]) => any) | undefined;
|
|
480
512
|
"onUpdate:activeTab"?: ((...args: any[]) => any) | undefined;
|
|
481
513
|
"onUpdate:urlInput"?: ((...args: any[]) => any) | undefined;
|
|
482
514
|
"onUpdate:selectedProductIndex"?: ((...args: any[]) => any) | undefined;
|
|
@@ -532,6 +564,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
532
564
|
imagePatternScale: number;
|
|
533
565
|
imagePatternScaleEnabled: boolean;
|
|
534
566
|
cropMode: boolean;
|
|
567
|
+
activeLayerIsImage: boolean;
|
|
568
|
+
removeBgProcessing: boolean;
|
|
569
|
+
showBackgroundRemove: boolean;
|
|
535
570
|
visibleTabs: string[];
|
|
536
571
|
showNav: boolean;
|
|
537
572
|
productTotal: number;
|
|
@@ -40,6 +40,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
40
40
|
type: BooleanConstructor;
|
|
41
41
|
default: boolean;
|
|
42
42
|
};
|
|
43
|
+
/** 当前选中图层是否为图片(控制抠图按钮显示) */
|
|
44
|
+
activeLayerIsImage: {
|
|
45
|
+
type: BooleanConstructor;
|
|
46
|
+
default: boolean;
|
|
47
|
+
};
|
|
48
|
+
/** 抠图处理中:按钮 disabled + loading */
|
|
49
|
+
removeBgProcessing: {
|
|
50
|
+
type: BooleanConstructor;
|
|
51
|
+
default: boolean;
|
|
52
|
+
};
|
|
53
|
+
/** 是否显示「自动抠图」按钮(默认隐藏;第三方需显式开启) */
|
|
54
|
+
showBackgroundRemove: {
|
|
55
|
+
type: BooleanConstructor;
|
|
56
|
+
default: boolean;
|
|
57
|
+
};
|
|
43
58
|
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
44
59
|
"move-layer-by-id": (...args: any[]) => void;
|
|
45
60
|
"duplicate-layer": (...args: any[]) => void;
|
|
@@ -52,6 +67,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
52
67
|
"apply-image-pattern": (...args: any[]) => void;
|
|
53
68
|
"update-image-pattern-scale": (...args: any[]) => void;
|
|
54
69
|
"crop-layer": (...args: any[]) => void;
|
|
70
|
+
"remove-bg-layer": (...args: any[]) => void;
|
|
55
71
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
56
72
|
readOnly: {
|
|
57
73
|
type: BooleanConstructor;
|
|
@@ -93,6 +109,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
93
109
|
type: BooleanConstructor;
|
|
94
110
|
default: boolean;
|
|
95
111
|
};
|
|
112
|
+
/** 当前选中图层是否为图片(控制抠图按钮显示) */
|
|
113
|
+
activeLayerIsImage: {
|
|
114
|
+
type: BooleanConstructor;
|
|
115
|
+
default: boolean;
|
|
116
|
+
};
|
|
117
|
+
/** 抠图处理中:按钮 disabled + loading */
|
|
118
|
+
removeBgProcessing: {
|
|
119
|
+
type: BooleanConstructor;
|
|
120
|
+
default: boolean;
|
|
121
|
+
};
|
|
122
|
+
/** 是否显示「自动抠图」按钮(默认隐藏;第三方需显式开启) */
|
|
123
|
+
showBackgroundRemove: {
|
|
124
|
+
type: BooleanConstructor;
|
|
125
|
+
default: boolean;
|
|
126
|
+
};
|
|
96
127
|
}>> & Readonly<{
|
|
97
128
|
"onMove-layer-by-id"?: ((...args: any[]) => any) | undefined;
|
|
98
129
|
"onDuplicate-layer"?: ((...args: any[]) => any) | undefined;
|
|
@@ -105,6 +136,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
105
136
|
"onApply-image-pattern"?: ((...args: any[]) => any) | undefined;
|
|
106
137
|
"onUpdate-image-pattern-scale"?: ((...args: any[]) => any) | undefined;
|
|
107
138
|
"onCrop-layer"?: ((...args: any[]) => any) | undefined;
|
|
139
|
+
"onRemove-bg-layer"?: ((...args: any[]) => any) | undefined;
|
|
108
140
|
}>, {
|
|
109
141
|
activeLayerId: string | number | null;
|
|
110
142
|
readOnly: boolean;
|
|
@@ -116,5 +148,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
116
148
|
imagePatternScale: number;
|
|
117
149
|
imagePatternScaleEnabled: boolean;
|
|
118
150
|
cropMode: boolean;
|
|
151
|
+
activeLayerIsImage: boolean;
|
|
152
|
+
removeBgProcessing: boolean;
|
|
153
|
+
showBackgroundRemove: boolean;
|
|
119
154
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
120
155
|
export default _default;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type RemoveBackgroundProgress = {
|
|
2
|
+
/** 0-1,模型下载阶段;推理阶段 imgly 不再回调 */
|
|
3
|
+
ratio: number;
|
|
4
|
+
/** 'fetch' | 'compute' */
|
|
5
|
+
phase: 'fetch' | 'compute';
|
|
6
|
+
message?: string;
|
|
7
|
+
};
|
|
8
|
+
export interface UseBackgroundRemovalOptions {
|
|
9
|
+
/**
|
|
10
|
+
* 模型/wasm 加载基础路径。默认走 @imgly 官方 CDN(staticimgly.com),
|
|
11
|
+
* 国内可指向本地 public 目录(如 '/imgly/dist/')或自家 OSS。
|
|
12
|
+
* 相对路径会按当前 origin 解析为绝对 URL,确保 imgly 的 `new URL(chunk, publicPath)` 拼接成功。
|
|
13
|
+
*/
|
|
14
|
+
publicPath?: string;
|
|
15
|
+
/**
|
|
16
|
+
* 模型变体。imgly 1.7.0 默认 'isnet_fp16'(84MB)。本地化场景默认 'isnet_quint8'(42MB,质量略低但体积小一半)。
|
|
17
|
+
*/
|
|
18
|
+
model?: 'isnet' | 'isnet_fp16' | 'isnet_quint8';
|
|
19
|
+
/**
|
|
20
|
+
* 客户端模式:@imgly ESM 运行时的加载 URL(默认 jsdelivr CDN)。
|
|
21
|
+
* 关键:通过 `import(/* @vite-ignore */ url)` 运行时加载,**ort 运行时不会被打进 SDK 包**(包体 -125MB)。
|
|
22
|
+
* 自建场景可指向自家 CDN/OSS 上托管的 @imgly ESM 产物。
|
|
23
|
+
*/
|
|
24
|
+
cdnUrl?: string;
|
|
25
|
+
/**
|
|
26
|
+
* 服务端抠图提供者。**传入则用它替代客户端 ONNX 推理**——不加载 @imgly、不跑本地模型,SDK 最轻。
|
|
27
|
+
* 入参为原图 Blob,返回去背景后的图(Blob 或可 fetch 的 URL)。
|
|
28
|
+
*/
|
|
29
|
+
provider?: (input: Blob) => Promise<Blob | string>;
|
|
30
|
+
}
|
|
31
|
+
export type OpaqueBoundingBox = {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
w: number;
|
|
35
|
+
h: number;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* 扫描透明通道,把图像裁切到 alpha>0 像素的外接矩形。
|
|
39
|
+
* - 全透明:返回 null
|
|
40
|
+
* - bbox 已接近全图:返回 fullSize=true
|
|
41
|
+
*/
|
|
42
|
+
export declare function cropBlobToOpaqueBoundingBox(blob: Blob, alphaThreshold?: number): Promise<{
|
|
43
|
+
blob: Blob;
|
|
44
|
+
bbox: OpaqueBoundingBox;
|
|
45
|
+
fullSize: boolean;
|
|
46
|
+
} | null>;
|
|
47
|
+
export declare function useBackgroundRemoval(options?: UseBackgroundRemovalOptions): {
|
|
48
|
+
isProcessing: import("vue").Ref<boolean, boolean>;
|
|
49
|
+
lastError: import("vue").Ref<string | null, string | null>;
|
|
50
|
+
progress: import("vue").Ref<{
|
|
51
|
+
ratio: number;
|
|
52
|
+
phase: "fetch" | "compute";
|
|
53
|
+
message?: string | undefined;
|
|
54
|
+
} | null, RemoveBackgroundProgress | {
|
|
55
|
+
ratio: number;
|
|
56
|
+
phase: "fetch" | "compute";
|
|
57
|
+
message?: string | undefined;
|
|
58
|
+
} | null>;
|
|
59
|
+
modelLoaded: import("vue").Ref<boolean, boolean>;
|
|
60
|
+
removeBackground: (input: Blob | string) => Promise<Blob | null>;
|
|
61
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type BrushMode = 'erase' | 'restore';
|
|
2
|
+
export interface UseBrushRefineOptions {
|
|
3
|
+
/** Fabric Canvas 实例提供者 */
|
|
4
|
+
getCanvas: () => any | null;
|
|
5
|
+
/**
|
|
6
|
+
* 退出(无论 commit / cancel)时调用,父组件可用于刷新预览等。
|
|
7
|
+
* 第二个参数为本次涂抹的目标 fabric 对象(退出时其 element 已 commit),
|
|
8
|
+
* 供父组件做结果图上传 / savedSrc 持久化(此时内部 targetObj 已清空)。
|
|
9
|
+
*/
|
|
10
|
+
onExit?: (committed: boolean, obj: any | null) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function useBrushRefine(options: UseBrushRefineOptions): {
|
|
13
|
+
isActive: import("vue").Ref<boolean, boolean>;
|
|
14
|
+
brushSize: import("vue").Ref<number, number>;
|
|
15
|
+
brushMode: import("vue").Ref<BrushMode, BrushMode>;
|
|
16
|
+
hasSourceImage: import("vue").Ref<boolean, boolean>;
|
|
17
|
+
strokeEnabled: import("vue").Ref<boolean, boolean>;
|
|
18
|
+
strokeWidth: import("vue").Ref<number, number>;
|
|
19
|
+
strokeGap: import("vue").Ref<number, number>;
|
|
20
|
+
strokeColor: import("vue").Ref<string, string>;
|
|
21
|
+
targetObj: import("vue").ShallowRef<any, any>;
|
|
22
|
+
enter: (obj: any, initElement?: HTMLImageElement | HTMLCanvasElement, srcImage?: HTMLImageElement | HTMLCanvasElement | null) => boolean;
|
|
23
|
+
exit: (commit?: boolean) => Promise<void>;
|
|
24
|
+
undo: () => void;
|
|
25
|
+
setBrushSize: (v: number) => void;
|
|
26
|
+
setBrushMode: (m: BrushMode) => void;
|
|
27
|
+
setStrokeEnabled: (v: boolean) => void;
|
|
28
|
+
setStrokeWidth: (v: number) => void;
|
|
29
|
+
setStrokeGap: (v: number) => void;
|
|
30
|
+
setStrokeColor: (v: string) => void;
|
|
31
|
+
};
|