@leafer-in/viewport 1.6.1 → 1.6.2
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/viewport.cjs +0 -1
- package/dist/viewport.esm.js +0 -1
- package/dist/viewport.js +0 -1
- package/package.json +4 -4
- package/dist/viewport.cjs.map +0 -1
- package/dist/viewport.esm.js.map +0 -1
- package/dist/viewport.js.map +0 -1
package/dist/viewport.cjs
CHANGED
package/dist/viewport.esm.js
CHANGED
package/dist/viewport.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leafer-in/viewport",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"description": "@leafer-in/viewport",
|
|
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/core": "^1.6.
|
|
38
|
-
"@leafer-ui/interface": "^1.6.
|
|
39
|
-
"@leafer-in/interface": "^1.6.
|
|
37
|
+
"@leafer-ui/core": "^1.6.2",
|
|
38
|
+
"@leafer-ui/interface": "^1.6.2",
|
|
39
|
+
"@leafer-in/interface": "^1.6.2"
|
|
40
40
|
}
|
|
41
41
|
}
|
package/dist/viewport.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.cjs","sources":["../../../../../../src/in/packages/viewport/src/type/viewport.ts","../../../../../../src/in/packages/viewport/src/type/custom.ts","../../../../../../src/in/packages/viewport/src/type/design.ts","../../../../../../src/in/packages/viewport/src/type/document.ts","../../../../../../src/in/packages/viewport/src/LeaferTypeCreator.ts","../../../../../../src/in/packages/viewport/src/interaction/MultiTouchHelper.ts","../../../../../../src/in/packages/viewport/src/interaction/WheelEventHelper.ts","../../../../../../src/in/packages/viewport/src/interaction/Transformer.ts","../../../../../../src/in/packages/viewport/src/Leafer.ts","../../../../../../src/in/packages/viewport/src/interaction/Interaction.ts","../../../../../../src/in/packages/viewport/src/interaction/Dragger.ts","../../../../../../src/in/packages/viewport/src/index.ts"],"sourcesContent":["import { ILeaferBase, ILeaferConfig } from '@leafer-ui/interface'\n\nimport { MoveEvent, ZoomEvent, DataHelper } from '@leafer-ui/core'\n\n\nexport function addViewport(leafer: ILeaferBase, mergeConfig?: ILeaferConfig, custom?: boolean): void {\n addViewportConfig(leafer.parentApp ? leafer.parentApp : leafer, mergeConfig)\n if (leafer.isApp || custom) return\n\n leafer.__eventIds.push(\n leafer.on_(MoveEvent.BEFORE_MOVE, (e: MoveEvent) => {\n leafer.zoomLayer.move(leafer.getValidMove(e.moveX, e.moveY))\n }),\n leafer.on_(ZoomEvent.BEFORE_ZOOM, (e: ZoomEvent) => {\n const { zoomLayer } = leafer\n const changeScale = leafer.getValidScale(e.scale)\n if (changeScale !== 1) zoomLayer.scaleOfWorld(e, changeScale)\n })\n )\n}\n\nexport function addViewportConfig(leafer: ILeaferBase, mergeConfig?: ILeaferConfig): void {\n const viewportConfig: ILeaferConfig = {\n wheel: { preventDefault: true },\n touch: { preventDefault: true },\n pointer: { preventDefaultMenu: true }\n }\n if (mergeConfig) DataHelper.assign(viewportConfig, mergeConfig)\n DataHelper.assign(leafer.config, viewportConfig, leafer.userConfig)\n}","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function custom(leafer: ILeaferBase): void {\n addViewport(leafer, null, true)\n}\n","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function design(leafer: ILeaferBase): void {\n addViewport(leafer, {\n zoom: {\n min: 0.01,\n max: 256\n },\n move: {\n holdSpaceKey: true,\n holdMiddleKey: true,\n }\n })\n}\n","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function document(leafer: ILeaferBase): void {\n addViewport(leafer, {\n zoom: { min: 1 },\n move: { scroll: 'limit' }\n })\n}\n","import { ILeaferBase, ILeaferTypeList, ILeaferTypeFunction } from '@leafer-ui/interface'\n\nimport { Debug } from '@leafer-ui/core'\n\nimport { addViewport } from './type/viewport'\nimport { custom } from './type/custom'\nimport { design } from './type/design'\nimport { document } from './type/document'\n\n\nconst debug = Debug.get('LeaferTypeCreator')\n\nexport const LeaferTypeCreator = {\n\n list: {} as ILeaferTypeList,\n\n register(name: string, fn: ILeaferTypeFunction): void {\n list[name] && debug.repeat(name)\n list[name] = fn\n },\n\n run(name: string, leafer: ILeaferBase): void {\n const fn = list[name]\n fn && fn(leafer)\n }\n\n}\n\nconst { list, register } = LeaferTypeCreator\n\nregister('viewport', addViewport)\nregister('custom', custom)\nregister('design', design)\nregister('document', document)","import { IMultiTouchData, IKeepTouchData } from '@leafer-ui/interface'\n\nimport { PointHelper } from '@leafer-ui/core'\n\n\nexport const MultiTouchHelper = {\n\n getData(list: IKeepTouchData[]): IMultiTouchData {\n const a = list[0], b = list[1]\n const lastCenter = PointHelper.getCenter(a.from, b.from)\n const center = PointHelper.getCenter(a.to, b.to)\n const move = { x: center.x - lastCenter.x, y: center.y - lastCenter.y }\n\n const lastDistance = PointHelper.getDistance(a.from, b.from)\n const distance = PointHelper.getDistance(a.to, b.to)\n const scale = distance / lastDistance\n\n const rotation = PointHelper.getRotation(a.from, b.from, a.to, b.to)\n\n return { move, scale, rotation, center }\n }\n\n}","import { IPointData, IWheelEvent, IWheelConfig } from '@leafer-ui/interface'\n\nimport { MathHelper, Platform } from '@leafer-ui/core'\n\n\nexport const WheelEventHelper = {\n\n getMove(event: IWheelEvent, config: IWheelConfig): IPointData {\n let { moveSpeed } = config\n let { deltaX, deltaY } = event\n if (event.shiftKey && !deltaX) { // Window\n deltaX = deltaY\n deltaY = 0\n }\n if (deltaX > 50) deltaX = Math.max(50, deltaX / 3)\n if (deltaY > 50) deltaY = Math.max(50, deltaY / 3)\n return { x: -deltaX * moveSpeed * 2, y: -deltaY * moveSpeed * 2 }\n },\n\n getScale(event: IWheelEvent, config: IWheelConfig): number {\n\n let zoom: boolean\n let scale = 1\n let { zoomMode, zoomSpeed } = config\n\n const delta = event.deltaY || event.deltaX\n\n if (zoomMode) {\n // mac 触摸板滚动手势的deltaY是整数, 鼠标滚动/触摸板缩放的deltaY有小数点, firfox鼠标滚动为整数,为18或19的倍数\n // windows 始终是整数\n zoom = (zoomMode === 'mouse') ? true : (!event.deltaX && (Platform.intWheelDeltaY ? Math.abs(delta) > 17 : Math.ceil(delta) !== delta))\n if (event.shiftKey || event.metaKey || event.ctrlKey) zoom = true\n } else {\n zoom = !event.shiftKey && (event.metaKey || event.ctrlKey)\n }\n\n if (zoom) {\n zoomSpeed = MathHelper.within(zoomSpeed, 0, 1)\n const min = event.deltaY ? config.delta.y : config.delta.x\n scale = 1 - delta / (min * 4) * zoomSpeed // zoomSpeed\n if (scale < 0.5) scale = 0.5\n if (scale >= 1.5) scale = 1.5\n }\n\n return scale\n }\n\n}","import { IMoveEvent, IZoomEvent, IRotateEvent, ITimer } from '@leafer-ui/interface'\n\nimport { InteractionBase, MoveEvent, ZoomEvent, RotateEvent } from '@leafer-ui/core'\n\n\nexport class Transformer {\n\n public get transforming(): boolean { return !!(this.moveData || this.zoomData || this.rotateData) }\n\n protected interaction: InteractionBase\n protected moveData: IMoveEvent\n protected zoomData: IZoomEvent\n protected rotateData: IRotateEvent\n protected transformTimer: ITimer\n\n constructor(interaction: InteractionBase) {\n this.interaction = interaction\n }\n\n public move(data: IMoveEvent): void {\n const { interaction } = this\n if (!data.moveType) data.moveType = 'move'\n\n if (!this.moveData) {\n this.setPath(data)\n this.moveData = { ...data, moveX: 0, moveY: 0 }\n interaction.emit(MoveEvent.START, this.moveData)\n }\n\n data.path = this.moveData.path\n interaction.emit(MoveEvent.BEFORE_MOVE, data)\n interaction.emit(MoveEvent.MOVE, data)\n\n this.transformEndWait()\n }\n\n public zoom(data: IZoomEvent): void {\n const { interaction } = this\n\n if (!this.zoomData) {\n this.setPath(data)\n this.zoomData = { ...data, scale: 1 }\n interaction.emit(ZoomEvent.START, this.zoomData)\n }\n\n data.path = this.zoomData.path\n interaction.emit(ZoomEvent.BEFORE_ZOOM, data)\n interaction.emit(ZoomEvent.ZOOM, data)\n\n this.transformEndWait()\n }\n\n public rotate(data: IRotateEvent): void {\n const { interaction } = this\n\n if (!this.rotateData) {\n this.setPath(data)\n this.rotateData = { ...data, rotation: 0 }\n interaction.emit(RotateEvent.START, this.rotateData)\n }\n\n data.path = this.rotateData.path\n interaction.emit(RotateEvent.BEFORE_ROTATE, data)\n interaction.emit(RotateEvent.ROTATE, data)\n\n this.transformEndWait()\n }\n\n public setPath(data: any): void {\n const { interaction } = this\n const { path } = interaction.selector.getByPoint(data, interaction.hitRadius)\n data.path = path\n interaction.cancelHover()\n }\n\n protected transformEndWait(): void {\n clearTimeout(this.transformTimer)\n this.transformTimer = setTimeout(() => {\n this.transformEnd()\n }, this.interaction.p.transformTime)\n }\n\n public transformEnd(): void {\n const { interaction, moveData, zoomData, rotateData } = this\n if (moveData) interaction.emit(MoveEvent.END, moveData)\n if (zoomData) interaction.emit(ZoomEvent.END, zoomData)\n if (rotateData) interaction.emit(RotateEvent.END, rotateData)\n this.reset()\n }\n\n public reset(): void {\n this.zoomData = this.moveData = this.rotateData = null\n }\n\n public destroy(): void {\n this.reset()\n }\n}","import { ILeaferType, IPointData } from '@leafer-ui/interface'\n\nimport { Leafer, Bounds } from '@leafer-ui/core'\n\nimport { LeaferTypeCreator } from './LeaferTypeCreator'\n\n\nconst leafer = Leafer.prototype\nconst bounds = new Bounds()\n\nleafer.initType = function (type: ILeaferType) {\n LeaferTypeCreator.run(type, this)\n}\n\nleafer.getValidMove = function (moveX: number, moveY: number): IPointData {\n const { scroll, disabled } = this.app.config.move\n\n if (scroll) {\n const type = scroll === true ? '' : scroll\n\n if (type.includes('x')) moveX = moveX || moveY, moveY = 0\n else if (type.includes('y')) moveY = moveY || moveX, moveX = 0\n else Math.abs(moveX) > Math.abs(moveY) ? moveY = 0 : moveX = 0\n\n if (type.includes('limit')) {\n const { x, y, width, height } = bounds.set(this.__world).addPoint(this.zoomLayer as IPointData)\n const right = x + width - this.width, bottom = y + height - this.height\n\n if (x >= 0 && right <= 0) moveX = 0 // includeX\n else if (moveX > 0) { if (x + moveX > 0) moveX = -x }\n else if (moveX < 0 && right + moveX < 0) moveX = -right\n\n if (y >= 0 && bottom <= 0) moveY = 0 // includeY\n else if (moveY > 0) { if (y + moveY > 0) moveY = -y }\n else if (moveY < 0 && bottom + moveY < 0) moveY = -bottom\n }\n }\n return { x: disabled ? 0 : moveX, y: disabled ? 0 : moveY }\n}\n\nleafer.getValidScale = function (changeScale: number): number {\n const { scaleX } = this.zoomLayer.__, { min, max, disabled } = this.app.config.zoom, absScale = Math.abs(scaleX * changeScale)\n if (min && absScale < min) changeScale = min / scaleX\n else if (max && absScale > max) changeScale = max / scaleX\n return disabled ? 1 : changeScale // fix 不能过滤小数位\n}","import { IMoveEvent, IZoomEvent, IRotateEvent, IWheelEvent, IUIEvent, IKeepTouchData, IPointData, IEvent } from '@leafer-ui/interface'\n\nimport { InteractionBase, PointHelper } from '@leafer-ui/core'\n\nimport { WheelEventHelper } from './WheelEventHelper'\nimport { Transformer } from './Transformer'\nimport { MultiTouchHelper } from './MultiTouchHelper'\n\n\nfunction getMoveEventData(move: IPointData, event: IEvent): IMoveEvent {\n return { ...event, moveX: move.x, moveY: move.y } as IMoveEvent\n}\n\nfunction getRotateEventData(rotation: number, event: IEvent): IRotateEvent {\n return { ...event, rotation } as IRotateEvent\n}\n\nfunction getZoomEventData(scale: number, event: IEvent): IZoomEvent {\n return { ...event, scale, } as IZoomEvent\n}\n\n\nconst interaction = InteractionBase.prototype\n\ninteraction.createTransformer = function (): void {\n this.transformer = new Transformer(this)\n}\n\ninteraction.move = function (data: IMoveEvent): void {\n this.transformer.move(data)\n}\n\ninteraction.zoom = function (data: IZoomEvent): void {\n this.transformer.zoom(data)\n}\n\ninteraction.rotate = function (data: IRotateEvent): void {\n this.transformer.rotate(data)\n}\n\ninteraction.transformEnd = function (): void {\n this.transformer.transformEnd()\n}\n\n\ninteraction.wheel = function (data: IWheelEvent): void {\n const { wheel, pointer } = this.config, { posDeltaSpeed, negDeltaSpeed } = wheel\n if (wheel.disabled) return\n\n if (data.deltaX > 0) posDeltaSpeed && (data.deltaX *= posDeltaSpeed)\n else negDeltaSpeed && (data.deltaX *= negDeltaSpeed)\n\n if (data.deltaY > 0) posDeltaSpeed && (data.deltaY *= posDeltaSpeed)\n else negDeltaSpeed && (data.deltaY *= negDeltaSpeed)\n\n const scale = wheel.getScale ? wheel.getScale(data, wheel) : WheelEventHelper.getScale(data, wheel)\n if (scale !== 1) this.zoom(getZoomEventData(scale, data))\n else {\n const move = wheel.getMove ? wheel.getMove(data, wheel) : WheelEventHelper.getMove(data, wheel)\n if (pointer.snap) PointHelper.round(move)\n this.move(getMoveEventData(move, data))\n }\n}\n\n\ninteraction.multiTouch = function (data: IUIEvent, list: IKeepTouchData[]): void {\n if (this.config.multiTouch.disabled) return\n const { move, rotation, scale, center } = MultiTouchHelper.getData(list)\n Object.assign(data, center)\n\n this.pointerWaitCancel()\n\n this.rotate(getRotateEventData(rotation, data))\n this.zoom(getZoomEventData(scale, data))\n this.move(getMoveEventData(move, data))\n}","import { IPointerEvent, IFunction } from '@leafer-ui/interface'\n\nimport { Dragger, BoundsHelper, PointHelper } from '@leafer-ui/core'\n\n\nconst dragger = Dragger.prototype\nconst { abs } = Math\n\ndragger.checkDragEndAnimate = function (data: IPointerEvent, speed?: number): boolean {\n const { moveX, moveY } = this.dragData\n const absMoveX = abs(moveX), absMoveY = abs(moveY), minMove = speed ? 1 : 0.1\n const dragAnimate = this.interaction.m.dragAnimate && this.canAnimate && this.moving && (absMoveX > minMove || absMoveY > minMove)\n\n if (dragAnimate) {\n const inertia = data.pointerType === 'touch' ? 3 : 1, maxMove = 70\n speed = speed ? 0.95 : inertia\n if (absMoveX * speed > maxMove) speed = maxMove / absMoveX\n else if (absMoveY * speed > maxMove) speed = maxMove / absMoveY\n\n data = { ...data }\n PointHelper.move(data, moveX * speed, moveY * speed)\n\n this.drag(data)\n this.animate(() => { this.dragEnd(data, 1) })\n }\n\n return dragAnimate\n}\n\ndragger.animate = function (func?: IFunction, off?: 'off'): void { // dragEnd animation\n const animateWait = func || this.animateWait\n if (animateWait) this.interaction.target.nextRender(animateWait, null, off)\n this.animateWait = func\n}\n\ndragger.checkDragOut = function (data: IPointerEvent): void {\n const { interaction } = this\n this.autoMoveCancel()\n if (this.dragging && !interaction.shrinkCanvasBounds.hitPoint(data)) this.autoMoveOnDragOut(data)\n}\n\ndragger.autoMoveOnDragOut = function (data: IPointerEvent): void {\n const { interaction, downData, canDragOut } = this\n const { autoDistance, dragOut } = interaction.m\n if (!dragOut || !canDragOut || !autoDistance) return\n\n const bounds = interaction.shrinkCanvasBounds\n const { x, y } = bounds\n const right = BoundsHelper.maxX(bounds)\n const bottom = BoundsHelper.maxY(bounds)\n\n const moveX = data.x < x ? autoDistance : (right < data.x ? -autoDistance : 0)\n const moveY = data.y < y ? autoDistance : (bottom < data.y ? -autoDistance : 0)\n let totalX = 0, totalY = 0\n\n this.autoMoveTimer = setInterval(() => {\n totalX += moveX\n totalY += moveY\n\n PointHelper.move(downData, moveX, moveY)\n PointHelper.move(this.dragData, moveX, moveY)\n\n interaction.move({ ...data, moveX, moveY, totalX, totalY, moveType: 'drag' })\n interaction.pointerMoveReal(data)\n }, 10)\n}\n\ndragger.autoMoveCancel = function (): void {\n if (this.autoMoveTimer) {\n clearInterval(this.autoMoveTimer)\n this.autoMoveTimer = 0\n }\n}","export { LeaferTypeCreator } from './LeaferTypeCreator'\nexport { addViewport, addViewportConfig } from './type/viewport'\nexport { MultiTouchHelper } from './interaction/MultiTouchHelper'\nexport { WheelEventHelper } from './interaction/WheelEventHelper'\nexport { Transformer } from './interaction/Transformer'\n\nimport { Plugin } from '@leafer-ui/core'\n\nimport './Leafer'\nimport './interaction/Interaction'\nimport './interaction/Dragger'\n\nPlugin.add('viewport')"],"names":["MoveEvent","ZoomEvent","DataHelper","Debug","PointHelper","Platform","MathHelper","RotateEvent","Leafer","Bounds","InteractionBase","Dragger","BoundsHelper","Plugin"],"mappings":"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"}
|
package/dist/viewport.esm.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.esm.js","sources":["../../../../../../src/in/packages/viewport/src/type/viewport.ts","../../../../../../src/in/packages/viewport/src/type/custom.ts","../../../../../../src/in/packages/viewport/src/type/design.ts","../../../../../../src/in/packages/viewport/src/type/document.ts","../../../../../../src/in/packages/viewport/src/LeaferTypeCreator.ts","../../../../../../src/in/packages/viewport/src/interaction/MultiTouchHelper.ts","../../../../../../src/in/packages/viewport/src/interaction/WheelEventHelper.ts","../../../../../../src/in/packages/viewport/src/interaction/Transformer.ts","../../../../../../src/in/packages/viewport/src/Leafer.ts","../../../../../../src/in/packages/viewport/src/interaction/Interaction.ts","../../../../../../src/in/packages/viewport/src/interaction/Dragger.ts","../../../../../../src/in/packages/viewport/src/index.ts"],"sourcesContent":["import { ILeaferBase, ILeaferConfig } from '@leafer-ui/interface'\n\nimport { MoveEvent, ZoomEvent, DataHelper } from '@leafer-ui/core'\n\n\nexport function addViewport(leafer: ILeaferBase, mergeConfig?: ILeaferConfig, custom?: boolean): void {\n addViewportConfig(leafer.parentApp ? leafer.parentApp : leafer, mergeConfig)\n if (leafer.isApp || custom) return\n\n leafer.__eventIds.push(\n leafer.on_(MoveEvent.BEFORE_MOVE, (e: MoveEvent) => {\n leafer.zoomLayer.move(leafer.getValidMove(e.moveX, e.moveY))\n }),\n leafer.on_(ZoomEvent.BEFORE_ZOOM, (e: ZoomEvent) => {\n const { zoomLayer } = leafer\n const changeScale = leafer.getValidScale(e.scale)\n if (changeScale !== 1) zoomLayer.scaleOfWorld(e, changeScale)\n })\n )\n}\n\nexport function addViewportConfig(leafer: ILeaferBase, mergeConfig?: ILeaferConfig): void {\n const viewportConfig: ILeaferConfig = {\n wheel: { preventDefault: true },\n touch: { preventDefault: true },\n pointer: { preventDefaultMenu: true }\n }\n if (mergeConfig) DataHelper.assign(viewportConfig, mergeConfig)\n DataHelper.assign(leafer.config, viewportConfig, leafer.userConfig)\n}","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function custom(leafer: ILeaferBase): void {\n addViewport(leafer, null, true)\n}\n","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function design(leafer: ILeaferBase): void {\n addViewport(leafer, {\n zoom: {\n min: 0.01,\n max: 256\n },\n move: {\n holdSpaceKey: true,\n holdMiddleKey: true,\n }\n })\n}\n","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function document(leafer: ILeaferBase): void {\n addViewport(leafer, {\n zoom: { min: 1 },\n move: { scroll: 'limit' }\n })\n}\n","import { ILeaferBase, ILeaferTypeList, ILeaferTypeFunction } from '@leafer-ui/interface'\n\nimport { Debug } from '@leafer-ui/core'\n\nimport { addViewport } from './type/viewport'\nimport { custom } from './type/custom'\nimport { design } from './type/design'\nimport { document } from './type/document'\n\n\nconst debug = Debug.get('LeaferTypeCreator')\n\nexport const LeaferTypeCreator = {\n\n list: {} as ILeaferTypeList,\n\n register(name: string, fn: ILeaferTypeFunction): void {\n list[name] && debug.repeat(name)\n list[name] = fn\n },\n\n run(name: string, leafer: ILeaferBase): void {\n const fn = list[name]\n fn && fn(leafer)\n }\n\n}\n\nconst { list, register } = LeaferTypeCreator\n\nregister('viewport', addViewport)\nregister('custom', custom)\nregister('design', design)\nregister('document', document)","import { IMultiTouchData, IKeepTouchData } from '@leafer-ui/interface'\n\nimport { PointHelper } from '@leafer-ui/core'\n\n\nexport const MultiTouchHelper = {\n\n getData(list: IKeepTouchData[]): IMultiTouchData {\n const a = list[0], b = list[1]\n const lastCenter = PointHelper.getCenter(a.from, b.from)\n const center = PointHelper.getCenter(a.to, b.to)\n const move = { x: center.x - lastCenter.x, y: center.y - lastCenter.y }\n\n const lastDistance = PointHelper.getDistance(a.from, b.from)\n const distance = PointHelper.getDistance(a.to, b.to)\n const scale = distance / lastDistance\n\n const rotation = PointHelper.getRotation(a.from, b.from, a.to, b.to)\n\n return { move, scale, rotation, center }\n }\n\n}","import { IPointData, IWheelEvent, IWheelConfig } from '@leafer-ui/interface'\n\nimport { MathHelper, Platform } from '@leafer-ui/core'\n\n\nexport const WheelEventHelper = {\n\n getMove(event: IWheelEvent, config: IWheelConfig): IPointData {\n let { moveSpeed } = config\n let { deltaX, deltaY } = event\n if (event.shiftKey && !deltaX) { // Window\n deltaX = deltaY\n deltaY = 0\n }\n if (deltaX > 50) deltaX = Math.max(50, deltaX / 3)\n if (deltaY > 50) deltaY = Math.max(50, deltaY / 3)\n return { x: -deltaX * moveSpeed * 2, y: -deltaY * moveSpeed * 2 }\n },\n\n getScale(event: IWheelEvent, config: IWheelConfig): number {\n\n let zoom: boolean\n let scale = 1\n let { zoomMode, zoomSpeed } = config\n\n const delta = event.deltaY || event.deltaX\n\n if (zoomMode) {\n // mac 触摸板滚动手势的deltaY是整数, 鼠标滚动/触摸板缩放的deltaY有小数点, firfox鼠标滚动为整数,为18或19的倍数\n // windows 始终是整数\n zoom = (zoomMode === 'mouse') ? true : (!event.deltaX && (Platform.intWheelDeltaY ? Math.abs(delta) > 17 : Math.ceil(delta) !== delta))\n if (event.shiftKey || event.metaKey || event.ctrlKey) zoom = true\n } else {\n zoom = !event.shiftKey && (event.metaKey || event.ctrlKey)\n }\n\n if (zoom) {\n zoomSpeed = MathHelper.within(zoomSpeed, 0, 1)\n const min = event.deltaY ? config.delta.y : config.delta.x\n scale = 1 - delta / (min * 4) * zoomSpeed // zoomSpeed\n if (scale < 0.5) scale = 0.5\n if (scale >= 1.5) scale = 1.5\n }\n\n return scale\n }\n\n}","import { IMoveEvent, IZoomEvent, IRotateEvent, ITimer } from '@leafer-ui/interface'\n\nimport { InteractionBase, MoveEvent, ZoomEvent, RotateEvent } from '@leafer-ui/core'\n\n\nexport class Transformer {\n\n public get transforming(): boolean { return !!(this.moveData || this.zoomData || this.rotateData) }\n\n protected interaction: InteractionBase\n protected moveData: IMoveEvent\n protected zoomData: IZoomEvent\n protected rotateData: IRotateEvent\n protected transformTimer: ITimer\n\n constructor(interaction: InteractionBase) {\n this.interaction = interaction\n }\n\n public move(data: IMoveEvent): void {\n const { interaction } = this\n if (!data.moveType) data.moveType = 'move'\n\n if (!this.moveData) {\n this.setPath(data)\n this.moveData = { ...data, moveX: 0, moveY: 0 }\n interaction.emit(MoveEvent.START, this.moveData)\n }\n\n data.path = this.moveData.path\n interaction.emit(MoveEvent.BEFORE_MOVE, data)\n interaction.emit(MoveEvent.MOVE, data)\n\n this.transformEndWait()\n }\n\n public zoom(data: IZoomEvent): void {\n const { interaction } = this\n\n if (!this.zoomData) {\n this.setPath(data)\n this.zoomData = { ...data, scale: 1 }\n interaction.emit(ZoomEvent.START, this.zoomData)\n }\n\n data.path = this.zoomData.path\n interaction.emit(ZoomEvent.BEFORE_ZOOM, data)\n interaction.emit(ZoomEvent.ZOOM, data)\n\n this.transformEndWait()\n }\n\n public rotate(data: IRotateEvent): void {\n const { interaction } = this\n\n if (!this.rotateData) {\n this.setPath(data)\n this.rotateData = { ...data, rotation: 0 }\n interaction.emit(RotateEvent.START, this.rotateData)\n }\n\n data.path = this.rotateData.path\n interaction.emit(RotateEvent.BEFORE_ROTATE, data)\n interaction.emit(RotateEvent.ROTATE, data)\n\n this.transformEndWait()\n }\n\n public setPath(data: any): void {\n const { interaction } = this\n const { path } = interaction.selector.getByPoint(data, interaction.hitRadius)\n data.path = path\n interaction.cancelHover()\n }\n\n protected transformEndWait(): void {\n clearTimeout(this.transformTimer)\n this.transformTimer = setTimeout(() => {\n this.transformEnd()\n }, this.interaction.p.transformTime)\n }\n\n public transformEnd(): void {\n const { interaction, moveData, zoomData, rotateData } = this\n if (moveData) interaction.emit(MoveEvent.END, moveData)\n if (zoomData) interaction.emit(ZoomEvent.END, zoomData)\n if (rotateData) interaction.emit(RotateEvent.END, rotateData)\n this.reset()\n }\n\n public reset(): void {\n this.zoomData = this.moveData = this.rotateData = null\n }\n\n public destroy(): void {\n this.reset()\n }\n}","import { ILeaferType, IPointData } from '@leafer-ui/interface'\n\nimport { Leafer, Bounds } from '@leafer-ui/core'\n\nimport { LeaferTypeCreator } from './LeaferTypeCreator'\n\n\nconst leafer = Leafer.prototype\nconst bounds = new Bounds()\n\nleafer.initType = function (type: ILeaferType) {\n LeaferTypeCreator.run(type, this)\n}\n\nleafer.getValidMove = function (moveX: number, moveY: number): IPointData {\n const { scroll, disabled } = this.app.config.move\n\n if (scroll) {\n const type = scroll === true ? '' : scroll\n\n if (type.includes('x')) moveX = moveX || moveY, moveY = 0\n else if (type.includes('y')) moveY = moveY || moveX, moveX = 0\n else Math.abs(moveX) > Math.abs(moveY) ? moveY = 0 : moveX = 0\n\n if (type.includes('limit')) {\n const { x, y, width, height } = bounds.set(this.__world).addPoint(this.zoomLayer as IPointData)\n const right = x + width - this.width, bottom = y + height - this.height\n\n if (x >= 0 && right <= 0) moveX = 0 // includeX\n else if (moveX > 0) { if (x + moveX > 0) moveX = -x }\n else if (moveX < 0 && right + moveX < 0) moveX = -right\n\n if (y >= 0 && bottom <= 0) moveY = 0 // includeY\n else if (moveY > 0) { if (y + moveY > 0) moveY = -y }\n else if (moveY < 0 && bottom + moveY < 0) moveY = -bottom\n }\n }\n return { x: disabled ? 0 : moveX, y: disabled ? 0 : moveY }\n}\n\nleafer.getValidScale = function (changeScale: number): number {\n const { scaleX } = this.zoomLayer.__, { min, max, disabled } = this.app.config.zoom, absScale = Math.abs(scaleX * changeScale)\n if (min && absScale < min) changeScale = min / scaleX\n else if (max && absScale > max) changeScale = max / scaleX\n return disabled ? 1 : changeScale // fix 不能过滤小数位\n}","import { IMoveEvent, IZoomEvent, IRotateEvent, IWheelEvent, IUIEvent, IKeepTouchData, IPointData, IEvent } from '@leafer-ui/interface'\n\nimport { InteractionBase, PointHelper } from '@leafer-ui/core'\n\nimport { WheelEventHelper } from './WheelEventHelper'\nimport { Transformer } from './Transformer'\nimport { MultiTouchHelper } from './MultiTouchHelper'\n\n\nfunction getMoveEventData(move: IPointData, event: IEvent): IMoveEvent {\n return { ...event, moveX: move.x, moveY: move.y } as IMoveEvent\n}\n\nfunction getRotateEventData(rotation: number, event: IEvent): IRotateEvent {\n return { ...event, rotation } as IRotateEvent\n}\n\nfunction getZoomEventData(scale: number, event: IEvent): IZoomEvent {\n return { ...event, scale, } as IZoomEvent\n}\n\n\nconst interaction = InteractionBase.prototype\n\ninteraction.createTransformer = function (): void {\n this.transformer = new Transformer(this)\n}\n\ninteraction.move = function (data: IMoveEvent): void {\n this.transformer.move(data)\n}\n\ninteraction.zoom = function (data: IZoomEvent): void {\n this.transformer.zoom(data)\n}\n\ninteraction.rotate = function (data: IRotateEvent): void {\n this.transformer.rotate(data)\n}\n\ninteraction.transformEnd = function (): void {\n this.transformer.transformEnd()\n}\n\n\ninteraction.wheel = function (data: IWheelEvent): void {\n const { wheel, pointer } = this.config, { posDeltaSpeed, negDeltaSpeed } = wheel\n if (wheel.disabled) return\n\n if (data.deltaX > 0) posDeltaSpeed && (data.deltaX *= posDeltaSpeed)\n else negDeltaSpeed && (data.deltaX *= negDeltaSpeed)\n\n if (data.deltaY > 0) posDeltaSpeed && (data.deltaY *= posDeltaSpeed)\n else negDeltaSpeed && (data.deltaY *= negDeltaSpeed)\n\n const scale = wheel.getScale ? wheel.getScale(data, wheel) : WheelEventHelper.getScale(data, wheel)\n if (scale !== 1) this.zoom(getZoomEventData(scale, data))\n else {\n const move = wheel.getMove ? wheel.getMove(data, wheel) : WheelEventHelper.getMove(data, wheel)\n if (pointer.snap) PointHelper.round(move)\n this.move(getMoveEventData(move, data))\n }\n}\n\n\ninteraction.multiTouch = function (data: IUIEvent, list: IKeepTouchData[]): void {\n if (this.config.multiTouch.disabled) return\n const { move, rotation, scale, center } = MultiTouchHelper.getData(list)\n Object.assign(data, center)\n\n this.pointerWaitCancel()\n\n this.rotate(getRotateEventData(rotation, data))\n this.zoom(getZoomEventData(scale, data))\n this.move(getMoveEventData(move, data))\n}","import { IPointerEvent, IFunction } from '@leafer-ui/interface'\n\nimport { Dragger, BoundsHelper, PointHelper } from '@leafer-ui/core'\n\n\nconst dragger = Dragger.prototype\nconst { abs } = Math\n\ndragger.checkDragEndAnimate = function (data: IPointerEvent, speed?: number): boolean {\n const { moveX, moveY } = this.dragData\n const absMoveX = abs(moveX), absMoveY = abs(moveY), minMove = speed ? 1 : 0.1\n const dragAnimate = this.interaction.m.dragAnimate && this.canAnimate && this.moving && (absMoveX > minMove || absMoveY > minMove)\n\n if (dragAnimate) {\n const inertia = data.pointerType === 'touch' ? 3 : 1, maxMove = 70\n speed = speed ? 0.95 : inertia\n if (absMoveX * speed > maxMove) speed = maxMove / absMoveX\n else if (absMoveY * speed > maxMove) speed = maxMove / absMoveY\n\n data = { ...data }\n PointHelper.move(data, moveX * speed, moveY * speed)\n\n this.drag(data)\n this.animate(() => { this.dragEnd(data, 1) })\n }\n\n return dragAnimate\n}\n\ndragger.animate = function (func?: IFunction, off?: 'off'): void { // dragEnd animation\n const animateWait = func || this.animateWait\n if (animateWait) this.interaction.target.nextRender(animateWait, null, off)\n this.animateWait = func\n}\n\ndragger.checkDragOut = function (data: IPointerEvent): void {\n const { interaction } = this\n this.autoMoveCancel()\n if (this.dragging && !interaction.shrinkCanvasBounds.hitPoint(data)) this.autoMoveOnDragOut(data)\n}\n\ndragger.autoMoveOnDragOut = function (data: IPointerEvent): void {\n const { interaction, downData, canDragOut } = this\n const { autoDistance, dragOut } = interaction.m\n if (!dragOut || !canDragOut || !autoDistance) return\n\n const bounds = interaction.shrinkCanvasBounds\n const { x, y } = bounds\n const right = BoundsHelper.maxX(bounds)\n const bottom = BoundsHelper.maxY(bounds)\n\n const moveX = data.x < x ? autoDistance : (right < data.x ? -autoDistance : 0)\n const moveY = data.y < y ? autoDistance : (bottom < data.y ? -autoDistance : 0)\n let totalX = 0, totalY = 0\n\n this.autoMoveTimer = setInterval(() => {\n totalX += moveX\n totalY += moveY\n\n PointHelper.move(downData, moveX, moveY)\n PointHelper.move(this.dragData, moveX, moveY)\n\n interaction.move({ ...data, moveX, moveY, totalX, totalY, moveType: 'drag' })\n interaction.pointerMoveReal(data)\n }, 10)\n}\n\ndragger.autoMoveCancel = function (): void {\n if (this.autoMoveTimer) {\n clearInterval(this.autoMoveTimer)\n this.autoMoveTimer = 0\n }\n}","export { LeaferTypeCreator } from './LeaferTypeCreator'\nexport { addViewport, addViewportConfig } from './type/viewport'\nexport { MultiTouchHelper } from './interaction/MultiTouchHelper'\nexport { WheelEventHelper } from './interaction/WheelEventHelper'\nexport { Transformer } from './interaction/Transformer'\n\nimport { Plugin } from '@leafer-ui/core'\n\nimport './Leafer'\nimport './interaction/Interaction'\nimport './interaction/Dragger'\n\nPlugin.add('viewport')"],"names":[],"mappings":"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"}
|
package/dist/viewport.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.js","sources":["../../../../../../src/in/packages/viewport/src/type/viewport.ts","../../../../../../src/in/packages/viewport/src/type/custom.ts","../../../../../../src/in/packages/viewport/src/type/design.ts","../../../../../../src/in/packages/viewport/src/type/document.ts","../../../../../../src/in/packages/viewport/src/LeaferTypeCreator.ts","../../../../../../src/in/packages/viewport/src/interaction/MultiTouchHelper.ts","../../../../../../src/in/packages/viewport/src/interaction/WheelEventHelper.ts","../../../../../../src/in/packages/viewport/src/interaction/Transformer.ts","../../../../../../src/in/packages/viewport/src/Leafer.ts","../../../../../../src/in/packages/viewport/src/interaction/Interaction.ts","../../../../../../src/in/packages/viewport/src/interaction/Dragger.ts","../../../../../../src/in/packages/viewport/src/index.ts"],"sourcesContent":["import { ILeaferBase, ILeaferConfig } from '@leafer-ui/interface'\n\nimport { MoveEvent, ZoomEvent, DataHelper } from '@leafer-ui/core'\n\n\nexport function addViewport(leafer: ILeaferBase, mergeConfig?: ILeaferConfig, custom?: boolean): void {\n addViewportConfig(leafer.parentApp ? leafer.parentApp : leafer, mergeConfig)\n if (leafer.isApp || custom) return\n\n leafer.__eventIds.push(\n leafer.on_(MoveEvent.BEFORE_MOVE, (e: MoveEvent) => {\n leafer.zoomLayer.move(leafer.getValidMove(e.moveX, e.moveY))\n }),\n leafer.on_(ZoomEvent.BEFORE_ZOOM, (e: ZoomEvent) => {\n const { zoomLayer } = leafer\n const changeScale = leafer.getValidScale(e.scale)\n if (changeScale !== 1) zoomLayer.scaleOfWorld(e, changeScale)\n })\n )\n}\n\nexport function addViewportConfig(leafer: ILeaferBase, mergeConfig?: ILeaferConfig): void {\n const viewportConfig: ILeaferConfig = {\n wheel: { preventDefault: true },\n touch: { preventDefault: true },\n pointer: { preventDefaultMenu: true }\n }\n if (mergeConfig) DataHelper.assign(viewportConfig, mergeConfig)\n DataHelper.assign(leafer.config, viewportConfig, leafer.userConfig)\n}","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function custom(leafer: ILeaferBase): void {\n addViewport(leafer, null, true)\n}\n","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function design(leafer: ILeaferBase): void {\n addViewport(leafer, {\n zoom: {\n min: 0.01,\n max: 256\n },\n move: {\n holdSpaceKey: true,\n holdMiddleKey: true,\n }\n })\n}\n","import { ILeaferBase } from '@leafer-ui/interface'\n\nimport { addViewport } from './viewport'\n\n\nexport function document(leafer: ILeaferBase): void {\n addViewport(leafer, {\n zoom: { min: 1 },\n move: { scroll: 'limit' }\n })\n}\n","import { ILeaferBase, ILeaferTypeList, ILeaferTypeFunction } from '@leafer-ui/interface'\n\nimport { Debug } from '@leafer-ui/core'\n\nimport { addViewport } from './type/viewport'\nimport { custom } from './type/custom'\nimport { design } from './type/design'\nimport { document } from './type/document'\n\n\nconst debug = Debug.get('LeaferTypeCreator')\n\nexport const LeaferTypeCreator = {\n\n list: {} as ILeaferTypeList,\n\n register(name: string, fn: ILeaferTypeFunction): void {\n list[name] && debug.repeat(name)\n list[name] = fn\n },\n\n run(name: string, leafer: ILeaferBase): void {\n const fn = list[name]\n fn && fn(leafer)\n }\n\n}\n\nconst { list, register } = LeaferTypeCreator\n\nregister('viewport', addViewport)\nregister('custom', custom)\nregister('design', design)\nregister('document', document)","import { IMultiTouchData, IKeepTouchData } from '@leafer-ui/interface'\n\nimport { PointHelper } from '@leafer-ui/core'\n\n\nexport const MultiTouchHelper = {\n\n getData(list: IKeepTouchData[]): IMultiTouchData {\n const a = list[0], b = list[1]\n const lastCenter = PointHelper.getCenter(a.from, b.from)\n const center = PointHelper.getCenter(a.to, b.to)\n const move = { x: center.x - lastCenter.x, y: center.y - lastCenter.y }\n\n const lastDistance = PointHelper.getDistance(a.from, b.from)\n const distance = PointHelper.getDistance(a.to, b.to)\n const scale = distance / lastDistance\n\n const rotation = PointHelper.getRotation(a.from, b.from, a.to, b.to)\n\n return { move, scale, rotation, center }\n }\n\n}","import { IPointData, IWheelEvent, IWheelConfig } from '@leafer-ui/interface'\n\nimport { MathHelper, Platform } from '@leafer-ui/core'\n\n\nexport const WheelEventHelper = {\n\n getMove(event: IWheelEvent, config: IWheelConfig): IPointData {\n let { moveSpeed } = config\n let { deltaX, deltaY } = event\n if (event.shiftKey && !deltaX) { // Window\n deltaX = deltaY\n deltaY = 0\n }\n if (deltaX > 50) deltaX = Math.max(50, deltaX / 3)\n if (deltaY > 50) deltaY = Math.max(50, deltaY / 3)\n return { x: -deltaX * moveSpeed * 2, y: -deltaY * moveSpeed * 2 }\n },\n\n getScale(event: IWheelEvent, config: IWheelConfig): number {\n\n let zoom: boolean\n let scale = 1\n let { zoomMode, zoomSpeed } = config\n\n const delta = event.deltaY || event.deltaX\n\n if (zoomMode) {\n // mac 触摸板滚动手势的deltaY是整数, 鼠标滚动/触摸板缩放的deltaY有小数点, firfox鼠标滚动为整数,为18或19的倍数\n // windows 始终是整数\n zoom = (zoomMode === 'mouse') ? true : (!event.deltaX && (Platform.intWheelDeltaY ? Math.abs(delta) > 17 : Math.ceil(delta) !== delta))\n if (event.shiftKey || event.metaKey || event.ctrlKey) zoom = true\n } else {\n zoom = !event.shiftKey && (event.metaKey || event.ctrlKey)\n }\n\n if (zoom) {\n zoomSpeed = MathHelper.within(zoomSpeed, 0, 1)\n const min = event.deltaY ? config.delta.y : config.delta.x\n scale = 1 - delta / (min * 4) * zoomSpeed // zoomSpeed\n if (scale < 0.5) scale = 0.5\n if (scale >= 1.5) scale = 1.5\n }\n\n return scale\n }\n\n}","import { IMoveEvent, IZoomEvent, IRotateEvent, ITimer } from '@leafer-ui/interface'\n\nimport { InteractionBase, MoveEvent, ZoomEvent, RotateEvent } from '@leafer-ui/core'\n\n\nexport class Transformer {\n\n public get transforming(): boolean { return !!(this.moveData || this.zoomData || this.rotateData) }\n\n protected interaction: InteractionBase\n protected moveData: IMoveEvent\n protected zoomData: IZoomEvent\n protected rotateData: IRotateEvent\n protected transformTimer: ITimer\n\n constructor(interaction: InteractionBase) {\n this.interaction = interaction\n }\n\n public move(data: IMoveEvent): void {\n const { interaction } = this\n if (!data.moveType) data.moveType = 'move'\n\n if (!this.moveData) {\n this.setPath(data)\n this.moveData = { ...data, moveX: 0, moveY: 0 }\n interaction.emit(MoveEvent.START, this.moveData)\n }\n\n data.path = this.moveData.path\n interaction.emit(MoveEvent.BEFORE_MOVE, data)\n interaction.emit(MoveEvent.MOVE, data)\n\n this.transformEndWait()\n }\n\n public zoom(data: IZoomEvent): void {\n const { interaction } = this\n\n if (!this.zoomData) {\n this.setPath(data)\n this.zoomData = { ...data, scale: 1 }\n interaction.emit(ZoomEvent.START, this.zoomData)\n }\n\n data.path = this.zoomData.path\n interaction.emit(ZoomEvent.BEFORE_ZOOM, data)\n interaction.emit(ZoomEvent.ZOOM, data)\n\n this.transformEndWait()\n }\n\n public rotate(data: IRotateEvent): void {\n const { interaction } = this\n\n if (!this.rotateData) {\n this.setPath(data)\n this.rotateData = { ...data, rotation: 0 }\n interaction.emit(RotateEvent.START, this.rotateData)\n }\n\n data.path = this.rotateData.path\n interaction.emit(RotateEvent.BEFORE_ROTATE, data)\n interaction.emit(RotateEvent.ROTATE, data)\n\n this.transformEndWait()\n }\n\n public setPath(data: any): void {\n const { interaction } = this\n const { path } = interaction.selector.getByPoint(data, interaction.hitRadius)\n data.path = path\n interaction.cancelHover()\n }\n\n protected transformEndWait(): void {\n clearTimeout(this.transformTimer)\n this.transformTimer = setTimeout(() => {\n this.transformEnd()\n }, this.interaction.p.transformTime)\n }\n\n public transformEnd(): void {\n const { interaction, moveData, zoomData, rotateData } = this\n if (moveData) interaction.emit(MoveEvent.END, moveData)\n if (zoomData) interaction.emit(ZoomEvent.END, zoomData)\n if (rotateData) interaction.emit(RotateEvent.END, rotateData)\n this.reset()\n }\n\n public reset(): void {\n this.zoomData = this.moveData = this.rotateData = null\n }\n\n public destroy(): void {\n this.reset()\n }\n}","import { ILeaferType, IPointData } from '@leafer-ui/interface'\n\nimport { Leafer, Bounds } from '@leafer-ui/core'\n\nimport { LeaferTypeCreator } from './LeaferTypeCreator'\n\n\nconst leafer = Leafer.prototype\nconst bounds = new Bounds()\n\nleafer.initType = function (type: ILeaferType) {\n LeaferTypeCreator.run(type, this)\n}\n\nleafer.getValidMove = function (moveX: number, moveY: number): IPointData {\n const { scroll, disabled } = this.app.config.move\n\n if (scroll) {\n const type = scroll === true ? '' : scroll\n\n if (type.includes('x')) moveX = moveX || moveY, moveY = 0\n else if (type.includes('y')) moveY = moveY || moveX, moveX = 0\n else Math.abs(moveX) > Math.abs(moveY) ? moveY = 0 : moveX = 0\n\n if (type.includes('limit')) {\n const { x, y, width, height } = bounds.set(this.__world).addPoint(this.zoomLayer as IPointData)\n const right = x + width - this.width, bottom = y + height - this.height\n\n if (x >= 0 && right <= 0) moveX = 0 // includeX\n else if (moveX > 0) { if (x + moveX > 0) moveX = -x }\n else if (moveX < 0 && right + moveX < 0) moveX = -right\n\n if (y >= 0 && bottom <= 0) moveY = 0 // includeY\n else if (moveY > 0) { if (y + moveY > 0) moveY = -y }\n else if (moveY < 0 && bottom + moveY < 0) moveY = -bottom\n }\n }\n return { x: disabled ? 0 : moveX, y: disabled ? 0 : moveY }\n}\n\nleafer.getValidScale = function (changeScale: number): number {\n const { scaleX } = this.zoomLayer.__, { min, max, disabled } = this.app.config.zoom, absScale = Math.abs(scaleX * changeScale)\n if (min && absScale < min) changeScale = min / scaleX\n else if (max && absScale > max) changeScale = max / scaleX\n return disabled ? 1 : changeScale // fix 不能过滤小数位\n}","import { IMoveEvent, IZoomEvent, IRotateEvent, IWheelEvent, IUIEvent, IKeepTouchData, IPointData, IEvent } from '@leafer-ui/interface'\n\nimport { InteractionBase, PointHelper } from '@leafer-ui/core'\n\nimport { WheelEventHelper } from './WheelEventHelper'\nimport { Transformer } from './Transformer'\nimport { MultiTouchHelper } from './MultiTouchHelper'\n\n\nfunction getMoveEventData(move: IPointData, event: IEvent): IMoveEvent {\n return { ...event, moveX: move.x, moveY: move.y } as IMoveEvent\n}\n\nfunction getRotateEventData(rotation: number, event: IEvent): IRotateEvent {\n return { ...event, rotation } as IRotateEvent\n}\n\nfunction getZoomEventData(scale: number, event: IEvent): IZoomEvent {\n return { ...event, scale, } as IZoomEvent\n}\n\n\nconst interaction = InteractionBase.prototype\n\ninteraction.createTransformer = function (): void {\n this.transformer = new Transformer(this)\n}\n\ninteraction.move = function (data: IMoveEvent): void {\n this.transformer.move(data)\n}\n\ninteraction.zoom = function (data: IZoomEvent): void {\n this.transformer.zoom(data)\n}\n\ninteraction.rotate = function (data: IRotateEvent): void {\n this.transformer.rotate(data)\n}\n\ninteraction.transformEnd = function (): void {\n this.transformer.transformEnd()\n}\n\n\ninteraction.wheel = function (data: IWheelEvent): void {\n const { wheel, pointer } = this.config, { posDeltaSpeed, negDeltaSpeed } = wheel\n if (wheel.disabled) return\n\n if (data.deltaX > 0) posDeltaSpeed && (data.deltaX *= posDeltaSpeed)\n else negDeltaSpeed && (data.deltaX *= negDeltaSpeed)\n\n if (data.deltaY > 0) posDeltaSpeed && (data.deltaY *= posDeltaSpeed)\n else negDeltaSpeed && (data.deltaY *= negDeltaSpeed)\n\n const scale = wheel.getScale ? wheel.getScale(data, wheel) : WheelEventHelper.getScale(data, wheel)\n if (scale !== 1) this.zoom(getZoomEventData(scale, data))\n else {\n const move = wheel.getMove ? wheel.getMove(data, wheel) : WheelEventHelper.getMove(data, wheel)\n if (pointer.snap) PointHelper.round(move)\n this.move(getMoveEventData(move, data))\n }\n}\n\n\ninteraction.multiTouch = function (data: IUIEvent, list: IKeepTouchData[]): void {\n if (this.config.multiTouch.disabled) return\n const { move, rotation, scale, center } = MultiTouchHelper.getData(list)\n Object.assign(data, center)\n\n this.pointerWaitCancel()\n\n this.rotate(getRotateEventData(rotation, data))\n this.zoom(getZoomEventData(scale, data))\n this.move(getMoveEventData(move, data))\n}","import { IPointerEvent, IFunction } from '@leafer-ui/interface'\n\nimport { Dragger, BoundsHelper, PointHelper } from '@leafer-ui/core'\n\n\nconst dragger = Dragger.prototype\nconst { abs } = Math\n\ndragger.checkDragEndAnimate = function (data: IPointerEvent, speed?: number): boolean {\n const { moveX, moveY } = this.dragData\n const absMoveX = abs(moveX), absMoveY = abs(moveY), minMove = speed ? 1 : 0.1\n const dragAnimate = this.interaction.m.dragAnimate && this.canAnimate && this.moving && (absMoveX > minMove || absMoveY > minMove)\n\n if (dragAnimate) {\n const inertia = data.pointerType === 'touch' ? 3 : 1, maxMove = 70\n speed = speed ? 0.95 : inertia\n if (absMoveX * speed > maxMove) speed = maxMove / absMoveX\n else if (absMoveY * speed > maxMove) speed = maxMove / absMoveY\n\n data = { ...data }\n PointHelper.move(data, moveX * speed, moveY * speed)\n\n this.drag(data)\n this.animate(() => { this.dragEnd(data, 1) })\n }\n\n return dragAnimate\n}\n\ndragger.animate = function (func?: IFunction, off?: 'off'): void { // dragEnd animation\n const animateWait = func || this.animateWait\n if (animateWait) this.interaction.target.nextRender(animateWait, null, off)\n this.animateWait = func\n}\n\ndragger.checkDragOut = function (data: IPointerEvent): void {\n const { interaction } = this\n this.autoMoveCancel()\n if (this.dragging && !interaction.shrinkCanvasBounds.hitPoint(data)) this.autoMoveOnDragOut(data)\n}\n\ndragger.autoMoveOnDragOut = function (data: IPointerEvent): void {\n const { interaction, downData, canDragOut } = this\n const { autoDistance, dragOut } = interaction.m\n if (!dragOut || !canDragOut || !autoDistance) return\n\n const bounds = interaction.shrinkCanvasBounds\n const { x, y } = bounds\n const right = BoundsHelper.maxX(bounds)\n const bottom = BoundsHelper.maxY(bounds)\n\n const moveX = data.x < x ? autoDistance : (right < data.x ? -autoDistance : 0)\n const moveY = data.y < y ? autoDistance : (bottom < data.y ? -autoDistance : 0)\n let totalX = 0, totalY = 0\n\n this.autoMoveTimer = setInterval(() => {\n totalX += moveX\n totalY += moveY\n\n PointHelper.move(downData, moveX, moveY)\n PointHelper.move(this.dragData, moveX, moveY)\n\n interaction.move({ ...data, moveX, moveY, totalX, totalY, moveType: 'drag' })\n interaction.pointerMoveReal(data)\n }, 10)\n}\n\ndragger.autoMoveCancel = function (): void {\n if (this.autoMoveTimer) {\n clearInterval(this.autoMoveTimer)\n this.autoMoveTimer = 0\n }\n}","export { LeaferTypeCreator } from './LeaferTypeCreator'\nexport { addViewport, addViewportConfig } from './type/viewport'\nexport { MultiTouchHelper } from './interaction/MultiTouchHelper'\nexport { WheelEventHelper } from './interaction/WheelEventHelper'\nexport { Transformer } from './interaction/Transformer'\n\nimport { Plugin } from '@leafer-ui/core'\n\nimport './Leafer'\nimport './interaction/Interaction'\nimport './interaction/Dragger'\n\nPlugin.add('viewport')"],"names":["MoveEvent","ZoomEvent","DataHelper","Debug","PointHelper","Platform","MathHelper","RotateEvent","Leafer","Bounds","InteractionBase","Dragger","BoundsHelper","Plugin"],"mappings":"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"}
|