@leafer-in/resize 1.7.0 → 1.9.0

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/resize.js CHANGED
@@ -1,71 +1,81 @@
1
1
  this.LeaferIN = this.LeaferIN || {};
2
- this.LeaferIN.resize = (function (exports, draw) {
3
- 'use strict';
4
2
 
5
- const { M, L, C, Q, Z, N, D, X, G, F, O, P, U } = draw.PathCommandMap;
3
+ this.LeaferIN.resize = function(exports, draw) {
4
+ "use strict";
5
+ const {M: M, L: L, C: C, Q: Q, Z: Z, N: N, D: D, X: X, G: G, F: F, O: O, P: P, U: U} = draw.PathCommandMap;
6
6
  const PathScaler = {
7
7
  scale(data, scaleX, scaleY) {
8
- if (!data)
9
- return;
8
+ if (!data) return;
10
9
  let command;
11
10
  let i = 0, len = data.length;
12
11
  while (i < len) {
13
12
  command = data[i];
14
13
  switch (command) {
15
- case M:
16
- case L:
17
- scalePoints(data, scaleX, scaleY, i, 1);
18
- i += 3;
19
- break;
20
- case C:
21
- scalePoints(data, scaleX, scaleY, i, 3);
22
- i += 7;
23
- break;
24
- case Q:
25
- scalePoints(data, scaleX, scaleY, i, 2);
26
- i += 5;
27
- break;
28
- case Z:
29
- i += 1;
30
- break;
31
- case N:
32
- scalePoints(data, scaleX, scaleY, i, 2);
33
- i += 5;
34
- break;
35
- case D:
36
- scalePoints(data, scaleX, scaleY, i, 2);
37
- i += 9;
38
- break;
39
- case X:
40
- scalePoints(data, scaleX, scaleY, i, 2);
41
- i += 6;
42
- break;
43
- case G:
44
- scalePoints(data, scaleX, scaleY, i, 2);
45
- i += 9;
46
- break;
47
- case F:
48
- scalePoints(data, scaleX, scaleY, i, 2);
49
- i += 5;
50
- break;
51
- case O:
52
- data[i] = G;
53
- data.splice(i + 4, 0, data[i + 3], 0);
54
- scalePoints(data, scaleX, scaleY, i, 2);
55
- i += 7 + 2;
56
- len += 2;
57
- break;
58
- case P:
59
- data[i] = F;
60
- data.splice(i + 4, 0, data[i + 3]);
61
- scalePoints(data, scaleX, scaleY, i, 2);
62
- i += 4 + 1;
63
- len += 1;
64
- break;
65
- case U:
66
- scalePoints(data, scaleX, scaleY, i, 2);
67
- i += 6;
68
- break;
14
+ case M:
15
+ case L:
16
+ scalePoints(data, scaleX, scaleY, i, 1);
17
+ i += 3;
18
+ break;
19
+
20
+ case C:
21
+ scalePoints(data, scaleX, scaleY, i, 3);
22
+ i += 7;
23
+ break;
24
+
25
+ case Q:
26
+ scalePoints(data, scaleX, scaleY, i, 2);
27
+ i += 5;
28
+ break;
29
+
30
+ case Z:
31
+ i += 1;
32
+ break;
33
+
34
+ case N:
35
+ scalePoints(data, scaleX, scaleY, i, 2);
36
+ i += 5;
37
+ break;
38
+
39
+ case D:
40
+ scalePoints(data, scaleX, scaleY, i, 2);
41
+ i += 9;
42
+ break;
43
+
44
+ case X:
45
+ scalePoints(data, scaleX, scaleY, i, 2);
46
+ i += 6;
47
+ break;
48
+
49
+ case G:
50
+ scalePoints(data, scaleX, scaleY, i, 2);
51
+ i += 9;
52
+ break;
53
+
54
+ case F:
55
+ scalePoints(data, scaleX, scaleY, i, 2);
56
+ i += 5;
57
+ break;
58
+
59
+ case O:
60
+ data[i] = G;
61
+ data.splice(i + 4, 0, data[i + 3], 0);
62
+ scalePoints(data, scaleX, scaleY, i, 2);
63
+ i += 7 + 2;
64
+ len += 2;
65
+ break;
66
+
67
+ case P:
68
+ data[i] = F;
69
+ data.splice(i + 4, 0, data[i + 3]);
70
+ scalePoints(data, scaleX, scaleY, i, 2);
71
+ i += 4 + 1;
72
+ len += 1;
73
+ break;
74
+
75
+ case U:
76
+ scalePoints(data, scaleX, scaleY, i, 2);
77
+ i += 6;
78
+ break;
69
79
  }
70
80
  }
71
81
  },
@@ -76,156 +86,136 @@ this.LeaferIN.resize = (function (exports, draw) {
76
86
  }
77
87
  }
78
88
  };
79
- const { scalePoints } = PathScaler;
80
-
89
+ const {scalePoints: scalePoints} = PathScaler;
81
90
  const matrix = draw.MatrixHelper.get();
82
- const { topLeft, top, topRight, right, bottom, left } = draw.Direction9;
91
+ const {topLeft: topLeft, top: top, topRight: topRight, right: right, bottom: bottom, left: left} = draw.Direction9;
83
92
  function scaleResize(leaf, scaleX, scaleY) {
84
93
  if (leaf.pathInputed) {
85
94
  scaleResizePath(leaf, scaleX, scaleY);
86
- }
87
- else {
88
- if (scaleX !== 1)
89
- leaf.width *= scaleX;
90
- if (scaleY !== 1)
91
- leaf.height *= scaleY;
95
+ } else {
96
+ if (scaleX !== 1) leaf.width *= scaleX;
97
+ if (scaleY !== 1) leaf.height *= scaleY;
92
98
  }
93
99
  }
94
100
  function scaleResizeFontSize(leaf, scaleX, scaleY, direction) {
95
101
  let fontScale = scaleX;
96
- if (direction !== undefined) {
102
+ if (!draw.isUndefined(direction)) {
97
103
  const layout = leaf.__layout;
98
- let { width, height } = layout.boxBounds;
104
+ let {width: width, height: height} = layout.boxBounds;
99
105
  width *= scaleY - scaleX;
100
106
  height *= scaleX - scaleY;
101
107
  switch (direction) {
102
- case top:
103
- case bottom:
104
- fontScale = scaleY;
105
- layout.affectScaleOrRotation ? leaf.moveInner(-width / 2, 0) : leaf.x -= width / 2;
106
- break;
107
- case left:
108
- case right:
109
- layout.affectScaleOrRotation ? leaf.moveInner(0, -height / 2) : leaf.y -= height / 2;
110
- break;
111
- case topLeft:
112
- case topRight:
113
- layout.affectScaleOrRotation ? leaf.moveInner(0, -height) : leaf.y -= height;
114
- break;
108
+ case top:
109
+ case bottom:
110
+ fontScale = scaleY;
111
+ layout.affectScaleOrRotation ? leaf.moveInner(-width / 2, 0) : leaf.x -= width / 2;
112
+ break;
113
+
114
+ case left:
115
+ case right:
116
+ layout.affectScaleOrRotation ? leaf.moveInner(0, -height / 2) : leaf.y -= height / 2;
117
+ break;
118
+
119
+ case topLeft:
120
+ case topRight:
121
+ layout.affectScaleOrRotation ? leaf.moveInner(0, -height) : leaf.y -= height;
122
+ break;
115
123
  }
116
124
  }
117
125
  leaf.fontSize *= fontScale;
118
- const data = leaf.__, { padding } = data;
119
- if (padding)
120
- leaf.padding = padding instanceof Array ? padding.map(item => item * fontScale) : padding * fontScale;
121
- if (!data.__autoWidth)
122
- leaf.width *= fontScale;
123
- if (!data.__autoHeight)
124
- leaf.height *= fontScale;
126
+ const data = leaf.__, {padding: padding} = data;
127
+ if (padding) leaf.padding = draw.isArray(padding) ? padding.map(item => item * fontScale) : padding * fontScale;
128
+ if (!data.__autoWidth) leaf.width *= fontScale;
129
+ if (!data.__autoHeight) leaf.height *= fontScale;
125
130
  }
126
131
  function scaleResizePath(leaf, scaleX, scaleY) {
127
132
  PathScaler.scale(leaf.__.path, scaleX, scaleY);
128
133
  leaf.path = leaf.__.path;
129
134
  }
130
135
  function scaleResizePoints(leaf, scaleX, scaleY) {
131
- const { points } = leaf;
132
- typeof points[0] === 'object' ? points.forEach(p => { p.x *= scaleX, p.y *= scaleY; }) : PathScaler.scalePoints(points, scaleX, scaleY);
136
+ const {points: points} = leaf;
137
+ draw.isObject(points[0]) ? points.forEach(p => {
138
+ p.x *= scaleX, p.y *= scaleY;
139
+ }) : PathScaler.scalePoints(points, scaleX, scaleY);
133
140
  leaf.points = points;
134
141
  }
135
142
  function scaleResizeGroup(group, scaleX, scaleY) {
136
- const { children } = group;
143
+ const {children: children} = group;
137
144
  for (let i = 0; i < children.length; i++) {
138
145
  matrix.a = scaleX;
139
146
  matrix.d = scaleY;
140
147
  children[i].transform(matrix, true);
141
148
  }
142
149
  }
143
-
144
150
  const leaf = draw.Leaf.prototype;
145
- leaf.scaleResize = function (scaleX, scaleY = scaleX, noResize) {
151
+ leaf.scaleResize = function(scaleX, scaleY = scaleX, noResize) {
146
152
  const data = this;
147
- if (noResize || (data.editConfig && data.editConfig.editSize === 'scale')) {
153
+ if (noResize || data.editConfig && data.editConfig.editSize === "scale") {
148
154
  data.scaleX *= scaleX;
149
155
  data.scaleY *= scaleY;
150
- }
151
- else {
152
- if (scaleX < 0)
153
- data.scaleX *= -1, scaleX = -scaleX;
154
- if (scaleY < 0)
155
- data.scaleY *= -1, scaleY = -scaleY;
156
+ } else {
157
+ if (scaleX < 0) data.scaleX *= -1, scaleX = -scaleX;
158
+ if (scaleY < 0) data.scaleY *= -1, scaleY = -scaleY;
156
159
  this.__scaleResize(scaleX, scaleY);
157
160
  }
158
161
  };
159
- leaf.__scaleResize = function (scaleX, scaleY) {
162
+ leaf.__scaleResize = function(scaleX, scaleY) {
160
163
  scaleResize(this, scaleX, scaleY);
161
164
  };
162
- leaf.resizeWidth = function (width) {
163
- const scale = width / this.getBounds('box', 'local').width || 1;
165
+ leaf.resizeWidth = function(width) {
166
+ const scale = width / this.getBounds("box", "local").width || 1;
164
167
  this.scaleOf(this.__layout.boxBounds, scale, this.__.lockRatio ? scale : 1, true);
165
168
  };
166
- leaf.resizeHeight = function (height) {
167
- const scale = height / this.getBounds('box', 'local').height || 1;
169
+ leaf.resizeHeight = function(height) {
170
+ const scale = height / this.getBounds("box", "local").height || 1;
168
171
  this.scaleOf(this.__layout.boxBounds, this.__.lockRatio ? scale : 1, scale, true);
169
172
  };
170
- draw.Text.prototype.__scaleResize = function (scaleX, scaleY) {
171
- const { app, editConfig } = this, editor = app && app.editor, dragPoint = editor && editor.dragPoint;
172
- const { __autoWidth, __autoHeight, textAlign, verticalAlign } = this.__, { boxBounds } = this.__layout;
173
- if (__autoWidth && textAlign !== 'left' && scaleX !== 1)
174
- this.x += boxBounds.x;
175
- if (__autoHeight && verticalAlign !== 'top' && scaleY !== 1)
176
- this.y += boxBounds.y;
177
- if (this.__.resizeFontSize || (editConfig && editConfig.editSize === 'font-size') || (dragPoint && editor.mergedConfig.editSize === 'font-size')) {
173
+ draw.Text.prototype.__scaleResize = function(scaleX, scaleY) {
174
+ const {app: app, editConfig: editConfig} = this, editor = app && app.editor, dragPoint = editor && editor.dragPoint;
175
+ if (this.__.resizeFontSize || editConfig && editConfig.editSize === "font-size" || dragPoint && editor.mergedConfig.editSize === "font-size") {
178
176
  scaleResizeFontSize(this, scaleX, scaleY, dragPoint && dragPoint.direction);
179
- }
180
- else {
177
+ } else {
178
+ const {__autoWidth: __autoWidth, __autoHeight: __autoHeight, textAlign: textAlign, verticalAlign: verticalAlign} = this.__, {boxBounds: boxBounds} = this.__layout;
179
+ if (__autoWidth && textAlign !== "left" && scaleX !== 1) this.x += boxBounds.x;
180
+ if (__autoHeight && verticalAlign !== "top" && scaleY !== 1) this.y += boxBounds.y;
181
181
  scaleResize(this, scaleX, scaleY);
182
182
  }
183
183
  };
184
- draw.Path.prototype.__scaleResize = function (scaleX, scaleY) {
184
+ draw.Path.prototype.__scaleResize = function(scaleX, scaleY) {
185
185
  scaleResizePath(this, scaleX, scaleY);
186
186
  };
187
- draw.Line.prototype.__scaleResize = function (scaleX, scaleY) {
187
+ draw.Line.prototype.__scaleResize = function(scaleX, scaleY) {
188
188
  if (this.pathInputed) {
189
189
  scaleResizePath(this, scaleX, scaleY);
190
- }
191
- else if (this.points) {
190
+ } else if (this.points) {
192
191
  scaleResizePoints(this, scaleX, scaleY);
193
- }
194
- else {
192
+ } else {
195
193
  this.width *= scaleX;
196
194
  }
197
195
  };
198
- draw.Polygon.prototype.__scaleResize = function (scaleX, scaleY) {
196
+ draw.Polygon.prototype.__scaleResize = function(scaleX, scaleY) {
199
197
  if (this.pathInputed) {
200
198
  scaleResizePath(this, scaleX, scaleY);
201
- }
202
- else if (this.points) {
199
+ } else if (this.points) {
203
200
  scaleResizePoints(this, scaleX, scaleY);
204
- }
205
- else {
201
+ } else {
206
202
  scaleResize(this, scaleX, scaleY);
207
203
  }
208
204
  };
209
- draw.Group.prototype.__scaleResize = function (scaleX, scaleY) {
205
+ draw.Group.prototype.__scaleResize = function(scaleX, scaleY) {
210
206
  scaleResizeGroup(this, scaleX, scaleY);
211
207
  };
212
- draw.Box.prototype.__scaleResize = function (scaleX, scaleY) {
213
- const { resizeChildren, __autoSize } = this.__;
214
- if (!(__autoSize && resizeChildren))
215
- scaleResize(this, scaleX, scaleY);
216
- if (resizeChildren)
217
- scaleResizeGroup(this, scaleX, scaleY);
208
+ draw.Box.prototype.__scaleResize = function(scaleX, scaleY) {
209
+ const {resizeChildren: resizeChildren, __autoSize: __autoSize} = this.__;
210
+ if (!(__autoSize && resizeChildren)) scaleResize(this, scaleX, scaleY);
211
+ if (resizeChildren) scaleResizeGroup(this, scaleX, scaleY);
218
212
  };
219
-
220
- draw.Plugin.add('resize');
221
-
213
+ draw.Plugin.add("resize");
222
214
  exports.PathScaler = PathScaler;
223
215
  exports.scaleResize = scaleResize;
224
216
  exports.scaleResizeFontSize = scaleResizeFontSize;
225
217
  exports.scaleResizeGroup = scaleResizeGroup;
226
218
  exports.scaleResizePath = scaleResizePath;
227
219
  exports.scaleResizePoints = scaleResizePoints;
228
-
229
220
  return exports;
230
-
231
- })({}, LeaferUI);
221
+ }({}, LeaferUI);
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("@leafer-ui/draw");const{M:e,L:i,C:s,Q:o,Z:a,N:n,D:c,X:h,G:r,F:l,O:_,P:p,U:f}=t.PathCommandMap,u={scale(t,u,z){if(!t)return;let g,b=0,x=t.length;for(;b<x;)switch(g=t[b],g){case e:case i:d(t,u,z,b,1),b+=3;break;case s:d(t,u,z,b,3),b+=7;break;case o:d(t,u,z,b,2),b+=5;break;case a:b+=1;break;case n:d(t,u,z,b,2),b+=5;break;case c:d(t,u,z,b,2),b+=9;break;case h:d(t,u,z,b,2),b+=6;break;case r:d(t,u,z,b,2),b+=9;break;case l:d(t,u,z,b,2),b+=5;break;case _:t[b]=r,t.splice(b+4,0,t[b+3],0),d(t,u,z,b,2),b+=9,x+=2;break;case p:t[b]=l,t.splice(b+4,0,t[b+3]),d(t,u,z,b,2),b+=5,x+=1;break;case f:d(t,u,z,b,2),b+=6}},scalePoints(t,e,i,s,o){for(let a=o?s+1:0,n=o?a+2*o:t.length;a<n;a+=2)t[a]*=e,t[a+1]*=i}},{scalePoints:d}=u,z=t.MatrixHelper.get(),{topLeft:g,top:b,topRight:x,right:R,bottom:y,left:k}=t.Direction9;function P(t,e,i){t.pathInputed?m(t,e,i):(1!==e&&(t.width*=e),1!==i&&(t.height*=i))}function S(t,e,i,s){let o=e;if(void 0!==s){const a=t.__layout;let{width:n,height:c}=a.boxBounds;switch(n*=i-e,c*=e-i,s){case b:case y:o=i,a.affectScaleOrRotation?t.moveInner(-n/2,0):t.x-=n/2;break;case k:case R:a.affectScaleOrRotation?t.moveInner(0,-c/2):t.y-=c/2;break;case g:case x:a.affectScaleOrRotation?t.moveInner(0,-c):t.y-=c}}t.fontSize*=o;const a=t.__,{padding:n}=a;n&&(t.padding=n instanceof Array?n.map((t=>t*o)):n*o),a.__autoWidth||(t.width*=o),a.__autoHeight||(t.height*=o)}function m(t,e,i){u.scale(t.__.path,e,i),t.path=t.__.path}function w(t,e,i){const{points:s}=t;"object"==typeof s[0]?s.forEach((t=>{t.x*=e,t.y*=i})):u.scalePoints(s,e,i),t.points=s}function B(t,e,i){const{children:s}=t;for(let t=0;t<s.length;t++)z.a=e,z.d=i,s[t].transform(z,!0)}const C=t.Leaf.prototype;C.scaleResize=function(t,e=t,i){const s=this;i||s.editConfig&&"scale"===s.editConfig.editSize?(s.scaleX*=t,s.scaleY*=e):(t<0&&(s.scaleX*=-1,t=-t),e<0&&(s.scaleY*=-1,e=-e),this.__scaleResize(t,e))},C.__scaleResize=function(t,e){P(this,t,e)},C.resizeWidth=function(t){const e=t/this.getBounds("box","local").width||1;this.scaleOf(this.__layout.boxBounds,e,this.__.lockRatio?e:1,!0)},C.resizeHeight=function(t){const e=t/this.getBounds("box","local").height||1;this.scaleOf(this.__layout.boxBounds,this.__.lockRatio?e:1,e,!0)},t.Text.prototype.__scaleResize=function(t,e){const{app:i,editConfig:s}=this,o=i&&i.editor,a=o&&o.dragPoint,{__autoWidth:n,__autoHeight:c,textAlign:h,verticalAlign:r}=this.__,{boxBounds:l}=this.__layout;n&&"left"!==h&&1!==t&&(this.x+=l.x),c&&"top"!==r&&1!==e&&(this.y+=l.y),this.__.resizeFontSize||s&&"font-size"===s.editSize||a&&"font-size"===o.mergedConfig.editSize?S(this,t,e,a&&a.direction):P(this,t,e)},t.Path.prototype.__scaleResize=function(t,e){m(this,t,e)},t.Line.prototype.__scaleResize=function(t,e){this.pathInputed?m(this,t,e):this.points?w(this,t,e):this.width*=t},t.Polygon.prototype.__scaleResize=function(t,e){this.pathInputed?m(this,t,e):this.points?w(this,t,e):P(this,t,e)},t.Group.prototype.__scaleResize=function(t,e){B(this,t,e)},t.Box.prototype.__scaleResize=function(t,e){const{resizeChildren:i,__autoSize:s}=this.__;s&&i||P(this,t,e),i&&B(this,t,e)},t.Plugin.add("resize"),exports.PathScaler=u,exports.scaleResize=P,exports.scaleResizeFontSize=S,exports.scaleResizeGroup=B,exports.scaleResizePath=m,exports.scaleResizePoints=w;
1
+ "use strict";var e=require("@leafer-ui/draw");const{M:t,L:i,C:s,Q:o,Z:a,N:n,D:c,X:h,G:r,F:l,O:_,P:p,U:f}=e.PathCommandMap,d={scale(e,d,z){if(!e)return;let g,b=0,x=e.length;for(;b<x;)switch(g=e[b],g){case t:case i:u(e,d,z,b,1),b+=3;break;case s:u(e,d,z,b,3),b+=7;break;case o:u(e,d,z,b,2),b+=5;break;case a:b+=1;break;case n:u(e,d,z,b,2),b+=5;break;case c:u(e,d,z,b,2),b+=9;break;case h:u(e,d,z,b,2),b+=6;break;case r:u(e,d,z,b,2),b+=9;break;case l:u(e,d,z,b,2),b+=5;break;case _:e[b]=r,e.splice(b+4,0,e[b+3],0),u(e,d,z,b,2),b+=9,x+=2;break;case p:e[b]=l,e.splice(b+4,0,e[b+3]),u(e,d,z,b,2),b+=5,x+=1;break;case f:u(e,d,z,b,2),b+=6}},scalePoints(e,t,i,s,o){for(let a=o?s+1:0,n=o?a+2*o:e.length;a<n;a+=2)e[a]*=t,e[a+1]*=i}},{scalePoints:u}=d,z=e.MatrixHelper.get(),{topLeft:g,top:b,topRight:x,right:R,bottom:y,left:k}=e.Direction9;function P(e,t,i){e.pathInputed?m(e,t,i):(1!==t&&(e.width*=t),1!==i&&(e.height*=i))}function S(t,i,s,o){let a=i;if(!e.isUndefined(o)){const e=t.__layout;let{width:n,height:c}=e.boxBounds;switch(n*=s-i,c*=i-s,o){case b:case y:a=s,e.affectScaleOrRotation?t.moveInner(-n/2,0):t.x-=n/2;break;case k:case R:e.affectScaleOrRotation?t.moveInner(0,-c/2):t.y-=c/2;break;case g:case x:e.affectScaleOrRotation?t.moveInner(0,-c):t.y-=c}}t.fontSize*=a;const n=t.__,{padding:c}=n;c&&(t.padding=e.isArray(c)?c.map(e=>e*a):c*a),n.__autoWidth||(t.width*=a),n.__autoHeight||(t.height*=a)}function m(e,t,i){d.scale(e.__.path,t,i),e.path=e.__.path}function w(t,i,s){const{points:o}=t;e.isObject(o[0])?o.forEach(e=>{e.x*=i,e.y*=s}):d.scalePoints(o,i,s),t.points=o}function B(e,t,i){const{children:s}=e;for(let e=0;e<s.length;e++)z.a=t,z.d=i,s[e].transform(z,!0)}const C=e.Leaf.prototype;C.scaleResize=function(e,t=e,i){const s=this;i||s.editConfig&&"scale"===s.editConfig.editSize?(s.scaleX*=e,s.scaleY*=t):(e<0&&(s.scaleX*=-1,e=-e),t<0&&(s.scaleY*=-1,t=-t),this.__scaleResize(e,t))},C.__scaleResize=function(e,t){P(this,e,t)},C.resizeWidth=function(e){const t=e/this.getBounds("box","local").width||1;this.scaleOf(this.__layout.boxBounds,t,this.__.lockRatio?t:1,!0)},C.resizeHeight=function(e){const t=e/this.getBounds("box","local").height||1;this.scaleOf(this.__layout.boxBounds,this.__.lockRatio?t:1,t,!0)},e.Text.prototype.__scaleResize=function(e,t){const{app:i,editConfig:s}=this,o=i&&i.editor,a=o&&o.dragPoint;if(this.__.resizeFontSize||s&&"font-size"===s.editSize||a&&"font-size"===o.mergedConfig.editSize)S(this,e,t,a&&a.direction);else{const{__autoWidth:i,__autoHeight:s,textAlign:o,verticalAlign:a}=this.__,{boxBounds:n}=this.__layout;i&&"left"!==o&&1!==e&&(this.x+=n.x),s&&"top"!==a&&1!==t&&(this.y+=n.y),P(this,e,t)}},e.Path.prototype.__scaleResize=function(e,t){m(this,e,t)},e.Line.prototype.__scaleResize=function(e,t){this.pathInputed?m(this,e,t):this.points?w(this,e,t):this.width*=e},e.Polygon.prototype.__scaleResize=function(e,t){this.pathInputed?m(this,e,t):this.points?w(this,e,t):P(this,e,t)},e.Group.prototype.__scaleResize=function(e,t){B(this,e,t)},e.Box.prototype.__scaleResize=function(e,t){const{resizeChildren:i,__autoSize:s}=this.__;s&&i||P(this,e,t),i&&B(this,e,t)},e.Plugin.add("resize"),exports.PathScaler=d,exports.scaleResize=P,exports.scaleResizeFontSize=S,exports.scaleResizeGroup=B,exports.scaleResizePath=m,exports.scaleResizePoints=w;
2
2
  //# sourceMappingURL=resize.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"resize.min.cjs","sources":["../../../../../../src/in/packages/resize/src/PathScaler.ts","../../../../../../src/in/packages/resize/src/scaler.ts","../../../../../../src/in/packages/resize/src/resize.ts","../../../../../../src/in/packages/resize/src/index.ts"],"sourcesContent":["import { IPathCommandData } from '@leafer-ui/interface'\n\nimport { PathCommandMap as Command } from '@leafer-ui/draw'\n\n\nconst { M, L, C, Q, Z, N, D, X, G, F, O, P, U } = Command\n\nexport const PathScaler = {\n\n scale(data: IPathCommandData, scaleX: number, scaleY: number): void {\n if (!data) return\n\n let command: number\n let i = 0, len = data.length\n\n while (i < len) {\n command = data[i]\n switch (command) {\n case M: //moveto(x, y)\n case L: //lineto(x, y)\n scalePoints(data, scaleX, scaleY, i, 1)\n i += 3\n break\n case C: //bezierCurveTo(x1, y1, x2, y2, x, y)\n scalePoints(data, scaleX, scaleY, i, 3)\n i += 7\n break\n case Q: //quadraticCurveTo(x1, y1, x, y)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case Z: //closepath()\n i += 1\n break\n\n // canvas command\n\n case N: // rect(x, y, width, height)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case D: // roundRect(x, y, width, height, radius1, radius2, radius3, radius4)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 9\n break\n case X: // simple roundRect(x, y, width, height, radius)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 6\n break\n case G: // ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 9\n break\n case F: // simple ellipse(x, y, radiusX, radiusY)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n data[i] = G // to ellipse\n data.splice(i + 4, 0, data[i + 3], 0)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 7 + 2\n len += 2\n break\n case P: // simple arc(x, y, radius)\n data[i] = F // to simple ellipse\n data.splice(i + 4, 0, data[i + 3])\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 4 + 1\n len += 1\n break\n case U: // arcTo(x1, y1, x2, y2, radius)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 6\n break\n }\n }\n\n },\n\n scalePoints(data: IPathCommandData, scaleX: number, scaleY: number, start?: number, pointCount?: number): void {\n for (let i = pointCount ? start + 1 : 0, end = pointCount ? i + pointCount * 2 : data.length; i < end; i += 2) {\n data[i] *= scaleX\n data[i + 1] *= scaleY\n }\n }\n\n}\n\nconst { scalePoints } = PathScaler","import { IBranch, ILeaf, ILine, IPolygon, IText, IPointData } from '@leafer-ui/interface'\nimport { Direction9, MatrixHelper } from '@leafer-ui/draw'\n\nimport { PathScaler } from './PathScaler'\n\n\nconst matrix = MatrixHelper.get()\nconst { topLeft, top, topRight, right, bottom, left } = Direction9\n\nexport function scaleResize(leaf: ILeaf, scaleX: number, scaleY: number): void {\n if (leaf.pathInputed) {\n scaleResizePath(leaf, scaleX, scaleY)\n } else {\n // fix: Text / Box auto width / height, need check scale === 1\n if (scaleX !== 1) leaf.width *= scaleX\n if (scaleY !== 1) leaf.height *= scaleY\n }\n}\n\nexport function scaleResizeFontSize(leaf: IText, scaleX: number, scaleY: number, direction?: Direction9): void {\n let fontScale = scaleX\n\n if (direction !== undefined) {\n\n const layout = leaf.__layout\n\n let { width, height } = layout.boxBounds\n width *= scaleY - scaleX\n height *= scaleX - scaleY\n\n switch (direction) { // 编辑器控制点的位置\n case top:\n case bottom:\n fontScale = scaleY\n layout.affectScaleOrRotation ? leaf.moveInner(-width / 2, 0) : leaf.x -= width / 2\n break\n case left:\n case right:\n layout.affectScaleOrRotation ? leaf.moveInner(0, -height / 2) : leaf.y -= height / 2\n break\n case topLeft:\n case topRight:\n layout.affectScaleOrRotation ? leaf.moveInner(0, -height) : leaf.y -= height\n break\n }\n\n }\n\n leaf.fontSize *= fontScale\n\n const data = leaf.__, { padding } = data\n if (padding) leaf.padding = padding instanceof Array ? padding.map(item => item * fontScale) : padding * fontScale\n if (!data.__autoWidth) leaf.width *= fontScale\n if (!data.__autoHeight) leaf.height *= fontScale\n\n}\n\nexport function scaleResizePath(leaf: ILeaf, scaleX: number, scaleY: number): void {\n PathScaler.scale(leaf.__.path, scaleX, scaleY)\n leaf.path = leaf.__.path\n}\n\nexport function scaleResizePoints(leaf: ILine | IPolygon, scaleX: number, scaleY: number): void {\n const { points } = leaf\n typeof points[0] === 'object' ? (points as IPointData[]).forEach(p => { p.x *= scaleX, p.y *= scaleY }) : PathScaler.scalePoints(points as number[], scaleX, scaleY)\n leaf.points = points\n}\n\n\nexport function scaleResizeGroup(group: IBranch, scaleX: number, scaleY: number): void {\n const { children } = group\n for (let i = 0; i < children.length; i++) {\n matrix.a = scaleX // must update\n matrix.d = scaleY\n children[i].transform(matrix, true)\n }\n}","\nimport { Leaf, Path, Line, Text, Polygon, Group, Box, UI } from '@leafer-ui/draw'\n\nimport { scaleResize, scaleResizeFontSize, scaleResizeGroup, scaleResizePath, scaleResizePoints } from './scaler'\n\n\n// leaf\n\nconst leaf = Leaf.prototype\n\nleaf.scaleResize = function (scaleX: number, scaleY = scaleX, noResize?: boolean): void {\n const data = this as UI\n if (noResize || (data.editConfig && data.editConfig.editSize === 'scale')) {\n data.scaleX *= scaleX\n data.scaleY *= scaleY\n } else {\n if (scaleX < 0) data.scaleX *= -1, scaleX = -scaleX\n if (scaleY < 0) data.scaleY *= -1, scaleY = -scaleY\n this.__scaleResize(scaleX, scaleY)\n }\n}\n\n\nleaf.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResize(this, scaleX, scaleY)\n}\n\n\nleaf.resizeWidth = function (width: number): void {\n const scale = width / this.getBounds('box', 'local').width || 1 // 不允许为0\n this.scaleOf(this.__layout.boxBounds, scale, this.__.lockRatio ? scale : 1, true)\n}\n\n\nleaf.resizeHeight = function (height: number): void {\n const scale = height / this.getBounds('box', 'local').height || 1 // 不允许为0\n this.scaleOf(this.__layout.boxBounds, this.__.lockRatio ? scale : 1, scale, true)\n}\n\n\n// UI\n\nText.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n const { app, editConfig } = this, editor = app && app.editor, dragPoint = editor && editor.dragPoint\n const { __autoWidth, __autoHeight, textAlign, verticalAlign } = this.__, { boxBounds } = this.__layout\n\n if (__autoWidth && textAlign !== 'left' && scaleX !== 1) this.x += boxBounds.x\n if (__autoHeight && verticalAlign !== 'top' && scaleY !== 1) this.y += boxBounds.y\n\n if (this.__.resizeFontSize || (editConfig && editConfig.editSize === 'font-size') || (dragPoint && editor.mergedConfig.editSize === 'font-size')) {\n scaleResizeFontSize(this, scaleX, scaleY, dragPoint && dragPoint.direction)\n } else {\n scaleResize(this, scaleX, scaleY)\n }\n}\n\n\nPath.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResizePath(this, scaleX, scaleY)\n}\n\n\nLine.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n if (this.pathInputed) {\n scaleResizePath(this, scaleX, scaleY)\n } else if (this.points) {\n scaleResizePoints(this, scaleX, scaleY)\n } else {\n this.width *= scaleX\n }\n}\n\n\nPolygon.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n if (this.pathInputed) {\n scaleResizePath(this, scaleX, scaleY)\n } else if (this.points) {\n scaleResizePoints(this, scaleX, scaleY)\n } else {\n scaleResize(this, scaleX, scaleY)\n }\n}\n\n\n// group\n\nGroup.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResizeGroup(this, scaleX, scaleY)\n}\n\n\nBox.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n const { resizeChildren, __autoSize } = this.__\n if (!(__autoSize && resizeChildren)) scaleResize(this, scaleX, scaleY)\n if (resizeChildren) scaleResizeGroup(this, scaleX, scaleY)\n}","export { PathScaler } from './PathScaler'\nexport { scaleResize, scaleResizeGroup, scaleResizeFontSize, scaleResizePath, scaleResizePoints } from './scaler'\n\nimport { Plugin } from '@leafer-ui/draw'\n\nimport './resize'\n\nPlugin.add('resize')"],"names":["M","L","C","Q","Z","N","D","X","G","F","O","P","U","Command","PathCommandMap","PathScaler","scale","data","scaleX","scaleY","command","i","len","length","scalePoints","splice","start","pointCount","end","matrix","MatrixHelper","get","topLeft","top","topRight","right","bottom","left","Direction9","scaleResize","leaf","pathInputed","scaleResizePath","width","height","scaleResizeFontSize","direction","fontScale","undefined","layout","__layout","boxBounds","affectScaleOrRotation","moveInner","x","y","fontSize","__","padding","Array","map","item","__autoWidth","__autoHeight","path","scaleResizePoints","points","forEach","p","scaleResizeGroup","group","children","a","d","transform","Leaf","prototype","noResize","this","editConfig","editSize","__scaleResize","resizeWidth","getBounds","scaleOf","lockRatio","resizeHeight","Text","app","editor","dragPoint","textAlign","verticalAlign","resizeFontSize","mergedConfig","Path","Line","Polygon","Group","Box","resizeChildren","__autoSize","Plugin","add"],"mappings":"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"}
1
+ {"version":3,"file":"resize.min.cjs","sources":["../../../../../../src/in/packages/resize/src/PathScaler.ts","../../../../../../src/in/packages/resize/src/scaler.ts","../../../../../../src/in/packages/resize/src/resize.ts","../../../../../../src/in/packages/resize/src/index.ts"],"sourcesContent":["import { IPathCommandData } from '@leafer-ui/interface'\n\nimport { PathCommandMap as Command } from '@leafer-ui/draw'\n\n\nconst { M, L, C, Q, Z, N, D, X, G, F, O, P, U } = Command\n\nexport const PathScaler = {\n\n scale(data: IPathCommandData, scaleX: number, scaleY: number): void {\n if (!data) return\n\n let command: number\n let i = 0, len = data.length\n\n while (i < len) {\n command = data[i]\n switch (command) {\n case M: //moveto(x, y)\n case L: //lineto(x, y)\n scalePoints(data, scaleX, scaleY, i, 1)\n i += 3\n break\n case C: //bezierCurveTo(x1, y1, x2, y2, x, y)\n scalePoints(data, scaleX, scaleY, i, 3)\n i += 7\n break\n case Q: //quadraticCurveTo(x1, y1, x, y)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case Z: //closepath()\n i += 1\n break\n\n // canvas command\n\n case N: // rect(x, y, width, height)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case D: // roundRect(x, y, width, height, radius1, radius2, radius3, radius4)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 9\n break\n case X: // simple roundRect(x, y, width, height, radius)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 6\n break\n case G: // ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 9\n break\n case F: // simple ellipse(x, y, radiusX, radiusY)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n data[i] = G // to ellipse\n data.splice(i + 4, 0, data[i + 3], 0)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 7 + 2\n len += 2\n break\n case P: // simple arc(x, y, radius)\n data[i] = F // to simple ellipse\n data.splice(i + 4, 0, data[i + 3])\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 4 + 1\n len += 1\n break\n case U: // arcTo(x1, y1, x2, y2, radius)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 6\n break\n }\n }\n\n },\n\n scalePoints(data: IPathCommandData, scaleX: number, scaleY: number, start?: number, pointCount?: number): void {\n for (let i = pointCount ? start + 1 : 0, end = pointCount ? i + pointCount * 2 : data.length; i < end; i += 2) {\n data[i] *= scaleX\n data[i + 1] *= scaleY\n }\n }\n\n}\n\nconst { scalePoints } = PathScaler","import { IBranch, ILeaf, ILine, IPolygon, IText, IPointData } from '@leafer-ui/interface'\nimport { Direction9, MatrixHelper, isArray, isObject, isUndefined } from '@leafer-ui/draw'\n\nimport { PathScaler } from './PathScaler'\n\n\nconst matrix = MatrixHelper.get()\nconst { topLeft, top, topRight, right, bottom, left } = Direction9\n\nexport function scaleResize(leaf: ILeaf, scaleX: number, scaleY: number): void {\n if (leaf.pathInputed) {\n scaleResizePath(leaf, scaleX, scaleY)\n } else {\n // fix: Text / Box auto width / height, need check scale === 1\n if (scaleX !== 1) leaf.width *= scaleX\n if (scaleY !== 1) leaf.height *= scaleY\n }\n}\n\nexport function scaleResizeFontSize(leaf: IText, scaleX: number, scaleY: number, direction?: Direction9): void {\n let fontScale = scaleX\n\n if (!isUndefined(direction)) {\n\n const layout = leaf.__layout\n\n let { width, height } = layout.boxBounds\n width *= scaleY - scaleX\n height *= scaleX - scaleY\n\n switch (direction) { // 编辑器控制点的位置\n case top:\n case bottom:\n fontScale = scaleY\n layout.affectScaleOrRotation ? leaf.moveInner(-width / 2, 0) : leaf.x -= width / 2\n break\n case left:\n case right:\n layout.affectScaleOrRotation ? leaf.moveInner(0, -height / 2) : leaf.y -= height / 2\n break\n case topLeft:\n case topRight:\n layout.affectScaleOrRotation ? leaf.moveInner(0, -height) : leaf.y -= height\n break\n }\n\n }\n\n leaf.fontSize *= fontScale\n\n const data = leaf.__, { padding } = data\n if (padding) leaf.padding = isArray(padding) ? padding.map(item => item * fontScale) : padding * fontScale\n if (!data.__autoWidth) leaf.width *= fontScale\n if (!data.__autoHeight) leaf.height *= fontScale\n\n}\n\nexport function scaleResizePath(leaf: ILeaf, scaleX: number, scaleY: number): void {\n PathScaler.scale(leaf.__.path, scaleX, scaleY)\n leaf.path = leaf.__.path\n}\n\nexport function scaleResizePoints(leaf: ILine | IPolygon, scaleX: number, scaleY: number): void {\n const { points } = leaf\n isObject(points[0]) ? (points as IPointData[]).forEach(p => { p.x *= scaleX, p.y *= scaleY }) : PathScaler.scalePoints(points as number[], scaleX, scaleY)\n leaf.points = points\n}\n\n\nexport function scaleResizeGroup(group: IBranch, scaleX: number, scaleY: number): void {\n const { children } = group\n for (let i = 0; i < children.length; i++) {\n matrix.a = scaleX // must update\n matrix.d = scaleY\n children[i].transform(matrix, true)\n }\n}","\nimport { Leaf, Path, Line, Text, Polygon, Group, Box, UI } from '@leafer-ui/draw'\n\nimport { scaleResize, scaleResizeFontSize, scaleResizeGroup, scaleResizePath, scaleResizePoints } from './scaler'\n\n\n// leaf\n\nconst leaf = Leaf.prototype\n\nleaf.scaleResize = function (scaleX: number, scaleY = scaleX, noResize?: boolean): void {\n const data = this as UI\n if (noResize || (data.editConfig && data.editConfig.editSize === 'scale')) {\n data.scaleX *= scaleX\n data.scaleY *= scaleY\n } else {\n if (scaleX < 0) data.scaleX *= -1, scaleX = -scaleX\n if (scaleY < 0) data.scaleY *= -1, scaleY = -scaleY\n this.__scaleResize(scaleX, scaleY)\n }\n}\n\n\nleaf.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResize(this, scaleX, scaleY)\n}\n\n\nleaf.resizeWidth = function (width: number): void {\n const scale = width / this.getBounds('box', 'local').width || 1 // 不允许为0\n this.scaleOf(this.__layout.boxBounds, scale, this.__.lockRatio ? scale : 1, true)\n}\n\n\nleaf.resizeHeight = function (height: number): void {\n const scale = height / this.getBounds('box', 'local').height || 1 // 不允许为0\n this.scaleOf(this.__layout.boxBounds, this.__.lockRatio ? scale : 1, scale, true)\n}\n\n\n// UI\n\nText.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n const { app, editConfig } = this, editor = app && app.editor, dragPoint = editor && editor.dragPoint\n\n if (this.__.resizeFontSize || (editConfig && editConfig.editSize === 'font-size') || (dragPoint && editor.mergedConfig.editSize === 'font-size')) {\n scaleResizeFontSize(this, scaleX, scaleY, dragPoint && dragPoint.direction)\n } else {\n const { __autoWidth, __autoHeight, textAlign, verticalAlign } = this.__, { boxBounds } = this.__layout\n if (__autoWidth && textAlign !== 'left' && scaleX !== 1) this.x += boxBounds.x\n if (__autoHeight && verticalAlign !== 'top' && scaleY !== 1) this.y += boxBounds.y\n scaleResize(this, scaleX, scaleY)\n }\n}\n\n\nPath.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResizePath(this, scaleX, scaleY)\n}\n\n\nLine.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n if (this.pathInputed) {\n scaleResizePath(this, scaleX, scaleY)\n } else if (this.points) {\n scaleResizePoints(this, scaleX, scaleY)\n } else {\n this.width *= scaleX\n }\n}\n\n\nPolygon.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n if (this.pathInputed) {\n scaleResizePath(this, scaleX, scaleY)\n } else if (this.points) {\n scaleResizePoints(this, scaleX, scaleY)\n } else {\n scaleResize(this, scaleX, scaleY)\n }\n}\n\n\n// group\n\nGroup.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResizeGroup(this, scaleX, scaleY)\n}\n\n\nBox.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n const { resizeChildren, __autoSize } = this.__\n if (!(__autoSize && resizeChildren)) scaleResize(this, scaleX, scaleY)\n if (resizeChildren) scaleResizeGroup(this, scaleX, scaleY)\n}","export { PathScaler } from './PathScaler'\nexport { scaleResize, scaleResizeGroup, scaleResizeFontSize, scaleResizePath, scaleResizePoints } from './scaler'\n\nimport { Plugin } from '@leafer-ui/draw'\n\nimport './resize'\n\nPlugin.add('resize')"],"names":["M","L","C","Q","Z","N","D","X","G","F","O","P","U","Command","PathScaler","scale","data","scaleX","scaleY","command","i","len","length","scalePoints","splice","start","pointCount","end","matrix","MatrixHelper","get","topLeft","top","topRight","right","bottom","left","Direction9","scaleResize","leaf","pathInputed","scaleResizePath","width","height","scaleResizeFontSize","direction","fontScale","isUndefined","layout","__layout","boxBounds","affectScaleOrRotation","moveInner","x","y","fontSize","__","padding","isArray","map","item","__autoWidth","__autoHeight","path","scaleResizePoints","points","isObject","forEach","p","scaleResizeGroup","group","children","a","d","transform","Leaf","prototype","noResize","this","editConfig","editSize","__scaleResize","resizeWidth","getBounds","scaleOf","lockRatio","resizeHeight","Text","app","editor","dragPoint","resizeFontSize","mergedConfig","textAlign","verticalAlign","Path","Line","Polygon","Group","Box","resizeChildren","__autoSize","Plugin","add"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- this.LeaferIN=this.LeaferIN||{},this.LeaferIN.resize=function(e,t){"use strict";const{M:i,L:s,C:o,Q:a,Z:n,N:c,D:h,X:r,G:l,F:_,O:f,P:p,U:u}=t.PathCommandMap,d={scale(e,t,d){if(!e)return;let g,b=0,R=e.length;for(;b<R;)switch(g=e[b],g){case i:case s:z(e,t,d,b,1),b+=3;break;case o:z(e,t,d,b,3),b+=7;break;case a:z(e,t,d,b,2),b+=5;break;case n:b+=1;break;case c:z(e,t,d,b,2),b+=5;break;case h:z(e,t,d,b,2),b+=9;break;case r:z(e,t,d,b,2),b+=6;break;case l:z(e,t,d,b,2),b+=9;break;case _:z(e,t,d,b,2),b+=5;break;case f:e[b]=l,e.splice(b+4,0,e[b+3],0),z(e,t,d,b,2),b+=9,R+=2;break;case p:e[b]=_,e.splice(b+4,0,e[b+3]),z(e,t,d,b,2),b+=5,R+=1;break;case u:z(e,t,d,b,2),b+=6}},scalePoints(e,t,i,s,o){for(let a=o?s+1:0,n=o?a+2*o:e.length;a<n;a+=2)e[a]*=t,e[a+1]*=i}},{scalePoints:z}=d,g=t.MatrixHelper.get(),{topLeft:b,top:R,topRight:y,right:k,bottom:x,left:P}=t.Direction9;function S(e,t,i){e.pathInputed?m(e,t,i):(1!==t&&(e.width*=t),1!==i&&(e.height*=i))}function I(e,t,i,s){let o=t;if(void 0!==s){const a=e.__layout;let{width:n,height:c}=a.boxBounds;switch(n*=i-t,c*=t-i,s){case R:case x:o=i,a.affectScaleOrRotation?e.moveInner(-n/2,0):e.x-=n/2;break;case P:case k:a.affectScaleOrRotation?e.moveInner(0,-c/2):e.y-=c/2;break;case b:case y:a.affectScaleOrRotation?e.moveInner(0,-c):e.y-=c}}e.fontSize*=o;const a=e.__,{padding:n}=a;n&&(e.padding=n instanceof Array?n.map((e=>e*o)):n*o),a.__autoWidth||(e.width*=o),a.__autoHeight||(e.height*=o)}function m(e,t,i){d.scale(e.__.path,t,i),e.path=e.__.path}function L(e,t,i){const{points:s}=e;"object"==typeof s[0]?s.forEach((e=>{e.x*=t,e.y*=i})):d.scalePoints(s,t,i),e.points=s}function w(e,t,i){const{children:s}=e;for(let e=0;e<s.length;e++)g.a=t,g.d=i,s[e].transform(g,!0)}const B=t.Leaf.prototype;return B.scaleResize=function(e,t=e,i){const s=this;i||s.editConfig&&"scale"===s.editConfig.editSize?(s.scaleX*=e,s.scaleY*=t):(e<0&&(s.scaleX*=-1,e=-e),t<0&&(s.scaleY*=-1,t=-t),this.__scaleResize(e,t))},B.__scaleResize=function(e,t){S(this,e,t)},B.resizeWidth=function(e){const t=e/this.getBounds("box","local").width||1;this.scaleOf(this.__layout.boxBounds,t,this.__.lockRatio?t:1,!0)},B.resizeHeight=function(e){const t=e/this.getBounds("box","local").height||1;this.scaleOf(this.__layout.boxBounds,this.__.lockRatio?t:1,t,!0)},t.Text.prototype.__scaleResize=function(e,t){const{app:i,editConfig:s}=this,o=i&&i.editor,a=o&&o.dragPoint,{__autoWidth:n,__autoHeight:c,textAlign:h,verticalAlign:r}=this.__,{boxBounds:l}=this.__layout;n&&"left"!==h&&1!==e&&(this.x+=l.x),c&&"top"!==r&&1!==t&&(this.y+=l.y),this.__.resizeFontSize||s&&"font-size"===s.editSize||a&&"font-size"===o.mergedConfig.editSize?I(this,e,t,a&&a.direction):S(this,e,t)},t.Path.prototype.__scaleResize=function(e,t){m(this,e,t)},t.Line.prototype.__scaleResize=function(e,t){this.pathInputed?m(this,e,t):this.points?L(this,e,t):this.width*=e},t.Polygon.prototype.__scaleResize=function(e,t){this.pathInputed?m(this,e,t):this.points?L(this,e,t):S(this,e,t)},t.Group.prototype.__scaleResize=function(e,t){w(this,e,t)},t.Box.prototype.__scaleResize=function(e,t){const{resizeChildren:i,__autoSize:s}=this.__;s&&i||S(this,e,t),i&&w(this,e,t)},t.Plugin.add("resize"),e.PathScaler=d,e.scaleResize=S,e.scaleResizeFontSize=I,e.scaleResizeGroup=w,e.scaleResizePath=m,e.scaleResizePoints=L,e}({},LeaferUI);
1
+ this.LeaferIN=this.LeaferIN||{},this.LeaferIN.resize=function(e,t){"use strict";const{M:i,L:s,C:o,Q:a,Z:n,N:c,D:h,X:r,G:l,F:_,O:f,P:p,U:u}=t.PathCommandMap,d={scale(e,t,d){if(!e)return;let g,b=0,R=e.length;for(;b<R;)switch(g=e[b],g){case i:case s:z(e,t,d,b,1),b+=3;break;case o:z(e,t,d,b,3),b+=7;break;case a:z(e,t,d,b,2),b+=5;break;case n:b+=1;break;case c:z(e,t,d,b,2),b+=5;break;case h:z(e,t,d,b,2),b+=9;break;case r:z(e,t,d,b,2),b+=6;break;case l:z(e,t,d,b,2),b+=9;break;case _:z(e,t,d,b,2),b+=5;break;case f:e[b]=l,e.splice(b+4,0,e[b+3],0),z(e,t,d,b,2),b+=9,R+=2;break;case p:e[b]=_,e.splice(b+4,0,e[b+3]),z(e,t,d,b,2),b+=5,R+=1;break;case u:z(e,t,d,b,2),b+=6}},scalePoints(e,t,i,s,o){for(let a=o?s+1:0,n=o?a+2*o:e.length;a<n;a+=2)e[a]*=t,e[a+1]*=i}},{scalePoints:z}=d,g=t.MatrixHelper.get(),{topLeft:b,top:R,topRight:y,right:k,bottom:x,left:P}=t.Direction9;function S(e,t,i){e.pathInputed?m(e,t,i):(1!==t&&(e.width*=t),1!==i&&(e.height*=i))}function I(e,i,s,o){let a=i;if(!t.isUndefined(o)){const t=e.__layout;let{width:n,height:c}=t.boxBounds;switch(n*=s-i,c*=i-s,o){case R:case x:a=s,t.affectScaleOrRotation?e.moveInner(-n/2,0):e.x-=n/2;break;case P:case k:t.affectScaleOrRotation?e.moveInner(0,-c/2):e.y-=c/2;break;case b:case y:t.affectScaleOrRotation?e.moveInner(0,-c):e.y-=c}}e.fontSize*=a;const n=e.__,{padding:c}=n;c&&(e.padding=t.isArray(c)?c.map(e=>e*a):c*a),n.__autoWidth||(e.width*=a),n.__autoHeight||(e.height*=a)}function m(e,t,i){d.scale(e.__.path,t,i),e.path=e.__.path}function L(e,i,s){const{points:o}=e;t.isObject(o[0])?o.forEach(e=>{e.x*=i,e.y*=s}):d.scalePoints(o,i,s),e.points=o}function w(e,t,i){const{children:s}=e;for(let e=0;e<s.length;e++)g.a=t,g.d=i,s[e].transform(g,!0)}const B=t.Leaf.prototype;return B.scaleResize=function(e,t=e,i){const s=this;i||s.editConfig&&"scale"===s.editConfig.editSize?(s.scaleX*=e,s.scaleY*=t):(e<0&&(s.scaleX*=-1,e=-e),t<0&&(s.scaleY*=-1,t=-t),this.__scaleResize(e,t))},B.__scaleResize=function(e,t){S(this,e,t)},B.resizeWidth=function(e){const t=e/this.getBounds("box","local").width||1;this.scaleOf(this.__layout.boxBounds,t,this.__.lockRatio?t:1,!0)},B.resizeHeight=function(e){const t=e/this.getBounds("box","local").height||1;this.scaleOf(this.__layout.boxBounds,this.__.lockRatio?t:1,t,!0)},t.Text.prototype.__scaleResize=function(e,t){const{app:i,editConfig:s}=this,o=i&&i.editor,a=o&&o.dragPoint;if(this.__.resizeFontSize||s&&"font-size"===s.editSize||a&&"font-size"===o.mergedConfig.editSize)I(this,e,t,a&&a.direction);else{const{__autoWidth:i,__autoHeight:s,textAlign:o,verticalAlign:a}=this.__,{boxBounds:n}=this.__layout;i&&"left"!==o&&1!==e&&(this.x+=n.x),s&&"top"!==a&&1!==t&&(this.y+=n.y),S(this,e,t)}},t.Path.prototype.__scaleResize=function(e,t){m(this,e,t)},t.Line.prototype.__scaleResize=function(e,t){this.pathInputed?m(this,e,t):this.points?L(this,e,t):this.width*=e},t.Polygon.prototype.__scaleResize=function(e,t){this.pathInputed?m(this,e,t):this.points?L(this,e,t):S(this,e,t)},t.Group.prototype.__scaleResize=function(e,t){w(this,e,t)},t.Box.prototype.__scaleResize=function(e,t){const{resizeChildren:i,__autoSize:s}=this.__;s&&i||S(this,e,t),i&&w(this,e,t)},t.Plugin.add("resize"),e.PathScaler=d,e.scaleResize=S,e.scaleResizeFontSize=I,e.scaleResizeGroup=w,e.scaleResizePath=m,e.scaleResizePoints=L,e}({},LeaferUI);
2
2
  //# sourceMappingURL=resize.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resize.min.js","sources":["../../../../../../src/in/packages/resize/src/PathScaler.ts","../../../../../../src/in/packages/resize/src/scaler.ts","../../../../../../src/in/packages/resize/src/resize.ts","../../../../../../src/in/packages/resize/src/index.ts"],"sourcesContent":["import { IPathCommandData } from '@leafer-ui/interface'\n\nimport { PathCommandMap as Command } from '@leafer-ui/draw'\n\n\nconst { M, L, C, Q, Z, N, D, X, G, F, O, P, U } = Command\n\nexport const PathScaler = {\n\n scale(data: IPathCommandData, scaleX: number, scaleY: number): void {\n if (!data) return\n\n let command: number\n let i = 0, len = data.length\n\n while (i < len) {\n command = data[i]\n switch (command) {\n case M: //moveto(x, y)\n case L: //lineto(x, y)\n scalePoints(data, scaleX, scaleY, i, 1)\n i += 3\n break\n case C: //bezierCurveTo(x1, y1, x2, y2, x, y)\n scalePoints(data, scaleX, scaleY, i, 3)\n i += 7\n break\n case Q: //quadraticCurveTo(x1, y1, x, y)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case Z: //closepath()\n i += 1\n break\n\n // canvas command\n\n case N: // rect(x, y, width, height)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case D: // roundRect(x, y, width, height, radius1, radius2, radius3, radius4)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 9\n break\n case X: // simple roundRect(x, y, width, height, radius)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 6\n break\n case G: // ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 9\n break\n case F: // simple ellipse(x, y, radiusX, radiusY)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n data[i] = G // to ellipse\n data.splice(i + 4, 0, data[i + 3], 0)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 7 + 2\n len += 2\n break\n case P: // simple arc(x, y, radius)\n data[i] = F // to simple ellipse\n data.splice(i + 4, 0, data[i + 3])\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 4 + 1\n len += 1\n break\n case U: // arcTo(x1, y1, x2, y2, radius)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 6\n break\n }\n }\n\n },\n\n scalePoints(data: IPathCommandData, scaleX: number, scaleY: number, start?: number, pointCount?: number): void {\n for (let i = pointCount ? start + 1 : 0, end = pointCount ? i + pointCount * 2 : data.length; i < end; i += 2) {\n data[i] *= scaleX\n data[i + 1] *= scaleY\n }\n }\n\n}\n\nconst { scalePoints } = PathScaler","import { IBranch, ILeaf, ILine, IPolygon, IText, IPointData } from '@leafer-ui/interface'\nimport { Direction9, MatrixHelper } from '@leafer-ui/draw'\n\nimport { PathScaler } from './PathScaler'\n\n\nconst matrix = MatrixHelper.get()\nconst { topLeft, top, topRight, right, bottom, left } = Direction9\n\nexport function scaleResize(leaf: ILeaf, scaleX: number, scaleY: number): void {\n if (leaf.pathInputed) {\n scaleResizePath(leaf, scaleX, scaleY)\n } else {\n // fix: Text / Box auto width / height, need check scale === 1\n if (scaleX !== 1) leaf.width *= scaleX\n if (scaleY !== 1) leaf.height *= scaleY\n }\n}\n\nexport function scaleResizeFontSize(leaf: IText, scaleX: number, scaleY: number, direction?: Direction9): void {\n let fontScale = scaleX\n\n if (direction !== undefined) {\n\n const layout = leaf.__layout\n\n let { width, height } = layout.boxBounds\n width *= scaleY - scaleX\n height *= scaleX - scaleY\n\n switch (direction) { // 编辑器控制点的位置\n case top:\n case bottom:\n fontScale = scaleY\n layout.affectScaleOrRotation ? leaf.moveInner(-width / 2, 0) : leaf.x -= width / 2\n break\n case left:\n case right:\n layout.affectScaleOrRotation ? leaf.moveInner(0, -height / 2) : leaf.y -= height / 2\n break\n case topLeft:\n case topRight:\n layout.affectScaleOrRotation ? leaf.moveInner(0, -height) : leaf.y -= height\n break\n }\n\n }\n\n leaf.fontSize *= fontScale\n\n const data = leaf.__, { padding } = data\n if (padding) leaf.padding = padding instanceof Array ? padding.map(item => item * fontScale) : padding * fontScale\n if (!data.__autoWidth) leaf.width *= fontScale\n if (!data.__autoHeight) leaf.height *= fontScale\n\n}\n\nexport function scaleResizePath(leaf: ILeaf, scaleX: number, scaleY: number): void {\n PathScaler.scale(leaf.__.path, scaleX, scaleY)\n leaf.path = leaf.__.path\n}\n\nexport function scaleResizePoints(leaf: ILine | IPolygon, scaleX: number, scaleY: number): void {\n const { points } = leaf\n typeof points[0] === 'object' ? (points as IPointData[]).forEach(p => { p.x *= scaleX, p.y *= scaleY }) : PathScaler.scalePoints(points as number[], scaleX, scaleY)\n leaf.points = points\n}\n\n\nexport function scaleResizeGroup(group: IBranch, scaleX: number, scaleY: number): void {\n const { children } = group\n for (let i = 0; i < children.length; i++) {\n matrix.a = scaleX // must update\n matrix.d = scaleY\n children[i].transform(matrix, true)\n }\n}","\nimport { Leaf, Path, Line, Text, Polygon, Group, Box, UI } from '@leafer-ui/draw'\n\nimport { scaleResize, scaleResizeFontSize, scaleResizeGroup, scaleResizePath, scaleResizePoints } from './scaler'\n\n\n// leaf\n\nconst leaf = Leaf.prototype\n\nleaf.scaleResize = function (scaleX: number, scaleY = scaleX, noResize?: boolean): void {\n const data = this as UI\n if (noResize || (data.editConfig && data.editConfig.editSize === 'scale')) {\n data.scaleX *= scaleX\n data.scaleY *= scaleY\n } else {\n if (scaleX < 0) data.scaleX *= -1, scaleX = -scaleX\n if (scaleY < 0) data.scaleY *= -1, scaleY = -scaleY\n this.__scaleResize(scaleX, scaleY)\n }\n}\n\n\nleaf.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResize(this, scaleX, scaleY)\n}\n\n\nleaf.resizeWidth = function (width: number): void {\n const scale = width / this.getBounds('box', 'local').width || 1 // 不允许为0\n this.scaleOf(this.__layout.boxBounds, scale, this.__.lockRatio ? scale : 1, true)\n}\n\n\nleaf.resizeHeight = function (height: number): void {\n const scale = height / this.getBounds('box', 'local').height || 1 // 不允许为0\n this.scaleOf(this.__layout.boxBounds, this.__.lockRatio ? scale : 1, scale, true)\n}\n\n\n// UI\n\nText.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n const { app, editConfig } = this, editor = app && app.editor, dragPoint = editor && editor.dragPoint\n const { __autoWidth, __autoHeight, textAlign, verticalAlign } = this.__, { boxBounds } = this.__layout\n\n if (__autoWidth && textAlign !== 'left' && scaleX !== 1) this.x += boxBounds.x\n if (__autoHeight && verticalAlign !== 'top' && scaleY !== 1) this.y += boxBounds.y\n\n if (this.__.resizeFontSize || (editConfig && editConfig.editSize === 'font-size') || (dragPoint && editor.mergedConfig.editSize === 'font-size')) {\n scaleResizeFontSize(this, scaleX, scaleY, dragPoint && dragPoint.direction)\n } else {\n scaleResize(this, scaleX, scaleY)\n }\n}\n\n\nPath.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResizePath(this, scaleX, scaleY)\n}\n\n\nLine.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n if (this.pathInputed) {\n scaleResizePath(this, scaleX, scaleY)\n } else if (this.points) {\n scaleResizePoints(this, scaleX, scaleY)\n } else {\n this.width *= scaleX\n }\n}\n\n\nPolygon.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n if (this.pathInputed) {\n scaleResizePath(this, scaleX, scaleY)\n } else if (this.points) {\n scaleResizePoints(this, scaleX, scaleY)\n } else {\n scaleResize(this, scaleX, scaleY)\n }\n}\n\n\n// group\n\nGroup.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResizeGroup(this, scaleX, scaleY)\n}\n\n\nBox.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n const { resizeChildren, __autoSize } = this.__\n if (!(__autoSize && resizeChildren)) scaleResize(this, scaleX, scaleY)\n if (resizeChildren) scaleResizeGroup(this, scaleX, scaleY)\n}","export { PathScaler } from './PathScaler'\nexport { scaleResize, scaleResizeGroup, scaleResizeFontSize, scaleResizePath, scaleResizePoints } from './scaler'\n\nimport { Plugin } from '@leafer-ui/draw'\n\nimport './resize'\n\nPlugin.add('resize')"],"names":["M","L","C","Q","Z","N","D","X","G","F","O","P","U","Command","PathCommandMap","PathScaler","scale","data","scaleX","scaleY","command","i","len","length","scalePoints","splice","start","pointCount","end","matrix","MatrixHelper","get","topLeft","top","topRight","right","bottom","left","Direction9","scaleResize","leaf","pathInputed","scaleResizePath","width","height","scaleResizeFontSize","direction","fontScale","undefined","layout","__layout","boxBounds","affectScaleOrRotation","moveInner","x","y","fontSize","__","padding","Array","map","item","__autoWidth","__autoHeight","path","scaleResizePoints","points","forEach","p","scaleResizeGroup","group","children","a","d","transform","Leaf","prototype","noResize","this","editConfig","editSize","__scaleResize","resizeWidth","getBounds","scaleOf","lockRatio","resizeHeight","draw","Text","app","editor","dragPoint","textAlign","verticalAlign","resizeFontSize","mergedConfig","Path","Line","Polygon","Group","Box","resizeChildren","__autoSize","Plugin","add"],"mappings":"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"}
1
+ {"version":3,"file":"resize.min.js","sources":["../../../../../../src/in/packages/resize/src/PathScaler.ts","../../../../../../src/in/packages/resize/src/scaler.ts","../../../../../../src/in/packages/resize/src/resize.ts","../../../../../../src/in/packages/resize/src/index.ts"],"sourcesContent":["import { IPathCommandData } from '@leafer-ui/interface'\n\nimport { PathCommandMap as Command } from '@leafer-ui/draw'\n\n\nconst { M, L, C, Q, Z, N, D, X, G, F, O, P, U } = Command\n\nexport const PathScaler = {\n\n scale(data: IPathCommandData, scaleX: number, scaleY: number): void {\n if (!data) return\n\n let command: number\n let i = 0, len = data.length\n\n while (i < len) {\n command = data[i]\n switch (command) {\n case M: //moveto(x, y)\n case L: //lineto(x, y)\n scalePoints(data, scaleX, scaleY, i, 1)\n i += 3\n break\n case C: //bezierCurveTo(x1, y1, x2, y2, x, y)\n scalePoints(data, scaleX, scaleY, i, 3)\n i += 7\n break\n case Q: //quadraticCurveTo(x1, y1, x, y)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case Z: //closepath()\n i += 1\n break\n\n // canvas command\n\n case N: // rect(x, y, width, height)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case D: // roundRect(x, y, width, height, radius1, radius2, radius3, radius4)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 9\n break\n case X: // simple roundRect(x, y, width, height, radius)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 6\n break\n case G: // ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 9\n break\n case F: // simple ellipse(x, y, radiusX, radiusY)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 5\n break\n case O: // arc(x, y, radius, startAngle, endAngle, anticlockwise)\n data[i] = G // to ellipse\n data.splice(i + 4, 0, data[i + 3], 0)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 7 + 2\n len += 2\n break\n case P: // simple arc(x, y, radius)\n data[i] = F // to simple ellipse\n data.splice(i + 4, 0, data[i + 3])\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 4 + 1\n len += 1\n break\n case U: // arcTo(x1, y1, x2, y2, radius)\n scalePoints(data, scaleX, scaleY, i, 2)\n i += 6\n break\n }\n }\n\n },\n\n scalePoints(data: IPathCommandData, scaleX: number, scaleY: number, start?: number, pointCount?: number): void {\n for (let i = pointCount ? start + 1 : 0, end = pointCount ? i + pointCount * 2 : data.length; i < end; i += 2) {\n data[i] *= scaleX\n data[i + 1] *= scaleY\n }\n }\n\n}\n\nconst { scalePoints } = PathScaler","import { IBranch, ILeaf, ILine, IPolygon, IText, IPointData } from '@leafer-ui/interface'\nimport { Direction9, MatrixHelper, isArray, isObject, isUndefined } from '@leafer-ui/draw'\n\nimport { PathScaler } from './PathScaler'\n\n\nconst matrix = MatrixHelper.get()\nconst { topLeft, top, topRight, right, bottom, left } = Direction9\n\nexport function scaleResize(leaf: ILeaf, scaleX: number, scaleY: number): void {\n if (leaf.pathInputed) {\n scaleResizePath(leaf, scaleX, scaleY)\n } else {\n // fix: Text / Box auto width / height, need check scale === 1\n if (scaleX !== 1) leaf.width *= scaleX\n if (scaleY !== 1) leaf.height *= scaleY\n }\n}\n\nexport function scaleResizeFontSize(leaf: IText, scaleX: number, scaleY: number, direction?: Direction9): void {\n let fontScale = scaleX\n\n if (!isUndefined(direction)) {\n\n const layout = leaf.__layout\n\n let { width, height } = layout.boxBounds\n width *= scaleY - scaleX\n height *= scaleX - scaleY\n\n switch (direction) { // 编辑器控制点的位置\n case top:\n case bottom:\n fontScale = scaleY\n layout.affectScaleOrRotation ? leaf.moveInner(-width / 2, 0) : leaf.x -= width / 2\n break\n case left:\n case right:\n layout.affectScaleOrRotation ? leaf.moveInner(0, -height / 2) : leaf.y -= height / 2\n break\n case topLeft:\n case topRight:\n layout.affectScaleOrRotation ? leaf.moveInner(0, -height) : leaf.y -= height\n break\n }\n\n }\n\n leaf.fontSize *= fontScale\n\n const data = leaf.__, { padding } = data\n if (padding) leaf.padding = isArray(padding) ? padding.map(item => item * fontScale) : padding * fontScale\n if (!data.__autoWidth) leaf.width *= fontScale\n if (!data.__autoHeight) leaf.height *= fontScale\n\n}\n\nexport function scaleResizePath(leaf: ILeaf, scaleX: number, scaleY: number): void {\n PathScaler.scale(leaf.__.path, scaleX, scaleY)\n leaf.path = leaf.__.path\n}\n\nexport function scaleResizePoints(leaf: ILine | IPolygon, scaleX: number, scaleY: number): void {\n const { points } = leaf\n isObject(points[0]) ? (points as IPointData[]).forEach(p => { p.x *= scaleX, p.y *= scaleY }) : PathScaler.scalePoints(points as number[], scaleX, scaleY)\n leaf.points = points\n}\n\n\nexport function scaleResizeGroup(group: IBranch, scaleX: number, scaleY: number): void {\n const { children } = group\n for (let i = 0; i < children.length; i++) {\n matrix.a = scaleX // must update\n matrix.d = scaleY\n children[i].transform(matrix, true)\n }\n}","\nimport { Leaf, Path, Line, Text, Polygon, Group, Box, UI } from '@leafer-ui/draw'\n\nimport { scaleResize, scaleResizeFontSize, scaleResizeGroup, scaleResizePath, scaleResizePoints } from './scaler'\n\n\n// leaf\n\nconst leaf = Leaf.prototype\n\nleaf.scaleResize = function (scaleX: number, scaleY = scaleX, noResize?: boolean): void {\n const data = this as UI\n if (noResize || (data.editConfig && data.editConfig.editSize === 'scale')) {\n data.scaleX *= scaleX\n data.scaleY *= scaleY\n } else {\n if (scaleX < 0) data.scaleX *= -1, scaleX = -scaleX\n if (scaleY < 0) data.scaleY *= -1, scaleY = -scaleY\n this.__scaleResize(scaleX, scaleY)\n }\n}\n\n\nleaf.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResize(this, scaleX, scaleY)\n}\n\n\nleaf.resizeWidth = function (width: number): void {\n const scale = width / this.getBounds('box', 'local').width || 1 // 不允许为0\n this.scaleOf(this.__layout.boxBounds, scale, this.__.lockRatio ? scale : 1, true)\n}\n\n\nleaf.resizeHeight = function (height: number): void {\n const scale = height / this.getBounds('box', 'local').height || 1 // 不允许为0\n this.scaleOf(this.__layout.boxBounds, this.__.lockRatio ? scale : 1, scale, true)\n}\n\n\n// UI\n\nText.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n const { app, editConfig } = this, editor = app && app.editor, dragPoint = editor && editor.dragPoint\n\n if (this.__.resizeFontSize || (editConfig && editConfig.editSize === 'font-size') || (dragPoint && editor.mergedConfig.editSize === 'font-size')) {\n scaleResizeFontSize(this, scaleX, scaleY, dragPoint && dragPoint.direction)\n } else {\n const { __autoWidth, __autoHeight, textAlign, verticalAlign } = this.__, { boxBounds } = this.__layout\n if (__autoWidth && textAlign !== 'left' && scaleX !== 1) this.x += boxBounds.x\n if (__autoHeight && verticalAlign !== 'top' && scaleY !== 1) this.y += boxBounds.y\n scaleResize(this, scaleX, scaleY)\n }\n}\n\n\nPath.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResizePath(this, scaleX, scaleY)\n}\n\n\nLine.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n if (this.pathInputed) {\n scaleResizePath(this, scaleX, scaleY)\n } else if (this.points) {\n scaleResizePoints(this, scaleX, scaleY)\n } else {\n this.width *= scaleX\n }\n}\n\n\nPolygon.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n if (this.pathInputed) {\n scaleResizePath(this, scaleX, scaleY)\n } else if (this.points) {\n scaleResizePoints(this, scaleX, scaleY)\n } else {\n scaleResize(this, scaleX, scaleY)\n }\n}\n\n\n// group\n\nGroup.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n scaleResizeGroup(this, scaleX, scaleY)\n}\n\n\nBox.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {\n const { resizeChildren, __autoSize } = this.__\n if (!(__autoSize && resizeChildren)) scaleResize(this, scaleX, scaleY)\n if (resizeChildren) scaleResizeGroup(this, scaleX, scaleY)\n}","export { PathScaler } from './PathScaler'\nexport { scaleResize, scaleResizeGroup, scaleResizeFontSize, scaleResizePath, scaleResizePoints } from './scaler'\n\nimport { Plugin } from '@leafer-ui/draw'\n\nimport './resize'\n\nPlugin.add('resize')"],"names":["M","L","C","Q","Z","N","D","X","G","F","O","P","U","Command","PathScaler","scale","data","scaleX","scaleY","command","i","len","length","scalePoints","splice","start","pointCount","end","matrix","MatrixHelper","get","topLeft","top","topRight","right","bottom","left","Direction9","scaleResize","leaf","pathInputed","scaleResizePath","width","height","scaleResizeFontSize","direction","fontScale","isUndefined","layout","__layout","boxBounds","affectScaleOrRotation","moveInner","x","y","fontSize","__","padding","isArray","map","item","__autoWidth","__autoHeight","path","scaleResizePoints","points","isObject","forEach","p","scaleResizeGroup","group","children","a","d","transform","Leaf","prototype","noResize","this","editConfig","editSize","__scaleResize","resizeWidth","getBounds","scaleOf","lockRatio","resizeHeight","Text","app","editor","dragPoint","resizeFontSize","mergedConfig","textAlign","verticalAlign","Path","Line","Polygon","Group","Box","resizeChildren","__autoSize","Plugin","add"],"mappings":"gFAKA,MAAMA,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,GAAMC,EAAAA,eAErCC,EAAa,CAEtB,KAAAC,CAAMC,EAAwBC,EAAgBC,GAC1C,IAAKF,EAAM,OAEX,IAAIG,EACAC,EAAI,EAAGC,EAAML,EAAKM,OAEtB,KAAOF,EAAIC,GAEP,OADAF,EAAUH,EAAKI,GACPD,GACJ,KAAKnB,EACL,KAAKC,EACDsB,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACL,MACJ,KAAKlB,EACDqB,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACL,MACJ,KAAKjB,EACDoB,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACL,MACJ,KAAKhB,EACDgB,GAAK,EACL,MAIJ,KAAKf,EACDkB,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACL,MACJ,KAAKd,EACDiB,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACL,MACJ,KAAKb,EACDgB,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACL,MACJ,KAAKZ,EACDe,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACL,MACJ,KAAKX,EACDc,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACL,MACJ,KAAKV,EACDM,EAAKI,GAAKZ,EACVQ,EAAKQ,OAAOJ,EAAI,EAAG,EAAGJ,EAAKI,EAAI,GAAI,GACnCG,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACLC,GAAO,EACP,MACJ,KAAKV,EACDK,EAAKI,GAAKX,EACVO,EAAKQ,OAAOJ,EAAI,EAAG,EAAGJ,EAAKI,EAAI,IAC/BG,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EACLC,GAAO,EACP,MACJ,KAAKT,EACDW,EAAYP,EAAMC,EAAQC,EAAQE,EAAG,GACrCA,GAAK,EAKrB,EAEA,WAAAG,CAAYP,EAAwBC,EAAgBC,EAAgBO,EAAgBC,GAChF,IAAK,IAAIN,EAAIM,EAAaD,EAAQ,EAAI,EAAGE,EAAMD,EAAaN,EAAiB,EAAbM,EAAiBV,EAAKM,OAAQF,EAAIO,EAAKP,GAAK,EACxGJ,EAAKI,IAAMH,EACXD,EAAKI,EAAI,IAAMF,CAEvB,IAIEK,YAAEA,GAAgBT,ECnFlBc,EAASC,EAAAA,aAAaC,OACtBC,QAAEA,EAAOC,IAAEA,EAAGC,SAAEA,EAAQC,MAAEA,EAAKC,OAAEA,EAAMC,KAAEA,GAASC,EAAAA,oBAExCC,EAAYC,EAAatB,EAAgBC,GACjDqB,EAAKC,YACLC,EAAgBF,EAAMtB,EAAQC,IAGf,IAAXD,IAAcsB,EAAKG,OAASzB,GACjB,IAAXC,IAAcqB,EAAKI,QAAUzB,GAEzC,CAEM,SAAU0B,EAAoBL,EAAatB,EAAgBC,EAAgB2B,GAC7E,IAAIC,EAAY7B,EAEhB,IAAK8B,EAAAA,YAAYF,GAAY,CAEzB,MAAMG,EAAST,EAAKU,SAEpB,IAAIP,MAAEA,EAAKC,OAAEA,GAAWK,EAAOE,UAI/B,OAHAR,GAASxB,EAASD,EAClB0B,GAAU1B,EAASC,EAEX2B,GACJ,KAAKb,EACL,KAAKG,EACDW,EAAY5B,EACZ8B,EAAOG,sBAAwBZ,EAAKa,WAAWV,EAAQ,EAAG,GAAKH,EAAKc,GAAKX,EAAQ,EACjF,MACJ,KAAKN,EACL,KAAKF,EACDc,EAAOG,sBAAwBZ,EAAKa,UAAU,GAAIT,EAAS,GAAKJ,EAAKe,GAAKX,EAAS,EACnF,MACJ,KAAKZ,EACL,KAAKE,EACDe,EAAOG,sBAAwBZ,EAAKa,UAAU,GAAIT,GAAUJ,EAAKe,GAAKX,EAIlF,CAEAJ,EAAKgB,UAAYT,EAEjB,MAAM9B,EAAOuB,EAAKiB,IAAIC,QAAEA,GAAYzC,EAChCyC,IAASlB,EAAKkB,QAAUC,UAAQD,GAAWA,EAAQE,IAAIC,GAAQA,EAAOd,GAAaW,EAAUX,GAC5F9B,EAAK6C,cAAatB,EAAKG,OAASI,GAChC9B,EAAK8C,eAAcvB,EAAKI,QAAUG,EAE3C,UAEgBL,EAAgBF,EAAatB,EAAgBC,GACzDJ,EAAWC,MAAMwB,EAAKiB,GAAGO,KAAM9C,EAAQC,GACvCqB,EAAKwB,KAAOxB,EAAKiB,GAAGO,IACxB,UAEgBC,EAAkBzB,EAAwBtB,EAAgBC,GACtE,MAAM+C,OAAEA,GAAW1B,EACnB2B,WAASD,EAAO,IAAOA,EAAwBE,QAAQC,IAAOA,EAAEf,GAAKpC,EAAQmD,EAAEd,GAAKpC,IAAYJ,EAAWS,YAAY0C,EAAoBhD,EAAQC,GACnJqB,EAAK0B,OAASA,CAClB,UAGgBI,EAAiBC,EAAgBrD,EAAgBC,GAC7D,MAAMqD,SAAEA,GAAaD,EACrB,IAAK,IAAIlD,EAAI,EAAGA,EAAImD,EAASjD,OAAQF,IACjCQ,EAAO4C,EAAIvD,EACXW,EAAO6C,EAAIvD,EACXqD,EAASnD,GAAGsD,UAAU9C,GAAQ,EAEtC,CCpEA,MAAMW,EAAOoC,EAAAA,KAAKC,iBAElBrC,EAAKD,YAAc,SAAUrB,EAAgBC,EAASD,EAAQ4D,GAC1D,MAAM7D,EAAO8D,KACTD,GAAa7D,EAAK+D,YAA2C,UAA7B/D,EAAK+D,WAAWC,UAChDhE,EAAKC,QAAUA,EACfD,EAAKE,QAAUA,IAEXD,EAAS,IAAGD,EAAKC,WAAcA,GAAUA,GACzCC,EAAS,IAAGF,EAAKE,WAAcA,GAAUA,GAC7C4D,KAAKG,cAAchE,EAAQC,GAEnC,EAGAqB,EAAK0C,cAAgB,SAAUhE,EAAgBC,GAC3CoB,EAAYwC,KAAM7D,EAAQC,EAC9B,EAGAqB,EAAK2C,YAAc,SAAUxC,GACzB,MAAM3B,EAAQ2B,EAAQoC,KAAKK,UAAU,MAAO,SAASzC,OAAS,EAC9DoC,KAAKM,QAAQN,KAAK7B,SAASC,UAAWnC,EAAO+D,KAAKtB,GAAG6B,UAAYtE,EAAQ,GAAG,EAChF,EAGAwB,EAAK+C,aAAe,SAAU3C,GAC1B,MAAM5B,EAAQ4B,EAASmC,KAAKK,UAAU,MAAO,SAASxC,QAAU,EAChEmC,KAAKM,QAAQN,KAAK7B,SAASC,UAAW4B,KAAKtB,GAAG6B,UAAYtE,EAAQ,EAAGA,GAAO,EAChF,EAKAwE,EAAAA,KAAKX,UAAUK,cAAgB,SAAUhE,EAAgBC,GACrD,MAAMsE,IAAEA,EAAGT,WAAEA,GAAeD,KAAMW,EAASD,GAAOA,EAAIC,OAAQC,EAAYD,GAAUA,EAAOC,UAE3F,GAAIZ,KAAKtB,GAAGmC,gBAAmBZ,GAAsC,cAAxBA,EAAWC,UAA8BU,GAA8C,cAAjCD,EAAOG,aAAaZ,SACnHpC,EAAoBkC,KAAM7D,EAAQC,EAAQwE,GAAaA,EAAU7C,eAC9D,CACH,MAAMgB,YAAEA,EAAWC,aAAEA,EAAY+B,UAAEA,EAASC,cAAEA,GAAkBhB,KAAKtB,IAAIN,UAAEA,GAAc4B,KAAK7B,SAC1FY,GAA6B,SAAdgC,GAAmC,IAAX5E,IAAc6D,KAAKzB,GAAKH,EAAUG,GACzES,GAAkC,QAAlBgC,GAAsC,IAAX5E,IAAc4D,KAAKxB,GAAKJ,EAAUI,GACjFhB,EAAYwC,KAAM7D,EAAQC,EAC9B,CACJ,EAGA6E,EAAAA,KAAKnB,UAAUK,cAAgB,SAAUhE,EAAgBC,GACrDuB,EAAgBqC,KAAM7D,EAAQC,EAClC,EAGA8E,EAAAA,KAAKpB,UAAUK,cAAgB,SAAUhE,EAAgBC,GACjD4D,KAAKtC,YACLC,EAAgBqC,KAAM7D,EAAQC,GACvB4D,KAAKb,OACZD,EAAkBc,KAAM7D,EAAQC,GAEhC4D,KAAKpC,OAASzB,CAEtB,EAGAgF,EAAAA,QAAQrB,UAAUK,cAAgB,SAAUhE,EAAgBC,GACpD4D,KAAKtC,YACLC,EAAgBqC,KAAM7D,EAAQC,GACvB4D,KAAKb,OACZD,EAAkBc,KAAM7D,EAAQC,GAEhCoB,EAAYwC,KAAM7D,EAAQC,EAElC,EAKAgF,EAAAA,MAAMtB,UAAUK,cAAgB,SAAUhE,EAAgBC,GACtDmD,EAAiBS,KAAM7D,EAAQC,EACnC,EAGAiF,EAAAA,IAAIvB,UAAUK,cAAgB,SAAUhE,EAAgBC,GACpD,MAAMkF,eAAEA,EAAcC,WAAEA,GAAevB,KAAKtB,GACtC6C,GAAcD,GAAiB9D,EAAYwC,KAAM7D,EAAQC,GAC3DkF,GAAgB/B,EAAiBS,KAAM7D,EAAQC,EACvD,ECvFAoF,EAAAA,OAAOC,IAAI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer-in/resize",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "@leafer-in/resize",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -34,8 +34,8 @@
34
34
  "leaferjs"
35
35
  ],
36
36
  "peerDependencies": {
37
- "@leafer-ui/draw": "^1.7.0",
38
- "@leafer-ui/interface": "^1.7.0",
39
- "@leafer-in/interface": "^1.7.0"
37
+ "@leafer-ui/draw": "^1.9.0",
38
+ "@leafer-ui/interface": "^1.9.0",
39
+ "@leafer-in/interface": "^1.9.0"
40
40
  }
41
41
  }
package/src/resize.ts CHANGED
@@ -42,14 +42,13 @@ leaf.resizeHeight = function (height: number): void {
42
42
 
43
43
  Text.prototype.__scaleResize = function (scaleX: number, scaleY: number): void {
44
44
  const { app, editConfig } = this, editor = app && app.editor, dragPoint = editor && editor.dragPoint
45
- const { __autoWidth, __autoHeight, textAlign, verticalAlign } = this.__, { boxBounds } = this.__layout
46
-
47
- if (__autoWidth && textAlign !== 'left' && scaleX !== 1) this.x += boxBounds.x
48
- if (__autoHeight && verticalAlign !== 'top' && scaleY !== 1) this.y += boxBounds.y
49
45
 
50
46
  if (this.__.resizeFontSize || (editConfig && editConfig.editSize === 'font-size') || (dragPoint && editor.mergedConfig.editSize === 'font-size')) {
51
47
  scaleResizeFontSize(this, scaleX, scaleY, dragPoint && dragPoint.direction)
52
48
  } else {
49
+ const { __autoWidth, __autoHeight, textAlign, verticalAlign } = this.__, { boxBounds } = this.__layout
50
+ if (__autoWidth && textAlign !== 'left' && scaleX !== 1) this.x += boxBounds.x
51
+ if (__autoHeight && verticalAlign !== 'top' && scaleY !== 1) this.y += boxBounds.y
53
52
  scaleResize(this, scaleX, scaleY)
54
53
  }
55
54
  }