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