@bwp-web/canvas 0.6.0 → 0.6.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/dist/index.cjs +48 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -1
- package/dist/serialization.d.ts +7 -5
- package/dist/serialization.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2259,14 +2259,62 @@ function serializeCanvas(canvas, options) {
|
|
|
2259
2259
|
obj.set({ rx: base.rx, ry: base.ry });
|
|
2260
2260
|
}
|
|
2261
2261
|
});
|
|
2262
|
+
const savedOrigins = /* @__PURE__ */ new Map();
|
|
2263
|
+
canvas.forEachObject((obj) => {
|
|
2264
|
+
if (obj.originX === "left" && obj.originY === "top") return;
|
|
2265
|
+
savedOrigins.set(obj, {
|
|
2266
|
+
originX: obj.originX,
|
|
2267
|
+
originY: obj.originY,
|
|
2268
|
+
left: obj.left ?? 0,
|
|
2269
|
+
top: obj.top ?? 0
|
|
2270
|
+
});
|
|
2271
|
+
const leftTop = obj.getPositionByOrigin("left", "top");
|
|
2272
|
+
obj.set({ originX: "left", originY: "top", left: leftTop.x, top: leftTop.y });
|
|
2273
|
+
});
|
|
2274
|
+
const bg = canvas.backgroundImage;
|
|
2275
|
+
let savedBgOrigin = null;
|
|
2276
|
+
if (bg instanceof import_fabric16.FabricImage && (bg.originX !== "left" || bg.originY !== "top")) {
|
|
2277
|
+
savedBgOrigin = {
|
|
2278
|
+
originX: bg.originX,
|
|
2279
|
+
originY: bg.originY,
|
|
2280
|
+
left: bg.left ?? 0,
|
|
2281
|
+
top: bg.top ?? 0
|
|
2282
|
+
};
|
|
2283
|
+
const leftTop = bg.getPositionByOrigin("left", "top");
|
|
2284
|
+
bg.set({ originX: "left", originY: "top", left: leftTop.x, top: leftTop.y });
|
|
2285
|
+
}
|
|
2286
|
+
const savedData = /* @__PURE__ */ new Map();
|
|
2287
|
+
canvas.forEachObject((obj) => {
|
|
2288
|
+
const base = strokeBaseMap.get(obj) ?? obj.strokeWidth;
|
|
2289
|
+
if (base !== void 0 && base !== 0 && obj.data) {
|
|
2290
|
+
savedData.set(obj, obj.data);
|
|
2291
|
+
obj.data = {
|
|
2292
|
+
...obj.data,
|
|
2293
|
+
strokeWidthBase: base
|
|
2294
|
+
};
|
|
2295
|
+
}
|
|
2296
|
+
});
|
|
2262
2297
|
const json = canvas.toObject(properties);
|
|
2263
2298
|
delete json.backgroundColor;
|
|
2299
|
+
json.backgroundFilters = {
|
|
2300
|
+
opacity: getBackgroundContrast(canvas),
|
|
2301
|
+
inverted: getBackgroundInverted(canvas)
|
|
2302
|
+
};
|
|
2264
2303
|
scaledWidths.forEach((scaled, obj) => {
|
|
2265
2304
|
obj.strokeWidth = scaled;
|
|
2266
2305
|
});
|
|
2267
2306
|
appliedRadii.forEach((radii, obj) => {
|
|
2268
2307
|
obj.set({ rx: radii.rx, ry: radii.ry });
|
|
2269
2308
|
});
|
|
2309
|
+
savedOrigins.forEach((saved, obj) => {
|
|
2310
|
+
obj.set(saved);
|
|
2311
|
+
});
|
|
2312
|
+
if (savedBgOrigin && bg instanceof import_fabric16.FabricImage) {
|
|
2313
|
+
bg.set(savedBgOrigin);
|
|
2314
|
+
}
|
|
2315
|
+
savedData.forEach((originalData, obj) => {
|
|
2316
|
+
obj.data = originalData;
|
|
2317
|
+
});
|
|
2270
2318
|
return json;
|
|
2271
2319
|
}
|
|
2272
2320
|
async function loadCanvas(canvas, json, options) {
|