{ "version": 3, "sources": [ "Modification.ts" ], "names": [ "clone", "extend", "rectUtils", "Modification", "constructor", "interaction", "states", "startOffset", "left", "right", "top", "bottom", "startDelta", "result", "endResult", "edges", "createResult", "start", "phase", "pageCoords", "modifierList", "getModifierList", "prepareStates", "getRectOffset", "rect", "x", "y", "arg", "preEnd", "startAll", "setAll", "fillArg", "interactable", "element", "state", "methods", "skipModifiers", "unmodifiedRect", "coords", "slice", "newResult", "options", "lastModifierCoords", "returnValue", "set", "shouldDo", "addEdges", "eventProps", "push", "delta", "rectDelta", "prevCoords", "prevRect", "rectChanged", "changed", "applyToInteraction", "curCoords", "cur", "startCoords", "curDelta", "coordsSet", "page", "client", "width", "height", "setAndApply", "modifiedCoords", "length", "interacting", "adjustment", "beforeEnd", "event", "doPreend", "endPosition", "move", "stop", "modifierArg", "index", "name", "restoreInteractionCoords", "modification", "coordsAndDeltas", "requireEndOnly", "enabled", "endOnly", "setStart", "copyFrom", "other", "map", "s", "destroy", "prop", "actionOptions", "prepared", "actionModifiers", "modifiers", "type", "_methods", "filter", "m" ], "mappings": "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", "sourcesContent": [ "import { EventPhase } from '@interactjs/core/InteractEvent'\nimport Interaction, { DoAnyPhaseArg } from '@interactjs/core/Interaction'\nimport { EdgeOptions, FullRect, Point, Rect } from '@interactjs/types/index'\nimport clone from '@interactjs/utils/clone'\nimport extend from '@interactjs/utils/extend'\nimport * as rectUtils from '@interactjs/utils/rect'\n\nimport { Modifier, ModifierArg, ModifierState } from './base'\n\nexport interface ModificationResult {\n delta: Point\n rectDelta: Rect\n coords: Point\n rect: FullRect\n eventProps: any[]\n changed: boolean\n}\n\ninterface MethodArg {\n phase: EventPhase\n pageCoords?: Point\n rect?: FullRect\n coords?: Point\n preEnd?: boolean\n skipModifiers?: number\n}\n\nexport default class Modification {\n states: ModifierState[] = []\n startOffset: Rect = { left: 0, right: 0, top: 0, bottom: 0 }\n startDelta: Point = null\n result?: ModificationResult = null\n endResult?: Point = null\n edges: EdgeOptions\n readonly interaction: Readonly\n\n constructor (interaction: Interaction) {\n this.interaction = interaction\n this.result = createResult()\n }\n\n start (\n { phase }: MethodArg,\n pageCoords: Point,\n ) {\n const { interaction } = this\n const modifierList = getModifierList(interaction)\n this.prepareStates(modifierList)\n\n this.edges = extend({}, interaction.edges)\n this.startOffset = getRectOffset(interaction.rect, pageCoords)\n this.startDelta = { x: 0, y: 0 }\n\n const arg: MethodArg = {\n phase,\n pageCoords,\n preEnd: false,\n }\n\n this.result = createResult()\n this.startAll(arg)\n\n const result = this.result = this.setAll(arg)\n\n return result\n }\n\n fillArg (arg: Partial) {\n const { interaction } = this\n\n arg.interaction = interaction\n arg.interactable = interaction.interactable\n arg.element = interaction.element\n arg.rect = arg.rect || interaction.rect\n arg.edges = this.edges\n arg.startOffset = this.startOffset\n }\n\n startAll (arg: MethodArg & Partial) {\n this.fillArg(arg)\n\n for (const state of this.states) {\n if (state.methods.start) {\n arg.state = state\n state.methods.start(arg as ModifierArg)\n }\n }\n }\n\n setAll (arg: MethodArg & Partial): ModificationResult {\n this.fillArg(arg)\n\n const {\n phase,\n preEnd,\n skipModifiers,\n rect: unmodifiedRect,\n } = arg\n\n arg.coords = extend({}, arg.pageCoords)\n arg.rect = extend({}, unmodifiedRect)\n\n const states = skipModifiers\n ? this.states.slice(skipModifiers)\n : this.states\n\n const newResult = createResult(arg.coords, arg.rect)\n\n for (const state of states) {\n const { options } = state\n const lastModifierCoords = extend({}, arg.coords)\n let returnValue = null\n\n if (state.methods.set && this.shouldDo(options, preEnd, phase)) {\n arg.state = state\n returnValue = state.methods.set(arg as ModifierArg)\n\n rectUtils.addEdges(this.interaction.edges, arg.rect, { x: arg.coords.x - lastModifierCoords.x, y: arg.coords.y - lastModifierCoords.y })\n }\n\n newResult.eventProps.push(returnValue)\n }\n\n newResult.delta.x = arg.coords.x - arg.pageCoords.x\n newResult.delta.y = arg.coords.y - arg.pageCoords.y\n\n newResult.rectDelta.left = arg.rect.left - unmodifiedRect.left\n newResult.rectDelta.right = arg.rect.right - unmodifiedRect.right\n newResult.rectDelta.top = arg.rect.top - unmodifiedRect.top\n newResult.rectDelta.bottom = arg.rect.bottom - unmodifiedRect.bottom\n\n const prevCoords = this.result.coords\n const prevRect = this.result.rect\n\n if (prevCoords && prevRect) {\n const rectChanged = newResult.rect.left !== prevRect.left ||\n newResult.rect.right !== prevRect.right ||\n newResult.rect.top !== prevRect.top ||\n newResult.rect.bottom !== prevRect.bottom\n\n newResult.changed = rectChanged ||\n prevCoords.x !== newResult.coords.x ||\n prevCoords.y !== newResult.coords.y\n }\n\n return newResult\n }\n\n applyToInteraction (arg: { phase: EventPhase, rect?: Rect }) {\n const { interaction } = this\n const { phase } = arg\n const curCoords = interaction.coords.cur\n const startCoords = interaction.coords.start\n const { result, startDelta } = this\n const curDelta = result.delta\n\n if (phase === 'start') {\n extend(this.startDelta, result.delta)\n }\n\n for (const [coordsSet, delta] of [[startCoords, startDelta], [curCoords, curDelta]] as const) {\n coordsSet.page.x += delta.x\n coordsSet.page.y += delta.y\n coordsSet.client.x += delta.x\n coordsSet.client.y += delta.y\n }\n\n const { rectDelta } = this.result\n const rect = arg.rect || interaction.rect\n\n rect.left += rectDelta.left\n rect.right += rectDelta.right\n rect.top += rectDelta.top\n rect.bottom += rectDelta.bottom\n\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n }\n\n setAndApply (arg: Partial & {\n phase: EventPhase\n preEnd?: boolean\n skipModifiers?: number\n modifiedCoords?: Point\n }): void | false {\n const { interaction } = this\n const { phase, preEnd, skipModifiers } = arg\n\n const result = this.setAll({\n preEnd,\n phase,\n pageCoords: arg.modifiedCoords || interaction.coords.cur.page,\n })\n\n this.result = result\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (!result.changed && (!skipModifiers || skipModifiers < this.states.length) && interaction.interacting()) {\n return false\n }\n\n if (arg.modifiedCoords) {\n const { page } = interaction.coords.cur\n const adjustment = {\n x: arg.modifiedCoords.x - page.x,\n y: arg.modifiedCoords.y - page.y,\n }\n\n result.coords.x += adjustment.x\n result.coords.y += adjustment.y\n result.delta.x += adjustment.x\n result.delta.y += adjustment.y\n }\n\n this.applyToInteraction(arg)\n }\n\n beforeEnd (arg: Omit & { state?: ModifierState }): void | false {\n const { interaction, event } = arg\n const states = this.states\n\n if (!states || !states.length) {\n return\n }\n\n let doPreend = false\n\n for (const state of states) {\n arg.state = state\n const { options, methods } = state\n\n const endPosition = methods.beforeEnd && methods.beforeEnd(arg as unknown as ModifierArg)\n\n if (endPosition) {\n this.endResult = endPosition\n return false\n }\n\n doPreend = doPreend || (!doPreend && this.shouldDo(options, true, arg.phase, true))\n }\n\n if (doPreend) {\n // trigger a final modified move before ending\n interaction.move({ event, preEnd: true })\n }\n }\n\n stop (arg: { interaction: Interaction }) {\n const { interaction } = arg\n\n if (!this.states || !this.states.length) {\n return\n }\n\n const modifierArg: Partial = extend({\n states: this.states,\n interactable: interaction.interactable,\n element: interaction.element,\n rect: null,\n }, arg)\n\n this.fillArg(modifierArg)\n\n for (const state of this.states) {\n modifierArg.state = state\n\n if (state.methods.stop) { state.methods.stop(modifierArg as ModifierArg) }\n }\n\n this.states = null\n this.endResult = null\n }\n\n prepareStates (modifierList: Modifier[]) {\n this.states = []\n\n for (let index = 0; index < modifierList.length; index++) {\n const { options, methods, name } = modifierList[index]\n\n this.states.push({\n options,\n methods,\n index,\n name,\n })\n }\n\n return this.states\n }\n\n restoreInteractionCoords ({ interaction: { coords, rect, modification } }: { interaction: Interaction }) {\n if (!modification.result) { return }\n\n const { startDelta } = modification\n const { delta: curDelta, rectDelta } = modification.result\n\n const coordsAndDeltas = [\n [coords.start, startDelta],\n [coords.cur, curDelta],\n ]\n\n for (const [coordsSet, delta] of coordsAndDeltas as any) {\n coordsSet.page.x -= delta.x\n coordsSet.page.y -= delta.y\n coordsSet.client.x -= delta.x\n coordsSet.client.y -= delta.y\n }\n\n rect.left -= rectDelta.left\n rect.right -= rectDelta.right\n rect.top -= rectDelta.top\n rect.bottom -= rectDelta.bottom\n }\n\n shouldDo (options, preEnd?: boolean, phase?: string, requireEndOnly?: boolean) {\n if (\n // ignore disabled modifiers\n (!options || options.enabled === false) ||\n // check if we require endOnly option to fire move before end\n (requireEndOnly && !options.endOnly) ||\n // don't apply endOnly modifiers when not ending\n (options.endOnly && !preEnd) ||\n // check if modifier should run be applied on start\n (phase === 'start' && !options.setStart)\n ) {\n return false\n }\n\n return true\n }\n\n copyFrom (other: Modification) {\n this.startOffset = other.startOffset\n this.startDelta = other.startDelta\n this.edges = other.edges\n this.states = other.states.map(s => clone(s) as ModifierState)\n this.result = createResult(extend({}, other.result.coords), extend({}, other.result.rect))\n }\n\n destroy () {\n for (const prop in this) {\n this[prop] = null\n }\n }\n}\n\nfunction createResult (coords?: Point, rect?: FullRect): ModificationResult {\n return {\n rect,\n coords,\n delta: { x: 0, y: 0 },\n rectDelta: {\n left : 0,\n right : 0,\n top : 0,\n bottom: 0,\n },\n eventProps: [],\n changed: true,\n }\n}\n\nfunction getModifierList (interaction) {\n const actionOptions = interaction.interactable.options[interaction.prepared.name]\n const actionModifiers = actionOptions.modifiers\n\n if (actionModifiers && actionModifiers.length) {\n return actionModifiers\n }\n\n return ['snap', 'snapSize', 'snapEdges', 'restrict', 'restrictEdges', 'restrictSize']\n .map(type => {\n const options = actionOptions[type]\n\n return options && options.enabled && {\n options,\n methods: options._methods,\n }\n })\n .filter(m => !!m)\n}\n\nexport function getRectOffset (rect, coords) {\n return rect\n ? {\n left : coords.x - rect.left,\n top : coords.y - rect.top,\n right : rect.right - coords.x,\n bottom: rect.bottom - coords.y,\n }\n : {\n left : 0,\n top : 0,\n right : 0,\n bottom: 0,\n }\n}\n" ] }