@leafer-in/editor 1.9.3 → 1.9.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer-in/editor",
3
- "version": "1.9.3",
3
+ "version": "1.9.5",
4
4
  "description": "@leafer-in/editor",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -34,10 +34,10 @@
34
34
  "leaferjs"
35
35
  ],
36
36
  "peerDependencies": {
37
- "@leafer-ui/draw": "^1.9.3",
38
- "@leafer-ui/core": "^1.9.3",
39
- "@leafer-in/resize": "^1.9.3",
40
- "@leafer-ui/interface": "^1.9.3",
41
- "@leafer-in/interface": "^1.9.3"
37
+ "@leafer-ui/draw": "^1.9.5",
38
+ "@leafer-ui/core": "^1.9.5",
39
+ "@leafer-in/resize": "^1.9.5",
40
+ "@leafer-ui/interface": "^1.9.5",
41
+ "@leafer-in/interface": "^1.9.5"
42
42
  }
43
43
  }
@@ -1,6 +1,7 @@
1
1
  import { IFunction, ILeaf, IObject, IUI, } from '@leafer-ui/interface'
2
+ import { defineKey, isNull, isArray, isObject, isUndefined } from '@leafer-ui/draw'
3
+
2
4
  import { IEditor } from '@leafer-in/interface'
3
- import { defineKey, isNull, isArray, isObject } from '@leafer-ui/draw'
4
5
 
5
6
  import { EditorEvent } from '../event/EditorEvent'
6
7
 
@@ -45,7 +46,7 @@ export function mergeConfigAttr() {
45
46
  return (target: IEditor, key: string) => {
46
47
  defineKey(target, key, {
47
48
  get() {
48
- const { config, element, dragPoint, editBox } = this, mergeConfig = { ...config } // 实时合并,后期可优化
49
+ const { config, element, dragPoint, editBox, app } = this, mergeConfig = { ...config } // 实时合并,后期可优化
49
50
  if (element && element.editConfig) Object.assign(mergeConfig, element.editConfig) // 元素上的配置
50
51
  if (editBox.config) Object.assign(mergeConfig, editBox.config) // EditBox 上的配置
51
52
  if (dragPoint) {
@@ -56,6 +57,7 @@ export function mergeConfigAttr() {
56
57
  isNull(mergeConfig.lockRatio) && (mergeConfig.lockRatio = true)
57
58
  }
58
59
  }
60
+ if (isUndefined(mergeConfig.dragLimitAnimate)) mergeConfig.dragLimitAnimate = app && app.config.pointer.dragLimitAnimate
59
61
  return (this as IObject).mergedConfig = mergeConfig
60
62
  }
61
63
  } as ThisType<IEditor>)
@@ -307,7 +307,7 @@ export class EditBox extends Group implements IEditBox {
307
307
  }
308
308
 
309
309
  protected onDragEnd(e: DragEvent): void {
310
- if (this.moving) this.transformTool.onMove(e)
310
+ if (this.moving && this.mergeConfig.dragLimitAnimate && this.target.dragBounds) this.transformTool.onMove(e)
311
311
 
312
312
  this.dragPoint = null
313
313
  this.resetDoing()
@@ -6,7 +6,7 @@ import { IEditorScaleEvent, IEditorSkewEvent, IEditorRotateEvent } from '@leafer
6
6
 
7
7
  const { topLeft, top, topRight, right, bottomRight, bottom, bottomLeft, left } = Direction9
8
8
  const { toPoint } = AroundHelper
9
- const { within } = MathHelper
9
+ const { within, sign } = MathHelper
10
10
 
11
11
  export const EditDataHelper = {
12
12
 
@@ -25,8 +25,8 @@ export const EditDataHelper = {
25
25
  // 获取已经改变的比例
26
26
  const originChangedScaleX = target.scaleX / startBounds.scaleX
27
27
  const originChangedScaleY = target.scaleY / startBounds.scaleY
28
- const signX = originChangedScaleX < 0 ? -1 : 1
29
- const signY = originChangedScaleY < 0 ? -1 : 1
28
+ const signX = sign(originChangedScaleX)
29
+ const signY = sign(originChangedScaleY)
30
30
 
31
31
  const changedScaleX = scaleMode ? originChangedScaleX : signX * boxBounds.width / width
32
32
  const changedScaleY = scaleMode ? originChangedScaleY : signY * boxBounds.height / height
@@ -142,8 +142,8 @@ export const EditDataHelper = {
142
142
  }
143
143
 
144
144
  // 防止小于1px
145
- if (useScaleX && Math.abs(scaleX * worldBoxBounds.width) < 1) scaleX = (scaleX < 0 ? -1 : 1) / worldBoxBounds.width
146
- if (useScaleY && Math.abs(scaleY * worldBoxBounds.height) < 1) scaleY = (scaleY < 0 ? -1 : 1) / worldBoxBounds.height
145
+ if (useScaleX && Math.abs(scaleX * worldBoxBounds.width) < 1) scaleX = sign(scaleX) / worldBoxBounds.width
146
+ if (useScaleY && Math.abs(scaleY * worldBoxBounds.height) < 1) scaleY = sign(scaleY) / worldBoxBounds.height
147
147
 
148
148
  if (lockRatio && scaleX !== scaleY) scaleY = scaleX = Math.min(scaleX, scaleY)
149
149
 
@@ -1,5 +1,5 @@
1
1
  import { IEvent, IPointData, IAlign, IAxis, IFunction, IMatrix, IUI } from '@leafer-ui/interface'
2
- import { MathHelper, Matrix, LeafHelper, AroundHelper, isObject, isString, isNumber, isUndefined } from '@leafer-ui/draw'
2
+ import { MathHelper, Matrix, LeafHelper, AroundHelper, isObject, isString, isNumber } from '@leafer-ui/draw'
3
3
  import { DragEvent, RotateEvent, ZoomEvent, MoveEvent } from '@leafer-ui/core'
4
4
 
5
5
  import { IEditBox, IEditPoint, IEditTool, IEditorScaleEvent, ISimulateElement, IEditorMoveEvent, IEditorRotateEvent, IEditorSkewEvent } from '@leafer-in/interface'
@@ -23,12 +23,10 @@ export class TransformTool implements ITransformTool { // Editor use
23
23
 
24
24
  public onMove(e: DragEvent | MoveEvent): void {
25
25
 
26
- const { target, mergeConfig, dragStartData, app } = this.editBox
26
+ const { target, mergeConfig, dragStartData } = this.editBox
27
27
 
28
28
  let move: IPointData, { dragLimitAnimate } = mergeConfig
29
29
 
30
- if (isUndefined(dragLimitAnimate)) dragLimitAnimate = app && app.config.pointer.dragLimitAnimate
31
-
32
30
  const isMoveEnd = e.type === MoveEvent.END || e.type === DragEvent.END
33
31
  const axisDrag = isString(target.draggable)
34
32
  const checkLimitMove = !dragLimitAnimate || isMoveEnd || axisDrag