@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 CHANGED
@@ -1,87 +1,123 @@
1
- import { defineComponent as f, ref as p, onMounted as h, onUnmounted as _, createElementBlock as C, openBlock as S, createElementVNode as y, provide as k, createVNode as T } from "vue";
2
- import { Pooder as z } 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 E, BackgroundTool as R, MirrorTool as M, DielineTool as b, RulerTool as B, ImageTool as O, HoleTool as P } 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 A = /* @__PURE__ */ f({
6
+ const $ = /* @__PURE__ */ C({
7
7
  __name: "CanvasArea",
8
8
  emits: ["canvas-ready", "resize"],
9
- setup(s, { emit: r }) {
10
- const e = r, n = p(null), t = p(null);
11
- let c = null;
12
- return h(() => {
13
- if (n.value && t.value) {
14
- const { clientWidth: i, clientHeight: v } = n.value;
15
- t.value.width = i, t.value.height = v, e("canvas-ready", t.value), c = new ResizeObserver((l) => {
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: g, height: d } = u.contentRect;
18
- e("resize", g, d);
17
+ const { width: p, height: f } = u.contentRect;
18
+ r("resize", p, f);
19
19
  }
20
- }), c.observe(n.value);
20
+ }), n.observe(t.value);
21
21
  }
22
- }), _(() => {
23
- c && c.disconnect();
24
- }), (i, v) => (S(), C("div", {
22
+ }), w(() => {
23
+ n && n.disconnect();
24
+ }), (g, v) => (I(), x("div", {
25
25
  ref_key: "container",
26
- ref: n,
26
+ ref: t,
27
27
  class: "pooder-canvas-area"
28
28
  }, [
29
- y("canvas", {
29
+ R("canvas", {
30
30
  ref_key: "canvas",
31
- ref: t
31
+ ref: a
32
32
  }, null, 512)
33
33
  ], 512));
34
34
  }
35
- }), x = (s, r) => {
36
- const e = s.__vccOpts || s;
37
- for (const [n, t] of r)
38
- e[n] = t;
39
- return e;
40
- }, D = /* @__PURE__ */ x(A, [["__scopeId", "data-v-dc60e8d6"]]), H = { class: "pooder-editor" }, N = /* @__PURE__ */ f({
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
- setup(s, { expose: r }) {
43
- const e = new z();
44
- k("pooder", e), e.getService("CanvasService");
45
- const n = e.getService("CommandService"), t = e.getService("ConfigurationService");
46
- r({
47
- importConfig: (o) => {
48
- t.import(o);
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
- exportConfig: () => t.export(),
51
- generateCutImage: async () => await n.executeCommand("exportCutImage"),
52
- addImage: async (o, a) => await n.executeCommand("addImage", o, a),
53
- updateImage: async (o, a) => await n.executeCommand("updateImage", o, a),
54
- clearImages: async () => await n.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
+ }
55
91
  });
56
- const d = (o) => {
57
- const a = new E(o);
58
- e.registerService(a, "CanvasService"), [
59
- new R(),
60
- new M(),
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 b(),
64
- new B(),
65
- new O(),
66
- new P()
67
- ].forEach((I) => {
68
- e.extensionManager.register(I);
99
+ new V(),
100
+ new F(),
101
+ new G(),
102
+ new U()
103
+ ].forEach((i) => {
104
+ t.extensionManager.register(i);
69
105
  });
70
- }, w = (o, a) => {
71
- const m = e.getService("CanvasService");
72
- m && m.canvas.setDimensions({ width: o, height: a });
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 o = e.getService("CanvasService");
76
- o && o.dispose(), e.extensionManager.destroy();
77
- }), (o, a) => (S(), C("div", H, [
78
- T(D, {
79
- onCanvasReady: d,
80
- onResize: w
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
- }), $ = /* @__PURE__ */ x(N, [["__scopeId", "data-v-903d7337"]]);
120
+ }), ae = /* @__PURE__ */ S(J, [["__scopeId", "data-v-a3843b59"]]);
85
121
  export {
86
- $ as PooderEditor
122
+ ae as PooderEditor
87
123
  };
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(t,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):(t=typeof globalThis<"u"?globalThis:t||self,e(t.PooderVue={},t.Vue,t.PooderCore,t.PooderKit))})(this,(function(t,e,m,s){"use strict";const S=e.defineComponent({__name:"CanvasArea",emits:["canvas-ready","resize"],setup(n,{emit:d}){const o=d,a=e.ref(null),c=e.ref(null);let l=null;return e.onMounted(()=>{if(a.value&&c.value){const{clientWidth:u,clientHeight:f}=a.value;c.value.width=u,c.value.height=f,o("canvas-ready",c.value),l=new ResizeObserver(_=>{for(const y of _){const{width:C,height:p}=y.contentRect;o("resize",C,p)}}),l.observe(a.value)}}),e.onUnmounted(()=>{l&&l.disconnect()}),(u,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:a,class:"pooder-canvas-area"},[e.createElementVNode("canvas",{ref_key:"canvas",ref:c},null,512)],512))}}),g=(n,d)=>{const o=n.__vccOpts||n;for(const[a,c]of d)o[a]=c;return o},h=g(S,[["__scopeId","data-v-dc60e8d6"]]),w={class:"pooder-editor"},I=g(e.defineComponent({__name:"PooderEditor",setup(n,{expose:d}){const o=new m.Pooder;e.provide("pooder",o),o.getService("CanvasService");const a=o.getService("CommandService"),c=o.getService("ConfigurationService");d({importConfig:r=>{c.import(r)},exportConfig:()=>c.export(),generateCutImage:async()=>await a.executeCommand("exportCutImage"),addImage:async(r,i)=>await a.executeCommand("addImage",r,i),updateImage:async(r,i)=>await a.executeCommand("updateImage",r,i),clearImages:async()=>await a.executeCommand("clearImages")});const p=r=>{const i=new s.CanvasService(r);o.registerService(i,"CanvasService"),[new s.BackgroundTool,new s.MirrorTool,new s.DielineTool,new s.RulerTool,new s.ImageTool,new s.HoleTool].forEach(O=>{o.extensionManager.register(O)})},x=(r,i)=>{const v=o.getService("CanvasService");v&&v.canvas.setDimensions({width:r,height:i})};return e.onUnmounted(()=>{const r=o.getService("CanvasService");r&&r.dispose(),o.extensionManager.destroy()}),(r,i)=>(e.openBlock(),e.createElementBlock("div",w,[e.createVNode(h,{onCanvasReady:p,onResize:x})]))}}),[["__scopeId","data-v-903d7337"]]);t.PooderEditor=I,Object.keys(m).forEach(n=>{n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:()=>m[n]})}),Object.keys(s).forEach(n=>{n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:()=>s[n]})}),Object.defineProperty(t,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"})}));
@@ -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
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
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-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-903d7337]{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.2.1",
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.3.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"