labellife-design-tool 1.1.6 → 1.1.7
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/README.md
CHANGED
|
@@ -174,6 +174,23 @@ store.activePage.addElement({
|
|
|
174
174
|
// Load templates
|
|
175
175
|
await store.loadJSON(templateData);
|
|
176
176
|
|
|
177
|
+
// Export to blob
|
|
178
|
+
const pngBlob = await store.toBlob('png');
|
|
179
|
+
const jpgBlob = await store.toBlob('jpg');
|
|
180
|
+
|
|
181
|
+
// Download the blob
|
|
182
|
+
const downloadBlob = (blob: Blob, filename: string) => {
|
|
183
|
+
const url = URL.createObjectURL(blob);
|
|
184
|
+
const a = document.createElement('a');
|
|
185
|
+
a.href = url;
|
|
186
|
+
a.download = filename;
|
|
187
|
+
a.click();
|
|
188
|
+
URL.revokeObjectURL(url);
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
downloadBlob(pngBlob, 'design.png');
|
|
192
|
+
downloadBlob(jpgBlob, 'design.jpg');
|
|
193
|
+
|
|
177
194
|
// Use with CanvasEditor (optional)
|
|
178
195
|
<CanvasEditor name="Editor" config={{ panels: ["text", "elements"] }} />
|
|
179
196
|
|
|
@@ -316,6 +333,9 @@ interface SimpleStore {
|
|
|
316
333
|
updateDesign(updates: Partial<CanvasDesign>): void;
|
|
317
334
|
loadJSON(jsonData: any): Promise<void>;
|
|
318
335
|
|
|
336
|
+
// Export operations
|
|
337
|
+
toBlob(type?: 'png' | 'jpg'): Promise<Blob>;
|
|
338
|
+
|
|
319
339
|
// Events
|
|
320
340
|
on(event: 'designChanged' | 'activePageChanged' | 'activePanelChanged', callback: Function): void;
|
|
321
341
|
off(event: string): void;
|
package/dist/lib/lib/index.js
CHANGED
|
@@ -3971,6 +3971,35 @@ class SimpleCanvasStore {
|
|
|
3971
3971
|
this._activePanelId = panelId;
|
|
3972
3972
|
this.emit("activePanelChanged", panelId);
|
|
3973
3973
|
}
|
|
3974
|
+
async toBlob(type = "png") {
|
|
3975
|
+
return new Promise((resolve, reject) => {
|
|
3976
|
+
try {
|
|
3977
|
+
Promise.resolve().then(() => exports_exportImportUtils).then(({ canvasToBlob: canvasToBlob2 }) => {
|
|
3978
|
+
const canvas = document.createElement("canvas");
|
|
3979
|
+
canvas.width = this._design.width;
|
|
3980
|
+
canvas.height = this._design.height;
|
|
3981
|
+
const ctx = canvas.getContext("2d");
|
|
3982
|
+
if (!ctx) {
|
|
3983
|
+
reject(new Error("Failed to get canvas context"));
|
|
3984
|
+
return;
|
|
3985
|
+
}
|
|
3986
|
+
ctx.fillStyle = "#ffffff";
|
|
3987
|
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
3988
|
+
const mimeType = type === "jpg" ? "image/jpeg" : "image/png";
|
|
3989
|
+
const quality = type === "jpg" ? 0.9 : undefined;
|
|
3990
|
+
canvas.toBlob((blob) => {
|
|
3991
|
+
if (blob) {
|
|
3992
|
+
resolve(blob);
|
|
3993
|
+
} else {
|
|
3994
|
+
reject(new Error("Failed to create blob"));
|
|
3995
|
+
}
|
|
3996
|
+
}, mimeType, quality);
|
|
3997
|
+
});
|
|
3998
|
+
} catch (error) {
|
|
3999
|
+
reject(error);
|
|
4000
|
+
}
|
|
4001
|
+
});
|
|
4002
|
+
}
|
|
3974
4003
|
async loadJSON(jsonData) {
|
|
3975
4004
|
return new Promise((resolve, reject) => {
|
|
3976
4005
|
try {
|
package/dist/lib/wordpress.js
CHANGED
|
@@ -3971,6 +3971,35 @@ class SimpleCanvasStore {
|
|
|
3971
3971
|
this._activePanelId = panelId;
|
|
3972
3972
|
this.emit("activePanelChanged", panelId);
|
|
3973
3973
|
}
|
|
3974
|
+
async toBlob(type = "png") {
|
|
3975
|
+
return new Promise((resolve, reject) => {
|
|
3976
|
+
try {
|
|
3977
|
+
Promise.resolve().then(() => exports_exportImportUtils).then(({ canvasToBlob: canvasToBlob2 }) => {
|
|
3978
|
+
const canvas = document.createElement("canvas");
|
|
3979
|
+
canvas.width = this._design.width;
|
|
3980
|
+
canvas.height = this._design.height;
|
|
3981
|
+
const ctx = canvas.getContext("2d");
|
|
3982
|
+
if (!ctx) {
|
|
3983
|
+
reject(new Error("Failed to get canvas context"));
|
|
3984
|
+
return;
|
|
3985
|
+
}
|
|
3986
|
+
ctx.fillStyle = "#ffffff";
|
|
3987
|
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
3988
|
+
const mimeType = type === "jpg" ? "image/jpeg" : "image/png";
|
|
3989
|
+
const quality = type === "jpg" ? 0.9 : undefined;
|
|
3990
|
+
canvas.toBlob((blob) => {
|
|
3991
|
+
if (blob) {
|
|
3992
|
+
resolve(blob);
|
|
3993
|
+
} else {
|
|
3994
|
+
reject(new Error("Failed to create blob"));
|
|
3995
|
+
}
|
|
3996
|
+
}, mimeType, quality);
|
|
3997
|
+
});
|
|
3998
|
+
} catch (error) {
|
|
3999
|
+
reject(error);
|
|
4000
|
+
}
|
|
4001
|
+
});
|
|
4002
|
+
}
|
|
3974
4003
|
async loadJSON(jsonData) {
|
|
3975
4004
|
return new Promise((resolve, reject) => {
|
|
3976
4005
|
try {
|
|
@@ -28,6 +28,7 @@ export declare class SimpleCanvasStore {
|
|
|
28
28
|
updateElement(elementId: string, updates: Partial<CanvasElement>): void;
|
|
29
29
|
deleteElement(elementId: string): void;
|
|
30
30
|
openSidePanel(panelId: string | null): void;
|
|
31
|
+
toBlob(type?: 'png' | 'jpg'): Promise<Blob>;
|
|
31
32
|
loadJSON(jsonData: any): Promise<void>;
|
|
32
33
|
}
|
|
33
34
|
export declare const createSimpleStore: (initialDesign?: Partial<CanvasDesign>) => SimpleCanvasStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleStore.d.ts","sourceRoot":"","sources":["../../../src/store/simpleStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtD;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAkC;gBAExC,aAAa,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAyBjD,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAI9E,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAI/C,OAAO,CAAC,IAAI;IAQZ,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,UAAU,IAAI,IAAI,GAAG,IAAI,CAE5B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IAGD,SAAS,CAAC,MAAM,EAAE,YAAY;IAa9B,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC;IAM3C,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM;IAcrC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE;IAmB7B,aAAa,CAAC,MAAM,EAAE,MAAM;IAU5B,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;IAuB1C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;IAWhE,aAAa,CAAC,SAAS,EAAE,MAAM;IAY/B,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B7C;AAGD,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,OAAO,CAAC,YAAY,CAAC,KAAG,iBAEzE,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"simpleStore.d.ts","sourceRoot":"","sources":["../../../src/store/simpleStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtD;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAkC;gBAExC,aAAa,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAyBjD,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAI9E,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAI/C,OAAO,CAAC,IAAI;IAQZ,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,UAAU,IAAI,IAAI,GAAG,IAAI,CAE5B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IAGD,SAAS,CAAC,MAAM,EAAE,YAAY;IAa9B,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC;IAM3C,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM;IAcrC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE;IAmB7B,aAAa,CAAC,MAAM,EAAE,MAAM;IAU5B,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;IAuB1C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;IAWhE,aAAa,CAAC,SAAS,EAAE,MAAM;IAY/B,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B,MAAM,CAAC,IAAI,GAAE,KAAK,GAAG,KAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2ClD,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B7C;AAGD,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,OAAO,CAAC,YAAY,CAAC,KAAG,iBAEzE,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC"}
|
package/package.json
CHANGED