{ "version": 3, "sources": [ "plugin.ts" ], "names": [ "Interaction", "SignalArgs", "Modification", "modifiers", "offset", "dom", "hypot", "is", "copyCoords", "raf", "install", "scope", "defaults", "usePlugin", "default", "actions", "phases", "inertiastart", "resume", "perAction", "inertia", "enabled", "resistance", "minSpeed", "endSpeed", "allowResume", "smoothEndDuration", "InertiaState", "constructor", "interaction", "active", "isModified", "smoothEnd", "modification", "modifierCount", "modifierArg", "startCoords", "t0", "v0", "te", "targetOffset", "modifiedOffset", "currentOffset", "lambda_v0", "one_ve_v0", "timeout", "start", "event", "options", "getOptions", "client", "velocityClient", "coords", "velocity", "pointerSpeed", "x", "y", "copyFrom", "_now", "cur", "page", "interactable", "element", "rect", "edges", "pageCoords", "preEnd", "phase", "thrown", "timeStamp", "startInertia", "result", "setAll", "changed", "startSmoothEnd", "offsetBy", "_doPhase", "simulation", "startVelocity", "lambda", "inertiaDur", "Math", "log", "delta", "onNextFrame", "inertiaTick", "smoothEndTick", "tickFn", "request", "t", "progress", "exp", "newOffset", "getQuadraticCurvePoint", "move", "end", "duration", "easeOutQuad", "skipModifiers", "pointer", "eventTarget", "updatePointer", "prev", "stop", "cancel", "_interacting", "started", "arg", "state", "parentNode", "prepared", "name", "id", "before", "listeners", "applyToInteraction", "setAndApply", "addEventModifiers", "restoreInteractionCoords", "_getQBezierValue", "p1", "p2", "p3", "iT", "startX", "startY", "cpX", "cpY", "endX", "endY", "position", "b", "c", "d" ], "mappings": "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", "sourcesContent": [ "import Interaction, { DoPhaseArg } from '@interactjs/core/Interaction'\nimport { ActionName, Scope, SignalArgs, Plugin } from '@interactjs/core/scope'\nimport Modification from '@interactjs/modifiers/Modification'\nimport * as modifiers from '@interactjs/modifiers/base'\nimport offset from '@interactjs/offset/plugin'\nimport { Point, PointerEventType } from '@interactjs/types/index'\nimport * as dom from '@interactjs/utils/domUtils'\nimport hypot from '@interactjs/utils/hypot'\nimport is from '@interactjs/utils/is'\nimport { copyCoords } from '@interactjs/utils/pointerUtils'\nimport raf from '@interactjs/utils/raf'\n\ndeclare module '@interactjs/core/InteractEvent' {\n interface PhaseMap {\n resume?: true\n inertiastart?: true\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n inertia?: InertiaState\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface PerActionDefaults {\n inertia?: {\n enabled?: boolean\n resistance?: number // the lambda in exponential decay\n minSpeed?: number // target speed must be above this for inertia to start\n endSpeed?: number // the speed at which inertia is slow enough to stop\n allowResume?: true // allow resuming an action in inertia phase\n smoothEndDuration?: number // animate to snap/restrict endOnly if there's no inertia\n }\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactions:before-action-inertiastart': Omit, 'iEvent'>\n 'interactions:action-inertiastart': DoPhaseArg\n 'interactions:after-action-inertiastart': DoPhaseArg\n 'interactions:before-action-resume': Omit, 'iEvent'>\n 'interactions:action-resume': DoPhaseArg\n 'interactions:after-action-resume': DoPhaseArg\n }\n}\n\nfunction install (scope: Scope) {\n const {\n defaults,\n } = scope\n\n scope.usePlugin(offset)\n scope.usePlugin(modifiers.default)\n scope.actions.phases.inertiastart = true\n scope.actions.phases.resume = true\n\n defaults.perAction.inertia = {\n enabled : false,\n resistance : 10, // the lambda in exponential decay\n minSpeed : 100, // target speed must be above this for inertia to start\n endSpeed : 10, // the speed at which inertia is slow enough to stop\n allowResume : true, // allow resuming an action in inertia phase\n smoothEndDuration: 300, // animate to snap/restrict endOnly if there's no inertia\n }\n}\n\nexport class InertiaState {\n active = false\n isModified = false\n smoothEnd = false\n allowResume = false\n\n modification: Modification = null\n modifierCount = 0\n modifierArg: modifiers.ModifierArg = null\n\n startCoords: Point = null\n t0 = 0\n v0 = 0\n\n te = 0\n targetOffset: Point = null\n modifiedOffset: Point = null\n currentOffset: Point = null\n\n lambda_v0? = 0 // eslint-disable-line camelcase\n one_ve_v0? = 0 // eslint-disable-line camelcase\n timeout: number = null\n readonly interaction: Interaction\n\n constructor (interaction: Interaction) {\n this.interaction = interaction\n }\n\n start (event: PointerEventType) {\n const { interaction } = this\n const options = getOptions(interaction)\n\n if (!options || !options.enabled) {\n return false\n }\n\n const { client: velocityClient } = interaction.coords.velocity\n const pointerSpeed = hypot(velocityClient.x, velocityClient.y)\n const modification = this.modification || (this.modification = new Modification(interaction))\n\n modification.copyFrom(interaction.modification)\n\n this.t0 = interaction._now()\n this.allowResume = options.allowResume\n this.v0 = pointerSpeed\n this.currentOffset = { x: 0, y: 0 }\n this.startCoords = interaction.coords.cur.page\n\n this.modifierArg = {\n interaction,\n interactable: interaction.interactable,\n element: interaction.element,\n rect: interaction.rect,\n edges: interaction.edges,\n pageCoords: this.startCoords,\n preEnd: true,\n phase: 'inertiastart',\n }\n\n const thrown = (\n (this.t0 - interaction.coords.cur.timeStamp) < 50 &&\n pointerSpeed > options.minSpeed &&\n pointerSpeed > options.endSpeed\n )\n\n if (thrown) {\n this.startInertia()\n } else {\n modification.result = modification.setAll(this.modifierArg)\n\n if (!modification.result.changed) {\n return false\n }\n\n this.startSmoothEnd()\n }\n\n // force modification change\n interaction.modification.result.rect = null\n\n // bring inertiastart event to the target coords\n interaction.offsetBy(this.targetOffset)\n interaction._doPhase({\n interaction,\n event,\n phase: 'inertiastart',\n })\n interaction.offsetBy({ x: -this.targetOffset.x, y: -this.targetOffset.y })\n // force modification change\n interaction.modification.result.rect = null\n\n this.active = true\n interaction.simulation = this\n\n return true\n }\n\n startInertia () {\n const startVelocity = this.interaction.coords.velocity.client\n const options = getOptions(this.interaction)\n const lambda = options.resistance\n const inertiaDur = -Math.log(options.endSpeed / this.v0) / lambda\n\n this.targetOffset = {\n x: (startVelocity.x - inertiaDur) / lambda,\n y: (startVelocity.y - inertiaDur) / lambda,\n }\n\n this.te = inertiaDur\n this.lambda_v0 = lambda / this.v0\n this.one_ve_v0 = 1 - options.endSpeed / this.v0\n\n const { modification, modifierArg } = this\n\n modifierArg.pageCoords = {\n x: this.startCoords.x + this.targetOffset.x,\n y: this.startCoords.y + this.targetOffset.y,\n }\n\n modification.result = modification.setAll(modifierArg)\n\n if (modification.result.changed) {\n this.isModified = true\n this.modifiedOffset = {\n x: this.targetOffset.x + modification.result.delta.x,\n y: this.targetOffset.y + modification.result.delta.y,\n }\n }\n\n this.onNextFrame(() => this.inertiaTick())\n }\n\n startSmoothEnd () {\n this.smoothEnd = true\n this.isModified = true\n this.targetOffset = {\n x: this.modification.result.delta.x,\n y: this.modification.result.delta.y,\n }\n\n this.onNextFrame(() => this.smoothEndTick())\n }\n\n onNextFrame (tickFn: () => void) {\n this.timeout = raf.request(() => {\n if (this.active) { tickFn() }\n })\n }\n\n inertiaTick () {\n const { interaction } = this\n const options = getOptions(interaction)\n const lambda = options.resistance\n const t = (interaction._now() - this.t0) / 1000\n\n if (t < this.te) {\n const progress = 1 - (Math.exp(-lambda * t) - this.lambda_v0) / this.one_ve_v0\n let newOffset: Point\n\n if (this.isModified) {\n newOffset = getQuadraticCurvePoint(\n 0, 0,\n this.targetOffset.x, this.targetOffset.y,\n this.modifiedOffset.x, this.modifiedOffset.y,\n progress,\n )\n }\n else {\n newOffset = {\n x: this.targetOffset.x * progress,\n y: this.targetOffset.y * progress,\n }\n }\n\n const delta = { x: newOffset.x - this.currentOffset.x, y: newOffset.y - this.currentOffset.y }\n\n this.currentOffset.x += delta.x\n this.currentOffset.y += delta.y\n\n interaction.offsetBy(delta)\n interaction.move()\n\n this.onNextFrame(() => this.inertiaTick())\n }\n else {\n interaction.offsetBy({\n x: this.modifiedOffset.x - this.currentOffset.x,\n y: this.modifiedOffset.y - this.currentOffset.y,\n })\n\n this.end()\n }\n }\n\n smoothEndTick () {\n const { interaction } = this\n const t = interaction._now() - this.t0\n const { smoothEndDuration: duration } = getOptions(interaction)\n\n if (t < duration) {\n const newOffset = {\n x: easeOutQuad(t, 0, this.targetOffset.x, duration),\n y: easeOutQuad(t, 0, this.targetOffset.y, duration),\n }\n const delta = {\n x: newOffset.x - this.currentOffset.x,\n y: newOffset.y - this.currentOffset.y,\n }\n\n this.currentOffset.x += delta.x\n this.currentOffset.y += delta.y\n\n interaction.offsetBy(delta)\n interaction.move({ skipModifiers: this.modifierCount })\n\n this.onNextFrame(() => this.smoothEndTick())\n }\n else {\n interaction.offsetBy({\n x: this.targetOffset.x - this.currentOffset.x,\n y: this.targetOffset.y - this.currentOffset.y,\n })\n\n this.end()\n }\n }\n\n resume ({ pointer, event, eventTarget }: SignalArgs['interactions:down']) {\n const { interaction } = this\n\n // undo inertia changes to interaction coords\n interaction.offsetBy({\n x: -this.currentOffset.x,\n y: -this.currentOffset.y,\n })\n\n // update pointer at pointer down position\n interaction.updatePointer(pointer, event, eventTarget, true)\n\n // fire resume signals and event\n interaction._doPhase({\n interaction,\n event,\n phase: 'resume',\n })\n copyCoords(interaction.coords.prev, interaction.coords.cur)\n\n this.stop()\n }\n\n end () {\n this.interaction.move()\n this.interaction.end()\n this.stop()\n }\n\n stop () {\n this.active = this.smoothEnd = false\n this.interaction.simulation = null\n raf.cancel(this.timeout)\n }\n}\n\nfunction start ({ interaction, event }: DoPhaseArg) {\n if (!interaction._interacting || interaction.simulation) {\n return null\n }\n\n const started = interaction.inertia.start(event)\n\n // prevent action end if inertia or smoothEnd\n return started ? false : null\n}\n\n// Check if the down event hits the current inertia target\n// control should be return to the user\nfunction resume (arg: SignalArgs['interactions:down']) {\n const { interaction, eventTarget } = arg\n const state = interaction.inertia\n\n if (!state.active) { return }\n\n let element = eventTarget as Node\n\n // climb up the DOM tree from the event target\n while (is.element(element)) {\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n state.resume(arg)\n break\n }\n\n element = dom.parentNode(element)\n }\n}\n\nfunction stop ({ interaction }: { interaction: Interaction }) {\n const state = interaction.inertia\n\n if (state.active) {\n state.stop()\n }\n}\n\nfunction getOptions ({ interactable, prepared }: Interaction) {\n return interactable &&\n interactable.options &&\n prepared.name &&\n interactable.options[prepared.name].inertia\n}\n\nconst inertia: Plugin = {\n id: 'inertia',\n before: ['modifiers', 'actions'],\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.inertia = new InertiaState(interaction)\n },\n\n 'interactions:before-action-end': start,\n 'interactions:down': resume,\n 'interactions:stop': stop,\n\n 'interactions:before-action-resume': arg => {\n const { modification } = arg.interaction\n\n modification.stop(arg)\n modification.start(arg, arg.interaction.coords.cur.page)\n modification.applyToInteraction(arg)\n },\n\n 'interactions:before-action-inertiastart': arg => arg.interaction.modification.setAndApply(arg),\n 'interactions:action-resume': modifiers.addEventModifiers,\n 'interactions:action-inertiastart': modifiers.addEventModifiers,\n 'interactions:after-action-inertiastart': arg => arg.interaction.modification.restoreInteractionCoords(arg),\n 'interactions:after-action-resume': arg => arg.interaction.modification.restoreInteractionCoords(arg),\n },\n}\n\n// http://stackoverflow.com/a/5634528/2280888\nfunction _getQBezierValue (t: number, p1: number, p2: number, p3: number) {\n const iT = 1 - t\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3\n}\n\nfunction getQuadraticCurvePoint (\n startX: number, startY: number, cpX: number, cpY: number, endX: number, endY: number, position: number) {\n return {\n x: _getQBezierValue(position, startX, cpX, endX),\n y: _getQBezierValue(position, startY, cpY, endY),\n }\n}\n\n// http://gizma.com/easing/\nfunction easeOutQuad (t: number, b: number, c: number, d: number) {\n t /= d\n return -c * t * (t - 2) + b\n}\n\nexport default inertia\n" ] }