Socket
Socket
Sign inDemoInstall

@interactjs/core

Package Overview
Dependencies
Maintainers
2
Versions
137
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@interactjs/core - npm Package Compare versions

Comparing version 1.9.9 to 1.9.10

4

events.d.ts

@@ -11,3 +11,3 @@ declare module '@interactjs/core/scope' {

addDelegate: (selector: string, context: Node, type: string, listener: Listener, optionalArg?: any) => void;
removeDelegate: (selector: string, context: import("@interactjs/types/types").Context, type: string, listener?: Listener, optionalArg?: any) => void;
removeDelegate: (selector: string, context: import("../types/types").Context, type: string, listener?: Listener, optionalArg?: any) => void;
delegateListener: (event: Event, optionalArg?: any) => void;

@@ -36,4 +36,4 @@ delegateUseCapture: (event: Event) => any;

export declare class FakeEvent implements Partial<Event> {
currentTarget: EventTarget;
originalEvent: Event;
currentTarget: EventTarget;
constructor(originalEvent: Event);

@@ -40,0 +40,0 @@ preventOriginalDefault(): void;

@@ -236,5 +236,6 @@ import * as arr from "../utils/arr.js";

constructor(originalEvent) {
this.originalEvent = originalEvent;
this.currentTarget = void 0;
// duplicate the event so that currentTarget can be changed
this.originalEvent = void 0;
this.originalEvent = originalEvent; // duplicate the event so that currentTarget can be changed
pExtend(this, originalEvent);

@@ -241,0 +242,0 @@ }

@@ -1,2 +0,2 @@

import*as e from"../utils/arr.min.js";import*as t from"../utils/domUtils.min.js";import s from"../utils/extend.min.js";import*as n from"../utils/is.min.js";import r from"../utils/pointerExtend.min.js";import*as i from"../utils/pointerUtils.min.js";export class FakeEvent{constructor(e){this.originalEvent=e,this.currentTarget=void 0,r(this,e)}preventOriginalDefault(){this.originalEvent.preventDefault()}stopPropagation(){this.originalEvent.stopPropagation()}stopImmediatePropagation(){this.originalEvent.stopImmediatePropagation()}}function o(e){if(!n.object(e))return{capture:!!e,passive:!1};const t=s({},e);return t.capture=!!e.capture,t.passive=!!e.passive,t}export default{id:"events",install(s){const r=[],a={},p=[],l={add:c,remove:u,addDelegate(t,s,n,r,i){const l=o(i);if(!a[n]){a[n]=[];for(const e of p)c(e,n,v),c(e,n,f,!0)}const u=a[n];let d=e.find(u,e=>e.selector===t&&e.context===s);d||(d={selector:t,context:s,listeners:[]},u.push(d)),d.listeners.push([r,l])},removeDelegate(e,t,s,n,r){const i=o(r),p=a[s];let l,c=!1;if(p)for(l=p.length-1;l>=0;l--){const r=p[l];if(r.selector===e&&r.context===t){const{listeners:e}=r;for(let r=e.length-1;r>=0;r--){const[o,{capture:a,passive:d}]=e[r];if(o===n&&a===i.capture&&d===i.passive){e.splice(r,1),e.length||(p.splice(l,1),u(t,s,v),u(t,s,f,!0)),c=!0;break}}if(c)break}}},delegateListener:v,delegateUseCapture:f,delegatedEvents:a,documents:p,targets:r,supportsOptions:!1,supportsPassive:!1};function c(t,s,n,i){const a=o(i);let p=e.find(r,e=>e.eventTarget===t);p||(p={eventTarget:t,events:{}},r.push(p)),p.events[s]||(p.events[s]=[]),t.addEventListener&&!e.contains(p.events[s],n)&&(t.addEventListener(s,n,l.supportsOptions?a:a.capture),p.events[s].push(n))}function u(t,s,n,i){const a=o(i),p=e.findIndex(r,e=>e.eventTarget===t),c=r[p];if(!c||!c.events)return;if("all"===s){for(s in c.events)c.events.hasOwnProperty(s)&&u(t,s,"all");return}let v=!1;const f=c.events[s];if(f){if("all"===n){for(let e=f.length-1;e>=0;e--)u(t,s,f[e],a);return}for(let e=0;e<f.length;e++)if(f[e]===n){t.removeEventListener(s,n,l.supportsOptions?a:a.capture),f.splice(e,1),0===f.length&&(delete c.events[s],v=!0);break}}v&&!Object.keys(c.events).length&&r.splice(p,1)}function v(e,s){const r=o(s),p=new FakeEvent(e),l=a[e.type],[c]=i.getEventTargets(e);let u=c;for(;n.element(u);){for(let e=0;e<l.length;e++){const s=l[e],{selector:n,context:i}=s;if(t.matchesSelector(u,n)&&t.nodeContains(i,c)&&t.nodeContains(i,u)){const{listeners:e}=s;p.currentTarget=u;for(const[t,{capture:s,passive:n}]of e)s===r.capture&&n===r.passive&&t(p)}}u=t.parentNode(u)}}function f(e){return v(e,!0)}return(s.document.createElement("div").addEventListener("test",null,{get capture(){return l.supportsOptions=!0},get passive(){return l.supportsPassive=!0}}),s.events=l,l)}};
import*as e from"../utils/arr.min.js";import*as t from"../utils/domUtils.min.js";import n from"../utils/extend.min.js";import*as s from"../utils/is.min.js";import r from"../utils/pointerExtend.min.js";import*as i from"../utils/pointerUtils.min.js";export class FakeEvent{constructor(e){this.currentTarget=void 0,this.originalEvent=void 0,this.originalEvent=e,r(this,e)}preventOriginalDefault(){this.originalEvent.preventDefault()}stopPropagation(){this.originalEvent.stopPropagation()}stopImmediatePropagation(){this.originalEvent.stopImmediatePropagation()}}function o(e){if(!s.object(e))return{capture:!!e,passive:!1};const t=n({},e);return t.capture=!!e.capture,t.passive=!!e.passive,t}export default{id:"events",install(n){const r=[],a={},l=[],p={add:c,remove:u,addDelegate(t,n,s,r,i){const p=o(i);if(!a[s]){a[s]=[];for(const e of l)c(e,s,v),c(e,s,f,!0)}const u=a[s];let d=e.find(u,e=>e.selector===t&&e.context===n);d||(d={selector:t,context:n,listeners:[]},u.push(d)),d.listeners.push([r,p])},removeDelegate(e,t,n,s,r){const i=o(r),l=a[n];let p,c=!1;if(l)for(p=l.length-1;p>=0;p--){const r=l[p];if(r.selector===e&&r.context===t){const{listeners:e}=r;for(let r=e.length-1;r>=0;r--){const[o,{capture:a,passive:d}]=e[r];if(o===s&&a===i.capture&&d===i.passive){e.splice(r,1),e.length||(l.splice(p,1),u(t,n,v),u(t,n,f,!0)),c=!0;break}}if(c)break}}},delegateListener:v,delegateUseCapture:f,delegatedEvents:a,documents:l,targets:r,supportsOptions:!1,supportsPassive:!1};function c(t,n,s,i){const a=o(i);let l=e.find(r,e=>e.eventTarget===t);l||(l={eventTarget:t,events:{}},r.push(l)),l.events[n]||(l.events[n]=[]),t.addEventListener&&!e.contains(l.events[n],s)&&(t.addEventListener(n,s,p.supportsOptions?a:a.capture),l.events[n].push(s))}function u(t,n,s,i){const a=o(i),l=e.findIndex(r,e=>e.eventTarget===t),c=r[l];if(!c||!c.events)return;if("all"===n){for(n in c.events)c.events.hasOwnProperty(n)&&u(t,n,"all");return}let v=!1;const f=c.events[n];if(f){if("all"===s){for(let e=f.length-1;e>=0;e--)u(t,n,f[e],a);return}for(let e=0;e<f.length;e++)if(f[e]===s){t.removeEventListener(n,s,p.supportsOptions?a:a.capture),f.splice(e,1),0===f.length&&(delete c.events[n],v=!0);break}}v&&!Object.keys(c.events).length&&r.splice(l,1)}function v(e,n){const r=o(n),l=new FakeEvent(e),p=a[e.type],[c]=i.getEventTargets(e);let u=c;for(;s.element(u);){for(let e=0;e<p.length;e++){const n=p[e],{selector:s,context:i}=n;if(t.matchesSelector(u,s)&&t.nodeContains(i,c)&&t.nodeContains(i,u)){const{listeners:e}=n;l.currentTarget=u;for(const[t,{capture:n,passive:s}]of e)n===r.capture&&s===r.passive&&t(l)}}u=t.parentNode(u)}}function f(e){return v(e,!0)}return n.document.createElement("div").addEventListener("test",null,{get capture(){return p.supportsOptions=!0},get passive(){return p.supportsPassive=!0}}),n.events=p,p}};
//# sourceMappingURL=events.min.js.map

@@ -7,3 +7,2 @@ import Eventable from './Eventable';

export declare class Interactable implements Partial<Eventable> {
private readonly _scopeEvents;
protected readonly _defaults: Defaults;

@@ -17,4 +16,5 @@ readonly options: Required<Options>;

readonly _doc: Document;
readonly _scopeEvents: Interact.Scope['events'];
/** */
constructor(target: Interact.Target, options: any, defaultContext: Document | Interact.Element, _scopeEvents: Interact.Scope['events']);
constructor(target: Interact.Target, options: any, defaultContext: Document | Interact.Element, scopeEvents: Interact.Scope['events']);
setOnEvents(actionName: Interact.ActionName, phases: NonNullable<any>): this;

@@ -46,3 +46,3 @@ updatePerActionListeners(actionName: Interact.ActionName, prev: Interact.Listeners, cur: Interact.Listeners): void;

*/
rectChecker(checker: (element: Interact.Element) => any): this | ((element: import("@interactjs/types/types").Element) => {
rectChecker(checker: (element: Interact.Element) => any): this | ((element: import("../types/types").Element) => {
left: number;

@@ -75,3 +75,3 @@ right: number;

*/
deltaSource(newValue?: string): "page" | "client" | this;
deltaSource(newValue?: string): this | "page" | "client";
/**

@@ -83,3 +83,3 @@ * Gets the selector context Node of the Interactable. The default is

*/
context(): import("@interactjs/types/types").Context;
context(): import("../types/types").Context;
inContext(element: Document | Node): boolean;

@@ -86,0 +86,0 @@ testIgnoreAllow(this: Interactable, options: {

@@ -0,1 +1,3 @@

import Eventable from "./Eventable.js";
import { isNonNativeEvent } from "./scope.js";
import * as arr from "../utils/arr.js";

@@ -9,4 +11,2 @@ import browser from "../utils/browser.js";

import { getWindow } from "../utils/window.js";
import Eventable from "./Eventable.js";
import { isNonNativeEvent } from "./scope.js";

@@ -24,4 +24,3 @@ /** */

/** */
constructor(target, options, defaultContext, _scopeEvents) {
this._scopeEvents = _scopeEvents;
constructor(target, options, defaultContext, scopeEvents) {
this.options = void 0;

@@ -34,2 +33,3 @@ this._actions = void 0;

this._doc = void 0;
this._scopeEvents = void 0;
this._actions = options.actions;

@@ -40,2 +40,3 @@ this.target = target;

this._doc = this._win.document;
this._scopeEvents = scopeEvents;
this.set(options);

@@ -42,0 +43,0 @@ }

@@ -1,2 +0,2 @@

import*as t from"../utils/arr.min.js";import e from"../utils/browser.min.js";import s from"../utils/clone.min.js";import{getElementRect as i,matchesUpTo as n,nodeContains as o,trySelector as r}from"../utils/domUtils.min.js";import c from"../utils/extend.min.js";import*as h from"../utils/is.min.js";import a from"../utils/normalizeListeners.min.js";import{getWindow as l}from"../utils/window.min.js";import m from"./Eventable.min.js";import{isNonNativeEvent as u}from"./scope.min.js";export class Interactable{get _defaults(){return{base:{},perAction:{},actions:{}}}constructor(t,e,s,i){this._scopeEvents=i,this.options=void 0,this._actions=void 0,this.target=void 0,this.events=new m,this._context=void 0,this._win=void 0,this._doc=void 0,this._actions=e.actions,this.target=t,this._context=e.context||s,this._win=l(r(t)?this._context:t),this._doc=this._win.document,this.set(e)}setOnEvents(t,e){return h.func(e.onstart)&&this.on(`${t}start`,e.onstart),h.func(e.onmove)&&this.on(`${t}move`,e.onmove),h.func(e.onend)&&this.on(`${t}end`,e.onend),h.func(e.oninertiastart)&&this.on(`${t}inertiastart`,e.oninertiastart),this}updatePerActionListeners(t,e,s){(h.array(e)||h.object(e))&&this.off(t,e),(h.array(s)||h.object(s))&&this.on(t,s)}setPerAction(e,i){const n=this._defaults;for(const o in i){const r=o,a=this.options[e],l=i[r];"listeners"===r&&this.updatePerActionListeners(e,a.listeners,l),h.array(l)?a[r]=t.from(l):h.plainObject(l)?(a[r]=c(a[r]||{},s(l)),h.object(n.perAction[r])&&"enabled"in n.perAction[r]&&(a[r].enabled=!1!==l.enabled)):h.bool(l)&&h.object(n.perAction[r])?a[r].enabled=l:a[r]=l}}getRect(t){return t=t||(h.element(this.target)?this.target:null),h.string(this.target)&&(t=t||this._context.querySelector(this.target)),i(t)}rectChecker(t){return h.func(t)?(this.getRect=t,this):null===t?(delete this.getRect,this):this.getRect}_backCompatOption(t,e){if(r(e)||h.object(e)){this.options[t]=e;for(const s in this._actions.map)this.options[s][t]=e;return this}return this.options[t]}origin(t){return this._backCompatOption("origin",t)}deltaSource(t){return"page"===t||"client"===t?(this.options.deltaSource=t,this):this.options.deltaSource}context(){return this._context}inContext(t){return this._context===t.ownerDocument||o(this._context,t)}testIgnoreAllow(t,e,s){return!this.testIgnore(t.ignoreFrom,e,s)&&this.testAllow(t.allowFrom,e,s)}testAllow(t,e,s){return!t||!!h.element(s)&&(h.string(t)?n(s,t,e):!!h.element(t)&&o(t,s))}testIgnore(t,e,s){return!(!t||!h.element(s))&&(h.string(t)?n(s,t,e):!!h.element(t)&&o(t,s))}fire(t){return this.events.fire(t),this}_onOff(t,s,i,n){h.object(s)&&!h.array(s)&&(n=i,i=null);const o="on"===t?"add":"remove",r=a(s,i);for(let s in r){"wheel"===s&&(s=e.wheelEvent);for(const e of r[s])u(s,this._actions)?this.events[t](s,e):h.string(this.target)?this._scopeEvents[`${o}Delegate`](this.target,this._context,s,e,n):this._scopeEvents[o](this.target,s,e,n)}return this}on(t,e,s){return this._onOff("on",t,e,s)}off(t,e,s){return this._onOff("off",t,e,s)}set(t){const e=this._defaults;h.object(t)||(t={}),this.options=s(e.base);for(const s in this._actions.methodDict){const i=s,n=this._actions.methodDict[i];this.options[i]={},this.setPerAction(i,c(c({},e.perAction),e.actions[i])),this[n](t[i])}for(const e in t)h.func(this[e])&&this[e](t[e]);return this}unset(){if(h.string(this.target))for(const t in this._scopeEvents.delegatedEvents){const e=this._scopeEvents.delegatedEvents[t];for(let s=e.length-1;s>=0;s--){const{selector:i,context:n,listeners:o}=e[s];i===this.target&&n===this._context&&e.splice(s,1);for(let e=o.length-1;e>=0;e--)this._scopeEvents.removeDelegate(this.target,this._context,t,o[e][0],o[e][1])}}else this._scopeEvents.remove(this.target,"all")}}export default Interactable;
import t from"./Eventable.min.js";import{isNonNativeEvent as e}from"./scope.min.js";import*as s from"../utils/arr.min.js";import i from"../utils/browser.min.js";import n from"../utils/clone.min.js";import{getElementRect as o,matchesUpTo as r,nodeContains as c,trySelector as h}from"../utils/domUtils.min.js";import a from"../utils/extend.min.js";import*as l from"../utils/is.min.js";import m from"../utils/normalizeListeners.min.js";import{getWindow as u}from"../utils/window.min.js";export class Interactable{get _defaults(){return{base:{},perAction:{},actions:{}}}constructor(e,s,i,n){this.options=void 0,this._actions=void 0,this.target=void 0,this.events=new t,this._context=void 0,this._win=void 0,this._doc=void 0,this._scopeEvents=void 0,this._actions=s.actions,this.target=e,this._context=s.context||i,this._win=u(h(e)?this._context:e),this._doc=this._win.document,this._scopeEvents=n,this.set(s)}setOnEvents(t,e){return l.func(e.onstart)&&this.on(t+"start",e.onstart),l.func(e.onmove)&&this.on(t+"move",e.onmove),l.func(e.onend)&&this.on(t+"end",e.onend),l.func(e.oninertiastart)&&this.on(t+"inertiastart",e.oninertiastart),this}updatePerActionListeners(t,e,s){(l.array(e)||l.object(e))&&this.off(t,e),(l.array(s)||l.object(s))&&this.on(t,s)}setPerAction(t,e){const i=this._defaults;for(const o in e){const r=o,c=this.options[t],h=e[r];"listeners"===r&&this.updatePerActionListeners(t,c.listeners,h),l.array(h)?c[r]=s.from(h):l.plainObject(h)?(c[r]=a(c[r]||{},n(h)),l.object(i.perAction[r])&&"enabled"in i.perAction[r]&&(c[r].enabled=!1!==h.enabled)):l.bool(h)&&l.object(i.perAction[r])?c[r].enabled=h:c[r]=h}}getRect(t){return t=t||(l.element(this.target)?this.target:null),l.string(this.target)&&(t=t||this._context.querySelector(this.target)),o(t)}rectChecker(t){return l.func(t)?(this.getRect=t,this):null===t?(delete this.getRect,this):this.getRect}_backCompatOption(t,e){if(h(e)||l.object(e)){this.options[t]=e;for(const s in this._actions.map)this.options[s][t]=e;return this}return this.options[t]}origin(t){return this._backCompatOption("origin",t)}deltaSource(t){return"page"===t||"client"===t?(this.options.deltaSource=t,this):this.options.deltaSource}context(){return this._context}inContext(t){return this._context===t.ownerDocument||c(this._context,t)}testIgnoreAllow(t,e,s){return!this.testIgnore(t.ignoreFrom,e,s)&&this.testAllow(t.allowFrom,e,s)}testAllow(t,e,s){return!t||!!l.element(s)&&(l.string(t)?r(s,t,e):!!l.element(t)&&c(t,s))}testIgnore(t,e,s){return!(!t||!l.element(s))&&(l.string(t)?r(s,t,e):!!l.element(t)&&c(t,s))}fire(t){return this.events.fire(t),this}_onOff(t,s,n,o){l.object(s)&&!l.array(s)&&(o=n,n=null);const r="on"===t?"add":"remove",c=m(s,n);for(let s in c){"wheel"===s&&(s=i.wheelEvent);for(const i of c[s])e(s,this._actions)?this.events[t](s,i):l.string(this.target)?this._scopeEvents[r+"Delegate"](this.target,this._context,s,i,o):this._scopeEvents[r](this.target,s,i,o)}return this}on(t,e,s){return this._onOff("on",t,e,s)}off(t,e,s){return this._onOff("off",t,e,s)}set(t){const e=this._defaults;l.object(t)||(t={}),this.options=n(e.base);for(const s in this._actions.methodDict){const i=s,n=this._actions.methodDict[i];this.options[i]={},this.setPerAction(i,a(a({},e.perAction),e.actions[i])),this[n](t[i])}for(const e in t)l.func(this[e])&&this[e](t[e]);return this}unset(){if(l.string(this.target))for(const t in this._scopeEvents.delegatedEvents){const e=this._scopeEvents.delegatedEvents[t];for(let s=e.length-1;s>=0;s--){const{selector:i,context:n,listeners:o}=e[s];i===this.target&&n===this._context&&e.splice(s,1);for(let e=o.length-1;e>=0;e--)this._scopeEvents.removeDelegate(this.target,this._context,t,o[e][0],o[e][1])}}else this._scopeEvents.remove(this.target,"all")}}export default Interactable;
//# sourceMappingURL=Interactable.min.js.map

@@ -1,2 +0,2 @@

import{matchesSelector as t,nodeContains as e}from"../utils/domUtils.min.js";import*as n from"../utils/is.min.js";import{getWindow as i}from"../utils/window.min.js";function r(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):n.bool(t)?(this.options.preventDefault=t?"always":"never",this):this.options.preventDefault}function o({interaction:t,event:e}){t.interactable&&t.interactable.checkAndPreventDefault(e)}export function install(o){const{Interactable:s}=o;s.prototype.preventDefault=r,s.prototype.checkAndPreventDefault=function(e){return function(e,r,o){const s=e.options.preventDefault;if("never"!==s)if("always"!==s){if(r.events.supportsPassive&&/^touch(start|move)$/.test(o.type)){const t=i(o.target).document,e=r.getDocOptions(t);if(!e||!e.events||!1!==e.events.passive)return}/^(mouse|pointer|touch)*(down|start)/i.test(o.type)||n.element(o.target)&&t(o.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *")||o.preventDefault()}else o.preventDefault()}(this,o,e)},o.interactions.docEvents.push({type:"dragstart",listener(t){for(const n of o.interactions.list)if(n.element&&(n.element===t.target||e(n.element,t.target)))return void n.interactable.checkAndPreventDefault(t)}})}export default{id:"core/interactablePreventDefault",install:install,listeners:["down","move","up","cancel"].reduce((t,e)=>(t[`interactions:${e}`]=o,t),{})};
import{matchesSelector as t,nodeContains as e}from"../utils/domUtils.min.js";import*as n from"../utils/is.min.js";import{getWindow as i}from"../utils/window.min.js";function r(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):n.bool(t)?(this.options.preventDefault=t?"always":"never",this):this.options.preventDefault}function o({interaction:t,event:e}){t.interactable&&t.interactable.checkAndPreventDefault(e)}export function install(o){const{Interactable:s}=o;s.prototype.preventDefault=r,s.prototype.checkAndPreventDefault=function(e){return function(e,r,o){const s=e.options.preventDefault;if("never"!==s)if("always"!==s){if(r.events.supportsPassive&&/^touch(start|move)$/.test(o.type)){const t=i(o.target).document,e=r.getDocOptions(t);if(!e||!e.events||!1!==e.events.passive)return}/^(mouse|pointer|touch)*(down|start)/i.test(o.type)||n.element(o.target)&&t(o.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *")||o.preventDefault()}else o.preventDefault()}(this,o,e)},o.interactions.docEvents.push({type:"dragstart",listener(t){for(const n of o.interactions.list)if(n.element&&(n.element===t.target||e(n.element,t.target)))return void n.interactable.checkAndPreventDefault(t)}})}export default{id:"core/interactablePreventDefault",install:install,listeners:["down","move","up","cancel"].reduce((t,e)=>(t["interactions:"+e]=o,t),{})};
//# sourceMappingURL=interactablePreventDefault.min.js.map

@@ -16,3 +16,2 @@ declare module '@interactjs/core/scope' {

export default class InteractableSet {
protected scope: Interact.Scope;
list: Interact.Interactable[];

@@ -22,2 +21,3 @@ selectorMap: {

};
scope: Interact.Scope;
constructor(scope: Interact.Scope);

@@ -24,0 +24,0 @@ new(target: Interact.Target, options?: any): Interact.Interactable;

@@ -8,5 +8,6 @@ import * as arr from "../utils/arr.js";

constructor(scope) {
this.scope = scope;
this.list = [];
this.selectorMap = {};
this.scope = void 0;
this.scope = scope;
scope.addListeners({

@@ -13,0 +14,0 @@ 'interactable:unset': ({

@@ -1,2 +0,2 @@

import*as t from"../utils/arr.min.js";import*as e from"../utils/domUtils.min.js";import s from"../utils/extend.min.js";import*as i from"../utils/is.min.js";export default class n{constructor(t){this.scope=t,this.list=[],this.selectorMap={},t.addListeners({"interactable:unset":({interactable:t})=>{const{target:e,_context:s}=t,n=i.string(e)?this.selectorMap[e]:e[this.scope.id],o=n.findIndex(t=>t.context===s);n[o]&&(n[o].context=null,n[o].interactable=null),n.splice(o,1)}})}new(t,e){e=s(e||{},{actions:this.scope.actions});const n=new this.scope.Interactable(t,e,this.scope.document,this.scope.events),o={context:n._context,interactable:n};return this.scope.addDocument(n._doc),this.list.push(n),i.string(t)?(this.selectorMap[t]||(this.selectorMap[t]=[]),this.selectorMap[t].push(o)):(n.target[this.scope.id]||Object.defineProperty(t,this.scope.id,{value:[],configurable:!0}),t[this.scope.id].push(o)),this.scope.fire("interactable:new",{target:t,options:e,interactable:n,win:this.scope._win}),n}get(e,s){const n=s&&s.context||this.scope.document,o=i.string(e),c=o?this.selectorMap[e]:e[this.scope.id];if(!c)return null;const r=t.find(c,t=>t.context===n&&(o||t.interactable.inContext(e)));return r&&r.interactable}forEachMatch(t,s){for(const n of this.list){let o;if((i.string(n.target)?i.element(t)&&e.matchesSelector(t,n.target):t===n.target)&&n.inContext(t)&&(o=s(n)),void 0!==o)return o}}}
import*as t from"../utils/arr.min.js";import*as e from"../utils/domUtils.min.js";import s from"../utils/extend.min.js";import*as i from"../utils/is.min.js";export default class o{constructor(t){this.list=[],this.selectorMap={},this.scope=void 0,this.scope=t,t.addListeners({"interactable:unset":({interactable:t})=>{const{target:e,_context:s}=t,o=i.string(e)?this.selectorMap[e]:e[this.scope.id],n=o.findIndex(t=>t.context===s);o[n]&&(o[n].context=null,o[n].interactable=null),o.splice(n,1)}})}new(t,e){e=s(e||{},{actions:this.scope.actions});const o=new this.scope.Interactable(t,e,this.scope.document,this.scope.events),n={context:o._context,interactable:o};return this.scope.addDocument(o._doc),this.list.push(o),i.string(t)?(this.selectorMap[t]||(this.selectorMap[t]=[]),this.selectorMap[t].push(n)):(o.target[this.scope.id]||Object.defineProperty(t,this.scope.id,{value:[],configurable:!0}),t[this.scope.id].push(n)),this.scope.fire("interactable:new",{target:t,options:e,interactable:o,win:this.scope._win}),o}get(e,s){const o=s&&s.context||this.scope.document,n=i.string(e),c=n?this.selectorMap[e]:e[this.scope.id];if(!c)return null;const r=t.find(c,t=>t.context===o&&(n||t.interactable.inContext(e)));return r&&r.interactable}forEachMatch(t,s){for(const o of this.list){let n;if((i.string(o.target)?i.element(t)&&e.matchesSelector(t,o.target):t===o.target)&&o.inContext(t)&&(n=s(o)),void 0!==n)return n}}}
//# sourceMappingURL=InteractableSet.min.js.map

@@ -0,6 +1,6 @@

import BaseEvent from "./BaseEvent.js";
import defaults from "./defaultOptions.js";
import extend from "../utils/extend.js";
import getOriginXY from "../utils/getOriginXY.js";
import hypot from "../utils/hypot.js";
import BaseEvent from "./BaseEvent.js";
import defaults from "./defaultOptions.js";
export class InteractEvent extends BaseEvent {

@@ -7,0 +7,0 @@ // drag

@@ -1,2 +0,2 @@

import t from"../utils/extend.min.js";import e from"../utils/getOriginXY.min.js";import i from"../utils/hypot.min.js";import s from"./BaseEvent.min.js";import o from"./defaultOptions.min.js";export class InteractEvent extends s{constructor(s,r,h,n,a,d,p){super(s),this.target=void 0,this.currentTarget=void 0,this.relatedTarget=null,this.screenX=void 0,this.screenY=void 0,this.button=void 0,this.buttons=void 0,this.ctrlKey=void 0,this.shiftKey=void 0,this.altKey=void 0,this.metaKey=void 0,this.page=void 0,this.client=void 0,this.delta=void 0,this.rect=void 0,this.x0=void 0,this.y0=void 0,this.t0=void 0,this.dt=void 0,this.duration=void 0,this.clientX0=void 0,this.clientY0=void 0,this.velocity=void 0,this.speed=void 0,this.swipe=void 0,this.timeStamp=void 0,this.dragEnter=void 0,this.dragLeave=void 0,this.axes=void 0,this.preEnd=void 0,a=a||s.element;const l=s.interactable,c=(l&&l.options||o).deltaSource,v=e(l,a,h),y="start"===n,g="end"===n,m=y?this:s.prevEvent,u=y?s.coords.start:g?{page:m.page,client:m.client,timeStamp:s.coords.cur.timeStamp}:s.coords.cur;this.page=t({},u.page),this.client=t({},u.client),this.rect=t({},s.rect),this.timeStamp=u.timeStamp,g||(this.page.x-=v.x,this.page.y-=v.y,this.client.x-=v.x,this.client.y-=v.y),this.ctrlKey=r.ctrlKey,this.altKey=r.altKey,this.shiftKey=r.shiftKey,this.metaKey=r.metaKey,this.button=r.button,this.buttons=r.buttons,this.target=a,this.currentTarget=a,this.preEnd=d,this.type=p||h+(n||""),this.interactable=l,this.t0=y?s.pointers[s.pointers.length-1].downTime:m.t0,this.x0=s.coords.start.page.x-v.x,this.y0=s.coords.start.page.y-v.y,this.clientX0=s.coords.start.client.x-v.x,this.clientY0=s.coords.start.client.y-v.y,this.delta=y||g?{x:0,y:0}:{x:this[c].x-m[c].x,y:this[c].y-m[c].y},this.dt=s.coords.delta.timeStamp,this.duration=this.timeStamp-this.t0,this.velocity=t({},s.coords.velocity[c]),this.speed=i(this.velocity.x,this.velocity.y),this.swipe=g||"inertiastart"===n?this.getSwipe():null}get pageX(){return this.page.x}set pageX(t){this.page.x=t}get pageY(){return this.page.y}set pageY(t){this.page.y=t}get clientX(){return this.client.x}set clientX(t){this.client.x=t}get clientY(){return this.client.y}set clientY(t){this.client.y=t}get dx(){return this.delta.x}set dx(t){this.delta.x=t}get dy(){return this.delta.y}set dy(t){this.delta.y=t}get velocityX(){return this.velocity.x}set velocityX(t){this.velocity.x=t}get velocityY(){return this.velocity.y}set velocityY(t){this.velocity.y=t}getSwipe(){const t=this._interaction;if(t.prevEvent.speed<600||this.timeStamp-t.prevEvent.timeStamp>150)return null;let e=180*Math.atan2(t.prevEvent.velocityY,t.prevEvent.velocityX)/Math.PI;e<0&&(e+=360);const i=112.5<=e&&e<247.5,s=202.5<=e&&e<337.5;return{up:s,down:!s&&22.5<=e&&e<157.5,left:i,right:!i&&(292.5<=e||e<67.5),angle:e,speed:t.prevEvent.speed,velocity:{x:t.prevEvent.velocityX,y:t.prevEvent.velocityY}}}preventDefault(){}stopImmediatePropagation(){this.immediatePropagationStopped=this.propagationStopped=!0}stopPropagation(){this.propagationStopped=!0}}export default InteractEvent;
import t from"./BaseEvent.min.js";import e from"./defaultOptions.min.js";import i from"../utils/extend.min.js";import s from"../utils/getOriginXY.min.js";import o from"../utils/hypot.min.js";export class InteractEvent extends t{constructor(t,r,h,n,a,d,p){super(t),this.target=void 0,this.currentTarget=void 0,this.relatedTarget=null,this.screenX=void 0,this.screenY=void 0,this.button=void 0,this.buttons=void 0,this.ctrlKey=void 0,this.shiftKey=void 0,this.altKey=void 0,this.metaKey=void 0,this.page=void 0,this.client=void 0,this.delta=void 0,this.rect=void 0,this.x0=void 0,this.y0=void 0,this.t0=void 0,this.dt=void 0,this.duration=void 0,this.clientX0=void 0,this.clientY0=void 0,this.velocity=void 0,this.speed=void 0,this.swipe=void 0,this.timeStamp=void 0,this.dragEnter=void 0,this.dragLeave=void 0,this.axes=void 0,this.preEnd=void 0,a=a||t.element;const l=t.interactable,c=(l&&l.options||e).deltaSource,v=s(l,a,h),y="start"===n,g="end"===n,m=y?this:t.prevEvent,u=y?t.coords.start:g?{page:m.page,client:m.client,timeStamp:t.coords.cur.timeStamp}:t.coords.cur;this.page=i({},u.page),this.client=i({},u.client),this.rect=i({},t.rect),this.timeStamp=u.timeStamp,g||(this.page.x-=v.x,this.page.y-=v.y,this.client.x-=v.x,this.client.y-=v.y),this.ctrlKey=r.ctrlKey,this.altKey=r.altKey,this.shiftKey=r.shiftKey,this.metaKey=r.metaKey,this.button=r.button,this.buttons=r.buttons,this.target=a,this.currentTarget=a,this.preEnd=d,this.type=p||h+(n||""),this.interactable=l,this.t0=y?t.pointers[t.pointers.length-1].downTime:m.t0,this.x0=t.coords.start.page.x-v.x,this.y0=t.coords.start.page.y-v.y,this.clientX0=t.coords.start.client.x-v.x,this.clientY0=t.coords.start.client.y-v.y,this.delta=y||g?{x:0,y:0}:{x:this[c].x-m[c].x,y:this[c].y-m[c].y},this.dt=t.coords.delta.timeStamp,this.duration=this.timeStamp-this.t0,this.velocity=i({},t.coords.velocity[c]),this.speed=o(this.velocity.x,this.velocity.y),this.swipe=g||"inertiastart"===n?this.getSwipe():null}get pageX(){return this.page.x}set pageX(t){this.page.x=t}get pageY(){return this.page.y}set pageY(t){this.page.y=t}get clientX(){return this.client.x}set clientX(t){this.client.x=t}get clientY(){return this.client.y}set clientY(t){this.client.y=t}get dx(){return this.delta.x}set dx(t){this.delta.x=t}get dy(){return this.delta.y}set dy(t){this.delta.y=t}get velocityX(){return this.velocity.x}set velocityX(t){this.velocity.x=t}get velocityY(){return this.velocity.y}set velocityY(t){this.velocity.y=t}getSwipe(){const t=this._interaction;if(t.prevEvent.speed<600||this.timeStamp-t.prevEvent.timeStamp>150)return null;let e=180*Math.atan2(t.prevEvent.velocityY,t.prevEvent.velocityX)/Math.PI;e<0&&(e+=360);const i=112.5<=e&&e<247.5,s=202.5<=e&&e<337.5;return{up:s,down:!s&&22.5<=e&&e<157.5,left:i,right:!i&&(292.5<=e||e<67.5),angle:e,speed:t.prevEvent.speed,velocity:{x:t.prevEvent.velocityX,y:t.prevEvent.velocityY}}}preventDefault(){}stopImmediatePropagation(){this.immediatePropagationStopped=this.propagationStopped=!0}stopPropagation(){this.propagationStopped=!0}}export default InteractEvent;
//# sourceMappingURL=InteractEvent.min.js.map

@@ -1,2 +0,1 @@

import * as utils from '@interactjs/utils/index';
import InteractEvent, { EventPhase } from './InteractEvent';

@@ -6,2 +5,3 @@ import Interactable from './Interactable';

import { ActionName } from './scope';
import * as utils from '@interactjs/utils/index';
export interface ActionProps<T extends ActionName = Interact.ActionName> {

@@ -8,0 +8,0 @@ name: T;

@@ -1,4 +0,4 @@

import * as utils from "../utils/index.js";
import InteractEvent from "./InteractEvent.js";
import PointerInfo from "./PointerInfo.js";
import * as utils from "../utils/index.js";
export let _ProxyValues;

@@ -5,0 +5,0 @@

@@ -1,2 +0,2 @@

import*as t from"../utils/index.min.js";import e from"./InteractEvent.min.js";import i from"./PointerInfo.min.js";export let _ProxyValues;(t=>{t.interactable="",t.element="",t.prepared="",t.pointerIsDown="",t.pointerWasMoved="",t._proxy=""})(_ProxyValues||(_ProxyValues={}));export let _ProxyMethods;(t=>{t.start="",t.move="",t.end="",t.stop="",t.interacting=""})(_ProxyMethods||(_ProxyMethods={}));let n=0;export class Interaction{get pointerMoveTolerance(){return 1}constructor({pointerType:e,scopeFire:i}){this.interactable=null,this.element=null,this.rect=void 0,this._rects=void 0,this.edges=void 0,this._scopeFire=void 0,this.prepared={name:null,axis:null,edges:null},this.pointerType=void 0,this.pointers=[],this.downEvent=null,this.downPointer={},this._latestPointer={pointer:null,event:null,eventTarget:null},this.prevEvent=null,this.pointerIsDown=!1,this.pointerWasMoved=!1,this._interacting=!1,this._ending=!1,this._stopped=!0,this._proxy=null,this.simulation=null,this.doMove=t.warnOnce((function(t){this.move(t)}),"The interaction.doMove() method has been renamed to interaction.move()"),this.coords={start:t.pointer.newCoords(),prev:t.pointer.newCoords(),cur:t.pointer.newCoords(),delta:t.pointer.newCoords(),velocity:t.pointer.newCoords()},this._id=n++,this._scopeFire=i,this.pointerType=e;const o=this;this._proxy={};for(const t in _ProxyValues)Object.defineProperty(this._proxy,t,{get:()=>o[t]});for(const t in _ProxyMethods)Object.defineProperty(this._proxy,t,{value(...e){return o[t](...e)}});this._scopeFire("interactions:new",{interaction:this})}pointerDown(t,e,i){const n=this.updatePointer(t,e,i,!0),o=this.pointers[n];this._scopeFire("interactions:down",{pointer:t,event:e,eventTarget:i,pointerIndex:n,pointerInfo:o,type:"down",interaction:this})}start(e,i,n){return!(this.interacting()||!this.pointerIsDown||this.pointers.length<("gesture"===e.name?2:1)||!i.options[e.name].enabled)&&(t.copyAction(this.prepared,e),this.interactable=i,this.element=n,this.rect=i.getRect(n),this.edges=this.prepared.edges?t.extend({},this.prepared.edges):{left:!0,right:!0,top:!0,bottom:!0},this._stopped=!1,this._interacting=this._doPhase({interaction:this,event:this.downEvent,phase:"start"})&&!this._stopped,this._interacting)}pointerMove(e,i,n){this.simulation||this.modification&&this.modification.endResult||this.updatePointer(e,i,n,!1);const o=this.coords.cur.page.x===this.coords.prev.page.x&&this.coords.cur.page.y===this.coords.prev.page.y&&this.coords.cur.client.x===this.coords.prev.client.x&&this.coords.cur.client.y===this.coords.prev.client.y;let r,s;this.pointerIsDown&&!this.pointerWasMoved&&(r=this.coords.cur.client.x-this.coords.start.client.x,s=this.coords.cur.client.y-this.coords.start.client.y,this.pointerWasMoved=t.hypot(r,s)>this.pointerMoveTolerance);const h=this.getPointerIndex(e),p={pointer:e,pointerIndex:h,pointerInfo:this.pointers[h],event:i,type:"move",eventTarget:n,dx:r,dy:s,duplicate:o,interaction:this};o||t.pointer.setCoordVelocity(this.coords.velocity,this.coords.delta),this._scopeFire("interactions:move",p),o||this.simulation||(this.interacting()&&(p.type=null,this.move(p)),this.pointerWasMoved&&t.pointer.copyCoords(this.coords.prev,this.coords.cur))}move(e){e&&e.event||t.pointer.setZeroCoords(this.coords.delta),(e=t.extend({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},e||{})).phase="move",this._doPhase(e)}pointerUp(t,e,i,n){let o=this.getPointerIndex(t);-1===o&&(o=this.updatePointer(t,e,i,!1));const r=/cancel$/i.test(e.type)?"cancel":"up";this._scopeFire(`interactions:${r}`,{pointer:t,pointerIndex:o,pointerInfo:this.pointers[o],event:e,eventTarget:i,type:r,curEventTarget:n,interaction:this}),this.simulation||this.end(e),this.pointerIsDown=!1,this.removePointer(t,e)}documentBlur(t){this.end(t),this._scopeFire("interactions:blur",{event:t,type:"blur",interaction:this})}end(t){let e;this._ending=!0,t=t||this._latestPointer.event,this.interacting()&&(e=this._doPhase({event:t,interaction:this,phase:"end"})),this._ending=!1,!0===e&&this.stop()}currentAction(){return this._interacting?this.prepared.name:null}interacting(){return this._interacting}stop(){this._scopeFire("interactions:stop",{interaction:this}),this.interactable=this.element=null,this._interacting=!1,this._stopped=!0,this.prepared.name=this.prevEvent=null}getPointerIndex(e){const i=t.pointer.getPointerId(e);return"mouse"===this.pointerType||"pen"===this.pointerType?this.pointers.length-1:t.arr.findIndex(this.pointers,t=>t.id===i)}getPointerInfo(t){return this.pointers[this.getPointerIndex(t)]}updatePointer(e,n,o,r){const s=t.pointer.getPointerId(e);let h=this.getPointerIndex(e),p=this.pointers[h];return r=!1!==r&&(r||/(down|start)$/i.test(n.type)),p?p.pointer=e:(p=new i(s,e,n,null,null),h=this.pointers.length,this.pointers.push(p)),t.pointer.setCoords(this.coords.cur,this.pointers.map(t=>t.pointer),this._now()),t.pointer.setCoordDeltas(this.coords.delta,this.coords.prev,this.coords.cur),r&&(this.pointerIsDown=!0,p.downTime=this.coords.cur.timeStamp,p.downTarget=o,t.pointer.pointerExtend(this.downPointer,e),this.interacting()||(t.pointer.copyCoords(this.coords.start,this.coords.cur),t.pointer.copyCoords(this.coords.prev,this.coords.cur),this.downEvent=n,this.pointerWasMoved=!1)),this._updateLatestPointer(e,n,o),this._scopeFire("interactions:update-pointer",{pointer:e,event:n,eventTarget:o,down:r,pointerInfo:p,pointerIndex:h,interaction:this}),h}removePointer(t,e){const i=this.getPointerIndex(t);if(-1===i)return;const n=this.pointers[i];this._scopeFire("interactions:remove-pointer",{pointer:t,event:e,eventTarget:null,pointerIndex:i,pointerInfo:n,interaction:this}),this.pointers.splice(i,1)}_updateLatestPointer(t,e,i){this._latestPointer.pointer=t,this._latestPointer.event=e,this._latestPointer.eventTarget=i}destroy(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}_createPreparedEvent(t,i,n,o){return new e(this,t,this.prepared.name,i,this.element,n,o)}_fireEvent(t){this.interactable.fire(t),(!this.prevEvent||t.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=t)}_doPhase(e){const{event:i,phase:n,preEnd:o,type:r}=e,{rect:s}=this;if(s&&"move"===n&&(t.rect.addEdges(this.edges,s,this.coords.delta[this.interactable.options.deltaSource]),s.width=s.right-s.left,s.height=s.bottom-s.top),!1===this._scopeFire(`interactions:before-action-${n}`,e))return!1;const h=e.iEvent=this._createPreparedEvent(i,n,o,r);return this._scopeFire(`interactions:action-${n}`,e),"start"===n&&(this.prevEvent=h),this._fireEvent(h),this._scopeFire(`interactions:after-action-${n}`,e),!0}_now(){return Date.now()}}export default Interaction;export{i as PointerInfo};
import t from"./InteractEvent.min.js";import e from"./PointerInfo.min.js";import*as i from"../utils/index.min.js";export let _ProxyValues;(t=>{t.interactable="",t.element="",t.prepared="",t.pointerIsDown="",t.pointerWasMoved="",t._proxy=""})(_ProxyValues||(_ProxyValues={}));export let _ProxyMethods;(t=>{t.start="",t.move="",t.end="",t.stop="",t.interacting=""})(_ProxyMethods||(_ProxyMethods={}));let n=0;export class Interaction{get pointerMoveTolerance(){return 1}constructor({pointerType:t,scopeFire:e}){this.interactable=null,this.element=null,this.rect=void 0,this._rects=void 0,this.edges=void 0,this._scopeFire=void 0,this.prepared={name:null,axis:null,edges:null},this.pointerType=void 0,this.pointers=[],this.downEvent=null,this.downPointer={},this._latestPointer={pointer:null,event:null,eventTarget:null},this.prevEvent=null,this.pointerIsDown=!1,this.pointerWasMoved=!1,this._interacting=!1,this._ending=!1,this._stopped=!0,this._proxy=null,this.simulation=null,this.doMove=i.warnOnce((function(t){this.move(t)}),"The interaction.doMove() method has been renamed to interaction.move()"),this.coords={start:i.pointer.newCoords(),prev:i.pointer.newCoords(),cur:i.pointer.newCoords(),delta:i.pointer.newCoords(),velocity:i.pointer.newCoords()},this._id=n++,this._scopeFire=e,this.pointerType=t;const o=this;this._proxy={};for(const t in _ProxyValues)Object.defineProperty(this._proxy,t,{get:()=>o[t]});for(const t in _ProxyMethods)Object.defineProperty(this._proxy,t,{value(...e){return o[t](...e)}});this._scopeFire("interactions:new",{interaction:this})}pointerDown(t,e,i){const n=this.updatePointer(t,e,i,!0),o=this.pointers[n];this._scopeFire("interactions:down",{pointer:t,event:e,eventTarget:i,pointerIndex:n,pointerInfo:o,type:"down",interaction:this})}start(t,e,n){return!(this.interacting()||!this.pointerIsDown||this.pointers.length<("gesture"===t.name?2:1)||!e.options[t.name].enabled)&&(i.copyAction(this.prepared,t),this.interactable=e,this.element=n,this.rect=e.getRect(n),this.edges=this.prepared.edges?i.extend({},this.prepared.edges):{left:!0,right:!0,top:!0,bottom:!0},this._stopped=!1,this._interacting=this._doPhase({interaction:this,event:this.downEvent,phase:"start"})&&!this._stopped,this._interacting)}pointerMove(t,e,n){this.simulation||this.modification&&this.modification.endResult||this.updatePointer(t,e,n,!1);const o=this.coords.cur.page.x===this.coords.prev.page.x&&this.coords.cur.page.y===this.coords.prev.page.y&&this.coords.cur.client.x===this.coords.prev.client.x&&this.coords.cur.client.y===this.coords.prev.client.y;let r,s;this.pointerIsDown&&!this.pointerWasMoved&&(r=this.coords.cur.client.x-this.coords.start.client.x,s=this.coords.cur.client.y-this.coords.start.client.y,this.pointerWasMoved=i.hypot(r,s)>this.pointerMoveTolerance);const h=this.getPointerIndex(t),p={pointer:t,pointerIndex:h,pointerInfo:this.pointers[h],event:e,type:"move",eventTarget:n,dx:r,dy:s,duplicate:o,interaction:this};o||i.pointer.setCoordVelocity(this.coords.velocity,this.coords.delta),this._scopeFire("interactions:move",p),o||this.simulation||(this.interacting()&&(p.type=null,this.move(p)),this.pointerWasMoved&&i.pointer.copyCoords(this.coords.prev,this.coords.cur))}move(t){t&&t.event||i.pointer.setZeroCoords(this.coords.delta),(t=i.extend({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},t||{})).phase="move",this._doPhase(t)}pointerUp(t,e,i,n){let o=this.getPointerIndex(t);-1===o&&(o=this.updatePointer(t,e,i,!1));const r=/cancel$/i.test(e.type)?"cancel":"up";this._scopeFire("interactions:"+r,{pointer:t,pointerIndex:o,pointerInfo:this.pointers[o],event:e,eventTarget:i,type:r,curEventTarget:n,interaction:this}),this.simulation||this.end(e),this.pointerIsDown=!1,this.removePointer(t,e)}documentBlur(t){this.end(t),this._scopeFire("interactions:blur",{event:t,type:"blur",interaction:this})}end(t){let e;this._ending=!0,t=t||this._latestPointer.event,this.interacting()&&(e=this._doPhase({event:t,interaction:this,phase:"end"})),this._ending=!1,!0===e&&this.stop()}currentAction(){return this._interacting?this.prepared.name:null}interacting(){return this._interacting}stop(){this._scopeFire("interactions:stop",{interaction:this}),this.interactable=this.element=null,this._interacting=!1,this._stopped=!0,this.prepared.name=this.prevEvent=null}getPointerIndex(t){const e=i.pointer.getPointerId(t);return"mouse"===this.pointerType||"pen"===this.pointerType?this.pointers.length-1:i.arr.findIndex(this.pointers,t=>t.id===e)}getPointerInfo(t){return this.pointers[this.getPointerIndex(t)]}updatePointer(t,n,o,r){const s=i.pointer.getPointerId(t);let h=this.getPointerIndex(t),p=this.pointers[h];return r=!1!==r&&(r||/(down|start)$/i.test(n.type)),p?p.pointer=t:(p=new e(s,t,n,null,null),h=this.pointers.length,this.pointers.push(p)),i.pointer.setCoords(this.coords.cur,this.pointers.map(t=>t.pointer),this._now()),i.pointer.setCoordDeltas(this.coords.delta,this.coords.prev,this.coords.cur),r&&(this.pointerIsDown=!0,p.downTime=this.coords.cur.timeStamp,p.downTarget=o,i.pointer.pointerExtend(this.downPointer,t),this.interacting()||(i.pointer.copyCoords(this.coords.start,this.coords.cur),i.pointer.copyCoords(this.coords.prev,this.coords.cur),this.downEvent=n,this.pointerWasMoved=!1)),this._updateLatestPointer(t,n,o),this._scopeFire("interactions:update-pointer",{pointer:t,event:n,eventTarget:o,down:r,pointerInfo:p,pointerIndex:h,interaction:this}),h}removePointer(t,e){const i=this.getPointerIndex(t);if(-1===i)return;const n=this.pointers[i];this._scopeFire("interactions:remove-pointer",{pointer:t,event:e,eventTarget:null,pointerIndex:i,pointerInfo:n,interaction:this}),this.pointers.splice(i,1)}_updateLatestPointer(t,e,i){this._latestPointer.pointer=t,this._latestPointer.event=e,this._latestPointer.eventTarget=i}destroy(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}_createPreparedEvent(e,i,n,o){return new t(this,e,this.prepared.name,i,this.element,n,o)}_fireEvent(t){this.interactable.fire(t),(!this.prevEvent||t.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=t)}_doPhase(t){const{event:e,phase:n,preEnd:o,type:r}=t,{rect:s}=this;if(s&&"move"===n&&(i.rect.addEdges(this.edges,s,this.coords.delta[this.interactable.options.deltaSource]),s.width=s.right-s.left,s.height=s.bottom-s.top),!1===this._scopeFire("interactions:before-action-"+n,t))return!1;const h=t.iEvent=this._createPreparedEvent(e,n,o,r);return this._scopeFire("interactions:action-"+n,t),"start"===n&&(this.prevEvent=h),this._fireEvent(h),this._scopeFire("interactions:after-action-"+n,t),!0}_now(){return Date.now()}}export default Interaction;export{e as PointerInfo};
//# sourceMappingURL=Interaction.min.js.map

@@ -13,7 +13,7 @@ export interface SearchDetails {

search(details: SearchDetails): any;
simulationResume({ pointerType, eventType, eventTarget, scope }: SearchDetails): import("@interactjs/core/Interaction").Interaction<"resize" | "drag" | "drop" | "gesture">;
simulationResume({ pointerType, eventType, eventTarget, scope }: SearchDetails): import("@interactjs/core/Interaction").Interaction<"drag" | "drop" | "gesture" | "resize">;
mouseOrPen({ pointerId, pointerType, eventType, scope }: SearchDetails): any;
hasPointer({ pointerId, scope }: SearchDetails): import("@interactjs/core/Interaction").Interaction<"resize" | "drag" | "drop" | "gesture">;
idle({ pointerType, scope }: SearchDetails): import("@interactjs/core/Interaction").Interaction<"resize" | "drag" | "drop" | "gesture">;
hasPointer({ pointerId, scope }: SearchDetails): import("@interactjs/core/Interaction").Interaction<"drag" | "drop" | "gesture" | "resize">;
idle({ pointerType, scope }: SearchDetails): import("@interactjs/core/Interaction").Interaction<"drag" | "drop" | "gesture" | "resize">;
};
export default finder;

@@ -0,1 +1,5 @@

import InteractionBase from "./Interaction.js";
import interactablePreventDefault from "./interactablePreventDefault.js";
import finder from "./interactionFinder.js";
import Scope from "./scope.js";
import browser from "../utils/browser.js";

@@ -5,6 +9,2 @@ import domObjects from "../utils/domObjects.js";

import * as pointerUtils from "../utils/pointerUtils.js";
import InteractionBase from "./Interaction.js";
import interactablePreventDefault from "./interactablePreventDefault.js";
import finder from "./interactionFinder.js";
import Scope from "./scope.js";
const methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer', 'windowBlur'];

@@ -11,0 +11,0 @@

@@ -1,2 +0,2 @@

import e from"../utils/browser.min.js";import t from"../utils/domObjects.min.js";import{nodeContains as n}from"../utils/domUtils.min.js";import*as o from"../utils/pointerUtils.min.js";import r from"./Interaction.min.js";import i from"./interactablePreventDefault.min.js";import s from"./interactionFinder.min.js";import p from"./scope.min.js";const c=["pointerDown","pointerMove","pointerUp","updatePointer","removePointer","windowBlur"];function a(t,n){return r=>{const i=n.interactions.list,s=o.getPointerType(r),[p,c]=o.getEventTargets(r),a=[];if(/^touch/.test(r.type)){n.prevTouchTime=n.now();for(const e of r.changedTouches){const t=e,i={pointer:t,pointerId:o.getPointerId(t),pointerType:s,eventType:r.type,eventTarget:p,curEventTarget:c,scope:n},u=l(i);a.push([i.pointer,i.eventTarget,i.curEventTarget,u])}}else{let t=!1;if(!e.supportsPointerEvent&&/mouse/.test(r.type)){for(let e=0;e<i.length&&!t;e++)t="mouse"!==i[e].pointerType&&i[e].pointerIsDown;t=t||n.now()-n.prevTouchTime<500||0===r.timeStamp}if(!t){const e={pointer:r,pointerId:o.getPointerId(r),pointerType:s,eventType:r.type,curEventTarget:c,eventTarget:p,scope:n},t=l(e);a.push([e.pointer,e.eventTarget,e.curEventTarget,t])}}for(const[e,n,o,i]of a)i[t](e,r,n,o)}}function l(e){const{pointerType:t,scope:n}=e,o={interaction:s.search(e),searchDetails:e};return n.fire("interactions:find",o),o.interaction||n.interactions.new({pointerType:t})}function u({doc:e,scope:t,options:n},o){const{interactions:{docEvents:r},events:i}=t,s=i[o];t.browser.isIOS&&!n.events&&(n.events={passive:!1});for(const t in i.delegatedEvents)s(e,t,i.delegateListener),s(e,t,i.delegateUseCapture,!0);const p=n&&n.events;for(const{type:t,listener:n}of r)s(e,t,n,p)}const m={id:"core/interactions",install(o){const s={};for(const e of c)s[e]=a(e,o);const p=e.pEventTypes;let l;function u(){for(const e of o.interactions.list)if(e.pointerIsDown&&"touch"===e.pointerType&&!e._interacting)for(const t of e.pointers)o.documents.some(({doc:e})=>n(e,t.downTarget))||e.removePointer(t.pointer,t.event)}l=t.PointerEvent?[{type:p.down,listener:u},{type:p.down,listener:s.pointerDown},{type:p.move,listener:s.pointerMove},{type:p.up,listener:s.pointerUp},{type:p.cancel,listener:s.pointerUp}]:[{type:"mousedown",listener:s.pointerDown},{type:"mousemove",listener:s.pointerMove},{type:"mouseup",listener:s.pointerUp},{type:"touchstart",listener:u},{type:"touchstart",listener:s.pointerDown},{type:"touchmove",listener:s.pointerMove},{type:"touchend",listener:s.pointerUp},{type:"touchcancel",listener:s.pointerUp}],l.push({type:"blur",listener(e){for(const t of o.interactions.list)t.documentBlur(e)}}),o.prevTouchTime=0,o.Interaction=class extends r{get pointerMoveTolerance(){return o.interactions.pointerMoveTolerance}set pointerMoveTolerance(e){o.interactions.pointerMoveTolerance=e}_now(){return o.now()}},o.interactions={list:[],new(e){e.scopeFire=(e,t)=>o.fire(e,t);const t=new o.Interaction(e);return o.interactions.list.push(t),t},listeners:s,docEvents:l,pointerMoveTolerance:1},o.usePlugin(i)},listeners:{"scope:add-document"(e){return u(e,"add")},"scope:remove-document"(e){return u(e,"remove")},"interactable:unset"({interactable:e},t){for(let n=t.interactions.list.length-1;n>=0;n--){const o=t.interactions.list[n];o.interactable===e&&(o.stop(),t.fire("interactions:destroy",{interaction:o}),o.destroy(),t.interactions.list.length>2&&t.interactions.list.splice(n,1))}}},onDocSignal:u,doOnInteractions:a,methodNames:c};export default m;
import e from"./Interaction.min.js";import t from"./interactablePreventDefault.min.js";import n from"./interactionFinder.min.js";import o from"./scope.min.js";import r from"../utils/browser.min.js";import i from"../utils/domObjects.min.js";import{nodeContains as s}from"../utils/domUtils.min.js";import*as p from"../utils/pointerUtils.min.js";const c=["pointerDown","pointerMove","pointerUp","updatePointer","removePointer","windowBlur"];function a(e,t){return n=>{const o=t.interactions.list,i=p.getPointerType(n),[s,c]=p.getEventTargets(n),a=[];if(/^touch/.test(n.type)){t.prevTouchTime=t.now();for(const e of n.changedTouches){const o=e,r={pointer:o,pointerId:p.getPointerId(o),pointerType:i,eventType:n.type,eventTarget:s,curEventTarget:c,scope:t},u=l(r);a.push([r.pointer,r.eventTarget,r.curEventTarget,u])}}else{let e=!1;if(!r.supportsPointerEvent&&/mouse/.test(n.type)){for(let t=0;t<o.length&&!e;t++)e="mouse"!==o[t].pointerType&&o[t].pointerIsDown;e=e||t.now()-t.prevTouchTime<500||0===n.timeStamp}if(!e){const e={pointer:n,pointerId:p.getPointerId(n),pointerType:i,eventType:n.type,curEventTarget:c,eventTarget:s,scope:t},o=l(e);a.push([e.pointer,e.eventTarget,e.curEventTarget,o])}}for(const[t,o,r,i]of a)i[e](t,n,o,r)}}function l(e){const{pointerType:t,scope:o}=e,r={interaction:n.search(e),searchDetails:e};return o.fire("interactions:find",r),r.interaction||o.interactions.new({pointerType:t})}function u({doc:e,scope:t,options:n},o){const{interactions:{docEvents:r},events:i}=t,s=i[o];t.browser.isIOS&&!n.events&&(n.events={passive:!1});for(const t in i.delegatedEvents)s(e,t,i.delegateListener),s(e,t,i.delegateUseCapture,!0);const p=n&&n.events;for(const{type:t,listener:n}of r)s(e,t,n,p)}const m={id:"core/interactions",install(n){const o={};for(const e of c)o[e]=a(e,n);const p=r.pEventTypes;let l;function u(){for(const e of n.interactions.list)if(e.pointerIsDown&&"touch"===e.pointerType&&!e._interacting)for(const t of e.pointers)n.documents.some(({doc:e})=>s(e,t.downTarget))||e.removePointer(t.pointer,t.event)}l=i.PointerEvent?[{type:p.down,listener:u},{type:p.down,listener:o.pointerDown},{type:p.move,listener:o.pointerMove},{type:p.up,listener:o.pointerUp},{type:p.cancel,listener:o.pointerUp}]:[{type:"mousedown",listener:o.pointerDown},{type:"mousemove",listener:o.pointerMove},{type:"mouseup",listener:o.pointerUp},{type:"touchstart",listener:u},{type:"touchstart",listener:o.pointerDown},{type:"touchmove",listener:o.pointerMove},{type:"touchend",listener:o.pointerUp},{type:"touchcancel",listener:o.pointerUp}],l.push({type:"blur",listener(e){for(const t of n.interactions.list)t.documentBlur(e)}}),n.prevTouchTime=0,n.Interaction=class extends e{get pointerMoveTolerance(){return n.interactions.pointerMoveTolerance}set pointerMoveTolerance(e){n.interactions.pointerMoveTolerance=e}_now(){return n.now()}},n.interactions={list:[],new(e){e.scopeFire=(e,t)=>n.fire(e,t);const t=new n.Interaction(e);return n.interactions.list.push(t),t},listeners:o,docEvents:l,pointerMoveTolerance:1},n.usePlugin(t)},listeners:{"scope:add-document"(e){return u(e,"add")},"scope:remove-document"(e){return u(e,"remove")},"interactable:unset"({interactable:e},t){for(let n=t.interactions.list.length-1;n>=0;n--){const o=t.interactions.list[n];o.interactable===e&&(o.stop(),t.fire("interactions:destroy",{interaction:o}),o.destroy(),t.interactions.list.length>2&&t.interactions.list.splice(n,1))}}},onDocSignal:u,doOnInteractions:a,methodNames:c};export default m;
//# sourceMappingURL=interactions.min.js.map
/** @module interact */
import * as utils from '@interactjs/utils/index';
import Interactable from './Interactable';
import { Options } from './defaultOptions';
import * as utils from '@interactjs/utils/index';
export interface InteractStatic {

@@ -9,3 +9,2 @@ (target: Interact.Target, options?: Options): Interactable;

export declare class InteractStatic {
private scope;
getPointerAverage: typeof utils.pointer.pointerAverage;

@@ -23,2 +22,3 @@ getTouchBBox: typeof utils.pointer.touchBBox;

interact: InteractStatic;
scope: Interact.Scope;
constructor(scope: Interact.Scope);

@@ -25,0 +25,0 @@ /**

/** @module interact */
import { isNonNativeEvent } from "./scope.js";
import browser from "../utils/browser.js";
import * as utils from "../utils/index.js";
import { isNonNativeEvent } from "./scope.js";
export class InteractStatic {

@@ -9,3 +9,2 @@ // expose the functions used to calculate multi-touch properties

constructor(scope) {
this.scope = scope;
this.getPointerAverage = utils.pointer.pointerAverage;

@@ -21,4 +20,6 @@ this.getTouchBBox = utils.pointer.touchBBox;

this.dynamicDrop = void 0;
this.version = "1.9.9";
this.version = "1.9.10";
this.interact = void 0;
this.scope = void 0;
this.scope = scope;
const {

@@ -25,0 +26,0 @@ prototype

@@ -1,2 +0,2 @@

import t from"../utils/browser.min.js";import*as e from"../utils/index.min.js";import{isNonNativeEvent as s}from"./scope.min.js";export class InteractStatic{constructor(t){this.scope=t,this.getPointerAverage=e.pointer.pointerAverage,this.getTouchBBox=e.pointer.touchBBox,this.getTouchDistance=e.pointer.touchDistance,this.getTouchAngle=e.pointer.touchAngle,this.getElementRect=e.dom.getElementRect,this.getElementClientRect=e.dom.getElementClientRect,this.matchesSelector=e.dom.matchesSelector,this.closest=e.dom.closest,this.globalEvents={},this.dynamicDrop=void 0,this.version="1.9.9",this.interact=void 0;const{prototype:s}=this.constructor,o=(e,s)=>{let o=t.interactables.get(e,s);return o||(o=t.interactables.new(e,s),o.events.global=this.globalEvents),o};for(const t of Object.getOwnPropertyNames(this.constructor.prototype))o[t]=s[t];return e.extend(o,this),o.constructor=this.constructor,this.interact=o,o}use(t,e){return this.scope.usePlugin(t,e),this}isSet(t,e){return!!this.scope.interactables.get(t,e&&e.context)}on(t,o,i){if(e.is.string(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),e.is.array(t)){for(const e of t)this.on(e,o,i);return this}if(e.is.object(t)){for(const e in t)this.on(e,t[e],o);return this}return s(t,this.scope.actions)?this.globalEvents[t]?this.globalEvents[t].push(o):this.globalEvents[t]=[o]:this.scope.events.add(this.scope.document,t,o,{options:i}),this}off(t,o,i){if(e.is.string(t)&&-1!==t.search(" ")&&(t=t.trim().split(/ +/)),e.is.array(t)){for(const e of t)this.off(e,o,i);return this}if(e.is.object(t)){for(const e in t)this.off(e,t[e],o);return this}if(s(t,this.scope.actions)){let e;t in this.globalEvents&&-1!==(e=this.globalEvents[t].indexOf(o))&&this.globalEvents[t].splice(e,1)}else this.scope.events.remove(this.scope.document,t,o,i);return this}debug(){return this.scope}supportsTouch(){return t.supportsTouch}supportsPointerEvent(){return t.supportsPointerEvent}stop(){for(const t of this.scope.interactions.list)t.stop();return this}pointerMoveTolerance(t){return e.is.number(t)?(this.scope.interactions.pointerMoveTolerance=t,this):this.scope.interactions.pointerMoveTolerance}addDocument(t,e){this.scope.addDocument(t,e)}removeDocument(t){this.scope.removeDocument(t)}}export default InteractStatic;
import{isNonNativeEvent as t}from"./scope.min.js";import e from"../utils/browser.min.js";import*as s from"../utils/index.min.js";export class InteractStatic{constructor(t){this.getPointerAverage=s.pointer.pointerAverage,this.getTouchBBox=s.pointer.touchBBox,this.getTouchDistance=s.pointer.touchDistance,this.getTouchAngle=s.pointer.touchAngle,this.getElementRect=s.dom.getElementRect,this.getElementClientRect=s.dom.getElementClientRect,this.matchesSelector=s.dom.matchesSelector,this.closest=s.dom.closest,this.globalEvents={},this.dynamicDrop=void 0,this.version="1.9.10",this.interact=void 0,this.scope=void 0,this.scope=t;const{prototype:e}=this.constructor,o=(e,s)=>{let o=t.interactables.get(e,s);return o||(o=t.interactables.new(e,s),o.events.global=this.globalEvents),o};for(const t of Object.getOwnPropertyNames(this.constructor.prototype))o[t]=e[t];return s.extend(o,this),o.constructor=this.constructor,this.interact=o,o}use(t,e){return this.scope.usePlugin(t,e),this}isSet(t,e){return!!this.scope.interactables.get(t,e&&e.context)}on(e,o,i){if(s.is.string(e)&&-1!==e.search(" ")&&(e=e.trim().split(/ +/)),s.is.array(e)){for(const t of e)this.on(t,o,i);return this}if(s.is.object(e)){for(const t in e)this.on(t,e[t],o);return this}return t(e,this.scope.actions)?this.globalEvents[e]?this.globalEvents[e].push(o):this.globalEvents[e]=[o]:this.scope.events.add(this.scope.document,e,o,{options:i}),this}off(e,o,i){if(s.is.string(e)&&-1!==e.search(" ")&&(e=e.trim().split(/ +/)),s.is.array(e)){for(const t of e)this.off(t,o,i);return this}if(s.is.object(e)){for(const t in e)this.off(t,e[t],o);return this}if(t(e,this.scope.actions)){let t;e in this.globalEvents&&-1!==(t=this.globalEvents[e].indexOf(o))&&this.globalEvents[e].splice(t,1)}else this.scope.events.remove(this.scope.document,e,o,i);return this}debug(){return this.scope}supportsTouch(){return e.supportsTouch}supportsPointerEvent(){return e.supportsPointerEvent}stop(){for(const t of this.scope.interactions.list)t.stop();return this}pointerMoveTolerance(t){return s.is.number(t)?(this.scope.interactions.pointerMoveTolerance=t,this):this.scope.interactions.pointerMoveTolerance}addDocument(t,e){this.scope.addDocument(t,e)}removeDocument(t){this.scope.removeDocument(t)}}export default InteractStatic;
//# sourceMappingURL=InteractStatic.min.js.map
{
"name": "@interactjs/core",
"version": "1.9.9",
"version": "1.9.10",
"license": "MIT",
"peerDependencies": {
"@interactjs/dev-tools": "1.9.9",
"@interactjs/utils": "1.9.9"
"@interactjs/utils": "1.9.10"
},
"devDependencies": {
"@interactjs/_dev": "1.9.9",
"@interactjs/actions": "1.9.9",
"@interactjs/auto-start": "1.9.9"
"@interactjs/actions": "1.9.10",
"@interactjs/auto-start": "1.9.10"
},

@@ -17,3 +15,3 @@ "publishConfig": {

},
"gitHead": "fa9935ec"
"gitHead": "0a55a5d5"
}
/* eslint-disable @typescript-eslint/no-parameter-properties */
export class PointerInfo {
constructor(id, pointer, event, downTime, downTarget) {
this.id = void 0;
this.pointer = void 0;
this.event = void 0;
this.downTime = void 0;
this.downTarget = void 0;
this.id = id;

@@ -5,0 +10,0 @@ this.pointer = pointer;

@@ -1,2 +0,2 @@

export class PointerInfo{constructor(t,o,e,i,n){this.id=t,this.pointer=o,this.event=e,this.downTime=i,this.downTarget=n}}export default PointerInfo;
export class PointerInfo{constructor(i,t,o,e,n){this.id=void 0,this.pointer=void 0,this.event=void 0,this.downTime=void 0,this.downTarget=void 0,this.id=i,this.pointer=t,this.event=o,this.downTime=e,this.downTarget=n}}export default PointerInfo;
//# sourceMappingURL=PointerInfo.min.js.map

@@ -1,2 +0,1 @@

import * as utils from '@interactjs/utils/index';
import Eventable from './Eventable';

@@ -7,2 +6,3 @@ import InteractEvent, { PhaseMap } from './InteractEvent';

import InteractableSet from './InteractableSet';
import * as utils from '@interactjs/utils/index';
export interface SignalArgs {

@@ -9,0 +9,0 @@ 'scope:add-document': DocSignalArg;

@@ -1,3 +0,1 @@

import domObjects from "../utils/domObjects.js";
import * as utils from "../utils/index.js";
import Eventable from "./Eventable.js";

@@ -11,2 +9,4 @@ import InteractEvent from "./InteractEvent.js";

import interactions from "./interactions.js";
import domObjects from "../utils/domObjects.js";
import * as utils from "../utils/index.js";
const {

@@ -110,2 +110,6 @@ win,

usePlugin(plugin, options) {
if (!this.isInitialized) {
return this;
}
if (this.pluginIsInstalled(plugin)) {

@@ -112,0 +116,0 @@ return this;

@@ -1,2 +0,2 @@

import t from"../utils/domObjects.min.js";import*as i from"../utils/index.min.js";import s from"./Eventable.min.js";import e from"./InteractEvent.min.js";import n from"./InteractStatic.min.js";import o from"./Interactable.min.js";import r from"./InteractableSet.min.js";import a from"./defaultOptions.min.js";import d from"./events.min.js";import h from"./interactions.min.js";const{win:l,browser:c,raf:u}=i;export default class p{constructor(){this.id=`__interact_scope_${Math.floor(100*Math.random())}`,this.isInitialized=!1,this.listenerMaps=[],this.browser=c,this.utils=i,this.defaults=i.clone(a),this.Eventable=s,this.actions={map:{},phases:{start:!0,move:!0,end:!0},methodDict:{},phaselessTypes:{}},this.interactStatic=new n(this),this.InteractEvent=e,this.Interactable=void 0,this.interactables=new r(this),this._win=void 0,this.document=void 0,this.window=void 0,this.documents=[],this._plugins={list:[],map:{}},this.onWindowUnload=t=>this.removeDocument(t.target);const t=this;this.Interactable=class extends o{get _defaults(){return t.defaults}set(i){return super.set(i),t.fire("interactable:set",{options:i,interactable:this}),this}unset(){super.unset(),t.interactables.list.splice(t.interactables.list.indexOf(this),1),t.fire("interactable:unset",{interactable:this})}}}addListeners(t,i){this.listenerMaps.push({id:i,map:t})}fire(t,i){for(const{map:{[t]:s}}of this.listenerMaps)if(s&&!1===s(i,this,t))return!1}init(t){return this.isInitialized?this:initScope(this,t)}pluginIsInstalled(t){return this._plugins.map[t.id]||-1!==this._plugins.list.indexOf(t)}usePlugin(t,i){if(this.pluginIsInstalled(t))return this;if(t.id&&(this._plugins.map[t.id]=t),this._plugins.list.push(t),t.install&&t.install(this,i),t.listeners&&t.before){let i=0;const s=this.listenerMaps.length,e=t.before.reduce((t,i)=>(t[i]=!0,t),{});for(;i<s;i++){if(e[this.listenerMaps[i].id])break}this.listenerMaps.splice(i,0,{id:t.id,map:t.listeners})}else t.listeners&&this.listenerMaps.push({id:t.id,map:t.listeners});return this}addDocument(t,s){if(-1!==this.getDocIndex(t))return!1;const e=l.getWindow(t);s=s?i.extend({},s):{},this.documents.push({doc:t,options:s}),this.events.documents.push(t),t!==this.document&&this.events.add(e,"unload",this.onWindowUnload),this.fire("scope:add-document",{doc:t,window:e,scope:this,options:s})}removeDocument(t){const i=this.getDocIndex(t),s=l.getWindow(t),e=this.documents[i].options;this.events.remove(s,"unload",this.onWindowUnload),this.documents.splice(i,1),this.events.documents.splice(i,1),this.fire("scope:remove-document",{doc:t,window:s,scope:this,options:e})}getDocIndex(t){for(let i=0;i<this.documents.length;i++)if(this.documents[i].doc===t)return i;return-1}getDocOptions(t){const i=this.getDocIndex(t);return-1===i?null:this.documents[i].options}now(){return(this.window.Date||Date).now()}}export function isNonNativeEvent(t,i){if(i.phaselessTypes[t])return!0;for(const s in i.map)if(0===t.indexOf(s)&&t.substr(s.length)in i.phases)return!0;return!1}export function initScope(i,s){return i.isInitialized=!0,l.init(s),t.init(s),c.init(s),u.init(s),i.window=s,i.document=s.document,i.usePlugin(h),i.usePlugin(d),i}export{p as Scope};
import t from"./Eventable.min.js";import i from"./InteractEvent.min.js";import s from"./InteractStatic.min.js";import e from"./Interactable.min.js";import n from"./InteractableSet.min.js";import o from"./defaultOptions.min.js";import r from"./events.min.js";import a from"./interactions.min.js";import h from"../utils/domObjects.min.js";import*as d from"../utils/index.min.js";const{win:l,browser:c,raf:u}=d;export default class p{constructor(){this.id="__interact_scope_"+Math.floor(100*Math.random()),this.isInitialized=!1,this.listenerMaps=[],this.browser=c,this.utils=d,this.defaults=d.clone(o),this.Eventable=t,this.actions={map:{},phases:{start:!0,move:!0,end:!0},methodDict:{},phaselessTypes:{}},this.interactStatic=new s(this),this.InteractEvent=i,this.Interactable=void 0,this.interactables=new n(this),this._win=void 0,this.document=void 0,this.window=void 0,this.documents=[],this._plugins={list:[],map:{}},this.onWindowUnload=t=>this.removeDocument(t.target);const r=this;this.Interactable=class extends e{get _defaults(){return r.defaults}set(t){return super.set(t),r.fire("interactable:set",{options:t,interactable:this}),this}unset(){super.unset(),r.interactables.list.splice(r.interactables.list.indexOf(this),1),r.fire("interactable:unset",{interactable:this})}}}addListeners(t,i){this.listenerMaps.push({id:i,map:t})}fire(t,i){for(const{map:{[t]:s}}of this.listenerMaps)if(s&&!1===s(i,this,t))return!1}init(t){return this.isInitialized?this:initScope(this,t)}pluginIsInstalled(t){return this._plugins.map[t.id]||-1!==this._plugins.list.indexOf(t)}usePlugin(t,i){if(!this.isInitialized)return this;if(this.pluginIsInstalled(t))return this;if(t.id&&(this._plugins.map[t.id]=t),this._plugins.list.push(t),t.install&&t.install(this,i),t.listeners&&t.before){let i=0;const s=this.listenerMaps.length,e=t.before.reduce((t,i)=>(t[i]=!0,t),{});for(;i<s;i++){if(e[this.listenerMaps[i].id])break}this.listenerMaps.splice(i,0,{id:t.id,map:t.listeners})}else t.listeners&&this.listenerMaps.push({id:t.id,map:t.listeners});return this}addDocument(t,i){if(-1!==this.getDocIndex(t))return!1;const s=l.getWindow(t);i=i?d.extend({},i):{},this.documents.push({doc:t,options:i}),this.events.documents.push(t),t!==this.document&&this.events.add(s,"unload",this.onWindowUnload),this.fire("scope:add-document",{doc:t,window:s,scope:this,options:i})}removeDocument(t){const i=this.getDocIndex(t),s=l.getWindow(t),e=this.documents[i].options;this.events.remove(s,"unload",this.onWindowUnload),this.documents.splice(i,1),this.events.documents.splice(i,1),this.fire("scope:remove-document",{doc:t,window:s,scope:this,options:e})}getDocIndex(t){for(let i=0;i<this.documents.length;i++)if(this.documents[i].doc===t)return i;return-1}getDocOptions(t){const i=this.getDocIndex(t);return-1===i?null:this.documents[i].options}now(){return(this.window.Date||Date).now()}}export function isNonNativeEvent(t,i){if(i.phaselessTypes[t])return!0;for(const s in i.map)if(0===t.indexOf(s)&&t.substr(s.length)in i.phases)return!0;return!1}export function initScope(t,i){return t.isInitialized=!0,l.init(i),h.init(i),c.init(i),u.init(i),t.window=i,t.document=i.document,t.usePlugin(a),t.usePlugin(r),t}export{p as Scope};
//# sourceMappingURL=scope.min.js.map

@@ -61,3 +61,3 @@ import * as utils from '@interactjs/utils/index';

};
export declare function newPointer(n?: number): import("@interactjs/types/types").PointerType;
export declare function newPointer(n?: number): import("../../types/types").PointerType;
export declare function mockScope(options?: any): import("@interactjs/core/scope").default;

@@ -73,3 +73,3 @@ export declare function getProps<T extends {

scope: import("@interactjs/core/scope").default;
interaction: import("@interactjs/core/Interaction").Interaction<"resize" | "drag" | "drop" | "gesture">;
interaction: import("@interactjs/core/Interaction").Interaction<"drag" | "drop" | "gesture" | "resize">;
target: T;

@@ -108,3 +108,3 @@ interactable: import("@interactjs/core/Interactable").Interactable;

preventDefault(): void;
} & MouseEvent & PointerEvent) | ({
} & MouseEvent & TouchEvent) | ({
coords: utils.pointer.MockCoords;

@@ -124,3 +124,3 @@ readonly page: any;

preventDefault(): void;
} & MouseEvent & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
} & MouseEvent & PointerEvent) | ({
coords: utils.pointer.MockCoords;

@@ -140,3 +140,3 @@ readonly page: any;

preventDefault(): void;
} & MouseEvent & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow">) | ({
} & MouseEvent & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
coords: utils.pointer.MockCoords;

@@ -156,3 +156,3 @@ readonly page: any;

preventDefault(): void;
} & MouseEvent & TouchEvent) | ({
} & MouseEvent & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow">) | ({
coords: utils.pointer.MockCoords;

@@ -172,3 +172,3 @@ readonly page: any;

preventDefault(): void;
} & Touch & MouseEvent) | ({
} & PointerEvent & MouseEvent) | ({
coords: utils.pointer.MockCoords;

@@ -188,3 +188,3 @@ readonly page: any;

preventDefault(): void;
} & Touch & PointerEvent) | ({
} & PointerEvent & TouchEvent) | ({
coords: utils.pointer.MockCoords;

@@ -204,3 +204,3 @@ readonly page: any;

preventDefault(): void;
} & Touch & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
} & PointerEvent) | ({
coords: utils.pointer.MockCoords;

@@ -220,3 +220,3 @@ readonly page: any;

preventDefault(): void;
} & Touch & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow">) | ({
} & PointerEvent & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
coords: utils.pointer.MockCoords;

@@ -236,3 +236,3 @@ readonly page: any;

preventDefault(): void;
} & Touch & TouchEvent) | ({
} & PointerEvent & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow">) | ({
coords: utils.pointer.MockCoords;

@@ -252,3 +252,3 @@ readonly page: any;

preventDefault(): void;
} & PointerEvent & MouseEvent) | ({
} & import("@interactjs/pointer-events/PointerEvent").default<any> & MouseEvent) | ({
coords: utils.pointer.MockCoords;

@@ -268,3 +268,3 @@ readonly page: any;

preventDefault(): void;
} & PointerEvent) | ({
} & import("@interactjs/pointer-events/PointerEvent").default<any> & TouchEvent) | ({
coords: utils.pointer.MockCoords;

@@ -284,3 +284,3 @@ readonly page: any;

preventDefault(): void;
} & PointerEvent & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
} & import("@interactjs/pointer-events/PointerEvent").default<any> & PointerEvent) | ({
coords: utils.pointer.MockCoords;

@@ -300,3 +300,3 @@ readonly page: any;

preventDefault(): void;
} & PointerEvent & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow">) | ({
} & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
coords: utils.pointer.MockCoords;

@@ -316,3 +316,3 @@ readonly page: any;

preventDefault(): void;
} & PointerEvent & TouchEvent) | ({
} & import("@interactjs/pointer-events/PointerEvent").default<any> & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow">) | ({
coords: utils.pointer.MockCoords;

@@ -332,3 +332,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/pointer-events/PointerEvent").default<any> & MouseEvent) | ({
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow"> & MouseEvent) | ({
coords: utils.pointer.MockCoords;

@@ -348,3 +348,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/pointer-events/PointerEvent").default<any> & PointerEvent) | ({
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow"> & TouchEvent) | ({
coords: utils.pointer.MockCoords;

@@ -364,3 +364,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow"> & PointerEvent) | ({
coords: utils.pointer.MockCoords;

@@ -380,3 +380,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/pointer-events/PointerEvent").default<any> & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow">) | ({
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow"> & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
coords: utils.pointer.MockCoords;

@@ -396,3 +396,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/pointer-events/PointerEvent").default<any> & TouchEvent) | ({
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow">) | ({
coords: utils.pointer.MockCoords;

@@ -412,3 +412,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow"> & MouseEvent) | ({
} & Touch & MouseEvent) | ({
coords: utils.pointer.MockCoords;

@@ -428,3 +428,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow"> & PointerEvent) | ({
} & Touch & TouchEvent) | ({
coords: utils.pointer.MockCoords;

@@ -444,3 +444,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow"> & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
} & Touch & PointerEvent) | ({
coords: utils.pointer.MockCoords;

@@ -460,3 +460,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow">) | ({
} & Touch & import("@interactjs/pointer-events/PointerEvent").default<any>) | ({
coords: utils.pointer.MockCoords;

@@ -476,3 +476,3 @@ readonly page: any;

preventDefault(): void;
} & import("@interactjs/core/InteractEvent").InteractEvent<never, "end" | "resume" | "start" | "move" | "inertiastart" | "reflow"> & TouchEvent);
} & Touch & import("@interactjs/core/InteractEvent").InteractEvent<never, "start" | "move" | "end" | "resume" | "inertiastart" | "reflow">);
interact: import("@interactjs/core/InteractStatic").InteractStatic;

@@ -479,0 +479,0 @@ start: (action: import("@interactjs/core/Interaction").ActionProps<any>) => any;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc