UNPKG

vue-ts-responsive-grid-layout

Version:

Vue 3 Responsive & Dynamic Grid / Dashboard layout with drag, drop and resizable actions.

1 lines 113 kB
(function(pt,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],f):(pt=typeof globalThis<"u"?globalThis:pt||self,f(pt["vue-ts-responsive-grid-layout"]={},pt.Vue))})(this,function(pt,f){"use strict";var ws=Object.defineProperty;var Es=(pt,f,j)=>f in pt?ws(pt,f,{enumerable:!0,configurable:!0,writable:!0,value:j}):pt[f]=j;var m=(pt,f,j)=>Es(pt,typeof f!="symbol"?f+"":f,j);const j={init:Ni,document:null,DocumentFragment:null,SVGElement:null,SVGSVGElement:null,SVGElementInstance:null,Element:null,HTMLElement:null,Event:null,Touch:null,PointerEvent:null};function Yt(){}function Ni(t){const e=t;j.document=e.document,j.DocumentFragment=e.DocumentFragment||Yt,j.SVGElement=e.SVGElement||Yt,j.SVGSVGElement=e.SVGSVGElement||Yt,j.SVGElementInstance=e.SVGElementInstance||Yt,j.Element=e.Element||Yt,j.HTMLElement=e.HTMLElement||j.Element,j.Event=e.Event,j.Touch=e.Touch||Yt,j.PointerEvent=e.PointerEvent||e.MSPointerEvent}const bn=t=>!!(t&&t.Window)&&t instanceof t.Window;let yn,Pt;function xn(t){yn=t;const e=t.document.createTextNode("");e.ownerDocument!==t.document&&typeof t.wrap=="function"&&t.wrap(e)===e&&(t=t.wrap(t)),Pt=t}typeof window<"u"&&window&&xn(window);function kt(t){return bn(t)?t:(t.ownerDocument||t).defaultView||Pt.window}const ki=t=>t===Pt||bn(t),Li=t=>me(t)&&t.nodeType===11,me=t=>!!t&&typeof t=="object",wn=t=>typeof t=="function",v={window:ki,docFrag:Li,object:me,func:wn,number:t=>typeof t=="number",bool:t=>typeof t=="boolean",string:t=>typeof t=="string",element:t=>{if(!t||typeof t!="object")return!1;const e=kt(t)||Pt;return/object|function/.test(typeof Element)?t instanceof Element||t instanceof e.Element:t.nodeType===1&&typeof t.nodeName=="string"},plainObject:t=>me(t)&&!!t.constructor&&/function Object\b/.test(t.constructor.toString()),array:t=>me(t)&&typeof t.length<"u"&&wn(t.splice)},ot={init:Hi,supportsTouch:null,supportsPointerEvent:null,isIOS7:null,isIOS:null,isIe9:null,isOperaMobile:null,prefixedMatchesSelector:null,pEventTypes:null,wheelEvent:null};function Hi(t){const e=j.Element,n=t.navigator||{};ot.supportsTouch="ontouchstart"in t||v.func(t.DocumentTouch)&&j.document instanceof t.DocumentTouch,ot.supportsPointerEvent=n.pointerEnabled!==!1&&!!j.PointerEvent,ot.isIOS=/iP(hone|od|ad)/.test(n.platform),ot.isIOS7=/iP(hone|od|ad)/.test(n.platform)&&/OS 7[^\d]/.test(n.appVersion),ot.isIe9=/MSIE 9/.test(n.userAgent),ot.isOperaMobile=n.appName==="Opera"&&ot.supportsTouch&&/Presto/.test(n.userAgent),ot.prefixedMatchesSelector="matches"in e.prototype?"matches":"webkitMatchesSelector"in e.prototype?"webkitMatchesSelector":"mozMatchesSelector"in e.prototype?"mozMatchesSelector":"oMatchesSelector"in e.prototype?"oMatchesSelector":"msMatchesSelector",ot.pEventTypes=ot.supportsPointerEvent?j.PointerEvent===t.MSPointerEvent?{up:"MSPointerUp",down:"MSPointerDown",over:"mouseover",out:"mouseout",move:"MSPointerMove",cancel:"MSPointerCancel"}:{up:"pointerup",down:"pointerdown",over:"pointerover",out:"pointerout",move:"pointermove",cancel:"pointercancel"}:null,ot.wheelEvent=j.document&&"onmousewheel"in j.document?"mousewheel":"wheel"}const Bi=(t,e)=>t.indexOf(e)!==-1,En=(t,e)=>{for(const n of e)t.push(n);return t},Sn=t=>En([],t),ve=(t,e)=>{for(let n=0;n<t.length;n++)if(e(t[n],n,t))return n;return-1},Oe=(t,e)=>t[ve(t,e)];function jt(t){const e={};for(const n in t){const i=t[n];v.plainObject(i)?e[n]=jt(i):v.array(i)?e[n]=Sn(i):e[n]=i}return e}function z(t,e){for(const i in e)t[i]=e[i];return t}let In=0,Tt,Lt;function $i(t){if(Tt=t.requestAnimationFrame,Lt=t.cancelAnimationFrame,!Tt){const e=["ms","moz","webkit","o"];for(const n of e)Tt=t[`${n}RequestAnimationFrame`],Lt=t[`${n}CancelAnimationFrame`]||t[`${n}CancelRequestAnimationFrame`]}Tt=Tt&&Tt.bind(t),Lt=Lt&&Lt.bind(t),Tt||(Tt=e=>{const n=Date.now(),i=Math.max(0,16-(n-In)),o=t.setTimeout(()=>{e(n+i)},i);return In=n+i,o},Lt=e=>clearTimeout(e))}const Vt={request:t=>Tt(t),cancel:t=>Lt(t),init:$i};function qt(t,e,n){if(n=n||{},v.string(t)&&t.search(" ")!==-1&&(t=_n(t)),v.array(t))return t.reduce((i,o)=>z(i,qt(o,e,n)),n);if(v.object(t)&&(e=t,t=""),v.func(e))n[t]=n[t]||[],n[t].push(e);else if(v.array(e))for(const i of e)qt(t,i,n);else if(v.object(e))for(const i in e){const o=_n(i).map(s=>`${t}${s}`);qt(o,e[i],n)}return n}function _n(t){return t.trim().split(/ +/)}function Tn(t,e){for(const n of e){if(t.immediatePropagationStopped)break;n(t)}}class Dn{constructor(e){m(this,"options");m(this,"types",{});m(this,"propagationStopped",!1);m(this,"immediatePropagationStopped",!1);m(this,"global");this.options=z({},e||{})}fire(e){let n;const i=this.global;(n=this.types[e.type])&&Tn(e,n),!e.propagationStopped&&i&&(n=i[e.type])&&Tn(e,n)}on(e,n){const i=qt(e,n);for(e in i)this.types[e]=En(this.types[e]||[],i[e])}off(e,n){const i=qt(e,n);for(e in i){const o=this.types[e];if(!(!o||!o.length))for(const s of i[e]){const a=o.indexOf(s);a!==-1&&o.splice(a,1)}}}getRect(e){return null}}function Ht(t,e){if(t.contains)return t.contains(e);for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function An(t,e){for(;v.element(t);){if(Bt(t,e))return t;t=zt(t)}return null}function zt(t){let e=t.parentNode;if(v.docFrag(e)){for(;(e=e.host)&&v.docFrag(e););return e}return e}function Bt(t,e){return Pt!==yn&&(e=e.replace(/\/deep\//g," ")),t[ot.prefixedMatchesSelector](e)}function Ce(t,e,n){for(;v.element(t);){if(Bt(t,e))return!0;if(t=zt(t),t===n)return Bt(t,e)}return!1}function Rn(t){return t.correspondingUseElement||t}function Wi(t){return t=t||Pt,{x:t.scrollX||t.document.documentElement.scrollLeft,y:t.scrollY||t.document.documentElement.scrollTop}}function Me(t){const e=t instanceof j.SVGElement?t.getBoundingClientRect():t.getClientRects()[0];return e&&{left:e.left,right:e.right,top:e.top,bottom:e.bottom,width:e.width||e.right-e.left,height:e.height||e.bottom-e.top}}function Pe(t){const e=Me(t);if(!ot.isIOS7&&e){const n=Wi(kt(t));e.left+=n.x,e.right+=n.x,e.top+=n.y,e.bottom+=n.y}return e}function On(t){return v.string(t)?(j.document.querySelector(t),!0):!1}function Cn(t,e,n){return t==="parent"?zt(n):t==="self"?e.getRect(n):An(n,t)}function Qt(t,e,n,i){let o=t;return v.string(o)?o=Cn(o,e,n):v.func(o)&&(o=o(...i)),v.element(o)&&(o=Pe(o)),o}function be(t){return t&&{x:"x"in t?t.x:t.left,y:"y"in t?t.y:t.top}}function Ui(t){return t&&!("left"in t&&"top"in t)&&(t=z({},t),t.left=t.x||0,t.top=t.y||0,t.right=t.right||t.left+t.width,t.bottom=t.bottom||t.top+t.height),t}function Mn(t){return t&&!("x"in t&&"y"in t)&&(t=z({},t),t.x=t.left||0,t.y=t.top||0,t.width=t.width||(t.right||0)-t.x,t.height=t.height||(t.bottom||0)-t.y),t}function ze(t,e,n){t.left&&(e.left+=n.x),t.right&&(e.right+=n.x),t.top&&(e.top+=n.y),t.bottom&&(e.bottom+=n.y),e.width=e.right-e.left,e.height=e.bottom-e.top}function Ne(t,e,n){const i=t.options[n],s=i&&i.origin||t.options.origin,a=Qt(s,t,e,[t&&e]);return be(a)||{x:0,y:0}}const ye=(t,e)=>Math.sqrt(t*t+e*e);class Pn{constructor(e){m(this,"immediatePropagationStopped",!1);m(this,"propagationStopped",!1);this._interaction=e}preventDefault(){}stopPropagation(){this.propagationStopped=!0}stopImmediatePropagation(){this.immediatePropagationStopped=this.propagationStopped=!0}}Object.defineProperty(Pn.prototype,"interaction",{get(){return this._interaction._proxy},set(){}});const zn={base:{preventDefault:"auto",deltaSource:"page"},perAction:{enabled:!1,origin:{x:0,y:0}},actions:{}};class ke extends Pn{constructor(n,i,o,s,a,r,l){super(n);m(this,"relatedTarget",null);m(this,"screenX");m(this,"screenY");m(this,"button");m(this,"buttons");m(this,"ctrlKey");m(this,"shiftKey");m(this,"altKey");m(this,"metaKey");m(this,"page");m(this,"client");m(this,"delta");m(this,"rect");m(this,"x0");m(this,"y0");m(this,"t0");m(this,"dt");m(this,"duration");m(this,"clientX0");m(this,"clientY0");m(this,"velocity");m(this,"speed");m(this,"swipe");m(this,"axes");m(this,"preEnd");a=a||n.element;const c=n.interactable,u=(c&&c.options||zn).deltaSource,d=Ne(c,a,o),h=s==="start",_=s==="end",b=h?this:n.prevEvent,w=h?n.coords.start:_?{page:b.page,client:b.client,timeStamp:n.coords.cur.timeStamp}:n.coords.cur;this.page=z({},w.page),this.client=z({},w.client),this.rect=z({},n.rect),this.timeStamp=w.timeStamp,_||(this.page.x-=d.x,this.page.y-=d.y,this.client.x-=d.x,this.client.y-=d.y),this.ctrlKey=i.ctrlKey,this.altKey=i.altKey,this.shiftKey=i.shiftKey,this.metaKey=i.metaKey,this.button=i.button,this.buttons=i.buttons,this.target=a,this.currentTarget=a,this.preEnd=r,this.type=l||o+(s||""),this.interactable=c,this.t0=h?n.pointers[n.pointers.length-1].downTime:b.t0,this.x0=n.coords.start.page.x-d.x,this.y0=n.coords.start.page.y-d.y,this.clientX0=n.coords.start.client.x-d.x,this.clientY0=n.coords.start.client.y-d.y,h||_?this.delta={x:0,y:0}:this.delta={x:this[u].x-b[u].x,y:this[u].y-b[u].y},this.dt=n.coords.delta.timeStamp,this.duration=this.timeStamp-this.t0,this.velocity=z({},n.coords.velocity[u]),this.speed=ye(this.velocity.x,this.velocity.y),this.swipe=_||s==="inertiastart"?this.getSwipe():null}getSwipe(){const n=this._interaction;if(n.prevEvent.speed<600||this.timeStamp-n.prevEvent.timeStamp>150)return null;let i=180*Math.atan2(n.prevEvent.velocityY,n.prevEvent.velocityX)/Math.PI;const o=22.5;i<0&&(i+=360);const s=135-o<=i&&i<225+o,a=225-o<=i&&i<315+o,r=!s&&(315-o<=i||i<45+o),l=!a&&45-o<=i&&i<135+o;return{up:a,down:l,left:s,right:r,angle:i,speed:n.prevEvent.speed,velocity:{x:n.prevEvent.velocityX,y:n.prevEvent.velocityY}}}preventDefault(){}stopImmediatePropagation(){this.immediatePropagationStopped=this.propagationStopped=!0}stopPropagation(){this.propagationStopped=!0}}Object.defineProperties(ke.prototype,{pageX:{get(){return this.page.x},set(t){this.page.x=t}},pageY:{get(){return this.page.y},set(t){this.page.y=t}},clientX:{get(){return this.client.x},set(t){this.client.x=t}},clientY:{get(){return this.client.y},set(t){this.client.y=t}},dx:{get(){return this.delta.x},set(t){this.delta.x=t}},dy:{get(){return this.delta.y},set(t){this.delta.y=t}},velocityX:{get(){return this.velocity.x},set(t){this.velocity.x=t}},velocityY:{get(){return this.velocity.y},set(t){this.velocity.y=t}}});function te(t,e){let n=!1;return function(){return n||(Pt.console.warn(e),n=!0),t.apply(this,arguments)}}function Nn(t,e){return t.name=e.name,t.axis=e.axis,t.edges=e.edges,t}function kn(t,e){t.__set||(t.__set={});for(const n in e)typeof t[n]!="function"&&n!=="__set"&&Object.defineProperty(t,n,{get(){return n in t.__set?t.__set[n]:t.__set[n]=e[n]},set(i){t.__set[n]=i},configurable:!0});return t}function Le(t,e){t.page=t.page||{},t.page.x=e.page.x,t.page.y=e.page.y,t.client=t.client||{},t.client.x=e.client.x,t.client.y=e.client.y,t.timeStamp=e.timeStamp}function Fi(t,e,n){t.page.x=n.page.x-e.page.x,t.page.y=n.page.y-e.page.y,t.client.x=n.client.x-e.client.x,t.client.y=n.client.y-e.client.y,t.timeStamp=n.timeStamp-e.timeStamp}function Yi(t,e){const n=Math.max(e.timeStamp/1e3,.001);t.page.x=e.page.x/n,t.page.y=e.page.y/n,t.client.x=e.client.x/n,t.client.y=e.client.y/n,t.timeStamp=n}function ji(t){t.page.x=0,t.page.y=0,t.client.x=0,t.client.y=0}function Ln(t){return t instanceof j.Event||t instanceof j.Touch}function xe(t,e,n){return n=n||{},t=t||"page",n.x=e[t+"X"],n.y=e[t+"Y"],n}function Vi(t,e){return e=e||{x:0,y:0},ot.isOperaMobile&&Ln(t)?(xe("screen",t,e),e.x+=window.scrollX,e.y+=window.scrollY):xe("page",t,e),e}function qi(t,e){return e=e||{},ot.isOperaMobile&&Ln(t)?xe("screen",t,e):xe("client",t,e),e}function we(t){return v.number(t.pointerId)?t.pointerId:t.identifier}function Gi(t,e,n){const i=e.length>1?Hn(e):e[0];Vi(i,t.page),qi(i,t.client),t.timeStamp=n}function He(t){const e=[];return v.array(t)?(e[0]=t[0],e[1]=t[1]):t.type==="touchend"?t.touches.length===1?(e[0]=t.touches[0],e[1]=t.changedTouches[0]):t.touches.length===0&&(e[0]=t.changedTouches[0],e[1]=t.changedTouches[1]):(e[0]=t.touches[0],e[1]=t.touches[1]),e}function Hn(t){const e={pageX:0,pageY:0,clientX:0,clientY:0,screenX:0,screenY:0};for(const n of t)for(const i in e)e[i]+=n[i];for(const n in e)e[n]/=t.length;return e}function Xi(t){if(!t.length)return null;const e=He(t),n=Math.min(e[0].pageX,e[1].pageX),i=Math.min(e[0].pageY,e[1].pageY),o=Math.max(e[0].pageX,e[1].pageX),s=Math.max(e[0].pageY,e[1].pageY);return{x:n,y:i,left:n,top:i,right:o,bottom:s,width:o-n,height:s-i}}function Ki(t,e){const n=e+"X",i=e+"Y",o=He(t),s=o[0][n]-o[1][n],a=o[0][i]-o[1][i];return ye(s,a)}function Zi(t,e){const n=e+"X",i=e+"Y",o=He(t),s=o[1][n]-o[0][n],a=o[1][i]-o[0][i];return 180*Math.atan2(a,s)/Math.PI}function Ji(t){return v.string(t.pointerType)?t.pointerType:v.number(t.pointerType)?[void 0,void 0,"touch","pen","mouse"][t.pointerType]:/touch/.test(t.type||"")||t instanceof j.Touch?"touch":"mouse"}function Bn(t){const e=v.func(t.composedPath)?t.composedPath():t.path;return[Rn(e?e[0]:t.target),Rn(t.currentTarget)]}function ee(){return{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0}}function Be(t,e){if(e.phaselessTypes[t])return!0;for(const n in e.map)if(t.indexOf(n)===0&&t.substr(n.length)in e.phases)return!0;return!1}function Qi(t){const e=(n,i)=>{let o=t.interactables.get(n,i);return o||(o=t.interactables.new(n,i),o.events.global=e.globalEvents),o};return e.getPointerAverage=Hn,e.getTouchBBox=Xi,e.getTouchDistance=Ki,e.getTouchAngle=Zi,e.getElementRect=Pe,e.getElementClientRect=Me,e.matchesSelector=Bt,e.closest=An,e.globalEvents={},e.version="1.10.17",e.scope=t,e.use=function(n,i){return this.scope.usePlugin(n,i),this},e.isSet=function(n,i){return!!this.scope.interactables.get(n,i&&i.context)},e.on=te(function(i,o,s){if(v.string(i)&&i.search(" ")!==-1&&(i=i.trim().split(/ +/)),v.array(i)){for(const a of i)this.on(a,o,s);return this}if(v.object(i)){for(const a in i)this.on(a,i[a],o);return this}return Be(i,this.scope.actions)?this.globalEvents[i]?this.globalEvents[i].push(o):this.globalEvents[i]=[o]:this.scope.events.add(this.scope.document,i,o,{options:s}),this},"The interact.on() method is being deprecated"),e.off=te(function(i,o,s){if(v.string(i)&&i.search(" ")!==-1&&(i=i.trim().split(/ +/)),v.array(i)){for(const a of i)this.off(a,o,s);return this}if(v.object(i)){for(const a in i)this.off(a,i[a],o);return this}if(Be(i,this.scope.actions)){let a;i in this.globalEvents&&(a=this.globalEvents[i].indexOf(o))!==-1&&this.globalEvents[i].splice(a,1)}else this.scope.events.remove(this.scope.document,i,o,s);return this},"The interact.off() method is being deprecated"),e.debug=function(){return this.scope},e.supportsTouch=function(){return ot.supportsTouch},e.supportsPointerEvent=function(){return ot.supportsPointerEvent},e.stop=function(){for(const n of this.scope.interactions.list)n.stop();return this},e.pointerMoveTolerance=function(n){return v.number(n)?(this.scope.interactions.pointerMoveTolerance=n,this):this.scope.interactions.pointerMoveTolerance},e.addDocument=function(n,i){this.scope.addDocument(n,i)},e.removeDocument=function(n){this.scope.removeDocument(n)},e}class to{constructor(e,n,i,o){m(this,"options");m(this,"_actions");m(this,"target");m(this,"events",new Dn);m(this,"_context");m(this,"_win");m(this,"_doc");m(this,"_scopeEvents");m(this,"_rectChecker");this._actions=n.actions,this.target=e,this._context=n.context||i,this._win=kt(On(e)?this._context:e),this._doc=this._win.document,this._scopeEvents=o,this.set(n)}get _defaults(){return{base:{},perAction:{},actions:{}}}setOnEvents(e,n){return v.func(n.onstart)&&this.on(`${e}start`,n.onstart),v.func(n.onmove)&&this.on(`${e}move`,n.onmove),v.func(n.onend)&&this.on(`${e}end`,n.onend),v.func(n.oninertiastart)&&this.on(`${e}inertiastart`,n.oninertiastart),this}updatePerActionListeners(e,n,i){(v.array(n)||v.object(n))&&this.off(e,n),(v.array(i)||v.object(i))&&this.on(e,i)}setPerAction(e,n){const i=this._defaults;for(const o in n){const s=o,a=this.options[e],r=n[s];s==="listeners"&&this.updatePerActionListeners(e,a.listeners,r),v.array(r)?a[s]=Sn(r):v.plainObject(r)?(a[s]=z(a[s]||{},jt(r)),v.object(i.perAction[s])&&"enabled"in i.perAction[s]&&(a[s].enabled=r.enabled!==!1)):v.bool(r)&&v.object(i.perAction[s])?a[s].enabled=r:a[s]=r}}getRect(e){return e=e||(v.element(this.target)?this.target:null),v.string(this.target)&&(e=e||this._context.querySelector(this.target)),Pe(e)}rectChecker(e){return v.func(e)?(this._rectChecker=e,this.getRect=n=>{const i=z({},this._rectChecker(n));return"width"in i||(i.width=i.right-i.left,i.height=i.bottom-i.top),i},this):e===null?(delete this.getRect,delete this._rectChecker,this):this.getRect}_backCompatOption(e,n){if(On(n)||v.object(n)){this.options[e]=n;for(const i in this._actions.map)this.options[i][e]=n;return this}return this.options[e]}origin(e){return this._backCompatOption("origin",e)}deltaSource(e){return e==="page"||e==="client"?(this.options.deltaSource=e,this):this.options.deltaSource}context(){return this._context}inContext(e){return this._context===e.ownerDocument||Ht(this._context,e)}testIgnoreAllow(e,n,i){return!this.testIgnore(e.ignoreFrom,n,i)&&this.testAllow(e.allowFrom,n,i)}testAllow(e,n,i){return e?v.element(i)?v.string(e)?Ce(i,e,n):v.element(e)?Ht(e,i):!1:!1:!0}testIgnore(e,n,i){return!e||!v.element(i)?!1:v.string(e)?Ce(i,e,n):v.element(e)?Ht(e,i):!1}fire(e){return this.events.fire(e),this}_onOff(e,n,i,o){v.object(n)&&!v.array(n)&&(o=i,i=null);const s=e==="on"?"add":"remove",a=qt(n,i);for(let r in a){r==="wheel"&&(r=ot.wheelEvent);for(const l of a[r])Be(r,this._actions)?this.events[e](r,l):v.string(this.target)?this._scopeEvents[`${s}Delegate`](this.target,this._context,r,l,o):this._scopeEvents[s](this.target,r,l,o)}return this}on(e,n,i){return this._onOff("on",e,n,i)}off(e,n,i){return this._onOff("off",e,n,i)}set(e){const n=this._defaults;v.object(e)||(e={}),this.options=jt(n.base);for(const i in this._actions.methodDict){const o=i,s=this._actions.methodDict[o];this.options[o]={},this.setPerAction(o,z(z({},n.perAction),n.actions[o])),this[s](e[o])}for(const i in e)v.func(this[i])&&this[i](e[i]);return this}unset(){if(v.string(this.target))for(const e in this._scopeEvents.delegatedEvents){const n=this._scopeEvents.delegatedEvents[e];for(let i=n.length-1;i>=0;i--){const{selector:o,context:s,listeners:a}=n[i];o===this.target&&s===this._context&&n.splice(i,1);for(let r=a.length-1;r>=0;r--)this._scopeEvents.removeDelegate(this.target,this._context,e,a[r][0],a[r][1])}}else this._scopeEvents.remove(this.target,"all")}}class eo{constructor(e){m(this,"list",[]);m(this,"selectorMap",{});m(this,"scope");this.scope=e,e.addListeners({"interactable:unset":({interactable:n})=>{const{target:i,_context:o}=n,s=v.string(i)?this.selectorMap[i]:i[this.scope.id],a=ve(s,r=>r.context===o);s[a]&&(s[a].context=null,s[a].interactable=null),s.splice(a,1)}})}new(e,n){n=z(n||{},{actions:this.scope.actions});const i=new this.scope.Interactable(e,n,this.scope.document,this.scope.events),o={context:i._context,interactable:i};return this.scope.addDocument(i._doc),this.list.push(i),v.string(e)?(this.selectorMap[e]||(this.selectorMap[e]=[]),this.selectorMap[e].push(o)):(i.target[this.scope.id]||Object.defineProperty(e,this.scope.id,{value:[],configurable:!0}),e[this.scope.id].push(o)),this.scope.fire("interactable:new",{target:e,options:n,interactable:i,win:this.scope._win}),i}get(e,n){const i=n&&n.context||this.scope.document,o=v.string(e),s=o?this.selectorMap[e]:e[this.scope.id];if(!s)return null;const a=Oe(s,r=>r.context===i&&(o||r.interactable.inContext(e)));return a&&a.interactable}forEachMatch(e,n){for(const i of this.list){let o;if((v.string(i.target)?v.element(e)&&Bt(e,i.target):e===i.target)&&i.inContext(e)&&(o=n(i)),o!==void 0)return o}}}function no(t){var e;const n=[],i={},o=[],s={add:a,remove:r,addDelegate:l,removeDelegate:c,delegateListener:u,delegateUseCapture:d,delegatedEvents:i,documents:o,targets:n,supportsOptions:!1,supportsPassive:!1};(e=t.document)==null||e.createElement("div").addEventListener("test",null,{get capture(){return s.supportsOptions=!0},get passive(){return s.supportsPassive=!0}}),t.events=s;function a(h,_,b,w){const y=ne(w);let N=Oe(n,P=>P.eventTarget===h);N||(N={eventTarget:h,events:{}},n.push(N)),N.events[_]||(N.events[_]=[]),h.addEventListener&&!Bi(N.events[_],b)&&(h.addEventListener(_,b,s.supportsOptions?y:y.capture),N.events[_].push(b))}function r(h,_,b,w){const y=ne(w),N=ve(n,x=>x.eventTarget===h),P=n[N];if(!P||!P.events)return;if(_==="all"){for(_ in P.events)P.events.hasOwnProperty(_)&&r(h,_,"all");return}let E=!1;const C=P.events[_];if(C){if(b==="all"){for(let x=C.length-1;x>=0;x--)r(h,_,C[x],y);return}else for(let x=0;x<C.length;x++)if(C[x]===b){h.removeEventListener(_,b,s.supportsOptions?y:y.capture),C.splice(x,1),C.length===0&&(delete P.events[_],E=!0);break}}E&&!Object.keys(P.events).length&&n.splice(N,1)}function l(h,_,b,w,y){const N=ne(y);if(!i[b]){i[b]=[];for(const C of o)a(C,b,u),a(C,b,d,!0)}const P=i[b];let E=Oe(P,C=>C.selector===h&&C.context===_);E||(E={selector:h,context:_,listeners:[]},P.push(E)),E.listeners.push([w,N])}function c(h,_,b,w,y){const N=ne(y),P=i[b];let E=!1,C;if(P)for(C=P.length-1;C>=0;C--){const x=P[C];if(x.selector===h&&x.context===_){const{listeners:p}=x;for(let $=p.length-1;$>=0;$--){const[T,{capture:F,passive:G}]=p[$];if(T===w&&F===N.capture&&G===N.passive){p.splice($,1),p.length||(P.splice(C,1),r(_,b,u),r(_,b,d,!0)),E=!0;break}}if(E)break}}}function u(h,_){const b=ne(_),w=new io(h),y=i[h.type],[N]=Bn(h);let P=N;for(;v.element(P);){for(let E=0;E<y.length;E++){const C=y[E],{selector:x,context:p}=C;if(Bt(P,x)&&Ht(p,N)&&Ht(p,P)){const{listeners:$}=C;w.currentTarget=P;for(const[T,{capture:F,passive:G}]of $)F===b.capture&&G===b.passive&&T(w)}}P=zt(P)}}function d(h){return u.call(this,h,!0)}return s}class io{constructor(e){m(this,"currentTarget");m(this,"originalEvent");m(this,"type");this.originalEvent=e,kn(this,e)}preventOriginalDefault(){this.originalEvent.preventDefault()}stopPropagation(){this.originalEvent.stopPropagation()}stopImmediatePropagation(){this.originalEvent.stopImmediatePropagation()}}function ne(t){if(!v.object(t))return{capture:!!t,passive:!1};const e=z({},t);return e.capture=!!t.capture,e.passive=!!t.passive,e}const oo={id:"events",install:no};class ro{constructor(e,n,i,o,s){m(this,"id");m(this,"pointer");m(this,"event");m(this,"downTime");m(this,"downTarget");this.id=e,this.pointer=n,this.event=i,this.downTime=o,this.downTarget=s}}let $e;(function(t){t.interactable="",t.element="",t.prepared="",t.pointerIsDown="",t.pointerWasMoved="",t._proxy=""})($e||($e={}));let We;(function(t){t.start="",t.move="",t.end="",t.stop="",t.interacting=""})(We||(We={}));let so=0;class ao{constructor({pointerType:e,scopeFire:n}){m(this,"interactable",null);m(this,"element",null);m(this,"rect",null);m(this,"_rects");m(this,"edges",null);m(this,"_scopeFire");m(this,"prepared",{name:null,axis:null,edges:null});m(this,"pointerType");m(this,"pointers",[]);m(this,"downEvent",null);m(this,"downPointer",{});m(this,"_latestPointer",{pointer:null,event:null,eventTarget:null});m(this,"prevEvent",null);m(this,"pointerIsDown",!1);m(this,"pointerWasMoved",!1);m(this,"_interacting",!1);m(this,"_ending",!1);m(this,"_stopped",!0);m(this,"_proxy",null);m(this,"simulation",null);m(this,"doMove",te(function(e){this.move(e)},"The interaction.doMove() method has been renamed to interaction.move()"));m(this,"coords",{start:ee(),prev:ee(),cur:ee(),delta:ee(),velocity:ee()});m(this,"_id",so++);this._scopeFire=n,this.pointerType=e;const i=this;this._proxy={};for(const o in $e)Object.defineProperty(this._proxy,o,{get(){return i[o]}});for(const o in We)Object.defineProperty(this._proxy,o,{value:(...s)=>i[o](...s)});this._scopeFire("interactions:new",{interaction:this})}get pointerMoveTolerance(){return 1}pointerDown(e,n,i){const o=this.updatePointer(e,n,i,!0),s=this.pointers[o];this._scopeFire("interactions:down",{pointer:e,event:n,eventTarget:i,pointerIndex:o,pointerInfo:s,type:"down",interaction:this})}start(e,n,i){return this.interacting()||!this.pointerIsDown||this.pointers.length<(e.name==="gesture"?2:1)||!n.options[e.name].enabled?!1:(Nn(this.prepared,e),this.interactable=n,this.element=i,this.rect=n.getRect(i),this.edges=this.prepared.edges?z({},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,n,i){!this.simulation&&!(this.modification&&this.modification.endResult)&&this.updatePointer(e,n,i,!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 s,a;this.pointerIsDown&&!this.pointerWasMoved&&(s=this.coords.cur.client.x-this.coords.start.client.x,a=this.coords.cur.client.y-this.coords.start.client.y,this.pointerWasMoved=ye(s,a)>this.pointerMoveTolerance);const r=this.getPointerIndex(e),l={pointer:e,pointerIndex:r,pointerInfo:this.pointers[r],event:n,type:"move",eventTarget:i,dx:s,dy:a,duplicate:o,interaction:this};o||Yi(this.coords.velocity,this.coords.delta),this._scopeFire("interactions:move",l),!o&&!this.simulation&&(this.interacting()&&(l.type=null,this.move(l)),this.pointerWasMoved&&Le(this.coords.prev,this.coords.cur))}move(e){(!e||!e.event)&&ji(this.coords.delta),e=z({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},e||{}),e.phase="move",this._doPhase(e)}pointerUp(e,n,i,o){let s=this.getPointerIndex(e);s===-1&&(s=this.updatePointer(e,n,i,!1));const a=/cancel$/i.test(n.type)?"cancel":"up";this._scopeFire(`interactions:${a}`,{pointer:e,pointerIndex:s,pointerInfo:this.pointers[s],event:n,eventTarget:i,type:a,curEventTarget:o,interaction:this}),this.simulation||this.end(n),this.removePointer(e,n)}documentBlur(e){this.end(e),this._scopeFire("interactions:blur",{event:e,type:"blur",interaction:this})}end(e){this._ending=!0,e=e||this._latestPointer.event;let n;this.interacting()&&(n=this._doPhase({event:e,interaction:this,phase:"end"})),this._ending=!1,n===!0&&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 n=we(e);return this.pointerType==="mouse"||this.pointerType==="pen"?this.pointers.length-1:ve(this.pointers,i=>i.id===n)}getPointerInfo(e){return this.pointers[this.getPointerIndex(e)]}updatePointer(e,n,i,o){const s=we(e);let a=this.getPointerIndex(e),r=this.pointers[a];return o=o===!1?!1:o||/(down|start)$/i.test(n.type),r?r.pointer=e:(r=new ro(s,e,n,null,null),a=this.pointers.length,this.pointers.push(r)),Gi(this.coords.cur,this.pointers.map(l=>l.pointer),this._now()),Fi(this.coords.delta,this.coords.prev,this.coords.cur),o&&(this.pointerIsDown=!0,r.downTime=this.coords.cur.timeStamp,r.downTarget=i,kn(this.downPointer,e),this.interacting()||(Le(this.coords.start,this.coords.cur),Le(this.coords.prev,this.coords.cur),this.downEvent=n,this.pointerWasMoved=!1)),this._updateLatestPointer(e,n,i),this._scopeFire("interactions:update-pointer",{pointer:e,event:n,eventTarget:i,down:o,pointerInfo:r,pointerIndex:a,interaction:this}),a}removePointer(e,n){const i=this.getPointerIndex(e);if(i===-1)return;const o=this.pointers[i];this._scopeFire("interactions:remove-pointer",{pointer:e,event:n,eventTarget:null,pointerIndex:i,pointerInfo:o,interaction:this}),this.pointers.splice(i,1),this.pointerIsDown=!1}_updateLatestPointer(e,n,i){this._latestPointer.pointer=e,this._latestPointer.event=n,this._latestPointer.eventTarget=i}destroy(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}_createPreparedEvent(e,n,i,o){return new ke(this,e,this.prepared.name,n,this.element,i,o)}_fireEvent(e){var n;(n=this.interactable)==null||n.fire(e),(!this.prevEvent||e.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=e)}_doPhase(e){const{event:n,phase:i,preEnd:o,type:s}=e,{rect:a}=this;if(a&&i==="move"&&(ze(this.edges,a,this.coords.delta[this.interactable.options.deltaSource]),a.width=a.right-a.left,a.height=a.bottom-a.top),this._scopeFire(`interactions:before-action-${i}`,e)===!1)return!1;const l=e.iEvent=this._createPreparedEvent(n,i,o,s);return this._scopeFire(`interactions:action-${i}`,e),i==="start"&&(this.prevEvent=l),this._fireEvent(l),this._scopeFire(`interactions:after-action-${i}`,e),!0}_now(){return Date.now()}}function lo(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):v.bool(t)?(this.options.preventDefault=t?"always":"never",this):this.options.preventDefault}function co(t,e,n){const i=t.options.preventDefault;if(i!=="never"){if(i==="always"){n.preventDefault();return}if(e.events.supportsPassive&&/^touch(start|move)$/.test(n.type)){const o=kt(n.target).document,s=e.getDocOptions(o);if(!(s&&s.events)||s.events.passive!==!1)return}/^(mouse|pointer|touch)*(down|start)/i.test(n.type)||v.element(n.target)&&Bt(n.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *")||n.preventDefault()}}function uo({interaction:t,event:e}){t.interactable&&t.interactable.checkAndPreventDefault(e)}function fo(t){const{Interactable:e}=t;e.prototype.preventDefault=lo,e.prototype.checkAndPreventDefault=function(n){return co(this,t,n)},t.interactions.docEvents.push({type:"dragstart",listener(n){for(const i of t.interactions.list)if(i.element&&(i.element===n.target||Ht(i.element,n.target))){i.interactable.checkAndPreventDefault(n);return}}})}const ho={id:"core/interactablePreventDefault",install:fo,listeners:["down","move","up","cancel"].reduce((t,e)=>(t[`interactions:${e}`]=uo,t),{})},Ue={methodOrder:["simulationResume","mouseOrPen","hasPointer","idle"],search(t){for(const e of Ue.methodOrder){const n=Ue[e](t);if(n)return n}return null},simulationResume({pointerType:t,eventType:e,eventTarget:n,scope:i}){if(!/down|start/i.test(e))return null;for(const o of i.interactions.list){let s=n;if(o.simulation&&o.simulation.allowResume&&o.pointerType===t)for(;s;){if(s===o.element)return o;s=zt(s)}}return null},mouseOrPen({pointerId:t,pointerType:e,eventType:n,scope:i}){if(e!=="mouse"&&e!=="pen")return null;let o;for(const s of i.interactions.list)if(s.pointerType===e){if(s.simulation&&!$n(s,t))continue;if(s.interacting())return s;o||(o=s)}if(o)return o;for(const s of i.interactions.list)if(s.pointerType===e&&!(/down/i.test(n)&&s.simulation))return s;return null},hasPointer({pointerId:t,scope:e}){for(const n of e.interactions.list)if($n(n,t))return n;return null},idle({pointerType:t,scope:e}){for(const n of e.interactions.list){if(n.pointers.length===1){const i=n.interactable;if(i&&!(i.options.gesture&&i.options.gesture.enabled))continue}else if(n.pointers.length>=2)continue;if(!n.interacting()&&t===n.pointerType)return n}return null}};function $n(t,e){return t.pointers.some(({id:n})=>n===e)}const Wn=["pointerDown","pointerMove","pointerUp","updatePointer","removePointer","windowBlur"];function po(t){const e={};for(const s of Wn)e[s]=Un(s,t);const n=ot.pEventTypes;let i;j.PointerEvent?i=[{type:n.down,listener:o},{type:n.down,listener:e.pointerDown},{type:n.move,listener:e.pointerMove},{type:n.up,listener:e.pointerUp},{type:n.cancel,listener:e.pointerUp}]:i=[{type:"mousedown",listener:e.pointerDown},{type:"mousemove",listener:e.pointerMove},{type:"mouseup",listener:e.pointerUp},{type:"touchstart",listener:o},{type:"touchstart",listener:e.pointerDown},{type:"touchmove",listener:e.pointerMove},{type:"touchend",listener:e.pointerUp},{type:"touchcancel",listener:e.pointerUp}],i.push({type:"blur",listener(s){for(const a of t.interactions.list)a.documentBlur(s)}}),t.prevTouchTime=0,t.Interaction=class extends ao{get pointerMoveTolerance(){return t.interactions.pointerMoveTolerance}set pointerMoveTolerance(s){t.interactions.pointerMoveTolerance=s}_now(){return t.now()}},t.interactions={list:[],new(s){s.scopeFire=(r,l)=>t.fire(r,l);const a=new t.Interaction(s);return t.interactions.list.push(a),a},listeners:e,docEvents:i,pointerMoveTolerance:1};function o(){for(const s of t.interactions.list)if(!(!s.pointerIsDown||s.pointerType!=="touch"||s._interacting))for(const a of s.pointers)t.documents.some(({doc:r})=>Ht(r,a.downTarget))||s.removePointer(a.pointer,a.event)}t.usePlugin(ho)}function Un(t,e){return function(n){const i=e.interactions.list,o=Ji(n),[s,a]=Bn(n),r=[];if(/^touch/.test(n.type)){e.prevTouchTime=e.now();for(const l of n.changedTouches){const c=l,u=we(c),d={pointer:c,pointerId:u,pointerType:o,eventType:n.type,eventTarget:s,curEventTarget:a,scope:e},h=Fn(d);r.push([d.pointer,d.eventTarget,d.curEventTarget,h])}}else{let l=!1;if(!ot.supportsPointerEvent&&/mouse/.test(n.type)){for(let c=0;c<i.length&&!l;c++)l=i[c].pointerType!=="mouse"&&i[c].pointerIsDown;l=l||e.now()-e.prevTouchTime<500||n.timeStamp===0}if(!l){const c={pointer:n,pointerId:we(n),pointerType:o,eventType:n.type,curEventTarget:a,eventTarget:s,scope:e},u=Fn(c);r.push([c.pointer,c.eventTarget,c.curEventTarget,u])}}for(const[l,c,u,d]of r)d[t](l,n,c,u)}}function Fn(t){const{pointerType:e,scope:n}=t,o={interaction:Ue.search(t),searchDetails:t};return n.fire("interactions:find",o),o.interaction||n.interactions.new({pointerType:e})}function Fe({doc:t,scope:e,options:n},i){const{interactions:{docEvents:o},events:s}=e,a=s[i];e.browser.isIOS&&!n.events&&(n.events={passive:!1});for(const l in s.delegatedEvents)a(t,l,s.delegateListener),a(t,l,s.delegateUseCapture,!0);const r=n&&n.events;for(const{type:l,listener:c}of o)a(t,l,c,r)}const go={id:"core/interactions",install:po,listeners:{"scope:add-document":t=>Fe(t,"add"),"scope:remove-document":t=>Fe(t,"remove"),"interactable:unset":({interactable:t},e)=>{for(let n=e.interactions.list.length-1;n>=0;n--){const i=e.interactions.list[n];i.interactable===t&&(i.stop(),e.fire("interactions:destroy",{interaction:i}),i.destroy(),e.interactions.list.length>2&&e.interactions.list.splice(n,1))}}},onDocSignal:Fe,doOnInteractions:Un,methodNames:Wn};class mo{constructor(){m(this,"id",`__interact_scope_${Math.floor(Math.random()*100)}`);m(this,"isInitialized",!1);m(this,"listenerMaps",[]);m(this,"browser",ot);m(this,"defaults",jt(zn));m(this,"Eventable",Dn);m(this,"actions",{map:{},phases:{start:!0,move:!0,end:!0},methodDict:{},phaselessTypes:{}});m(this,"interactStatic",Qi(this));m(this,"InteractEvent",ke);m(this,"Interactable");m(this,"interactables",new eo(this));m(this,"_win");m(this,"document");m(this,"window");m(this,"documents",[]);m(this,"_plugins",{list:[],map:{}});m(this,"onWindowUnload",e=>this.removeDocument(e.target));const e=this;this.Interactable=class extends to{get _defaults(){return e.defaults}set(n){return super.set(n),e.fire("interactable:set",{options:n,interactable:this}),this}unset(){super.unset();const n=e.interactables.list.indexOf(this);n<0||(super.unset(),e.interactables.list.splice(n,1),e.fire("interactable:unset",{interactable:this}))}}}addListeners(e,n){this.listenerMaps.push({id:n,map:e})}fire(e,n){for(const{map:{[e]:i}}of this.listenerMaps)if(i&&i(n,this,e)===!1)return!1}init(e){return this.isInitialized?this:vo(this,e)}pluginIsInstalled(e){return this._plugins.map[e.id]||this._plugins.list.indexOf(e)!==-1}usePlugin(e,n){if(!this.isInitialized)return this;if(this.pluginIsInstalled(e))return this;if(e.id&&(this._plugins.map[e.id]=e),this._plugins.list.push(e),e.install&&e.install(this,n),e.listeners&&e.before){let i=0;const o=this.listenerMaps.length,s=e.before.reduce((a,r)=>(a[r]=!0,a[Yn(r)]=!0,a),{});for(;i<o;i++){const a=this.listenerMaps[i].id;if(s[a]||s[Yn(a)])break}this.listenerMaps.splice(i,0,{id:e.id,map:e.listeners})}else e.listeners&&this.listenerMaps.push({id:e.id,map:e.listeners});return this}addDocument(e,n){if(this.getDocIndex(e)!==-1)return!1;const i=kt(e);n=n?z({},n):{},this.documents.push({doc:e,options:n}),this.events.documents.push(e),e!==this.document&&this.events.add(i,"unload",this.onWindowUnload),this.fire("scope:add-document",{doc:e,window:i,scope:this,options:n})}removeDocument(e){const n=this.getDocIndex(e),i=kt(e),o=this.documents[n].options;this.events.remove(i,"unload",this.onWindowUnload),this.documents.splice(n,1),this.events.documents.splice(n,1),this.fire("scope:remove-document",{doc:e,window:i,scope:this,options:o})}getDocIndex(e){for(let n=0;n<this.documents.length;n++)if(this.documents[n].doc===e)return n;return-1}getDocOptions(e){const n=this.getDocIndex(e);return n===-1?null:this.documents[n].options}now(){return(this.window.Date||Date).now()}}function vo(t,e){return t.isInitialized=!0,v.window(e)&&xn(e),j.init(e),ot.init(e),Vt.init(e),t.window=e,t.document=e.document,t.usePlugin(go),t.usePlugin(oo),t}function Yn(t){return t&&t.replace(/\/.*$/,"")}const jn=new mo,Dt=jn.interactStatic,bo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:void 0;jn.init(bo);var it=(t=>(t.INVALID_BREAKPOINT="Invalid parameter breakpoint",t.INVALID_BREAKPOINT_NOT_FOUND="Breakpoint not found",t.INVALID_BOUNDS="Invalid parameter bounds passed",t.INVALID_COL_OR_ROW_SIZE="Invalid colOrRowSize parameter passed",t.INVALID_COLUMNS="Invalid parameter cols passed",t.INVALID_EMPTY_LAYOUT="Layout can not be empty",t.INVALID_GRID_UNITS="Invalid gridUnits parameter passed",t.INVALID_LAYOUT="Invalid parameter layout passed",t.INVALID_LAYOUT_ITEM="Invalid parameter layoutItem passed",t.INVALID_LAYOUT_ITEM_ID="Invalid parameter layoutItem id passed",t.INVALID_LAYOUT_VALIDATED="Layout is not valid",t.INVALID_MARGIN="Invalid marginPx parameter passed",t.INVALID_MARGIN_LEFT_RIGHT="Invalid parameter marginLeftRight passed",t.INVALID_PARAM_COLS="Parameter cols must be greater than 0",t.INVALID_PARAM_CONTAINER_WIDTH="Invalid parameter containerWidth passed",t.INVALID_PARAM_INNER_H="Parameter innerH must be greater than 0",t.INVALID_PARAM_INNER_W="Parameter innerW must be greater than 0",t.INVALID_PARAM_MARGIN="Parameter margin must be greater than 0",t.INVALID_PARAM_MAX_ROWS="Parameter maxRows must be greater than 0",t.INVALID_PARAM_ROW_HEIGHT="Parameter rowHeight must be greater than 0",t.INVALID_PARAMS="Invalid parameter values passed",t.INVALID_WIDTH="Width must be greater that 0",t))(it||{});function Vn(t,e){if(t===null||e===null||t===void 0||e===void 0)throw new Error(it.INVALID_PARAMS);return!(t===e||t.y+t.h<=e.y||t.y>=e.y+e.h||t.x+t.w<=e.x||t.x>=e.x+e.w)}function qn(t,e){if(t===void 0||t.length===0||e===void 0)throw new Error(it.INVALID_PARAMS);return t.filter(n=>Vn(n,e))}function $t(t,e){if(!(t===void 0||t.length===0||e===void 0)){for(let n=0,i=t.length;n<i;n++)if(Vn(t[n],e))return t[n]}}function Ee(t){if(t.length===0)throw new Error(it.INVALID_EMPTY_LAYOUT);return t.filter(e=>e.isStatic)}function Gn(t){return[].concat(t).sort((n,i)=>n.y===i.y&&n.x===i.x?0:n.y>i.y||n.y===i.y&&n.x>i.x?1:-1)}function yo(t){return JSON.parse(JSON.stringify(t))}function Ye(t){const e=Array(t.length);for(let n=0,i=t.length;n<i;n++)e[n]=yo(t[n]);return e}function xo(t,e,n,i){if(n)for(;e.y>0&&!$t(t,e);)e.y--;else if(i){const s=i[e.i].y;for(;e.y>s&&!$t(t,e);)e.y--}let o;for(;o=$t(t,e);)e.y=o.y+o.h;return e}function Gt(t,e,n){const i=Ee(t),o=Gn(t),s=Array(t.length);for(let a=0,r=o.length;a<r;a++){let l=o[a];l.isStatic||(l=xo(i,l,e,n),i.push(l)),s[t.indexOf(l)]=l,l.moved=!1}return s}function Xn(t,e){if(t===void 0)throw new Error(it.INVALID_LAYOUT);if(e==null||e.toString().trim().length===0||parseInt(e.toString())<0)throw new Error(it.INVALID_LAYOUT_ITEM_ID);for(let n=0,i=t.length;n<i;n++)if(typeof e=="string"){if(t[n].i.toString().toLowerCase()===e.toString().toLowerCase())return t[n]}else if(typeof e=="number"&&t[n].i===e)return t[n]}function wo(t,e,n,i){const o=`translate3d(${e}px,${t}px, 0)`;return{MozTransform:o,OTransform:o,WebkitTransform:o,height:`${i}px`,msTransform:o,position:"absolute",transform:o,width:`${n}px`}}function Eo(t,e,n,i){const o=`translate3d(${e*-1}px,${t}px, 0)`;return{MozTransform:o,OTransform:o,WebkitTransform:o,height:`${i}px`,msTransform:o,position:"absolute",transform:o,width:`${n}px`}}function So(t,e,n,i){return{height:`${i}px`,left:`${e}px`,position:"absolute",top:`${t}px`,width:`${n}px`}}function Io(t,e,n,i){return{height:`${i}px`,position:"absolute",right:`${e}px`,top:`${t}px`,width:`${n}px`}}function _o(t){return!Number.isNaN(t)}function Kn(t){const e=t.target,n=e.offsetParent||document.body,i=e.offsetParent===document.body?{left:0,top:0}:n.getBoundingClientRect(),o=t.clientX+n.scrollLeft-i.left,s=t.clientY+n.scrollTop-i.top;return{x:o,y:s}}function Zn(t,e,n,i){return _o(t)?{deltaX:n-t,deltaY:i-e,lastX:t,lastY:e,x:n,y:i}:{deltaX:0,deltaY:0,lastX:n,lastY:i,x:n,y:i}}function To(t){const{Interactable:e}=t;e.prototype.getAction=function(i,o,s,a){const r=Do(this,o,s,a,t);return this.options.actionChecker?this.options.actionChecker(i,o,r,this,a,s):r},e.prototype.ignoreFrom=te(function(n){return this._backCompatOption("ignoreFrom",n)},"Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue})."),e.prototype.allowFrom=te(function(n){return this._backCompatOption("allowFrom",n)},"Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue})."),e.prototype.actionChecker=Ro,e.prototype.styleCursor=Ao}function Do(t,e,n,i,o){const s=t.getRect(i),a=e.buttons||{0:1,1:4,3:8,4:16}[e.button],r={action:null,interactable:t,interaction:n,element:i,rect:s,buttons:a};return o.fire("auto-start:check",r),r.action}function Ao(t){return v.bool(t)?(this.options.styleCursor=t,this):t===null?(delete this.options.styleCursor,this):this.options.styleCursor}function Ro(t){return v.func(t)?(this.options.actionChecker=t,this):t===null?(delete this.options.actionChecker,this):this.options.actionChecker}const Oo={id:"auto-start/interactableMethods",install:To};function Co(t){const{interactStatic:e,defaults:n}=t;t.usePlugin(Oo),n.base.actionChecker=null,n.base.styleCursor=!0,z(n.perAction,{manualStart:!1,max:1/0,maxPerElement:1,allowFrom:null,ignoreFrom:null,mouseButtons:1}),e.maxInteractions=i=>ei(i,t),t.autoStart={maxInteractions:1/0,withinInteractionLimit:Se,cursorElement:null}}function Mo({interaction:t,pointer:e,event:n,eventTarget:i},o){if(t.interacting())return;const s=Qn(t,e,n,i,o);ti(t,s,o)}function Po({interaction:t,pointer:e,event:n,eventTarget:i},o){if(t.pointerType!=="mouse"||t.pointerIsDown||t.interacting())return;const s=Qn(t,e,n,i,o);ti(t,s,o)}function zo(t,e){const{interaction:n}=t;if(!n.pointerIsDown||n.interacting()||!n.pointerWasMoved||!n.prepared.name)return;e.fire("autoStart:before-start",t);const{interactable:i}=n,o=n.prepared.name;o&&i&&(i.options[o].manualStart||!Se(i,n.element,n.prepared,e)?n.stop():(n.start(n.prepared,i,n.element),ni(n,e)))}function No({interaction:t},e){const{interactable:n}=t;n&&n.options.styleCursor&&je(t.element,"",e)}function Jn(t,e,n,i,o){return e.testIgnoreAllow(e.options[t.name],n,i)&&e.options[t.name].enabled&&Se(e,n,t,o)?t:null}function ko(t,e,n,i,o,s,a){for(let r=0,l=i.length;r<l;r++){const c=i[r],u=o[r],d=c.getAction(e,n,t,u);if(!d)continue;const h=Jn(d,c,u,s,a);if(h)return{action:h,interactable:c,element:u}}return{action:null,interactable:null,element:null}}function Qn(t,e,n,i,o){let s=[],a=[],r=i;function l(c){s.push(c),a.push(r)}for(;v.element(r);){s=[],a=[],o.interactables.forEachMatch(r,l);const c=ko(t,e,n,s,a,i,o);if(c.action&&!c.interactable.options[c.action.name].manualStart)return c;r=zt(r)}return{action:null,interactable:null,element:null}}function ti(t,{action:e,interactable:n,element:i},o){e=e||{name:null},t.interactable=n,t.element=i,Nn(t.prepared,e),t.rect=n&&e.name?n.getRect(i):null,ni(t,o),o.fire("autoStart:prepared",{interaction:t})}function Se(t,e,n,i){const o=t.options,s=o[n.name].max,a=o[n.name].maxPerElement,r=i.autoStart.maxInteractions;let l=0,c=0,u=0;if(!(s&&a&&r))return!1;for(const d of i.interactions.list){const h=d.prepared.name;if(d.interacting()){if(l++,l>=r)return!1;if(d.interactable===t&&(c+=h===n.name?1:0,c>=s||d.element===e&&(u++,h===n.name&&u>=a)))return!1}}return r>0}function ei(t,e){return v.number(t)?(e.autoStart.maxInteractions=t,this):e.autoStart.maxInteractions}function je(t,e,n){const{cursorElement:i}=n.autoStart;i&&i!==t&&(i.style.cursor=""),t.ownerDocument.documentElement.style.cursor=e,t.style.cursor=e,n.autoStart.cursorElement=e?t:null}function ni(t,e){const{interactable:n,element:i,prepared:o}=t;if(!(t.pointerType==="mouse"&&n&&n.options.styleCursor)){e.autoStart.cursorElement&&je(e.autoStart.cursorElement,"",e);return}let s="";if(o.name){const a=n.options[o.name].cursorChecker;v.func(a)?s=a(o,n,i,t._interacting):s=e.actions.map[o.name].getCursor(o)}je(t.element,s||"",e)}const Ve={id:"auto-start/base",before:["actions"],install:Co,listeners:{"interactions:down":Mo,"interactions:move":(t,e)=>{Po(t,e),zo(t,e)},"interactions:stop":No},maxInteractions:ei,withinInteractionLimit:Se,validateAction:Jn};function Lo({interaction:t,eventTarget:e,dx:n,dy:i},o){if(t.prepared.name!=="drag")return;const s=Math.abs(n),a=Math.abs(i),r=t.interactable.options.drag,l=r.startAxis,c=s>a?"x":s<a?"y":"xy";if(t.prepared.axis=r.lockAxis==="start"?c[0]:r.lockAxis,c!=="xy"&&l!=="xy"&&l!==c){t.prepared.name=null;let u=e;const d=function(h){if(h===t.interactable)return;const _=t.interactable.options.drag;if(!_.manualStart&&h.testIgnoreAllow(_,u,e)){const b=h.getAction(t.downPointer,t.downEvent,t,u);if(b&&b.name==="drag"&&Ho(c,h)&&Ve.validateAction(b,h,u,e,o))return h}};for(;v.element(u);){const h=o.interactables.forEachMatch(u,d);if(h){t.prepared.name="drag",t.interactable=h,t.element=u;break}u=zt(u)}}}function Ho(t,e){if(!e)return!1;const n=e.options.drag.startAxis;return t==="xy"||n==="xy"||n===t}const Bo={id:"auto-start/dragAxis",listeners:{"autoStart:before-start":Lo}};function $o(t){const{defaults:e}=t;t.usePlugin(Ve),e.perAction.hold=0,e.perAction.delay=0}function qe(t){const e=t.prepared&&t.prepared.name;if(!e)return null;const n=t.interactable.options;return n[e].hold||n[e].delay}const Wo={id:"auto-start/hold",install:$o,listeners:{"interactions:new":({interaction:t})=>{t.autoStartHoldTimer=null},"autoStart:prepared":({interaction:t})=>{const e=qe(t);e>0&&(t.autoStartHoldTimer=setTimeout(()=>{t.start(t.prepared,t.interactable,t.element)},e))},"interactions:move":({interaction:t,duplicate:e})=>{t.autoStartHoldTimer&&t.pointerWasMoved&&!e&&(clearTimeout(t.autoStartHoldTimer),t.autoStartHoldTimer=null)},"autoStart:before-start":({interaction:t})=>{qe(t)>0&&(t.prepared.name=null)}},getHoldDuration:qe},Uo={id:"auto-start",install(t){t.usePlugin(Ve),t.usePlugin(Wo),t.usePlugin(Bo)}};Dt.use(Uo);function Fo(t){const{defaults:e,actions:n}=t;t.autoScroll=k,k.now=()=>t.now(),n.phaselessTypes.autoscroll=!0,e.perAction.autoScroll=k.defaults}const k={defaults:{enabled:!1,margin:60,container:null,speed:300},now:Date.now,interaction:null,i:0,x:0,y:0,isScrolling:!1,prevTime:0,margin:0,speed:0,start(t){k.isScrolling=!0,Vt.cancel(k.i),t.autoScroll=k,k.interaction=t,k.prevTime=k.now(),k.i=Vt.request(k.scroll)},stop(){k.isScrolling=!1,k.interaction&&(k.interaction.autoScroll=null),Vt.cancel(k.i)},scroll(){const{interaction:t}=k,{interactable:e,element:n}=t,i=t.prepared.name,o=e.options[i].autoScroll,s=ii(o.container,e,n),a=k.now(),r=(a-k.prevTime)/1e3,l=o.speed*r;if(l>=1){const c={x:k.x*l,y:k.y*l};if(c.x||c.y){const u=oi(s);v.window(s)?s.scrollBy(c.x,c.y):s&&(s.scrollLeft+=c.x,s.scrollTop+=c.y);const d=oi(s),h={x:d.x-u.x,y:d.y-u.y};(h.x||h.y)&&e.fire({type:"autoscroll",target:n,interactable:e,delta:h,interaction:t,container:s})}k.prevTime=a}k.isScrolling&&(Vt.cancel(k.i),k.i=Vt.request(k.scroll))},check(t,e){var n;return(n=t.options[e].autoScroll)==null?void 0:n.enabled},onInteractionMove({interaction:t,pointer:e}){if(!(t.interacting()&&k.check(t.interactable,t.prepared.name)))return;if(t.simulation){k.x=k.y=0;return}let n,i,o,s;const{interactable:a,element:r}=t,l=t.prepared.name,c=a.options[l].autoScroll,u=ii(c.container,a,r);if(v.window(u))s=e.clientX<k.margin,n=e.clientY<k.margin,i=e.clientX>u.innerWidth-k.margin,o=e.clientY>u.innerHeight-k.margin;else{const d=Me(u);s=e.clientX<d.left+k.margin,n=e.clientY<d.top+k.margin,i=e.clientX>d.right-k.margin,o=e.clientY>d.bottom-k.margin}k.x=i?1:s?-1:0,k.y=o?1:n?-1:0,k.isScrolling||(k.margin=c.margin,k.speed=c.speed,k.start(t))}};function ii(t,e,n){return(v.string(t)?Cn(t,e,n):t)||kt(n)}function oi(t){return v.window(t)&&(t=window.document.body),{x:t.scrollLeft,y:t.scrollTop}}const Yo={id:"auto-scroll",install:Fo,listeners:{"interactions:new":({interaction:t})=>{t.autoScroll=null},"interactions:destroy":({interaction:t})=>{t.autoScroll=null,k.stop(),k.interaction&&(k.interaction=null)},"interactions:stop":k.stop,"interactions:action-move":t=>k.onInteractionMove(t)}};Dt.use(Yo);function jo(t){const{actions:e,Interactable:n,defaults:i}=t;n.prototype.draggable=Ie.draggable,e.map.drag=Ie,e.methodDict.drag="draggable",i.actions.drag=Ie.defaults}function Ge({interaction:t}){if(t.prepared.name!=="drag")return;const e=t.prepared.axis;e==="x"?(t.coords.cur.page.y=t.coords.start.page.y,t.coords.cur.client.y=t.coords.start.client.y,t.coords.velocity.client.y=0,t.coords.velocity.page.y=0):e==="y"&&(t.coords.cur.page.x=t.coords.start.page.x,t.coords.cur.client.x=t.coords.start.client.x,t.coords.velocity.client.x=0,t.coords.velocity.page.x=0)}function ri({iEvent:t,interaction:e}){if(e.prepared.name!=="drag")return;const n=e.prepared.axis;if(n==="x"||n==="y"){const i=n==="x"?"y":"x";t.page[i]=e.coords.start.page[i],t.client[i]=e.coords.start.client[i],t.delta[i]=0}}const Ie={id:"actions/drag",install:jo,listeners:{"interactions:before-action-move":Ge,"interactions:action-resume":Ge,"interactions:action-move":ri,"auto-start:check":t=>{const{interaction:e,interactable:n,buttons:i}=t,o=n.options.drag;if(!(!(o&&o.enabled)||e.pointerIsDown&&/mouse|pointer/.test(e.pointerType)&&(i&n.options.drag.mouseButtons)===0))return t.action={name:"drag",axis:o.lockAxis==="start"?o.startA