leafer-draw 1.3.3 → 1.4.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/web.js CHANGED
@@ -3824,10 +3824,10 @@ var LeaferUI = (function (exports) {
3824
3824
  return decorateLeafAttr(defaultValue, (key) => attr({
3825
3825
  set(value) {
3826
3826
  if (this.__setAttr(key, value)) {
3827
- this.__layout.matrixChanged || this.__layout.matrixChange();
3828
3827
  this.__hasAutoLayout = !!(this.origin || this.around || this.flow);
3829
3828
  if (!this.__local)
3830
3829
  this.__layout.createLocal();
3830
+ doBoundsType(this);
3831
3831
  }
3832
3832
  }
3833
3833
  }));
@@ -4210,55 +4210,62 @@ var LeaferUI = (function (exports) {
4210
4210
  y += t.y;
4211
4211
  transition ? t.animate({ x, y }, transition) : (t.x = x, t.y = y);
4212
4212
  },
4213
- zoomOfWorld(t, origin, scaleX, scaleY, resize) {
4214
- L.zoomOfLocal(t, getTempLocal(t, origin), scaleX, scaleY, resize);
4213
+ zoomOfWorld(t, origin, scaleX, scaleY, resize, transition) {
4214
+ L.zoomOfLocal(t, getTempLocal(t, origin), scaleX, scaleY, resize, transition);
4215
4215
  },
4216
- zoomOfLocal(t, origin, scaleX, scaleY = scaleX, resize) {
4217
- copy$6(matrix, t.__localMatrix);
4216
+ zoomOfLocal(t, origin, scaleX, scaleY = scaleX, resize, transition) {
4217
+ const o = t.__localMatrix;
4218
+ if (typeof scaleY !== 'number') {
4219
+ if (scaleY)
4220
+ transition = scaleY;
4221
+ scaleY = scaleX;
4222
+ }
4223
+ copy$6(matrix, o);
4218
4224
  scaleOfOuter$2(matrix, origin, scaleX, scaleY);
4219
4225
  if (t.origin || t.around) {
4220
- L.setTransform(t, matrix, resize);
4226
+ L.setTransform(t, matrix, resize, transition);
4221
4227
  }
4222
4228
  else {
4223
- moveByMatrix(t, matrix);
4224
- t.scaleResize(scaleX, scaleY, resize !== true);
4229
+ const x = t.x + matrix.e - o.e, y = t.y + matrix.f - o.f;
4230
+ if (transition && !resize)
4231
+ t.animate({ x, y, scaleX: t.scaleX * scaleX, scaleY: t.scaleY * scaleY }, transition);
4232
+ else
4233
+ t.x = x, t.y = y, t.scaleResize(scaleX, scaleY, resize !== true);
4225
4234
  }
4226
4235
  },
4227
- rotateOfWorld(t, origin, angle) {
4228
- L.rotateOfLocal(t, getTempLocal(t, origin), angle);
4236
+ rotateOfWorld(t, origin, angle, transition) {
4237
+ L.rotateOfLocal(t, getTempLocal(t, origin), angle, transition);
4229
4238
  },
4230
- rotateOfLocal(t, origin, angle) {
4231
- copy$6(matrix, t.__localMatrix);
4239
+ rotateOfLocal(t, origin, angle, transition) {
4240
+ const o = t.__localMatrix;
4241
+ copy$6(matrix, o);
4232
4242
  rotateOfOuter$2(matrix, origin, angle);
4233
- if (t.origin || t.around) {
4234
- L.setTransform(t, matrix);
4235
- }
4236
- else {
4237
- moveByMatrix(t, matrix);
4238
- t.rotation = MathHelper.formatRotation(t.rotation + angle);
4239
- }
4243
+ if (t.origin || t.around)
4244
+ L.setTransform(t, matrix, false, transition);
4245
+ else
4246
+ t.set({ x: t.x + matrix.e - o.e, y: t.y + matrix.f - o.f, rotation: MathHelper.formatRotation(t.rotation + angle) }, transition);
4240
4247
  },
4241
- skewOfWorld(t, origin, skewX, skewY, resize) {
4242
- L.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize);
4248
+ skewOfWorld(t, origin, skewX, skewY, resize, transition) {
4249
+ L.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize, transition);
4243
4250
  },
4244
- skewOfLocal(t, origin, skewX, skewY = 0, resize) {
4251
+ skewOfLocal(t, origin, skewX, skewY = 0, resize, transition) {
4245
4252
  copy$6(matrix, t.__localMatrix);
4246
4253
  skewOfOuter(matrix, origin, skewX, skewY);
4247
- L.setTransform(t, matrix, resize);
4254
+ L.setTransform(t, matrix, resize, transition);
4248
4255
  },
4249
- transformWorld(t, transform, resize) {
4256
+ transformWorld(t, transform, resize, transition) {
4250
4257
  copy$6(matrix, t.worldTransform);
4251
4258
  multiplyParent$2(matrix, transform);
4252
4259
  if (t.parent)
4253
4260
  divideParent(matrix, t.parent.worldTransform);
4254
- L.setTransform(t, matrix, resize);
4261
+ L.setTransform(t, matrix, resize, transition);
4255
4262
  },
4256
- transform(t, transform, resize) {
4263
+ transform(t, transform, resize, transition) {
4257
4264
  copy$6(matrix, t.localTransform);
4258
4265
  multiplyParent$2(matrix, transform);
4259
- L.setTransform(t, matrix, resize);
4266
+ L.setTransform(t, matrix, resize, transition);
4260
4267
  },
4261
- setTransform(t, transform, resize) {
4268
+ setTransform(t, transform, resize, transition) {
4262
4269
  const data = t.__, originPoint = data.origin && L.getInnerOrigin(t, data.origin);
4263
4270
  const layout = getLayout(transform, originPoint, data.around && L.getInnerOrigin(t, data.around));
4264
4271
  if (resize) {
@@ -4273,7 +4280,7 @@ var LeaferUI = (function (exports) {
4273
4280
  t.scaleResize(scaleX, scaleY, false);
4274
4281
  }
4275
4282
  else
4276
- t.set(layout);
4283
+ t.set(layout, transition);
4277
4284
  },
4278
4285
  getFlipTransform(t, axis) {
4279
4286
  const m = getMatrixData();
@@ -4310,11 +4317,6 @@ var LeaferUI = (function (exports) {
4310
4317
  };
4311
4318
  const L = LeafHelper;
4312
4319
  const { updateAllMatrix: updateAllMatrix$3, updateMatrix: updateMatrix$2, updateAllWorldOpacity: updateAllWorldOpacity$1, updateAllChange: updateAllChange$1 } = L;
4313
- function moveByMatrix(t, matrix) {
4314
- const { e, f } = t.__localMatrix;
4315
- t.x += matrix.e - e;
4316
- t.y += matrix.f - f;
4317
- }
4318
4320
  function getTempLocal(t, world) {
4319
4321
  t.__layout.update();
4320
4322
  return t.parent ? PointHelper.tempToInnerOf(world, t.parent.__world) : world;
@@ -5588,11 +5590,11 @@ var LeaferUI = (function (exports) {
5588
5590
  const layer = this.leafer ? this.leafer.zoomLayer : this;
5589
5591
  return layer.getWorldPoint(page, relative, distance, change);
5590
5592
  }
5591
- setTransform(matrix, resize) {
5592
- setTransform(this, matrix, resize);
5593
+ setTransform(matrix, resize, transition) {
5594
+ setTransform(this, matrix, resize, transition);
5593
5595
  }
5594
- transform(matrix, resize) {
5595
- transform(this, matrix, resize);
5596
+ transform(matrix, resize, transition) {
5597
+ transform(this, matrix, resize, transition);
5596
5598
  }
5597
5599
  move(x, y, transition) {
5598
5600
  moveLocal(this, x, y, transition);
@@ -5600,32 +5602,32 @@ var LeaferUI = (function (exports) {
5600
5602
  moveInner(x, y, transition) {
5601
5603
  moveWorld(this, x, y, true, transition);
5602
5604
  }
5603
- scaleOf(origin, scaleX, scaleY, resize) {
5604
- zoomOfLocal(this, getLocalOrigin(this, origin), scaleX, scaleY, resize);
5605
+ scaleOf(origin, scaleX, scaleY, resize, transition) {
5606
+ zoomOfLocal(this, getLocalOrigin(this, origin), scaleX, scaleY, resize, transition);
5605
5607
  }
5606
- rotateOf(origin, rotation) {
5607
- rotateOfLocal(this, getLocalOrigin(this, origin), rotation);
5608
+ rotateOf(origin, rotation, transition) {
5609
+ rotateOfLocal(this, getLocalOrigin(this, origin), rotation, transition);
5608
5610
  }
5609
- skewOf(origin, skewX, skewY, resize) {
5610
- skewOfLocal(this, getLocalOrigin(this, origin), skewX, skewY, resize);
5611
+ skewOf(origin, skewX, skewY, resize, transition) {
5612
+ skewOfLocal(this, getLocalOrigin(this, origin), skewX, skewY, resize, transition);
5611
5613
  }
5612
- transformWorld(worldTransform, resize) {
5613
- transformWorld(this, worldTransform, resize);
5614
+ transformWorld(worldTransform, resize, transition) {
5615
+ transformWorld(this, worldTransform, resize, transition);
5614
5616
  }
5615
5617
  moveWorld(x, y, transition) {
5616
5618
  moveWorld(this, x, y, false, transition);
5617
5619
  }
5618
- scaleOfWorld(worldOrigin, scaleX, scaleY, resize) {
5619
- zoomOfWorld(this, worldOrigin, scaleX, scaleY, resize);
5620
+ scaleOfWorld(worldOrigin, scaleX, scaleY, resize, transition) {
5621
+ zoomOfWorld(this, worldOrigin, scaleX, scaleY, resize, transition);
5620
5622
  }
5621
5623
  rotateOfWorld(worldOrigin, rotation) {
5622
5624
  rotateOfWorld(this, worldOrigin, rotation);
5623
5625
  }
5624
- skewOfWorld(worldOrigin, skewX, skewY, resize) {
5625
- skewOfWorld(this, worldOrigin, skewX, skewY, resize);
5626
+ skewOfWorld(worldOrigin, skewX, skewY, resize, transition) {
5627
+ skewOfWorld(this, worldOrigin, skewX, skewY, resize, transition);
5626
5628
  }
5627
- flip(axis) {
5628
- transform(this, getFlipTransform(this, axis));
5629
+ flip(axis, transition) {
5630
+ transform(this, getFlipTransform(this, axis), false, transition);
5629
5631
  }
5630
5632
  scaleResize(scaleX, scaleY = scaleX, _noResize) {
5631
5633
  this.scaleX *= scaleX;
@@ -6013,7 +6015,7 @@ var LeaferUI = (function (exports) {
6013
6015
  }
6014
6016
  }
6015
6017
 
6016
- const version = "1.3.3";
6018
+ const version = "1.4.0";
6017
6019
 
6018
6020
  const debug$4 = Debug.get('LeaferCanvas');
6019
6021
  class LeaferCanvas extends LeaferCanvasBase {
@@ -6133,7 +6135,7 @@ var LeaferUI = (function (exports) {
6133
6135
  }
6134
6136
  }
6135
6137
  else {
6136
- window.addEventListener('resize', () => {
6138
+ window.addEventListener('resize', this.windowListener = () => {
6137
6139
  const pixelRatio = Platform.devicePixelRatio;
6138
6140
  if (this.pixelRatio !== pixelRatio) {
6139
6141
  const { width, height } = this;
@@ -6162,11 +6164,9 @@ var LeaferUI = (function (exports) {
6162
6164
  }
6163
6165
  stopAutoLayout() {
6164
6166
  this.autoLayout = false;
6165
- this.resizeListener = null;
6166
- if (this.resizeObserver) {
6167
+ if (this.resizeObserver)
6167
6168
  this.resizeObserver.disconnect();
6168
- this.resizeObserver = null;
6169
- }
6169
+ this.resizeListener = this.resizeObserver = null;
6170
6170
  }
6171
6171
  emitResize(size) {
6172
6172
  const oldSize = {};
@@ -6187,6 +6187,10 @@ var LeaferUI = (function (exports) {
6187
6187
  destroy() {
6188
6188
  if (this.view) {
6189
6189
  this.stopAutoLayout();
6190
+ if (this.windowListener) {
6191
+ window.removeEventListener('resize', this.windowListener);
6192
+ this.windowListener = null;
6193
+ }
6190
6194
  if (!this.unreal) {
6191
6195
  const view = this.view;
6192
6196
  if (view.parentElement)
@@ -6213,7 +6217,10 @@ var LeaferUI = (function (exports) {
6213
6217
  canvas.height = height;
6214
6218
  return canvas;
6215
6219
  },
6216
- canvasToDataURL: (canvas, type, quality) => canvas.toDataURL(mineType(type), quality),
6220
+ canvasToDataURL: (canvas, type, quality) => {
6221
+ const imageType = mineType(type), url = canvas.toDataURL(imageType, quality);
6222
+ return imageType === 'image/bmp' ? url.replace('image/png;', 'image/bmp;') : url;
6223
+ },
6217
6224
  canvasToBolb: (canvas, type, quality) => new Promise((resolve) => canvas.toBlob(resolve, mineType(type), quality)),
6218
6225
  canvasSaveAs: (canvas, filename, quality) => {
6219
6226
  const url = canvas.toDataURL(mineType(fileType(filename)), quality);
@@ -6258,7 +6265,7 @@ var LeaferUI = (function (exports) {
6258
6265
  Platform.name = 'web';
6259
6266
  Platform.isMobile = 'ontouchstart' in window;
6260
6267
  Platform.requestRender = function (render) { window.requestAnimationFrame(render); };
6261
- defineKey(Platform, 'devicePixelRatio', { get() { return Math.max(1, devicePixelRatio); } });
6268
+ defineKey(Platform, 'devicePixelRatio', { get() { return devicePixelRatio; } });
6262
6269
  const { userAgent } = navigator;
6263
6270
  if (userAgent.indexOf("Firefox") > -1) {
6264
6271
  Platform.conicGradientRotate90 = true;
@@ -9995,11 +10002,11 @@ var LeaferUI = (function (exports) {
9995
10002
  function layoutChar(drawData, style, width, _height) {
9996
10003
  const { rows } = drawData;
9997
10004
  const { textAlign, paraIndent, letterSpacing } = style;
9998
- let charX, addWordWidth, indentWidth, mode, wordChar;
10005
+ let charX, addWordWidth, indentWidth, mode, wordChar, wordsLength;
9999
10006
  rows.forEach(row => {
10000
10007
  if (row.words) {
10001
- indentWidth = paraIndent && row.paraStart ? paraIndent : 0;
10002
- addWordWidth = (width && (textAlign === 'justify' || textAlign === 'both') && row.words.length > 1) ? (width - row.width - indentWidth) / (row.words.length - 1) : 0;
10008
+ indentWidth = paraIndent && row.paraStart ? paraIndent : 0, wordsLength = row.words.length;
10009
+ addWordWidth = (width && (textAlign === 'justify' || textAlign === 'both') && wordsLength > 1) ? (width - row.width - indentWidth) / (wordsLength - 1) : 0;
10003
10010
  mode = (letterSpacing || row.isOverflow) ? CharMode : (addWordWidth > 0.01 ? WordMode : TextMode);
10004
10011
  if (row.isOverflow && !letterSpacing)
10005
10012
  row.textMode = true;
@@ -10011,7 +10018,7 @@ var LeaferUI = (function (exports) {
10011
10018
  row.x += indentWidth;
10012
10019
  charX = row.x;
10013
10020
  row.data = [];
10014
- row.words.forEach(word => {
10021
+ row.words.forEach((word, index) => {
10015
10022
  if (mode === WordMode) {
10016
10023
  wordChar = { char: '', x: charX };
10017
10024
  charX = toWordChar(word.data, charX, wordChar);
@@ -10021,7 +10028,7 @@ var LeaferUI = (function (exports) {
10021
10028
  else {
10022
10029
  charX = toChar(word.data, charX, row.data, row.isOverflow);
10023
10030
  }
10024
- if (addWordWidth && (!row.paraEnd || textAlign === 'both')) {
10031
+ if (addWordWidth && (!row.paraEnd || textAlign === 'both') && (index !== wordsLength - 1)) {
10025
10032
  charX += addWordWidth;
10026
10033
  row.width += addWordWidth;
10027
10034
  }
@@ -10430,3 +10437,4 @@ var LeaferUI = (function (exports) {
10430
10437
  return exports;
10431
10438
 
10432
10439
  })({});
10440
+ //# sourceMappingURL=web.js.map