{ "version": 3, "sources": [ "index.ts" ], "names": [ "domUtils", "is", "raf", "getStringOptionResult", "getWindow", "install", "scope", "defaults", "actions", "autoScroll", "now", "eventTypes", "push", "perAction", "enabled", "margin", "container", "speed", "Date", "interaction", "i", "x", "y", "isScrolling", "prevTime", "start", "cancel", "request", "scroll", "stop", "interactable", "element", "actionName", "prepared", "name", "options", "getContainer", "dt", "s", "scrollBy", "prevScroll", "getScroll", "window", "scrollLeft", "scrollTop", "curScroll", "delta", "fire", "type", "target", "check", "onInteractionMove", "pointer", "interacting", "simulation", "top", "right", "bottom", "left", "clientX", "clientY", "innerWidth", "innerHeight", "rect", "getElementClientRect", "value", "string", "document", "body", "getScrollSize", "scrollWidth", "scrollHeight", "getScrollSizeDelta", "func", "scrollOptions", "scrollContainer", "prevSize", "curSize", "autoScrollPlugin", "id", "listeners", "arg" ], "mappings": "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", "sourcesContent": [ "import * as domUtils from '@interactjs/utils/domUtils'\nimport * as is from '@interactjs/utils/is'\nimport raf from '@interactjs/utils/raf'\nimport { getStringOptionResult } from '@interactjs/utils/rect'\nimport { getWindow } from '@interactjs/utils/window'\n\ntype Scope = import ('@interactjs/core/scope').Scope\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n autoScroll: typeof autoScroll\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n autoScroll?: typeof autoScroll\n }\n}\n\ndeclare module '@interactjs/core/defaultOptions' {\n interface PerActionDefaults {\n autoScroll?: AutoScrollOptions\n }\n}\n\nexport interface AutoScrollOptions {\n container?: Window | HTMLElement\n margin?: number\n distance?: number\n interval?: number\n speed?: number\n enabled?: boolean\n}\n\nfunction install (scope: Scope) {\n const {\n defaults,\n actions,\n } = scope\n\n scope.autoScroll = autoScroll\n autoScroll.now = () => scope.now()\n\n actions.eventTypes.push('autoscroll')\n defaults.perAction.autoScroll = autoScroll.defaults\n}\n\nconst autoScroll = {\n defaults: {\n enabled : false,\n margin : 60,\n\n // the item that is scrolled (Window or HTMLElement)\n container: null as AutoScrollOptions['container'],\n\n // the scroll speed in pixels per second\n speed : 300,\n } as AutoScrollOptions,\n\n now: Date.now,\n\n interaction: null as Interact.Interaction,\n i: 0, // the handle returned by window.setInterval\n x: 0,\n y: 0, // Direction each pulse is to scroll in\n\n isScrolling: false,\n prevTime: 0,\n margin: 0,\n speed: 0,\n\n start (interaction: Interact.Interaction) {\n autoScroll.isScrolling = true\n raf.cancel(autoScroll.i)\n\n interaction.autoScroll = autoScroll\n autoScroll.interaction = interaction\n autoScroll.prevTime = autoScroll.now()\n autoScroll.i = raf.request(autoScroll.scroll)\n },\n\n stop () {\n autoScroll.isScrolling = false\n if (autoScroll.interaction) {\n autoScroll.interaction.autoScroll = null\n }\n raf.cancel(autoScroll.i)\n },\n\n // scroll the window by the values in scroll.x/y\n scroll () {\n const { interaction } = autoScroll\n const { interactable, element } = interaction\n const actionName: Interact.ActionName = interaction.prepared.name\n const options = interactable.options[actionName].autoScroll\n const container = getContainer(options.container, interactable, element)\n const now = autoScroll.now()\n // change in time in seconds\n const dt = (now - autoScroll.prevTime) / 1000\n // displacement\n const s = options.speed * dt\n\n if (s >= 1) {\n const scrollBy = {\n x: autoScroll.x * s,\n y: autoScroll.y * s,\n }\n\n if (scrollBy.x || scrollBy.y) {\n const prevScroll = getScroll(container)\n\n if (is.window(container)) {\n container.scrollBy(scrollBy.x, scrollBy.y)\n }\n else if (container) {\n container.scrollLeft += scrollBy.x\n container.scrollTop += scrollBy.y\n }\n\n const curScroll = getScroll(container)\n const delta = {\n x: curScroll.x - prevScroll.x,\n y: curScroll.y - prevScroll.y,\n }\n\n if (delta.x || delta.y) {\n interactable.fire({\n type: 'autoscroll',\n target: element,\n interactable,\n delta,\n interaction,\n container,\n })\n }\n }\n\n autoScroll.prevTime = now\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i)\n autoScroll.i = raf.request(autoScroll.scroll)\n }\n },\n check (interactable: Interact.Interactable, actionName: Interact.ActionName) {\n const options = interactable.options\n\n return options[actionName].autoScroll && options[actionName].autoScroll.enabled\n },\n onInteractionMove ({ interaction, pointer }: { interaction: Interact.Interaction, pointer: Interact.PointerType }) {\n if (!(interaction.interacting() &&\n autoScroll.check(interaction.interactable, interaction.prepared.name))) {\n return\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0\n return\n }\n\n let top\n let right\n let bottom\n let left\n\n const { interactable, element } = interaction\n const actionName = interaction.prepared.name\n const options = interactable.options[actionName].autoScroll\n const container = getContainer(options.container, interactable, element)\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin\n top = pointer.clientY < autoScroll.margin\n right = pointer.clientX > container.innerWidth - autoScroll.margin\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin\n }\n else {\n const rect = domUtils.getElementClientRect(container)\n\n left = pointer.clientX < rect.left + autoScroll.margin\n top = pointer.clientY < rect.top + autoScroll.margin\n right = pointer.clientX > rect.right - autoScroll.margin\n bottom = pointer.clientY > rect.bottom - autoScroll.margin\n }\n\n autoScroll.x = (right ? 1 : left ? -1 : 0)\n autoScroll.y = (bottom ? 1 : top ? -1 : 0)\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin\n autoScroll.speed = options.speed\n\n autoScroll.start(interaction)\n }\n },\n}\n\nexport function getContainer (value: any, interactable: Interact.Interactable, element: Interact.Element) {\n return (is.string(value) ? getStringOptionResult(value, interactable, element) : value) || getWindow(element)\n}\n\nexport function getScroll (container: any) {\n if (is.window(container)) { container = window.document.body }\n\n return { x: container.scrollLeft, y: container.scrollTop }\n}\n\nexport function getScrollSize (container: any) {\n if (is.window(container)) { container = window.document.body }\n\n return { x: container.scrollWidth, y: container.scrollHeight }\n}\n\nexport function getScrollSizeDelta ({ interaction, element }: {\n interaction: Partial>\n element: Interact.Element\n}, func: any) {\n const scrollOptions = interaction && interaction.interactable.options[interaction.prepared.name].autoScroll\n\n if (!scrollOptions || !scrollOptions.enabled) {\n func()\n return { x: 0, y: 0 }\n }\n\n const scrollContainer = getContainer(\n scrollOptions.container,\n interaction.interactable,\n element,\n )\n\n const prevSize = getScroll(scrollContainer)\n func()\n const curSize = getScroll(scrollContainer)\n\n return {\n x: curSize.x - prevSize.x,\n y: curSize.y - prevSize.y,\n }\n}\n\nconst autoScrollPlugin: Interact.Plugin = {\n id: 'auto-scroll',\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.autoScroll = null\n },\n\n 'interactions:destroy': ({ interaction }) => {\n interaction.autoScroll = null\n autoScroll.stop()\n if (autoScroll.interaction) {\n autoScroll.interaction = null\n }\n },\n\n 'interactions:stop': autoScroll.stop,\n\n 'interactions:action-move': (arg: any) => autoScroll.onInteractionMove(arg),\n },\n}\n\nexport default autoScrollPlugin\n" ] }