customforge 0.1.0-alpha.2 → 0.1.1
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 +91 -56
- package/LICENSES/NunitoSans-OFL.txt +93 -93
- package/LICENSES/plain-mug-CC-BY-4.0.txt +11 -0
- package/README.md +592 -461
- package/README.zh-CN.md +587 -459
- package/dist/{ProductCustomizer-rMRyWe7L.js → ProductCustomizer-BnjY3v7d.js} +898 -156
- package/dist/ProductCustomizer-BnjY3v7d.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 +183 -5
- 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 +98 -9
- package/dist/customizer/ProductCustomizer.d.ts.map +1 -1
- package/dist/editor/DesignEditor.d.ts +118 -10
- package/dist/editor/DesignEditor.d.ts.map +1 -1
- 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 -1
- package/dist/index.js.map +1 -1
- package/dist/style.css +2120 -1327
- 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 +85 -8
- package/dist/workbench/CustomForgeWorkbench.d.ts.map +1 -1
- package/dist/workbench/config.d.ts +42 -1
- package/dist/workbench/config.d.ts.map +1 -1
- package/dist/workbench/icons.d.ts.map +1 -1
- package/dist/workbench/index.d.ts +3 -3
- package/dist/workbench/index.d.ts.map +1 -1
- package/dist/workbench/template.d.ts.map +1 -1
- package/dist/workbench/types.d.ts +261 -13
- package/dist/workbench/types.d.ts.map +1 -1
- package/dist/workbench.js +1248 -116
- package/dist/workbench.js.map +1 -1
- package/package.json +27 -20
- package/dist/ProductCustomizer-rMRyWe7L.js.map +0 -1
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
|
*/
|
|
@@ -31,7 +73,27 @@ export interface CustomizerOptions {
|
|
|
31
73
|
product?: ProductConfiguration;
|
|
32
74
|
/** 可保留的撤销步骤数量,默认为 50 */
|
|
33
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;
|
|
34
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';
|
|
35
97
|
/**
|
|
36
98
|
* 添加文字时使用的配置
|
|
37
99
|
*
|
|
@@ -50,10 +112,49 @@ export interface AddTextOptions {
|
|
|
50
112
|
width?: number;
|
|
51
113
|
/** 字体名称 */
|
|
52
114
|
fontFamily?: string;
|
|
53
|
-
/**
|
|
115
|
+
/** 字体大小,单位为像素,默认为 22 */
|
|
54
116
|
fontSize?: number;
|
|
55
117
|
/** 文字颜色,支持 CSS 颜色值 */
|
|
56
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;
|
|
57
158
|
}
|
|
58
159
|
/**
|
|
59
160
|
* 添加图片时使用的配置
|
|
@@ -65,7 +166,7 @@ export interface AddImageOptions {
|
|
|
65
166
|
src: string;
|
|
66
167
|
/** 图层面板中显示的可选名称 */
|
|
67
168
|
name?: string;
|
|
68
|
-
/**
|
|
169
|
+
/** 图片在设计中的用途,背景会忽略位置和宽度、替换已有背景、铺满当前 UV 可打印区域并锁定在最底层 */
|
|
69
170
|
role?: DesignImageRole;
|
|
70
171
|
/** 图片中心在画布中的横坐标,单位为像素,越界时自动修正 */
|
|
71
172
|
x?: number;
|
|
@@ -98,6 +199,23 @@ export interface DesignObjectTransform {
|
|
|
98
199
|
/** 是否沿对象自身纵轴翻转 */
|
|
99
200
|
flipY: boolean;
|
|
100
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
|
+
}
|
|
101
219
|
/** Design JSON 中可编辑对象共用的图层状态 */
|
|
102
220
|
export interface DesignObjectState {
|
|
103
221
|
/** 图层面板使用的可选名称,缺省时由对象内容生成 */
|
|
@@ -127,6 +245,20 @@ export interface TextDesignObject extends DesignObjectState {
|
|
|
127
245
|
fontSize: number;
|
|
128
246
|
/** 文字颜色,仅保存 CSS 字符串颜色 */
|
|
129
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;
|
|
130
262
|
}
|
|
131
263
|
/** Design JSON 中的图片对象 */
|
|
132
264
|
export interface ImageDesignObject extends DesignObjectState {
|
|
@@ -163,6 +295,50 @@ export interface HistoryState {
|
|
|
163
295
|
/** 当前是否存在可以重做的设计快照 */
|
|
164
296
|
canRedo: boolean;
|
|
165
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
|
+
}
|
|
166
342
|
/**
|
|
167
343
|
* 产品定制器事件及其载荷
|
|
168
344
|
*/
|
|
@@ -179,7 +355,7 @@ export interface CustomizerEventMap {
|
|
|
179
355
|
historychange: HistoryState;
|
|
180
356
|
/** 产品模型和纹理完成加载 */
|
|
181
357
|
ready: {
|
|
182
|
-
product:
|
|
358
|
+
product: ResolvedProductConfiguration;
|
|
183
359
|
};
|
|
184
360
|
/** 二维编辑器的选中状态发生变化,objectIds 按画布层级从后到前排列 */
|
|
185
361
|
selectionchange: {
|
|
@@ -190,6 +366,8 @@ export interface CustomizerEventMap {
|
|
|
190
366
|
status: {
|
|
191
367
|
message: string;
|
|
192
368
|
};
|
|
369
|
+
/** 用户操作或 API 调整了三维观察视角 */
|
|
370
|
+
viewchange: ProductViewState;
|
|
193
371
|
}
|
|
194
372
|
/**
|
|
195
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":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,MAAM,CAAA;AAEhD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,kCAAkC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,oBAAoB;AACpB,MAAM,WAAW,4BAA4B;IAC3C,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,mBAAmB;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAA;IAEnB,wBAAwB;IACxB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,qBAAqB;AACrB,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,0BAA0B;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,mBAAmB;AACnB,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,sBAAsB;AACtB,MAAM,WAAW,oBAAoB;IACnC,kBAAkB;IAClB,MAAM,CAAC,EAAE,gBAAgB,CAAA;IAEzB,gBAAgB;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,MAAM,EAAE,aAAa,CAAA;IAErB,0BAA0B;IAC1B,MAAM,EAAE,aAAa,CAAA;IAErB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,kBAAkB;IAClB,OAAO,CAAC,EAAE,oBAAoB,CAAA;IAE9B,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B,yBAAyB;IACzB,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAClC;AAED,kBAAkB;AAClB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEvD,gBAAgB;AAChB,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE/C,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEvD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,kCAAkC;IAClC,CAAC,CAAC,EAAE,MAAM,CAAA;IAEV,kCAAkC;IAClC,CAAC,CAAC,EAAE,MAAM,CAAA;IAEV,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,iBAAiB;IACjB,UAAU,CAAC,EAAE,cAAc,CAAA;IAE3B,wBAAwB;IACxB,SAAS,CAAC,EAAE,aAAa,CAAA;IAEzB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAA;IAEzB,oBAAoB;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,0BAA0B;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,WAAW;IACX,UAAU,CAAC,EAAE,cAAc,CAAA;IAE3B,aAAa;IACb,SAAS,CAAC,EAAE,aAAa,CAAA;IAEzB,cAAc;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,iBAAiB;IACjB,SAAS,CAAC,EAAE,aAAa,CAAA;IAEzB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,sBAAsB;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAA;IAEX,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,uDAAuD;IACvD,IAAI,CAAC,EAAE,eAAe,CAAA;IAEtB,iCAAiC;IACjC,CAAC,CAAC,EAAE,MAAM,CAAA;IAEV,iCAAiC;IACjC,CAAC,CAAC,EAAE,MAAM,CAAA;IAEV,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,4BAA4B;AAC5B,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAA;IAEb,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,gCAAgC;AAChC,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,CAAC,EAAE,MAAM,CAAA;IAET,yBAAyB;IACzB,CAAC,EAAE,MAAM,CAAA;IAET,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAA;IAEd,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAA;IAEd,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAA;IAEhB,kBAAkB;IAClB,KAAK,EAAE,OAAO,CAAA;IAEd,kBAAkB;IAClB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,4BAA4B;AAC5B,MAAM,WAAW,4BAA4B;IAC3C,wBAAwB;IACxB,CAAC,CAAC,EAAE,MAAM,CAAA;IAEV,wBAAwB;IACxB,CAAC,CAAC,EAAE,MAAM,CAAA;IAEV,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,gCAAgC;AAChC,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,YAAY,CAAA;AAEtD,yBAAyB;AACzB,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IAEV,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IAEZ,cAAc;IACd,SAAS,EAAE,qBAAqB,CAAA;IAEhC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAA;IAEZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IAEb,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAA;IAElB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAA;IAEhB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAA;IAEb,uBAAuB;IACvB,UAAU,CAAC,EAAE,cAAc,CAAA;IAE3B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,aAAa,CAAA;IAEzB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,aAAa,CAAA;IAEzB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,0BAA0B;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,yBAAyB;AACzB,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IAEV,oBAAoB;IACpB,IAAI,EAAE,OAAO,CAAA;IAEb,cAAc;IACd,SAAS,EAAE,qBAAqB,CAAA;IAEhC,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAA;IAEX,wBAAwB;IACxB,IAAI,CAAC,EAAE,eAAe,CAAA;CACvB;AAED,6BAA6B;AAC7B,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAE/D;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,OAAO,EAAE,CAAC,CAAA;IAEV,qBAAqB;IACrB,MAAM,EAAE,YAAY,CAAA;IAEpB,wBAAwB;IACxB,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB;AAED,mBAAmB;AACnB,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAA;IAEhB,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,kBAAkB;AAClB,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAA;IAEZ,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAA;IAEX,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAA;IAEb,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,gBAAgB;AAChB,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,CAAC,EAAE,MAAM,CAAA;IAET,WAAW;IACX,CAAC,EAAE,MAAM,CAAA;IAET,YAAY;IACZ,CAAC,EAAE,MAAM,CAAA;CACV;AAED,oBAAoB;AACpB,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,QAAQ,EAAE,YAAY,CAAA;IAEtB,oBAAoB;IACpB,MAAM,EAAE,YAAY,CAAA;CACrB;AAED,2BAA2B;AAC3B,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,OAAO,EAAE,4BAA4B,CAAA;IAErC,eAAe;IACf,MAAM,EAAE,YAAY,CAAA;IAEpB,4BAA4B;IAC5B,eAAe,EAAE,YAAY,CAAA;IAE7B,qBAAqB;IACrB,OAAO,EAAE,YAAY,EAAE,CAAA;IAEvB,wBAAwB;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAE3B,kBAAkB;IAClB,OAAO,EAAE,YAAY,CAAA;IAErB,eAAe;IACf,IAAI,EAAE,gBAAgB,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;IAE/B,mBAAmB;IACnB,KAAK,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAA;IAEvB,oBAAoB;IACpB,aAAa,EAAE,YAAY,CAAA;IAE3B,kBAAkB;IAClB,KAAK,EAAE;QAAE,OAAO,EAAE,4BAA4B,CAAA;KAAE,CAAA;IAEhD,2CAA2C;IAC3C,eAAe,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAE/D,kBAAkB;IAClB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAE3B,0BAA0B;IAC1B,UAAU,EAAE,gBAAgB,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,kBAAkB,CAAA"}
|
|
@@ -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;
|
|
@@ -16,6 +16,7 @@ export declare class ProductCustomizer {
|
|
|
16
16
|
private readonly stopSelectionListener;
|
|
17
17
|
private readonly stopRenderListener;
|
|
18
18
|
private readonly stopHistoryListener;
|
|
19
|
+
private readonly stopViewListener;
|
|
19
20
|
private destroyed;
|
|
20
21
|
private constructor();
|
|
21
22
|
/**
|
|
@@ -33,31 +34,41 @@ export declare class ProductCustomizer {
|
|
|
33
34
|
* @param listener 接收对应事件载荷的监听函数
|
|
34
35
|
* @returns 用于取消本次订阅的函数
|
|
35
36
|
*/
|
|
36
|
-
on<K extends CustomizerEventName>(event: K, listener:
|
|
37
|
+
on<K extends CustomizerEventName>(event: K, listener: CustomizerEventListener<K>): () => void;
|
|
37
38
|
/**
|
|
38
39
|
* 在二维画布中添加并选中一个文字对象
|
|
39
40
|
*
|
|
40
41
|
* 创建后和用户变换期间,对象会自动缩放或平移以保持完整可见
|
|
41
42
|
*
|
|
42
43
|
* @param options 文字内容、位置和样式配置
|
|
44
|
+
* @returns 创建后的可持久化文字对象快照
|
|
43
45
|
*/
|
|
44
|
-
addText(options?: AddTextOptions):
|
|
46
|
+
addText(options?: AddTextOptions): TextDesignObject;
|
|
45
47
|
/**
|
|
46
48
|
* 加载图片并将其添加到二维画布
|
|
47
49
|
*
|
|
48
|
-
* role 为 background
|
|
50
|
+
* role 为 background 时会替换已有设计背景、铺满当前 UV 可打印区域并默认锁定在最底层
|
|
49
51
|
* 创建后和用户变换期间,对象会自动缩放或平移以保持完整可见
|
|
50
52
|
*
|
|
51
53
|
* @param options 图片地址、位置和显示宽度
|
|
54
|
+
* @returns 创建后的可持久化图片对象快照
|
|
52
55
|
* @throws 图片无法访问、加载失败或被 CORS 策略阻止时抛出错误
|
|
53
56
|
*/
|
|
54
|
-
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;
|
|
55
66
|
/**
|
|
56
67
|
* 返回当前可编辑对象的独立快照
|
|
57
68
|
*
|
|
58
69
|
* @returns 按画布层级从后到前排列的 Design JSON 对象
|
|
59
70
|
*/
|
|
60
|
-
getObjects():
|
|
71
|
+
getObjects(): DesignObject[];
|
|
61
72
|
/** 当前选中对象的 ID,按画布层级从后到前排列 */
|
|
62
73
|
getSelectedObjectIds(): string[];
|
|
63
74
|
/**
|
|
@@ -67,6 +78,21 @@ export declare class ProductCustomizer {
|
|
|
67
78
|
* @returns 是否找到并选中了对象
|
|
68
79
|
*/
|
|
69
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;
|
|
70
96
|
/**
|
|
71
97
|
* 按稳定 ID 删除一个对象
|
|
72
98
|
*
|
|
@@ -82,6 +108,15 @@ export declare class ProductCustomizer {
|
|
|
82
108
|
* @returns 对象层级是否发生变化
|
|
83
109
|
*/
|
|
84
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;
|
|
85
120
|
/**
|
|
86
121
|
* 修改对象在图层面板中的名称
|
|
87
122
|
*
|
|
@@ -106,6 +141,33 @@ export declare class ProductCustomizer {
|
|
|
106
141
|
* @returns 是否找到并更新了对象
|
|
107
142
|
*/
|
|
108
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;
|
|
109
171
|
/**
|
|
110
172
|
* 删除二维编辑器中的当前对象或选区
|
|
111
173
|
*
|
|
@@ -152,6 +214,24 @@ export declare class ProductCustomizer {
|
|
|
152
214
|
redo(): Promise<boolean>;
|
|
153
215
|
/** 以当前设计为起点清空撤销与重做历史 */
|
|
154
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>;
|
|
155
235
|
/**
|
|
156
236
|
* 将当前二维设计合成为 PNG 并触发浏览器下载
|
|
157
237
|
*
|
|
@@ -161,6 +241,16 @@ export declare class ProductCustomizer {
|
|
|
161
241
|
exportTexture(filename?: string): void;
|
|
162
242
|
/** 恢复三维产品的默认相机位置 */
|
|
163
243
|
resetView(): void;
|
|
244
|
+
/** 返回当前三维相机位置和观察目标点 */
|
|
245
|
+
getViewState(): ProductViewState;
|
|
246
|
+
/**
|
|
247
|
+
* 恢复三维观察视角
|
|
248
|
+
*
|
|
249
|
+
* @param state 要恢复的相机位置和观察目标点
|
|
250
|
+
* @returns 应用后的独立视角快照
|
|
251
|
+
* @throws 坐标不是有限数值或相机与目标点重合时抛出错误
|
|
252
|
+
*/
|
|
253
|
+
setViewState(state: ProductViewState): ProductViewState;
|
|
164
254
|
/**
|
|
165
255
|
* 更换模型、基础纹理和接收纹理的目标 Mesh
|
|
166
256
|
*
|
|
@@ -180,5 +270,4 @@ export declare class ProductCustomizer {
|
|
|
180
270
|
private emit;
|
|
181
271
|
private reportError;
|
|
182
272
|
}
|
|
183
|
-
export {};
|
|
184
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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"}
|