UNPKG

@mxtommy/kip

Version:

An advanced and versatile marine instrumentation package to display Signal K data.

3 lines 134 kB
import{a as ie,b as V,d as q,e as He,f as It,g as Wt,h as Ne,n as we,o as Ae,q as rt,r as Lt,s as ne,t as Bt,u as Ie,v as ae,w as Ft,x as We}from"./chunk-5SMHTIVS.js";import{c as Ht,g as oe}from"./chunk-NS2OV2OW.js";import{a as Nt,b as At,e as Le,f as Be,h as Fe,i as Gt,j as Ge}from"./chunk-W6MCE3GH.js";import{e as Ot}from"./chunk-VFJD3XKT.js";import{a as Me,d as F,i as Oe,m as Mt,n as Pt}from"./chunk-2TP7C66X.js";import{Ad as St,Ba as Q,Bb as pt,Bc as be,Cb as gt,Cc as _e,Da as A,Db as L,Dd as kt,Eb as y,Fb as _,Fc as Ct,Ga as ue,Gb as ke,Gc as $,Ha as B,Hb as J,Hc as xt,Ib as fe,Jb as ft,La as pe,Mb as mt,Nb as U,Pb as C,Qc as Et,Qe as ve,Rb as S,Re as Pe,Sb as it,Tb as Te,Te as se,Ua as dt,Ub as yt,Ue as re,V as lt,Va as Ze,Vb as me,Wa as T,Wb as Z,Xb as ee,Zb as bt,_b as _t,_c as Dt,a as m,ab as et,ac as Re,b as E,cb as Ee,db as ge,ec as v,f as D,fc as vt,gb as R,gc as wt,ib as ht,ie as Tt,je as Rt,kb as De,la as X,lb as Se,le as zt,mb as ct,nb as ut,nc as ze,oc as ye,pc as te,qa as b,va as H,wa as N,wb as tt,x as xe,xb as I,yb as W,yc as st}from"./chunk-LEY6MANN.js";var h=class l{static getElements(o,e=document){if(typeof o=="string"){let t="getElementById"in e?e:void 0;if(t&&!isNaN(+o[0])){let s=t.getElementById(o);return s?[s]:[]}let i=e.querySelectorAll(o);if(!i.length&&o[0]!=="."&&o[0]!=="#"&&(i=e.querySelectorAll("."+o),i.length||(i=e.querySelectorAll("#"+o)),!i.length)){let s=e.querySelector(`[gs-id="${o}"]`);return s?[s]:[]}return Array.from(i)}return[o]}static getElement(o,e=document){if(typeof o=="string"){let t="getElementById"in e?e:void 0;if(!o.length)return null;if(t&&o[0]==="#")return t.getElementById(o.substring(1));if(o[0]==="#"||o[0]==="."||o[0]==="[")return e.querySelector(o);if(t&&!isNaN(+o[0]))return t.getElementById(o);let i=e.querySelector(o);return t&&!i&&(i=t.getElementById(o)),i||(i=e.querySelector("."+o)),i}return o}static lazyLoad(o){return o.lazyLoad||o.grid?.opts?.lazyLoad&&o.lazyLoad!==!1}static createDiv(o,e){let t=document.createElement("div");return o.forEach(i=>{i&&t.classList.add(i)}),e?.appendChild(t),t}static shouldSizeToContent(o,e=!1){return o?.grid&&(e?o.sizeToContent===!0||o.grid.opts.sizeToContent===!0&&o.sizeToContent===void 0:!!o.sizeToContent||o.grid.opts.sizeToContent&&o.sizeToContent!==!1)}static isIntercepted(o,e){return!(o.y>=e.y+e.h||o.y+o.h<=e.y||o.x+o.w<=e.x||o.x>=e.x+e.w)}static isTouching(o,e){return l.isIntercepted(o,{x:e.x-.5,y:e.y-.5,w:e.w+1,h:e.h+1})}static areaIntercept(o,e){let t=o.x>e.x?o.x:e.x,i=o.x+o.w<e.x+e.w?o.x+o.w:e.x+e.w;if(i<=t)return 0;let s=o.y>e.y?o.y:e.y,r=o.y+o.h<e.y+e.h?o.y+o.h:e.y+e.h;return r<=s?0:(i-t)*(r-s)}static area(o){return o.w*o.h}static sort(o,e=1){return o.sort((i,s)=>{let r=e*((i.y??1e4)-(s.y??1e4));return r===0?e*((i.x??1e4)-(s.x??1e4)):r})}static find(o,e){return e?o.find(t=>t.id===e):void 0}static toBool(o){return typeof o=="boolean"?o:typeof o=="string"?(o=o.toLowerCase(),!(o===""||o==="no"||o==="false"||o==="0")):!!o}static toNumber(o){return o===null||o.length===0?void 0:Number(o)}static parseHeight(o){let e,t="px";if(typeof o=="string")if(o==="auto"||o==="")e=0;else{let i=o.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!i)throw new Error(`Invalid height val = ${o}`);t=i[2]||"px",e=parseFloat(i[1])}else e=o;return{h:e,unit:t}}static defaults(o,...e){return e.forEach(t=>{for(let i in t){if(!t.hasOwnProperty(i))return;o[i]===null||o[i]===void 0?o[i]=t[i]:typeof t[i]=="object"&&typeof o[i]=="object"&&l.defaults(o[i],t[i])}}),o}static same(o,e){if(typeof o!="object")return o==e;if(typeof o!=typeof e||Object.keys(o).length!==Object.keys(e).length)return!1;for(let t in o)if(o[t]!==e[t])return!1;return!0}static copyPos(o,e,t=!1){return e.x!==void 0&&(o.x=e.x),e.y!==void 0&&(o.y=e.y),e.w!==void 0&&(o.w=e.w),e.h!==void 0&&(o.h=e.h),t&&(e.minW&&(o.minW=e.minW),e.minH&&(o.minH=e.minH),e.maxW&&(o.maxW=e.maxW),e.maxH&&(o.maxH=e.maxH)),o}static samePos(o,e){return o&&e&&o.x===e.x&&o.y===e.y&&(o.w||1)===(e.w||1)&&(o.h||1)===(e.h||1)}static sanitizeMinMax(o){o.minW||delete o.minW,o.minH||delete o.minH,o.maxW||delete o.maxW,o.maxH||delete o.maxH}static removeInternalAndSame(o,e){if(!(typeof o!="object"||typeof e!="object")&&!(Array.isArray(o)||Array.isArray(e)))for(let t in o){let i=o[t],s=e[t];t[0]==="_"||i===s?delete o[t]:i&&typeof i=="object"&&s!==void 0&&(l.removeInternalAndSame(i,s),Object.keys(i).length||delete o[t])}}static removeInternalForSave(o,e=!0){for(let t in o)(t[0]==="_"||o[t]===null||o[t]===void 0)&&delete o[t];delete o.grid,e&&delete o.el,o.autoPosition||delete o.autoPosition,o.noResize||delete o.noResize,o.noMove||delete o.noMove,o.locked||delete o.locked,(o.w===1||o.w===o.minW)&&delete o.w,(o.h===1||o.h===o.minH)&&delete o.h}static throttle(o,e){let t=!1;return(...i)=>{t||(t=!0,setTimeout(()=>{o(...i),t=!1},e))}}static removePositioningStyles(o){let e=o.style;e.position&&e.removeProperty("position"),e.left&&e.removeProperty("left"),e.top&&e.removeProperty("top"),e.width&&e.removeProperty("width"),e.height&&e.removeProperty("height")}static getScrollElement(o){if(!o)return document.scrollingElement||document.documentElement;let e=getComputedStyle(o);return/(auto|scroll)/.test(e.overflow+e.overflowY)?o:l.getScrollElement(o.parentElement)}static updateScrollPosition(o,e,t){let i=l.getScrollElement(o);if(!i)return;let s=o.getBoundingClientRect(),r=i.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,a=s.bottom-Math.min(r.bottom,n),u=s.top-Math.max(r.top,0),c=i.scrollTop;u<0&&t<0?o.offsetHeight>r.height?i.scrollTop+=t:i.scrollTop+=Math.abs(u)>Math.abs(t)?t:u:a>0&&t>0&&(o.offsetHeight>r.height?i.scrollTop+=t:i.scrollTop+=a>t?t:a),e.top+=i.scrollTop-c}static updateScrollResize(o,e,t){let i=l.getScrollElement(e),s=i.clientHeight,r=i===l.getScrollElement()?0:i.getBoundingClientRect().top,n=o.clientY-r,a=n<t,u=n>s-t;a?i.scrollBy({behavior:"smooth",top:n-t}):u&&i.scrollBy({behavior:"smooth",top:t-(s-n)})}static clone(o){return o==null||typeof o!="object"?o:o instanceof Array?[...o]:m({},o)}static cloneDeep(o){let e=["parentGrid","el","grid","subGrid","engine"],t=l.clone(o);for(let i in t)t.hasOwnProperty(i)&&typeof t[i]=="object"&&i.substring(0,2)!=="__"&&!e.find(s=>s===i)&&(t[i]=l.cloneDeep(o[i]));return t}static cloneNode(o){let e=o.cloneNode(!0);return e.removeAttribute("id"),e}static appendTo(o,e){let t;typeof e=="string"?t=l.getElement(e):t=e,t&&t.appendChild(o)}static addElStyles(o,e){if(e instanceof Object)for(let t in e)e.hasOwnProperty(t)&&(Array.isArray(e[t])?e[t].forEach(i=>{o.style[t]=i}):o.style[t]=e[t])}static initEvent(o,e){let t={type:e.type},i={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:e.target?e.target:o.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(s=>t[s]=o[s]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(s=>t[s]=o[s]),m(m({},t),i)}static simulateMouseEvent(o,e,t){let i=o,s=new MouseEvent(e,{bubbles:!0,composed:!0,cancelable:!0,view:window,detail:1,screenX:o.screenX,screenY:o.screenY,clientX:o.clientX,clientY:o.clientY,ctrlKey:i.ctrlKey??!1,altKey:i.altKey??!1,shiftKey:i.shiftKey??!1,metaKey:i.metaKey??!1,button:0,relatedTarget:o.target});(t||o.target).dispatchEvent(s)}static getValuesFromTransformedElement(o){let e=document.createElement("div");l.addElStyles(e,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),o.appendChild(e);let t=e.getBoundingClientRect();return o.removeChild(e),e.remove(),{xScale:1/t.width,yScale:1/t.height,xOffset:t.left,yOffset:t.top}}static swap(o,e,t){if(!o)return;let i=o[e];o[e]=o[t],o[t]=i}static canBeRotated(o){return!(!o||o.w===o.h||o.locked||o.noResize||o.grid?.opts.disableResize||o.minW&&o.minW===o.maxW||o.minH&&o.minH===o.maxH)}};var ot=(()=>{class l{constructor(e={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=e.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=e.maxRow,this._float=e.float,this.nodes=e.nodes||[],this.onChange=e.onChange}batchUpdate(e=!0,t=!0){return!!this.batchMode===e?this:(this.batchMode=e,e?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,t&&this._packNodes(),this._notify()),this)}_useEntireRowArea(e,t){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!e._moving||e._skipDown||t.y<=e.y)}_fixCollisions(e,t=e,i,s={}){if(this.sortNodes(-1),i=i||this.collide(e,t),!i)return!1;if(e._moving&&!s.nested&&!this.float&&this.swap(e,i))return!0;let r=t;!this._loading&&this._useEntireRowArea(e,t)&&(r={x:0,w:this.column,y:t.y,h:t.h},i=this.collide(e,r,s.skip));let n=!1,a={nested:!0,pack:!1},u=0;for(;i=i||this.collide(e,r,s.skip);){if(u++>this.nodes.length*2)throw new Error("Infinite collide check");let c;if(i.locked||this._loading||e._moving&&!e._skipDown&&t.y>e.y&&!this.float&&(!this.collide(i,E(m({},i),{y:e.y}),e)||!this.collide(i,E(m({},i),{y:t.y-i.h}),e))){e._skipDown=e._skipDown||t.y>e.y;let d=m(E(m({},t),{y:i.y+i.h}),a);c=this._loading&&h.samePos(e,d)?!0:this.moveNode(e,d),(i.locked||this._loading)&&c?h.copyPos(t,e):!i.locked&&c&&s.pack&&(this._packNodes(),t.y=i.y+i.h,h.copyPos(e,t)),n=n||c}else c=this.moveNode(i,m(E(m({},i),{y:t.y+t.h,skip:e}),a));if(!c)return n;i=void 0}return n}collide(e,t=e,i){let s=e._id,r=i?._id;return this.nodes.find(n=>n._id!==s&&n._id!==r&&h.isIntercepted(n,t))}collideAll(e,t=e,i){let s=e._id,r=i?._id;return this.nodes.filter(n=>n._id!==s&&n._id!==r&&h.isIntercepted(n,t))}directionCollideCoverage(e,t,i){if(!t.rect||!e._rect)return;let s=e._rect,r=m({},t.rect);r.y>s.y?(r.h+=r.y-s.y,r.y=s.y):r.h+=s.y-r.y,r.x>s.x?(r.w+=r.x-s.x,r.x=s.x):r.w+=s.x-r.x;let n,a=.5;for(let u of i){if(u.locked||!u._rect)break;let c=u._rect,d=Number.MAX_VALUE,p=Number.MAX_VALUE;s.y<c.y?d=(r.y+r.h-c.y)/c.h:s.y+s.h>c.y+c.h&&(d=(c.y+c.h-r.y)/c.h),s.x<c.x?p=(r.x+r.w-c.x)/c.w:s.x+s.w>c.x+c.w&&(p=(c.x+c.w-r.x)/c.w);let g=Math.min(p,d);g>a&&(a=g,n=u)}return t.collide=n,n}cacheRects(e,t,i,s,r,n){return this.nodes.forEach(a=>a._rect={y:a.y*t+i,x:a.x*e+n,w:a.w*e-n-s,h:a.h*t-i-r}),this}swap(e,t){if(!t||t.locked||!e||e.locked)return!1;function i(){let r=t.x,n=t.y;return t.x=e.x,t.y=e.y,e.h!=t.h?(e.x=r,e.y=t.y+t.h):e.w!=t.w?(e.x=t.x+t.w,e.y=n):(e.x=r,e.y=n),e._dirty=t._dirty=!0,!0}let s;if(e.w===t.w&&e.h===t.h&&(e.x===t.x||e.y===t.y)&&(s=h.isTouching(e,t)))return i();if(s!==!1){if(e.w===t.w&&e.x===t.x&&(s||(s=h.isTouching(e,t)))){if(t.y<e.y){let r=e;e=t,t=r}return i()}if(s!==!1){if(e.h===t.h&&e.y===t.y&&(s||(s=h.isTouching(e,t)))){if(t.x<e.x){let r=e;e=t,t=r}return i()}return!1}}}isAreaEmpty(e,t,i,s){let r={x:e||0,y:t||0,w:i||1,h:s||1};return!this.collide(r)}compact(e="compact",t=!0){if(this.nodes.length===0)return this;t&&this.sortNodes();let i=this.batchMode;i||this.batchUpdate();let s=this._inColumnResize;s||(this._inColumnResize=!0);let r=this.nodes;return this.nodes=[],r.forEach((n,a,u)=>{let c;n.locked||(n.autoPosition=!0,e==="list"&&a&&(c=u[a-1])),this.addNode(n,!1,c)}),s||delete this._inColumnResize,i||this.batchUpdate(!1),this}set float(e){this._float!==e&&(this._float=e||!1,e||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(e=1){return this.nodes=h.sort(this.nodes,e),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(e=>{if(e._updating||e._orig===void 0||e.y===e._orig.y)return;let t=e.y;for(;t>e._orig.y;)--t,this.collide(e,{x:e.x,y:t,w:e.w,h:e.h})||(e._dirty=!0,e.y=t)}):this.nodes.forEach((e,t)=>{if(!e.locked)for(;e.y>0;){let i=t===0?0:e.y-1;if(!(t===0||!this.collide(e,{x:e.x,y:i,w:e.w,h:e.h})))break;e._dirty=e.y!==i,e.y=i}}),this)}prepareNode(e,t){e._id=e._id??l._idSeq++;let i=e.id;if(i){let r=1;for(;this.nodes.find(n=>n.id===e.id&&n!==e);)e.id=i+"_"+r++}(e.x===void 0||e.y===void 0||e.x===null||e.y===null)&&(e.autoPosition=!0);let s={x:0,y:0,w:1,h:1};return h.defaults(e,s),e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,h.sanitizeMinMax(e),typeof e.x=="string"&&(e.x=Number(e.x)),typeof e.y=="string"&&(e.y=Number(e.y)),typeof e.w=="string"&&(e.w=Number(e.w)),typeof e.h=="string"&&(e.h=Number(e.h)),isNaN(e.x)&&(e.x=s.x,e.autoPosition=!0),isNaN(e.y)&&(e.y=s.y,e.autoPosition=!0),isNaN(e.w)&&(e.w=s.w),isNaN(e.h)&&(e.h=s.h),this.nodeBoundFix(e,t),e}nodeBoundFix(e,t){let i=e._orig||h.copyPos({},e);if(e.maxW&&(e.w=Math.min(e.w||1,e.maxW)),e.maxH&&(e.h=Math.min(e.h||1,e.maxH)),e.minW&&(e.w=Math.max(e.w||1,e.minW)),e.minH&&(e.h=Math.max(e.h||1,e.minH)),(e.x||0)+(e.w||1)>this.column&&this.column<this.defaultColumn&&!this._inColumnResize&&!this.skipCacheUpdate&&e._id!=null&&this.findCacheLayout(e,this.defaultColumn)===-1){let r=m({},e);r.autoPosition||r.x===void 0?(delete r.x,delete r.y):r.x=Math.min(this.defaultColumn-1,r.x),r.w=Math.min(this.defaultColumn,r.w||1),this.cacheOneLayout(r,this.defaultColumn)}return e.w>this.column?e.w=this.column:e.w<1&&(e.w=1),this.maxRow&&e.h>this.maxRow?e.h=this.maxRow:e.h<1&&(e.h=1),e.x<0&&(e.x=0),e.y<0&&(e.y=0),e.x+e.w>this.column&&(t?e.w=this.column-e.x:e.x=this.column-e.w),this.maxRow&&e.y+e.h>this.maxRow&&(t?e.h=this.maxRow-e.y:e.y=this.maxRow-e.h),h.samePos(e,i)||(e._dirty=!0),this}getDirtyNodes(e){return e?this.nodes.filter(t=>t._dirty&&!h.samePos(t,t._orig)):this.nodes.filter(t=>t._dirty)}_notify(e){if(this.batchMode||!this.onChange)return this;let t=(e||[]).concat(this.getDirtyNodes());return this.onChange(t),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(e=>{delete e._dirty,delete e._lastTried}),this)}saveInitial(){return this.nodes.forEach(e=>{e._orig=h.copyPos({},e),delete e._dirty}),this._hasLocked=this.nodes.some(e=>e.locked),this}restoreInitial(){return this.nodes.forEach(e=>{!e._orig||h.samePos(e,e._orig)||(h.copyPos(e,e._orig),e._dirty=!0)}),this._notify(),this}findEmptyPosition(e,t=this.nodes,i=this.column,s){let r=s?s.y*i+(s.x+s.w):0,n=!1;for(let a=r;!n;++a){let u=a%i,c=Math.floor(a/i);if(u+e.w>i)continue;let d={x:u,y:c,w:e.w,h:e.h};t.find(p=>h.isIntercepted(d,p))||((e.x!==u||e.y!==c)&&(e._dirty=!0),e.x=u,e.y=c,delete e.autoPosition,n=!0)}return n}addNode(e,t=!1,i){let s=this.nodes.find(n=>n._id===e._id);if(s)return s;this._inColumnResize?this.nodeBoundFix(e):this.prepareNode(e),delete e._temporaryRemoved,delete e._removeDOM;let r;return e.autoPosition&&this.findEmptyPosition(e,this.nodes,this.column,i)&&(delete e.autoPosition,r=!0),this.nodes.push(e),t&&this.addedNodes.push(e),r||this._fixCollisions(e),this.batchMode||this._packNodes()._notify(),e}removeNode(e,t=!0,i=!1){return this.nodes.find(s=>s._id===e._id)?(i&&this.removedNodes.push(e),t&&(e._removeDOM=!0),this.nodes=this.nodes.filter(s=>s._id!==e._id),e._isAboutToRemove||this._packNodes(),this._notify([e]),this):this}removeAll(e=!0,t=!0){if(delete this._layouts,!this.nodes.length)return this;e&&this.nodes.forEach(s=>s._removeDOM=!0);let i=this.nodes;return this.removedNodes=t?i:[],this.nodes=[],this._notify(i)}moveNodeCheck(e,t){if(!this.changedPosConstrain(e,t))return!1;if(t.pack=!0,!this.maxRow)return this.moveNode(e,t);let i,s=new l({column:this.column,float:this.float,nodes:this.nodes.map(n=>n._id===e._id?(i=m({},n),i):m({},n))});if(!i)return!1;let r=s.moveNode(i,t)&&s.getRow()<=Math.max(this.getRow(),this.maxRow);if(!r&&!t.resizing&&t.collide){let n=t.collide.el.gridstackNode;if(this.swap(e,n))return this._notify(),!0}return r?(s.nodes.filter(n=>n._dirty).forEach(n=>{let a=this.nodes.find(u=>u._id===n._id);a&&(h.copyPos(a,n),a._dirty=!0)}),this._notify(),!0):!1}willItFit(e){if(delete e._willFitPos,!this.maxRow)return!0;let t=new l({column:this.column,float:this.float,nodes:this.nodes.map(s=>m({},s))}),i=m({},e);return this.cleanupNode(i),delete i.el,delete i._id,delete i.content,delete i.grid,t.addNode(i),t.getRow()<=this.maxRow?(e._willFitPos=h.copyPos({},i),!0):!1}changedPosConstrain(e,t){return t.w=t.w||e.w,t.h=t.h||e.h,e.x!==t.x||e.y!==t.y?!0:(e.maxW&&(t.w=Math.min(t.w,e.maxW)),e.maxH&&(t.h=Math.min(t.h,e.maxH)),e.minW&&(t.w=Math.max(t.w,e.minW)),e.minH&&(t.h=Math.max(t.h,e.minH)),e.w!==t.w||e.h!==t.h)}moveNode(e,t){if(!e||!t)return!1;let i;t.pack===void 0&&!this.batchMode&&(i=t.pack=!0),typeof t.x!="number"&&(t.x=e.x),typeof t.y!="number"&&(t.y=e.y),typeof t.w!="number"&&(t.w=e.w),typeof t.h!="number"&&(t.h=e.h);let s=e.w!==t.w||e.h!==t.h,r=h.copyPos({},e,!0);if(h.copyPos(r,t),this.nodeBoundFix(r,s),h.copyPos(t,r),!t.forceCollide&&h.samePos(e,t))return!1;let n=h.copyPos({},e),a=this.collideAll(e,r,t.skip),u=!0;if(a.length){let c=e._moving&&!t.nested,d=c?this.directionCollideCoverage(e,t,a):a[0];if(c&&d&&e.grid?.opts?.subGridDynamic&&!e.grid._isTemp){let p=h.areaIntercept(t.rect,d._rect),g=h.area(t.rect),w=h.area(d._rect);p/(g<w?g:w)>.8&&(d.grid.makeSubGrid(d.el,void 0,e),d=void 0)}d?u=!this._fixCollisions(e,r,d,t):(u=!1,i&&delete t.pack)}return u&&!h.samePos(e,r)&&(e._dirty=!0,h.copyPos(e,r)),t.pack&&this._packNodes()._notify(),!h.samePos(e,n)}getRow(){return this.nodes.reduce((e,t)=>Math.max(e,t.y+t.h),0)}beginUpdate(e){return e._updating||(e._updating=!0,delete e._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let e=this.nodes.find(t=>t._updating);return e&&(delete e._updating,delete e._skipDown),this}save(e=!0,t,i){let s=this._layouts?.length||0,r;s&&(i?i!==this.column&&(r=this._layouts[i]):this.column!==s-1&&(r=this._layouts[s-1]));let n=[];return this.sortNodes(),this.nodes.forEach(a=>{let u=r?.find(d=>d._id===a._id),c=m(m({},a),u||{});h.removeInternalForSave(c,!e),t&&t(a,c),n.push(c)}),n}layoutsNodesChange(e){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((t,i)=>{if(!t||i===this.column)return this;if(i<this.column)this._layouts[i]=void 0;else{let s=i/this.column;e.forEach(r=>{if(!r._orig)return;let n=t.find(a=>a._id===r._id);n&&(n.y>=0&&r.y!==r._orig.y&&(n.y+=r.y-r._orig.y,n.y<0&&(n.y=0)),r.x!==r._orig.x&&(n.x=Math.round(r.x*s),n.x<0&&(n.x=0)),r.w!==r._orig.w&&(n.w=Math.round(r.w*s),n.w<1&&(n.w=1)))})}}),this)}columnChanged(e,t,i="moveScale"){if(!this.nodes.length||!t||e===t)return this;let s=i==="compact"||i==="list";s&&this.sortNodes(1),t<e&&this.cacheLayout(this.nodes,e),this.batchUpdate();let r=[],n=s?this.nodes:h.sort(this.nodes,-1);if(t>e&&this._layouts){let a=this._layouts[t]||[],u=this._layouts.length-1;!a.length&&e!==u&&this._layouts[u]?.length&&(e=u,this._layouts[u].forEach(c=>{let d=n.find(p=>p._id===c._id);d&&(!s&&!c.autoPosition&&(d.x=c.x??d.x,d.y=c.y??d.y),d.w=c.w??d.w,(c.x==null||c.y===void 0)&&(d.autoPosition=!0))})),a.forEach(c=>{let d=n.findIndex(p=>p._id===c._id);if(d!==-1){let p=n[d];if(s){p.w=c.w;return}(c.autoPosition||isNaN(c.x)||isNaN(c.y))&&this.findEmptyPosition(c,r),c.autoPosition||(p.x=c.x??p.x,p.y=c.y??p.y,p.w=c.w??p.w,r.push(p)),n.splice(d,1)}})}if(s)this.compact(i,!1);else{if(n.length)if(typeof i=="function")i(t,e,r,n);else{let a=s||i==="none"?1:t/e,u=i==="move"||i==="moveScale",c=i==="scale"||i==="moveScale";n.forEach(d=>{d.x=t===1?0:u?Math.round(d.x*a):Math.min(d.x,t-1),d.w=t===1||e===1?1:c?Math.round(d.w*a)||1:Math.min(d.w,t),r.push(d)}),n=[]}r=h.sort(r,-1),this._inColumnResize=!0,this.nodes=[],r.forEach(a=>{this.addNode(a,!1),delete a._orig})}return this.nodes.forEach(a=>delete a._orig),this.batchUpdate(!1,!s),delete this._inColumnResize,this}cacheLayout(e,t,i=!1){let s=[];return e.forEach((r,n)=>{if(r._id===void 0){let a=r.id?this.nodes.find(u=>u.id===r.id):void 0;r._id=a?._id??l._idSeq++}s[n]={x:r.x,y:r.y,w:r.w,_id:r._id}}),this._layouts=i?[]:this._layouts||[],this._layouts[t]=s,this}cacheOneLayout(e,t){e._id=e._id??l._idSeq++;let i={x:e.x,y:e.y,w:e.w,_id:e._id};(e.autoPosition||e.x===void 0)&&(delete i.x,delete i.y,e.autoPosition&&(i.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[t]=this._layouts[t]||[];let s=this.findCacheLayout(e,t);return s===-1?this._layouts[t].push(i):this._layouts[t][s]=i,this}findCacheLayout(e,t){return this._layouts?.[t]?.findIndex(i=>i._id===e._id)??-1}removeNodeFromLayoutCache(e){if(this._layouts)for(let t=0;t<this._layouts.length;t++){let i=this.findCacheLayout(e,t);i!==-1&&this._layouts[t].splice(i,1)}}cleanupNode(e){for(let t in e)t[0]==="_"&&t!=="_id"&&delete e[t];return this}}return l._idSeq=0,l})();var P={alwaysShowResizeHandle:"mobile",animate:!0,auto:!0,cellHeight:"auto",cellHeightThrottle:100,cellHeightUnit:"px",column:12,draggable:{handle:".grid-stack-item-content",appendTo:"body",scroll:!0},handle:".grid-stack-item-content",itemClass:"grid-stack-item",margin:10,marginUnit:"px",maxRow:0,minRow:0,placeholderClass:"grid-stack-placeholder",placeholderText:"",removableOptions:{accept:"grid-stack-item",decline:"grid-stack-non-removable"},resizable:{handles:"se"},rtl:"auto"};var f=class{};var z=typeof window<"u"&&typeof document<"u"&&("ontouchstart"in document||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),k=class{};function Ue(l,o){l.touches.length>1||(l.cancelable&&l.preventDefault(),h.simulateMouseEvent(l.changedTouches[0],o))}function Ut(l,o){l.cancelable&&l.preventDefault(),h.simulateMouseEvent(l,o)}function le(l){k.touchHandled||(k.touchHandled=!0,Ue(l,"mousedown"))}function de(l){k.touchHandled&&Ue(l,"mousemove")}function he(l){if(!k.touchHandled)return;k.pointerLeaveTimeout&&(window.clearTimeout(k.pointerLeaveTimeout),delete k.pointerLeaveTimeout);let o=!!f.dragElement;Ue(l,"mouseup"),o||Ue(l,"click"),k.touchHandled=!1}function ce(l){l.pointerType!=="mouse"&&l.target.releasePointerCapture(l.pointerId)}function nt(l){f.dragElement&&l.pointerType!=="mouse"&&Ut(l,"mouseenter")}function at(l){f.dragElement&&l.pointerType!=="mouse"&&(k.pointerLeaveTimeout=window.setTimeout(()=>{delete k.pointerLeaveTimeout,Ut(l,"mouseleave")},10))}var $t=(()=>{class l{constructor(e,t,i){this.host=e,this.dir=t,this.option=i,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){if(this.option.element)try{this.el=this.option.element instanceof HTMLElement?this.option.element:this.host.querySelector(this.option.element)}catch(e){this.option.element=void 0,console.error("Query for resizeable handle failed, falling back",e)}return this.el||(this.el=document.createElement("div"),this.host.appendChild(this.el)),this.el.classList.add("ui-resizable-handle"),this.el.classList.add(`${l.prefix}${this.dir}`),this.el.style.zIndex="100",this.el.style.userSelect="none",this.el.addEventListener("mousedown",this._mouseDown),z&&(this.el.addEventListener("touchstart",le),this.el.addEventListener("pointerdown",ce)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),z&&(this.el.removeEventListener("touchstart",le),this.el.removeEventListener("pointerdown",ce)),this.option.element||this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(e){this.mouseDownEvent=e,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),z&&(this.el.addEventListener("touchmove",de),this.el.addEventListener("touchend",he)),e.stopPropagation(),e.preventDefault()}_mouseMove(e){let t=this.mouseDownEvent;this.moving?this._triggerEvent("move",e):Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",e),document.addEventListener("keydown",this._keyEvent)),e.stopPropagation()}_mouseUp(e){this.moving&&(this._triggerEvent("stop",e),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),z&&(this.el.removeEventListener("touchmove",de),this.el.removeEventListener("touchend",he)),delete this.moving,delete this.mouseDownEvent,e.stopPropagation(),e.preventDefault()}_keyEvent(e){e.key==="Escape"&&(this.host.gridstackNode?.grid?.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(e,t){return this.option[e]&&this.option[e](t),this}}return l.prefix="ui-resizable-",l})();var K=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(o,e){this._eventRegister[o]=e}off(o){delete this._eventRegister[o]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(o,e){if(!this.disabled&&this._eventRegister&&this._eventRegister[o])return this._eventRegister[o](e)}};var Vt=(()=>{class l extends K{constructor(e,t={}){super(),this.el=e,this.option=t,this.rectScale={x:1,y:1},this._ui=()=>{let s=this.el.parentElement.getBoundingClientRect(),r={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},n=this.temporalRect||r;return{position:{left:(n.left-s.left)*this.rectScale.x,top:(n.top-s.top)*this.rectScale.y},size:{width:n.width*this.rectScale.x,height:n.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(e){let t=e.handles&&e.handles!==this.option.handles,i=e.autoHide&&e.autoHide!==this.option.autoHide;return Object.keys(e).forEach(s=>this.option[s]=e[s]),t&&(this._removeHandlers(),this._setupHandlers()),i&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(e){return e?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),f.overResizeElement===this&&delete f.overResizeElement),this}_mouseOver(e){f.overResizeElement||f.dragElement||(f.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(e){f.overResizeElement===this&&(delete f.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(e=>e.trim()).map(e=>new $t(this.el,e,{element:this.option.element,start:t=>this._resizeStart(t),stop:t=>this._resizeStop(t),move:t=>this._resizing(t,e)})),this}_resizeStart(e){this.sizeToContent=h.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=h.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=e,this._setupHelper(),this._applyChange();let t=h.initEvent(e,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(t,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",t),this}_resizing(e,t){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(e,t),this._applyChange();let i=h.initEvent(e,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(i,this._ui()),this.triggerEvent("resize",i),this}_resizeStop(e){let t=h.initEvent(e,{type:"resizestop",target:this.el});return this._cleanHelper(),this.option.stop&&this.option.stop(t),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",t),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=l._originStyleProp.map(i=>this.el.style[i]),this.parentOriginStylePosition=this.el.parentElement.style.position;let e=this.el.parentElement,t=h.getValuesFromTransformedElement(e);return this.rectScale={x:t.xScale,y:t.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return l._originStyleProp.forEach((e,t)=>{this.el.style[e]=this.elOriginStyleVal[t]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(e,t){let i=this.startEvent,s={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},r=e.clientX-i.clientX,n=this.sizeToContent?0:e.clientY-i.clientY,a,u;t.indexOf("e")>-1?s.width+=r:t.indexOf("w")>-1&&(s.width-=r,s.left+=r,a=!0),t.indexOf("s")>-1?s.height+=n:t.indexOf("n")>-1&&(s.height-=n,s.top+=n,u=!0);let c=this._constrainSize(s.width,s.height,a,u);return Math.round(s.width)!==Math.round(c.width)&&(t.indexOf("w")>-1&&(s.left+=s.width-c.width),s.width=c.width),Math.round(s.height)!==Math.round(c.height)&&(t.indexOf("n")>-1&&(s.top+=s.height-c.height),s.height=c.height),s}_constrainSize(e,t,i,s){let r=this.option,n=(i?r.maxWidthMoveLeft:r.maxWidth)||Number.MAX_SAFE_INTEGER,a=r.minWidth/this.rectScale.x||e,u=(s?r.maxHeightMoveUp:r.maxHeight)||Number.MAX_SAFE_INTEGER,c=r.minHeight/this.rectScale.y||t,d=Math.min(n,Math.max(a,e)),p=Math.min(u,Math.max(c,t));return{width:d,height:p}}_applyChange(){let e={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){let t=this.el.parentElement,{left:i,top:s}=t.getBoundingClientRect();e={left:i,top:s,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(t=>{let i=this.temporalRect[t],s=t==="width"||t==="left"?this.rectScale.x:t==="height"||t==="top"?this.rectScale.y:1;this.el.style[t]=(i-e[t])*s+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(e=>e.destroy()),delete this.handlers,this}}return l._originStyleProp=["width","height","position","left","top","opacity","zIndex"],l})();var ri='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle',qt=(()=>{class l extends K{constructor(e,t={}){super(),this.el=e,this.option=t,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};let i=t?.handle?.substring(1),s=e.gridstackNode;this.dragEls=!i||e.classList.contains(i)?[e]:s?.subGrid?[e.querySelector(t.handle)||e]:Array.from(e.querySelectorAll(t.handle)),this.dragEls.length===0&&(this.dragEls=[e]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(e=>{e.addEventListener("mousedown",this._mouseDown),z&&(e.addEventListener("touchstart",le),e.addEventListener("pointerdown",ce))}),this.el.classList.remove("ui-draggable-disabled"))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(t=>{t.removeEventListener("mousedown",this._mouseDown),z&&(t.removeEventListener("touchstart",le),t.removeEventListener("pointerdown",ce))}),e||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this}_mouseDown(e){if(k.touchHandled&&e.isTrusted&&(k.touchHandled=!1),!f.mouseHandled)return e.button!==0||!this.dragEls.find(t=>t===e.target)&&e.target.closest(ri)||this.option.cancel&&e.target.closest(this.option.cancel)||(this.mouseDownEvent=e,delete this.dragging,delete f.dragElement,delete f.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),z&&(e.currentTarget.addEventListener("touchmove",de),e.currentTarget.addEventListener("touchend",he)),e.preventDefault(),document.activeElement&&document.activeElement.blur(),f.mouseHandled=!0),!0}_callDrag(e){if(!this.dragging)return;let t=h.initEvent(e,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(t,this.ui()),this.triggerEvent("drag",t)}_mouseMove(e){let t=this.mouseDownEvent;if(this.lastDrag=e,this.dragging)if(this._dragFollow(e),f.pauseDrag){let i=Number.isInteger(f.pauseDrag)?f.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(e),i)}else this._callDrag(e);else if(Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>3){this.dragging=!0,f.dragElement=this;let i=this.el.gridstackNode?.grid;i?f.dropElement=i.el.ddElement.ddDroppable:delete f.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=h.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(e,this.el,this.helperContainment),this._setupHelperStyle(e);let s=h.initEvent(e,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(s,this.ui()),this.triggerEvent("dragstart",s),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(e){if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),z&&e.currentTarget&&(e.currentTarget.removeEventListener("touchmove",de,!0),e.currentTarget.removeEventListener("touchend",he,!0)),this.dragging){delete this.dragging,delete this.el.gridstackNode?._origRotate,document.removeEventListener("keydown",this._keyEvent),f.dropElement?.el===this.el.parentElement&&delete f.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();let t=h.initEvent(e,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(t),this.triggerEvent("dragstop",t),f.dropElement&&f.dropElement.drop(e)}delete this.helper,delete this.mouseDownEvent,delete f.dragElement,delete f.dropElement,delete f.mouseHandled,e.preventDefault()}_keyEvent(e){let t=this.el.gridstackNode,i=t?.grid||f.dropElement?.el?.gridstack;if(e.key==="Escape")t&&t._origRotate&&(t._orig=t._origRotate,delete t._origRotate),i?.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(t&&i&&(e.key==="r"||e.key==="R")){if(!h.canBeRotated(t))return;t._origRotate=t._origRotate||m({},t._orig),delete t._moving,i.setAnimation(!1).rotate(t.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),t._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,t.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",h.swap(t._orig,"w","h"),delete t._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let e=this.el;return typeof this.option.helper=="function"?e=this.option.helper(this.el):this.option.helper==="clone"&&(e=h.cloneNode(this.el)),e.parentElement||h.appendTo(e,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=l.originStyleProp.map(t=>this.el.style[t]),e}_setupHelperStyle(e){this.helper.classList.add("ui-draggable-dragging"),this.el.gridstackNode?.grid?.el.classList.add("grid-stack-dragging");let t=this.helper.style;return t.pointerEvents="none",t.width=this.dragOffset.width+"px",t.height=this.dragOffset.height+"px",t.willChange="left, top",t.position="fixed",this._dragFollow(e),t.transition="none",setTimeout(()=>{this.helper&&(t.transition=null)},0),this}_removeHelperStyle(){if(this.helper.classList.remove("ui-draggable-dragging"),this.el.gridstackNode?.grid?.el.classList.remove("grid-stack-dragging"),!this.helper?.gridstackNode?._isAboutToRemove&&this.dragElementOriginStyle){let t=this.helper,i=this.dragElementOriginStyle.transition||null;t.style.transition=this.dragElementOriginStyle.transition="none",l.originStyleProp.forEach(s=>t.style[s]=this.dragElementOriginStyle[s]||null),setTimeout(()=>t.style.transition=i,50)}return delete this.dragElementOriginStyle,this}_dragFollow(e){let t={left:0,top:0},i=this.helper.style,s=this.dragOffset;i.left=(e.clientX+s.offsetLeft-t.left)*this.dragTransform.xScale+"px",i.top=(e.clientY+s.offsetTop-t.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(e,t,i){let s=0,r=0;i&&(s=this.dragTransform.xOffset,r=this.dragTransform.yOffset);let n=t.getBoundingClientRect();return{left:n.left,top:n.top,offsetLeft:-e.clientX+n.left-s,offsetTop:-e.clientY+n.top-r,width:n.width*this.dragTransform.xScale,height:n.height*this.dragTransform.yScale}}ui(){let t=this.el.parentElement.getBoundingClientRect(),i=this.helper.getBoundingClientRect();return{position:{top:(i.top-t.top)*this.dragTransform.yScale,left:(i.left-t.left)*this.dragTransform.xScale}}}}return l.originStyleProp=["width","height","transform","transform-origin","transition","pointerEvents","position","left","top","minWidth","willChange"],l})();var $e=class extends K{constructor(o,e={}){super(),this.el=o,this.option=e,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(o,e){super.on(o,e)}off(o){super.off(o)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),z&&(this.el.addEventListener("pointerenter",nt),this.el.addEventListener("pointerleave",at)))}disable(o=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),o||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),z&&(this.el.removeEventListener("pointerenter",nt),this.el.removeEventListener("pointerleave",at)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(o){return Object.keys(o).forEach(e=>this.option[e]=o[e]),this._setupAccept(),this}_mouseEnter(o){if(!f.dragElement||k.touchHandled&&o.isTrusted||!this._canDrop(f.dragElement.el))return;o.preventDefault(),o.stopPropagation(),f.dropElement&&f.dropElement!==this&&f.dropElement._mouseLeave(o,!0),f.dropElement=this;let e=h.initEvent(o,{target:this.el,type:"dropover"});this.option.over&&this.option.over(e,this._ui(f.dragElement)),this.triggerEvent("dropover",e),this.el.classList.add("ui-droppable-over")}_mouseLeave(o,e=!1){if(!f.dragElement||f.dropElement!==this)return;o.preventDefault(),o.stopPropagation();let t=h.initEvent(o,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(t,this._ui(f.dragElement)),this.triggerEvent("dropout",t),f.dropElement===this&&(delete f.dropElement,!e)){let i,s=this.el.parentElement;for(;!i&&s;)i=s.ddElement?.ddDroppable,s=s.parentElement;i&&i._mouseEnter(o)}}drop(o){o.preventDefault();let e=h.initEvent(o,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(e,this._ui(f.dragElement)),this.triggerEvent("drop",e)}_canDrop(o){return o&&(!this.accept||this.accept(o))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=o=>o.classList.contains(this.option.accept)||o.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(o){return m({draggable:o.el},o.ui())}};var Ve=class l{static init(o){return o.ddElement||(o.ddElement=new l(o)),o.ddElement}constructor(o){this.el=o}on(o,e){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(o)>-1?this.ddDraggable.on(o,e):this.ddDroppable&&["drop","dropover","dropout"].indexOf(o)>-1?this.ddDroppable.on(o,e):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(o)>-1&&this.ddResizable.on(o,e),this}off(o){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(o)>-1?this.ddDraggable.off(o):this.ddDroppable&&["drop","dropover","dropout"].indexOf(o)>-1?this.ddDroppable.off(o):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(o)>-1&&this.ddResizable.off(o),this}setupDraggable(o){return this.ddDraggable?this.ddDraggable.updateOption(o):this.ddDraggable=new qt(this.el,o),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(o){return this.ddResizable?this.ddResizable.updateOption(o):this.ddResizable=new Vt(this.el,o),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(o){return this.ddDroppable?this.ddDroppable.updateOption(o):this.ddDroppable=new $e(this.el,o),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}};var qe=class{resizable(o,e,t,i){return this._getDDElements(o,e).forEach(s=>{if(e==="disable"||e==="enable")s.ddResizable&&s.ddResizable[e]();else if(e==="destroy")s.ddResizable&&s.cleanResizable();else if(e==="option")s.setupResizable({[t]:i});else{let n=s.el.gridstackNode.grid,a=s.el.getAttribute("gs-resize-handles")||n.opts.resizable.handles||"e,s,se";a==="all"&&(a="n,e,s,w,se,sw,ne,nw");let u=!n.opts.alwaysShowResizeHandle;s.setupResizable(E(m({},n.opts.resizable),{handles:a,autoHide:u,start:e.start,stop:e.stop,resize:e.resize}))}}),this}draggable(o,e,t,i){return this._getDDElements(o,e).forEach(s=>{if(e==="disable"||e==="enable")s.ddDraggable&&s.ddDraggable[e]();else if(e==="destroy")s.ddDraggable&&s.cleanDraggable();else if(e==="option")s.setupDraggable({[t]:i});else{let r=s.el.gridstackNode.grid;s.setupDraggable(E(m({},r.opts.draggable),{start:e.start,stop:e.stop,drag:e.drag}))}}),this}dragIn(o,e){return this._getDDElements(o).forEach(t=>t.setupDraggable(e)),this}droppable(o,e,t,i){return typeof e.accept=="function"&&!e._accept&&(e._accept=e.accept,e.accept=s=>e._accept(s)),this._getDDElements(o,e).forEach(s=>{e==="disable"||e==="enable"?s.ddDroppable&&s.ddDroppable[e]():e==="destroy"?s.ddDroppable&&s.cleanDroppable():e==="option"?s.setupDroppable({[t]:i}):s.setupDroppable(e)}),this}isDroppable(o){return!!(o?.ddElement?.ddDroppable&&!o.ddElement.ddDroppable.disabled)}isDraggable(o){return!!(o?.ddElement?.ddDraggable&&!o.ddElement.ddDraggable.disabled)}isResizable(o){return!!(o?.ddElement?.ddResizable&&!o.ddElement.ddResizable.disabled)}on(o,e,t){return this._getDDElements(o).forEach(i=>i.on(e,s=>{t(s,f.dragElement?f.dragElement.el:s.target,f.dragElement?f.dragElement.helper:null)})),this}off(o,e){return this._getDDElements(o).forEach(t=>t.off(e)),this}_getDDElements(o,e){let t=o.gridstack||e!=="destroy"&&e!=="disable",i=h.getElements(o);return i.length?i.map(r=>r.ddElement||(t?Ve.init(r):null)).filter(r=>r):[]}};var M=new qe,j=(()=>{class l{static init(e={},t=".grid-stack"){if(typeof document>"u")return null;let i=l.getGridElement(t);return i?(i.gridstack||(i.gridstack=new l(i,h.cloneDeep(e))),i.gridstack):(console.error(typeof t=="string"?'GridStack.initAll() no grid was found with selector "'+t+`" - element missing or wrong selector ? Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`:"GridStack.init() no grid element was passed."),null)}static initAll(e={},t=".grid-stack"){let i=[];return typeof document>"u"||(l.getGridElements(t).forEach(s=>{s.gridstack||(s.gridstack=new l(s,h.cloneDeep(e))),i.push(s.gridstack)}),i.length===0&&console.error('GridStack.initAll() no grid was found with selector "'+t+`" - element missing or wrong selector ? Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),i}static addGrid(e,t={}){if(!e)return null;let i=e;if(i.gridstack){let n=i.gridstack;return t&&(n.opts=m(m({},n.opts),t)),t.children!==void 0&&n.load(t.children),n}return(!e.classList.contains("grid-stack")||l.addRemoveCB)&&(l.addRemoveCB?i=l.addRemoveCB(e,t,!0,!0):i=h.createDiv(["grid-stack",t.class],e)),l.init(t,i)}static registerEngine(e){l.engineClass=e}get placeholder(){if(!this._placeholder){this._placeholder=h.createDiv([this.opts.placeholderClass,P.itemClass,this.opts.itemClass]);let e=h.createDiv(["placeholder-content"],this._placeholder);this.opts.placeholderText&&(e.textContent=this.opts.placeholderText)}return this._placeholder}constructor(e,t={}){this.el=e,this.opts=t,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},e.gridstack=this,this.opts=t=t||{},e.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),t.row&&(t.minRow=t.maxRow=t.row,delete t.row);let i=h.toNumber(e.getAttribute("gs-row"));t.column==="auto"&&delete t.column,t.alwaysShowResizeHandle!==void 0&&(t._alwaysShowResizeHandle=t.alwaysShowResizeHandle);let s=t.columnOpts;if(s){let c=s.breakpoints;!s.columnWidth&&!c?.length?delete t.columnOpts:(s.columnMax=s.columnMax||12,c?.length>1&&c.sort((d,p)=>(p.w||0)-(d.w||0)))}let r=E(m({},h.cloneDeep(P)),{column:h.toNumber(e.getAttribute("gs-column"))||P.column,minRow:i||h.toNumber(e.getAttribute("gs-min-row"))||P.minRow,maxRow:i||h.toNumber(e.getAttribute("gs-max-row"))||P.maxRow,staticGrid:h.toBool(e.getAttribute("gs-static"))||P.staticGrid,sizeToContent:h.toBool(e.getAttribute("gs-size-to-content"))||void 0,draggable:{handle:(t.handleClass?"."+t.handleClass:t.handle?t.handle:"")||P.draggable.handle},removableOptions:{accept:t.itemClass||P.removableOptions.accept,decline:P.removableOptions.decline}});e.getAttribute("gs-animate")&&(r.animate=h.toBool(e.getAttribute("gs-animate"))),t=h.defaults(t,r),this._initMargin(),this.checkDynamicColumn(),this._updateColumnVar(t),t.rtl==="auto"&&(t.rtl=e.style.direction==="rtl"),t.rtl&&this.el.classList.add("grid-stack-rtl");let a=this.el.closest("."+P.itemClass)?.gridstackNode;if(a&&(a.subGrid=this,this.parentGridNode=a,this.el.classList.add("grid-stack-nested"),a.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=t.cellHeight==="auto",this._isAutoCellHeight||t.cellHeight==="initial")this.cellHeight(void 0);else{typeof t.cellHeight=="number"&&t.cellHeightUnit&&t.cellHeightUnit!==P.cellHeightUnit&&(t.cellHeight=t.cellHeight+t.cellHeightUnit,delete t.cellHeightUnit);let c=t.cellHeight;delete t.cellHeight,this.cellHeight(c)}t.alwaysShowResizeHandle==="mobile"&&(t.alwaysShowResizeHandle=z),this._setStaticClass();let u=t.engineClass||l.engineClass||ot;if(this.engine=new u({column:this.getColumn(),float:t.float,maxRow:t.maxRow,onChange:c=>{c.forEach(d=>{let p=d.el;p&&(d._removeDOM?(p&&p.remove(),delete d._removeDOM):this._writePosAttr(p,d))}),this._updateContainerHeight()}}),t.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(c=>this._prepareElement(c)),delete this.engine._loading,this.batchUpdate(!1)),t.children){let c=t.children;delete t.children,c.length&&this.load(c)}this.setAnimation(),t.subGridDynamic&&!f.pauseDrag&&(f.pauseDrag=!0),t.draggable?.pause!==void 0&&(f.pauseDrag=t.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}_updateColumnVar(e=this.opts){this.el.classList.add("gs-"+e.column),typeof e.column=="number"&&this.el.style.setProperty("--gs-column-width",`${100/e.column}%`)}addWidget(e){if(!e)return;if(typeof e=="string"){console.error("V11: GridStack.addWidget() does not support string anymore. see #2736");return}if(e.ELEMENT_NODE)return console.error("V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()"),this.makeWidget(e);let t,i=e;if(i.grid=this,i.el?t=i.el:l.addRemoveCB?t=l.addRemoveCB(this.el,e,!0,!1):t=this.createWidgetDivs(i),!t)return;if(i=t.gridstackNode,i&&t.parentElement===this.el&&this.engine.nodes.find(r=>r._id===i._id))return t;let s=this._readAttr(t);return h.defaults(e,s),this.engine.prepareNode(e),this.el.appendChild(t),this.makeWidget(t,e),t}createWidgetDivs(e){let t=h.createDiv(["grid-stack-item",this.opts.itemClass]),i=h.createDiv(["grid-stack-item-content"],t);return h.lazyLoad(e)?e.visibleObservable||(e.visibleObservable=new IntersectionObserver(([s])=>{s.isIntersecting&&(e.visibleObservable?.disconnect(),delete e.visibleObservable,l.renderCB(i,e),e.grid?.prepareDragDrop(e.el))}),window.setTimeout(()=>e.visibleObservable?.observe(t))):l.renderCB(i,e),t}makeSubGrid(e,t,i,s=!0){let r=e.gridstackNode;if(r||(r=this.makeWidget(e).gridstackNode),r.subGrid?.el)return r.subGrid;let n,a=this;for(;a&&!n;)n=a.opts?.subGridOpts,a=a.parentGridNode?.grid;t=h.cloneDeep(m(m(E(m({},this.opts),{id:void 0,children:void 0,column:"auto",columnOpts:void 0,layout:"list",subGridOpts:void 0}),n||{}),t||r.subGridOpts||{})),r.subGridOpts=t;let u;t.column==="auto"&&(u=!0,t.column=Math.max(r.w||1,i?.w||1),delete t.columnOpts);let c=r.el.querySelector(".grid-stack-item-content"),d,p;if(s&&(this._removeDD(r.el),p=E(m({},r),{x:0,y:0}),h.removeInternalForSave(p),delete p.subGridOpts,r.content&&(p.content=r.content,delete r.content),l.addRemoveCB?d=l.addRemoveCB(this.el,p,!0,!1):(d=h.createDiv(["grid-stack-item"]),d.appendChild(c),c=h.createDiv(["grid-stack-item-content"],r.el)),this.prepareDragDrop(r.el)),i){let w=u?t.column:r.w,x=r.h+i.h,O=r.el.style;O.transition="none",this.update(r.el,{w,h:x}),setTimeout(()=>O.transition=null)}let g=r.subGrid=l.addGrid(c,t);return i?._moving&&(g._isTemp=!0),u&&(g._autoColumn=!0),s&&g.makeWidget(d,p),i&&(i._moving?window.setTimeout(()=>h.simulateMouseEvent(i._event,"mouseenter",g.el),0):g.makeWidget(r.el,r)),this.resizeToContentCheck(!1,r),g}removeAsSubGrid(e){let t=this.parentGridNode?.grid;t&&(t.batchUpdate(),t.rem