customforge 0.1.0-alpha.1 → 0.1.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/CHANGELOG.md +79 -24
- package/LICENSES/NunitoSans-OFL.txt +93 -0
- package/LICENSES/plain-mug-CC-BY-4.0.txt +11 -0
- package/README.md +592 -290
- package/README.zh-CN.md +589 -290
- package/dist/NunitoSans-Variable.ttf +0 -0
- package/dist/ProductCustomizer-4ytA68eg.js +2350 -0
- package/dist/ProductCustomizer-4ytA68eg.js.map +1 -0
- package/dist/bridge/TextureBridge.d.ts +1 -1
- package/dist/core/api.d.ts +94 -0
- package/dist/core/api.d.ts.map +1 -0
- package/dist/core/config.d.ts +3 -12
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/design.d.ts.map +1 -1
- package/dist/core/types.d.ts +217 -8
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/uv.d.ts +8 -0
- package/dist/core/uv.d.ts.map +1 -0
- package/dist/cup_decal_small_margins.glb +0 -0
- package/dist/customizer/ProductCustomizer.d.ts +174 -7
- package/dist/customizer/ProductCustomizer.d.ts.map +1 -1
- package/dist/editor/DesignEditor.d.ts +224 -14
- package/dist/editor/DesignEditor.d.ts.map +1 -1
- package/dist/editor/DesignHistory.d.ts +27 -0
- package/dist/editor/DesignHistory.d.ts.map +1 -0
- package/dist/editor/uvBounds.d.ts +15 -0
- package/dist/editor/uvBounds.d.ts.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1108
- package/dist/index.js.map +1 -1
- package/dist/style.css +2123 -11
- package/dist/viewer/ProductViewer.d.ts +37 -6
- package/dist/viewer/ProductViewer.d.ts.map +1 -1
- package/dist/viewer/uvLayout.d.ts +11 -0
- package/dist/viewer/uvLayout.d.ts.map +1 -0
- package/dist/workbench/CustomForgeWorkbench.d.ts +205 -0
- package/dist/workbench/CustomForgeWorkbench.d.ts.map +1 -0
- package/dist/workbench/assets/catalog.d.ts +8 -0
- package/dist/workbench/assets/catalog.d.ts.map +1 -0
- package/dist/workbench/config.d.ts +96 -0
- package/dist/workbench/config.d.ts.map +1 -0
- package/dist/workbench/icons.d.ts +4 -0
- package/dist/workbench/icons.d.ts.map +1 -0
- package/dist/workbench/index.d.ts +25 -0
- package/dist/workbench/index.d.ts.map +1 -0
- package/dist/workbench/template.d.ts +3 -0
- package/dist/workbench/template.d.ts.map +1 -0
- package/dist/workbench/types.d.ts +542 -0
- package/dist/workbench/types.d.ts.map +1 -0
- package/dist/workbench.js +3052 -0
- package/dist/workbench.js.map +1 -0
- package/package.json +77 -71
package/dist/core/types.d.ts
CHANGED
|
@@ -6,15 +6,57 @@ export type ElementTarget = HTMLElement | string;
|
|
|
6
6
|
* 产品配置
|
|
7
7
|
*/
|
|
8
8
|
export interface ProductConfiguration {
|
|
9
|
-
/** GLB 或 GLTF
|
|
9
|
+
/** GLB 或 GLTF 模型的远程地址,不传时使用随包提供的 cup_decal_small_margins.glb */
|
|
10
10
|
modelUrl?: string;
|
|
11
11
|
/** 二维编辑器使用的可选基础纹理地址 */
|
|
12
12
|
textureUrl?: string;
|
|
13
13
|
/** 接收实时纹理的模型 Mesh 名称,默认为 PrintArea */
|
|
14
14
|
surfaceMesh?: string;
|
|
15
|
-
/**
|
|
15
|
+
/** 是否在映射到三维模型前垂直翻转纹理,默认为 false */
|
|
16
16
|
textureFlipY?: boolean;
|
|
17
17
|
}
|
|
18
|
+
/** 补全默认值后的产品配置快照 */
|
|
19
|
+
export interface ResolvedProductConfiguration {
|
|
20
|
+
/** 清理空白后的模型地址,缺省时使用随包模型 */
|
|
21
|
+
modelUrl?: string;
|
|
22
|
+
/** 清理空白后的基础纹理地址 */
|
|
23
|
+
textureUrl?: string;
|
|
24
|
+
/** 接收实时纹理的模型 Mesh 名称 */
|
|
25
|
+
surfaceMesh: string;
|
|
26
|
+
/** 是否在映射到三维模型前垂直翻转纹理 */
|
|
27
|
+
textureFlipY: boolean;
|
|
28
|
+
}
|
|
29
|
+
/** 二维编辑器交互元素的外观配置 */
|
|
30
|
+
export interface EditorAppearance {
|
|
31
|
+
/** 框选区域填充色,默认为 rgba(19, 113, 125, 0.12) */
|
|
32
|
+
selectionFill?: string;
|
|
33
|
+
/** 框选区域边框色,默认为 #13717d */
|
|
34
|
+
selectionBorder?: string;
|
|
35
|
+
/** 对象控制点填充色,默认为 #ffffff */
|
|
36
|
+
controlFill?: string;
|
|
37
|
+
/** 对象控制点描边色,默认为 #13717d */
|
|
38
|
+
controlBorder?: string;
|
|
39
|
+
/** 选中对象的边框色,默认为 #13717d */
|
|
40
|
+
objectBorder?: string;
|
|
41
|
+
/** 对象控制点显示尺寸,单位为 CSS 像素,默认为 8 */
|
|
42
|
+
controlSize?: number;
|
|
43
|
+
/** UV 区域辅助填充色,缺省时读取 --cfw-accent */
|
|
44
|
+
uvFill?: string;
|
|
45
|
+
/** UV 外边界虚线颜色,默认为 #dc2626 */
|
|
46
|
+
uvBoundary?: string;
|
|
47
|
+
}
|
|
48
|
+
/** 三维查看器画布的外观配置 */
|
|
49
|
+
export interface ViewerAppearance {
|
|
50
|
+
/** WebGL 画布清屏颜色,缺省时保持透明并显示容器背景 */
|
|
51
|
+
backgroundColor?: string;
|
|
52
|
+
}
|
|
53
|
+
/** 无界面核心所管理画布的外观配置 */
|
|
54
|
+
export interface CustomizerAppearance {
|
|
55
|
+
/** 二维编辑器交互元素外观 */
|
|
56
|
+
editor?: EditorAppearance;
|
|
57
|
+
/** 三维查看器画布外观 */
|
|
58
|
+
viewer?: ViewerAppearance;
|
|
59
|
+
}
|
|
18
60
|
/**
|
|
19
61
|
* 产品定制器初始化配置
|
|
20
62
|
*/
|
|
@@ -29,7 +71,29 @@ export interface CustomizerOptions {
|
|
|
29
71
|
editorHeight?: number;
|
|
30
72
|
/** 初始化时加载的产品配置 */
|
|
31
73
|
product?: ProductConfiguration;
|
|
74
|
+
/** 可保留的撤销步骤数量,默认为 50 */
|
|
75
|
+
historyLimit?: number;
|
|
76
|
+
/** 二维编辑画布的无障碍名称,默认为 UV texture editor */
|
|
77
|
+
editorAriaLabel?: string;
|
|
78
|
+
/** 三维产品画布的无障碍名称,默认为 Interactive 3D product preview */
|
|
79
|
+
viewerAriaLabel?: string;
|
|
80
|
+
/** addText 未提供内容时使用的默认文字,默认为 Edit this text */
|
|
81
|
+
defaultText?: string;
|
|
82
|
+
/** 空文字对象在图层工具中的默认名称,默认为 Text */
|
|
83
|
+
textObjectName?: string;
|
|
84
|
+
/** 普通图片对象在图层工具中的默认名称,默认为 Image */
|
|
85
|
+
imageObjectName?: string;
|
|
86
|
+
/** 背景图片对象在图层工具中的默认名称,默认为 Background */
|
|
87
|
+
backgroundObjectName?: string;
|
|
88
|
+
/** 二维编辑器和三维查看器的可选外观配置 */
|
|
89
|
+
appearance?: CustomizerAppearance;
|
|
32
90
|
}
|
|
91
|
+
/** 文字支持的水平对齐方式 */
|
|
92
|
+
export type TextAlignment = 'left' | 'center' | 'right';
|
|
93
|
+
/** 文字支持的字体样式 */
|
|
94
|
+
export type TextFontStyle = 'normal' | 'italic';
|
|
95
|
+
/** 文字字重,数字值通常使用 100 到 900 */
|
|
96
|
+
export type TextFontWeight = number | 'normal' | 'bold';
|
|
33
97
|
/**
|
|
34
98
|
* 添加文字时使用的配置
|
|
35
99
|
*
|
|
@@ -38,6 +102,8 @@ export interface CustomizerOptions {
|
|
|
38
102
|
export interface AddTextOptions {
|
|
39
103
|
/** 文字内容 */
|
|
40
104
|
text?: string;
|
|
105
|
+
/** 图层面板中显示的可选名称 */
|
|
106
|
+
name?: string;
|
|
41
107
|
/** 文字左上角在画布中的横坐标,单位为像素,越界时自动修正 */
|
|
42
108
|
x?: number;
|
|
43
109
|
/** 文字左上角在画布中的纵坐标,单位为像素,越界时自动修正 */
|
|
@@ -46,10 +112,49 @@ export interface AddTextOptions {
|
|
|
46
112
|
width?: number;
|
|
47
113
|
/** 字体名称 */
|
|
48
114
|
fontFamily?: string;
|
|
49
|
-
/**
|
|
115
|
+
/** 字体大小,单位为像素,默认为 22 */
|
|
50
116
|
fontSize?: number;
|
|
51
117
|
/** 文字颜色,支持 CSS 颜色值 */
|
|
52
118
|
color?: string;
|
|
119
|
+
/** 字重,默认为 700 */
|
|
120
|
+
fontWeight?: TextFontWeight;
|
|
121
|
+
/** 是否使用斜体,默认为 normal */
|
|
122
|
+
fontStyle?: TextFontStyle;
|
|
123
|
+
/** 是否显示下划线,默认为 false */
|
|
124
|
+
underline?: boolean;
|
|
125
|
+
/** 文字水平对齐方式,默认为 center */
|
|
126
|
+
textAlign?: TextAlignment;
|
|
127
|
+
/** 行高倍数,默认为 1.16 */
|
|
128
|
+
lineHeight?: number;
|
|
129
|
+
/** 字距,单位为千分之一 em,默认为 0 */
|
|
130
|
+
charSpacing?: number;
|
|
131
|
+
/** 文字背景 CSS 颜色,缺省时保持透明 */
|
|
132
|
+
backgroundColor?: string;
|
|
133
|
+
}
|
|
134
|
+
/** 更新已有文字对象时使用的内容和样式配置 */
|
|
135
|
+
export interface UpdateTextOptions {
|
|
136
|
+
/** 新的文字内容,可以为空字符串 */
|
|
137
|
+
text?: string;
|
|
138
|
+
/** 新的字体名称,消费页面必须已经加载该字体 */
|
|
139
|
+
fontFamily?: string;
|
|
140
|
+
/** 新的字体大小,单位为像素 */
|
|
141
|
+
fontSize?: number;
|
|
142
|
+
/** 新的文字 CSS 颜色 */
|
|
143
|
+
color?: string;
|
|
144
|
+
/** 新的字重 */
|
|
145
|
+
fontWeight?: TextFontWeight;
|
|
146
|
+
/** 新的字体样式 */
|
|
147
|
+
fontStyle?: TextFontStyle;
|
|
148
|
+
/** 是否显示下划线 */
|
|
149
|
+
underline?: boolean;
|
|
150
|
+
/** 新的文字水平对齐方式 */
|
|
151
|
+
textAlign?: TextAlignment;
|
|
152
|
+
/** 新的行高倍数 */
|
|
153
|
+
lineHeight?: number;
|
|
154
|
+
/** 新的字距,单位为千分之一 em */
|
|
155
|
+
charSpacing?: number;
|
|
156
|
+
/** 新的文字背景 CSS 颜色,传 null 时恢复透明 */
|
|
157
|
+
backgroundColor?: string | null;
|
|
53
158
|
}
|
|
54
159
|
/**
|
|
55
160
|
* 添加图片时使用的配置
|
|
@@ -59,6 +164,10 @@ export interface AddTextOptions {
|
|
|
59
164
|
export interface AddImageOptions {
|
|
60
165
|
/** 图片地址,支持远程地址、Data URL 和 Blob URL */
|
|
61
166
|
src: string;
|
|
167
|
+
/** 图层面板中显示的可选名称 */
|
|
168
|
+
name?: string;
|
|
169
|
+
/** 图片在设计中的用途,背景会忽略位置和宽度、替换已有背景、铺满当前 UV 可打印区域并锁定在最底层 */
|
|
170
|
+
role?: DesignImageRole;
|
|
62
171
|
/** 图片中心在画布中的横坐标,单位为像素,越界时自动修正 */
|
|
63
172
|
x?: number;
|
|
64
173
|
/** 图片中心在画布中的纵坐标,单位为像素,越界时自动修正 */
|
|
@@ -90,8 +199,36 @@ export interface DesignObjectTransform {
|
|
|
90
199
|
/** 是否沿对象自身纵轴翻转 */
|
|
91
200
|
flipY: boolean;
|
|
92
201
|
}
|
|
202
|
+
/** 以对象中心点为原点更新现有对象时使用的变换 */
|
|
203
|
+
export interface UpdateObjectTransformOptions {
|
|
204
|
+
/** 新的对象中心横坐标,单位为逻辑像素 */
|
|
205
|
+
x?: number;
|
|
206
|
+
/** 新的对象中心纵坐标,单位为逻辑像素 */
|
|
207
|
+
y?: number;
|
|
208
|
+
/** 新的横向缩放倍数,必须大于 0 */
|
|
209
|
+
scaleX?: number;
|
|
210
|
+
/** 新的纵向缩放倍数,必须大于 0 */
|
|
211
|
+
scaleY?: number;
|
|
212
|
+
/** 新的顺时针旋转角度,单位为度 */
|
|
213
|
+
rotation?: number;
|
|
214
|
+
/** 是否沿对象自身横轴翻转 */
|
|
215
|
+
flipX?: boolean;
|
|
216
|
+
/** 是否沿对象自身纵轴翻转 */
|
|
217
|
+
flipY?: boolean;
|
|
218
|
+
}
|
|
219
|
+
/** Design JSON 中可编辑对象共用的图层状态 */
|
|
220
|
+
export interface DesignObjectState {
|
|
221
|
+
/** 图层面板使用的可选名称,缺省时由对象内容生成 */
|
|
222
|
+
name?: string;
|
|
223
|
+
/** 对象是否参与二维画布、三维纹理和 PNG 渲染,默认为 true */
|
|
224
|
+
visible?: boolean;
|
|
225
|
+
/** 对象是否禁止通过画布控件变换,默认为 false */
|
|
226
|
+
locked?: boolean;
|
|
227
|
+
}
|
|
228
|
+
/** Design JSON 图片对象在设计中的用途 */
|
|
229
|
+
export type DesignImageRole = 'element' | 'background';
|
|
93
230
|
/** Design JSON 中的文字对象 */
|
|
94
|
-
export interface TextDesignObject {
|
|
231
|
+
export interface TextDesignObject extends DesignObjectState {
|
|
95
232
|
/** 文档内稳定且唯一的对象标识 */
|
|
96
233
|
id: string;
|
|
97
234
|
/** 用于区分联合类型的对象种类 */
|
|
@@ -108,9 +245,23 @@ export interface TextDesignObject {
|
|
|
108
245
|
fontSize: number;
|
|
109
246
|
/** 文字颜色,仅保存 CSS 字符串颜色 */
|
|
110
247
|
color: string;
|
|
248
|
+
/** 字重,旧版文档缺省时使用 700 */
|
|
249
|
+
fontWeight?: TextFontWeight;
|
|
250
|
+
/** 字体样式,旧版文档缺省时使用 normal */
|
|
251
|
+
fontStyle?: TextFontStyle;
|
|
252
|
+
/** 是否显示下划线,旧版文档缺省时使用 false */
|
|
253
|
+
underline?: boolean;
|
|
254
|
+
/** 文字水平对齐方式,旧版文档缺省时使用 center */
|
|
255
|
+
textAlign?: TextAlignment;
|
|
256
|
+
/** 行高倍数,旧版文档缺省时使用 1.16 */
|
|
257
|
+
lineHeight?: number;
|
|
258
|
+
/** 字距,单位为千分之一 em,旧版文档缺省时使用 0 */
|
|
259
|
+
charSpacing?: number;
|
|
260
|
+
/** 文字背景 CSS 颜色,缺省时保持透明 */
|
|
261
|
+
backgroundColor?: string;
|
|
111
262
|
}
|
|
112
263
|
/** Design JSON 中的图片对象 */
|
|
113
|
-
export interface ImageDesignObject {
|
|
264
|
+
export interface ImageDesignObject extends DesignObjectState {
|
|
114
265
|
/** 文档内稳定且唯一的对象标识 */
|
|
115
266
|
id: string;
|
|
116
267
|
/** 用于区分联合类型的对象种类 */
|
|
@@ -119,6 +270,8 @@ export interface ImageDesignObject {
|
|
|
119
270
|
transform: DesignObjectTransform;
|
|
120
271
|
/** 可重新加载的远程 URL 或 Data URL,不允许短生命周期 Blob URL */
|
|
121
272
|
src: string;
|
|
273
|
+
/** 图片用途,缺省时按普通装饰元素处理 */
|
|
274
|
+
role?: DesignImageRole;
|
|
122
275
|
}
|
|
123
276
|
/** Design JSON 当前支持的可编辑对象 */
|
|
124
277
|
export type DesignObject = TextDesignObject | ImageDesignObject;
|
|
@@ -135,11 +288,62 @@ export interface DesignDocument {
|
|
|
135
288
|
/** 按渲染层级从后到前排列的可编辑对象 */
|
|
136
289
|
objects: DesignObject[];
|
|
137
290
|
}
|
|
291
|
+
/** 撤销与重做历史的可用状态 */
|
|
292
|
+
export interface HistoryState {
|
|
293
|
+
/** 当前是否存在可以撤销的设计快照 */
|
|
294
|
+
canUndo: boolean;
|
|
295
|
+
/** 当前是否存在可以重做的设计快照 */
|
|
296
|
+
canRedo: boolean;
|
|
297
|
+
}
|
|
298
|
+
/** 逻辑画布中的轴对齐区域 */
|
|
299
|
+
export interface CanvasBounds {
|
|
300
|
+
/** 左边缘横坐标,单位为逻辑像素 */
|
|
301
|
+
left: number;
|
|
302
|
+
/** 上边缘纵坐标,单位为逻辑像素 */
|
|
303
|
+
top: number;
|
|
304
|
+
/** 区域宽度,单位为逻辑像素 */
|
|
305
|
+
width: number;
|
|
306
|
+
/** 区域高度,单位为逻辑像素 */
|
|
307
|
+
height: number;
|
|
308
|
+
}
|
|
309
|
+
/** 三维空间中的坐标值 */
|
|
310
|
+
export interface Vector3Value {
|
|
311
|
+
/** 横轴坐标 */
|
|
312
|
+
x: number;
|
|
313
|
+
/** 纵轴坐标 */
|
|
314
|
+
y: number;
|
|
315
|
+
/** 深度轴坐标 */
|
|
316
|
+
z: number;
|
|
317
|
+
}
|
|
318
|
+
/** 可保存并恢复的三维观察视角 */
|
|
319
|
+
export interface ProductViewState {
|
|
320
|
+
/** 透视相机在三维场景中的位置 */
|
|
321
|
+
position: Vector3Value;
|
|
322
|
+
/** 轨道控制器围绕观察的目标点 */
|
|
323
|
+
target: Vector3Value;
|
|
324
|
+
}
|
|
325
|
+
/** 自定义 UI 可以一次读取的核心状态快照 */
|
|
326
|
+
export interface CustomizerState {
|
|
327
|
+
/** 当前补全默认值后的产品配置 */
|
|
328
|
+
product: ResolvedProductConfiguration;
|
|
329
|
+
/** 当前逻辑画布尺寸 */
|
|
330
|
+
canvas: DesignCanvas;
|
|
331
|
+
/** 当前产品 UV 在逻辑画布中的可打印包围框 */
|
|
332
|
+
printableBounds: CanvasBounds;
|
|
333
|
+
/** 按从后到前顺序排列的设计对象 */
|
|
334
|
+
objects: DesignObject[];
|
|
335
|
+
/** 按画布层级排列的当前选中对象 ID */
|
|
336
|
+
selectedObjectIds: string[];
|
|
337
|
+
/** 当前撤销与重做可用状态 */
|
|
338
|
+
history: HistoryState;
|
|
339
|
+
/** 当前三维观察视角 */
|
|
340
|
+
view: ProductViewState;
|
|
341
|
+
}
|
|
138
342
|
/**
|
|
139
343
|
* 产品定制器事件及其载荷
|
|
140
344
|
*/
|
|
141
345
|
export interface CustomizerEventMap {
|
|
142
|
-
/**
|
|
346
|
+
/** 二维设计内容或图层状态发生变化 */
|
|
143
347
|
change: {
|
|
144
348
|
objectCount: number;
|
|
145
349
|
};
|
|
@@ -147,18 +351,23 @@ export interface CustomizerEventMap {
|
|
|
147
351
|
error: {
|
|
148
352
|
error: Error;
|
|
149
353
|
};
|
|
354
|
+
/** 撤销或重做可用状态发生变化 */
|
|
355
|
+
historychange: HistoryState;
|
|
150
356
|
/** 产品模型和纹理完成加载 */
|
|
151
357
|
ready: {
|
|
152
|
-
product:
|
|
358
|
+
product: ResolvedProductConfiguration;
|
|
153
359
|
};
|
|
154
|
-
/**
|
|
360
|
+
/** 二维编辑器的选中状态发生变化,objectIds 按画布层级从后到前排列 */
|
|
155
361
|
selectionchange: {
|
|
156
362
|
hasSelection: boolean;
|
|
363
|
+
objectIds: string[];
|
|
157
364
|
};
|
|
158
365
|
/** 加载或运行状态发生变化 */
|
|
159
366
|
status: {
|
|
160
367
|
message: string;
|
|
161
368
|
};
|
|
369
|
+
/** 用户操作或 API 调整了三维观察视角 */
|
|
370
|
+
viewchange: ProductViewState;
|
|
162
371
|
}
|
|
163
372
|
/**
|
|
164
373
|
* 产品定制器支持的事件名称
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,MAAM,CAAA;AAEhD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uv.d.ts","sourceRoot":"","sources":["../../src/core/uv.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,MAAM,WAAW,QAAQ;IACvB,yCAAyC;IACzC,mBAAmB,EAAE,YAAY,CAAA;IAEjC,uCAAuC;IACvC,mBAAmB,EAAE,YAAY,CAAA;CAClC"}
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
type
|
|
1
|
+
import type { CustomizerEventListener, ProductCustomizerApi } from '../core/api';
|
|
2
|
+
import type { AddImageOptions, AddTextOptions, CanvasBounds, CustomizerEventName, CustomizerOptions, CustomizerState, DesignCanvas, DesignDocument, DesignObject, ImageDesignObject, ProductConfiguration, ProductViewState, ResolvedProductConfiguration, TextDesignObject, UpdateObjectTransformOptions, UpdateTextOptions } from '../core/types';
|
|
3
3
|
/**
|
|
4
4
|
* 统一管理二维编辑器、三维查看器和实时纹理同步
|
|
5
5
|
*
|
|
@@ -7,7 +7,7 @@ type EventListener<K extends CustomizerEventName> = (detail: CustomizerEventMap[
|
|
|
7
7
|
* 每个实例独立持有 DOM 事件、Fabric 状态和 WebGL 资源
|
|
8
8
|
* 不再使用实例时必须调用 `destroy()`
|
|
9
9
|
*/
|
|
10
|
-
export declare class ProductCustomizer {
|
|
10
|
+
export declare class ProductCustomizer implements ProductCustomizerApi {
|
|
11
11
|
private readonly events;
|
|
12
12
|
private readonly textureBridge;
|
|
13
13
|
private readonly editor;
|
|
@@ -15,6 +15,8 @@ export declare class ProductCustomizer {
|
|
|
15
15
|
private product;
|
|
16
16
|
private readonly stopSelectionListener;
|
|
17
17
|
private readonly stopRenderListener;
|
|
18
|
+
private readonly stopHistoryListener;
|
|
19
|
+
private readonly stopViewListener;
|
|
18
20
|
private destroyed;
|
|
19
21
|
private constructor();
|
|
20
22
|
/**
|
|
@@ -32,24 +34,140 @@ export declare class ProductCustomizer {
|
|
|
32
34
|
* @param listener 接收对应事件载荷的监听函数
|
|
33
35
|
* @returns 用于取消本次订阅的函数
|
|
34
36
|
*/
|
|
35
|
-
on<K extends CustomizerEventName>(event: K, listener:
|
|
37
|
+
on<K extends CustomizerEventName>(event: K, listener: CustomizerEventListener<K>): () => void;
|
|
36
38
|
/**
|
|
37
39
|
* 在二维画布中添加并选中一个文字对象
|
|
38
40
|
*
|
|
39
41
|
* 创建后和用户变换期间,对象会自动缩放或平移以保持完整可见
|
|
40
42
|
*
|
|
41
43
|
* @param options 文字内容、位置和样式配置
|
|
44
|
+
* @returns 创建后的可持久化文字对象快照
|
|
42
45
|
*/
|
|
43
|
-
addText(options?: AddTextOptions):
|
|
46
|
+
addText(options?: AddTextOptions): TextDesignObject;
|
|
44
47
|
/**
|
|
45
48
|
* 加载图片并将其添加到二维画布
|
|
46
49
|
*
|
|
50
|
+
* role 为 background 时会替换已有设计背景、铺满当前 UV 可打印区域并默认锁定在最底层
|
|
47
51
|
* 创建后和用户变换期间,对象会自动缩放或平移以保持完整可见
|
|
48
52
|
*
|
|
49
53
|
* @param options 图片地址、位置和显示宽度
|
|
54
|
+
* @returns 创建后的可持久化图片对象快照
|
|
50
55
|
* @throws 图片无法访问、加载失败或被 CORS 策略阻止时抛出错误
|
|
51
56
|
*/
|
|
52
|
-
addImage(options: AddImageOptions): Promise<
|
|
57
|
+
addImage(options: AddImageOptions): Promise<ImageDesignObject>;
|
|
58
|
+
/** 返回产品、画布、对象、选区、历史和视角的独立状态快照 */
|
|
59
|
+
getState(): CustomizerState;
|
|
60
|
+
/** 返回当前补全默认值后的产品配置独立快照 */
|
|
61
|
+
getProduct(): ResolvedProductConfiguration;
|
|
62
|
+
/** 返回当前二维逻辑画布尺寸 */
|
|
63
|
+
getCanvasSize(): DesignCanvas;
|
|
64
|
+
/** 返回当前产品 UV 在逻辑画布中的可打印包围框 */
|
|
65
|
+
getPrintableBounds(): CanvasBounds;
|
|
66
|
+
/**
|
|
67
|
+
* 返回当前可编辑对象的独立快照
|
|
68
|
+
*
|
|
69
|
+
* @returns 按画布层级从后到前排列的 Design JSON 对象
|
|
70
|
+
*/
|
|
71
|
+
getObjects(): DesignObject[];
|
|
72
|
+
/** 当前选中对象的 ID,按画布层级从后到前排列 */
|
|
73
|
+
getSelectedObjectIds(): string[];
|
|
74
|
+
/**
|
|
75
|
+
* 按稳定 ID 选中一个可见对象
|
|
76
|
+
*
|
|
77
|
+
* @param id Design JSON 中的对象 ID
|
|
78
|
+
* @returns 是否找到并选中了对象
|
|
79
|
+
*/
|
|
80
|
+
selectObject(id: string): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* 按稳定 ID 同时选中多个可见对象
|
|
83
|
+
*
|
|
84
|
+
* 所有 ID 都必须有效且可见,否则保持原选区不变;空数组清除选区
|
|
85
|
+
*
|
|
86
|
+
* @param ids Design JSON 中的对象 ID
|
|
87
|
+
* @returns 是否应用了请求的选区
|
|
88
|
+
*/
|
|
89
|
+
selectObjects(ids: readonly string[]): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* 清除当前画布选区,不修改设计内容或历史记录
|
|
92
|
+
*
|
|
93
|
+
* @returns 清除前是否存在选中对象
|
|
94
|
+
*/
|
|
95
|
+
clearSelection(): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* 按稳定 ID 删除一个对象
|
|
98
|
+
*
|
|
99
|
+
* @param id Design JSON 中的对象 ID
|
|
100
|
+
* @returns 是否找到并删除了对象
|
|
101
|
+
*/
|
|
102
|
+
removeObject(id: string): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* 将对象移动到指定图层索引
|
|
105
|
+
*
|
|
106
|
+
* @param id Design JSON 中的对象 ID
|
|
107
|
+
* @param index 从 0 开始的索引,0 表示最底层
|
|
108
|
+
* @returns 对象层级是否发生变化
|
|
109
|
+
*/
|
|
110
|
+
moveObject(id: string, index: number): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* 将现有图片转换为铺满当前 UV 可打印区域的设计背景
|
|
113
|
+
*
|
|
114
|
+
* 转换会替换已有设计背景、重置旋转、锁定对象并移动到最底层
|
|
115
|
+
*
|
|
116
|
+
* @param id Design JSON 中的图片对象 ID
|
|
117
|
+
* @returns 是否找到普通图片并完成转换
|
|
118
|
+
*/
|
|
119
|
+
setImageAsBackground(id: string): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* 修改对象在图层面板中的名称
|
|
122
|
+
*
|
|
123
|
+
* @param id Design JSON 中的对象 ID
|
|
124
|
+
* @param name 非空图层名称
|
|
125
|
+
* @returns 是否找到并更新了对象
|
|
126
|
+
*/
|
|
127
|
+
renameObject(id: string, name: string): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* 修改对象是否参与渲染
|
|
130
|
+
*
|
|
131
|
+
* @param id Design JSON 中的对象 ID
|
|
132
|
+
* @param visible 是否参与二维画布、三维纹理和 PNG 渲染
|
|
133
|
+
* @returns 是否找到并更新了对象
|
|
134
|
+
*/
|
|
135
|
+
setObjectVisibility(id: string, visible: boolean): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* 修改对象是否允许通过画布控件变换
|
|
138
|
+
*
|
|
139
|
+
* @param id Design JSON 中的对象 ID
|
|
140
|
+
* @param locked 是否锁定移动、缩放、旋转、倾斜和文字编辑
|
|
141
|
+
* @returns 是否找到并更新了对象
|
|
142
|
+
*/
|
|
143
|
+
setObjectLocked(id: string, locked: boolean): boolean;
|
|
144
|
+
/**
|
|
145
|
+
* 更新对象中心位置、缩放、旋转和翻转
|
|
146
|
+
*
|
|
147
|
+
* @param id Design JSON 中的对象 ID
|
|
148
|
+
* @param options 要更新的变换字段
|
|
149
|
+
* @returns 约束后的对象快照,找不到对象时返回 undefined
|
|
150
|
+
* @throws 数值无效或缩放倍数不大于零时抛出错误
|
|
151
|
+
*/
|
|
152
|
+
updateObjectTransform(id: string, options: UpdateObjectTransformOptions): DesignObject | undefined;
|
|
153
|
+
/**
|
|
154
|
+
* 修改已有文字对象的内容和排版样式
|
|
155
|
+
*
|
|
156
|
+
* 连续调用会在短暂空闲后合并为一个撤销步骤
|
|
157
|
+
*
|
|
158
|
+
* @param id Design JSON 中的对象 ID
|
|
159
|
+
* @param options 要修改的文字属性,未传字段保持不变
|
|
160
|
+
* @returns 是否找到并更新了文字对象
|
|
161
|
+
* @throws 字号、行高、字距、字重或 CSS 颜色不符合约束时抛出错误
|
|
162
|
+
*/
|
|
163
|
+
updateText(id: string, options: UpdateTextOptions): boolean;
|
|
164
|
+
/**
|
|
165
|
+
* 让一个未锁定文字对象进入画布内联编辑状态
|
|
166
|
+
*
|
|
167
|
+
* @param id Design JSON 中的对象 ID
|
|
168
|
+
* @returns 是否找到文字对象并进入编辑状态
|
|
169
|
+
*/
|
|
170
|
+
editText(id: string): boolean;
|
|
53
171
|
/**
|
|
54
172
|
* 删除二维编辑器中的当前对象或选区
|
|
55
173
|
*
|
|
@@ -76,6 +194,44 @@ export declare class ProductCustomizer {
|
|
|
76
194
|
* @throws Schema 无效、画布尺寸不匹配或图片加载失败时抛出错误
|
|
77
195
|
*/
|
|
78
196
|
loadDesign(value: unknown): Promise<void>;
|
|
197
|
+
/** 当前是否存在可以撤销的设计快照 */
|
|
198
|
+
canUndo(): boolean;
|
|
199
|
+
/** 当前是否存在可以重做的设计快照 */
|
|
200
|
+
canRedo(): boolean;
|
|
201
|
+
/**
|
|
202
|
+
* 恢复上一个设计快照
|
|
203
|
+
*
|
|
204
|
+
* @returns 是否成功恢复了一个历史步骤
|
|
205
|
+
* @throws 历史中的图片无法恢复时抛出错误
|
|
206
|
+
*/
|
|
207
|
+
undo(): Promise<boolean>;
|
|
208
|
+
/**
|
|
209
|
+
* 恢复下一个设计快照
|
|
210
|
+
*
|
|
211
|
+
* @returns 是否成功恢复了一个历史步骤
|
|
212
|
+
* @throws 历史中的图片无法恢复时抛出错误
|
|
213
|
+
*/
|
|
214
|
+
redo(): Promise<boolean>;
|
|
215
|
+
/** 以当前设计为起点清空撤销与重做历史 */
|
|
216
|
+
clearHistory(): void;
|
|
217
|
+
/**
|
|
218
|
+
* 返回当前合成纹理的 PNG Data URL
|
|
219
|
+
*
|
|
220
|
+
* 结果与逻辑画布同尺寸,不包含选择框和 UV 辅助层
|
|
221
|
+
*
|
|
222
|
+
* @returns PNG Data URL
|
|
223
|
+
* @throws 远程图片污染 Canvas 时抛出安全错误
|
|
224
|
+
*/
|
|
225
|
+
getTextureDataUrl(): string;
|
|
226
|
+
/**
|
|
227
|
+
* 异步返回当前合成纹理的 PNG Blob
|
|
228
|
+
*
|
|
229
|
+
* 结果与逻辑画布同尺寸,不包含选择框和 UV 辅助层
|
|
230
|
+
*
|
|
231
|
+
* @returns PNG Blob
|
|
232
|
+
* @throws 远程图片污染 Canvas 或浏览器无法编码时抛出错误
|
|
233
|
+
*/
|
|
234
|
+
getTextureBlob(): Promise<Blob>;
|
|
79
235
|
/**
|
|
80
236
|
* 将当前二维设计合成为 PNG 并触发浏览器下载
|
|
81
237
|
*
|
|
@@ -85,9 +241,21 @@ export declare class ProductCustomizer {
|
|
|
85
241
|
exportTexture(filename?: string): void;
|
|
86
242
|
/** 恢复三维产品的默认相机位置 */
|
|
87
243
|
resetView(): void;
|
|
244
|
+
/** 返回当前三维相机位置和观察目标点 */
|
|
245
|
+
getViewState(): ProductViewState;
|
|
246
|
+
/**
|
|
247
|
+
* 恢复三维观察视角
|
|
248
|
+
*
|
|
249
|
+
* @param state 要恢复的相机位置和观察目标点
|
|
250
|
+
* @returns 应用后的独立视角快照
|
|
251
|
+
* @throws 坐标不是有限数值或相机与目标点重合时抛出错误
|
|
252
|
+
*/
|
|
253
|
+
setViewState(state: ProductViewState): ProductViewState;
|
|
88
254
|
/**
|
|
89
255
|
* 更换模型、基础纹理和接收纹理的目标 Mesh
|
|
90
256
|
*
|
|
257
|
+
* 成功后保留当前设计对象,并将当前设计设为新的历史起点
|
|
258
|
+
*
|
|
91
259
|
* @param product 新的产品配置
|
|
92
260
|
* @throws 模型或纹理加载失败、目标 Mesh 不存在时抛出错误
|
|
93
261
|
*/
|
|
@@ -102,5 +270,4 @@ export declare class ProductCustomizer {
|
|
|
102
270
|
private emit;
|
|
103
271
|
private reportError;
|
|
104
272
|
}
|
|
105
|
-
export {};
|
|
106
273
|
//# sourceMappingURL=ProductCustomizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductCustomizer.d.ts","sourceRoot":"","sources":["../../src/customizer/ProductCustomizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProductCustomizer.d.ts","sourceRoot":"","sources":["../../src/customizer/ProductCustomizer.ts"],"names":[],"mappings":"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"}
|