@yinuo-ngm/server 1.0.20 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/lib/app.js +0 -4
  2. package/lib/env.js +5 -1
  3. package/lib/plugins/success-handle.plugin.js +1 -1
  4. package/lib/plugins/ws/topics/nginx.ws.js +1 -1
  5. package/lib/plugins/ws/ws.context.js +3 -1
  6. package/lib/plugins/ws/ws.plugin.js +14 -2
  7. package/lib/routes/api-client/collection.routes.js +35 -35
  8. package/lib/routes/api-client/env.routes.js +12 -8
  9. package/lib/routes/api-client/history.routes.js +10 -5
  10. package/lib/routes/api-client/request.routes.js +14 -8
  11. package/lib/routes/api-client/route-mappers.d.ts +7 -0
  12. package/lib/routes/api-client/route-mappers.js +78 -0
  13. package/lib/routes/api-client/send.routes.js +12 -8
  14. package/lib/routes/config.routes.js +73 -49
  15. package/lib/routes/deps.route.js +47 -5
  16. package/lib/routes/nginx/nginx-config.routes.js +3 -3
  17. package/lib/routes/nginx/nginx-lifecycle.routes.js +14 -13
  18. package/lib/routes/nginx/nginx-module.routes.js +6 -6
  19. package/lib/routes/nginx/nginx-route.context.d.ts +16 -1
  20. package/lib/routes/nginx/nginx-route.context.js +136 -1
  21. package/lib/routes/nginx/nginx-server.routes.js +5 -5
  22. package/lib/routes/project.routes.js +90 -13
  23. package/lib/routes/sprite-browse.routes.js +17 -11
  24. package/lib/routes/sprite.routes.d.ts +1 -1
  25. package/lib/routes/sprite.routes.js +68 -11
  26. package/lib/routes/svn.routes.js +48 -14
  27. package/lib/routes/task.routes.js +99 -7
  28. package/package.json +7 -7
  29. package/www/3rdpartylicenses.txt +5 -5
  30. package/www/browser/{chunk-OZCK4XVV.js → chunk-2VJVGBXG.js} +1 -1
  31. package/www/browser/{chunk-FL6GDGHW.js → chunk-3ODVU46S.js} +1 -1
  32. package/www/browser/chunk-442QFABJ.js +1 -0
  33. package/www/browser/{chunk-WD2EKZQC.js → chunk-6J6G7JEP.js} +1 -1
  34. package/www/browser/{chunk-7U44RF5F.js → chunk-6UFDNETG.js} +1 -1
  35. package/www/browser/{chunk-75W3GVSO.js → chunk-7AKVG375.js} +1 -1
  36. package/www/browser/chunk-7GLWEFTM.js +1 -0
  37. package/www/browser/{chunk-DIJPUYIA.js → chunk-7QR6RHLA.js} +1 -1
  38. package/www/browser/{chunk-HJTXXSMC.js → chunk-CO3CQHKV.js} +1 -1
  39. package/www/browser/{chunk-3XNNQFWR.js → chunk-CPJTSA6E.js} +1 -1
  40. package/www/browser/chunk-DENFXXOY.js +1 -0
  41. package/www/browser/{chunk-HDNG236Q.js → chunk-HC5KLPHD.js} +1 -1
  42. package/www/browser/chunk-HJAP6WBI.js +1 -0
  43. package/www/browser/{chunk-N2PELLMM.js → chunk-JM6DCZP6.js} +7 -7
  44. package/www/browser/chunk-K6C5ZIV2.js +20 -0
  45. package/www/browser/chunk-M6NZ6C2R.js +2 -0
  46. package/www/browser/{chunk-RGOYDY7H.js → chunk-MBPB43C6.js} +1 -1
  47. package/www/browser/chunk-MPLGMTLT.js +3 -0
  48. package/www/browser/chunk-NNOWADVM.js +1 -0
  49. package/www/browser/{chunk-M4QRBV3K.js → chunk-NREWZQVN.js} +1 -1
  50. package/www/browser/{chunk-6YYNHZ2A.js → chunk-OUGN4APK.js} +1 -1
  51. package/www/browser/chunk-PB2LGZNW.js +1 -0
  52. package/www/browser/chunk-PDI3HSSH.js +4 -0
  53. package/www/browser/chunk-PUG3VNTI.js +3 -0
  54. package/www/browser/{chunk-QJP5F735.js → chunk-PY3AUTHC.js} +1 -1
  55. package/www/browser/{chunk-3M56F2S2.js → chunk-R4HSZU2J.js} +1 -1
  56. package/www/browser/{chunk-DE6E23ET.js → chunk-RKK4I2RT.js} +1 -1
  57. package/www/browser/chunk-RMIYLAEM.js +1 -0
  58. package/www/browser/chunk-RZA3IFQV.js +2 -0
  59. package/www/browser/{chunk-K7PESFPY.js → chunk-SD2HFD54.js} +1 -1
  60. package/www/browser/{chunk-BTQIUVTQ.js → chunk-SEJGGBE2.js} +1 -1
  61. package/www/browser/chunk-SSCUT2GF.js +1 -0
  62. package/www/browser/chunk-TCBOC5FF.js +1 -0
  63. package/www/browser/{chunk-AZ6SIMYH.js → chunk-TS5ZQYYY.js} +1 -1
  64. package/www/browser/chunk-TVJHI463.js +1 -0
  65. package/www/browser/{chunk-YNW4HEJO.js → chunk-TXAXE73U.js} +17 -17
  66. package/www/browser/{chunk-4X42HB6N.js → chunk-U2YWR3HF.js} +1 -1
  67. package/www/browser/{chunk-D2ODDESN.js → chunk-U3EUR236.js} +1 -1
  68. package/www/browser/chunk-UKCMUTYL.js +1 -0
  69. package/www/browser/{chunk-DLGJD6YU.js → chunk-UPOORT3S.js} +1 -1
  70. package/www/browser/chunk-VW3S7C2Z.js +1 -0
  71. package/www/browser/chunk-VZYJ3MSW.js +15 -0
  72. package/www/browser/{chunk-AELTP6YN.js → chunk-WCHN62X6.js} +1 -1
  73. package/www/browser/chunk-WWIPELAV.js +1 -0
  74. package/www/browser/{chunk-B3C35ET3.js → chunk-WYNERG74.js} +1 -1
  75. package/www/browser/{chunk-ZTDLWBW5.js → chunk-XJDJL3TQ.js} +1 -1
  76. package/www/browser/{chunk-EEDA5U4V.js → chunk-YV6QPLF5.js} +1 -1
  77. package/www/browser/{chunk-ONXBYGIG.js → chunk-YVRGRFK2.js} +1 -1
  78. package/www/browser/index.html +1 -1
  79. package/www/browser/main-7GYUOEJY.js +38 -0
  80. package/lib/plugins/api-client.plugin.d.ts +0 -3
  81. package/lib/plugins/api-client.plugin.js +0 -55
  82. package/lib/plugins/nginx.binding.store.d.ts +0 -4
  83. package/lib/plugins/nginx.binding.store.js +0 -39
  84. package/lib/plugins/nginx.plugin.d.ts +0 -3
  85. package/lib/plugins/nginx.plugin.js +0 -23
  86. package/www/browser/chunk-2L7NUOMX.js +0 -2
  87. package/www/browser/chunk-2NZJ7CN2.js +0 -20
  88. package/www/browser/chunk-3CM4SKDO.js +0 -15
  89. package/www/browser/chunk-3OHBKMAA.js +0 -1
  90. package/www/browser/chunk-4LBSLURA.js +0 -1
  91. package/www/browser/chunk-5DYX4DUX.js +0 -11
  92. package/www/browser/chunk-6SYVDN5L.js +0 -1
  93. package/www/browser/chunk-AMXRL4GR.js +0 -1
  94. package/www/browser/chunk-AV2ZODEH.js +0 -1
  95. package/www/browser/chunk-CN5J4WNO.js +0 -1
  96. package/www/browser/chunk-FK6Z4HLL.js +0 -1
  97. package/www/browser/chunk-FXCG34QS.js +0 -1
  98. package/www/browser/chunk-H5HGMOE6.js +0 -1
  99. package/www/browser/chunk-HB3HECPD.js +0 -1
  100. package/www/browser/chunk-HUMCWAKJ.js +0 -3
  101. package/www/browser/chunk-IKB3EQCP.js +0 -2
  102. package/www/browser/chunk-OSBDR36P.js +0 -1
  103. package/www/browser/chunk-XLFHB7RS.js +0 -3
  104. package/www/browser/main-N64WJCHX.js +0 -34
@@ -1,4 +1,4 @@
1
- import{a as ai}from"./chunk-FL6GDGHW.js";import"./chunk-HDNG236Q.js";import{c as Ke}from"./chunk-WD2EKZQC.js";import{c as ii}from"./chunk-IKB3EQCP.js";import{b as Qe}from"./chunk-RGOYDY7H.js";import{d as si,e as ni,f as oi}from"./chunk-3XNNQFWR.js";import{e as qe}from"./chunk-YNW4HEJO.js";import"./chunk-OSBDR36P.js";import{a as ri,b as li}from"./chunk-K7PESFPY.js";import{h as Gt,i as jt,k as Ut,l as Qt}from"./chunk-4X42HB6N.js";import"./chunk-AV2ZODEH.js";import{d as Ze,k as Zt,l as ti,m as ei}from"./chunk-2NZJ7CN2.js";import{Fb as zt,Ga as B,Ha as F,Hb as ct,Lb as pt,Na as je,Oa as Ue,Pa as V,Qa as H,Sa as A,Ta as W,Vb as gt,_b as Kt,ac as Tt,cc as qt,dc as Mt,gc as Je,ic as Jt}from"./chunk-3CM4SKDO.js";import"./chunk-HFZLJHYR.js";import{e as Ge}from"./chunk-WUA5JFDD.js";import{h as Ae,m as Xe,n as D,u as Ye}from"./chunk-KRYMOHYF.js";import{$b as K,Cc as Fe,Dc as We,Fb as k,Fc as Oe,Gc as xt,Ha as P,J as $e,Jc as f,Kc as j,Lb as Xt,Lc as bt,Oa as ot,Oc as dt,Pc as ht,Q as ke,Qc as mt,Ra as Et,Wb as z,Yb as T,Zb as pe,a as S,ac as q,ad as Ne,b as G,bc as c,cc as l,cd as Le,dc as a,ea as Pe,ec as p,fa as me,fc as X,gc as L,hd as Be,ic as et,id as R,jc as it,jd as Ve,kb as Ee,l as At,lc as b,na as _t,nb as h,pd as He,rc as v,sa as M,sb as N,tb as ce,tc as rt,uc as m,ud as Yt,vb as Re,vc as Ft,wa as Se,wc as It,xa as De,ya as g,yb as Rt,z as he,za as u,zb as Q}from"./chunk-4BRW6LCZ.js";var $t=class n{api=M(Zt);getInfo(e){return this.api.get(`/api/dashboard/getInfo/${e}`)}update(e,t){return this.api.post(`/api/dashboard/update/${e}`,t)}widgets(e){return this.api.get(`/api/dashboard/widgets/${e}`)}addWidget(e,t){let{x:i,y:s}=t;return this.api.get(`/api/dashboard/addWidget/${e}/${t.widgetKey}/${i}/${s}`)}removeWidget(e,t){return this.api.delete(`/api/dashboard/removeWidget/${e}/${t}`)}updateItemConfig(e,t,i){return this.api.post(`/api/dashboard/updateItemConfig/${e}/${t}`,i)}killPort(e){return this.api.get(`/api/dashboard/killPort/${e}`)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=_t({token:n,factory:n.\u0275fac,providedIn:"root"})};var st=class n{api=M($t);_doc=P(null);items=R(()=>this._doc()?.items??[]);updatedAt=R(()=>this._doc()?.updatedAt??0);widgets=P([]);saveTimer=null;async load(e){try{let t=await he(this.api.getInfo(e));this._doc.set(t);return}catch{this._doc.set({version:1,projectId:e,updatedAt:Date.now(),items:[]})}}setItems(e,t){let i=this._doc();i&&(this._doc.set(G(S({},i),{items:t})),this.scheduleAutoSave(e))}scheduleAutoSave(e,t=1e4){this.saveTimer&&clearTimeout(this.saveTimer),this.saveTimer=setTimeout(()=>{this.flushSave(e).catch(()=>{})},t)}async flushSave(e){this.saveTimer&&(clearTimeout(this.saveTimer),this.saveTimer=null);let t=this._doc();if(!t)return;let i=await he(this.api.update(e,t));this._doc.set(i)}add(e){console.log("add widget",e);let t=this._doc();t&&(this._doc.set(G(S({},t),{items:[...t.items,e]})),setTimeout(()=>{let{x:i,y:s}=e;this.api.addWidget(t.projectId,{widgetKey:e.key,x:i,y:s}).subscribe(o=>{this._doc.set(o),this.getWidgets()})},0))}remove(e){let t=this._doc();t&&this.api.removeWidget(t.projectId,e).subscribe(i=>{this._doc.set(i),this.getWidgets()})}killProcess(e){this.api.killPort(Number(e)).subscribe(t=>{console.log("Killed port",e)})}getWidgets(){let e=this._doc();e&&this.api.widgets(e.projectId).subscribe(t=>{this.widgets.set(t)})}updateConfig(e,t,i){this._doc()&&this.api.updateItemConfig(e,t,i).subscribe(o=>{this._doc.set(o)})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=_t({token:n,factory:n.\u0275fac,providedIn:"root"})};var bi=(n,e)=>e.key;function zi(n,e){if(n&1){let t=b();l(0,"div",5)(1,"div",6)(2,"div",7),p(3,"nz-icon",8),a(),l(4,"div",9)(5,"div",10),f(6),a(),l(7,"div",11),f(8),a()(),l(9,"div",12)(10,"button",13),v("click",function(){let s=g(t).$implicit,o=m();return u(o.addWidget(s))}),p(11,"nz-icon",14),a()()()()}if(n&2){let t=e.$implicit;h(3),c("nzType",t.icon||"appstore"),h(3),j(t.title),h(2),j(t.desc)}}var te=class n{layout=M(st);add=new N;keyword=P("");widgets=this.layout.widgets;filtered=R(()=>{let e=this.keyword().trim().toLowerCase();return e?this.widgets().filter(t=>(t.title+(t.desc??"")).toLowerCase().includes(e)):this.widgets()});constructor(){}addWidget(e){this.add.emit(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-add-widget-drawer"]],outputs:{add:"add"},decls:8,vars:1,consts:[[1,"list"],[1,"topbar"],["nzInputPrefix","","nzType","search",1,"search-icon"],["nz-input","","placeholder","",3,"ngModelChange","ngModel"],[1,"items"],[1,"item"],[1,"row"],[1,"icon"],["nzTheme","outline",3,"nzType"],[1,"info"],[1,"name"],[1,"description"],[1,"actions"],["nz-button","","nzType","primary","nzSize","small","nzTooltip","\u6DFB\u52A0\u90E8\u4EF6",3,"click"],["nzType","plus"]],template:function(t,i){t&1&&(l(0,"div",0)(1,"div",1)(2,"nz-input-wrapper"),p(3,"nz-icon",2),l(4,"input",3),v("ngModelChange",function(o){return i.keyword.set(o)}),a()()(),l(5,"div",4),K(6,zi,12,3,"div",5,bi),a()()),t&2&&(h(4),c("ngModel",i.keyword()),h(2),q(i.filtered()))},dependencies:[D,gt,zt,ct,pt,F,B,Mt,Tt,qt,Kt,W,A,V,H,Jt],styles:[".list[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;flex-direction:column}.list[_ngcontent-%COMP%] .topbar[_ngcontent-%COMP%]{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 16px}.list[_ngcontent-%COMP%] .topbar[_ngcontent-%COMP%] nz-input-wrapper[_ngcontent-%COMP%]{width:100%;border-radius:18px}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]{flex:1 1 auto;overflow:auto;height:0;display:flex;flex-direction:column;gap:8px;padding:8px;overflow-x:hidden;overflow-y:auto}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{border-radius:3px;padding:10px;cursor:pointer}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover, .list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item.active[_ngcontent-%COMP%]{background:var(--app-primary-3)}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:center;overflow:hidden;justify-content:space-between}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:28px;flex:0 0 auto;position:relative;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--app-primary-1)}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;overflow:hidden}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{font-size:13px;color:var(--app-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{flex:0 0 auto}"],changeDetection:0})};var ci=["*"];function Ti(n,e){if(n&1&&p(0,"div",0),n&2){let t=e.$index,i=m();c("ngStyle",i.gridRenderer.getGridColumnStyle(t))}}function Mi(n,e){if(n&1&&p(0,"div",1),n&2){let t=e.$index,i=m();c("ngStyle",i.gridRenderer.getGridRowStyle(t))}}function $i(n,e){if(n&1){let t=b();X(0,"div",8),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function ki(n,e){if(n&1){let t=b();X(0,"div",9),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Pi(n,e){if(n&1){let t=b();X(0,"div",10),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Si(n,e){if(n&1){let t=b();X(0,"div",11),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Di(n,e){if(n&1){let t=b();X(0,"div",12),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Ei(n,e){if(n&1){let t=b();X(0,"div",13),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Ri(n,e){if(n&1){let t=b();X(0,"div",14),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Fi(n,e){if(n&1){let t=b();X(0,"div",15),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}var C=(function(n){return n.Fit="fit",n.ScrollVertical="scrollVertical",n.ScrollHorizontal="scrollHorizontal",n.Fixed="fixed",n.VerticalFixed="verticalFixed",n.HorizontalFixed="horizontalFixed",n})(C||{}),ie=(function(n){return n.Always="always",n.OnDragAndResize="onDrag&Resize",n.None="none",n})(ie||{}),_=(function(n){return n.None="none",n.CompactUp="compactUp",n.CompactLeft="compactLeft",n.CompactUpAndLeft="compactUp&Left",n.CompactLeftAndUp="compactLeft&Up",n.CompactRight="compactRight",n.CompactUpAndRight="compactUp&Right",n.CompactRightAndUp="compactRight&Up",n.CompactDown="compactDown",n.CompactDownAndLeft="compactDown&Left",n.CompactLeftAndDown="compactLeft&Down",n.CompactDownAndRight="compactDown&Right",n.CompactRightAndDown="compactRight&Down",n.CompactGrid="compactGrid",n})(_||{}),E=(function(n){return n.LTR="ltr",n.RTL="rtl",n})(E||{}),fe=class{gridster;constructor(e){this.gridster=e}destroy(){this.gridster=null}checkCompact(){this.gridster.$options.compactType!==_.None&&(this.gridster.$options.compactType===_.CompactUp?this.checkCompactMovement("y",-1):this.gridster.$options.compactType===_.CompactLeft?this.checkCompactMovement("x",-1):this.gridster.$options.compactType===_.CompactUpAndLeft?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===_.CompactLeftAndUp?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===_.CompactRight?this.checkCompactMovement("x",1):this.gridster.$options.compactType===_.CompactUpAndRight?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===_.CompactRightAndUp?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===_.CompactDown?this.checkCompactMovement("y",1):this.gridster.$options.compactType===_.CompactDownAndLeft?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===_.CompactDownAndRight?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===_.CompactLeftAndDown?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===_.CompactRightAndDown?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===_.CompactGrid&&this.checkCompactGrid())}checkCompactItem(e){this.gridster.$options.compactType!==_.None&&(this.gridster.$options.compactType===_.CompactUp?this.moveTillCollision(e,"y",-1):this.gridster.$options.compactType===_.CompactLeft?this.moveTillCollision(e,"x",-1):this.gridster.$options.compactType===_.CompactUpAndLeft?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===_.CompactLeftAndUp?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",-1)):this.gridster.$options.compactType===_.CompactUpAndRight?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===_.CompactDown?this.moveTillCollision(e,"y",1):this.gridster.$options.compactType===_.CompactDownAndLeft?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===_.CompactLeftAndDown?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===_.CompactDownAndRight?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===_.CompactRightAndDown?(this.moveTillCollision(e,"x",1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===_.CompactGrid&&this.moveToGridPosition(e))}checkCompactMovement(e,t){let i=!1;this.gridster.grid.forEach(s=>{s.$item.compactEnabled!==!1&&this.moveTillCollision(s.$item,e,t)&&(i=!0,s.item[e]=s.$item[e],s.itemChanged())}),i&&this.checkCompact()}moveTillCollision(e,t,i){return e[t]+=i,this.gridster.checkCollision(e)?(e[t]-=i,!1):(this.moveTillCollision(e,t,i),!0)}checkCompactGrid(){let e=this.gridster.grid.filter(o=>o.$item.compactEnabled!==!1).sort((o,r)=>o.$item.y!==r.$item.y?o.$item.y-r.$item.y:o.$item.x-r.$item.x),t=0,i=0,s=0;e.forEach(o=>{let r=o.$item;i+r.cols>this.gridster.columns&&(t=s,i=0,s=t);let d=r.x,y=r.y;r.x=i,r.y=t,(d!==r.x||y!==r.y)&&(o.item.x=r.x,o.item.y=r.y,o.itemChanged()),i+=r.cols,s=Math.max(s,t+r.rows)})}moveToGridPosition(e){let t=0,i=0,s=0,o=this.gridster.grid.filter(r=>r.$item!==e).sort((r,d)=>r.$item.y!==d.$item.y?r.$item.y-d.$item.y:r.$item.x-d.$item.x);for(let r of o){let d=r.$item;i+d.cols>this.gridster.columns&&(t=s,i=0,s=t),t<d.y+d.rows&&t+e.rows>d.y&&i<d.x+d.cols&&i+e.cols>d.x?(i=d.x+d.cols,t=d.y,s=Math.max(s,t+d.rows)):(i+=d.cols,s=Math.max(s,t+d.rows))}i+e.cols>this.gridster.columns&&(t=s,i=0),e.x=i,e.y=t}},Wi={gridType:C.Fit,scale:1,fixedColWidth:250,fixedRowHeight:250,keepFixedHeightInMobile:!1,keepFixedWidthInMobile:!1,setGridSize:!1,compactType:_.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,itemAspectRatio:void 0,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:ie.OnDragAndResize,disableWindowResize:!1,disableWarnings:!1,scrollToNewItems:!1,disableScrollHorizontal:!1,disableScrollVertical:!1,enableBoundaryControl:!1,disableAutoPositionOnConflict:!1,dirType:E.LTR},O=class n{static merge(e,t,i){for(let s in t)t[s]!==void 0&&i.hasOwnProperty(s)&&(typeof t[s]=="object"?(s in e||(e[s]={}),e[s]=n.merge(e[s],t[s],i[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(!n.checkDragHandleClass(t.target,t.currentTarget,e.$options.draggable.dragHandleClass,e.$options.draggable.ignoreContentClass))return!0}else if(n.checkContentClass(t.target,t.currentTarget,e.$options.draggable.ignoreContentClass))return!0;return!1}static checkContentClassForEmptyCellClickEvent(e,t){return n.checkContentClass(t.target,t.currentTarget,e.$options.draggable.ignoreContentClass)||n.checkContentClass(t.target,t.currentTarget,e.$options.draggable.dragHandleClass)}static checkDragHandleClass(e,t,i,s){if(!e||e===t)return!1;if(e.hasAttribute("class")){let o=e.getAttribute("class").split(" ");if(o.indexOf(i)>-1)return!0;if(o.indexOf(s)>-1)return!1}return n.checkDragHandleClass(e.parentNode,t,i,s)}static checkContentClass(e,t,i){return!e||e===t?!1:e.hasAttribute("class")&&e.getAttribute("class").split(" ").indexOf(i)>-1?!0:n.checkContentClass(e.parentNode,t,i)}static compareItems(e,t){return e.y>t.y?-1:e.y<t.y?1:e.x>t.x?-1:1}},Ce=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||O.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||O.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(O.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 i=this.gridster.options.scale;return i?(e.clientX-t.left)/i+this.gridster.el.scrollLeft-this.gridster.gridRenderer.getLeftMargin():e.clientX+this.gridster.el.scrollLeft-t.left-this.gridster.gridRenderer.getLeftMargin()}getPixelsY(e,t){let i=this.gridster.options.scale;return i?(e.clientY-t.top)/i+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(),O.checkTouchEvent(e);let i=this.gridster.el.getBoundingClientRect(),s=this.getPixelsX(e,i),o=this.getPixelsY(e,i),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}},we=class{gridster;lastGridColumnStyles={};lastGridRowStyles={};constructor(e){this.gridster=e}destroy(){this.gridster=null}updateItem(e,t,i){if(this.gridster.mobile)this.clearCellPosition(i,e),this.gridster.$options.keepFixedHeightInMobile?i.setStyle(e,"height",(t.rows-1)*this.gridster.$options.margin+t.rows*this.gridster.$options.fixedRowHeight+"px"):i.setStyle(e,"height",t.rows*this.gridster.curWidth/t.cols+"px"),this.gridster.$options.keepFixedWidthInMobile?i.setStyle(e,"width",this.gridster.$options.fixedColWidth+"px"):i.setStyle(e,"width",""),i.setStyle(e,"margin-bottom",this.gridster.$options.margin+"px"),i.setStyle(e,E.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,d=this.gridster.curRowHeight*t.rows-this.gridster.$options.margin;this.setCellPosition(i,e,s,o),i.setStyle(e,"width",r+"px"),i.setStyle(e,"height",d+"px");let y=null,w=null;this.gridster.$options.outerMargin&&(this.gridster.rows===t.rows+t.y&&(this.gridster.$options.outerMarginBottom!==null?y=this.gridster.$options.outerMarginBottom+"px":y=this.gridster.$options.margin+"px"),this.gridster.columns===t.cols+t.x&&(this.gridster.$options.outerMarginBottom!==null?w=this.gridster.$options.outerMarginRight+"px":w=this.gridster.$options.margin+"px")),i.setStyle(e,"margin-bottom",y),i.setStyle(e,this.gridster.$options.dirType===E.LTR?"margin-right":"margin-left",w)}}updateGridster(){let e="",t="",i="",s="";if(this.gridster.$options.gridType===C.Fit)e=C.Fit,t=C.ScrollVertical,i=C.ScrollHorizontal,s=C.Fixed;else if(this.gridster.$options.gridType===C.ScrollVertical)this.gridster.curRowHeight=this.gridster.curColWidth*this.gridster.$options.rowHeightRatio,e=C.ScrollVertical,t=C.Fit,i=C.ScrollHorizontal,s=C.Fixed;else if(this.gridster.$options.gridType===C.ScrollHorizontal){let o=this.gridster.$options.rowHeightRatio,r=o>=1?o:o+1;this.gridster.curColWidth=this.gridster.curRowHeight*r,e=C.ScrollHorizontal,t=C.Fit,i=C.ScrollVertical,s=C.Fixed}else this.gridster.$options.gridType===C.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=C.Fixed,t=C.Fit,i=C.ScrollVertical,s=C.ScrollHorizontal):this.gridster.$options.gridType===C.VerticalFixed?(this.gridster.curRowHeight=this.gridster.$options.fixedRowHeight+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=C.ScrollVertical,t=C.Fit,i=C.ScrollHorizontal,s=C.Fixed):this.gridster.$options.gridType===C.HorizontalFixed&&(this.gridster.curColWidth=this.gridster.$options.fixedColWidth+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=C.ScrollHorizontal,t=C.Fit,i=C.ScrollVertical,s=C.Fixed);this.gridster.mobile||this.gridster.$options.setGridSize&&this.gridster.$options.gridType!==C.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,i),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=G(S({},this.getLeftPosition(t.left)),{width:t.width+"px",height:t.height+"px"});let i=this.lastGridColumnStyles[e];return i&&i.left===t.left&&i.width===t.width&&i.height===t.height?i.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=G(S({},this.getTopPosition(t.top)),{width:t.width+"px",height:t.height+"px"});let i=this.lastGridRowStyles[e];return i&&i.top===t.top&&i.width===t.width&&i.height===t.height?i.style:(this.lastGridRowStyles[e]=t,t.style)}getLeftPosition(e){let t=this.gridster.$options.dirType===E.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,i,s){let o=this.gridster.$options.dirType===E.RTL?-i:i;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}},ue=(()=>{class n{renderer;gridRenderer;el;constructor(t,i){this.renderer=i,this.el=t.nativeElement}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(i){return new(i||n)(Q(Et),Q(Rt))};static \u0275cmp=k({type:n,selectors:[["gridster-preview"]],inputs:{gridRenderer:"gridRenderer"},decls:0,vars:0,template:function(i,s){},styles:[`gridster-preview{position:absolute;display:none;background:#00000026}
1
+ import{a as ai}from"./chunk-3ODVU46S.js";import"./chunk-HC5KLPHD.js";import{c as Ke}from"./chunk-6J6G7JEP.js";import{c as ii}from"./chunk-M6NZ6C2R.js";import{b as Qe}from"./chunk-MBPB43C6.js";import{d as si,e as ni,f as oi}from"./chunk-CPJTSA6E.js";import{e as qe}from"./chunk-TXAXE73U.js";import"./chunk-442QFABJ.js";import{a as ri,b as li}from"./chunk-SD2HFD54.js";import{h as Gt,i as jt,k as Ut,l as Qt}from"./chunk-U2YWR3HF.js";import"./chunk-PB2LGZNW.js";import{d as Ze,k as Zt,l as ti,m as ei}from"./chunk-K6C5ZIV2.js";import{$b as qt,Db as zt,Ea as B,Fa as F,Fb as ct,Jb as pt,La as je,Ma as Ue,Na as V,Oa as H,Qa as A,Ra as W,Tb as gt,Xb as Kt,Zb as Tt,ac as Mt,dc as Je,fc as Jt}from"./chunk-VZYJ3MSW.js";import"./chunk-HFZLJHYR.js";import{e as Ge}from"./chunk-WUA5JFDD.js";import{h as Ae,m as Xe,n as D,u as Ye}from"./chunk-KRYMOHYF.js";import{$b as K,Cc as Fe,Dc as We,Fb as k,Fc as Oe,Gc as xt,Ha as P,J as $e,Jc as f,Kc as j,Lb as Xt,Lc as bt,Oa as ot,Oc as dt,Pc as ht,Q as ke,Qc as mt,Ra as Et,Wb as z,Yb as T,Zb as pe,a as S,ac as q,ad as Ne,b as G,bc as c,cc as l,cd as Le,dc as a,ea as Pe,ec as p,fa as me,fc as X,gc as L,hd as Be,ic as et,id as R,jc as it,jd as Ve,kb as Ee,l as At,lc as b,na as _t,nb as h,pd as He,rc as v,sa as M,sb as N,tb as ce,tc as rt,uc as m,ud as Yt,vb as Re,vc as Ft,wa as Se,wc as It,xa as De,ya as g,yb as Rt,z as he,za as u,zb as Q}from"./chunk-4BRW6LCZ.js";var $t=class n{api=M(Zt);getInfo(e){return this.api.get(`/api/dashboard/getInfo/${e}`)}update(e,t){return this.api.post(`/api/dashboard/update/${e}`,t)}widgets(e){return this.api.get(`/api/dashboard/widgets/${e}`)}addWidget(e,t){let{x:i,y:s}=t;return this.api.get(`/api/dashboard/addWidget/${e}/${t.widgetKey}/${i}/${s}`)}removeWidget(e,t){return this.api.delete(`/api/dashboard/removeWidget/${e}/${t}`)}updateItemConfig(e,t,i){return this.api.post(`/api/dashboard/updateItemConfig/${e}/${t}`,i)}killPort(e){return this.api.get(`/api/dashboard/killPort/${e}`)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=_t({token:n,factory:n.\u0275fac,providedIn:"root"})};var st=class n{api=M($t);_doc=P(null);items=R(()=>this._doc()?.items??[]);updatedAt=R(()=>this._doc()?.updatedAt??0);widgets=P([]);saveTimer=null;async load(e){try{let t=await he(this.api.getInfo(e));this._doc.set(t);return}catch{this._doc.set({version:1,projectId:e,updatedAt:Date.now(),items:[]})}}setItems(e,t){let i=this._doc();i&&(this._doc.set(G(S({},i),{items:t})),this.scheduleAutoSave(e))}scheduleAutoSave(e,t=1e4){this.saveTimer&&clearTimeout(this.saveTimer),this.saveTimer=setTimeout(()=>{this.flushSave(e).catch(()=>{})},t)}async flushSave(e){this.saveTimer&&(clearTimeout(this.saveTimer),this.saveTimer=null);let t=this._doc();if(!t)return;let i=await he(this.api.update(e,t));this._doc.set(i)}add(e){console.log("add widget",e);let t=this._doc();t&&(this._doc.set(G(S({},t),{items:[...t.items,e]})),setTimeout(()=>{let{x:i,y:s}=e;this.api.addWidget(t.projectId,{widgetKey:e.key,x:i,y:s}).subscribe(o=>{this._doc.set(o),this.getWidgets()})},0))}remove(e){let t=this._doc();t&&this.api.removeWidget(t.projectId,e).subscribe(i=>{this._doc.set(i),this.getWidgets()})}killProcess(e){this.api.killPort(Number(e)).subscribe(t=>{console.log("Killed port",e)})}getWidgets(){let e=this._doc();e&&this.api.widgets(e.projectId).subscribe(t=>{this.widgets.set(t)})}updateConfig(e,t,i){this._doc()&&this.api.updateItemConfig(e,t,i).subscribe(o=>{this._doc.set(o)})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=_t({token:n,factory:n.\u0275fac,providedIn:"root"})};var bi=(n,e)=>e.key;function zi(n,e){if(n&1){let t=b();l(0,"div",5)(1,"div",6)(2,"div",7),p(3,"nz-icon",8),a(),l(4,"div",9)(5,"div",10),f(6),a(),l(7,"div",11),f(8),a()(),l(9,"div",12)(10,"button",13),v("click",function(){let s=g(t).$implicit,o=m();return u(o.addWidget(s))}),p(11,"nz-icon",14),a()()()()}if(n&2){let t=e.$implicit;h(3),c("nzType",t.icon||"appstore"),h(3),j(t.title),h(2),j(t.desc)}}var te=class n{layout=M(st);add=new N;keyword=P("");widgets=this.layout.widgets;filtered=R(()=>{let e=this.keyword().trim().toLowerCase();return e?this.widgets().filter(t=>(t.title+(t.desc??"")).toLowerCase().includes(e)):this.widgets()});constructor(){}addWidget(e){this.add.emit(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-add-widget-drawer"]],outputs:{add:"add"},decls:8,vars:1,consts:[[1,"list"],[1,"topbar"],["nzInputPrefix","","nzType","search",1,"search-icon"],["nz-input","","placeholder","",3,"ngModelChange","ngModel"],[1,"items"],[1,"item"],[1,"row"],[1,"icon"],["nzTheme","outline",3,"nzType"],[1,"info"],[1,"name"],[1,"description"],[1,"actions"],["nz-button","","nzType","primary","nzSize","small","nzTooltip","\u6DFB\u52A0\u90E8\u4EF6",3,"click"],["nzType","plus"]],template:function(t,i){t&1&&(l(0,"div",0)(1,"div",1)(2,"nz-input-wrapper"),p(3,"nz-icon",2),l(4,"input",3),v("ngModelChange",function(o){return i.keyword.set(o)}),a()()(),l(5,"div",4),K(6,zi,12,3,"div",5,bi),a()()),t&2&&(h(4),c("ngModel",i.keyword()),h(2),q(i.filtered()))},dependencies:[D,gt,zt,ct,pt,F,B,Mt,Tt,qt,Kt,W,A,V,H,Jt],styles:[".list[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;flex-direction:column}.list[_ngcontent-%COMP%] .topbar[_ngcontent-%COMP%]{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 16px}.list[_ngcontent-%COMP%] .topbar[_ngcontent-%COMP%] nz-input-wrapper[_ngcontent-%COMP%]{width:100%;border-radius:18px}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]{flex:1 1 auto;overflow:auto;height:0;display:flex;flex-direction:column;gap:8px;padding:8px;overflow-x:hidden;overflow-y:auto}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{border-radius:3px;padding:10px;cursor:pointer}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover, .list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item.active[_ngcontent-%COMP%]{background:var(--app-primary-3)}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:center;overflow:hidden;justify-content:space-between}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:28px;flex:0 0 auto;position:relative;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--app-primary-1)}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;overflow:hidden}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{font-size:13px;color:var(--app-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{flex:0 0 auto}"],changeDetection:0})};var ci=["*"];function Ti(n,e){if(n&1&&p(0,"div",0),n&2){let t=e.$index,i=m();c("ngStyle",i.gridRenderer.getGridColumnStyle(t))}}function Mi(n,e){if(n&1&&p(0,"div",1),n&2){let t=e.$index,i=m();c("ngStyle",i.gridRenderer.getGridRowStyle(t))}}function $i(n,e){if(n&1){let t=b();X(0,"div",8),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function ki(n,e){if(n&1){let t=b();X(0,"div",9),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Pi(n,e){if(n&1){let t=b();X(0,"div",10),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Si(n,e){if(n&1){let t=b();X(0,"div",11),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Di(n,e){if(n&1){let t=b();X(0,"div",12),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Ei(n,e){if(n&1){let t=b();X(0,"div",13),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Ri(n,e){if(n&1){let t=b();X(0,"div",14),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}function Fi(n,e){if(n&1){let t=b();X(0,"div",15),rt("mousedown",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))})("touchstart",function(s){g(t);let o=m();return u(o.resize.dragStartDelay(s))}),L()}}var C=(function(n){return n.Fit="fit",n.ScrollVertical="scrollVertical",n.ScrollHorizontal="scrollHorizontal",n.Fixed="fixed",n.VerticalFixed="verticalFixed",n.HorizontalFixed="horizontalFixed",n})(C||{}),ie=(function(n){return n.Always="always",n.OnDragAndResize="onDrag&Resize",n.None="none",n})(ie||{}),_=(function(n){return n.None="none",n.CompactUp="compactUp",n.CompactLeft="compactLeft",n.CompactUpAndLeft="compactUp&Left",n.CompactLeftAndUp="compactLeft&Up",n.CompactRight="compactRight",n.CompactUpAndRight="compactUp&Right",n.CompactRightAndUp="compactRight&Up",n.CompactDown="compactDown",n.CompactDownAndLeft="compactDown&Left",n.CompactLeftAndDown="compactLeft&Down",n.CompactDownAndRight="compactDown&Right",n.CompactRightAndDown="compactRight&Down",n.CompactGrid="compactGrid",n})(_||{}),E=(function(n){return n.LTR="ltr",n.RTL="rtl",n})(E||{}),fe=class{gridster;constructor(e){this.gridster=e}destroy(){this.gridster=null}checkCompact(){this.gridster.$options.compactType!==_.None&&(this.gridster.$options.compactType===_.CompactUp?this.checkCompactMovement("y",-1):this.gridster.$options.compactType===_.CompactLeft?this.checkCompactMovement("x",-1):this.gridster.$options.compactType===_.CompactUpAndLeft?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===_.CompactLeftAndUp?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===_.CompactRight?this.checkCompactMovement("x",1):this.gridster.$options.compactType===_.CompactUpAndRight?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===_.CompactRightAndUp?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===_.CompactDown?this.checkCompactMovement("y",1):this.gridster.$options.compactType===_.CompactDownAndLeft?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===_.CompactDownAndRight?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===_.CompactLeftAndDown?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===_.CompactRightAndDown?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===_.CompactGrid&&this.checkCompactGrid())}checkCompactItem(e){this.gridster.$options.compactType!==_.None&&(this.gridster.$options.compactType===_.CompactUp?this.moveTillCollision(e,"y",-1):this.gridster.$options.compactType===_.CompactLeft?this.moveTillCollision(e,"x",-1):this.gridster.$options.compactType===_.CompactUpAndLeft?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===_.CompactLeftAndUp?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",-1)):this.gridster.$options.compactType===_.CompactUpAndRight?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===_.CompactDown?this.moveTillCollision(e,"y",1):this.gridster.$options.compactType===_.CompactDownAndLeft?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===_.CompactLeftAndDown?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===_.CompactDownAndRight?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===_.CompactRightAndDown?(this.moveTillCollision(e,"x",1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===_.CompactGrid&&this.moveToGridPosition(e))}checkCompactMovement(e,t){let i=!1;this.gridster.grid.forEach(s=>{s.$item.compactEnabled!==!1&&this.moveTillCollision(s.$item,e,t)&&(i=!0,s.item[e]=s.$item[e],s.itemChanged())}),i&&this.checkCompact()}moveTillCollision(e,t,i){return e[t]+=i,this.gridster.checkCollision(e)?(e[t]-=i,!1):(this.moveTillCollision(e,t,i),!0)}checkCompactGrid(){let e=this.gridster.grid.filter(o=>o.$item.compactEnabled!==!1).sort((o,r)=>o.$item.y!==r.$item.y?o.$item.y-r.$item.y:o.$item.x-r.$item.x),t=0,i=0,s=0;e.forEach(o=>{let r=o.$item;i+r.cols>this.gridster.columns&&(t=s,i=0,s=t);let d=r.x,y=r.y;r.x=i,r.y=t,(d!==r.x||y!==r.y)&&(o.item.x=r.x,o.item.y=r.y,o.itemChanged()),i+=r.cols,s=Math.max(s,t+r.rows)})}moveToGridPosition(e){let t=0,i=0,s=0,o=this.gridster.grid.filter(r=>r.$item!==e).sort((r,d)=>r.$item.y!==d.$item.y?r.$item.y-d.$item.y:r.$item.x-d.$item.x);for(let r of o){let d=r.$item;i+d.cols>this.gridster.columns&&(t=s,i=0,s=t),t<d.y+d.rows&&t+e.rows>d.y&&i<d.x+d.cols&&i+e.cols>d.x?(i=d.x+d.cols,t=d.y,s=Math.max(s,t+d.rows)):(i+=d.cols,s=Math.max(s,t+d.rows))}i+e.cols>this.gridster.columns&&(t=s,i=0),e.x=i,e.y=t}},Wi={gridType:C.Fit,scale:1,fixedColWidth:250,fixedRowHeight:250,keepFixedHeightInMobile:!1,keepFixedWidthInMobile:!1,setGridSize:!1,compactType:_.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,itemAspectRatio:void 0,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:ie.OnDragAndResize,disableWindowResize:!1,disableWarnings:!1,scrollToNewItems:!1,disableScrollHorizontal:!1,disableScrollVertical:!1,enableBoundaryControl:!1,disableAutoPositionOnConflict:!1,dirType:E.LTR},O=class n{static merge(e,t,i){for(let s in t)t[s]!==void 0&&i.hasOwnProperty(s)&&(typeof t[s]=="object"?(s in e||(e[s]={}),e[s]=n.merge(e[s],t[s],i[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(!n.checkDragHandleClass(t.target,t.currentTarget,e.$options.draggable.dragHandleClass,e.$options.draggable.ignoreContentClass))return!0}else if(n.checkContentClass(t.target,t.currentTarget,e.$options.draggable.ignoreContentClass))return!0;return!1}static checkContentClassForEmptyCellClickEvent(e,t){return n.checkContentClass(t.target,t.currentTarget,e.$options.draggable.ignoreContentClass)||n.checkContentClass(t.target,t.currentTarget,e.$options.draggable.dragHandleClass)}static checkDragHandleClass(e,t,i,s){if(!e||e===t)return!1;if(e.hasAttribute("class")){let o=e.getAttribute("class").split(" ");if(o.indexOf(i)>-1)return!0;if(o.indexOf(s)>-1)return!1}return n.checkDragHandleClass(e.parentNode,t,i,s)}static checkContentClass(e,t,i){return!e||e===t?!1:e.hasAttribute("class")&&e.getAttribute("class").split(" ").indexOf(i)>-1?!0:n.checkContentClass(e.parentNode,t,i)}static compareItems(e,t){return e.y>t.y?-1:e.y<t.y?1:e.x>t.x?-1:1}},Ce=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||O.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||O.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(O.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 i=this.gridster.options.scale;return i?(e.clientX-t.left)/i+this.gridster.el.scrollLeft-this.gridster.gridRenderer.getLeftMargin():e.clientX+this.gridster.el.scrollLeft-t.left-this.gridster.gridRenderer.getLeftMargin()}getPixelsY(e,t){let i=this.gridster.options.scale;return i?(e.clientY-t.top)/i+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(),O.checkTouchEvent(e);let i=this.gridster.el.getBoundingClientRect(),s=this.getPixelsX(e,i),o=this.getPixelsY(e,i),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}},we=class{gridster;lastGridColumnStyles={};lastGridRowStyles={};constructor(e){this.gridster=e}destroy(){this.gridster=null}updateItem(e,t,i){if(this.gridster.mobile)this.clearCellPosition(i,e),this.gridster.$options.keepFixedHeightInMobile?i.setStyle(e,"height",(t.rows-1)*this.gridster.$options.margin+t.rows*this.gridster.$options.fixedRowHeight+"px"):i.setStyle(e,"height",t.rows*this.gridster.curWidth/t.cols+"px"),this.gridster.$options.keepFixedWidthInMobile?i.setStyle(e,"width",this.gridster.$options.fixedColWidth+"px"):i.setStyle(e,"width",""),i.setStyle(e,"margin-bottom",this.gridster.$options.margin+"px"),i.setStyle(e,E.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,d=this.gridster.curRowHeight*t.rows-this.gridster.$options.margin;this.setCellPosition(i,e,s,o),i.setStyle(e,"width",r+"px"),i.setStyle(e,"height",d+"px");let y=null,w=null;this.gridster.$options.outerMargin&&(this.gridster.rows===t.rows+t.y&&(this.gridster.$options.outerMarginBottom!==null?y=this.gridster.$options.outerMarginBottom+"px":y=this.gridster.$options.margin+"px"),this.gridster.columns===t.cols+t.x&&(this.gridster.$options.outerMarginBottom!==null?w=this.gridster.$options.outerMarginRight+"px":w=this.gridster.$options.margin+"px")),i.setStyle(e,"margin-bottom",y),i.setStyle(e,this.gridster.$options.dirType===E.LTR?"margin-right":"margin-left",w)}}updateGridster(){let e="",t="",i="",s="";if(this.gridster.$options.gridType===C.Fit)e=C.Fit,t=C.ScrollVertical,i=C.ScrollHorizontal,s=C.Fixed;else if(this.gridster.$options.gridType===C.ScrollVertical)this.gridster.curRowHeight=this.gridster.curColWidth*this.gridster.$options.rowHeightRatio,e=C.ScrollVertical,t=C.Fit,i=C.ScrollHorizontal,s=C.Fixed;else if(this.gridster.$options.gridType===C.ScrollHorizontal){let o=this.gridster.$options.rowHeightRatio,r=o>=1?o:o+1;this.gridster.curColWidth=this.gridster.curRowHeight*r,e=C.ScrollHorizontal,t=C.Fit,i=C.ScrollVertical,s=C.Fixed}else this.gridster.$options.gridType===C.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=C.Fixed,t=C.Fit,i=C.ScrollVertical,s=C.ScrollHorizontal):this.gridster.$options.gridType===C.VerticalFixed?(this.gridster.curRowHeight=this.gridster.$options.fixedRowHeight+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=C.ScrollVertical,t=C.Fit,i=C.ScrollHorizontal,s=C.Fixed):this.gridster.$options.gridType===C.HorizontalFixed&&(this.gridster.curColWidth=this.gridster.$options.fixedColWidth+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=C.ScrollHorizontal,t=C.Fit,i=C.ScrollVertical,s=C.Fixed);this.gridster.mobile||this.gridster.$options.setGridSize&&this.gridster.$options.gridType!==C.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,i),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=G(S({},this.getLeftPosition(t.left)),{width:t.width+"px",height:t.height+"px"});let i=this.lastGridColumnStyles[e];return i&&i.left===t.left&&i.width===t.width&&i.height===t.height?i.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=G(S({},this.getTopPosition(t.top)),{width:t.width+"px",height:t.height+"px"});let i=this.lastGridRowStyles[e];return i&&i.top===t.top&&i.width===t.width&&i.height===t.height?i.style:(this.lastGridRowStyles[e]=t,t.style)}getLeftPosition(e){let t=this.gridster.$options.dirType===E.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,i,s){let o=this.gridster.$options.dirType===E.RTL?-i:i;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}},ue=(()=>{class n{renderer;gridRenderer;el;constructor(t,i){this.renderer=i,this.el=t.nativeElement}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(i){return new(i||n)(Q(Et),Q(Rt))};static \u0275cmp=k({type:n,selectors:[["gridster-preview"]],inputs:{gridRenderer:"gridRenderer"},decls:0,vars:0,template:function(i,s){},styles:[`gridster-preview{position:absolute;display:none;background:#00000026}
2
2
  `],encapsulation:2})}return n})(),Ie=(()=>{class n{renderer;cdRef;zone;gridsterPreview=He.required(ue);options;movingItem;el;$options;mobile;curWidth;curHeight;grid;columns=0;rows=0;curColWidth;curRowHeight;gridColumns=[];gridRows=[];windowResize;dragInProgress;emptyCell;compact;gridRenderer;calculateLayout$=new At;resize$=new At;destroy$=new At;constructor(t,i,s,o){this.renderer=i,this.cdRef=s,this.zone=o,this.el=t.nativeElement,this.$options=JSON.parse(JSON.stringify(Wi)),this.mobile=!1,this.curWidth=0,this.curHeight=0,this.grid=[],this.curColWidth=0,this.curRowHeight=0,this.dragInProgress=!1,this.emptyCell=new Ce(this),this.compact=new fe(this),this.gridRenderer=new we(this)}static checkCollisionTwoItemsForSwaping(t,i){let s=t.cols===1?0:1,o=i.cols===1?0:1,r=t.rows===1?0:1,d=i.rows===1?0:1;return t.x+s<i.x+i.cols&&t.x+t.cols>i.x+o&&t.y+r<i.y+i.rows&&t.y+t.rows>i.y+d}checkCollisionTwoItems(t,i){if(!(t.x<i.x+i.cols&&t.x+t.cols>i.x&&t.y<i.y+i.rows&&t.y+t.rows>i.y))return!1;if(!this.$options.allowMultiLayer)return!0;let o=this.$options.defaultLayerIndex,r=t.layerIndex===void 0?o:t.layerIndex,d=i.layerIndex===void 0?o:i.layerIndex;return r===d}ngOnInit(){this.options.initCallback&&this.options.initCallback(this),this.calculateLayout$.pipe(ke(0),me(this.destroy$)).subscribe(()=>this.calculateLayout()),this.resize$.pipe(Pe(()=>$e(100)),me(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:i=>this.getItemComponent(i)},this.columns=this.$options.minCols,this.rows=this.$options.minRows+this.$options.addEmptyRowsCount,this.setGridSize(),this.calculateLayout())}resize(){let t,i;this.$options.gridType==="fit"&&!this.mobile?(i=this.el.offsetWidth,t=this.el.offsetHeight):(i=this.el.clientWidth,t=this.el.clientHeight),(i!==this.curWidth||t!==this.curHeight)&&this.checkIfToResize()&&this.onResize()}setOptions(){this.$options=O.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,i;for(;t>=0;t--)i=this.grid[t],i.updateOptions();this.calculateLayout()};ngOnDestroy(){this.destroy$.next(),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,i=this.el.offsetWidth,s=this.el.scrollWidth,o=this.el.clientHeight,r=this.el.offsetHeight,d=this.el.scrollHeight,y=t<i&&d>r&&d-r<i-t,w=o<r&&s>i&&s-i<r-o;return y?!1:!w}checkIfMobile(){return this.$options.useBodyForBreakpoint?this.$options.mobileBreakpoint>document.body.clientWidth:this.$options.mobileBreakpoint>this.curWidth}setGridSize(){let t=this.el,i,s;this.$options.setGridSize||this.$options.gridType===C.Fit&&!this.mobile?(i=t.offsetWidth,s=t.offsetHeight):(i=t.clientWidth,s=t.clientHeight),this.curWidth=i,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,i=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),i=Math.max(i,o.$item.x+o.$item.cols));t+=this.$options.addEmptyRowsCount,(this.columns!==i||this.rows!==t)&&(this.columns=i,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,i;for(;t>=0;t--)i=this.grid[t],i.setSize(),i.drag.toggle(),i.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=n.getNewArrayLength(this.columns,this.curWidth,this.curColWidth),this.gridRows.length=n.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),this.movingItem&&this.movingItem===t.$item&&(this.movingItem=null,this.previewStyle())}checkCollision(t,i){let s=!1;if(this.options.itemValidateCallback&&(s=!this.options.itemValidateCallback(t)),!s&&this.checkGridCollision(t,i)&&(s=!0),!s){let o=this.findItemWithItem(t);o&&(s=o)}return s}checkGridCollision(t,i=!1){let s=t.y>-1&&t.x>-1,o=t.cols+t.x<=this.$options.maxCols,r=t.rows+t.y<=this.$options.maxRows,d=t.maxItemCols===void 0?this.$options.maxItemCols:t.maxItemCols,y=t.minItemCols===void 0?this.$options.minItemCols:t.minItemCols,w=t.maxItemRows===void 0?this.$options.maxItemRows:t.maxItemRows,$=t.minItemRows===void 0?this.$options.minItemRows:t.minItemRows,x=t.cols<=d&&t.cols>=y,I=t.rows<=w&&t.rows>=$,Z=!0;if(i){let wt=t.itemAspectRatio||this.$options.itemAspectRatio;wt&&(Z=t.cols/t.rows===wt)}let ft=t.minItemArea===void 0?this.$options.minItemArea:t.minItemArea,Ct=t.maxItemArea===void 0?this.$options.maxItemArea:t.maxItemArea,tt=t.cols*t.rows,at=ft<=tt,vt=Ct>=tt;return!(s&&o&&r&&Z&&x&&I&&at&&vt)}findItemWithItem(t){let i=0,s;for(;i<this.grid.length;i++)if(s=this.grid[i],s.$item!==t&&this.checkCollisionTwoItems(s.$item,t))return s;return!1}findItemsWithItem(t){let i=[],s=0,o;for(;s<this.grid.length;s++)o=this.grid[s],o.$item!==t&&this.checkCollisionTwoItems(o.$item,t)&&i.push(o);return i}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,i={})=>{t.cols===-1&&(t.cols=this.$options.defaultItemCols),t.rows===-1&&(t.rows=this.$options.defaultItemRows),this.setGridDimensions();let s=i.y||0,o;for(;s<this.rows;s++)for(t.y=s,o=i.x||0;o<this.columns;o++)if(t.x=o,!this.checkCollision(t))return!0;let r=this.$options.maxRows>=this.rows+t.rows,d=this.$options.maxCols>=this.columns+t.cols;return!(this.rows<=this.columns&&r)&&d?(t.x=this.columns,t.y=0,!0):r?(t.y=this.rows,t.x=0,!0):!1};getFirstPossiblePosition=t=>{let i=Object.assign({},t);return this.getNextPossiblePosition(i),i};getLastPossiblePosition=t=>{let i={y:0,x:0};i=this.grid.reduce((o,r)=>{let d={y:r.$item.y+r.$item.rows-1,x:r.$item.x+r.$item.cols-1};return O.compareItems(o,d)===1?d:o},i);let s=Object.assign({},t);return this.getNextPossiblePosition(s,i),s};pixelsToPositionX(t,i,s){let o=i(t/this.curColWidth);return s?o:Math.max(o,0)}pixelsToPositionY(t,i,s){let o=i(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(i=>i.item===t)}checkCollisionForSwaping(t){let i=!1;if(this.options.itemValidateCallback&&(i=!this.options.itemValidateCallback(t)),!i&&this.checkGridCollision(t)&&(i=!0),!i){let s=this.findItemWithItemForSwapping(t);s&&(i=s)}return i}findItemWithItemForSwapping(t){let i=this.grid.length-1,s;for(;i>-1;i--)if(s=this.grid[i],s.$item!==t&&n.checkCollisionTwoItemsForSwaping(s.$item,t))return s;return!1}previewStyle(t=!1){let i=this.gridsterPreview();this.movingItem?(this.compact&&t&&this.compact.checkCompactItem(this.movingItem),i.previewStyle(this.movingItem)):i.previewStyle(null)}static getNewArrayLength(t,i,s){let o=Math.max(t,Math.floor(i/s));return o<0?0:Number.isFinite(o)?Math.floor(o):0}static \u0275fac=function(i){return new(i||n)(Q(Et),Q(Rt),Q(Yt),Q(ce))};static \u0275cmp=k({type:n,selectors:[["gridster"]],viewQuery:function(i,s){i&1&&Fe(s.gridsterPreview,ue,5),i&2&&We()},inputs:{options:"options"},features:[ot],ngContentSelectors:ci,decls:6,vars:1,consts:[[1,"gridster-column",3,"ngStyle"],[1,"gridster-row",3,"ngStyle"],[1,"gridster-preview",3,"gridRenderer"]],template:function(i,s){i&1&&(Ft(),K(0,Ti,1,1,"div",0,pe),K(2,Mi,1,1,"div",1,pe),It(4),p(5,"gridster-preview",2)),i&2&&(q(s.gridColumns),h(2),q(s.gridRows),h(3),c("gridRenderer",s.gridRenderer))},dependencies:[Ae,ue],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}
3
3
  `],encapsulation:2})}return n})(),ee=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 i=this.push(this.gridsterItem,e);return i||this.restoreTempItems(),this.pushedItemsOrder=[],this.pushedItemsTemp=[],this.pushedItemsTempPath=[],i}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,i;for(;e<t;e++)i=this.pushedItems[e],i.$item.x=i.item.x||0,i.$item.y=i.item.y||0,i.setSize();this.pushedItems=[],this.pushedItemsPath=[]}setPushedItems(){let e=0,t=this.pushedItems.length,i;for(;e<t;e++)i=this.pushedItems[e],i.checkItemChanges(i.$item,i.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 i=this.gridster.findItemsWithItem(e.$item),s=t===this.fromNorth||t===this.fromWest;i.sort((w,$)=>s?$.$item.y-w.$item.y||$.$item.x-w.$item.x:w.$item.y-$.$item.y||w.$item.x-$.$item.x);let o=0,r,d=!0,y=[];for(;o<i.length;o++){if(r=i[o],r===this.gridsterItem)continue;if(!r.canBeDragged()){d=!1;break}let w=this.pushedItemsTemp.indexOf(r);if(w>-1&&this.pushedItemsTempPath[w].length>10){d=!1;break}if(this.tryPattern[t][0].call(this,r,e))this.pushedItemsOrder.push(r),y.push(r);else if(this.tryPattern[t][1].call(this,r,e))this.pushedItemsOrder.push(r),y.push(r);else if(this.tryPattern[t][2].call(this,r,e))this.pushedItemsOrder.push(r),y.push(r);else if(this.tryPattern[t][3].call(this,r,e))this.pushedItemsOrder.push(r),y.push(r);else{d=!1;break}}if(!d&&(o=this.pushedItemsOrder.lastIndexOf(y[0]),o>-1)){let w=this.pushedItemsOrder.length-1;for(;w>=o;w--)r=this.pushedItemsOrder[w],this.pushedItemsOrder.pop(),this.removeFromTempPushed(r),this.removeFromPushedItem(r)}return this.iteration++,d}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),i=this.pushedItemsTempPath[t].pop();i&&(e.$item.x=i.x,e.$item.y=i.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 i=this.pushedItemsPath[t],s=i.length-2,o,r,d,y=!1;for(;s>-1;s--)o=i[s],r=e.$item.x,d=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=d):(e.setSize(),i.splice(s+1,i.length-s-1),y=!0);return i.length<2&&this.removeFromPushed(t),y}},Wt,Nt,pi=50,J,Ot,lt,Lt,Bt,Vt,Ht;function gi(n,e,t,i,s,o,r,d,y,w){Wt=n.$options.scrollSensitivity,Nt=n.$options.scrollSpeed,J=n.el,Ot=y,lt=w;let $=J.offsetWidth,x=J.offsetHeight,I=J.scrollLeft,Z=J.scrollTop,ft=t-Z,Ct=x+Z-t-s,{clientX:tt,clientY:at}=o;if(!n.$options.disableScrollVertical)if(r.clientY<at&&Ct<Wt){if(yi(),Ot&&lt&&!lt.south||Ht)return;Ht=hi(1,d,r)}else if(r.clientY>at&&Z>0&&ft<Wt){if(wi(),Ot&&lt&&!lt.north||Vt)return;Vt=hi(-1,d,r)}else r.clientY!==at&&ze();let vt=I+$-e-i,wt=e-I;if(!n.$options.disableScrollHorizontal){let yt=n.$options.dirType===E.RTL,Te=r.clientX<tt,Me=r.clientX>tt,_i=yt?Me:Te,Ii=yt?Te:Me;if(_i&&vt<=Wt){if(Ci(),Ot&&lt&&!lt.east||Lt)return;Lt=mi(1,d,r,yt)}else if(Ii&&I>0&&wt<Wt){if(fi(),Ot&&lt&&!lt.west||Bt)return;Bt=mi(-1,d,r,yt)}else r.clientX!==tt&&be()}}function hi(n,e,t){let i=t.clientY;return window.setInterval(()=>{(!J||n===-1&&J.scrollTop-Nt<0)&&ze(),J.scrollTop+=n*Nt,i+=n*Nt,e({clientX:t.clientX,clientY:i})},pi)}function mi(n,e,t,i){let s=t.clientX;return window.setInterval(()=>{if(!J){be();return}let o=n*Nt,r=i?-o:o;J.scrollBy({left:r,behavior:"auto"}),s+=r,e({clientX:s,clientY:t.clientY})},pi)}function ui(){be(),ze(),J=null}function be(){fi(),Ci()}function ze(){yi(),wi()}function fi(){Lt&&(clearInterval(Lt),Lt=0)}function Ci(){Bt&&(clearInterval(Bt),Bt=0)}function wi(){Ht&&(clearInterval(Ht),Ht=0)}function yi(){Vt&&(clearInterval(Vt),Vt=0)}var ye=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 i=t,s=i.$item.x,o=i.$item.y,r=e.$item.x,d=e.$item.y,y=r-s,w=d-o;i.$item.x=e.item.x-y,i.$item.y=e.item.y-w,e.$item.x=i.item.x+y,e.$item.y=i.item.y+w,this.gridster.checkCollision(i.$item)||this.gridster.checkCollision(e.$item)?(e.$item.x=r,e.$item.y=d,i.$item.x=s,i.$item.y=o):(i.setSize(),this.swapedItem=i,this.gridster.$options.swapWhileDragging&&(this.gridsterItem.checkItemChanges(this.gridsterItem.$item,this.gridsterItem.item),this.setSwapItem()))}}},Oi="gridster-item-resizable-handler",Y=(function(n){return n.UP="UP",n.DOWN="DOWN",n.LEFT="LEFT",n.RIGHT="RIGHT",n})(Y||{}),xe=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,i){this.zone=i,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.dragInProgress||(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===E.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 ee(this.gridsterItem),this.swap=new ye(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(),O.checkTouchEvent(e);let t=this.getDirections(e);this.gridster.options.enableBoundaryControl&&(t.includes(Y.UP)&&this.gridsterItem.el.getBoundingClientRect().top<this.gridster.el.getBoundingClientRect().top+(this.outerMarginTop??this.margin)&&(t=t.filter(i=>i!=Y.UP),e=new MouseEvent(e.type,{clientX:e.clientX,clientY:this.lastMouse.clientY})),t.includes(Y.LEFT)&&this.gridsterItem.el.getBoundingClientRect().left<this.gridster.el.getBoundingClientRect().left+(this.outerMarginLeft??this.margin)&&(t=t.filter(i=>i!=Y.LEFT),e=new MouseEvent(e.type,{clientX:this.lastMouse.clientX,clientY:e.clientY})),t.includes(Y.RIGHT)&&this.gridsterItem.el.getBoundingClientRect().right>this.gridster.el.getBoundingClientRect().right-(this.outerMarginRight??this.margin)&&(t=t.filter(i=>i!=Y.RIGHT),e=new MouseEvent(e.type,{clientX:this.lastMouse.clientX,clientY:e.clientY})),t.includes(Y.DOWN)&&this.gridsterItem.el.getBoundingClientRect().bottom>this.gridster.el.getBoundingClientRect().bottom-(this.outerMarginBottom??this.margin)&&(t=t.filter(i=>i!=Y.DOWN),e=new MouseEvent(e.type,{clientX:e.clientX,clientY:this.lastMouse.clientY}))),t.length&&(this.offsetLeft=this.gridster.el.scrollLeft-this.gridster.el.offsetLeft,this.offsetTop=this.gridster.el.scrollTop-this.gridster.el.offsetTop,gi(this.gridster,this.left,this.top,this.width,this.height,e,this.lastMouse,this.calculateItemPositionFromMousePosition),this.calculateItemPositionFromMousePosition(e))};calculateItemPositionFromMousePosition=e=>{this.gridster.options.scale?this.calculateItemPositionWithScale(e,this.gridster.options.scale):this.calculateItemPositionWithoutScale(e),this.calculateItemPosition(),this.lastMouse.clientX=e.clientX,this.lastMouse.clientY=e.clientY,this.zone.run(()=>{this.gridster.updateGrid()})};calculateItemPositionWithScale(e,t){this.gridster.$options.dirType===E.RTL?this.left=this.gridster.el.scrollWidth-this.originalClientX+(e.clientX-this.originalClientX)/t+this.diffLeft:this.left=this.originalClientX+(e.clientX-this.originalClientX)/t+this.offsetLeft-this.diffLeft,this.top=this.originalClientY+(e.clientY-this.originalClientY)/t+this.offsetTop-this.diffTop}calculateItemPositionWithoutScale(e){this.gridster.$options.dirType===E.RTL?this.left=this.gridster.el.offsetWidth-(e.clientX+this.offsetLeft-this.diffLeft):this.left=e.clientX+this.offsetLeft-this.diffLeft,this.top=e.clientY+this.offsetTop-this.diffTop}dragStop=e=>{e.stopPropagation(),e.preventDefault(),ui(),this.cancelOnBlur(),this.mousemove(),this.mouseup(),this.mouseleave(),this.touchmove(),this.touchend(),this.touchcancel(),this.gridsterItem.renderer.removeClass(this.gridsterItem.el,"gridster-item-moving"),this.gridster.dragInProgress=!1,this.gridster.updateGrid(),this.path=[],this.gridster.options.draggable&&this.gridster.options.draggable.stop?Promise.resolve(this.gridster.options.draggable.stop(this.gridsterItem.item,this.gridsterItem,e)).then(this.makeDrag,this.cancelDrag):this.makeDrag(),setTimeout(()=>{this.gridster&&(this.gridster.movingItem=null,this.gridster.previewStyle(!0))})};cancelDrag=()=>{this.gridsterItem.$item.x=this.gridsterItem.item.x||0,this.gridsterItem.$item.y=this.gridsterItem.item.y||0,this.gridsterItem.setSize(),this.push&&this.push.restoreItems(),this.swap&&this.swap.restoreSwapItem(),this.push&&(this.push.destroy(),this.push=null),this.swap&&(this.swap.destroy(),this.swap=null)};makeDrag=()=>{this.gridster.$options.draggable.dropOverItems&&this.gridster.options.draggable&&this.gridster.options.draggable.dropOverItemsCallback&&this.collision&&this.collision!==!0&&this.collision.$item&&this.gridster.options.draggable.dropOverItemsCallback(this.gridsterItem.item,this.collision.item,this.gridster),this.collision=!1,this.gridsterItem.setSize(),this.gridsterItem.checkItemChanges(this.gridsterItem.$item,this.gridsterItem.item),this.push&&this.push.setPushedItems(),this.swap&&this.swap.setSwapItem(),this.push&&(this.push.destroy(),this.push=null),this.swap&&(this.swap.destroy(),this.swap=null)};calculateItemPosition(){if(this.gridster.movingItem=this.gridsterItem.$item,this.positionX=this.gridster.pixelsToPositionX(this.left,Math.round),this.positionY=this.gridster.pixelsToPositionY(this.top,Math.round),this.positionXBackup=this.gridsterItem.$item.x,this.positionYBackup=this.gridsterItem.$item.y,this.gridsterItem.$item.x=this.positionX,this.gridster.checkGridCollision(this.gridsterItem.$item)&&(this.gridsterItem.$item.x=this.positionXBackup),this.gridsterItem.$item.y=this.positionY,this.gridster.checkGridCollision(this.gridsterItem.$item)&&(this.gridsterItem.$item.y=this.positionYBackup),this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer,this.gridsterItem.el,this.left,this.top),this.positionXBackup!==this.gridsterItem.$item.x||this.positionYBackup!==this.gridsterItem.$item.y){let e=this.path[this.path.length-1],t="";e.x<this.gridsterItem.$item.x?t=this.push.fromWest:e.x>this.gridsterItem.$item.x?t=this.push.fromEast:e.y<this.gridsterItem.$item.y?t=this.push.fromNorth:e.y>this.gridsterItem.$item.y&&(t=this.push.fromSouth),this.push.pushItems(t,this.gridster.$options.disablePushOnDrag),this.swap.swapItems(),this.collision=this.gridster.checkCollision(this.gridsterItem.$item),this.collision?(this.gridsterItem.$item.x=this.positionXBackup,this.gridsterItem.$item.y=this.positionYBackup,this.gridster.$options.draggable.dropOverItems&&this.collision!==!0&&this.collision.$item&&(this.gridster.movingItem=null)):this.path.push({x:this.gridsterItem.$item.x,y:this.gridsterItem.$item.y}),this.push.checkPushBack()}else this.collision=!1;this.gridster.previewStyle(!0)}toggle(){let e=this.gridsterItem.canBeDragged();!this.enabled&&e?(this.enabled=!this.enabled,this.mousedown=this.gridsterItem.renderer.listen(this.gridsterItem.el,"mousedown",this.dragStartDelay),this.touchstart=this.gridsterItem.renderer.listen(this.gridsterItem.el,"touchstart",this.dragStartDelay)):this.enabled&&!e&&(this.enabled=!this.enabled,this.mousedown(),this.touchstart())}dragStartDelay=e=>{if(e.target.classList.contains(Oi)||O.checkContentClassForEvent(this.gridster,e))return;if(O.checkTouchEvent(e),!this.gridster.$options.draggable.delayStart){this.dragStart(e);return}let i=setTimeout(()=>{this.dragStart(e),x()},this.gridster.$options.draggable.delayStart),s=this.gridsterItem.renderer.listen("document","mouseup",x),o=this.gridsterItem.renderer.listen("document","mouseleave",x),r=this.gridsterItem.renderer.listen("window","blur",x),d=this.gridsterItem.renderer.listen("document","touchmove",$),y=this.gridsterItem.renderer.listen("document","touchend",x),w=this.gridsterItem.renderer.listen("document","touchcancel",x);function $(I){O.checkTouchEvent(I),(Math.abs(I.clientX-e.clientX)>9||Math.abs(I.clientY-e.clientY)>9)&&x()}function x(){clearTimeout(i),r(),s(),o(),d(),y(),w()}};getDirections(e){let t=[];return this.lastMouse.clientX===0&&this.lastMouse.clientY===0&&(this.lastMouse.clientY=e.clientY,this.lastMouse.clientX=e.clientX),this.lastMouse.clientY>e.clientY&&t.push(Y.UP),this.lastMouse.clientY<e.clientY&&t.push(Y.DOWN),this.lastMouse.clientX<e.clientX&&t.push(Y.RIGHT),this.lastMouse.clientX>e.clientX&&t.push(Y.LEFT),t}},ve=class{fromSouth;fromNorth;fromEast;fromWest;pushedItems;pushedItemsPath;gridsterItem;gridster;tryPattern;constructor(e){this.pushedItems=[],this.pushedItemsPath=[],this.gridsterItem=e,this.gridster=e.gridster,this.tryPattern={fromEast:this.tryWest,fromWest:this.tryEast,fromNorth:this.trySouth,fromSouth:this.tryNorth},this.fromSouth="fromSouth",this.fromNorth="fromNorth",this.fromEast="fromEast",this.fromWest="fromWest"}destroy(){this.gridster=this.gridsterItem=null}pushItems(e){return this.gridster.$options.pushResizeItems?this.push(this.gridsterItem,e):!1}restoreItems(){let e=0,t=this.pushedItems.length,i;for(;e<t;e++)i=this.pushedItems[e],i.$item.x=i.item.x||0,i.$item.y=i.item.y||0,i.$item.cols=i.item.cols||1,i.$item.row=i.item.row||1,i.setSize();this.pushedItems=[],this.pushedItemsPath=[]}setPushedItems(){let e=0,t=this.pushedItems.length,i;for(;e<t;e++)i=this.pushedItems[e],i.checkItemChanges(i.$item,i.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){let i=this.gridster.checkCollision(e.$item);if(i&&i!==!0&&i!==this.gridsterItem&&i.canBeResized()){if(this.tryPattern[t].call(this,i,e,t))return!0}else if(i===!1)return!0;return!1}trySouth(e,t,i){let s=e.$item.y,o=e.$item.rows;return e.$item.y=t.$item.y+t.$item.rows,e.$item.rows=o+s-e.$item.y,!this.gridster.checkCollisionTwoItems(e.$item,t.$item)&&!this.gridster.checkGridCollision(e.$item)?(e.setSize(),this.addToPushed(e),this.push(t,i),!0):(e.$item.y=s,e.$item.rows=o,!1)}tryNorth(e,t,i){let s=e.$item.rows;return e.$item.rows=t.$item.y-e.$item.y,!this.gridster.checkCollisionTwoItems(e.$item,t.$item)&&!this.gridster.checkGridCollision(e.$item)?(e.setSize(),this.addToPushed(e),this.push(t,i),!0):(e.$item.rows=s,!1)}tryEast(e,t,i){let s=e.$item.x,o=e.$item.cols;return e.$item.x=t.$item.x+t.$item.cols,e.$item.cols=o+s-e.$item.x,!this.gridster.checkCollisionTwoItems(e.$item,t.$item)&&!this.gridster.checkGridCollision(e.$item)?(e.setSize(),this.addToPushed(e),this.push(t,i),!0):(e.$item.x=s,e.$item.cols=o,!1)}tryWest(e,t,i){let s=e.$item.cols;return e.$item.cols=t.$item.x-e.$item.x,!this.gridster.checkCollisionTwoItems(e.$item,t.$item)&&!this.gridster.checkGridCollision(e.$item)?(e.setSize(),this.addToPushed(e),this.push(t,i),!0):(e.$item.cols=s,!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,cols:e.item.cols||0,rows:e.item.rows||0},{x:e.$item.x,y:e.$item.y,cols:e.$item.cols,rows:e.$item.rows}]);else{let t=this.pushedItems.indexOf(e);this.pushedItemsPath[t].push({x:e.$item.x,y:e.$item.y,cols:e.$item.cols,rows:e.$item.rows})}}removeFromPushed(e){e>-1&&(this.pushedItems.splice(e,1),this.pushedItemsPath.splice(e,1))}checkPushedItem(e,t){let i=this.pushedItemsPath[t],s=i.length-2,o,r,d,y,w;for(;s>-1;s--)o=i[s],r=e.$item.x,d=e.$item.y,y=e.$item.cols,w=e.$item.rows,e.$item.x=o.x,e.$item.y=o.y,e.$item.cols=o.cols,e.$item.rows=o.rows,this.gridster.findItemWithItem(e.$item)?(e.$item.x=r,e.$item.y=d,e.$item.cols=y,e.$item.rows=w):(e.setSize(),i.splice(s+1,i.length-1-s));return i.length<2?(this.removeFromPushed(t),!0):!1}},_e=class{zone;gridsterItem;gridster;lastMouse;itemBackup={x:0,y:0,cols:0,rows:0};resizeEventScrollType;directionFunction=null;resizeEnabled;resizableHandles;mousemove;mouseup;mouseleave;cancelOnBlur;touchmove;touchend;touchcancel;push;pushResize;minHeight;minWidth;offsetTop;offsetLeft;diffTop;diffLeft;diffRight;diffBottom;margin;outerMarginTop;outerMarginRight;outerMarginBottom;outerMarginLeft;originalClientX;originalClientY;top;left;bottom;right;width;height;hasRatio;constructor(e,t,i){this.zone=i,this.gridsterItem=e,this.gridster=t,this.lastMouse={clientX:0,clientY:0},this.resizeEventScrollType={west:!1,east:!1,north:!1,south:!1}}destroy(){this.gridster?.previewStyle(),this.gridster=this.gridsterItem=null}dragStart(e){if(e.which&&e.which!==1||this.gridster.dragInProgress)return;this.gridster.options.resizable&&this.gridster.options.resizable.start&&this.gridster.options.resizable.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-resizing"),this.lastMouse.clientX=e.clientX,this.lastMouse.clientY=e.clientY,this.left=this.gridsterItem.left,this.top=this.gridsterItem.top,this.originalClientX=e.clientX,this.originalClientY=e.clientY,this.width=this.gridsterItem.width,this.height=this.gridsterItem.height,this.bottom=this.gridsterItem.top+this.gridsterItem.height,this.right=this.gridsterItem.left+this.gridsterItem.width,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.diffLeft=e.clientX+this.offsetLeft-this.left,this.diffRight=e.clientX+this.offsetLeft-this.right,this.diffTop=e.clientY+this.offsetTop-this.top,this.diffBottom=e.clientY+this.offsetTop-this.bottom,this.minHeight=this.gridster.positionYToPixels(this.gridsterItem.$item.minItemRows||this.gridster.$options.minItemRows)-this.margin,this.minWidth=this.gridster.positionXToPixels(this.gridsterItem.$item.minItemCols||this.gridster.$options.minItemCols)-this.margin,this.gridster.movingItem=this.gridsterItem.$item,this.gridster.previewStyle(),this.push=new ee(this.gridsterItem),this.pushResize=new ve(this.gridsterItem),this.gridster.dragInProgress=!0,this.hasRatio=!!(this.gridster.$options.itemAspectRatio||this.gridsterItem.$item.itemAspectRatio),this.itemBackup={x:0,y:0,cols:0,rows:0},this.gridster.updateGrid();let{classList:t}=e.target;t.contains("handle-n")?(this.resizeEventScrollType.north=!0,this.directionFunction=this.handleNorth):t.contains("handle-w")?this.gridster.$options.dirType===E.RTL?(this.resizeEventScrollType.east=!0,this.directionFunction=this.handleEast):(this.resizeEventScrollType.west=!0,this.directionFunction=this.handleWest):t.contains("handle-s")?(this.resizeEventScrollType.south=!0,this.directionFunction=this.handleSouth):t.contains("handle-e")?this.gridster.$options.dirType===E.RTL?(this.resizeEventScrollType.west=!0,this.directionFunction=this.handleWest):(this.resizeEventScrollType.east=!0,this.directionFunction=this.handleEast):t.contains("handle-nw")?this.gridster.$options.dirType===E.RTL?(this.resizeEventScrollType.north=!0,this.resizeEventScrollType.east=!0,this.directionFunction=this.handleNorthEast):(this.resizeEventScrollType.north=!0,this.resizeEventScrollType.west=!0,this.directionFunction=this.handleNorthWest):t.contains("handle-ne")?this.gridster.$options.dirType===E.RTL?(this.resizeEventScrollType.north=!0,this.resizeEventScrollType.west=!0,this.directionFunction=this.handleNorthWest):(this.resizeEventScrollType.north=!0,this.resizeEventScrollType.east=!0,this.directionFunction=this.handleNorthEast):t.contains("handle-sw")?this.gridster.$options.dirType===E.RTL?(this.resizeEventScrollType.south=!0,this.resizeEventScrollType.east=!0,this.directionFunction=this.handleSouthEast):(this.resizeEventScrollType.south=!0,this.resizeEventScrollType.west=!0,this.directionFunction=this.handleSouthWest):t.contains("handle-se")&&(this.gridster.$options.dirType===E.RTL?(this.resizeEventScrollType.south=!0,this.resizeEventScrollType.west=!0,this.directionFunction=this.handleSouthWest):(this.resizeEventScrollType.south=!0,this.resizeEventScrollType.east=!0,this.directionFunction=this.handleSouthEast))}dragMove=e=>{if(this.directionFunction===null)throw new Error("The `directionFunction` has not been set before calling `dragMove`.");e.stopPropagation(),e.preventDefault(),O.checkTouchEvent(e),this.offsetTop=this.gridster.el.scrollTop-this.gridster.el.offsetTop,this.offsetLeft=this.gridster.el.scrollLeft-this.gridster.el.offsetLeft,gi(this.gridster,this.left,this.top,this.width,this.height,e,this.lastMouse,this.directionFunction,!0,this.resizeEventScrollType);let t=this.gridster.options.scale||1;this.directionFunction({clientX:this.originalClientX+(e.clientX-this.originalClientX)/t,clientY:this.originalClientY+(e.clientY-this.originalClientY)/t}),this.lastMouse.clientX=e.clientX,this.lastMouse.clientY=e.clientY,this.zone.run(()=>{this.gridster.updateGrid()})};dragStop=e=>{e.stopPropagation(),e.preventDefault(),ui(),this.mousemove(),this.mouseup(),this.mouseleave(),this.cancelOnBlur(),this.touchmove(),this.touchend(),this.touchcancel(),this.gridster.dragInProgress=!1,this.resizeEventScrollType={west:!1,east:!1,north:!1,south:!1},this.gridster.updateGrid(),this.gridster.options.resizable&&this.gridster.options.resizable.stop?Promise.resolve(this.gridster.options.resizable.stop(this.gridsterItem.item,this.gridsterItem,e)).then(this.makeResize,this.cancelResize):this.makeResize(),setTimeout(()=>{this.gridsterItem.renderer.removeClass(this.gridsterItem.el,"gridster-item-resizing"),this.gridster&&(this.gridster.movingItem=null,this.gridster.previewStyle())})};cancelResize=()=>{this.gridsterItem.$item.cols=this.gridsterItem.item.cols||1,this.gridsterItem.$item.rows=this.gridsterItem.item.rows||1,this.gridsterItem.$item.x=this.gridsterItem.item.x||0,this.gridsterItem.$item.y=this.gridsterItem.item.y||0,this.gridsterItem.setSize(),this.push.restoreItems(),this.pushResize.restoreItems(),this.push.destroy(),this.push=null,this.pushResize.destroy(),this.pushResize=null};makeResize=()=>{this.gridsterItem.setSize(),this.gridsterItem.checkItemChanges(this.gridsterItem.$item,this.gridsterItem.item),this.push.setPushedItems(),this.pushResize.setPushedItems(),this.push.destroy(),this.push=null,this.pushResize.destroy(),this.pushResize=null};check=e=>(this.hasRatio&&this.enforceAspectRatio(),this.pushResize.pushItems(e),this.push.pushItems(e,this.gridster.$options.disablePushOnResize),this.gridster.checkCollision(this.gridsterItem.$item,!0)?(this.resetItem(this.hasRatio),!1):(this.gridster.previewStyle(),this.pushResize.checkPushBack(),this.push.checkPushBack(),!0));getNewNorthPosition=e=>{this.top=e.clientY+this.offsetTop-this.diffTop,this.height=this.bottom-this.top,this.minHeight>this.height?(this.height=this.minHeight,this.top=this.bottom-this.minHeight):this.gridster.options.enableBoundaryControl&&(this.top=Math.max(0,this.top),this.height=this.bottom-this.top);let t=this.gridster.options.pushItems?this.margin:0;return this.gridster.pixelsToPositionY(this.top+t,Math.floor)};handleNorth=e=>{let t=this.getNewNorthPosition(e);this.gridsterItem.$item.y!==t&&(this.makeItemBackup(),this.gridsterItem.$item.rows+=this.gridsterItem.$item.y-t,this.gridsterItem.$item.y=t,!this.check(this.pushResize.fromSouth))||(this.setItemTop(this.top),this.setItemHeight(this.height))};getNewWestPosition=e=>{let t=this.gridster.$options.dirType===E.RTL?this.originalClientX+(this.originalClientX-e.clientX):e.clientX;this.left=t+this.offsetLeft-this.diffLeft,this.width=this.right-this.left,this.minWidth>this.width?(this.width=this.minWidth,this.left=this.right-this.minWidth):this.gridster.options.enableBoundaryControl&&(this.left=Math.max(0,this.left),this.width=this.right-this.left);let i=this.gridster.options.pushItems?this.margin:0;return this.gridster.pixelsToPositionX(this.left+i,Math.floor)};handleWest=e=>{let t=this.getNewWestPosition(e);this.gridsterItem.$item.x!==t&&(this.makeItemBackup(),this.gridsterItem.$item.cols+=this.gridsterItem.$item.x-t,this.gridsterItem.$item.x=t,!this.check(this.pushResize.fromEast))||(this.setItemLeft(this.left),this.setItemWidth(this.width))};getNewSouthPosition=e=>{if(this.height=e.clientY+this.offsetTop-this.diffBottom-this.top,this.minHeight>this.height&&(this.height=this.minHeight),this.bottom=this.top+this.height,this.gridster.options.enableBoundaryControl){let i=this.outerMarginBottom??this.margin,s=this.gridster.el.getBoundingClientRect();this.bottom=Math.min(this.bottom,s.bottom-s.top-2*i),this.height=this.bottom-this.top}let t=this.gridster.options.pushItems?0:this.margin;return this.gridster.pixelsToPositionY(this.bottom+t,Math.ceil)};handleSouth=e=>{let t=this.getNewSouthPosition(e);this.gridsterItem.$item.y+this.gridsterItem.$item.rows!==t&&(this.makeItemBackup(),this.gridsterItem.$item.rows=t-this.gridsterItem.$item.y,!this.check(this.pushResize.fromNorth))||this.setItemHeight(this.height)};getNewEastPosition=e=>{let t=this.gridster.$options.dirType===E.RTL?this.originalClientX+(this.originalClientX-e.clientX):e.clientX;if(this.width=t+this.offsetLeft-this.diffRight-this.left,this.minWidth>this.width&&(this.width=this.minWidth),this.right=this.left+this.width,this.gridster.options.enableBoundaryControl){let s=this.outerMarginRight??this.margin,o=this.gridster.el.getBoundingClientRect();this.right=Math.min(this.right,o.right-o.left-2*s),this.width=this.right-this.left}let i=this.gridster.options.pushItems?0:this.margin;return this.gridster.pixelsToPositionX(this.right+i,Math.ceil)};handleEast=e=>{let t=this.getNewEastPosition(e);this.gridsterItem.$item.x+this.gridsterItem.$item.cols!==t&&(this.makeItemBackup(),this.gridsterItem.$item.cols=t-this.gridsterItem.$item.x,!this.check(this.pushResize.fromWest))||this.setItemWidth(this.width)};handleNorthWest=e=>{let t=this.getNewNorthPosition(e),i=this.getNewWestPosition(e);(this.gridsterItem.$item.y!==t||this.gridsterItem.$item.x!==i)&&(this.makeItemBackup(),this.gridsterItem.$item.rows+=this.gridsterItem.$item.y-t,this.gridsterItem.$item.y=t,this.gridsterItem.$item.cols+=this.gridsterItem.$item.x-i,this.gridsterItem.$item.x=i,!this.check(this.pushResize.fromSouth))||(this.setItemTop(this.top),this.setItemHeight(this.height),this.setItemLeft(this.left),this.setItemWidth(this.width))};handleNorthEast=e=>{let t=this.getNewNorthPosition(e),i=this.getNewEastPosition(e);(this.gridsterItem.$item.y!==t||this.gridsterItem.$item.x+this.gridsterItem.$item.cols!==i)&&(this.makeItemBackup(),this.gridsterItem.$item.rows+=this.gridsterItem.$item.y-t,this.gridsterItem.$item.y=t,this.gridsterItem.$item.cols=i-this.gridsterItem.$item.x,!this.check(this.pushResize.fromSouth))||(this.setItemTop(this.top),this.setItemHeight(this.height),this.setItemWidth(this.width))};handleSouthWest=e=>{let t=this.getNewSouthPosition(e),i=this.getNewWestPosition(e);(this.gridsterItem.$item.y+this.gridsterItem.$item.rows!==t||this.gridsterItem.$item.x!==i)&&(this.makeItemBackup(),this.gridsterItem.$item.rows=t-this.gridsterItem.$item.y,this.gridsterItem.$item.cols+=this.gridsterItem.$item.x-i,this.gridsterItem.$item.x=i,!this.check(this.pushResize.fromNorth))||(this.setItemLeft(this.left),this.setItemHeight(this.height),this.setItemWidth(this.width))};handleSouthEast=e=>{let t=this.getNewSouthPosition(e),i=this.getNewEastPosition(e);(this.gridsterItem.$item.y+this.gridsterItem.$item.rows!==t||this.gridsterItem.$item.x+this.gridsterItem.$item.cols!==i)&&(this.makeItemBackup(),this.gridsterItem.$item.rows=t-this.gridsterItem.$item.y,this.gridsterItem.$item.cols=i-this.gridsterItem.$item.x,!this.check(this.pushResize.fromNorth))||(this.setItemHeight(this.height),this.setItemWidth(this.width))};makeItemBackup(){this.itemBackup.x=this.gridsterItem.$item.x,this.itemBackup.y=this.gridsterItem.$item.y,this.itemBackup.cols=this.gridsterItem.$item.cols,this.itemBackup.rows=this.gridsterItem.$item.rows}resetItem(e=!1){this.gridsterItem.$item.x!==this.itemBackup.x&&(this.gridsterItem.$item.x=this.itemBackup.x,e||(this.left=this.gridster.positionXToPixels(this.gridsterItem.$item.x),this.setItemLeft(this.left))),this.gridsterItem.$item.y!==this.itemBackup.y&&(this.gridsterItem.$item.y=this.itemBackup.y,e||(this.top=this.gridster.positionYToPixels(this.gridsterItem.$item.y),this.setItemTop(this.top))),this.gridsterItem.$item.cols!==this.itemBackup.cols&&(this.gridsterItem.$item.cols=this.itemBackup.cols,e||this.setItemWidth(this.gridster.positionXToPixels(this.gridsterItem.$item.cols)-this.margin)),this.gridsterItem.$item.rows!==this.itemBackup.rows&&(this.gridsterItem.$item.rows=this.itemBackup.rows,e||this.setItemHeight(this.gridster.positionYToPixels(this.gridsterItem.$item.rows)-this.margin))}toggle(){this.resizeEnabled=this.gridsterItem.canBeResized(),this.resizableHandles=this.gridsterItem.getResizableHandles()}dragStartDelay(e){if(O.checkTouchEvent(e),!this.gridster.$options.resizable.delayStart){this.dragStart(e);return}let t=setTimeout(()=>{this.dragStart(e),$()},this.gridster.$options.resizable.delayStart),{cancelMouse:i,cancelMouseLeave:s,cancelOnBlur:o,cancelTouchMove:r,cancelTouchEnd:d,cancelTouchCancel:y}=this.zone.runOutsideAngular(()=>{let x=this.gridsterItem.renderer.listen("document","mouseup",$),I=this.gridsterItem.renderer.listen("document","mouseleave",$),Z=this.gridsterItem.renderer.listen("window","blur",$),ft=this.gridsterItem.renderer.listen("document","touchmove",w),Ct=this.gridsterItem.renderer.listen("document","touchend",$),tt=this.gridsterItem.renderer.listen("document","touchcancel",$);return{cancelMouse:x,cancelMouseLeave:I,cancelOnBlur:Z,cancelTouchMove:ft,cancelTouchEnd:Ct,cancelTouchCancel:tt}});function w(x){O.checkTouchEvent(x),(Math.abs(x.clientX-e.clientX)>9||Math.abs(x.clientY-e.clientY)>9)&&$()}function $(){clearTimeout(t),o(),i(),s(),r(),d(),y()}}setItemTop(e){this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer,this.gridsterItem.el,this.left,e)}setItemLeft(e){this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer,this.gridsterItem.el,e,this.top)}setItemHeight(e){this.gridsterItem.renderer.setStyle(this.gridsterItem.el,"height",e+"px")}setItemWidth(e){this.gridsterItem.renderer.setStyle(this.gridsterItem.el,"width",e+"px")}enforceAspectRatio(){let e=this.gridsterItem.$item.itemAspectRatio||this.gridster.$options.itemAspectRatio;if(!e)return;let t=e*(this.gridster.curColWidth/this.gridster.curRowHeight),i=this.gridsterItem.$item.minItemCols||this.gridster.$options.minItemCols,s=this.gridsterItem.$item.minItemRows||this.gridster.$options.minItemRows,o=this.gridster.positionXToPixels(i)-this.margin,r=this.gridster.positionYToPixels(s)-this.margin,d=this.gridsterItem.$item.maxItemCols||this.gridster.$options.maxItemCols||0,y=this.gridsterItem.$item.maxItemRows||this.gridster.$options.maxItemRows||0,w=d?this.gridster.positionXToPixels(d)-this.margin:Number.MAX_VALUE,$=y?this.gridster.positionYToPixels(y)-this.margin:Number.MAX_VALUE,x=this.width,I=this.height;if(this.resizeEventScrollType.north||this.resizeEventScrollType.south?(x=this.height*t,x<o?(x=o,I=o/t):x>w&&(x=w,I=w/t)):(this.resizeEventScrollType.east||this.resizeEventScrollType.west)&&(I=this.width/t,I<r?(I=r,x=r*t):I>$&&(I=$,x=$*t)),this.gridster.options.enableBoundaryControl){let at=this.gridster.el.getBoundingClientRect(),vt=Math.max(this.outerMarginTop||this.margin,this.outerMarginRight||this.margin,this.outerMarginBottom||this.margin,this.outerMarginLeft||this.margin),wt=at.width-2*vt,yt=at.height-2*vt;this.resizeEventScrollType.west?this.right-x<0&&(x=this.right,I=x/t):this.resizeEventScrollType.east&&this.left+x>wt&&(x=wt-this.left,I=x/t),this.resizeEventScrollType.north?this.bottom-I<0&&(I=this.bottom,x=I*t):this.resizeEventScrollType.south&&this.top+I>yt&&(I=yt-this.top,x=I*t)}this.width=x,this.height=I,this.resizeEventScrollType.west&&(this.left=this.right-this.width),this.resizeEventScrollType.north&&(this.top=this.bottom-this.height);let Z=this.gridster.options.pushItems?0:this.margin,ft=this.gridster.options.pushItems?0:this.margin,Ct=this.gridster.options.pushItems?this.margin:0,tt=this.gridster.options.pushItems?this.margin:0;this.gridsterItem.$item.x=this.gridster.pixelsToPositionX(this.left+Z,Math.floor),this.gridsterItem.$item.y=this.gridster.pixelsToPositionY(this.top+ft,Math.floor),this.gridsterItem.$item.cols=this.gridster.pixelsToPositionX(this.width+Ct,Math.ceil),this.gridsterItem.$item.rows=this.gridster.pixelsToPositionY(this.height+tt,Math.ceil),this.setItemTop(this.top),this.setItemLeft(this.left),this.setItemWidth(this.width),this.setItemHeight(this.height)}},xi=(()=>{class n{renderer;zone;item;itemInit=new N;itemChange=new N;itemResize=new N;$item;el;gridster;top;left;width;height;drag;resize;notPlaced;init;get zIndex(){return this.getLayerIndex()+this.gridster.$options.baseLayerIndex}constructor(t,i,s,o){this.renderer=s,this.zone=o,this.el=t.nativeElement,this.$item={cols:-1,rows:-1,x:-1,y:-1},this.gridster=i,this.drag=new xe(this,i,this.zone),this.resize=new _e(this,i,this.zone)}ngOnInit(){this.gridster.addItem(this)}ngOnChanges(t){t.item&&(this.updateOptions(),this.init||this.gridster.calculateLayout$.next()),t.item&&t.item.previousValue&&this.setSize()}updateOptions(){this.$item=O.merge(this.$item,this.item,{cols:void 0,rows:void 0,x:void 0,y:void 0,layerIndex:void 0,dragEnabled:void 0,resizeEnabled:void 0,compactEnabled:void 0,itemAspectRatio:void 0,maxItemRows:void 0,minItemRows:void 0,maxItemCols:void 0,minItemCols:void 0,maxItemArea:void 0,minItemArea:void 0,resizableHandles:{s:void 0,e:void 0,n:void 0,w:void 0,se:void 0,ne:void 0,sw:void 0,nw:void 0}})}ngOnDestroy(){this.gridster.removeItem(this),this.drag.destroy(),this.resize.destroy(),this.gridster=this.drag=this.resize=null}setSize(){this.renderer.setStyle(this.el,"display",this.notPlaced?"":"block"),this.gridster.gridRenderer.updateItem(this.el,this.$item,this.renderer),this.updateItemSize()}updateItemSize(){let t=this.$item.y*this.gridster.curRowHeight,i=this.$item.x*this.gridster.curColWidth,s=this.$item.cols*this.gridster.curColWidth-this.gridster.$options.margin,o=this.$item.rows*this.gridster.curRowHeight-this.gridster.$options.margin;this.top=t,this.left=i,!this.init&&s>0&&o>0&&(this.init=!0,this.item.initCallback&&this.item.initCallback(this.item,this),this.gridster.options.itemInitCallback&&this.gridster.options.itemInitCallback(this.item,this),this.itemInit.next({item:this.item,itemComponent:this}),this.gridster.$options.scrollToNewItems&&this.el.scrollIntoView({block:"end",inline:"nearest",behavior:"smooth"})),(s!==this.width||o!==this.height)&&(this.width=s,this.height=o,this.gridster.options.itemResizeCallback&&this.gridster.options.itemResizeCallback(this.item,this),this.itemResize.next({item:this.item,itemComponent:this}))}itemChanged(){this.gridster.options.itemChangeCallback&&this.gridster.options.itemChangeCallback(this.item,this),this.itemChange.next({item:this.item,itemComponent:this})}checkItemChanges(t,i){t.rows===i.rows&&t.cols===i.cols&&t.x===i.x&&t.y===i.y||(this.gridster.checkCollision(this.$item)?(this.$item.x=i.x||0,this.$item.y=i.y||0,this.$item.cols=i.cols||1,this.$item.rows=i.rows||1,this.setSize()):(this.item.cols=this.$item.cols,this.item.rows=this.$item.rows,this.item.x=this.$item.x,this.item.y=this.$item.y,this.gridster.calculateLayout$.next(),this.itemChanged()))}canBeDragged(){let t=this.gridster.$options.draggable.enabled,i=this.$item.dragEnabled===void 0?t:this.$item.dragEnabled;return!this.gridster.mobile&&t&&i}canBeResized(){let t=this.gridster.$options.resizable.enabled,i=this.$item.resizeEnabled===void 0?t:this.$item.resizeEnabled;return!this.gridster.mobile&&t&&i}getResizableHandles(){let t=this.gridster.$options.resizable.handles,i=this.$item.resizableHandles;return i===void 0?t:S(S({},t),i)}bringToFront(t){if(t&&t<=0)return;let i=this.getLayerIndex(),s=this.gridster.$options.maxLayerIndex;if(i<s){let o=t?i+t:s;this.item.layerIndex=this.$item.layerIndex=o>s?s:o}}sendToBack(t){if(t&&t<=0)return;let i=this.getLayerIndex();if(i>0){let s=t?i-t:0;this.item.layerIndex=this.$item.layerIndex=s<0?0:s}}getLayerIndex(){return this.item.layerIndex!==void 0?this.item.layerIndex:this.gridster.$options.defaultLayerIndex!==void 0?this.gridster.$options.defaultLayerIndex:0}static \u0275fac=function(i){return new(i||n)(Q(Et),Q(Ie),Q(Rt),Q(ce))};static \u0275cmp=k({type:n,selectors:[["gridster-item"]],hostVars:2,hostBindings:function(i,s){i&2&&Oe("z-index",s.zIndex)},inputs:{item:"item"},outputs:{itemInit:"itemInit",itemChange:"itemChange",itemResize:"itemResize"},features:[ot],ngContentSelectors:ci,decls:9,vars:8,consts:[[1,"gridster-item-resizable-handler","handle-s"],[1,"gridster-item-resizable-handler","handle-e"],[1,"gridster-item-resizable-handler","handle-n"],[1,"gridster-item-resizable-handler","handle-w"],[1,"gridster-item-resizable-handler","handle-se"],[1,"gridster-item-resizable-handler","handle-ne"],[1,"gridster-item-resizable-handler","handle-sw"],[1,"gridster-item-resizable-handler","handle-nw"],[1,"gridster-item-resizable-handler","handle-s",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-e",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-n",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-w",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-se",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-ne",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-sw",3,"mousedown","touchstart"],[1,"gridster-item-resizable-handler","handle-nw",3,"mousedown","touchstart"]],template:function(i,s){i&1&&(Ft(),It(0),z(1,$i,1,0,"div",0),z(2,ki,1,0,"div",1),z(3,Pi,1,0,"div",2),z(4,Si,1,0,"div",3),z(5,Di,1,0,"div",4),z(6,Ei,1,0,"div",5),z(7,Ri,1,0,"div",6),z(8,Fi,1,0,"div",7)),i&2&&(h(),T(s.resize.resizableHandles!=null&&s.resize.resizableHandles.s&&s.resize.resizeEnabled?1:-1),h(),T(s.resize.resizableHandles!=null&&s.resize.resizableHandles.e&&s.resize.resizeEnabled?2:-1),h(),T(s.resize.resizableHandles!=null&&s.resize.resizableHandles.n&&s.resize.resizeEnabled?3:-1),h(),T(s.resize.resizableHandles!=null&&s.resize.resizableHandles.w&&s.resize.resizeEnabled?4:-1),h(),T(s.resize.resizableHandles!=null&&s.resize.resizableHandles.se&&s.resize.resizeEnabled?5:-1),h(),T(s.resize.resizableHandles!=null&&s.resize.resizableHandles.ne&&s.resize.resizeEnabled?6:-1),h(),T(s.resize.resizableHandles!=null&&s.resize.resizableHandles.sw&&s.resize.resizeEnabled?7:-1),h(),T(s.resize.resizableHandles!=null&&s.resize.resizableHandles.nw&&s.resize.resizeEnabled?8:-1))},styles:[`gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-resizing,gridster-item.gridster-item-moving{transition:0s;z-index:2;box-shadow:0 0 5px 5px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}
4
4
  `],encapsulation:2})}return n})();var Ni=["*",[["actions"]]],Li=["*","actions"];function Bi(n,e){n&1&&(X(0,"div",3),It(1,1),L())}var nt=class n{item;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-widget-base"]],inputs:{item:"item"},ngContentSelectors:Li,decls:7,vars:2,consts:[[1,"widget"],[1,"header"],[1,"title"],[1,"actions"],[1,"content"]],template:function(t,i){t&1&&(Ft(Ni),X(0,"div",0)(1,"div",1)(2,"div",2),f(3),L(),z(4,Bi,2,0,"div",3),L(),X(5,"div",4),It(6),L()()),t&2&&(h(3),j(i.item.title),h(),T(i.item.configurable?4:-1))},dependencies:[D,W,F],styles:["[_nghost-%COMP%]{display:block;height:100%}.widget[_ngcontent-%COMP%]{height:100%;padding:12px 0;display:flex;flex-direction:column}.header[_ngcontent-%COMP%]{flex:0 0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between}.title[_ngcontent-%COMP%]{font-size:18px;font-weight:600;flex:1 1 auto;opacity:.5}.actions[_ngcontent-%COMP%]{flex:0 0 auto}.content[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;width:100%;height:0;overflow:hidden}"]})};var se=class n{item;port="";api=M($t);msg=M(Ze);spin=P(!1);isPortValid(){let e=Number(this.port);return Number.isInteger(e)&&e>0&&e<=65535}killPort(){if(!this.isPortValid()){this.msg.error("\u8BF7\u8F93\u5165\u6709\u6548\u7684\u7AEF\u53E3\u53F7\uFF081-65535\uFF09");return}this.spin.set(!0),this.api.killPort(Number(this.port)).subscribe({next:e=>{if(e.killed.length===0){this.msg.info(`\u7AEF\u53E3 ${this.port} \u6CA1\u6709\u88AB\u4EFB\u4F55\u8FDB\u7A0B\u5360\u7528`);return}this.port="",this.msg.success(`\u7AEF\u53E3 ${this.port} \u5DF2\u88AB\u7EC8\u6B62`)},error:e=>{console.error("Kill port error",e),this.msg.error(`\u65E0\u6CD5\u7EC8\u6B62\u7AEF\u53E3 ${this.port}\uFF1A${e.message||e}`)},complete:()=>{this.spin.set(!1)}})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-kill-port-widget"]],inputs:{item:"item"},decls:11,vars:3,consts:[[3,"item"],[1,"logo"],[1,"icon-wrapper"],["nzType","thunderbolt","nzTheme","outline"],[2,"padding","12px 24px"],["nz-input","","placeholder","\u8F93\u5165\u4E00\u4E2A\u7F51\u7EDC\u7AEF\u53E3","name","port",3,"ngModelChange","keydown.enter","ngModel"],["nz-button","","nzType","primary",3,"click"],["nzTheme","outline",3,"nzType"]],template:function(t,i){t&1&&(l(0,"app-widget-base",0)(1,"div",1)(2,"div",2),p(3,"nz-icon",3),a(),l(4,"h3"),f(5,"\u51C6\u5907\u597D\u7EC8\u6B62"),a()(),l(6,"nz-space",4)(7,"input",5),mt("ngModelChange",function(o){return ht(i.port,o)||(i.port=o),o}),v("keydown.enter",function(){return i.killPort()}),a(),l(8,"button",6),v("click",function(){return i.killPort()}),p(9,"nz-icon",7),f(10," \u7EC8\u6B62 "),a()()()),t&2&&(c("item",i.item),h(7),dt("ngModel",i.port),h(2),c("nzType",i.spin()?"loading":"thunderbolt"))},dependencies:[D,gt,zt,ct,pt,nt,F,B,Mt,Tt,Ue,je,W,A,V,H],styles:[".logo[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:12px 24px}.logo[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%]{width:32px;height:32px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background-color:var(--app-gray);border-radius:50%}.logo[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%] nz-icon[_ngcontent-%COMP%]{font-size:20px;color:var(--app-primary-5)}.logo[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{flex:1 1 auto;font-size:18px;margin:0;font-weight:500}"],changeDetection:0})};var ne=class n{api=M(Zt);preview(e,t){let i=new Ye().set("url",e);return t?.limit&&(i=i.set("limit",String(t.limit))),t?.cacheSec&&(i=i.set("cacheSec",String(t.cacheSec))),t?.force&&(i=i.set("force","1")),this.api.get("/api/rss/preview",i)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=_t({token:n,factory:n.\u0275fac,providedIn:"root"})};var Hi=(n,e)=>e.link;function Ai(n,e){if(n&1){let t=b();l(0,"div",6)(1,"div",10),f(2,"\u672A\u914D\u7F6E RSS \u6E90"),a(),l(3,"button",11),v("click",function(){g(t);let s=m();return u(s.openConfig())}),f(4,"\u53BB\u914D\u7F6E"),a()()}}function Xi(n,e){if(n&1){let t=b();l(0,"div",12)(1,"p"),f(2),a(),l(3,"button",2),v("click",function(){g(t);let s=m(2);return u(s.reload(!0))}),f(4,"\u91CD\u8BD5"),a()()}if(n&2){let t=m(2);h(2),j(t.errorMsg())}}function Yi(n,e){if(n&1&&(l(0,"span",17),f(1),Ne(2,"date"),a()),n&2){let t=m().$implicit;h(),j(Le(2,1,t.pubDate,"yyyy-MM-dd HH:mm"))}}function Gi(n,e){if(n&1&&(l(0,"span",18),f(1),a()),n&2){let t=m().$implicit;h(),j(t.author)}}function ji(n,e){if(n&1&&(l(0,"a",14)(1,"div",15),f(2),a(),l(3,"div",16),z(4,Yi,3,4,"span",17),z(5,Gi,2,1,"span",18),a()()),n&2){let t=e.$implicit;c("href",t.link,Ee),h(2),j(t.title),h(2),T(t.pubDate?4:-1),h(),T(t.author?5:-1)}}function Ui(n,e){if(n&1&&(l(0,"div",13),K(1,ji,6,4,"a",14,Hi),a()),n&2){let t=m(2);h(),q(t.feedItems())}}function Qi(n,e){if(n&1&&z(0,Xi,5,1,"div",12)(1,Ui,3,0,"div",13),n&2){let t=m();T(t.errorMsg()?0:1)}}function Ki(n,e){if(n&1){let t=b();et(0),l(1,"div",19)(2,"label"),f(3,"RSS\u6E90\u5730\u5740"),a(),l(4,"nz-input-wrapper")(5,"input",20),mt("ngModelChange",function(s){g(t);let o=m();return ht(o.rssUrl,s)||(o.rssUrl=s),u(s)}),a(),p(6,"nz-icon",21),a()(),it()}if(n&2){let t=m();h(5),dt("ngModel",t.rssUrl)}}function qi(n,e){if(n&1){let t=b();et(0),l(1,"button",22),v("click",function(){g(t);let s=m();return u(s.save())}),f(2,"\u4FDD\u5B58"),a(),it()}if(n&2){let t=m();h(),c("disabled",!t.rssUrl().trim())}}var oe=class n{item;layout=M(st);rss=M(ne);cdr=M(Yt);curConfig=P(null);rssUrl=P("");isModalVisible=P(!1);loading=P(!1);feedTitle=P("");feedItems=P([]);errorMsg=P("");hasConfig=R(()=>!!this.curConfig()?.rssUrl?.trim());ngOnChanges(e){if(e.item&&e.item.currentValue){let t=this.item?.config;this.curConfig.set(t?S({},t):null),t?.rssUrl&&this.reload(!1)}}openConfig(){let e=this.item?.config;this.rssUrl.set(e?.rssUrl??""),this.isModalVisible.set(!0)}reload(e=!0){let t=this.curConfig()??this.item?.config,i=(t?.rssUrl??"").trim();if(!i)return;this.loading.set(!0),this.errorMsg.set("");let s=t?.limit??20,o=t?.cacheSec??300;this.rss.preview(i,{limit:s,cacheSec:o,force:e}).subscribe({next:r=>{this.loading.set(!1),this.feedTitle.set(r.title??""),this.feedItems.set(r.items??[]),this.feedTitle()&&(this.item.title=this.feedTitle(),this.cdr.markForCheck())},error:r=>{this.errorMsg.set(ti(r,"\u52A0\u8F7D\u5931\u8D25")),this.loading.set(!1)}})}save(){let e=this.item.projectId,t=(this.rssUrl()??"").trim();if(!e||!t)return;let i=this.item?.config??{},s=G(S({},i),{rssUrl:t,limit:i.limit??20,cacheSec:i.cacheSec??300});this.item.config=s,this.curConfig.set(s),this.layout.updateConfig(e,this.item.id,s),this.isModalVisible.set(!1),this.reload(!0)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-news-feed-widget"]],inputs:{item:"item"},features:[ot],decls:12,vars:5,consts:[[3,"item"],["ngProjectAs","actions",5,["actions"]],["nz-button","","nzType","link","nzSize","small",3,"click"],["nzTheme","outline",3,"nzType"],["nzType","setting","nzTheme","outline"],[1,"news-feed-widget"],[1,"empty"],["nzCentered","","nzTitle","\u914D\u7F6E\u90E8\u4EF6",3,"nzVisibleChange","nzOnCancel","nzVisible","nzMaskClosable"],[4,"nzModalContent"],[4,"nzModalFooter"],[1,"hint"],["nz-button","","nzType","default","nzSize","small",3,"click"],[1,"error"],[1,"list"],["target","_blank","rel","noreferrer",1,"row",3,"href"],[1,"t"],[1,"m"],[1,"d"],[1,"a"],[1,"modal-body"],["nz-input","","placeholder","\u8BF7\u8F93\u5165RSS\u6E90\u5730\u5740",2,"width","100%",3,"ngModelChange","ngModel"],["nzType","global","nzTheme","outline","nzInputPrefix",""],["nz-button","","nzType","primary",3,"click","disabled"]],template:function(t,i){t&1&&(l(0,"app-widget-base",0),et(1,1),l(2,"button",2),v("click",function(){return i.reload()}),p(3,"nz-icon",3),a(),l(4,"button",2),v("click",function(){return i.openConfig()}),p(5,"nz-icon",4),a(),it(),l(6,"div",5),z(7,Ai,5,0,"div",6)(8,Qi,2,1),a()(),l(9,"nz-modal",7),mt("nzVisibleChange",function(o){return ht(i.isModalVisible,o)||(i.isModalVisible=o),o}),v("nzOnCancel",function(){return i.isModalVisible.set(!1)}),Xt(10,Ki,7,1,"ng-container",8)(11,qi,3,1,"ng-container",9),a()),t&2&&(c("item",i.item),h(3),c("nzType",i.loading()?"loading":"reload"),h(4),T(i.hasConfig()?8:7),h(2),dt("nzVisible",i.isModalVisible),c("nzMaskClosable",!1))},dependencies:[D,gt,zt,ct,pt,Mt,Tt,qt,Kt,W,A,V,H,nt,Qt,Ut,jt,Gt,F,B,Xe],styles:[".news-feed-widget[_ngcontent-%COMP%]{padding:8px 12px;height:100%;overflow:auto}.empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;height:100%;opacity:.75}.list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.row[_ngcontent-%COMP%]{display:block;padding:8px;border-radius:8px;text-decoration:none;border:1px solid rgba(0,0,0,.06)}.row[_ngcontent-%COMP%]:hover{background:#00000005}.t[_ngcontent-%COMP%]{font-size:13px;line-height:1.3;color:#000000e0}.m[_ngcontent-%COMP%]{margin-top:4px;display:flex;gap:10px;font-size:12px;color:#00000073}.error[_ngcontent-%COMP%]{display:flex;gap:8px;flex-direction:column;align-items:center;justify-content:center;color:#d4380d}.error[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;white-space:pre-wrap;word-break:break-word}.loading[_ngcontent-%COMP%]{display:flex;gap:8px;align-items:center;opacity:.75}.modal-body[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.modal-body[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{flex:0 0 auto;margin-right:16px;display:inline-block;width:100px}.modal-body[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;margin-left:16px}"]})};var Ji=(n,e)=>e.value;function Zi(n,e){if(n&1){let t=b();p(0,"nz-icon",9),l(1,"button",10),v("click",function(){g(t);let s=m(2);return u(s.openConfig())}),f(2,"\u914D\u7F6E\u90E8\u4EF6"),a()}}function ts(n,e){n&1&&p(0,"nz-badge",15)}function es(n,e){n&1&&p(0,"nz-badge",16)}function is(n,e){n&1&&p(0,"nz-badge",17)}function ss(n,e){if(n&1){let t=b();l(0,"div",11)(1,"div",12)(2,"div",13),p(3,"nz-icon",14),z(4,ts,1,0,"nz-badge",15)(5,es,1,0,"nz-badge",16)(6,is,1,0,"nz-badge",17),a(),l(7,"div",18)(8,"div",19),f(9),a(),l(10,"div",20),f(11),a()()()(),l(12,"div",21)(13,"app-task-actions",22),v("toggle",function(){g(t);let s=m(2);return u(s.toggleTask())})("restart",function(){g(t);let s=m(2);return u(s.restartTask())}),a(),l(14,"button",23),v("click",function(){g(t);let s=m(2);return u(s.goToTask())}),p(15,"nz-icon",24),f(16," \u524D\u5F80\u4EFB\u52A1\u9875 "),a()()}if(n&2){let t,i,s,o,r=m(2);h(),c("nz-tooltip",((t=r.curConfig())==null?null:t.description)??""),h(3),T(r.curRuntime().status==="running"?4:r.curRuntime().status==="stopping"?5:6),h(4),c("title",(i=r.curConfig())==null?null:i.taskName),h(),j((s=r.curConfig())==null?null:s.taskName),h(2),bt(" ",r.curRuntime().status==="running"?"\u8FD0\u884C\u4E2D":r.curRuntime().status==="stopping"?"\u505C\u6B62\u4E2D":r.curRuntime().status==="stopped"?"\u5DF2\u505C\u6B62":((o=r.curConfig())==null?null:o.description)||"\u7A7A\u95F2\u4E2D"," "),h(2),c("isRunning",r.isRunning())("isStopping",r.isStopping())("isStartable",r.isStartable())}}function ns(n,e){if(n&1&&(l(0,"div",8),z(1,Zi,3,0)(2,ss,17,8),a()),n&2){let t=m();xt("no-config",t.curConfig()===null),h(),T(t.curConfig()===null?1:2)}}function os(n,e){if(n&1&&p(0,"nz-option",27),n&2){let t=e.$implicit;c("nzLabel",t.label)("nzValue",t.value)}}function rs(n,e){if(n&1){let t=b();et(0),l(1,"div",25)(2,"label"),f(3,"\u9009\u62E9\u4E00\u9879\u4EFB\u52A1"),a(),l(4,"nz-select",26),mt("ngModelChange",function(s){g(t);let o=m();return ht(o.selectedTaskId,s)||(o.selectedTaskId=s),u(s)}),K(5,os,1,2,"nz-option",27,Ji),a()(),it()}if(n&2){let t=m();h(4),dt("ngModel",t.selectedTaskId),c("nzLoading",t.loading())("nzDisabled",t.loading()),h(),q(t.taskOptions())}}function ls(n,e){if(n&1){let t=b();et(0),l(1,"button",28),v("click",function(){g(t);let s=m();return u(s.save())}),f(2,"\u4FDD\u5B58"),a(),it()}if(n&2){let t=m();h(),c("disabled",!t.selectedTaskId)}}var re=class n{item;taskState=M(ii);layout=M(st);router=M(Ge);isModalVisible=P(!1);loading=P(!1);curConfig=P(null);curRuntime=R(()=>{let e=this.curConfig();if(!e)return{status:"idle"};let t=e.taskId;return this.taskState.getRuntime(t)||{status:"idle"}});isRunning=R(()=>this.curRuntime().status==="running");isStopping=R(()=>this.curRuntime().status==="stopping");isStartable=R(()=>{let e=this.curRuntime().status;return e==="idle"||e==="stopped"||e==="failed"||e==="success"});selectedTaskId="";rowsOfProject=R(()=>{let e=this.item.projectId;return e?this.taskState.rowsViewOf(e)():[]});taskOptions=R(()=>this.rowsOfProject().map(t=>({value:t.spec.id,label:t.spec.name??t.spec.id,description:t.spec.description??""})));ngOnChanges(e){if(e.item){let t=this.item?.config;this.curConfig.set(t?S({},t):null)}}async openConfig(){let e=this.item.projectId;if(!e){this.isModalVisible.set(!1);return}let t=this.item?.config;this.selectedTaskId=t?.taskId??"",this.isModalVisible.set(!0),this.loading.set(!0);try{await this.taskState.ensureProjectLoaded(e)}finally{this.loading.set(!1)}}save(){let e=this.item.projectId,t=(this.selectedTaskId??"").trim();if(!e||!t)return;let i=this.rowsOfProject().find(d=>d.spec.id===t),s=i?.spec.name??"",o=i?.spec.description??"",r={taskId:t,taskName:s,description:o};this.item.config=r,this.curConfig.set(r),this.layout.updateConfig(e,this.item.id,r),this.isModalVisible.set(!1)}toggleTask(){if(this.curConfig()==null||!this.curConfig().taskId)return;let e=this.curConfig().taskId;this.isRunning()?this.taskState.stopSelected(e):this.isStartable()&&this.taskState.startSelected(e),this.goToTask()}restartTask(){if(this.curConfig()==null||!this.curConfig().taskId)return;let e=this.curConfig().taskId;this.taskState.restartSelected(e),this.goToTask()}async goToTask(){let e=this.curConfig();if(!e)return;let t=e.taskId;this.taskState.select(t),await this.router.navigate(["/tasks"])}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-quick-task-widget"]],inputs:{item:"item"},features:[ot],decls:8,vars:4,consts:[[3,"item"],["ngProjectAs","actions",5,["actions"]],["nz-button","","nzType","link","nzSize","small",3,"click"],["nzType","setting","nzTheme","outline"],[1,"configured-info",3,"no-config"],["nzCentered","","nzTitle","\u914D\u7F6E\u90E8\u4EF6",3,"nzVisibleChange","nzOnCancel","nzVisible","nzMaskClosable"],[4,"nzModalContent"],[4,"nzModalFooter"],[1,"configured-info"],["nzType","setting","nzTheme","fill"],["nz-button","","nzType","primary",3,"click"],[1,"item"],["nzTooltipPlacement","right",1,"row",3,"nz-tooltip"],[1,"icon"],["nzType","codepen-circle","nzTheme","outline"],["nzStatus","processing"],["nzStatus","warning"],["nzStatus","default"],[1,"info"],[1,"name",3,"title"],[1,"description"],[1,"actions"],[3,"toggle","restart","isRunning","isStopping","isStartable"],["nz-button","","nzType","default",3,"click"],["nzType","schedule","nzTheme","outline"],[1,"modal-body"],["nzPlaceHolder","\u8BF7\u9009\u62E9\u4EFB\u52A1",2,"width","100%",3,"ngModelChange","ngModel","nzLoading","nzDisabled"],[3,"nzLabel","nzValue"],["nz-button","","nzType","primary",3,"click","disabled"]],template:function(t,i){t&1&&(l(0,"app-widget-base",0),et(1,1),l(2,"button",2),v("click",function(){return i.openConfig()}),p(3,"nz-icon",3),a(),it(),z(4,ns,3,3,"div",4),a(),l(5,"nz-modal",5),mt("nzVisibleChange",function(o){return ht(i.isModalVisible,o)||(i.isModalVisible=o),o}),v("nzOnCancel",function(){return i.isModalVisible.set(!1)}),Xt(6,rs,7,3,"ng-container",6)(7,ls,3,1,"ng-container",7),a()),t&2&&(c("item",i.item),h(4),T(i.item.configurable?4:-1),h(),dt("nzVisible",i.isModalVisible),c("nzMaskClosable",!1))},dependencies:[D,gt,ct,pt,nt,W,A,V,H,F,B,Qt,Ut,jt,Gt,oi,si,ni,li,ri,Jt,Je,ai],styles:[".configured-info[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;height:100%}.configured-info.no-config[_ngcontent-%COMP%]{gap:20px}.configured-info.no-config[_ngcontent-%COMP%] nz-icon[_ngcontent-%COMP%]{font-size:48px;color:var(--app-gray)}.configured-info[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;justify-content:center;gap:8px}.item[_ngcontent-%COMP%]{width:100%;padding:12px 16px;cursor:pointer}.item[_ngcontent-%COMP%]:hover, .item.active[_ngcontent-%COMP%]{background:var(--app-primary-3)}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:center;overflow:hidden;justify-content:space-between}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:36px;flex:0 0 auto;position:relative}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;overflow:hidden}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{font-size:13px;color:var(--app-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item[_ngcontent-%COMP%] .badge[_ngcontent-%COMP%]{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid rgba(0,0,0,.2);opacity:.85}.item[_ngcontent-%COMP%] .badge[data-status=running][_ngcontent-%COMP%]{font-weight:700}.item[_ngcontent-%COMP%] .badge[data-status=stopped][_ngcontent-%COMP%]{opacity:.7}.item[_ngcontent-%COMP%] .badge[data-status=failed][_ngcontent-%COMP%]{font-weight:700}.item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%]{margin-top:6px;font-size:12px;opacity:.75;display:flex;align-items:center;gap:6px}.item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%] .mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%] .sep[_ngcontent-%COMP%]{opacity:.5}.modal-body[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.modal-body[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{flex:0 0 auto;margin-right:16px;display:inline-block;width:120px}.modal-body[_ngcontent-%COMP%] nz-select[_ngcontent-%COMP%]{flex:1;margin-left:16px}"]})};var le=class n{item;removeWidget=new N;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-welcome-widget"]],inputs:{item:"item"},outputs:{removeWidget:"removeWidget"},decls:25,vars:1,consts:[[3,"item"],[1,"logo"],["nzType","proj:angular","nzTheme","outline"],[1,"item"],[1,"icon-wrapper"],["nzType","dashboard","nzTheme","outline"],["nzType","arrow-left","nzTheme","outline"],["nzType","home","nzTheme","outline"],[1,"footer"],["nz-button","","nzType","primary","routerLink","/projects","nzSize","large",3,"click"],["nzType","check","nzTheme","outline"]],template:function(t,i){t&1&&(l(0,"app-widget-base",0)(1,"div",1),p(2,"nz-icon",2),a(),l(3,"h2"),f(4,"\u6B22\u8FCE\u6765\u5230\u65B0\u9879\u76EE\uFF01"),a(),l(5,"div",3)(6,"div",4),p(7,"nz-icon",5),a(),l(8,"p"),f(9,"\u8FD9\u91CC\u662F\u9879\u76EE\u4EEA\u8868\u76D8\uFF0C\u4F60\u53EF\u4EE5\u70B9\u51FB\u53F3\u4E0A\u65B9\u7684\u201C\u81EA\u5B9A\u4E49\u201D\u6309\u94AE\u6765\u6DFB\u52A0\u90E8\u4EF6\u3002\u4F60\u7684\u6539\u52A8\u5C06\u4F1A\u81EA\u52A8\u4FDD\u5B58\u3002"),a()(),l(10,"div",3)(11,"div",4),p(12,"nz-icon",6),a(),l(13,"p"),f(14,"\u5DE6\u4FA7\u662F\u5404\u4E2A\u7BA1\u7406\u9875\u9762\u3002\u5728\u300C\u63D2\u4EF6\u300D\u9875\u9762\u53EF\u4EE5\u6DFB\u52A0\u65B0\u7684 Vue CLI \u63D2\u4EF6\uFF0C\u300C\u4F9D\u8D56\u300D\u9875\u9762\u7528\u4E8E\u7BA1\u7406\u9879\u76EE\u7684\u4F9D\u8D56\u5305\uFF0C\u300C\u914D\u7F6E\u300D\u9875\u9762\u7528\u4E8E\u914D\u7F6E\u5404\u79CD\u5DE5\u5177\uFF0C\u300C\u4EFB\u52A1\u300D\u9875\u9762\u7528\u4E8E\u8FD0\u884C\u5404\u4E2A\u811A\u672C\uFF08\u6BD4\u5982 webpack \u6253\u5305\uFF09\u3002"),a()(),l(15,"div",3)(16,"div",4),p(17,"nz-icon",7),a(),l(18,"p"),f(19,"\u70B9\u51FB\u5DE6\u4E0A\u65B9\u7684\u4E0B\u62C9\u83DC\u5355\u6216\u72B6\u6001\u680F\u4E0A\u7684\u5C0F\u623F\u5B50\u6309\u94AE\u6765\u8FD4\u56DE\u5230\u9879\u76EE\u7BA1\u7406\u5668\u3002"),a()(),l(20,"div",8)(21,"button",9),v("click",function(){return i.removeWidget.emit()}),p(22,"nz-icon",10),l(23,"span"),f(24," \u4E86\u89E3 "),a()()()()),t&2&&c("item",i.item)},dependencies:[D,F,B,W,A,V,H,nt],styles:[".logo[_ngcontent-%COMP%]{width:70px;height:70px;border-radius:50%;background-color:var(--app-primary-2);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.logo[_ngcontent-%COMP%] nz-icon[_ngcontent-%COMP%]{font-size:50px}h2[_ngcontent-%COMP%]{text-align:center;font-weight:600;flex:0 0 auto;margin-bottom:8px}.footer[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:30px 0}.item[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;padding:24px 16px}.item[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin-bottom:0}.item[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%]{width:50px;height:50px;margin-right:12px;flex:0 0 auto;background-color:var(--app-gray);border-radius:50%;display:flex;align-items:center;justify-content:center}.item[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%] nz-icon[_ngcontent-%COMP%]{font-size:24px;color:var(--app-primary-5)}"]})};function as(n,e){if(n&1){let t=b();l(0,"app-welcome-widget",1),v("removeWidget",function(){g(t);let s=m(2);return u(s.remove.emit(s.item))}),a()}if(n&2){let t=m(2);c("item",t.item)}}function ds(n,e){if(n&1&&p(0,"app-quick-task-widget",0),n&2){let t=m(2);c("item",t.item)}}function hs(n,e){if(n&1&&p(0,"app-kill-port-widget",0),n&2){let t=m(2);c("item",t.item)}}function ms(n,e){if(n&1&&p(0,"app-news-feed-widget",0),n&2){let t=m(2);c("item",t.item)}}function cs(n,e){if(n&1&&z(0,as,1,1,"app-welcome-widget",0)(1,ds,1,1,"app-quick-task-widget",0)(2,hs,1,1,"app-kill-port-widget",0)(3,ms,1,1,"app-news-feed-widget",0),n&2){let t,i=m();T((t=i.item.key)==="welcome"?0:t==="quickTasks"?1:t==="killPort"?2:t==="newsFeed"?3:-1)}}var ae=class n{item;editMode=!1;remove=new N;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-widget-host"]],inputs:{item:"item",editMode:"editMode"},outputs:{remove:"remove"},decls:1,vars:1,consts:[[3,"item"],[3,"removeWidget","item"]],template:function(t,i){t&1&&z(0,cs,4,1),t&2&&T(i.item?0:-1)},dependencies:[D,le,re,se,oe],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.widget-shell[_ngcontent-%COMP%]{width:100%;height:100%}.widget-shell[data-fit=scroll][_ngcontent-%COMP%]{overflow:auto}.widget-shell[data-fit=responsive][_ngcontent-%COMP%], .widget-shell[data-fit=scale][_ngcontent-%COMP%]{overflow:hidden}.widget-scale[_ngcontent-%COMP%]{width:100%;height:100%}"]})};var ps=(n,e)=>e.id;function gs(n,e){if(n&1){let t=b();l(0,"div",5)(1,"button",6),p(2,"i",7),f(3),a()(),l(4,"button",8),v("click",function(){g(t);let s=m().$implicit,o=m();return u(o.remove.emit(s.id))}),p(5,"nz-icon",9),a()}if(n&2){let t=m().$implicit;h(2),c("nzType",t.icon||"appstore"),h(),bt(" ",t.title," ")}}function us(n,e){if(n&1){let t=b();l(0,"gridster-item",1)(1,"div",2),z(2,gs,6,2),l(3,"div",3)(4,"app-widget-host",4),v("remove",function(s){g(t);let o=m();return u(o.remove.emit(s.id))}),a()()()()}if(n&2){let t=e.$implicit,i=m();c("item",t),h(),xt("edit-mode",i.editMode),h(),T(i.editMode?2:-1),h(2),c("item",t)("editMode",i.editMode)}}var de=class n{editMode=!1;items=[];itemsChange=new N;remove=new N;kill=new N;patch=new Map;itemChange=(e,t)=>{let i=t.item.id;i&&this.patch.set(i,{x:e.x??t.item.x,y:e.y??t.item.y,cols:e.cols??t.item.cols,rows:e.rows??t.item.rows})};itemResize=(e,t)=>{};options={gridType:C.Fixed,fixedColWidth:90,fixedRowHeight:90,margin:10,outerMargin:!0,compactType:_.None,pushItems:!0,displayGrid:ie.None,resizable:{enabled:!0,stop:()=>this.emitSync()},draggable:{enabled:!1,stop:()=>this.emitSync()},itemChangeCallback:this.itemChange,itemResizeCallback:this.itemResize};ngOnChanges(e){let t=e.editMode;t&&t.currentValue!=t.previousValue&&(this.options=G(S({},this.options),{draggable:G(S({},this.options.draggable),{enabled:this.editMode}),resizable:G(S({},this.options.resizable),{enabled:this.editMode}),fixedColWidth:this.editMode?70:90,fixedRowHeight:this.editMode?70:90}))}emitSync(){let e=this.items.map(t=>{let i=this.patch.get(t.id);return i?S(S({},t),i):t});this.patch.clear(),this.itemsChange.emit(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-dashboard-canvas"]],inputs:{editMode:"editMode",items:"items"},outputs:{itemsChange:"itemsChange",remove:"remove",kill:"kill"},features:[ot],decls:3,vars:1,consts:[[3,"options"],[3,"item"],[1,"card"],[1,"card-body"],[3,"remove","item","editMode"],["aria-hidden","true",1,"card-overlay"],["nz-button","","nzType","primary","nzSize","large"],["nz-icon","","nzTheme","outline",3,"nzType"],["nz-button","","nzType","text","nzSize","small","nz-tooltip","\u79FB\u9664\u90E8\u4EF6",1,"remove-button",3,"click"],["nzType","close","nzTheme","outline"]],template:function(t,i){t&1&&(l(0,"gridster",0),K(1,us,5,6,"gridster-item",1,ps),a()),t&2&&(c("options",i.options),h(),q(i.items))},dependencies:[D,W,A,V,H,F,B,Ie,xi,ae],styles:["[_nghost-%COMP%]{display:block;height:100%}gridster[_ngcontent-%COMP%]{display:block;height:100%;background:var(--app-primary-1)}gridster-item[_ngcontent-%COMP%]{border-radius:10px}.card[_ngcontent-%COMP%]{height:100%;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000000f;overflow:hidden;position:relative}.card.edit-mode[_ngcontent-%COMP%]{-webkit-user-select:none;user-select:none}.card-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;background:#ffffff8c;display:flex;justify-content:center;align-items:center;pointer-events:none;z-index:2}.remove-button[_ngcontent-%COMP%]{position:absolute;right:16px;top:16px;z-index:3;background:var(--app-primary-1);color:var(--app-primary);transition:all .3s}.remove-button[_ngcontent-%COMP%]:hover{background:var(--app-primary);color:#fff}.card-overlay[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{pointer-events:none;border-radius:20px}.title[_ngcontent-%COMP%]{font-size:12px;color:#000000bf}.card-body[_ngcontent-%COMP%]{position:relative;height:100%}.card.edit-mode[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%]{cursor:move;pointer-events:none;opacity:.8}"]})};var fs=["class","component"],vi=class n{projectContext=M(ei);layout=M(st);envInjector=M(Se);projectId=R(()=>this.projectContext.currentProjectId()||"");editMode=P(!1);items=R(()=>this.layout.items());constructor(){Ve(()=>{let e=this.projectId();e&&(Be(()=>this.layout.load(e)),De(this.envInjector,()=>{Re(()=>{queueMicrotask(()=>this.editMode.set(!1))})}))})}toggleEdit(){let e=!this.editMode();this.editMode.set(e),e?this.layout.getWidgets():this.layout.flushSave(this.projectId())}onItemsChange(e){this.layout.setItems(this.projectId(),e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=k({type:n,selectors:[["app-dashboard",8,"component"]],hostVars:2,hostBindings:function(t,i){t&2&&xt("collapsed",i.editMode())},attrs:fs,decls:14,vars:8,consts:[[3,"title","isFullscreen"],["ngProjectAs","actions",5,["actions"]],["nz-button","","nzType","primary",3,"click"],["nzTheme","outline",3,"nzType"],[3,"itemsChange","remove","kill","editMode","items"],[1,"side-panel"],[1,"side-header"],[1,"title"],["nz-button","","nzType","text",3,"click"],["nzType","close"],[1,"side-body"],[3,"add"]],template:function(t,i){t&1&&(l(0,"app-page-layout",0),et(1,1),l(2,"button",2),v("click",function(){return i.toggleEdit()}),p(3,"nz-icon",3),f(4),a(),it(),l(5,"app-dashboard-canvas",4),v("itemsChange",function(o){return i.onItemsChange(o)})("remove",function(o){return i.layout.remove(o)})("kill",function(o){return i.layout.killProcess(o)}),a()(),l(6,"div",5)(7,"div",6)(8,"div",7),f(9,"\u6DFB\u52A0\u90E8\u4EF6"),a(),l(10,"button",8),v("click",function(){return i.editMode.set(!1)}),p(11,"nz-icon",9),a()(),l(12,"div",10)(13,"app-add-widget-drawer",11),v("add",function(o){return i.layout.add(o)}),a()()()),t&2&&(c("title","\u9879\u76EE\u4EEA\u8868\u76D8")("isFullscreen",!0),h(3),c("nzType",i.editMode()?"check":"edit"),h(),bt(" ",i.editMode()?"\u5B8C\u6210":"\u81EA\u5B9A\u4E49"," "),h(),c("editMode",i.editMode())("items",i.items()),h(),xt("open",i.editMode()))},dependencies:[D,W,A,V,H,F,B,Qe,Ke,qe,de,te],styles:["[_nghost-%COMP%]{height:100%;display:block;position:relative;transition:width .2s}.collapsed[_nghost-%COMP%]{width:calc(100% - 360px)}.side-panel[_ngcontent-%COMP%]{position:fixed;top:0;right:0;height:100vh;width:360px;background:#fff;box-shadow:-8px 0 24px #0000001f;transform:translate(100%);transition:transform .2s ease;z-index:1000;display:flex;flex-direction:column}.side-panel.open[_ngcontent-%COMP%]{transform:translate(0)}.side-header[_ngcontent-%COMP%]{height:56px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,.06)}.side-body[_ngcontent-%COMP%]{flex:1;overflow:hidden}"]})};export{vi as DashboardComponent};