@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.js
CHANGED
|
@@ -2192,14 +2192,62 @@ function serializeCanvas(canvas, options) {
|
|
|
2192
2192
|
obj.set({ rx: base.rx, ry: base.ry });
|
|
2193
2193
|
}
|
|
2194
2194
|
});
|
|
2195
|
+
const savedOrigins = /* @__PURE__ */ new Map();
|
|
2196
|
+
canvas.forEachObject((obj) => {
|
|
2197
|
+
if (obj.originX === "left" && obj.originY === "top") return;
|
|
2198
|
+
savedOrigins.set(obj, {
|
|
2199
|
+
originX: obj.originX,
|
|
2200
|
+
originY: obj.originY,
|
|
2201
|
+
left: obj.left ?? 0,
|
|
2202
|
+
top: obj.top ?? 0
|
|
2203
|
+
});
|
|
2204
|
+
const leftTop = obj.getPositionByOrigin("left", "top");
|
|
2205
|
+
obj.set({ originX: "left", originY: "top", left: leftTop.x, top: leftTop.y });
|
|
2206
|
+
});
|
|
2207
|
+
const bg = canvas.backgroundImage;
|
|
2208
|
+
let savedBgOrigin = null;
|
|
2209
|
+
if (bg instanceof FabricImage2 && (bg.originX !== "left" || bg.originY !== "top")) {
|
|
2210
|
+
savedBgOrigin = {
|
|
2211
|
+
originX: bg.originX,
|
|
2212
|
+
originY: bg.originY,
|
|
2213
|
+
left: bg.left ?? 0,
|
|
2214
|
+
top: bg.top ?? 0
|
|
2215
|
+
};
|
|
2216
|
+
const leftTop = bg.getPositionByOrigin("left", "top");
|
|
2217
|
+
bg.set({ originX: "left", originY: "top", left: leftTop.x, top: leftTop.y });
|
|
2218
|
+
}
|
|
2219
|
+
const savedData = /* @__PURE__ */ new Map();
|
|
2220
|
+
canvas.forEachObject((obj) => {
|
|
2221
|
+
const base = strokeBaseMap.get(obj) ?? obj.strokeWidth;
|
|
2222
|
+
if (base !== void 0 && base !== 0 && obj.data) {
|
|
2223
|
+
savedData.set(obj, obj.data);
|
|
2224
|
+
obj.data = {
|
|
2225
|
+
...obj.data,
|
|
2226
|
+
strokeWidthBase: base
|
|
2227
|
+
};
|
|
2228
|
+
}
|
|
2229
|
+
});
|
|
2195
2230
|
const json = canvas.toObject(properties);
|
|
2196
2231
|
delete json.backgroundColor;
|
|
2232
|
+
json.backgroundFilters = {
|
|
2233
|
+
opacity: getBackgroundContrast(canvas),
|
|
2234
|
+
inverted: getBackgroundInverted(canvas)
|
|
2235
|
+
};
|
|
2197
2236
|
scaledWidths.forEach((scaled, obj) => {
|
|
2198
2237
|
obj.strokeWidth = scaled;
|
|
2199
2238
|
});
|
|
2200
2239
|
appliedRadii.forEach((radii, obj) => {
|
|
2201
2240
|
obj.set({ rx: radii.rx, ry: radii.ry });
|
|
2202
2241
|
});
|
|
2242
|
+
savedOrigins.forEach((saved, obj) => {
|
|
2243
|
+
obj.set(saved);
|
|
2244
|
+
});
|
|
2245
|
+
if (savedBgOrigin && bg instanceof FabricImage2) {
|
|
2246
|
+
bg.set(savedBgOrigin);
|
|
2247
|
+
}
|
|
2248
|
+
savedData.forEach((originalData, obj) => {
|
|
2249
|
+
obj.data = originalData;
|
|
2250
|
+
});
|
|
2203
2251
|
return json;
|
|
2204
2252
|
}
|
|
2205
2253
|
async function loadCanvas(canvas, json, options) {
|