@pooder/vue 3.2.1 → 3.3.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.es.js +97 -61
- package/dist/index.umd.js +1 -1
- package/dist/vue/src/PooderEditor.vue.d.ts +7 -1
- package/dist/vue.css +1 -1
- package/package.json +3 -3
package/dist/index.es.js
CHANGED
|
@@ -1,87 +1,123 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { Pooder as
|
|
1
|
+
import { defineComponent as C, ref as _, onMounted as A, onUnmounted as w, createElementBlock as x, openBlock as I, createElementVNode as R, provide as M, createVNode as B } from "vue";
|
|
2
|
+
import { Pooder as H } from "@pooder/core";
|
|
3
3
|
export * from "@pooder/core";
|
|
4
|
-
import { CanvasService as
|
|
4
|
+
import { CanvasService as P, BackgroundTool as W, ImageTool as N, MirrorTool as V, DielineTool as F, RulerTool as G, FeatureTool as U } from "@pooder/kit";
|
|
5
5
|
export * from "@pooder/kit";
|
|
6
|
-
const
|
|
6
|
+
const $ = /* @__PURE__ */ C({
|
|
7
7
|
__name: "CanvasArea",
|
|
8
8
|
emits: ["canvas-ready", "resize"],
|
|
9
|
-
setup(
|
|
10
|
-
const
|
|
11
|
-
let
|
|
12
|
-
return
|
|
13
|
-
if (
|
|
14
|
-
const { clientWidth:
|
|
15
|
-
|
|
9
|
+
setup(m, { emit: d }) {
|
|
10
|
+
const r = d, t = _(null), a = _(null);
|
|
11
|
+
let n = null;
|
|
12
|
+
return A(() => {
|
|
13
|
+
if (t.value && a.value) {
|
|
14
|
+
const { clientWidth: g, clientHeight: v } = t.value;
|
|
15
|
+
a.value.width = g, a.value.height = v, r("canvas-ready", a.value), n = new ResizeObserver((l) => {
|
|
16
16
|
for (const u of l) {
|
|
17
|
-
const { width:
|
|
18
|
-
|
|
17
|
+
const { width: p, height: f } = u.contentRect;
|
|
18
|
+
r("resize", p, f);
|
|
19
19
|
}
|
|
20
|
-
}),
|
|
20
|
+
}), n.observe(t.value);
|
|
21
21
|
}
|
|
22
|
-
}),
|
|
23
|
-
|
|
24
|
-
}), (
|
|
22
|
+
}), w(() => {
|
|
23
|
+
n && n.disconnect();
|
|
24
|
+
}), (g, v) => (I(), x("div", {
|
|
25
25
|
ref_key: "container",
|
|
26
|
-
ref:
|
|
26
|
+
ref: t,
|
|
27
27
|
class: "pooder-canvas-area"
|
|
28
28
|
}, [
|
|
29
|
-
|
|
29
|
+
R("canvas", {
|
|
30
30
|
ref_key: "canvas",
|
|
31
|
-
ref:
|
|
31
|
+
ref: a
|
|
32
32
|
}, null, 512)
|
|
33
33
|
], 512));
|
|
34
34
|
}
|
|
35
|
-
}),
|
|
36
|
-
const
|
|
37
|
-
for (const [
|
|
38
|
-
|
|
39
|
-
return
|
|
40
|
-
},
|
|
35
|
+
}), S = (m, d) => {
|
|
36
|
+
const r = m.__vccOpts || m;
|
|
37
|
+
for (const [t, a] of d)
|
|
38
|
+
r[t] = a;
|
|
39
|
+
return r;
|
|
40
|
+
}, j = /* @__PURE__ */ S($, [["__scopeId", "data-v-ba73979d"]]), q = { class: "pooder-editor" }, J = /* @__PURE__ */ C({
|
|
41
41
|
__name: "PooderEditor",
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
r({
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
emits: ["image-change"],
|
|
43
|
+
setup(m, { expose: d, emit: r }) {
|
|
44
|
+
const t = new H();
|
|
45
|
+
M("pooder", t);
|
|
46
|
+
const a = t.getService("CommandService"), n = t.getService("ConfigurationService"), g = r, v = n.onAnyChange((e) => {
|
|
47
|
+
e.key === "image.items" && g("image-change", e.value);
|
|
48
|
+
});
|
|
49
|
+
d({
|
|
50
|
+
importConfig: (e) => {
|
|
51
|
+
n.import(e);
|
|
52
|
+
},
|
|
53
|
+
exportConfig: () => n.export(),
|
|
54
|
+
getImages: () => n.get("image.items", []),
|
|
55
|
+
generateCutImage: async () => await a.executeCommand("exportCutImage"),
|
|
56
|
+
addImage: async (e, o) => {
|
|
57
|
+
const c = await a.executeCommand("addImage", e, o), i = await a.executeCommand("getGeometry"), s = t.getService("CanvasService");
|
|
58
|
+
if (i && s) {
|
|
59
|
+
const k = s.canvas.width, D = s.canvas.height, h = (n.get("dieline.offset") || 0) * i.scale, b = i.width + 2 * h, E = i.height + 2 * h, O = i.x / k, z = i.y / D;
|
|
60
|
+
await a.executeCommand("fitImageToArea", c, {
|
|
61
|
+
width: b,
|
|
62
|
+
height: E,
|
|
63
|
+
left: O,
|
|
64
|
+
top: z
|
|
65
|
+
});
|
|
66
|
+
} else s && await a.executeCommand("fitImageToArea", c, {
|
|
67
|
+
width: s.canvas.width,
|
|
68
|
+
height: s.canvas.height,
|
|
69
|
+
left: 0.5,
|
|
70
|
+
top: 0.5
|
|
71
|
+
});
|
|
72
|
+
return c;
|
|
49
73
|
},
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
74
|
+
updateImage: async (e, o) => await a.executeCommand("updateImage", e, o),
|
|
75
|
+
clearImages: async () => await a.executeCommand("clearImages"),
|
|
76
|
+
detectDieline: async (e) => {
|
|
77
|
+
const o = await a.executeCommand("detectEdge", e, {
|
|
78
|
+
expand: 10,
|
|
79
|
+
// 安全距离(像素)
|
|
80
|
+
smoothing: !0,
|
|
81
|
+
// 是否平滑
|
|
82
|
+
simplifyTolerance: 2
|
|
83
|
+
// 平滑度容差,值越大越圆润
|
|
84
|
+
});
|
|
85
|
+
if (o) {
|
|
86
|
+
const { pathData: c, width: i, height: s } = o;
|
|
87
|
+
return n.update("dieline.shape", "custom"), n.update("dieline.pathData", c), n.update("dieline.width", i), n.update("dieline.height", s), c;
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
55
91
|
});
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
new
|
|
60
|
-
new
|
|
92
|
+
const y = (e) => {
|
|
93
|
+
const o = new P(e);
|
|
94
|
+
t.registerService(o, "CanvasService"), [
|
|
95
|
+
new W(),
|
|
96
|
+
new N(),
|
|
61
97
|
// new FilmTool(),
|
|
62
98
|
// new WhiteInkTool(),
|
|
63
|
-
new
|
|
64
|
-
new
|
|
65
|
-
new
|
|
66
|
-
new
|
|
67
|
-
].forEach((
|
|
68
|
-
|
|
99
|
+
new V(),
|
|
100
|
+
new F(),
|
|
101
|
+
new G(),
|
|
102
|
+
new U()
|
|
103
|
+
].forEach((i) => {
|
|
104
|
+
t.extensionManager.register(i);
|
|
69
105
|
});
|
|
70
|
-
},
|
|
71
|
-
const
|
|
72
|
-
|
|
106
|
+
}, T = (e, o) => {
|
|
107
|
+
const c = t.getService("CanvasService");
|
|
108
|
+
c && c.canvas.setDimensions({ width: e, height: o });
|
|
73
109
|
};
|
|
74
|
-
return
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
}), (
|
|
78
|
-
|
|
79
|
-
onCanvasReady:
|
|
80
|
-
onResize:
|
|
110
|
+
return w(() => {
|
|
111
|
+
const e = t.getService("CanvasService");
|
|
112
|
+
e && e.dispose(), v.dispose(), t.extensionManager.destroy();
|
|
113
|
+
}), (e, o) => (I(), x("div", q, [
|
|
114
|
+
B(j, {
|
|
115
|
+
onCanvasReady: y,
|
|
116
|
+
onResize: T
|
|
81
117
|
})
|
|
82
118
|
]));
|
|
83
119
|
}
|
|
84
|
-
}),
|
|
120
|
+
}), ae = /* @__PURE__ */ S(J, [["__scopeId", "data-v-a3843b59"]]);
|
|
85
121
|
export {
|
|
86
|
-
|
|
122
|
+
ae as PooderEditor
|
|
87
123
|
};
|
package/dist/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(i,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@pooder/core"),require("@pooder/kit")):typeof define=="function"&&define.amd?define(["exports","vue","@pooder/core","@pooder/kit"],e):(i=typeof globalThis<"u"?globalThis:i||self,e(i.PooderVue={},i.Vue,i.PooderCore,i.PooderKit))})(this,(function(i,e,v,m){"use strict";const I=e.defineComponent({__name:"CanvasArea",emits:["canvas-ready","resize"],setup(a,{emit:u}){const g=u,n=e.ref(null),o=e.ref(null);let c=null;return e.onMounted(()=>{if(n.value&&o.value){const{clientWidth:f,clientHeight:p}=n.value;o.value.width=f,o.value.height=p,g("canvas-ready",o.value),c=new ResizeObserver(y=>{for(const _ of y){const{width:C,height:w}=_.contentRect;g("resize",C,w)}}),c.observe(n.value)}}),e.onUnmounted(()=>{c&&c.disconnect()}),(f,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:n,class:"pooder-canvas-area"},[e.createElementVNode("canvas",{ref_key:"canvas",ref:o},null,512)],512))}}),h=(a,u)=>{const g=a.__vccOpts||a;for(const[n,o]of u)g[n]=o;return g},x=h(I,[["__scopeId","data-v-ba73979d"]]),O={class:"pooder-editor"},b=h(e.defineComponent({__name:"PooderEditor",emits:["image-change"],setup(a,{expose:u,emit:g}){const n=new v.Pooder;e.provide("pooder",n);const o=n.getService("CommandService"),c=n.getService("ConfigurationService"),f=g,p=c.onAnyChange(t=>{t.key==="image.items"&&f("image-change",t.value)});u({importConfig:t=>{c.import(t)},exportConfig:()=>c.export(),getImages:()=>c.get("image.items",[]),generateCutImage:async()=>await o.executeCommand("exportCutImage"),addImage:async(t,r)=>{const s=await o.executeCommand("addImage",t,r),d=await o.executeCommand("getGeometry"),l=n.getService("CanvasService");if(d&&l){const E=l.canvas.width,j=l.canvas.height,S=(c.get("dieline.offset")||0)*d.scale,D=d.width+2*S,z=d.height+2*S,A=d.x/E,B=d.y/j;await o.executeCommand("fitImageToArea",s,{width:D,height:z,left:A,top:B})}else l&&await o.executeCommand("fitImageToArea",s,{width:l.canvas.width,height:l.canvas.height,left:.5,top:.5});return s},updateImage:async(t,r)=>await o.executeCommand("updateImage",t,r),clearImages:async()=>await o.executeCommand("clearImages"),detectDieline:async t=>{const r=await o.executeCommand("detectEdge",t,{expand:10,smoothing:!0,simplifyTolerance:2});if(r){const{pathData:s,width:d,height:l}=r;return c.update("dieline.shape","custom"),c.update("dieline.pathData",s),c.update("dieline.width",d),c.update("dieline.height",l),s}return null}});const P=t=>{const r=new m.CanvasService(t);n.registerService(r,"CanvasService"),[new m.BackgroundTool,new m.ImageTool,new m.MirrorTool,new m.DielineTool,new m.RulerTool,new m.FeatureTool].forEach(d=>{n.extensionManager.register(d)})},T=(t,r)=>{const s=n.getService("CanvasService");s&&s.canvas.setDimensions({width:t,height:r})};return e.onUnmounted(()=>{const t=n.getService("CanvasService");t&&t.dispose(),p.dispose(),n.extensionManager.destroy()}),(t,r)=>(e.openBlock(),e.createElementBlock("div",O,[e.createVNode(x,{onCanvasReady:P,onResize:T})]))}}),[["__scopeId","data-v-a3843b59"]]);i.PooderEditor=b,Object.keys(v).forEach(a=>{a!=="default"&&!Object.prototype.hasOwnProperty.call(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:()=>v[a]})}),Object.keys(m).forEach(a=>{a!=="default"&&!Object.prototype.hasOwnProperty.call(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:()=>m[a]})}),Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}));
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
declare const _default: import('vue').DefineComponent<{}, {
|
|
2
2
|
importConfig: (config: Record<string, any>) => void;
|
|
3
3
|
exportConfig: () => Record<string, any>;
|
|
4
|
+
getImages: () => never[];
|
|
4
5
|
generateCutImage: () => Promise<any>;
|
|
5
6
|
addImage: (url: string, options?: any) => Promise<any>;
|
|
6
7
|
updateImage: (id: string, options?: any) => Promise<any>;
|
|
7
8
|
clearImages: () => Promise<any>;
|
|
8
|
-
|
|
9
|
+
detectDieline: (url: string) => Promise<any>;
|
|
10
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
11
|
+
"image-change": (images: any[]) => any;
|
|
12
|
+
}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
|
|
13
|
+
"onImage-change"?: ((images: any[]) => any) | undefined;
|
|
14
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
9
15
|
export default _default;
|
package/dist/vue.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.pooder-canvas-area[data-v-
|
|
1
|
+
.pooder-canvas-area[data-v-ba73979d]{flex:1;width:100%;height:100%;min-height:650px;min-width:650px;overflow:hidden;background:#f5f5f5;position:relative}canvas[data-v-ba73979d]{display:block}.pooder-editor[data-v-a3843b59]{display:flex;width:100%;height:100%;overflow:hidden}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pooder/vue",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.1",
|
|
4
4
|
"main": "./dist/index.umd.js",
|
|
5
5
|
"module": "./dist/index.es.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"access": "public"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@pooder/
|
|
23
|
-
"@pooder/
|
|
22
|
+
"@pooder/core": "1.2.0",
|
|
23
|
+
"@pooder/kit": "3.5.0"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"vue": "^3.0.0"
|