UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge.

3 lines • 382 kB
import{a as dr}from"./chunk-7ZRJGJS4.js";import{U as rr,a as Jo,b as Zo,c as tr,d as tn,f as or}from"./chunk-JVKXR53D.js";import{a as qe,b as nr}from"./chunk-KNJE27OR.js";import{a as sr}from"./chunk-J6ICAYDY.js";import{a as qn,o as hr,w as ur}from"./chunk-3OSK5OW7.js";import{a as ar}from"./chunk-6SEBWKRM.js";import{a as cr}from"./chunk-S5L52QFG.js";import{a as lr}from"./chunk-ZCCLGLMW.js";import{m as ve,n as Xe,o as Ge,p as Qo}from"./chunk-OHFVMRCL.js";import{b as Ao,c as Vo,e as Ho,l as No,n as jo,r as Uo,s as Yo,t as Xo,u as Go,v as qo,z as Ko}from"./chunk-MMYB2ZMV.js";import{a as Ct}from"./chunk-2QXNFD4L.js";import{e as er}from"./chunk-QY7HUYL5.js";import{c as ir}from"./chunk-7LZPZXYJ.js";import{a as dc,b as Tt}from"./chunk-3P637DAY.js";import{h as Qi,j as Ji,k as Zi}from"./chunk-SXUVUFAV.js";import{b as qi,e as Ki}from"./chunk-R3JWGCC5.js";import{a as Gt,b as Q}from"./chunk-KPKQNEWS.js";import{$ as ji,$a as f,Ac as C,Bc as S,Ca as ui,Cc as pt,F as Io,Fa as he,Fb as zo,G as Ut,Gb as ht,Hb as D,Ib as $,Jb as jn,K as Mo,Kb as Lt,Lb as St,Lc as yt,M as Hi,Mb as kt,Nb as R,Nc as Fo,O as To,Ob as g,Pb as m,Q as Ni,Qb as P,Ub as N,Xb as H,Yb as I,Zb as Un,_b as Yn,a as Mt,aa as Hn,b as de,ba as Nn,bd as ot,cb as Oo,dc as _t,e as lc,eb as pi,ec as Yt,ed as Ce,fb as Wt,g as cc,ga as Po,gc as Ro,gd as Yi,h as Z,ha as Eo,hd as Xi,id as Gi,ja as Do,jc as y,jd as we,kc as M,la as z,lb as U,lc as V,mb as Wo,mc as ne,n as ie,nb as Lo,nc as Xn,o as vo,qc as mt,r as So,ra as B,rc as bt,sa as A,sc as xt,sd as Bo,tb as ye,ua as $o,ub as fi,vc as Ui,w as Nt,wc as st,x as ko,xc as Xt,yc as Gn}from"./chunk-QSPBB6EE.js";var ac=lc((F_,Pm)=>{Pm.exports=[{component:"UpdateInfoWidgetComponent",x:0,y:0,cols:5,rows:7,mobileOrder:10,hideOnMobile:!1},{component:"BridgesWidgetComponent",x:0,y:7,cols:5,rows:7,mobileOrder:35,hideOnMobile:!1},{component:"HomebridgeLogsWidgetComponent",x:5,y:0,cols:10,rows:8,mobileOrder:1e3,hideOnMobile:!0},{component:"SystemInfoWidgetComponent",x:15,y:0,cols:5,rows:9,mobileOrder:70,hideOnMobile:!1},{component:"HapQrcodeWidgetComponent",x:15,y:9,cols:5,rows:5,mobileOrder:100,hideOnMobile:!1},{component:"CpuWidgetComponent",x:5,y:8,cols:5,rows:3,mobileOrder:40,hideOnMobile:!1},{component:"MemoryWidgetComponent",x:5,y:11,cols:5,rows:3,mobileOrder:50,hideOnMobile:!1},{component:"NetworkWidgetComponent",x:10,y:11,cols:5,rows:3,mobileOrder:55,hideOnMobile:!1},{component:"UptimeWidgetComponent",x:10,y:8,cols:5,rows:3,mobileOrder:60,hideOnMobile:!1}]});var gr=["*"];function hc(i,e){if(i&1&&P(0,"div",0),i&2){let t=e.$index,n=I();R("ngStyle",n.gridRenderer.getGridColumnStyle(t))}}function uc(i,e){if(i&1&&P(0,"div",1),i&2){let t=e.$index,n=I();R("ngStyle",n.gridRenderer.getGridRowStyle(t))}}function pc(i,e){if(i&1){let t=N();g(0,"div",8),H("mousedown",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))})("touchstart",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))}),m()}}function fc(i,e){if(i&1){let t=N();g(0,"div",9),H("mousedown",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))})("touchstart",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))}),m()}}function gc(i,e){if(i&1){let t=N();g(0,"div",10),H("mousedown",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))})("touchstart",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))}),m()}}function mc(i,e){if(i&1){let t=N();g(0,"div",11),H("mousedown",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))})("touchstart",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))}),m()}}function bc(i,e){if(i&1){let t=N();g(0,"div",12),H("mousedown",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))})("touchstart",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))}),m()}}function xc(i,e){if(i&1){let t=N();g(0,"div",13),H("mousedown",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))})("touchstart",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))}),m()}}function _c(i,e){if(i&1){let t=N();g(0,"div",14),H("mousedown",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))})("touchstart",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))}),m()}}function yc(i,e){if(i&1){let t=N();g(0,"div",15),H("mousedown",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))})("touchstart",function(s){B(t);let o=I();return A(o.resize.dragStartDelay(s))}),m()}}var J=function(i){return i.Fit="fit",i.ScrollVertical="scrollVertical",i.ScrollHorizontal="scrollHorizontal",i.Fixed="fixed",i.VerticalFixed="verticalFixed",i.HorizontalFixed="horizontalFixed",i}(J||{}),mr=function(i){return i.Always="always",i.OnDragAndResize="onDrag&Resize",i.None="none",i}(mr||{}),rt=function(i){return i.None="none",i.CompactUp="compactUp",i.CompactLeft="compactLeft",i.CompactUpAndLeft="compactUp&Left",i.CompactLeftAndUp="compactLeft&Up",i.CompactRight="compactRight",i.CompactUpAndRight="compactUp&Right",i.CompactRightAndUp="compactRight&Up",i.CompactDown="compactDown",i.CompactDownAndLeft="compactDown&Left",i.CompactLeftAndDown="compactLeft&Down",i.CompactDownAndRight="compactDown&Right",i.CompactRightAndDown="compactRight&Down",i}(rt||{}),Et=function(i){return i.LTR="ltr",i.RTL="rtl",i}(Et||{}),Kn=class{gridster;constructor(e){this.gridster=e}destroy(){this.gridster=null}checkCompact(){this.gridster.$options.compactType!==rt.None&&(this.gridster.$options.compactType===rt.CompactUp?this.checkCompactMovement("y",-1):this.gridster.$options.compactType===rt.CompactLeft?this.checkCompactMovement("x",-1):this.gridster.$options.compactType===rt.CompactUpAndLeft?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===rt.CompactLeftAndUp?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===rt.CompactRight?this.checkCompactMovement("x",1):this.gridster.$options.compactType===rt.CompactUpAndRight?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===rt.CompactRightAndUp?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===rt.CompactDown?this.checkCompactMovement("y",1):this.gridster.$options.compactType===rt.CompactDownAndLeft?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===rt.CompactDownAndRight?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===rt.CompactLeftAndDown?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===rt.CompactRightAndDown&&(this.checkCompactMovement("x",1),this.checkCompactMovement("y",1)))}checkCompactItem(e){this.gridster.$options.compactType!==rt.None&&(this.gridster.$options.compactType===rt.CompactUp?this.moveTillCollision(e,"y",-1):this.gridster.$options.compactType===rt.CompactLeft?this.moveTillCollision(e,"x",-1):this.gridster.$options.compactType===rt.CompactUpAndLeft?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===rt.CompactLeftAndUp?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",-1)):this.gridster.$options.compactType===rt.CompactUpAndRight?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===rt.CompactDown?this.moveTillCollision(e,"y",1):this.gridster.$options.compactType===rt.CompactDownAndLeft?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===rt.CompactLeftAndDown?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===rt.CompactDownAndRight?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===rt.CompactRightAndDown&&(this.moveTillCollision(e,"x",1),this.moveTillCollision(e,"y",1)))}checkCompactMovement(e,t){let n=!1;this.gridster.grid.forEach(s=>{s.$item.compactEnabled!==!1&&this.moveTillCollision(s.$item,e,t)&&(n=!0,s.item[e]=s.$item[e],s.itemChanged())}),n&&this.checkCompact()}moveTillCollision(e,t,n){return e[t]+=n,this.gridster.checkCollision(e)?(e[t]-=n,!1):(this.moveTillCollision(e,t,n),!0)}},Cc={gridType:J.Fit,scale:1,fixedColWidth:250,fixedRowHeight:250,keepFixedHeightInMobile:!1,keepFixedWidthInMobile:!1,setGridSize:!1,compactType:rt.None,mobileBreakpoint:640,useBodyForBreakpoint:!1,allowMultiLayer:!1,defaultLayerIndex:0,maxLayerIndex:2,baseLayerIndex:1,minCols:1,maxCols:100,minRows:1,maxRows:100,defaultItemCols:1,defaultItemRows:1,maxItemCols:50,maxItemRows:50,minItemCols:1,minItemRows:1,minItemArea:1,maxItemArea:2500,addEmptyRowsCount:0,rowHeightRatio:1,margin:10,outerMargin:!0,outerMarginTop:null,outerMarginRight:null,outerMarginBottom:null,outerMarginLeft:null,useTransformPositioning:!0,scrollSensitivity:10,scrollSpeed:20,initCallback:void 0,destroyCallback:void 0,gridSizeChangedCallback:void 0,itemChangeCallback:void 0,itemResizeCallback:void 0,itemInitCallback:void 0,itemRemovedCallback:void 0,itemValidateCallback:void 0,enableEmptyCellClick:!1,enableEmptyCellContextMenu:!1,enableEmptyCellDrop:!1,enableEmptyCellDrag:!1,enableOccupiedCellDrop:!1,emptyCellClickCallback:void 0,emptyCellContextMenuCallback:void 0,emptyCellDropCallback:void 0,emptyCellDragCallback:void 0,emptyCellDragMaxCols:50,emptyCellDragMaxRows:50,ignoreMarginInRow:!1,draggable:{delayStart:0,enabled:!1,ignoreContentClass:"gridster-item-content",ignoreContent:!1,dragHandleClass:"drag-handler",stop:void 0,start:void 0,dropOverItems:!1,dropOverItemsCallback:void 0},resizable:{delayStart:0,enabled:!1,handles:{s:!0,e:!0,n:!0,w:!0,se:!0,ne:!0,sw:!0,nw:!0},stop:void 0,start:void 0},swap:!0,swapWhileDragging:!1,pushItems:!1,disablePushOnDrag:!1,disablePushOnResize:!1,pushDirections:{north:!0,east:!0,south:!0,west:!0},pushResizeItems:!1,displayGrid:mr.OnDragAndResize,disableWindowResize:!1,disableWarnings:!1,scrollToNewItems:!1,disableScrollHorizontal:!1,disableScrollVertical:!1,enableBoundaryControl:!1,disableAutoPositionOnConflict:!1,dirType:Et.LTR},zt=class i{static merge(e,t,n){for(let s in t)t[s]!==void 0&&n.hasOwnProperty(s)&&(typeof t[s]=="object"?(s in e||(e[s]={}),e[s]=i.merge(e[s],t[s],n[s])):e[s]=t[s]);return e}static checkTouchEvent(e){e.clientX===void 0&&e.touches&&(e.touches&&e.touches.length?(e.clientX=e.touches[0].clientX,e.clientY=e.touches[0].clientY):e.changedTouches&&e.changedTouches.length&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY))}static checkContentClassForEvent(e,t){if(e.$options.draggable.ignoreContent){if(!i.checkDragHandleClass(t.target,t.currentTarget,e.$options.draggable.dragHandleClass,e.$options.draggable.ignoreContentClass))return!0}else if(i.checkContentClass(t.target,t.currentTarget,e.$options.draggable.ignoreContentClass))return!0;return!1}static checkContentClassForEmptyCellClickEvent(e,t){return i.checkContentClass(t.target,t.currentTarget,e.$options.draggable.ignoreContentClass)||i.checkContentClass(t.target,t.currentTarget,e.$options.draggable.dragHandleClass)}static checkDragHandleClass(e,t,n,s){if(!e||e===t)return!1;if(e.hasAttribute("class")){let o=e.getAttribute("class").split(" ");if(o.indexOf(n)>-1)return!0;if(o.indexOf(s)>-1)return!1}return i.checkDragHandleClass(e.parentNode,t,n,s)}static checkContentClass(e,t,n){return!e||e===t?!1:e.hasAttribute("class")&&e.getAttribute("class").split(" ").indexOf(n)>-1?!0:i.checkContentClass(e.parentNode,t,n)}static compareItems(e,t){return e.y>t.y?-1:e.y<t.y?1:e.x>t.x?-1:1}},Qn=class{gridster;initialItem;removeEmptyCellClickListenerFn;removeEmptyCellTouchendListenerFn;removeEmptyCellContextMenuListenerFn;removeEmptyCellDropListenerFn;removeEmptyCellMousedownListenerFn;removeEmptyCellTouchstartListenerFn;removeWindowMousemoveListenerFn;removeWindowTouchmoveListenerFn;removeWindowMouseupListenerFn;removeWindowTouchendListenerFn;removeEmptyCellDragoverListenerFn;removeDocumentDragendListenerFn;constructor(e){this.gridster=e}destroy(){this.gridster.previewStyle&&this.gridster.previewStyle(),this.gridster.movingItem=null,this.initialItem=this.gridster=null,this.removeDocumentDragendListenerFn&&(this.removeDocumentDragendListenerFn(),this.removeDocumentDragendListenerFn=null)}updateOptions(){this.gridster.$options.enableEmptyCellClick&&!this.removeEmptyCellClickListenerFn&&this.gridster.options.emptyCellClickCallback?(this.removeEmptyCellClickListenerFn=this.gridster.renderer.listen(this.gridster.el,"click",this.emptyCellClickCb),this.removeEmptyCellTouchendListenerFn=this.gridster.renderer.listen(this.gridster.el,"touchend",this.emptyCellClickCb)):!this.gridster.$options.enableEmptyCellClick&&this.removeEmptyCellClickListenerFn&&this.removeEmptyCellTouchendListenerFn&&(this.removeEmptyCellClickListenerFn(),this.removeEmptyCellTouchendListenerFn(),this.removeEmptyCellClickListenerFn=null,this.removeEmptyCellTouchendListenerFn=null),this.gridster.$options.enableEmptyCellContextMenu&&!this.removeEmptyCellContextMenuListenerFn&&this.gridster.options.emptyCellContextMenuCallback?this.removeEmptyCellContextMenuListenerFn=this.gridster.renderer.listen(this.gridster.el,"contextmenu",this.emptyCellContextMenuCb):!this.gridster.$options.enableEmptyCellContextMenu&&this.removeEmptyCellContextMenuListenerFn&&(this.removeEmptyCellContextMenuListenerFn(),this.removeEmptyCellContextMenuListenerFn=null),this.gridster.$options.enableEmptyCellDrop&&!this.removeEmptyCellDropListenerFn&&this.gridster.options.emptyCellDropCallback?(this.removeEmptyCellDropListenerFn=this.gridster.renderer.listen(this.gridster.el,"drop",this.emptyCellDragDrop),this.gridster.zone.runOutsideAngular(()=>{this.removeEmptyCellDragoverListenerFn=this.gridster.renderer.listen(this.gridster.el,"dragover",this.emptyCellDragOver)}),this.removeDocumentDragendListenerFn=this.gridster.renderer.listen("document","dragend",()=>{this.gridster.movingItem=null,this.gridster.previewStyle()})):!this.gridster.$options.enableEmptyCellDrop&&this.removeEmptyCellDropListenerFn&&this.removeEmptyCellDragoverListenerFn&&this.removeDocumentDragendListenerFn&&(this.removeEmptyCellDropListenerFn(),this.removeEmptyCellDragoverListenerFn(),this.removeDocumentDragendListenerFn(),this.removeEmptyCellDragoverListenerFn=null,this.removeEmptyCellDropListenerFn=null,this.removeDocumentDragendListenerFn=null),this.gridster.$options.enableEmptyCellDrag&&!this.removeEmptyCellMousedownListenerFn&&this.gridster.options.emptyCellDragCallback?(this.removeEmptyCellMousedownListenerFn=this.gridster.renderer.listen(this.gridster.el,"mousedown",this.emptyCellMouseDown),this.removeEmptyCellTouchstartListenerFn=this.gridster.renderer.listen(this.gridster.el,"touchstart",this.emptyCellMouseDown)):!this.gridster.$options.enableEmptyCellDrag&&this.removeEmptyCellMousedownListenerFn&&this.removeEmptyCellTouchstartListenerFn&&(this.removeEmptyCellMousedownListenerFn(),this.removeEmptyCellTouchstartListenerFn(),this.removeEmptyCellMousedownListenerFn=null,this.removeEmptyCellTouchstartListenerFn=null)}emptyCellClickCb=e=>{if(!this.gridster||this.gridster.movingItem||zt.checkContentClassForEmptyCellClickEvent(this.gridster,e))return;let t=this.getValidItemFromEvent(e);t&&(this.gridster.options.emptyCellClickCallback&&this.gridster.options.emptyCellClickCallback(e,t),this.gridster.cdRef.markForCheck())};emptyCellContextMenuCb=e=>{if(this.gridster.movingItem||zt.checkContentClassForEmptyCellClickEvent(this.gridster,e))return;e.preventDefault(),e.stopPropagation();let t=this.getValidItemFromEvent(e);t&&(this.gridster.options.emptyCellContextMenuCallback&&this.gridster.options.emptyCellContextMenuCallback(e,t),this.gridster.cdRef.markForCheck())};emptyCellDragDrop=e=>{let t=this.getValidItemFromEvent(e);t&&(this.gridster.options.emptyCellDropCallback&&this.gridster.options.emptyCellDropCallback(e,t),this.gridster.cdRef.markForCheck())};emptyCellDragOver=e=>{e.preventDefault(),e.stopPropagation();let t=this.getValidItemFromEvent(e);t?(e.dataTransfer&&(e.dataTransfer.dropEffect="move"),this.gridster.movingItem=t):(e.dataTransfer&&(e.dataTransfer.dropEffect="none"),this.gridster.movingItem=null),this.gridster.previewStyle()};emptyCellMouseDown=e=>{if(zt.checkContentClassForEmptyCellClickEvent(this.gridster,e))return;e.preventDefault(),e.stopPropagation();let t=this.getValidItemFromEvent(e);!t||e.buttons!==1&&!(e instanceof TouchEvent)||(this.initialItem=t,this.gridster.movingItem=t,this.gridster.previewStyle(),this.gridster.zone.runOutsideAngular(()=>{this.removeWindowMousemoveListenerFn=this.gridster.renderer.listen("window","mousemove",this.emptyCellMouseMove),this.removeWindowTouchmoveListenerFn=this.gridster.renderer.listen("window","touchmove",this.emptyCellMouseMove)}),this.removeWindowMouseupListenerFn=this.gridster.renderer.listen("window","mouseup",this.emptyCellMouseUp),this.removeWindowTouchendListenerFn=this.gridster.renderer.listen("window","touchend",this.emptyCellMouseUp))};emptyCellMouseMove=e=>{e.preventDefault(),e.stopPropagation();let t=this.getValidItemFromEvent(e,this.initialItem);t&&(this.gridster.movingItem=t,this.gridster.previewStyle())};emptyCellMouseUp=e=>{this.removeWindowMousemoveListenerFn(),this.removeWindowTouchmoveListenerFn(),this.removeWindowMouseupListenerFn(),this.removeWindowTouchendListenerFn();let t=this.getValidItemFromEvent(e,this.initialItem);t&&(this.gridster.movingItem=t),this.gridster.options.emptyCellDragCallback&&this.gridster.movingItem&&this.gridster.options.emptyCellDragCallback(e,this.gridster.movingItem),setTimeout(()=>{this.initialItem=null,this.gridster&&(this.gridster.movingItem=null,this.gridster.previewStyle())}),this.gridster.cdRef.markForCheck()};getPixelsX(e,t){let n=this.gridster.options.scale;return n?(e.clientX-t.left)/n+this.gridster.el.scrollLeft-this.gridster.gridRenderer.getLeftMargin():e.clientX+this.gridster.el.scrollLeft-t.left-this.gridster.gridRenderer.getLeftMargin()}getPixelsY(e,t){let n=this.gridster.options.scale;return n?(e.clientY-t.top)/n+this.gridster.el.scrollTop-this.gridster.gridRenderer.getTopMargin():e.clientY+this.gridster.el.scrollTop-t.top-this.gridster.gridRenderer.getTopMargin()}getValidItemFromEvent(e,t){e.preventDefault(),e.stopPropagation(),zt.checkTouchEvent(e);let n=this.gridster.el.getBoundingClientRect(),s=this.getPixelsX(e,n),o=this.getPixelsY(e,n),r={x:this.gridster.pixelsToPositionX(s,Math.floor,!0),y:this.gridster.pixelsToPositionY(o,Math.floor,!0),cols:this.gridster.$options.defaultItemCols,rows:this.gridster.$options.defaultItemRows};if(t&&(r.cols=Math.min(Math.abs(t.x-r.x)+1,this.gridster.$options.emptyCellDragMaxCols),r.rows=Math.min(Math.abs(t.y-r.y)+1,this.gridster.$options.emptyCellDragMaxRows),t.x<r.x?r.x=t.x:t.x-r.x>this.gridster.$options.emptyCellDragMaxCols-1&&(r.x=this.gridster.movingItem?this.gridster.movingItem.x:0),t.y<r.y?r.y=t.y:t.y-r.y>this.gridster.$options.emptyCellDragMaxRows-1&&(r.y=this.gridster.movingItem?this.gridster.movingItem.y:0)),!(!this.gridster.$options.enableOccupiedCellDrop&&this.gridster.checkCollision(r)))return r}},Jn=class{gridster;lastGridColumnStyles={};lastGridRowStyles={};constructor(e){this.gridster=e}destroy(){this.gridster=null}updateItem(e,t,n){if(this.gridster.mobile)this.clearCellPosition(n,e),this.gridster.$options.keepFixedHeightInMobile?n.setStyle(e,"height",(t.rows-1)*this.gridster.$options.margin+t.rows*this.gridster.$options.fixedRowHeight+"px"):n.setStyle(e,"height",t.rows*this.gridster.curWidth/t.cols+"px"),this.gridster.$options.keepFixedWidthInMobile?n.setStyle(e,"width",this.gridster.$options.fixedColWidth+"px"):n.setStyle(e,"width",""),n.setStyle(e,"margin-bottom",this.gridster.$options.margin+"px"),n.setStyle(e,Et.LTR?"margin-right":"margin-left","");else{let s=Math.round(this.gridster.curColWidth*t.x),o=Math.round(this.gridster.curRowHeight*t.y),r=this.gridster.curColWidth*t.cols-this.gridster.$options.margin,a=this.gridster.curRowHeight*t.rows-this.gridster.$options.margin;this.setCellPosition(n,e,s,o),n.setStyle(e,"width",r+"px"),n.setStyle(e,"height",a+"px");let l=null,c=null;this.gridster.$options.outerMargin&&(this.gridster.rows===t.rows+t.y&&(this.gridster.$options.outerMarginBottom!==null?l=this.gridster.$options.outerMarginBottom+"px":l=this.gridster.$options.margin+"px"),this.gridster.columns===t.cols+t.x&&(this.gridster.$options.outerMarginBottom!==null?c=this.gridster.$options.outerMarginRight+"px":c=this.gridster.$options.margin+"px")),n.setStyle(e,"margin-bottom",l),n.setStyle(e,Et.LTR?"margin-right":"margin-left",c)}}updateGridster(){let e="",t="",n="",s="";if(this.gridster.$options.gridType===J.Fit)e=J.Fit,t=J.ScrollVertical,n=J.ScrollHorizontal,s=J.Fixed;else if(this.gridster.$options.gridType===J.ScrollVertical)this.gridster.curRowHeight=this.gridster.curColWidth*this.gridster.$options.rowHeightRatio,e=J.ScrollVertical,t=J.Fit,n=J.ScrollHorizontal,s=J.Fixed;else if(this.gridster.$options.gridType===J.ScrollHorizontal){let o=this.gridster.$options.rowHeightRatio,r=o>=1?o:o+1;this.gridster.curColWidth=this.gridster.curRowHeight*r,e=J.ScrollHorizontal,t=J.Fit,n=J.ScrollVertical,s=J.Fixed}else this.gridster.$options.gridType===J.Fixed?(this.gridster.curColWidth=this.gridster.$options.fixedColWidth+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),this.gridster.curRowHeight=this.gridster.$options.fixedRowHeight+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=J.Fixed,t=J.Fit,n=J.ScrollVertical,s=J.ScrollHorizontal):this.gridster.$options.gridType===J.VerticalFixed?(this.gridster.curRowHeight=this.gridster.$options.fixedRowHeight+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=J.ScrollVertical,t=J.Fit,n=J.ScrollHorizontal,s=J.Fixed):this.gridster.$options.gridType===J.HorizontalFixed&&(this.gridster.curColWidth=this.gridster.$options.fixedColWidth+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=J.ScrollHorizontal,t=J.Fit,n=J.ScrollVertical,s=J.Fixed);this.gridster.mobile||this.gridster.$options.setGridSize&&this.gridster.$options.gridType!==J.Fit?this.gridster.renderer.removeClass(this.gridster.el,e):this.gridster.renderer.addClass(this.gridster.el,e),this.gridster.renderer.removeClass(this.gridster.el,t),this.gridster.renderer.removeClass(this.gridster.el,n),this.gridster.renderer.removeClass(this.gridster.el,s)}getGridColumnStyle(e){let t={left:this.gridster.curColWidth*e,width:this.gridster.curColWidth-this.gridster.$options.margin,height:this.gridster.gridRows.length*this.gridster.curRowHeight-this.gridster.$options.margin,style:{}};t.style=de(Mt({},this.getLeftPosition(t.left)),{width:t.width+"px",height:t.height+"px"});let n=this.lastGridColumnStyles[e];return n&&n.left===t.left&&n.width===t.width&&n.height===t.height?n.style:(this.lastGridColumnStyles[e]=t,t.style)}getGridRowStyle(e){let t={top:this.gridster.curRowHeight*e,width:this.gridster.gridColumns.length*this.gridster.curColWidth+this.gridster.$options.margin,height:this.gridster.curRowHeight-this.gridster.$options.margin,style:{}};t.style=de(Mt({},this.getTopPosition(t.top)),{width:t.width+"px",height:t.height+"px"});let n=this.lastGridRowStyles[e];return n&&n.top===t.top&&n.width===t.width&&n.height===t.height?n.style:(this.lastGridRowStyles[e]=t,t.style)}getLeftPosition(e){let t=this.gridster.$options.dirType===Et.RTL?-e:e;return this.gridster.$options.useTransformPositioning?{transform:"translateX("+t+"px)"}:{left:this.getLeftMargin()+t+"px"}}getTopPosition(e){return this.gridster.$options.useTransformPositioning?{transform:"translateY("+e+"px)"}:{top:this.getTopMargin()+e+"px"}}clearCellPosition(e,t){this.gridster.$options.useTransformPositioning?e.setStyle(t,"transform",""):(e.setStyle(t,"top",""),e.setStyle(t,"left",""))}setCellPosition(e,t,n,s){let o=this.gridster.$options.dirType===Et.RTL?-n:n;if(this.gridster.$options.useTransformPositioning){let r="translate3d("+o+"px, "+s+"px, 0)";e.setStyle(t,"transform",r)}else e.setStyle(t,"left",this.getLeftMargin()+o+"px"),e.setStyle(t,"top",this.getTopMargin()+s+"px")}getLeftMargin(){return this.gridster.$options.outerMargin?this.gridster.$options.outerMarginLeft!==null?this.gridster.$options.outerMarginLeft:this.gridster.$options.margin:0}getTopMargin(){return this.gridster.$options.outerMargin?this.gridster.$options.outerMarginTop!==null?this.gridster.$options.outerMarginTop:this.gridster.$options.margin:0}},wc=(()=>{class i{renderer;previewStyle$;gridRenderer;el;sub;constructor(t,n){this.renderer=n,this.el=t.nativeElement}ngOnInit(){this.sub=this.previewStyle$.subscribe(t=>this.previewStyle(t))}ngOnDestroy(){this.sub&&this.sub.unsubscribe()}previewStyle(t){t?(this.renderer.setStyle(this.el,"display","block"),this.gridRenderer.updateItem(this.el,t,this.renderer)):this.renderer.setStyle(this.el,"display","")}static \u0275fac=function(n){return new(n||i)(Wt(he),Wt(pi))};static \u0275cmp=U({type:i,selectors:[["gridster-preview"]],inputs:{previewStyle$:"previewStyle$",gridRenderer:"gridRenderer"},decls:0,vars:0,template:function(n,s){},styles:[`gridster-preview{position:absolute;display:none;background:#00000026} `],encapsulation:2})}return i})(),ns=(()=>{class i{renderer;cdRef;zone;options;movingItem;el;$options;mobile;curWidth;curHeight;grid;columns=0;rows=0;curColWidth;curRowHeight;gridColumns=[];gridRows=[];windowResize;dragInProgress;emptyCell;compact;gridRenderer;previewStyle$=new ye;calculateLayout$=new ie;resize$=new ie;destroy$=new ie;constructor(t,n,s,o){this.renderer=n,this.cdRef=s,this.zone=o,this.el=t.nativeElement,this.$options=JSON.parse(JSON.stringify(Cc)),this.mobile=!1,this.curWidth=0,this.curHeight=0,this.grid=[],this.curColWidth=0,this.curRowHeight=0,this.dragInProgress=!1,this.emptyCell=new Qn(this),this.compact=new Kn(this),this.gridRenderer=new Jn(this)}static checkCollisionTwoItemsForSwaping(t,n){let s=t.cols===1?0:1,o=n.cols===1?0:1,r=t.rows===1?0:1,a=n.rows===1?0:1;return t.x+s<n.x+n.cols&&t.x+t.cols>n.x+o&&t.y+r<n.y+n.rows&&t.y+t.rows>n.y+a}checkCollisionTwoItems(t,n){if(!(t.x<n.x+n.cols&&t.x+t.cols>n.x&&t.y<n.y+n.rows&&t.y+t.rows>n.y))return!1;if(!this.$options.allowMultiLayer)return!0;let o=this.$options.defaultLayerIndex,r=t.layerIndex===void 0?o:t.layerIndex,a=n.layerIndex===void 0?o:n.layerIndex;return r===a}ngOnInit(){this.options.initCallback&&this.options.initCallback(this),this.calculateLayout$.pipe(Hi(0),Hn(this.destroy$)).subscribe(()=>this.calculateLayout()),this.resize$.pipe(ji(()=>Io(100)),Hn(this.destroy$)).subscribe(()=>this.resize())}ngOnChanges(t){t.options&&(this.setOptions(),this.options.api={optionsChanged:this.optionsChanged,resize:this.onResize,getNextPossiblePosition:this.getNextPossiblePosition,getFirstPossiblePosition:this.getFirstPossiblePosition,getLastPossiblePosition:this.getLastPossiblePosition,getItemComponent:n=>this.getItemComponent(n)},this.columns=this.$options.minCols,this.rows=this.$options.minRows+this.$options.addEmptyRowsCount,this.setGridSize(),this.calculateLayout())}resize(){let t,n;this.$options.gridType==="fit"&&!this.mobile?(n=this.el.offsetWidth,t=this.el.offsetHeight):(n=this.el.clientWidth,t=this.el.clientHeight),(n!==this.curWidth||t!==this.curHeight)&&this.checkIfToResize()&&this.onResize()}setOptions(){this.$options=zt.merge(this.$options,this.options,this.$options),!this.$options.disableWindowResize&&!this.windowResize?this.windowResize=this.renderer.listen("window","resize",this.onResize):this.$options.disableWindowResize&&this.windowResize&&(this.windowResize(),this.windowResize=null),this.emptyCell.updateOptions()}optionsChanged=()=>{this.setOptions();let t=this.grid.length-1,n;for(;t>=0;t--)n=this.grid[t],n.updateOptions();this.calculateLayout()};ngOnDestroy(){this.destroy$.next(),this.previewStyle$.complete(),this.windowResize&&this.windowResize(),this.options&&this.options.destroyCallback&&this.options.destroyCallback(this),this.options&&this.options.api&&(this.options.api.resize=void 0,this.options.api.optionsChanged=void 0,this.options.api.getNextPossiblePosition=void 0,this.options.api=void 0),this.emptyCell.destroy(),this.emptyCell=null,this.compact.destroy(),this.compact=null}onResize=()=>{this.el.clientWidth&&(this.options.setGridSize&&(this.renderer.setStyle(this.el,"width",""),this.renderer.setStyle(this.el,"height","")),this.setGridSize(),this.calculateLayout())};checkIfToResize(){let t=this.el.clientWidth,n=this.el.offsetWidth,s=this.el.scrollWidth,o=this.el.clientHeight,r=this.el.offsetHeight,a=this.el.scrollHeight,l=t<n&&a>r&&a-r<n-t,c=o<r&&s>n&&s-n<r-o;return l?!1:!c}checkIfMobile(){return this.$options.useBodyForBreakpoint?this.$options.mobileBreakpoint>document.body.clientWidth:this.$options.mobileBreakpoint>this.curWidth}setGridSize(){let t=this.el,n,s;this.$options.setGridSize||this.$options.gridType===J.Fit&&!this.mobile?(n=t.offsetWidth,s=t.offsetHeight):(n=t.clientWidth,s=t.clientHeight),this.curWidth=n,this.curHeight=s}setGridDimensions(){this.setGridSize(),!this.mobile&&this.checkIfMobile()?(this.mobile=!this.mobile,this.renderer.addClass(this.el,"mobile")):this.mobile&&!this.checkIfMobile()&&(this.mobile=!this.mobile,this.renderer.removeClass(this.el,"mobile"));let t=this.$options.minRows,n=this.$options.minCols,s=this.grid.length-1,o;for(;s>=0;s--)o=this.grid[s],o.notPlaced||(t=Math.max(t,o.$item.y+o.$item.rows),n=Math.max(n,o.$item.x+o.$item.cols));t+=this.$options.addEmptyRowsCount,(this.columns!==n||this.rows!==t)&&(this.columns=n,this.rows=t,this.options.gridSizeChangedCallback&&this.options.gridSizeChangedCallback(this))}calculateLayout(){if(this.compact&&this.compact.checkCompact(),this.setGridDimensions(),this.$options.outerMargin){let s=-this.$options.margin;this.$options.outerMarginLeft!==null?(s+=this.$options.outerMarginLeft,this.renderer.setStyle(this.el,"padding-left",this.$options.outerMarginLeft+"px")):(s+=this.$options.margin,this.renderer.setStyle(this.el,"padding-left",this.$options.margin+"px")),this.$options.outerMarginRight!==null?(s+=this.$options.outerMarginRight,this.renderer.setStyle(this.el,"padding-right",this.$options.outerMarginRight+"px")):(s+=this.$options.margin,this.renderer.setStyle(this.el,"padding-right",this.$options.margin+"px")),this.curColWidth=(this.curWidth-s)/this.columns;let o=-this.$options.margin;this.$options.outerMarginTop!==null?(o+=this.$options.outerMarginTop,this.renderer.setStyle(this.el,"padding-top",this.$options.outerMarginTop+"px")):(o+=this.$options.margin,this.renderer.setStyle(this.el,"padding-top",this.$options.margin+"px")),this.$options.outerMarginBottom!==null?(o+=this.$options.outerMarginBottom,this.renderer.setStyle(this.el,"padding-bottom",this.$options.outerMarginBottom+"px")):(o+=this.$options.margin,this.renderer.setStyle(this.el,"padding-bottom",this.$options.margin+"px")),this.curRowHeight=(this.curHeight-o)/this.rows*this.$options.rowHeightRatio}else this.curColWidth=(this.curWidth+this.$options.margin)/this.columns,this.curRowHeight=(this.curHeight+this.$options.margin)/this.rows*this.$options.rowHeightRatio,this.renderer.setStyle(this.el,"padding-left","0px"),this.renderer.setStyle(this.el,"padding-right","0px"),this.renderer.setStyle(this.el,"padding-top","0px"),this.renderer.setStyle(this.el,"padding-bottom","0px");this.gridRenderer.updateGridster(),this.$options.setGridSize?(this.renderer.addClass(this.el,"gridSize"),this.mobile||(this.renderer.setStyle(this.el,"width",this.columns*this.curColWidth+this.$options.margin+"px"),this.renderer.setStyle(this.el,"height",this.rows*this.curRowHeight+this.$options.margin+"px"))):(this.renderer.removeClass(this.el,"gridSize"),this.renderer.setStyle(this.el,"width",""),this.renderer.setStyle(this.el,"height","")),this.updateGrid();let t=this.grid.length-1,n;for(;t>=0;t--)n=this.grid[t],n.setSize(),n.drag.toggle(),n.resize.toggle();this.resize$.next()}updateGrid(){this.$options.displayGrid==="always"&&!this.mobile?this.renderer.addClass(this.el,"display-grid"):this.$options.displayGrid==="onDrag&Resize"&&this.dragInProgress?this.renderer.addClass(this.el,"display-grid"):(this.$options.displayGrid==="none"||!this.dragInProgress||this.mobile)&&this.renderer.removeClass(this.el,"display-grid"),this.setGridDimensions(),this.gridColumns.length=i.getNewArrayLength(this.columns,this.curWidth,this.curColWidth),this.gridRows.length=i.getNewArrayLength(this.rows,this.curHeight,this.curRowHeight),this.cdRef.markForCheck()}addItem(t){t.$item.cols===void 0&&(t.$item.cols=this.$options.defaultItemCols,t.item.cols=t.$item.cols,t.itemChanged()),t.$item.rows===void 0&&(t.$item.rows=this.$options.defaultItemRows,t.item.rows=t.$item.rows,t.itemChanged()),t.$item.x===-1||t.$item.y===-1?this.autoPositionItem(t):this.checkCollision(t.$item)&&(this.$options.disableWarnings||(t.notPlaced=!0,console.warn("Can't be placed in the bounds of the dashboard, trying to auto position!/n"+JSON.stringify(t.item,["cols","rows","x","y"]))),this.$options.disableAutoPositionOnConflict?t.notPlaced=!0:this.autoPositionItem(t)),this.grid.push(t),this.calculateLayout$.next()}removeItem(t){this.grid.splice(this.grid.indexOf(t),1),this.calculateLayout$.next(),this.options.itemRemovedCallback&&this.options.itemRemovedCallback(t.item,t)}checkCollision(t){let n=!1;if(this.options.itemValidateCallback&&(n=!this.options.itemValidateCallback(t)),!n&&this.checkGridCollision(t)&&(n=!0),!n){let s=this.findItemWithItem(t);s&&(n=s)}return n}checkGridCollision(t){let n=t.y>-1&&t.x>-1,s=t.cols+t.x<=this.$options.maxCols,o=t.rows+t.y<=this.$options.maxRows,r=t.maxItemCols===void 0?this.$options.maxItemCols:t.maxItemCols,a=t.minItemCols===void 0?this.$options.minItemCols:t.minItemCols,l=t.maxItemRows===void 0?this.$options.maxItemRows:t.maxItemRows,c=t.minItemRows===void 0?this.$options.minItemRows:t.minItemRows,d=t.cols<=r&&t.cols>=a,h=t.rows<=l&&t.rows>=c,u=t.minItemArea===void 0?this.$options.minItemArea:t.minItemArea,p=t.maxItemArea===void 0?this.$options.maxItemArea:t.maxItemArea,b=t.cols*t.rows,x=u<=b,_=p>=b;return!(n&&s&&o&&d&&h&&x&&_)}findItemWithItem(t){let n=0,s;for(;n<this.grid.length;n++)if(s=this.grid[n],s.$item!==t&&this.checkCollisionTwoItems(s.$item,t))return s;return!1}findItemsWithItem(t){let n=[],s=0,o;for(;s<this.grid.length;s++)o=this.grid[s],o.$item!==t&&this.checkCollisionTwoItems(o.$item,t)&&n.push(o);return n}autoPositionItem(t){this.getNextPossiblePosition(t.$item)?(t.notPlaced=!1,t.item.x=t.$item.x,t.item.y=t.$item.y,t.itemChanged()):(t.notPlaced=!0,this.$options.disableWarnings||console.warn("Can't be placed in the bounds of the dashboard!/n"+JSON.stringify(t.item,["cols","rows","x","y"])))}getNextPossiblePosition=(t,n={})=>{t.cols===-1&&(t.cols=this.$options.defaultItemCols),t.rows===-1&&(t.rows=this.$options.defaultItemRows),this.setGridDimensions();let s=n.y||0,o;for(;s<this.rows;s++)for(t.y=s,o=n.x||0;o<this.columns;o++)if(t.x=o,!this.checkCollision(t))return!0;let r=this.$options.maxRows>=this.rows+t.rows,a=this.$options.maxCols>=this.columns+t.cols;return!(this.rows<=this.columns&&r)&&a?(t.x=this.columns,t.y=0,!0):r?(t.y=this.rows,t.x=0,!0):!1};getFirstPossiblePosition=t=>{let n=Object.assign({},t);return this.getNextPossiblePosition(n),n};getLastPossiblePosition=t=>{let n={y:0,x:0};n=this.grid.reduce((o,r)=>{let a={y:r.$item.y+r.$item.rows-1,x:r.$item.x+r.$item.cols-1};return zt.compareItems(o,a)===1?a:o},n);let s=Object.assign({},t);return this.getNextPossiblePosition(s,n),s};pixelsToPositionX(t,n,s){let o=n(t/this.curColWidth);return s?o:Math.max(o,0)}pixelsToPositionY(t,n,s){let o=n(t/this.curRowHeight);return s?o:Math.max(o,0)}positionXToPixels(t){return t*this.curColWidth}positionYToPixels(t){return t*this.curRowHeight}getItemComponent(t){return this.grid.find(n=>n.item===t)}checkCollisionForSwaping(t){let n=!1;if(this.options.itemValidateCallback&&(n=!this.options.itemValidateCallback(t)),!n&&this.checkGridCollision(t)&&(n=!0),!n){let s=this.findItemWithItemForSwapping(t);s&&(n=s)}return n}findItemWithItemForSwapping(t){let n=this.grid.length-1,s;for(;n>-1;n--)if(s=this.grid[n],s.$item!==t&&i.checkCollisionTwoItemsForSwaping(s.$item,t))return s;return!1}previewStyle(t=!1){this.movingItem?(this.compact&&t&&this.compact.checkCompactItem(this.movingItem),this.previewStyle$.next(this.movingItem)):this.previewStyle$.next(null)}static getNewArrayLength(t,n,s){let o=Math.max(t,Math.floor(n/s));return o<0?0:Number.isFinite(o)?Math.floor(o):0}static \u0275fac=function(n){return new(n||i)(Wt(he),Wt(pi),Wt(Fo),Wt(fi))};static \u0275cmp=U({type:i,selectors:[["gridster"]],inputs:{options:"options"},features:[ui],ngContentSelectors:gr,decls:6,vars:2,consts:[[1,"gridster-column",3,"ngStyle"],[1,"gridster-row",3,"ngStyle"],[1,"gridster-preview",3,"gridRenderer","previewStyle$"]],template:function(n,s){n&1&&(Un(),St(0,hc,1,1,"div",0,jn),St(2,uc,1,1,"div",1,jn),Yn(4),P(5,"gridster-preview",2)),n&2&&(kt(s.gridColumns),f(2),kt(s.gridRows),f(3),R("gridRenderer",s.gridRenderer)("previewStyle$",s.previewStyle$))},dependencies:[Ce,wc],styles:[`gridster{position:relative;box-sizing:border-box;background:gray;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white} `],encapsulation:2})}return i})(),en=class{fromSouth;fromNorth;fromEast;fromWest;pushedItems;pushedItemsTemp;pushedItemsTempPath;pushedItemsPath;gridsterItem;gridster;pushedItemsOrder;tryPattern;iteration=0;constructor(e){this.pushedItems=[],this.pushedItemsTemp=[],this.pushedItemsTempPath=[],this.pushedItemsPath=[],this.gridsterItem=e,this.gridster=e.gridster,this.tryPattern={fromEast:[this.tryWest,this.trySouth,this.tryNorth,this.tryEast],fromWest:[this.tryEast,this.trySouth,this.tryNorth,this.tryWest],fromNorth:[this.trySouth,this.tryEast,this.tryWest,this.tryNorth],fromSouth:[this.tryNorth,this.tryEast,this.tryWest,this.trySouth]},this.fromSouth="fromSouth",this.fromNorth="fromNorth",this.fromEast="fromEast",this.fromWest="fromWest"}destroy(){this.gridster=this.gridsterItem=null}pushItems(e,t){if(this.gridster.$options.pushItems&&!t){this.pushedItemsOrder=[],this.iteration=0;let n=this.push(this.gridsterItem,e);return n||this.restoreTempItems(),this.pushedItemsOrder=[],this.pushedItemsTemp=[],this.pushedItemsTempPath=[],n}else return!1}restoreTempItems(){let e=this.pushedItemsTemp.length-1;for(;e>-1;e--)this.removeFromTempPushed(this.pushedItemsTemp[e])}restoreItems(){let e=0,t=this.pushedItems.length,n;for(;e<t;e++)n=this.pushedItems[e],n.$item.x=n.item.x||0,n.$item.y=n.item.y||0,n.setSize();this.pushedItems=[],this.pushedItemsPath=[]}setPushedItems(){let e=0,t=this.pushedItems.length,n;for(;e<t;e++)n=this.pushedItems[e],n.checkItemChanges(n.$item,n.item);this.pushedItems=[],this.pushedItemsPath=[]}checkPushBack(){let e=this.pushedItems.length-1,t=!1;for(;e>-1;e--)this.checkPushedItem(this.pushedItems[e],e)&&(t=!0);t&&this.checkPushBack()}push(e,t){if(this.iteration>100)return console.warn("max iteration reached"),!1;if(this.gridster.checkGridCollision(e.$item)||t==="")return!1;let n=this.gridster.findItemsWithItem(e.$item),s=t===this.fromNorth||t===this.fromWest;n.sort((c,d)=>s?d.$item.y-c.$item.y||d.$item.x-c.$item.x:c.$item.y-d.$item.y||c.$item.x-d.$item.x);let o=0,r,a=!0,l=[];for(;o<n.length;o++){if(r=n[o],r===this.gridsterItem)continue;if(!r.canBeDragged()){a=!1;break}let c=this.pushedItemsTemp.indexOf(r);if(c>-1&&this.pushedItemsTempPath[c].length>10){a=!1;break}if(this.tryPattern[t][0].call(this,r,e))this.pushedItemsOrder.push(r),l.push(r);else if(this.tryPattern[t][1].call(this,r,e))this.pushedItemsOrder.push(r),l.push(r);else if(this.tryPattern[t][2].call(this,r,e))this.pushedItemsOrder.push(r),l.push(r);else if(this.tryPattern[t][3].call(this,r,e))this.pushedItemsOrder.push(r),l.push(r);else{a=!1;break}}if(!a&&(o=this.pushedItemsOrder.lastIndexOf(l[0]),o>-1)){let c=this.pushedItemsOrder.length-1;for(;c>=o;c--)r=this.pushedItemsOrder[c],this.pushedItemsOrder.pop(),this.removeFromTempPushed(r),this.removeFromPushedItem(r)}return this.iteration++,a}trySouth(e,t){return this.gridster.$options.pushDirections.south?(this.addToTempPushed(e),e.$item.y=t.$item.y+t.$item.rows,this.push(e,this.fromNorth)?(e.setSize(),this.addToPushed(e),!0):(this.removeFromTempPushed(e),!1)):!1}tryNorth(e,t){return this.gridster.$options.pushDirections.north?(this.addToTempPushed(e),e.$item.y=t.$item.y-e.$item.rows,this.push(e,this.fromSouth)?(e.setSize(),this.addToPushed(e),!0):(this.removeFromTempPushed(e),!1)):!1}tryEast(e,t){return this.gridster.$options.pushDirections.east?(this.addToTempPushed(e),e.$item.x=t.$item.x+t.$item.cols,this.push(e,this.fromWest)?(e.setSize(),this.addToPushed(e),!0):(this.removeFromTempPushed(e),!1)):!1}tryWest(e,t){return this.gridster.$options.pushDirections.west?(this.addToTempPushed(e),e.$item.x=t.$item.x-e.$item.cols,this.push(e,this.fromEast)?(e.setSize(),this.addToPushed(e),!0):(this.removeFromTempPushed(e),!1)):!1}addToTempPushed(e){let t=this.pushedItemsTemp.indexOf(e);t===-1&&(t=this.pushedItemsTemp.push(e)-1,this.pushedItemsTempPath[t]=[]),this.pushedItemsTempPath[t].push({x:e.$item.x,y:e.$item.y})}removeFromTempPushed(e){let t=this.pushedItemsTemp.indexOf(e),n=this.pushedItemsTempPath[t].pop();n&&(e.$item.x=n.x,e.$item.y=n.y,e.setSize(),this.pushedItemsTempPath[t].length||(this.pushedItemsTemp.splice(t,1),this.pushedItemsTempPath.splice(t,1)))}addToPushed(e){if(this.pushedItems.indexOf(e)<0)this.pushedItems.push(e),this.pushedItemsPath.push([{x:e.item.x||0,y:e.item.y||0},{x:e.$item.x,y:e.$item.y}]);else{let t=this.pushedItems.indexOf(e);this.pushedItemsPath[t].push({x:e.$item.x,y:e.$item.y})}}removeFromPushed(e){e>-1&&(this.pushedItems.splice(e,1),this.pushedItemsPath.splice(e,1))}removeFromPushedItem(e){let t=this.pushedItems.indexOf(e);t>-1&&(this.pushedItemsPath[t].pop(),this.pushedItemsPath.length||(this.pushedItems.splice(t,1),this.pushedItemsPath.splice(t,1)))}checkPushedItem(e,t){let n=this.pushedItemsPath[t],s=n.length-2,o,r,a,l=!1;for(;s>-1;s--)o=n[s],r=e.$item.x,a=e.$item.y,e.$item.x=o.x,e.$item.y=o.y,this.gridster.findItemWithItem(e.$item)?(e.$item.x=r,e.$item.y=a):(e.setSize(),n.splice(s+1,n.length-s-1),l=!0);return n.length<2&&this.removeFromPushed(t),l}},gi,ze,br=50,qt,mi,ue,bi,xi,_i,yi;function xr(i,e,t,n,s,o,r,a,l,c){gi=i.$options.scrollSensitivity,ze=i.$options.scrollSpeed,qt=i.el,mi=l,ue=c;let d=qt.offsetWidth,h=qt.offsetHeight,u=qt.scrollLeft,p=qt.scrollTop,b=t-p,x=h+p-t-s,{clientX:_,clientY:w}=o;if(!i.$options.disableScrollVertical)if(r.clientY<w&&x<gi){if(vr(),mi&&ue&&!ue.south||yi)return;yi=pr(1,a,r)}else if(r.clientY>w&&p>0&&b<gi){if(wr(),mi&&ue&&!ue.north||_i)return;_i=pr(-1,a,r)}else r.clientY!==w&&os();let v=u+d-e-n,T=e-u;if(!i.$options.disableScrollHorizontal)if(r.clientX<_&&v<=gi){if(Cr(),mi&&ue&&!ue.east||bi)return;bi=fr(1,a,r)}else if(r.clientX>_&&u>0&&T<gi){if(yr(),mi&&ue&&!ue.west||xi)return;xi=fr(-1,a,r)}else r.clientX!==_&&ss()}function pr(i,e,t){let n=t.clientY;return window.setInterval(()=>{(!qt||i===-1&&qt.scrollTop-ze<0)&&os(),qt.scrollTop+=i*ze,n+=i*ze,e({clientX:t.clientX,clientY:n})},br)}function fr(i,e,t){let n=t.clientX;return window.setInterval(()=>{(!qt||i===-1&&qt.scrollLeft-ze<0)&&ss(),qt.scrollLeft+=i*ze,n+=i*ze,e({clientX:n,clientY:t.clientY})},br)}function _r(){ss(),os(),qt=null}function ss(){yr(),Cr()}function os(){vr(),wr()}function yr(){bi&&(clearInterval(bi),bi=0)}function Cr(){xi&&(clearInterval(xi),xi=0)}function wr(){yi&&(clearInterval(yi),yi=0)}function vr(){_i&&(clearInterval(_i),_i=0)}var Zn=class{swapedItem;gridsterItem;gridster;constructor(e){this.gridsterItem=e,this.gridster=e.gridster}destroy(){this.gridster=this.gridsterItem=this.swapedItem=null}swapItems(){this.gridster.$options.swap&&(this.checkSwapBack(),this.checkSwap(this.gridsterItem))}checkSwapBack(){if(this.swapedItem){let e=this.swapedItem.$item.x,t=this.swapedItem.$item.y;this.swapedItem.$item.x=this.swapedItem.item.x||0,this.swapedItem.$item.y=this.swapedItem.item.y||0,this.gridster.checkCollision(this.swapedItem.$item)?(this.swapedItem.$item.x=e,this.swapedItem.$item.y=t):(this.swapedItem.setSize(),this.gridsterItem.$item.x=this.gridsterItem.item.x||0,this.gridsterItem.$item.y=this.gridsterItem.item.y||0,this.swapedItem=void 0)}}restoreSwapItem(){this.swapedItem&&(this.swapedItem.$item.x=this.swapedItem.item.x||0,this.swapedItem.$item.y=this.swapedItem.item.y||0,this.swapedItem.setSize(),this.swapedItem=void 0)}setSwapItem(){this.swapedItem&&(this.swapedItem.checkItemChanges(this.swapedItem.$item,this.swapedItem.item),this.swapedItem=void 0)}checkSwap(e){let t;if(this.gridster.$options.swapWhileDragging?t=this.gridster.checkCollisionForSwaping(e.$item):t=this.gridster.checkCollision(e.$item),t&&t!==!0&&t.canBeDragged()){let n=t,s=n.$item.x,o=n.$item.y,r=e.$item.x,a=e.$item.y,l=r-s,c=a-o;n.$item.x=e.item.x-l,n.$item.y=e.item.y-c,e.$item.x=n.item.x+l,e.$item.y=n.item.y+c,this.gridster.checkCollision(n.$item)||this.gridster.checkCollision(e.$item)?(e.$item.x=r,e.$item.y=a,n.$item.x=s,n.$item.y=o):(n.setSize(),this.swapedItem=n,this.gridster.$options.swapWhileDragging&&(this.gridsterItem.checkItemChanges(this.gridsterItem.$item,this.gridsterItem.item),this.setSwapItem()))}}},vc="gridster-item-resizable-handler",jt=function(i){return i.UP="UP",i.DOWN="DOWN",i.LEFT="LEFT",i.RIGHT="RIGHT",i}(jt||{}),ts=class{zone;gridsterItem;gridster;lastMouse;offsetLeft;offsetTop;margin;outerMarginTop;outerMarginRight;outerMarginBottom;outerMarginLeft;diffTop;diffLeft;originalClientX;originalClientY;top;left;height;width;positionX;positionY;positionXBackup;positionYBackup;enabled;mousemove;mouseup;mouseleave;cancelOnBlur;touchmove;touchend;touchcancel;mousedown;touchstart;push;swap;path;collision=!1;constructor(e,t,n){this.zone=n,this.gridsterItem=e,this.gridster=t,this.lastMouse={clientX:0,clientY:0},this.path=[]}destroy(){this.gridster.previewStyle&&this.gridster.previewStyle(!0),this.gridsterItem=this.gridster=this.collision=null,this.mousedown&&(this.mousedown(),this.touchstart())}dragStart(e){e.which&&e.which!==1||(this.gridster.options.draggable&&this.gridster.options.draggable.start&&this.gridster.options.draggable.start(this.gridsterItem.item,this.gridsterItem,e),e.stopPropagation(),e.preventDefault(),this.zone.runOutsideAngular(()=>{this.mousemove=this.gridsterItem.renderer.listen("document","mousemove",this.dragMove),this.touchmove=this.gridster.renderer.listen(this.gridster.el,"touchmove",this.dragMove)}),this.mouseup=this.gridsterItem.renderer.listen("document","mouseup",this.dragStop),this.mouseleave=this.gridsterItem.renderer.listen("document","mouseleave",this.dragStop),this.cancelOnBlur=this.gridsterItem.renderer.listen("window","blur",this.dragStop),this.touchend=this.gridsterItem.renderer.listen("document","touchend",this.dragStop),this.touchcancel=this.gridsterItem.renderer.listen("document","touchcancel",this.dragStop),this.gridsterItem.renderer.addClass(this.gridsterItem.el,"gridster-item-moving"),this.margin=this.gridster.$options.margin,this.outerMarginTop=this.gridster.$options.outerMarginTop,this.outerMarginRight=this.gridster.$options.outerMarginRight,this.outerMarginBottom=this.gridster.$options.outerMarginBottom,this.outerMarginLeft=this.gridster.$options.outerMarginLeft,this.offsetLeft=this.gridster.el.scrollLeft-this.gridster.el.offsetLeft,this.offsetTop=this.gridster.el.scrollTop-this.gridster.el.offsetTop,this.left=this.gridsterItem.left-this.margin,this.top=this.gridsterItem.top-this.margin,this.originalClientX=e.clientX,this.originalClientY=e.clientY,this.width=this.gridsterItem.width,this.height=this.gridsterItem.height,this.gridster.$options.dirType===Et.RTL?this.diffLeft=e.clientX-this.gridster.el.scrollWidth+this.gridsterItem.left:this.diffLeft=e.clientX+this.offsetLeft-this.margin-this.left,this.diffTop=e.clientY+this.offsetTop-this.margin-this.top,this.gridster.movingItem=this.gridsterItem.$item,this.gridster.previewStyle(!0),this.push=new en(this.gridsterItem),this.swap=new Zn(this.gridsterItem),this.gridster.dragInProgress=!0,this.gridster.updateGrid(),this.path.push({x:this.gridsterItem.item.x||0,y:this.gridsterItem.item.y||0}))}dragMove=e=>{e.stopPropagation(),e.preventDefault(),zt.checkTouchEvent(e);let t=this.getDirections(e);this.gridster.options.enableBoundaryControl&&(t.includes(jt.UP)&&this.gridsterItem.el.getBoundingClientRect().top<this.gridster.el.getBoundingClientRect().top+(this.outerMarginTop??this.margin)&&(t=t.filter(n=>n!=jt.UP),e=new MouseEvent(e.type,{clientX:e.clientX,clientY:this.lastMouse.clientY})),t.includes(jt.LEFT)&&this.gridsterItem.el.getBoundingClientRect().left<this.gridster.el.getBoundingClientRect().left+(this.outerMarginLeft??this.margin)&&(t=t.filter(n=>n!=jt.LEFT),e=new MouseEvent(e.type,{clientX:this.lastMouse.clientX,clientY:e.clientY})),t.includes(jt.RIGHT)&&this.gridsterItem.el.getBoundingClientRect().right>this.gridster.el.getBoundingClientRect().right-(this.outerMarginRight??this.margin)&&(t=t.filter(n=>n!=jt.RIGHT),e=new MouseEvent(e.type,{clientX:this.lastMouse.clientX,clientY:e.clientY})),t.includes(jt.DOWN)&&this.gridsterItem.el.getBoundingClientRect().bottom>this.gridster.el.getBoundingClientRect().bottom-(this.outerMarginBottom??this.margin)&&(t=t.filter(n=>n!=jt.DOWN),e=new MouseEvent(e.type,