customized-fabric 1.4.8 → 1.4.9
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.
@@ -1,7 +1,7 @@
|
|
1
1
|
import { fabric } from "fabric";
|
2
2
|
import { IImageOptions, IImagePlaceholderOptions, ImageFilterType } from "./interfaces";
|
3
3
|
import { ObjectId } from "../utils/objectId";
|
4
|
-
export declare const toImagePlaceholderObject: (
|
4
|
+
export declare const toImagePlaceholderObject: (object: ImagePlaceholder) => {
|
5
5
|
_id: ObjectId | undefined;
|
6
6
|
id: ObjectId | undefined;
|
7
7
|
personalizeId: number | undefined;
|
@@ -10,8 +10,12 @@ export declare const toImagePlaceholderObject: (imagePlaceholderObject: ImagePla
|
|
10
10
|
locked: boolean | undefined;
|
11
11
|
isAdditional: boolean | undefined;
|
12
12
|
maskUrl: string | undefined;
|
13
|
-
|
14
|
-
|
13
|
+
imageSettings: {
|
14
|
+
type: string | undefined;
|
15
|
+
color: string | undefined;
|
16
|
+
removeBackground: boolean | undefined;
|
17
|
+
faceCutout: boolean | undefined;
|
18
|
+
};
|
15
19
|
};
|
16
20
|
export default class ImagePlaceholder extends fabric.Group {
|
17
21
|
_id?: ObjectId;
|
@@ -23,6 +27,8 @@ export default class ImagePlaceholder extends fabric.Group {
|
|
23
27
|
isAdditional?: boolean;
|
24
28
|
imageColor?: string;
|
25
29
|
imageType?: string;
|
30
|
+
removeBackground?: boolean;
|
31
|
+
faceCutout?: boolean;
|
26
32
|
imageObject?: fabric.Image;
|
27
33
|
uploadedImage?: fabric.Image;
|
28
34
|
getSettings?: (attribute: string) => any;
|
@@ -49,11 +49,15 @@ const ImagePlaceholderClass = fabric_1.fabric.util.createClass(fabric_1.fabric.G
|
|
49
49
|
this.loadImage(options?.imageFile);
|
50
50
|
}
|
51
51
|
}
|
52
|
-
if (options?.
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
if (options?.imageSettings) {
|
53
|
+
const { type, color, removeBackground, faceCutout } = options?.imageSettings;
|
54
|
+
if (type) {
|
55
|
+
this.setImageType(type);
|
56
|
+
}
|
57
|
+
if (color) {
|
58
|
+
this.setImageColor(color);
|
59
|
+
}
|
60
|
+
this.set({ removeBackground, faceCutout });
|
57
61
|
}
|
58
62
|
},
|
59
63
|
loadImage: async function (image) {
|
@@ -151,8 +155,12 @@ const ImagePlaceholderClass = fabric_1.fabric.util.createClass(fabric_1.fabric.G
|
|
151
155
|
skewX,
|
152
156
|
skewY,
|
153
157
|
opacity,
|
154
|
-
|
155
|
-
|
158
|
+
settings: {
|
159
|
+
type: this?.imageType,
|
160
|
+
color: this?.imageColor,
|
161
|
+
removeBackground: this?.removeBackground,
|
162
|
+
faceCutout: this?.faceCutout,
|
163
|
+
},
|
156
164
|
};
|
157
165
|
}
|
158
166
|
else {
|
@@ -179,7 +187,7 @@ const ImagePlaceholderClass = fabric_1.fabric.util.createClass(fabric_1.fabric.G
|
|
179
187
|
}
|
180
188
|
},
|
181
189
|
removeMask: async function () {
|
182
|
-
this.set({ clipPath: undefined, maskUrl:
|
190
|
+
this.set({ clipPath: undefined, maskUrl: "" });
|
183
191
|
this.remove(this.maskObject);
|
184
192
|
this.maskObject = undefined;
|
185
193
|
this.canvas?.renderAll();
|
@@ -227,7 +235,8 @@ const ImagePlaceholderClass = fabric_1.fabric.util.createClass(fabric_1.fabric.G
|
|
227
235
|
const loadedImage = await (0, utils_1.loadImageFromUrl)(url);
|
228
236
|
if (loadedImage) {
|
229
237
|
const mask = await this.getMask();
|
230
|
-
const { top, left, scaleX, width, angle,
|
238
|
+
const { top, left, scaleX, width, angle, flipX, flipY, settings = {}, } = data;
|
239
|
+
const { color, type } = settings;
|
231
240
|
const ratioWidth = (width * scaleX) / (clipPath.width * clipPath.scaleX);
|
232
241
|
const ratioPosition = this.width / clipPath.width;
|
233
242
|
loadedImage.scaleToWidth(ratioWidth * this.width);
|
@@ -267,18 +276,22 @@ const ImagePlaceholderClass = fabric_1.fabric.util.createClass(fabric_1.fabric.G
|
|
267
276
|
}
|
268
277
|
},
|
269
278
|
});
|
270
|
-
const toImagePlaceholderObject = (
|
279
|
+
const toImagePlaceholderObject = (object) => {
|
271
280
|
return {
|
272
|
-
_id:
|
273
|
-
id:
|
274
|
-
personalizeId:
|
275
|
-
layerId:
|
276
|
-
name:
|
277
|
-
locked:
|
278
|
-
isAdditional:
|
279
|
-
maskUrl:
|
280
|
-
|
281
|
-
|
281
|
+
_id: object?._id,
|
282
|
+
id: object?._id,
|
283
|
+
personalizeId: object?.layerId,
|
284
|
+
layerId: object?.layerId,
|
285
|
+
name: object?.name,
|
286
|
+
locked: object?.locked,
|
287
|
+
isAdditional: object?.isAdditional,
|
288
|
+
maskUrl: object?.maskUrl,
|
289
|
+
imageSettings: {
|
290
|
+
type: object?.imageType,
|
291
|
+
color: object?.imageColor,
|
292
|
+
removeBackground: object?.removeBackground,
|
293
|
+
faceCutout: object?.faceCutout,
|
294
|
+
},
|
282
295
|
};
|
283
296
|
};
|
284
297
|
exports.toImagePlaceholderObject = toImagePlaceholderObject;
|
@@ -33,8 +33,10 @@ export interface IImageOptions {
|
|
33
33
|
skewX: number;
|
34
34
|
skewY: number;
|
35
35
|
opacity: number;
|
36
|
-
|
37
|
-
|
36
|
+
settings: {
|
37
|
+
color?: string;
|
38
|
+
type?: ImageFilterType;
|
39
|
+
};
|
38
40
|
};
|
39
41
|
clipPath: IClipPathOptions;
|
40
42
|
}
|
@@ -43,13 +45,17 @@ export interface IImagePlaceholderOptions extends fabric.IGroupOptions {
|
|
43
45
|
personalizeId?: number;
|
44
46
|
layerId: number;
|
45
47
|
imageFile?: File;
|
46
|
-
imageType?: string;
|
47
|
-
imageColor?: string;
|
48
48
|
isOriginal?: boolean;
|
49
49
|
isAdditional?: boolean;
|
50
50
|
image?: IImageOptions;
|
51
51
|
maskUrl?: string;
|
52
52
|
maskFile?: File;
|
53
53
|
hideStroke?: boolean;
|
54
|
+
imageSettings?: {
|
55
|
+
type?: string;
|
56
|
+
color?: string;
|
57
|
+
removeBackground?: boolean;
|
58
|
+
faceCutout?: boolean;
|
59
|
+
};
|
54
60
|
}
|
55
61
|
export declare type ImageFilterType = "Full color" | "Grayscale" | "Blend color";
|
package/lib/utils/index.js
CHANGED
@@ -202,6 +202,9 @@ fabric_1.fabric.Group.prototype.originX = "center";
|
|
202
202
|
fabric_1.fabric.Group.prototype.originY = "center";
|
203
203
|
fabric_1.fabric.ActiveSelection.prototype.originX = "center";
|
204
204
|
fabric_1.fabric.ActiveSelection.prototype.originY = "center";
|
205
|
+
if (fabric_1.fabric.isWebglSupported()) {
|
206
|
+
fabric_1.fabric.textureSize = fabric_1.fabric.maxTextureSize;
|
207
|
+
}
|
205
208
|
fabric_1.fabric.Object.prototype.toObject = (function (toObject) {
|
206
209
|
return function () {
|
207
210
|
switch (this.type) {
|