leafer-ui 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$7(matrix$1, 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$7(matrix$1, o);
4218
4224
  scaleOfOuter$2(matrix$1, origin, scaleX, scaleY);
4219
4225
  if (t.origin || t.around) {
4220
- L.setTransform(t, matrix$1, resize);
4226
+ L.setTransform(t, matrix$1, resize, transition);
4221
4227
  }
4222
4228
  else {
4223
- moveByMatrix(t, matrix$1);
4224
- t.scaleResize(scaleX, scaleY, resize !== true);
4229
+ const x = t.x + matrix$1.e - o.e, y = t.y + matrix$1.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$7(matrix$1, t.__localMatrix);
4239
+ rotateOfLocal(t, origin, angle, transition) {
4240
+ const o = t.__localMatrix;
4241
+ copy$7(matrix$1, o);
4232
4242
  rotateOfOuter$2(matrix$1, origin, angle);
4233
- if (t.origin || t.around) {
4234
- L.setTransform(t, matrix$1);
4235
- }
4236
- else {
4237
- moveByMatrix(t, matrix$1);
4238
- t.rotation = MathHelper.formatRotation(t.rotation + angle);
4239
- }
4243
+ if (t.origin || t.around)
4244
+ L.setTransform(t, matrix$1, false, transition);
4245
+ else
4246
+ t.set({ x: t.x + matrix$1.e - o.e, y: t.y + matrix$1.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$7(matrix$1, t.__localMatrix);
4246
4253
  skewOfOuter(matrix$1, origin, skewX, skewY);
4247
- L.setTransform(t, matrix$1, resize);
4254
+ L.setTransform(t, matrix$1, resize, transition);
4248
4255
  },
4249
- transformWorld(t, transform, resize) {
4256
+ transformWorld(t, transform, resize, transition) {
4250
4257
  copy$7(matrix$1, t.worldTransform);
4251
4258
  multiplyParent$2(matrix$1, transform);
4252
4259
  if (t.parent)
4253
4260
  divideParent(matrix$1, t.parent.worldTransform);
4254
- L.setTransform(t, matrix$1, resize);
4261
+ L.setTransform(t, matrix$1, resize, transition);
4255
4262
  },
4256
- transform(t, transform, resize) {
4263
+ transform(t, transform, resize, transition) {
4257
4264
  copy$7(matrix$1, t.localTransform);
4258
4265
  multiplyParent$2(matrix$1, transform);
4259
- L.setTransform(t, matrix$1, resize);
4266
+ L.setTransform(t, matrix$1, 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$5 = 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;
@@ -9694,10 +9701,9 @@ var LeaferUI = (function (exports) {
9694
9701
  }
9695
9702
  }
9696
9703
  pointerMoveReal(data) {
9697
- const { dragHover, dragDistance } = this.p;
9698
9704
  this.emit(exports.PointerEvent.BEFORE_MOVE, data, this.defaultPath);
9699
9705
  if (this.downData) {
9700
- const canDrag = PointHelper.getDistance(this.downData, data) > dragDistance;
9706
+ const canDrag = PointHelper.getDistance(this.downData, data) > this.p.dragDistance;
9701
9707
  if (canDrag) {
9702
9708
  if (this.waitTap)
9703
9709
  this.pointerWaitCancel();
@@ -9709,9 +9715,8 @@ var LeaferUI = (function (exports) {
9709
9715
  this.updateHoverData(data);
9710
9716
  this.checkPath(data);
9711
9717
  this.emit(exports.PointerEvent.MOVE, data);
9712
- if (!(this.dragging && !dragHover))
9713
- this.pointerHover(data);
9714
- if (this.dragger.dragging) {
9718
+ this.pointerHover(data);
9719
+ if (this.dragging) {
9715
9720
  this.dragger.dragOverOrOut(data);
9716
9721
  this.dragger.dragEnterOrLeave(data);
9717
9722
  }
@@ -9792,7 +9797,8 @@ var LeaferUI = (function (exports) {
9792
9797
  this.updateCursor();
9793
9798
  }
9794
9799
  pointerHover(data) {
9795
- if (this.canHover) {
9800
+ if (this.canHover && !(this.dragging && !this.p.dragHover)) {
9801
+ data.path || (data.path = new LeafList());
9796
9802
  this.pointerOverOrOut(data);
9797
9803
  this.pointerEnterOrLeave(data);
9798
9804
  }
@@ -10271,6 +10277,7 @@ var LeaferUI = (function (exports) {
10271
10277
  'pointerdown': this.onPointerDown,
10272
10278
  'mousedown': this.onMouseDown,
10273
10279
  'touchstart': this.onTouchStart,
10280
+ 'pointerleave': this.onPointerLeave,
10274
10281
  'contextmenu': this.onContextMenu,
10275
10282
  'wheel': this.onWheel,
10276
10283
  'gesturestart': this.onGesturestart,
@@ -10353,11 +10360,15 @@ var LeaferUI = (function (exports) {
10353
10360
  this.usePointer || (this.usePointer = true);
10354
10361
  this.pointerDown(PointerEventHelper.convert(e, this.getLocal(e)));
10355
10362
  }
10356
- onPointerMove(e) {
10363
+ onPointerMove(e, isLeave) {
10357
10364
  if (this.config.pointer.touch || this.useMultiTouch || this.preventWindowPointer(e))
10358
10365
  return;
10359
10366
  this.usePointer || (this.usePointer = true);
10360
- this.pointerMove(PointerEventHelper.convert(e, this.getLocal(e, true)));
10367
+ const data = PointerEventHelper.convert(e, this.getLocal(e, true));
10368
+ isLeave ? this.pointerHover(data) : this.pointerMove(data);
10369
+ }
10370
+ onPointerLeave(e) {
10371
+ this.onPointerMove(e, true);
10361
10372
  }
10362
10373
  onPointerUp(e) {
10363
10374
  if (this.downData)
@@ -11743,11 +11754,11 @@ var LeaferUI = (function (exports) {
11743
11754
  function layoutChar(drawData, style, width, _height) {
11744
11755
  const { rows } = drawData;
11745
11756
  const { textAlign, paraIndent, letterSpacing } = style;
11746
- let charX, addWordWidth, indentWidth, mode, wordChar;
11757
+ let charX, addWordWidth, indentWidth, mode, wordChar, wordsLength;
11747
11758
  rows.forEach(row => {
11748
11759
  if (row.words) {
11749
- indentWidth = paraIndent && row.paraStart ? paraIndent : 0;
11750
- addWordWidth = (width && (textAlign === 'justify' || textAlign === 'both') && row.words.length > 1) ? (width - row.width - indentWidth) / (row.words.length - 1) : 0;
11760
+ indentWidth = paraIndent && row.paraStart ? paraIndent : 0, wordsLength = row.words.length;
11761
+ addWordWidth = (width && (textAlign === 'justify' || textAlign === 'both') && wordsLength > 1) ? (width - row.width - indentWidth) / (wordsLength - 1) : 0;
11751
11762
  mode = (letterSpacing || row.isOverflow) ? CharMode : (addWordWidth > 0.01 ? WordMode : TextMode);
11752
11763
  if (row.isOverflow && !letterSpacing)
11753
11764
  row.textMode = true;
@@ -11759,7 +11770,7 @@ var LeaferUI = (function (exports) {
11759
11770
  row.x += indentWidth;
11760
11771
  charX = row.x;
11761
11772
  row.data = [];
11762
- row.words.forEach(word => {
11773
+ row.words.forEach((word, index) => {
11763
11774
  if (mode === WordMode) {
11764
11775
  wordChar = { char: '', x: charX };
11765
11776
  charX = toWordChar(word.data, charX, wordChar);
@@ -11769,7 +11780,7 @@ var LeaferUI = (function (exports) {
11769
11780
  else {
11770
11781
  charX = toChar(word.data, charX, row.data, row.isOverflow);
11771
11782
  }
11772
- if (addWordWidth && (!row.paraEnd || textAlign === 'both')) {
11783
+ if (addWordWidth && (!row.paraEnd || textAlign === 'both') && (index !== wordsLength - 1)) {
11773
11784
  charX += addWordWidth;
11774
11785
  row.width += addWordWidth;
11775
11786
  }
@@ -12196,3 +12207,4 @@ var LeaferUI = (function (exports) {
12196
12207
  return exports;
12197
12208
 
12198
12209
  })({});
12210
+ //# sourceMappingURL=web.js.map