@yinuo-ngm/server 1.0.5 → 1.0.7
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.
- package/LICENSE +15 -0
- package/package.json +38 -38
- package/www/browser/{chunk-X7DKZB43.js → chunk-2PBA7FNM.js} +2 -2
- package/www/browser/chunk-35COW2FA.js +1 -0
- package/www/browser/{chunk-IGJYBE5M.js → chunk-3N7T4ZJF.js} +1 -1
- package/www/browser/{chunk-6ZXMOHQD.js → chunk-5IUYSJVD.js} +1 -1
- package/www/browser/{chunk-CF64VPDQ.js → chunk-5MHC25IS.js} +1 -1
- package/www/browser/chunk-7U5ZOE34.js +1 -0
- package/www/browser/{chunk-GKOCPXFS.js → chunk-A2SBXP7A.js} +1 -1
- package/www/browser/chunk-CJISJEP3.js +1 -0
- package/www/browser/chunk-CPA2B3DD.js +1 -0
- package/www/browser/{chunk-TN5O5PXP.js → chunk-DUC7XBYN.js} +1 -1
- package/www/browser/{chunk-UIDFNBD4.js → chunk-DV7BEQJD.js} +1 -1
- package/www/browser/{chunk-ZGEEPU7F.js → chunk-EAYGWAZB.js} +1 -1
- package/www/browser/{chunk-GNFBCMLE.js → chunk-EC33AXSR.js} +1 -1
- package/www/browser/{chunk-K6ZRTM2Q.js → chunk-FL6BUQ4M.js} +1 -1
- package/www/browser/{chunk-A6CKMRBS.js → chunk-FPDGZ3ZC.js} +1 -1
- package/www/browser/{chunk-ECWYTW7Q.js → chunk-IXHH6ENJ.js} +1 -1
- package/www/browser/chunk-KKLLU6U7.js +3 -0
- package/www/browser/chunk-MN4WB67T.js +1 -0
- package/www/browser/{chunk-ZJKBRM7K.js → chunk-POZS3PD3.js} +1 -1
- package/www/browser/{chunk-J43J3F2V.js → chunk-PTMJ422K.js} +6 -6
- package/www/browser/{chunk-HT3VTKOZ.js → chunk-PYGKDDJK.js} +1 -1
- package/www/browser/{chunk-34QRY4VA.js → chunk-ROB7EMN5.js} +13 -13
- package/www/browser/chunk-TLFV3T3W.js +1 -0
- package/www/browser/chunk-U7FBNFSB.js +1 -0
- package/www/browser/chunk-UWKUE7CZ.js +11 -0
- package/www/browser/{chunk-R7E5ZK2M.js → chunk-V6LX42JA.js} +1 -1
- package/www/browser/dark.css +1 -1
- package/www/browser/default.css +1 -1
- package/www/browser/index.html +1 -1
- package/www/browser/main-IIW5QQA5.js +29 -0
- package/www/browser/chunk-5RKAWOOJ.js +0 -1
- package/www/browser/chunk-ACZLOZZH.js +0 -1
- package/www/browser/chunk-C3KAVW4L.js +0 -1
- package/www/browser/chunk-CKWTUTVS.js +0 -1
- package/www/browser/chunk-QC33YQSO.js +0 -11
- package/www/browser/chunk-U76AMP2X.js +0 -3
- package/www/browser/main-F763G7F7.js +0 -29
package/LICENSE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ZhangJing
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose
|
|
6
|
+
with or without fee is hereby granted, provided that the above copyright notice
|
|
7
|
+
and this permission notice appear in all copies.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
11
|
+
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
13
|
+
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
14
|
+
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
|
15
|
+
THIS SOFTWARE.
|
package/package.json
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@yinuo-ngm/server",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "a server package for Yinuo NG Manager",
|
|
5
|
-
"author": "ZhangJing <892295834@qq.com>",
|
|
6
|
-
"license": "ISC",
|
|
7
|
-
"main": "lib/index.js",
|
|
8
|
-
"types": "lib/index.d.ts",
|
|
9
|
-
"keywords": [],
|
|
10
|
-
"files": [
|
|
11
|
-
"lib",
|
|
12
|
-
"www"
|
|
13
|
-
],
|
|
14
|
-
"publishConfig": {
|
|
15
|
-
"access": "public"
|
|
16
|
-
},
|
|
17
|
-
"scripts": {
|
|
18
|
-
"dev": "tsx watch src/index.ts",
|
|
19
|
-
"build": "tsc -p tsconfig.json",
|
|
20
|
-
"start": "node lib/index.js"
|
|
21
|
-
},
|
|
22
|
-
"dependencies": {
|
|
23
|
-
"@fastify/static": "^9.0.0",
|
|
24
|
-
"@fastify/websocket": "^11.2.0",
|
|
25
|
-
"@yinuo-ngm/api": "^0.1.
|
|
26
|
-
"@yinuo-ngm/core": "
|
|
27
|
-
"@yinuo-ngm/sprite": "^0.1.
|
|
28
|
-
"fastify": "^5.6.2",
|
|
29
|
-
"fastify-plugin": "^5.1.0",
|
|
30
|
-
"launch-editor": "^2.12.0",
|
|
31
|
-
"pino-pretty": "^13.1.3",
|
|
32
|
-
"rss-parser": "^3.13.0"
|
|
33
|
-
},
|
|
34
|
-
"devDependencies": {
|
|
35
|
-
"tsx": "^4.21.0"
|
|
36
|
-
},
|
|
37
|
-
"gitHead": "
|
|
38
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@yinuo-ngm/server",
|
|
3
|
+
"version": "1.0.7",
|
|
4
|
+
"description": "a server package for Yinuo NG Manager",
|
|
5
|
+
"author": "ZhangJing <892295834@qq.com>",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"main": "lib/index.js",
|
|
8
|
+
"types": "lib/index.d.ts",
|
|
9
|
+
"keywords": [],
|
|
10
|
+
"files": [
|
|
11
|
+
"lib",
|
|
12
|
+
"www"
|
|
13
|
+
],
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"dev": "tsx watch src/index.ts",
|
|
19
|
+
"build": "tsc -p tsconfig.json",
|
|
20
|
+
"start": "node lib/index.js"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@fastify/static": "^9.0.0",
|
|
24
|
+
"@fastify/websocket": "^11.2.0",
|
|
25
|
+
"@yinuo-ngm/api": "^0.1.2",
|
|
26
|
+
"@yinuo-ngm/core": "*",
|
|
27
|
+
"@yinuo-ngm/sprite": "^0.1.3",
|
|
28
|
+
"fastify": "^5.6.2",
|
|
29
|
+
"fastify-plugin": "^5.1.0",
|
|
30
|
+
"launch-editor": "^2.12.0",
|
|
31
|
+
"pino-pretty": "^13.1.3",
|
|
32
|
+
"rss-parser": "^3.13.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"tsx": "^4.21.0"
|
|
36
|
+
},
|
|
37
|
+
"gitHead": "9aed992e1827e2fe9c785ee0834514aae1c8d6a5"
|
|
38
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as ai}from"./chunk-HT3VTKOZ.js";import"./chunk-6ZXMOHQD.js";import{c as qe}from"./chunk-GNFBCMLE.js";import{b as Ke,d as ii}from"./chunk-CF64VPDQ.js";import{d as si,e as ni,f as oi}from"./chunk-TN5O5PXP.js";import{e as Je}from"./chunk-34QRY4VA.js";import{c as ri,d as li}from"./chunk-GKOCPXFS.js";import"./chunk-SNCDDYQR.js";import{A as Jt,B as Zt,I as ei,g as Qt,i as Ze,j as ti,y as Kt,z as qt}from"./chunk-A6CKMRBS.js";import{Cb as jt,Eb as Ut,M as L,N as F,T as Ue,U as Qe,V as B,W as X,Y,Z as O,ib as zt,kb as mt,ob as pt,sb as gt,vb as Yt,xb as Mt,yb as Gt,zb as $t}from"./chunk-J43J3F2V.js";import"./chunk-HFZLJHYR.js";import{c as Xe,h as Ye,i as D,o as Ge,y as je}from"./chunk-53YRDYLS.js";import{$b as K,$c as Be,Bc as Oe,Cc as We,Eb as T,Ec as Ne,Fc as xt,Ha as S,Ic as f,J as ke,Jc as A,Kb as At,Kc as _t,Mc as ht,Nc as dt,Oa as nt,Oc as ct,Q as Se,Ra as St,Vb as b,Xb as _,Yb as ge,Zc as Le,_b as Q,a as P,ac as p,b as j,bc as l,cc as h,da as Pe,dc as m,ea as me,ec as V,ed as Ve,fc as N,fd as R,gd as He,hc as tt,ic as et,kb as Re,kc as M,l as Ht,ma as It,mb as d,md as Ae,qc as z,ra as k,rb as ot,rd as Xt,sb as pe,sc as rt,tc as c,ub as Fe,uc as Dt,va as De,vc as bt,wa as Ee,xa as w,xb as Pt,ya as x,yb as U,z as ce}from"./chunk-SJG2JCPL.js";var te=class n{api=k(Qt);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)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=It({token:n,factory:n.\u0275fac,providedIn:"root"})};var it=class n{localKey(e){return`${Ze.dashboard.layout}.${e}`}local=k(ti);api=k(te);_doc=S(null);items=R(()=>this._doc()?.items??[]);updatedAt=R(()=>this._doc()?.updatedAt??0);widgets=S([]);saveTimer=null;async load(e){try{let t=await ce(this.api.getInfo(e));this._doc.set(t),this.local.set(this.localKey(e),t);return}catch{let t=this.local.get(this.localKey(e),null);if(t){this._doc.set(t);return}this._doc.set({version:1,projectId:e,updatedAt:Date.now(),items:[]})}}setItems(e,t){let i=this._doc();i&&(this._doc.set(j(P({},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;this.local.set(this.localKey(e),t);let i=await ce(this.api.update(e,t));this._doc.set(i),this.local.set(this.localKey(e),i)}add(e){let t=this._doc();t&&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.local.set(this.localKey(t.projectId),o),this.getWidgets()})},0)}remove(e){let t=this._doc();t&&this.api.removeWidget(t.projectId,e).subscribe(i=>{this._doc.set(i),this.local.set(this.localKey(t.projectId),i),this.getWidgets()})}getWidgets(){let e=this._doc();e&&this.api.widgets(e.projectId).subscribe(t=>{this.widgets.set(t)})}updateConfig(e,t,i){let s=this._doc();s&&this.api.updateItemConfig(e,t,i).subscribe(o=>{this._doc.set(o),this.local.set(this.localKey(s.projectId),o)})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=It({token:n,factory:n.\u0275fac,providedIn:"root"})};var _i=(n,e)=>e.key;function zi(n,e){if(n&1){let t=M();l(0,"div",5)(1,"div",6)(2,"div",7),m(3,"nz-icon",8),h(),l(4,"div",9)(5,"div",10),f(6),h(),l(7,"div",11),f(8),h()(),l(9,"div",12)(10,"button",13),z("click",function(){let s=w(t).$implicit,o=c();return x(o.addWidget(s))}),m(11,"nz-icon",14),h()()()()}if(n&2){let t=e.$implicit;d(3),p("nzType",t.icon||"appstore"),d(3),A(t.title),d(2),A(t.desc)}}var ee=class n{layout=k(it);add=new ot;keyword=S("");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=T({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"),m(3,"nz-icon",2),l(4,"input",3),z("ngModelChange",function(o){return i.keyword.set(o)}),h()()(),l(5,"div",4),Q(6,zi,12,3,"div",5,_i),h()()),t&2&&(d(4),p("ngModel",i.keyword()),d(2),K(i.filtered()))},dependencies:[D,gt,zt,mt,pt,F,L,$t,Mt,Gt,Yt,O,Y,B,X,Ut],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 mi=["*"];function Mi(n,e){if(n&1&&m(0,"div",0),n&2){let t=e.$index,i=c();p("ngStyle",i.gridRenderer.getGridColumnStyle(t))}}function $i(n,e){if(n&1&&m(0,"div",1),n&2){let t=e.$index,i=c();p("ngStyle",i.gridRenderer.getGridRowStyle(t))}}function Ti(n,e){if(n&1){let t=M();V(0,"div",8),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function ki(n,e){if(n&1){let t=M();V(0,"div",9),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Si(n,e){if(n&1){let t=M();V(0,"div",10),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Pi(n,e){if(n&1){let t=M();V(0,"div",11),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Di(n,e){if(n&1){let t=M();V(0,"div",12),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Ei(n,e){if(n&1){let t=M();V(0,"div",13),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Ri(n,e){if(n&1){let t=M();V(0,"div",14),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Fi(n,e){if(n&1){let t=M();V(0,"div",15),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}var g=(function(n){return n.Fit="fit",n.ScrollVertical="scrollVertical",n.ScrollHorizontal="scrollHorizontal",n.Fixed="fixed",n.VerticalFixed="verticalFixed",n.HorizontalFixed="horizontalFixed",n})(g||{}),se=(function(n){return n.Always="always",n.OnDragAndResize="onDrag&Resize",n.None="none",n})(se||{}),v=(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})(v||{}),E=(function(n){return n.LTR="ltr",n.RTL="rtl",n})(E||{}),Ce=class{gridster;constructor(e){this.gridster=e}destroy(){this.gridster=null}checkCompact(){this.gridster.$options.compactType!==v.None&&(this.gridster.$options.compactType===v.CompactUp?this.checkCompactMovement("y",-1):this.gridster.$options.compactType===v.CompactLeft?this.checkCompactMovement("x",-1):this.gridster.$options.compactType===v.CompactUpAndLeft?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===v.CompactLeftAndUp?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===v.CompactRight?this.checkCompactMovement("x",1):this.gridster.$options.compactType===v.CompactUpAndRight?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===v.CompactRightAndUp?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===v.CompactDown?this.checkCompactMovement("y",1):this.gridster.$options.compactType===v.CompactDownAndLeft?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===v.CompactDownAndRight?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===v.CompactLeftAndDown?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===v.CompactRightAndDown?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===v.CompactGrid&&this.checkCompactGrid())}checkCompactItem(e){this.gridster.$options.compactType!==v.None&&(this.gridster.$options.compactType===v.CompactUp?this.moveTillCollision(e,"y",-1):this.gridster.$options.compactType===v.CompactLeft?this.moveTillCollision(e,"x",-1):this.gridster.$options.compactType===v.CompactUpAndLeft?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===v.CompactLeftAndUp?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",-1)):this.gridster.$options.compactType===v.CompactUpAndRight?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===v.CompactDown?this.moveTillCollision(e,"y",1):this.gridster.$options.compactType===v.CompactDownAndLeft?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===v.CompactLeftAndDown?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===v.CompactDownAndRight?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===v.CompactRightAndDown?(this.moveTillCollision(e,"x",1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===v.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 a=r.x,C=r.y;r.x=i,r.y=t,(a!==r.x||C!==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,a)=>r.$item.y!==a.$item.y?r.$item.y-a.$item.y:r.$item.x-a.$item.x);for(let r of o){let a=r.$item;i+a.cols>this.gridster.columns&&(t=s,i=0,s=t),t<a.y+a.rows&&t+e.rows>a.y&&i<a.x+a.cols&&i+e.cols>a.x?(i=a.x+a.cols,t=a.y,s=Math.max(s,t+a.rows)):(i+=a.cols,s=Math.max(s,t+a.rows))}i+e.cols>this.gridster.columns&&(t=s,i=0),e.x=i,e.y=t}},Oi={gridType:g.Fit,scale:1,fixedColWidth:250,fixedRowHeight:250,keepFixedHeightInMobile:!1,keepFixedWidthInMobile:!1,setGridSize:!1,compactType:v.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:se.OnDragAndResize,disableWindowResize:!1,disableWarnings:!1,scrollToNewItems:!1,disableScrollHorizontal:!1,disableScrollVertical:!1,enableBoundaryControl:!1,disableAutoPositionOnConflict:!1,dirType:E.LTR},W=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}},ye=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||W.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||W.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(W.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(),W.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,a=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",a+"px");let C=null,u=null;this.gridster.$options.outerMargin&&(this.gridster.rows===t.rows+t.y&&(this.gridster.$options.outerMarginBottom!==null?C=this.gridster.$options.outerMarginBottom+"px":C=this.gridster.$options.margin+"px"),this.gridster.columns===t.cols+t.x&&(this.gridster.$options.outerMarginBottom!==null?u=this.gridster.$options.outerMarginRight+"px":u=this.gridster.$options.margin+"px")),i.setStyle(e,"margin-bottom",C),i.setStyle(e,this.gridster.$options.dirType===E.LTR?"margin-right":"margin-left",u)}}updateGridster(){let e="",t="",i="",s="";if(this.gridster.$options.gridType===g.Fit)e=g.Fit,t=g.ScrollVertical,i=g.ScrollHorizontal,s=g.Fixed;else if(this.gridster.$options.gridType===g.ScrollVertical)this.gridster.curRowHeight=this.gridster.curColWidth*this.gridster.$options.rowHeightRatio,e=g.ScrollVertical,t=g.Fit,i=g.ScrollHorizontal,s=g.Fixed;else if(this.gridster.$options.gridType===g.ScrollHorizontal){let o=this.gridster.$options.rowHeightRatio,r=o>=1?o:o+1;this.gridster.curColWidth=this.gridster.curRowHeight*r,e=g.ScrollHorizontal,t=g.Fit,i=g.ScrollVertical,s=g.Fixed}else this.gridster.$options.gridType===g.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=g.Fixed,t=g.Fit,i=g.ScrollVertical,s=g.ScrollHorizontal):this.gridster.$options.gridType===g.VerticalFixed?(this.gridster.curRowHeight=this.gridster.$options.fixedRowHeight+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=g.ScrollVertical,t=g.Fit,i=g.ScrollHorizontal,s=g.Fixed):this.gridster.$options.gridType===g.HorizontalFixed&&(this.gridster.curColWidth=this.gridster.$options.fixedColWidth+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=g.ScrollHorizontal,t=g.Fit,i=g.ScrollVertical,s=g.Fixed);this.gridster.mobile||this.gridster.$options.setGridSize&&this.gridster.$options.gridType!==g.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=j(P({},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=j(P({},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}},fe=(()=>{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)(U(St),U(Pt))};static \u0275cmp=T({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-PYGKDDJK.js";import"./chunk-5IUYSJVD.js";import{c as qe}from"./chunk-EC33AXSR.js";import{b as Ke,d as ii}from"./chunk-5MHC25IS.js";import{d as si,e as ni,f as oi}from"./chunk-DUC7XBYN.js";import{e as Je}from"./chunk-ROB7EMN5.js";import{c as ri,d as li}from"./chunk-A2SBXP7A.js";import"./chunk-SNCDDYQR.js";import{A as Jt,B as Zt,I as ei,g as Qt,i as Ze,j as ti,y as Kt,z as qt}from"./chunk-FPDGZ3ZC.js";import{Ab as Mt,Bb as Gt,Cb as $t,Fb as jt,Hb as Ut,M as L,N as F,T as Ue,U as Qe,V as B,W as X,Y,Z as O,jb as zt,lb as mt,pb as pt,vb as gt,yb as Yt}from"./chunk-PTMJ422K.js";import"./chunk-HFZLJHYR.js";import{c as Xe,h as Ye,i as D,o as Ge,y as je}from"./chunk-53YRDYLS.js";import{$b as K,$c as Be,Bc as Oe,Cc as We,Eb as T,Ec as Ne,Fc as xt,Ha as S,Ic as f,J as ke,Jc as A,Kb as At,Kc as _t,Mc as ht,Nc as dt,Oa as nt,Oc as ct,Q as Se,Ra as St,Vb as b,Xb as _,Yb as ge,Zc as Le,_b as Q,a as P,ac as p,b as j,bc as l,cc as h,da as Pe,dc as m,ea as me,ec as V,ed as Ve,fc as N,fd as R,gd as He,hc as tt,ic as et,kb as Re,kc as M,l as Ht,ma as It,mb as d,md as Ae,qc as z,ra as k,rb as ot,rd as Xt,sb as pe,sc as rt,tc as c,ub as Fe,uc as Dt,va as De,vc as bt,wa as Ee,xa as w,xb as Pt,ya as x,yb as U,z as ce}from"./chunk-SJG2JCPL.js";var te=class n{api=k(Qt);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)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=It({token:n,factory:n.\u0275fac,providedIn:"root"})};var it=class n{localKey(e){return`${Ze.dashboard.layout}.${e}`}local=k(ti);api=k(te);_doc=S(null);items=R(()=>this._doc()?.items??[]);updatedAt=R(()=>this._doc()?.updatedAt??0);widgets=S([]);saveTimer=null;async load(e){try{let t=await ce(this.api.getInfo(e));this._doc.set(t),this.local.set(this.localKey(e),t);return}catch{let t=this.local.get(this.localKey(e),null);if(t){this._doc.set(t);return}this._doc.set({version:1,projectId:e,updatedAt:Date.now(),items:[]})}}setItems(e,t){let i=this._doc();i&&(this._doc.set(j(P({},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;this.local.set(this.localKey(e),t);let i=await ce(this.api.update(e,t));this._doc.set(i),this.local.set(this.localKey(e),i)}add(e){let t=this._doc();t&&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.local.set(this.localKey(t.projectId),o),this.getWidgets()})},0)}remove(e){let t=this._doc();t&&this.api.removeWidget(t.projectId,e).subscribe(i=>{this._doc.set(i),this.local.set(this.localKey(t.projectId),i),this.getWidgets()})}getWidgets(){let e=this._doc();e&&this.api.widgets(e.projectId).subscribe(t=>{this.widgets.set(t)})}updateConfig(e,t,i){let s=this._doc();s&&this.api.updateItemConfig(e,t,i).subscribe(o=>{this._doc.set(o),this.local.set(this.localKey(s.projectId),o)})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=It({token:n,factory:n.\u0275fac,providedIn:"root"})};var _i=(n,e)=>e.key;function zi(n,e){if(n&1){let t=M();l(0,"div",5)(1,"div",6)(2,"div",7),m(3,"nz-icon",8),h(),l(4,"div",9)(5,"div",10),f(6),h(),l(7,"div",11),f(8),h()(),l(9,"div",12)(10,"button",13),z("click",function(){let s=w(t).$implicit,o=c();return x(o.addWidget(s))}),m(11,"nz-icon",14),h()()()()}if(n&2){let t=e.$implicit;d(3),p("nzType",t.icon||"appstore"),d(3),A(t.title),d(2),A(t.desc)}}var ee=class n{layout=k(it);add=new ot;keyword=S("");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=T({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"),m(3,"nz-icon",2),l(4,"input",3),z("ngModelChange",function(o){return i.keyword.set(o)}),h()()(),l(5,"div",4),Q(6,zi,12,3,"div",5,_i),h()()),t&2&&(d(4),p("ngModel",i.keyword()),d(2),K(i.filtered()))},dependencies:[D,gt,zt,mt,pt,F,L,$t,Mt,Gt,Yt,O,Y,B,X,Ut],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 mi=["*"];function Mi(n,e){if(n&1&&m(0,"div",0),n&2){let t=e.$index,i=c();p("ngStyle",i.gridRenderer.getGridColumnStyle(t))}}function $i(n,e){if(n&1&&m(0,"div",1),n&2){let t=e.$index,i=c();p("ngStyle",i.gridRenderer.getGridRowStyle(t))}}function Ti(n,e){if(n&1){let t=M();V(0,"div",8),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function ki(n,e){if(n&1){let t=M();V(0,"div",9),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Si(n,e){if(n&1){let t=M();V(0,"div",10),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Pi(n,e){if(n&1){let t=M();V(0,"div",11),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Di(n,e){if(n&1){let t=M();V(0,"div",12),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Ei(n,e){if(n&1){let t=M();V(0,"div",13),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Ri(n,e){if(n&1){let t=M();V(0,"div",14),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}function Fi(n,e){if(n&1){let t=M();V(0,"div",15),rt("mousedown",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))})("touchstart",function(s){w(t);let o=c();return x(o.resize.dragStartDelay(s))}),N()}}var g=(function(n){return n.Fit="fit",n.ScrollVertical="scrollVertical",n.ScrollHorizontal="scrollHorizontal",n.Fixed="fixed",n.VerticalFixed="verticalFixed",n.HorizontalFixed="horizontalFixed",n})(g||{}),se=(function(n){return n.Always="always",n.OnDragAndResize="onDrag&Resize",n.None="none",n})(se||{}),v=(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})(v||{}),E=(function(n){return n.LTR="ltr",n.RTL="rtl",n})(E||{}),Ce=class{gridster;constructor(e){this.gridster=e}destroy(){this.gridster=null}checkCompact(){this.gridster.$options.compactType!==v.None&&(this.gridster.$options.compactType===v.CompactUp?this.checkCompactMovement("y",-1):this.gridster.$options.compactType===v.CompactLeft?this.checkCompactMovement("x",-1):this.gridster.$options.compactType===v.CompactUpAndLeft?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===v.CompactLeftAndUp?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===v.CompactRight?this.checkCompactMovement("x",1):this.gridster.$options.compactType===v.CompactUpAndRight?(this.checkCompactMovement("y",-1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===v.CompactRightAndUp?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",-1)):this.gridster.$options.compactType===v.CompactDown?this.checkCompactMovement("y",1):this.gridster.$options.compactType===v.CompactDownAndLeft?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",-1)):this.gridster.$options.compactType===v.CompactDownAndRight?(this.checkCompactMovement("y",1),this.checkCompactMovement("x",1)):this.gridster.$options.compactType===v.CompactLeftAndDown?(this.checkCompactMovement("x",-1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===v.CompactRightAndDown?(this.checkCompactMovement("x",1),this.checkCompactMovement("y",1)):this.gridster.$options.compactType===v.CompactGrid&&this.checkCompactGrid())}checkCompactItem(e){this.gridster.$options.compactType!==v.None&&(this.gridster.$options.compactType===v.CompactUp?this.moveTillCollision(e,"y",-1):this.gridster.$options.compactType===v.CompactLeft?this.moveTillCollision(e,"x",-1):this.gridster.$options.compactType===v.CompactUpAndLeft?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===v.CompactLeftAndUp?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",-1)):this.gridster.$options.compactType===v.CompactUpAndRight?(this.moveTillCollision(e,"y",-1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===v.CompactDown?this.moveTillCollision(e,"y",1):this.gridster.$options.compactType===v.CompactDownAndLeft?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",-1)):this.gridster.$options.compactType===v.CompactLeftAndDown?(this.moveTillCollision(e,"x",-1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===v.CompactDownAndRight?(this.moveTillCollision(e,"y",1),this.moveTillCollision(e,"x",1)):this.gridster.$options.compactType===v.CompactRightAndDown?(this.moveTillCollision(e,"x",1),this.moveTillCollision(e,"y",1)):this.gridster.$options.compactType===v.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 a=r.x,C=r.y;r.x=i,r.y=t,(a!==r.x||C!==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,a)=>r.$item.y!==a.$item.y?r.$item.y-a.$item.y:r.$item.x-a.$item.x);for(let r of o){let a=r.$item;i+a.cols>this.gridster.columns&&(t=s,i=0,s=t),t<a.y+a.rows&&t+e.rows>a.y&&i<a.x+a.cols&&i+e.cols>a.x?(i=a.x+a.cols,t=a.y,s=Math.max(s,t+a.rows)):(i+=a.cols,s=Math.max(s,t+a.rows))}i+e.cols>this.gridster.columns&&(t=s,i=0),e.x=i,e.y=t}},Oi={gridType:g.Fit,scale:1,fixedColWidth:250,fixedRowHeight:250,keepFixedHeightInMobile:!1,keepFixedWidthInMobile:!1,setGridSize:!1,compactType:v.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:se.OnDragAndResize,disableWindowResize:!1,disableWarnings:!1,scrollToNewItems:!1,disableScrollHorizontal:!1,disableScrollVertical:!1,enableBoundaryControl:!1,disableAutoPositionOnConflict:!1,dirType:E.LTR},W=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}},ye=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||W.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||W.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(W.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(),W.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,a=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",a+"px");let C=null,u=null;this.gridster.$options.outerMargin&&(this.gridster.rows===t.rows+t.y&&(this.gridster.$options.outerMarginBottom!==null?C=this.gridster.$options.outerMarginBottom+"px":C=this.gridster.$options.margin+"px"),this.gridster.columns===t.cols+t.x&&(this.gridster.$options.outerMarginBottom!==null?u=this.gridster.$options.outerMarginRight+"px":u=this.gridster.$options.margin+"px")),i.setStyle(e,"margin-bottom",C),i.setStyle(e,this.gridster.$options.dirType===E.LTR?"margin-right":"margin-left",u)}}updateGridster(){let e="",t="",i="",s="";if(this.gridster.$options.gridType===g.Fit)e=g.Fit,t=g.ScrollVertical,i=g.ScrollHorizontal,s=g.Fixed;else if(this.gridster.$options.gridType===g.ScrollVertical)this.gridster.curRowHeight=this.gridster.curColWidth*this.gridster.$options.rowHeightRatio,e=g.ScrollVertical,t=g.Fit,i=g.ScrollHorizontal,s=g.Fixed;else if(this.gridster.$options.gridType===g.ScrollHorizontal){let o=this.gridster.$options.rowHeightRatio,r=o>=1?o:o+1;this.gridster.curColWidth=this.gridster.curRowHeight*r,e=g.ScrollHorizontal,t=g.Fit,i=g.ScrollVertical,s=g.Fixed}else this.gridster.$options.gridType===g.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=g.Fixed,t=g.Fit,i=g.ScrollVertical,s=g.ScrollHorizontal):this.gridster.$options.gridType===g.VerticalFixed?(this.gridster.curRowHeight=this.gridster.$options.fixedRowHeight+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=g.ScrollVertical,t=g.Fit,i=g.ScrollHorizontal,s=g.Fixed):this.gridster.$options.gridType===g.HorizontalFixed&&(this.gridster.curColWidth=this.gridster.$options.fixedColWidth+(this.gridster.$options.ignoreMarginInRow?0:this.gridster.$options.margin),e=g.ScrollHorizontal,t=g.Fit,i=g.ScrollVertical,s=g.Fixed);this.gridster.mobile||this.gridster.$options.setGridSize&&this.gridster.$options.gridType!==g.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=j(P({},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=j(P({},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}},fe=(()=>{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)(U(St),U(Pt))};static \u0275cmp=T({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})(),_e=(()=>{class n{renderer;cdRef;zone;gridsterPreview=Ae.required(fe);options;movingItem;el;$options;mobile;curWidth;curHeight;grid;columns=0;rows=0;curColWidth;curRowHeight;gridColumns=[];gridRows=[];windowResize;dragInProgress;emptyCell;compact;gridRenderer;calculateLayout$=new Ht;resize$=new Ht;destroy$=new Ht;constructor(t,i,s,o){this.renderer=i,this.cdRef=s,this.zone=o,this.el=t.nativeElement,this.$options=JSON.parse(JSON.stringify(Oi)),this.mobile=!1,this.curWidth=0,this.curHeight=0,this.grid=[],this.curColWidth=0,this.curRowHeight=0,this.dragInProgress=!1,this.emptyCell=new ye(this),this.compact=new Ce(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,a=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+a}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,a=i.layerIndex===void 0?o:i.layerIndex;return r===a}ngOnInit(){this.options.initCallback&&this.options.initCallback(this),this.calculateLayout$.pipe(Se(0),me(this.destroy$)).subscribe(()=>this.calculateLayout()),this.resize$.pipe(Pe(()=>ke(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=W.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,a=this.el.scrollHeight,C=t<i&&a>r&&a-r<i-t,u=o<r&&s>i&&s-i<r-o;return C?!1:!u}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===g.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,a=t.maxItemCols===void 0?this.$options.maxItemCols:t.maxItemCols,C=t.minItemCols===void 0?this.$options.minItemCols:t.minItemCols,u=t.maxItemRows===void 0?this.$options.maxItemRows:t.maxItemRows,$=t.minItemRows===void 0?this.$options.minItemRows:t.minItemRows,y=t.cols<=a&&t.cols>=C,I=t.rows<=u&&t.rows>=$,J=!0;if(i){let yt=t.itemAspectRatio||this.$options.itemAspectRatio;yt&&(J=t.cols/t.rows===yt)}let ft=t.minItemArea===void 0?this.$options.minItemArea:t.minItemArea,Ct=t.maxItemArea===void 0?this.$options.maxItemArea:t.maxItemArea,Z=t.cols*t.rows,at=ft<=Z,vt=Ct>=Z;return!(s&&o&&r&&J&&y&&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,a=this.$options.maxCols>=this.columns+t.cols;return!(this.rows<=this.columns&&r)&&a?(t.x=this.columns,t.y=0,!0):r?(t.y=this.rows,t.x=0,!0):!1};getFirstPossiblePosition=t=>{let i=Object.assign({},t);return this.getNextPossiblePosition(i),i};getLastPossiblePosition=t=>{let i={y:0,x:0};i=this.grid.reduce((o,r)=>{let a={y:r.$item.y+r.$item.rows-1,x:r.$item.x+r.$item.cols-1};return W.compareItems(o,a)===1?a: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)(U(St),U(Pt),U(Xt),U(pe))};static \u0275cmp=T({type:n,selectors:[["gridster"]],viewQuery:function(i,s){i&1&&Oe(s.gridsterPreview,fe,5),i&2&&We()},inputs:{options:"options"},features:[nt],ngContentSelectors:mi,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&&(Dt(),Q(0,Mi,1,1,"div",0,ge),Q(2,$i,1,1,"div",1,ge),bt(4),m(5,"gridster-preview",2)),i&2&&(K(s.gridColumns),d(2),K(s.gridRows),d(3),p("gridRenderer",s.gridRenderer))},dependencies:[Xe,fe],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})(),ie=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((u,$)=>s?$.$item.y-u.$item.y||$.$item.x-u.$item.x:u.$item.y-$.$item.y||u.$item.x-$.$item.x);let o=0,r,a=!0,C=[];for(;o<i.length;o++){if(r=i[o],r===this.gridsterItem)continue;if(!r.canBeDragged()){a=!1;break}let u=this.pushedItemsTemp.indexOf(r);if(u>-1&&this.pushedItemsTempPath[u].length>10){a=!1;break}if(this.tryPattern[t][0].call(this,r,e))this.pushedItemsOrder.push(r),C.push(r);else if(this.tryPattern[t][1].call(this,r,e))this.pushedItemsOrder.push(r),C.push(r);else if(this.tryPattern[t][2].call(this,r,e))this.pushedItemsOrder.push(r),C.push(r);else if(this.tryPattern[t][3].call(this,r,e))this.pushedItemsOrder.push(r),C.push(r);else{a=!1;break}}if(!a&&(o=this.pushedItemsOrder.lastIndexOf(C[0]),o>-1)){let u=this.pushedItemsOrder.length-1;for(;u>=o;u--)r=this.pushedItemsOrder[u],this.pushedItemsOrder.pop(),this.removeFromTempPushed(r),this.removeFromPushedItem(r)}return this.iteration++,a}trySouth(e,t){return this.gridster.$options.pushDirections.south?(this.addToTempPushed(e),e.$item.y=t.$item.y+t.$item.rows,this.push(e,this.fromNorth)?(e.setSize(),this.addToPushed(e),!0):(this.removeFromTempPushed(e),!1)):!1}tryNorth(e,t){return this.gridster.$options.pushDirections.north?(this.addToTempPushed(e),e.$item.y=t.$item.y-e.$item.rows,this.push(e,this.fromSouth)?(e.setSize(),this.addToPushed(e),!0):(this.removeFromTempPushed(e),!1)):!1}tryEast(e,t){return this.gridster.$options.pushDirections.east?(this.addToTempPushed(e),e.$item.x=t.$item.x+t.$item.cols,this.push(e,this.fromWest)?(e.setSize(),this.addToPushed(e),!0):(this.removeFromTempPushed(e),!1)):!1}tryWest(e,t){return this.gridster.$options.pushDirections.west?(this.addToTempPushed(e),e.$item.x=t.$item.x-e.$item.cols,this.push(e,this.fromEast)?(e.setSize(),this.addToPushed(e),!0):(this.removeFromTempPushed(e),!1)):!1}addToTempPushed(e){let t=this.pushedItemsTemp.indexOf(e);t===-1&&(t=this.pushedItemsTemp.push(e)-1,this.pushedItemsTempPath[t]=[]),this.pushedItemsTempPath[t].push({x:e.$item.x,y:e.$item.y})}removeFromTempPushed(e){let t=this.pushedItemsTemp.indexOf(e),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,a,C=!1;for(;s>-1;s--)o=i[s],r=e.$item.x,a=e.$item.y,e.$item.x=o.x,e.$item.y=o.y,this.gridster.findItemWithItem(e.$item)?(e.$item.x=r,e.$item.y=a):(e.setSize(),i.splice(s+1,i.length-s-1),C=!0);return i.length<2&&this.removeFromPushed(t),C}},Ft,Wt,pi=50,q,Ot,lt,Nt,Lt,Bt,Vt;function gi(n,e,t,i,s,o,r,a,C,u){Ft=n.$options.scrollSensitivity,Wt=n.$options.scrollSpeed,q=n.el,Ot=C,lt=u;let $=q.offsetWidth,y=q.offsetHeight,I=q.scrollLeft,J=q.scrollTop,ft=t-J,Ct=y+J-t-s,{clientX:Z,clientY:at}=o;if(!n.$options.disableScrollVertical)if(r.clientY<at&&Ct<Ft){if(wi(),Ot&<&&!lt.south||Vt)return;Vt=di(1,a,r)}else if(r.clientY>at&&J>0&&ft<Ft){if(yi(),Ot&<&&!lt.north||Bt)return;Bt=di(-1,a,r)}else r.clientY!==at&&Me();let vt=I+$-e-i,yt=e-I;if(!n.$options.disableScrollHorizontal){let wt=n.$options.dirType===E.RTL,$e=r.clientX<Z,Te=r.clientX>Z,Ii=wt?Te:$e,bi=wt?$e:Te;if(Ii&&vt<=Ft){if(Ci(),Ot&<&&!lt.east||Nt)return;Nt=ci(1,a,r,wt)}else if(bi&&I>0&&yt<Ft){if(fi(),Ot&<&&!lt.west||Lt)return;Lt=ci(-1,a,r,wt)}else r.clientX!==Z&&ze()}}function di(n,e,t){let i=t.clientY;return window.setInterval(()=>{(!q||n===-1&&q.scrollTop-Wt<0)&&Me(),q.scrollTop+=n*Wt,i+=n*Wt,e({clientX:t.clientX,clientY:i})},pi)}function ci(n,e,t,i){let s=t.clientX;return window.setInterval(()=>{if(!q){ze();return}let o=n*Wt,r=i?-o:o;q.scrollBy({left:r,behavior:"auto"}),s+=r,e({clientX:s,clientY:t.clientY})},pi)}function ui(){ze(),Me(),q=null}function ze(){fi(),Ci()}function Me(){wi(),yi()}function fi(){Nt&&(clearInterval(Nt),Nt=0)}function Ci(){Lt&&(clearInterval(Lt),Lt=0)}function yi(){Vt&&(clearInterval(Vt),Vt=0)}function wi(){Bt&&(clearInterval(Bt),Bt=0)}var xe=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,a=e.$item.y,C=r-s,u=a-o;i.$item.x=e.item.x-C,i.$item.y=e.item.y-u,e.$item.x=i.item.x+C,e.$item.y=i.item.y+u,this.gridster.checkCollision(i.$item)||this.gridster.checkCollision(e.$item)?(e.$item.x=r,e.$item.y=a,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()))}}},Wi="gridster-item-resizable-handler",H=(function(n){return n.UP="UP",n.DOWN="DOWN",n.LEFT="LEFT",n.RIGHT="RIGHT",n})(H||{}),ve=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 ie(this.gridsterItem),this.swap=new xe(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(),W.checkTouchEvent(e);let t=this.getDirections(e);this.gridster.options.enableBoundaryControl&&(t.includes(H.UP)&&this.gridsterItem.el.getBoundingClientRect().top<this.gridster.el.getBoundingClientRect().top+(this.outerMarginTop??this.margin)&&(t=t.filter(i=>i!=H.UP),e=new MouseEvent(e.type,{clientX:e.clientX,clientY:this.lastMouse.clientY})),t.includes(H.LEFT)&&this.gridsterItem.el.getBoundingClientRect().left<this.gridster.el.getBoundingClientRect().left+(this.outerMarginLeft??this.margin)&&(t=t.filter(i=>i!=H.LEFT),e=new MouseEvent(e.type,{clientX:this.lastMouse.clientX,clientY:e.clientY})),t.includes(H.RIGHT)&&this.gridsterItem.el.getBoundingClientRect().right>this.gridster.el.getBoundingClientRect().right-(this.outerMarginRight??this.margin)&&(t=t.filter(i=>i!=H.RIGHT),e=new MouseEvent(e.type,{clientX:this.lastMouse.clientX,clientY:e.clientY})),t.includes(H.DOWN)&&this.gridsterItem.el.getBoundingClientRect().bottom>this.gridster.el.getBoundingClientRect().bottom-(this.outerMarginBottom??this.margin)&&(t=t.filter(i=>i!=H.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(Wi)||W.checkContentClassForEvent(this.gridster,e))return;if(W.checkTouchEvent(e),!this.gridster.$options.draggable.delayStart){this.dragStart(e);return}let i=setTimeout(()=>{this.dragStart(e),y()},this.gridster.$options.draggable.delayStart),s=this.gridsterItem.renderer.listen("document","mouseup",y),o=this.gridsterItem.renderer.listen("document","mouseleave",y),r=this.gridsterItem.renderer.listen("window","blur",y),a=this.gridsterItem.renderer.listen("document","touchmove",$),C=this.gridsterItem.renderer.listen("document","touchend",y),u=this.gridsterItem.renderer.listen("document","touchcancel",y);function $(I){W.checkTouchEvent(I),(Math.abs(I.clientX-e.clientX)>9||Math.abs(I.clientY-e.clientY)>9)&&y()}function y(){clearTimeout(i),r(),s(),o(),a(),C(),u()}};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(H.UP),this.lastMouse.clientY<e.clientY&&t.push(H.DOWN),this.lastMouse.clientX<e.clientX&&t.push(H.RIGHT),this.lastMouse.clientX>e.clientX&&t.push(H.LEFT),t}},Ie=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,a,C,u;for(;s>-1;s--)o=i[s],r=e.$item.x,a=e.$item.y,C=e.$item.cols,u=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=a,e.$item.cols=C,e.$item.rows=u):(e.setSize(),i.splice(s+1,i.length-1-s));return i.length<2?(this.removeFromPushed(t),!0):!1}},be=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 ie(this.gridsterItem),this.pushResize=new Ie(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(),W.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(W.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:a,cancelTouchCancel:C}=this.zone.runOutsideAngular(()=>{let y=this.gridsterItem.renderer.listen("document","mouseup",$),I=this.gridsterItem.renderer.listen("document","mouseleave",$),J=this.gridsterItem.renderer.listen("window","blur",$),ft=this.gridsterItem.renderer.listen("document","touchmove",u),Ct=this.gridsterItem.renderer.listen("document","touchend",$),Z=this.gridsterItem.renderer.listen("document","touchcancel",$);return{cancelMouse:y,cancelMouseLeave:I,cancelOnBlur:J,cancelTouchMove:ft,cancelTouchEnd:Ct,cancelTouchCancel:Z}});function u(y){W.checkTouchEvent(y),(Math.abs(y.clientX-e.clientX)>9||Math.abs(y.clientY-e.clientY)>9)&&$()}function $(){clearTimeout(t),o(),i(),s(),r(),a(),C()}}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,a=this.gridsterItem.$item.maxItemCols||this.gridster.$options.maxItemCols||0,C=this.gridsterItem.$item.maxItemRows||this.gridster.$options.maxItemRows||0,u=a?this.gridster.positionXToPixels(a)-this.margin:Number.MAX_VALUE,$=C?this.gridster.positionYToPixels(C)-this.margin:Number.MAX_VALUE,y=this.width,I=this.height;if(this.resizeEventScrollType.north||this.resizeEventScrollType.south?(y=this.height*t,y<o?(y=o,I=o/t):y>u&&(y=u,I=u/t)):(this.resizeEventScrollType.east||this.resizeEventScrollType.west)&&(I=this.width/t,I<r?(I=r,y=r*t):I>$&&(I=$,y=$*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),yt=at.width-2*vt,wt=at.height-2*vt;this.resizeEventScrollType.west?this.right-y<0&&(y=this.right,I=y/t):this.resizeEventScrollType.east&&this.left+y>yt&&(y=yt-this.left,I=y/t),this.resizeEventScrollType.north?this.bottom-I<0&&(I=this.bottom,y=I*t):this.resizeEventScrollType.south&&this.top+I>wt&&(I=wt-this.top,y=I*t)}this.width=y,this.height=I,this.resizeEventScrollType.west&&(this.left=this.right-this.width),this.resizeEventScrollType.north&&(this.top=this.bottom-this.height);let J=this.gridster.options.pushItems?0:this.margin,ft=this.gridster.options.pushItems?0:this.margin,Ct=this.gridster.options.pushItems?this.margin:0,Z=this.gridster.options.pushItems?this.margin:0;this.gridsterItem.$item.x=this.gridster.pixelsToPositionX(this.left+J,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+Z,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 ot;itemChange=new ot;itemResize=new ot;$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 ve(this,i,this.zone),this.resize=new be(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=W.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:P(P({},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)(U(St),U(_e),U(Pt),U(pe))};static \u0275cmp=T({type:n,selectors:[["gridster-item"]],hostVars:2,hostBindings:function(i,s){i&2&&Ne("z-index",s.zIndex)},inputs:{item:"item"},outputs:{itemInit:"itemInit",itemChange:"itemChange",itemResize:"itemResize"},features:[nt],ngContentSelectors:mi,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&&(Dt(),bt(0),b(1,Ti,1,0,"div",0),b(2,ki,1,0,"div",1),b(3,Si,1,0,"div",2),b(4,Pi,1,0,"div",3),b(5,Di,1,0,"div",4),b(6,Ei,1,0,"div",5),b(7,Ri,1,0,"div",6),b(8,Fi,1,0,"div",7)),i&2&&(d(),_(s.resize.resizableHandles!=null&&s.resize.resizableHandles.s&&s.resize.resizeEnabled?1:-1),d(),_(s.resize.resizableHandles!=null&&s.resize.resizableHandles.e&&s.resize.resizeEnabled?2:-1),d(),_(s.resize.resizableHandles!=null&&s.resize.resizableHandles.n&&s.resize.resizeEnabled?3:-1),d(),_(s.resize.resizableHandles!=null&&s.resize.resizableHandles.w&&s.resize.resizeEnabled?4:-1),d(),_(s.resize.resizableHandles!=null&&s.resize.resizableHandles.se&&s.resize.resizeEnabled?5:-1),d(),_(s.resize.resizableHandles!=null&&s.resize.resizableHandles.ne&&s.resize.resizeEnabled?6:-1),d(),_(s.resize.resizableHandles!=null&&s.resize.resizableHandles.sw&&s.resize.resizeEnabled?7:-1),d(),_(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
|
-
`],encapsulation:2})}return n})();var Ni=["*",[["actions"]]],Li=["*","actions"];function Bi(n,e){n&1&&(V(0,"div",3),bt(1,1),N())}var st=class n{item;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({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&&(Dt(Ni),V(0,"div",0)(1,"div",1)(2,"div",2),f(3),N(),b(4,Bi,2,0,"div",3),N(),V(5,"div",4),bt(6),N()()),t&2&&(d(3),A(i.item.title),d(),_(i.item.configurable?4:-1))},dependencies:[D,O,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 ne=class n{item;port="";static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({type:n,selectors:[["app-kill-port-widget"]],inputs:{item:"item"},decls:11,vars:2,consts:[[3,"item"],[1,"logo"],[1,"icon-wrapper"],["nzType","thunderbolt","nzTheme","outline"],["nz-input","","placeholder","\u8F93\u5165\u4E00\u4E2A\u7F51\u7EDC\u7AEF\u53E3","name","port",3,"ngModelChange","ngModel"],["nz-button","","nzType","primary"]],template:function(t,i){t&1&&(l(0,"app-widget-base",0)(1,"div",1)(2,"div",2),m(3,"nz-icon",3),h(),l(4,"h3"),f(5,"\u51C6\u5907\u597D\u7EC8\u6B62"),h()(),l(6,"nz-space")(7,"input",4),ct("ngModelChange",function(o){return dt(i.port,o)||(i.port=o),o}),h(),l(8,"button",5),m(9,"nz-icon",3),f(10," \u7EC8\u6B62 "),h()()()),t&2&&(p("item",i.item),d(7),ht("ngModel",i.port))},dependencies:[D,gt,zt,mt,pt,st,F,L,$t,Mt,Qe,Ue,O,Y,B,X],styles:[".logo[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:16px 0}.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 oe=class n{api=k(Qt);preview(e,t){let i=new Ge().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=It({token:n,factory:n.\u0275fac,providedIn:"root"})};var Hi=(n,e)=>e.link;function Ai(n,e){if(n&1){let t=M();l(0,"div",6)(1,"div",10),f(2,"\u672A\u914D\u7F6E RSS \u6E90"),h(),l(3,"button",11),z("click",function(){w(t);let s=c();return x(s.openConfig())}),f(4,"\u53BB\u914D\u7F6E"),h()()}}function Xi(n,e){if(n&1){let t=M();l(0,"div",12)(1,"p"),f(2),h(),l(3,"button",2),z("click",function(){w(t);let s=c(2);return x(s.reload(!0))}),f(4,"\u91CD\u8BD5"),h()()}if(n&2){let t=c(2);d(2),A(t.errorMsg())}}function Yi(n,e){if(n&1&&(l(0,"span",17),f(1),Le(2,"date"),h()),n&2){let t=c().$implicit;d(),A(Be(2,1,t.pubDate,"yyyy-MM-dd HH:mm"))}}function Gi(n,e){if(n&1&&(l(0,"span",18),f(1),h()),n&2){let t=c().$implicit;d(),A(t.author)}}function ji(n,e){if(n&1&&(l(0,"a",14)(1,"div",15),f(2),h(),l(3,"div",16),b(4,Yi,3,4,"span",17),b(5,Gi,2,1,"span",18),h()()),n&2){let t=e.$implicit;p("href",t.link,Re),d(2),A(t.title),d(2),_(t.pubDate?4:-1),d(),_(t.author?5:-1)}}function Ui(n,e){if(n&1&&(l(0,"div",13),Q(1,ji,6,4,"a",14,Hi),h()),n&2){let t=c(2);d(),K(t.feedItems())}}function Qi(n,e){if(n&1&&b(0,Xi,5,1,"div",12)(1,Ui,3,0,"div",13),n&2){let t=c();_(t.errorMsg()?0:1)}}function Ki(n,e){if(n&1){let t=M();tt(0),l(1,"div",19)(2,"label"),f(3,"RSS\u6E90\u5730\u5740"),h(),l(4,"nz-input-wrapper")(5,"input",20),ct("ngModelChange",function(s){w(t);let o=c();return dt(o.rssUrl,s)||(o.rssUrl=s),x(s)}),h(),m(6,"nz-icon",21),h()(),et()}if(n&2){let t=c();d(5),ht("ngModel",t.rssUrl)}}function qi(n,e){if(n&1){let t=M();tt(0),l(1,"button",22),z("click",function(){w(t);let s=c();return x(s.save())}),f(2,"\u4FDD\u5B58"),h(),et()}if(n&2){let t=c();d(),p("disabled",!t.rssUrl().trim())}}var re=class n{item;layout=k(it);rss=k(oe);cdr=k(Xt);curConfig=S(null);rssUrl=S("");isModalVisible=S(!1);loading=S(!1);feedTitle=S("");feedItems=S([]);errorMsg=S("");hasConfig=R(()=>!!this.curConfig()?.rssUrl?.trim());ngOnChanges(e){if(e.item&&e.item.currentValue){let t=this.item?.config;this.curConfig.set(t?P({},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(r?.error?.detail||r?.message||"\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=j(P({},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=T({type:n,selectors:[["app-news-feed-widget"]],inputs:{item:"item"},features:[nt],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),tt(1,1),l(2,"button",2),z("click",function(){return i.reload()}),m(3,"nz-icon",3),h(),l(4,"button",2),z("click",function(){return i.openConfig()}),m(5,"nz-icon",4),h(),et(),l(6,"div",5),b(7,Ai,5,0,"div",6)(8,Qi,2,1),h()(),l(9,"nz-modal",7),ct("nzVisibleChange",function(o){return dt(i.isModalVisible,o)||(i.isModalVisible=o),o}),z("nzOnCancel",function(){return i.isModalVisible.set(!1)}),At(10,Ki,7,1,"ng-container",8)(11,qi,3,1,"ng-container",9),h()),t&2&&(p("item",i.item),d(3),p("nzType",i.loading()?"loading":"reload"),d(4),_(i.hasConfig()?8:7),d(2),ht("nzVisible",i.isModalVisible),p("nzMaskClosable",!1))},dependencies:[D,gt,zt,mt,pt,$t,Mt,Gt,Yt,O,Y,B,X,st,Zt,Jt,qt,Kt,F,L,Ye],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=M();m(0,"nz-icon",9),l(1,"button",10),z("click",function(){w(t);let s=c(2);return x(s.openConfig())}),f(2,"\u914D\u7F6E\u90E8\u4EF6"),h()}}function ts(n,e){n&1&&m(0,"nz-badge",15)}function es(n,e){n&1&&m(0,"nz-badge",16)}function is(n,e){n&1&&m(0,"nz-badge",17)}function ss(n,e){if(n&1){let t=M();l(0,"div",11)(1,"div",12)(2,"div",13),m(3,"nz-icon",14),b(4,ts,1,0,"nz-badge",15)(5,es,1,0,"nz-badge",16)(6,is,1,0,"nz-badge",17),h(),l(7,"div",18)(8,"div",19),f(9),h(),l(10,"div",20),f(11),h()()()(),l(12,"div",21)(13,"app-task-actions",22),z("toggle",function(){w(t);let s=c(2);return x(s.toggleTask())}),h(),l(14,"button",23),z("click",function(){w(t);let s=c(2);return x(s.goToTask())}),m(15,"nz-icon",24),f(16," \u524D\u5F80\u4EFB\u52A1\u9875 "),h()()}if(n&2){let t,i,s,o,r=c(2);d(),p("nz-tooltip",((t=r.curConfig())==null?null:t.description)??""),d(3),_(r.curRuntime().status==="running"?4:r.curRuntime().status==="stopping"?5:6),d(4),p("title",(i=r.curConfig())==null?null:i.taskName),d(),A((s=r.curConfig())==null?null:s.taskName),d(2),_t(" ",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"," "),d(2),p("isRunning",r.isRunning())("isStopping",r.isStopping())("isStopped",r.isStopped())}}function ns(n,e){if(n&1&&(l(0,"div",8),b(1,Zi,3,0)(2,ss,17,8),h()),n&2){let t=c();xt("no-config",t.curConfig()===null),d(),_(t.curConfig()===null?1:2)}}function os(n,e){if(n&1&&m(0,"nz-option",27),n&2){let t=e.$implicit;p("nzLabel",t.label)("nzValue",t.value)}}function rs(n,e){if(n&1){let t=M();tt(0),l(1,"div",25)(2,"label"),f(3,"\u9009\u62E9\u4E00\u9879\u4EFB\u52A1"),h(),l(4,"nz-select",26),ct("ngModelChange",function(s){w(t);let o=c();return dt(o.selectedTaskId,s)||(o.selectedTaskId=s),x(s)}),Q(5,os,1,2,"nz-option",27,Ji),h()(),et()}if(n&2){let t=c();d(4),ht("ngModel",t.selectedTaskId),p("nzLoading",t.loading())("nzDisabled",t.loading()),d(),K(t.taskOptions())}}function ls(n,e){if(n&1){let t=M();tt(0),l(1,"button",28),z("click",function(){w(t);let s=c();return x(s.save())}),f(2,"\u4FDD\u5B58"),h(),et()}if(n&2){let t=c();d(),p("disabled",!t.selectedTaskId)}}var le=class n{item;taskState=k(ii);layout=k(it);router=k(je);isModalVisible=S(!1);loading=S(!1);curConfig=S(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");isStopped=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?P({},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(a=>a.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.isStopped()&&this.taskState.startSelected(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=T({type:n,selectors:[["app-quick-task-widget"]],inputs:{item:"item"},features:[nt],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","isRunning","isStopping","isStopped"],["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),tt(1,1),l(2,"button",2),z("click",function(){return i.openConfig()}),m(3,"nz-icon",3),h(),et(),b(4,ns,3,3,"div",4),h(),l(5,"nz-modal",5),ct("nzVisibleChange",function(o){return dt(i.isModalVisible,o)||(i.isModalVisible=o),o}),z("nzOnCancel",function(){return i.isModalVisible.set(!1)}),At(6,rs,7,3,"ng-container",6)(7,ls,3,1,"ng-container",7),h()),t&2&&(p("item",i.item),d(4),_(i.item.configurable?4:-1),d(),ht("nzVisible",i.isModalVisible),p("nzMaskClosable",!1))},dependencies:[D,gt,mt,pt,st,O,Y,B,X,F,L,Zt,Jt,qt,Kt,oi,si,ni,li,ri,Ut,jt,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 ae=class n{item;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({type:n,selectors:[["app-welcome-widget"]],inputs:{item:"item"},decls:20,vars:1,consts:[[3,"item"],[1,"logo"],["nzType","proj:angular","nzTheme","outline"],[1,"item"],[1,"icon-wrapper"],["nzType","appstore","nzTheme","outline"],["nzType","arrow-left","nzTheme","outline"],["nzType","home","nzTheme","outline"]],template:function(t,i){t&1&&(l(0,"app-widget-base",0)(1,"div",1),m(2,"nz-icon",2),h(),l(3,"h2"),f(4,"\u6B22\u8FCE\u6765\u5230\u65B0\u9879\u76EE\uFF01"),h(),l(5,"div",3)(6,"div",4),m(7,"nz-icon",5),h(),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"),h()(),l(10,"div",3)(11,"div",4),m(12,"nz-icon",6),h(),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"),h()(),l(15,"div",3)(16,"div",4),m(17,"nz-icon",7),h(),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"),h()()()),t&2&&p("item",i.item)},dependencies:[D,F,L,O,B,st],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}.item[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;padding:24px 16px}.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&&m(0,"app-welcome-widget",0),n&2){let t=c(2);p("item",t.item)}}function hs(n,e){if(n&1&&m(0,"app-quick-task-widget",0),n&2){let t=c(2);p("item",t.item)}}function ds(n,e){if(n&1&&m(0,"app-kill-port-widget",0),n&2){let t=c(2);p("item",t.item)}}function cs(n,e){if(n&1&&m(0,"app-news-feed-widget",0),n&2){let t=c(2);p("item",t.item)}}function ms(n,e){if(n&1&&b(0,as,1,1,"app-welcome-widget",0)(1,hs,1,1,"app-quick-task-widget",0)(2,ds,1,1,"app-kill-port-widget",0)(3,cs,1,1,"app-news-feed-widget",0),n&2){let t,i=c();_((t=i.item.key)==="welcome"?0:t==="quickTasks"?1:t==="killPort"?2:t==="newsFeed"?3:-1)}}var he=class n{item;editMode=!1;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({type:n,selectors:[["app-widget-host"]],inputs:{item:"item",editMode:"editMode"},decls:1,vars:1,consts:[[3,"item"]],template:function(t,i){t&1&&b(0,ms,4,1),t&2&&_(i.item?0:-1)},dependencies:[D,ae,le,ne,re],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=M();l(0,"div",5)(1,"button",6),m(2,"i",7),f(3),h()(),l(4,"button",8),z("click",function(){w(t);let s=c().$implicit,o=c();return x(o.remove.emit(s.id))}),m(5,"nz-icon",9),h()}if(n&2){let t=c().$implicit;d(2),p("nzType",t.icon||"appstore"),d(),_t(" ",t.title," ")}}function us(n,e){if(n&1&&(l(0,"gridster-item",1)(1,"div",2),b(2,gs,6,2),l(3,"div",3),m(4,"app-widget-host",4),h()()()),n&2){let t=e.$implicit,i=c();p("item",t),d(),xt("edit-mode",i.editMode),d(),_(i.editMode?2:-1),d(2),p("item",t)("editMode",i.editMode)}}var de=class n{editMode=!1;items=[];itemsChange=new ot;remove=new ot;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:g.Fixed,fixedColWidth:90,fixedRowHeight:90,margin:10,outerMargin:!0,compactType:v.None,pushItems:!0,displayGrid:se.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=j(P({},this.options),{draggable:j(P({},this.options.draggable),{enabled:this.editMode}),resizable:j(P({},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?P(P({},t),i):t});this.patch.clear(),this.itemsChange.emit(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({type:n,selectors:[["app-dashboard-canvas"]],inputs:{editMode:"editMode",items:"items"},outputs:{itemsChange:"itemsChange",remove:"remove"},features:[nt],decls:3,vars:1,consts:[[3,"options"],[3,"item"],[1,"card"],[1,"card-body"],[3,"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),Q(1,us,5,6,"gridster-item",1,ps),h()),t&2&&(p("options",i.options),d(),K(i.items))},dependencies:[D,O,Y,B,X,F,L,_e,xi,he,jt],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{projectState=k(ei);layout=k(it);envInjector=k(De);projectId=R(()=>this.projectState.currentProjectId()||"");editMode=S(!1);items=R(()=>this.layout.items());constructor(){He(()=>{let e=this.projectId();e&&(Ve(()=>this.layout.load(e)),Ee(this.envInjector,()=>{Fe(()=>{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=T({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","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,"page-layout",0),tt(1,1),l(2,"button",2),z("click",function(){return i.toggleEdit()}),m(3,"nz-icon",3),f(4),h(),et(),l(5,"app-dashboard-canvas",4),z("itemsChange",function(o){return i.onItemsChange(o)})("remove",function(o){return i.layout.remove(o)}),h()(),l(6,"div",5)(7,"div",6)(8,"div",7),f(9,"\u6DFB\u52A0\u90E8\u4EF6"),h(),l(10,"button",8),z("click",function(){return i.editMode.set(!1)}),m(11,"nz-icon",9),h()(),l(12,"div",10)(13,"app-add-widget-drawer",11),z("add",function(o){return i.layout.add(o)}),h()()()),t&2&&(p("title","\u9879\u76EE\u4EEA\u8868\u76D8")("isFullscreen",!0),d(3),p("nzType",i.editMode()?"check":"edit"),d(),_t(" ",i.editMode()?"\u5B8C\u6210":"\u81EA\u5B9A\u4E49"," "),d(),p("editMode",i.editMode())("items",i.items()),d(),xt("open",i.editMode()))},dependencies:[D,O,Y,B,X,F,L,Ke,qe,Je,de,ee],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};
|
|
4
|
+
`],encapsulation:2})}return n})();var Ni=["*",[["actions"]]],Li=["*","actions"];function Bi(n,e){n&1&&(V(0,"div",3),bt(1,1),N())}var st=class n{item;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({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&&(Dt(Ni),V(0,"div",0)(1,"div",1)(2,"div",2),f(3),N(),b(4,Bi,2,0,"div",3),N(),V(5,"div",4),bt(6),N()()),t&2&&(d(3),A(i.item.title),d(),_(i.item.configurable?4:-1))},dependencies:[D,O,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 ne=class n{item;port="";static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({type:n,selectors:[["app-kill-port-widget"]],inputs:{item:"item"},decls:11,vars:2,consts:[[3,"item"],[1,"logo"],[1,"icon-wrapper"],["nzType","thunderbolt","nzTheme","outline"],["nz-input","","placeholder","\u8F93\u5165\u4E00\u4E2A\u7F51\u7EDC\u7AEF\u53E3","name","port",3,"ngModelChange","ngModel"],["nz-button","","nzType","primary"]],template:function(t,i){t&1&&(l(0,"app-widget-base",0)(1,"div",1)(2,"div",2),m(3,"nz-icon",3),h(),l(4,"h3"),f(5,"\u51C6\u5907\u597D\u7EC8\u6B62"),h()(),l(6,"nz-space")(7,"input",4),ct("ngModelChange",function(o){return dt(i.port,o)||(i.port=o),o}),h(),l(8,"button",5),m(9,"nz-icon",3),f(10," \u7EC8\u6B62 "),h()()()),t&2&&(p("item",i.item),d(7),ht("ngModel",i.port))},dependencies:[D,gt,zt,mt,pt,st,F,L,$t,Mt,Qe,Ue,O,Y,B,X],styles:[".logo[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:16px 0}.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 oe=class n{api=k(Qt);preview(e,t){let i=new Ge().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=It({token:n,factory:n.\u0275fac,providedIn:"root"})};var Hi=(n,e)=>e.link;function Ai(n,e){if(n&1){let t=M();l(0,"div",6)(1,"div",10),f(2,"\u672A\u914D\u7F6E RSS \u6E90"),h(),l(3,"button",11),z("click",function(){w(t);let s=c();return x(s.openConfig())}),f(4,"\u53BB\u914D\u7F6E"),h()()}}function Xi(n,e){if(n&1){let t=M();l(0,"div",12)(1,"p"),f(2),h(),l(3,"button",2),z("click",function(){w(t);let s=c(2);return x(s.reload(!0))}),f(4,"\u91CD\u8BD5"),h()()}if(n&2){let t=c(2);d(2),A(t.errorMsg())}}function Yi(n,e){if(n&1&&(l(0,"span",17),f(1),Le(2,"date"),h()),n&2){let t=c().$implicit;d(),A(Be(2,1,t.pubDate,"yyyy-MM-dd HH:mm"))}}function Gi(n,e){if(n&1&&(l(0,"span",18),f(1),h()),n&2){let t=c().$implicit;d(),A(t.author)}}function ji(n,e){if(n&1&&(l(0,"a",14)(1,"div",15),f(2),h(),l(3,"div",16),b(4,Yi,3,4,"span",17),b(5,Gi,2,1,"span",18),h()()),n&2){let t=e.$implicit;p("href",t.link,Re),d(2),A(t.title),d(2),_(t.pubDate?4:-1),d(),_(t.author?5:-1)}}function Ui(n,e){if(n&1&&(l(0,"div",13),Q(1,ji,6,4,"a",14,Hi),h()),n&2){let t=c(2);d(),K(t.feedItems())}}function Qi(n,e){if(n&1&&b(0,Xi,5,1,"div",12)(1,Ui,3,0,"div",13),n&2){let t=c();_(t.errorMsg()?0:1)}}function Ki(n,e){if(n&1){let t=M();tt(0),l(1,"div",19)(2,"label"),f(3,"RSS\u6E90\u5730\u5740"),h(),l(4,"nz-input-wrapper")(5,"input",20),ct("ngModelChange",function(s){w(t);let o=c();return dt(o.rssUrl,s)||(o.rssUrl=s),x(s)}),h(),m(6,"nz-icon",21),h()(),et()}if(n&2){let t=c();d(5),ht("ngModel",t.rssUrl)}}function qi(n,e){if(n&1){let t=M();tt(0),l(1,"button",22),z("click",function(){w(t);let s=c();return x(s.save())}),f(2,"\u4FDD\u5B58"),h(),et()}if(n&2){let t=c();d(),p("disabled",!t.rssUrl().trim())}}var re=class n{item;layout=k(it);rss=k(oe);cdr=k(Xt);curConfig=S(null);rssUrl=S("");isModalVisible=S(!1);loading=S(!1);feedTitle=S("");feedItems=S([]);errorMsg=S("");hasConfig=R(()=>!!this.curConfig()?.rssUrl?.trim());ngOnChanges(e){if(e.item&&e.item.currentValue){let t=this.item?.config;this.curConfig.set(t?P({},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(r?.error?.detail||r?.message||"\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=j(P({},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=T({type:n,selectors:[["app-news-feed-widget"]],inputs:{item:"item"},features:[nt],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),tt(1,1),l(2,"button",2),z("click",function(){return i.reload()}),m(3,"nz-icon",3),h(),l(4,"button",2),z("click",function(){return i.openConfig()}),m(5,"nz-icon",4),h(),et(),l(6,"div",5),b(7,Ai,5,0,"div",6)(8,Qi,2,1),h()(),l(9,"nz-modal",7),ct("nzVisibleChange",function(o){return dt(i.isModalVisible,o)||(i.isModalVisible=o),o}),z("nzOnCancel",function(){return i.isModalVisible.set(!1)}),At(10,Ki,7,1,"ng-container",8)(11,qi,3,1,"ng-container",9),h()),t&2&&(p("item",i.item),d(3),p("nzType",i.loading()?"loading":"reload"),d(4),_(i.hasConfig()?8:7),d(2),ht("nzVisible",i.isModalVisible),p("nzMaskClosable",!1))},dependencies:[D,gt,zt,mt,pt,$t,Mt,Gt,Yt,O,Y,B,X,st,Zt,Jt,qt,Kt,F,L,Ye],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=M();m(0,"nz-icon",9),l(1,"button",10),z("click",function(){w(t);let s=c(2);return x(s.openConfig())}),f(2,"\u914D\u7F6E\u90E8\u4EF6"),h()}}function ts(n,e){n&1&&m(0,"nz-badge",15)}function es(n,e){n&1&&m(0,"nz-badge",16)}function is(n,e){n&1&&m(0,"nz-badge",17)}function ss(n,e){if(n&1){let t=M();l(0,"div",11)(1,"div",12)(2,"div",13),m(3,"nz-icon",14),b(4,ts,1,0,"nz-badge",15)(5,es,1,0,"nz-badge",16)(6,is,1,0,"nz-badge",17),h(),l(7,"div",18)(8,"div",19),f(9),h(),l(10,"div",20),f(11),h()()()(),l(12,"div",21)(13,"app-task-actions",22),z("toggle",function(){w(t);let s=c(2);return x(s.toggleTask())}),h(),l(14,"button",23),z("click",function(){w(t);let s=c(2);return x(s.goToTask())}),m(15,"nz-icon",24),f(16," \u524D\u5F80\u4EFB\u52A1\u9875 "),h()()}if(n&2){let t,i,s,o,r=c(2);d(),p("nz-tooltip",((t=r.curConfig())==null?null:t.description)??""),d(3),_(r.curRuntime().status==="running"?4:r.curRuntime().status==="stopping"?5:6),d(4),p("title",(i=r.curConfig())==null?null:i.taskName),d(),A((s=r.curConfig())==null?null:s.taskName),d(2),_t(" ",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"," "),d(2),p("isRunning",r.isRunning())("isStopping",r.isStopping())("isStopped",r.isStopped())}}function ns(n,e){if(n&1&&(l(0,"div",8),b(1,Zi,3,0)(2,ss,17,8),h()),n&2){let t=c();xt("no-config",t.curConfig()===null),d(),_(t.curConfig()===null?1:2)}}function os(n,e){if(n&1&&m(0,"nz-option",27),n&2){let t=e.$implicit;p("nzLabel",t.label)("nzValue",t.value)}}function rs(n,e){if(n&1){let t=M();tt(0),l(1,"div",25)(2,"label"),f(3,"\u9009\u62E9\u4E00\u9879\u4EFB\u52A1"),h(),l(4,"nz-select",26),ct("ngModelChange",function(s){w(t);let o=c();return dt(o.selectedTaskId,s)||(o.selectedTaskId=s),x(s)}),Q(5,os,1,2,"nz-option",27,Ji),h()(),et()}if(n&2){let t=c();d(4),ht("ngModel",t.selectedTaskId),p("nzLoading",t.loading())("nzDisabled",t.loading()),d(),K(t.taskOptions())}}function ls(n,e){if(n&1){let t=M();tt(0),l(1,"button",28),z("click",function(){w(t);let s=c();return x(s.save())}),f(2,"\u4FDD\u5B58"),h(),et()}if(n&2){let t=c();d(),p("disabled",!t.selectedTaskId)}}var le=class n{item;taskState=k(ii);layout=k(it);router=k(je);isModalVisible=S(!1);loading=S(!1);curConfig=S(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");isStopped=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?P({},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(a=>a.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.isStopped()&&this.taskState.startSelected(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=T({type:n,selectors:[["app-quick-task-widget"]],inputs:{item:"item"},features:[nt],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","isRunning","isStopping","isStopped"],["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),tt(1,1),l(2,"button",2),z("click",function(){return i.openConfig()}),m(3,"nz-icon",3),h(),et(),b(4,ns,3,3,"div",4),h(),l(5,"nz-modal",5),ct("nzVisibleChange",function(o){return dt(i.isModalVisible,o)||(i.isModalVisible=o),o}),z("nzOnCancel",function(){return i.isModalVisible.set(!1)}),At(6,rs,7,3,"ng-container",6)(7,ls,3,1,"ng-container",7),h()),t&2&&(p("item",i.item),d(4),_(i.item.configurable?4:-1),d(),ht("nzVisible",i.isModalVisible),p("nzMaskClosable",!1))},dependencies:[D,gt,mt,pt,st,O,Y,B,X,F,L,Zt,Jt,qt,Kt,oi,si,ni,li,ri,Ut,jt,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 ae=class n{item;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({type:n,selectors:[["app-welcome-widget"]],inputs:{item:"item"},decls:20,vars:1,consts:[[3,"item"],[1,"logo"],["nzType","proj:angular","nzTheme","outline"],[1,"item"],[1,"icon-wrapper"],["nzType","appstore","nzTheme","outline"],["nzType","arrow-left","nzTheme","outline"],["nzType","home","nzTheme","outline"]],template:function(t,i){t&1&&(l(0,"app-widget-base",0)(1,"div",1),m(2,"nz-icon",2),h(),l(3,"h2"),f(4,"\u6B22\u8FCE\u6765\u5230\u65B0\u9879\u76EE\uFF01"),h(),l(5,"div",3)(6,"div",4),m(7,"nz-icon",5),h(),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"),h()(),l(10,"div",3)(11,"div",4),m(12,"nz-icon",6),h(),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"),h()(),l(15,"div",3)(16,"div",4),m(17,"nz-icon",7),h(),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"),h()()()),t&2&&p("item",i.item)},dependencies:[D,F,L,O,B,st],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}.item[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;padding:24px 16px}.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&&m(0,"app-welcome-widget",0),n&2){let t=c(2);p("item",t.item)}}function hs(n,e){if(n&1&&m(0,"app-quick-task-widget",0),n&2){let t=c(2);p("item",t.item)}}function ds(n,e){if(n&1&&m(0,"app-kill-port-widget",0),n&2){let t=c(2);p("item",t.item)}}function cs(n,e){if(n&1&&m(0,"app-news-feed-widget",0),n&2){let t=c(2);p("item",t.item)}}function ms(n,e){if(n&1&&b(0,as,1,1,"app-welcome-widget",0)(1,hs,1,1,"app-quick-task-widget",0)(2,ds,1,1,"app-kill-port-widget",0)(3,cs,1,1,"app-news-feed-widget",0),n&2){let t,i=c();_((t=i.item.key)==="welcome"?0:t==="quickTasks"?1:t==="killPort"?2:t==="newsFeed"?3:-1)}}var he=class n{item;editMode=!1;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({type:n,selectors:[["app-widget-host"]],inputs:{item:"item",editMode:"editMode"},decls:1,vars:1,consts:[[3,"item"]],template:function(t,i){t&1&&b(0,ms,4,1),t&2&&_(i.item?0:-1)},dependencies:[D,ae,le,ne,re],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=M();l(0,"div",5)(1,"button",6),m(2,"i",7),f(3),h()(),l(4,"button",8),z("click",function(){w(t);let s=c().$implicit,o=c();return x(o.remove.emit(s.id))}),m(5,"nz-icon",9),h()}if(n&2){let t=c().$implicit;d(2),p("nzType",t.icon||"appstore"),d(),_t(" ",t.title," ")}}function us(n,e){if(n&1&&(l(0,"gridster-item",1)(1,"div",2),b(2,gs,6,2),l(3,"div",3),m(4,"app-widget-host",4),h()()()),n&2){let t=e.$implicit,i=c();p("item",t),d(),xt("edit-mode",i.editMode),d(),_(i.editMode?2:-1),d(2),p("item",t)("editMode",i.editMode)}}var de=class n{editMode=!1;items=[];itemsChange=new ot;remove=new ot;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:g.Fixed,fixedColWidth:90,fixedRowHeight:90,margin:10,outerMargin:!0,compactType:v.None,pushItems:!0,displayGrid:se.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=j(P({},this.options),{draggable:j(P({},this.options.draggable),{enabled:this.editMode}),resizable:j(P({},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?P(P({},t),i):t});this.patch.clear(),this.itemsChange.emit(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=T({type:n,selectors:[["app-dashboard-canvas"]],inputs:{editMode:"editMode",items:"items"},outputs:{itemsChange:"itemsChange",remove:"remove"},features:[nt],decls:3,vars:1,consts:[[3,"options"],[3,"item"],[1,"card"],[1,"card-body"],[3,"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),Q(1,us,5,6,"gridster-item",1,ps),h()),t&2&&(p("options",i.options),d(),K(i.items))},dependencies:[D,O,Y,B,X,F,L,_e,xi,he,jt],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{projectState=k(ei);layout=k(it);envInjector=k(De);projectId=R(()=>this.projectState.currentProjectId()||"");editMode=S(!1);items=R(()=>this.layout.items());constructor(){He(()=>{let e=this.projectId();e&&(Ve(()=>this.layout.load(e)),Ee(this.envInjector,()=>{Fe(()=>{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=T({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","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),tt(1,1),l(2,"button",2),z("click",function(){return i.toggleEdit()}),m(3,"nz-icon",3),f(4),h(),et(),l(5,"app-dashboard-canvas",4),z("itemsChange",function(o){return i.onItemsChange(o)})("remove",function(o){return i.layout.remove(o)}),h()(),l(6,"div",5)(7,"div",6)(8,"div",7),f(9,"\u6DFB\u52A0\u90E8\u4EF6"),h(),l(10,"button",8),z("click",function(){return i.editMode.set(!1)}),m(11,"nz-icon",9),h()(),l(12,"div",10)(13,"app-add-widget-drawer",11),z("add",function(o){return i.layout.add(o)}),h()()()),t&2&&(p("title","\u9879\u76EE\u4EEA\u8868\u76D8")("isFullscreen",!0),d(3),p("nzType",i.editMode()?"check":"edit"),d(),_t(" ",i.editMode()?"\u5B8C\u6210":"\u81EA\u5B9A\u4E49"," "),d(),p("editMode",i.editMode())("items",i.items()),d(),xt("open",i.editMode()))},dependencies:[D,O,Y,B,X,F,L,Ke,qe,Je,de,ee],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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as re,aa as T,d as se,db as ce,gb as S,hb as ae,lb as ue,pb as de,vb as le,w,x as I,z as a}from"./chunk-PTMJ422K.js";import{$b as U,Ba as L,Ca as l,Eb as g,Fb as p,Fc as y,Ha as W,Ic as J,Kc as ee,Ra as C,Tb as H,Uc as D,_b as Q,ac as E,bc as z,cc as b,dc as $,ed as F,fd as te,gd as ne,hd as ie,i as G,kc as K,l as f,la as m,ld as x,ma as u,mb as _,na as d,pa as O,qc as R,ra as s,rb as h,rd as oe,sb as M,tc as N,ub as Z,uc as v,vc as k,vd as c,xa as P,xc as Y,ya as B,yc as q,zc as X}from"./chunk-SJG2JCPL.js";var A=["*"],me=["inputElement"],Ce=["nz-checkbox",""],ge=(n,o)=>o.value;function ze(n,o){if(n&1&&(z(0,"label",0),J(1),b()),n&2){let e=o.$implicit,t=N(2);E("nzValue",e.value)("nzName",t.nzName())("nzDisabled",e.disabled||t.finalDisabled()),_(),ee(" ",e.label," ")}}function ve(n,o){if(n&1&&Q(0,ze,2,4,"label",0,ge),n&2){let e=N();U(e.normalizedOptions())}}var ke=(()=>{class n{nzOnChange=new h;checkboxList=[];addCheckbox(e){this.checkboxList.push(e)}removeCheckbox(e){this.checkboxList.splice(this.checkboxList.indexOf(e),1)}onChange(){let e=this.checkboxList.filter(t=>t.nzChecked).map(t=>t.nzValue);this.nzOnChange.emit(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=g({type:n,selectors:[["nz-checkbox-wrapper"]],hostAttrs:[1,"ant-checkbox-group"],outputs:{nzOnChange:"nzOnChange"},exportAs:["nzCheckboxWrapper"],ngContentSelectors:A,decls:1,vars:0,template:function(t,i){t&1&&(v(),k(0))},encapsulation:2,changeDetection:0})}return n})(),pe=new O(""),be=(()=>{class n{ngZone=s(M);elementRef=s(C);cdr=s(oe);focusMonitor=s(T);directionality=s(I);destroyRef=s(l);checkboxGroupComponent=s(pe,{optional:!0});nzFormStatusService=s(ce,{optional:!0});nzCheckboxWrapperComponent=s(ke,{optional:!0});dir="ltr";destroy$=new f;isNzDisableFirstChange=!0;onChange=()=>{};onTouched=()=>{};inputElement;nzCheckedChange=new h;nzValue=null;nzAutoFocus=!1;nzDisabled=!1;nzIndeterminate=!1;nzChecked=!1;nzId=null;nzName=null;innerCheckedChange(e){!this.nzDisabled&&!this.checkboxGroupComponent?.finalDisabled()&&(this.setValue(e),this.nzCheckboxWrapperComponent?.onChange(),this.checkboxGroupComponent?.onCheckedChange(this.nzValue,e))}writeValue(e){this.nzChecked=e,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}constructor(){this.destroyRef.onDestroy(()=>{this.focusMonitor.stopMonitoring(this.elementRef),this.nzCheckboxWrapperComponent?.removeCheckbox(this)}),this.checkboxGroupComponent&&ne(()=>{let e=this.checkboxGroupComponent.value()||[];this.setValue(e.includes(this.nzValue)),this.cdr.markForCheck()})}ngOnInit(){this.focusMonitor.monitor(this.elementRef,!0).pipe(a(this.destroyRef)).subscribe(e=>{e||Promise.resolve().then(()=>this.onTouched())}),this.nzCheckboxWrapperComponent?.addCheckbox(this),this.directionality.change.pipe(a(this.destroyRef)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,w(this.elementRef.nativeElement,"click").pipe(a(this.destroyRef)).subscribe(e=>{e.preventDefault(),this.focus(),!this.nzDisabled&&this.ngZone.run(()=>{this.innerCheckedChange(!this.nzChecked),this.cdr.markForCheck()})}),w(this.inputElement.nativeElement,"click").pipe(a(this.destroyRef)).subscribe(e=>e.stopPropagation())}ngAfterViewInit(){this.nzAutoFocus&&this.focus()}setValue(e){this.nzChecked=e,this.onChange(e),this.nzCheckedChange.emit(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=g({type:n,selectors:[["","nz-checkbox",""]],viewQuery:function(t,i){if(t&1&&Y(me,7),t&2){let r;q(r=X())&&(i.inputElement=r.first)}},hostAttrs:[1,"ant-checkbox-wrapper"],hostVars:10,hostBindings:function(t,i){t&2&&y("ant-checkbox-group-item",!!i.checkboxGroupComponent)("ant-checkbox-wrapper-in-form-item",!!i.nzFormStatusService)("ant-checkbox-wrapper-checked",i.nzChecked)("ant-checkbox-wrapper-disabled",i.nzDisabled||(i.checkboxGroupComponent==null?null:i.checkboxGroupComponent.finalDisabled()))("ant-checkbox-rtl",i.dir==="rtl")},inputs:{nzValue:"nzValue",nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",c],nzDisabled:[2,"nzDisabled","nzDisabled",c],nzIndeterminate:[2,"nzIndeterminate","nzIndeterminate",c],nzChecked:[2,"nzChecked","nzChecked",c],nzId:"nzId",nzName:"nzName"},outputs:{nzCheckedChange:"nzCheckedChange"},exportAs:["nzCheckbox"],features:[D([{provide:S,useExisting:m(()=>n),multi:!0}])],attrs:Ce,ngContentSelectors:A,decls:6,vars:12,consts:[["inputElement",""],[1,"ant-checkbox"],["type","checkbox",1,"ant-checkbox-input",3,"ngModelChange","checked","ngModel","disabled"],[1,"ant-checkbox-inner"]],template:function(t,i){if(t&1){let r=K();v(),z(0,"span",1)(1,"input",2,0),R("ngModelChange",function(fe){return P(r),B(i.innerCheckedChange(fe))}),b(),$(3,"span",3),b(),z(4,"span"),k(5),b()}t&2&&(y("ant-checkbox-checked",i.nzChecked&&!i.nzIndeterminate)("ant-checkbox-disabled",i.nzDisabled||(i.checkboxGroupComponent==null?null:i.checkboxGroupComponent.finalDisabled()))("ant-checkbox-indeterminate",i.nzIndeterminate),_(),E("checked",i.nzChecked)("ngModel",i.nzChecked)("disabled",i.nzDisabled||((i.checkboxGroupComponent==null?null:i.checkboxGroupComponent.finalDisabled())??!1)),H("autofocus",i.nzAutoFocus?"autofocus":null)("id",i.nzId)("name",i.nzName||(i.checkboxGroupComponent==null?null:i.checkboxGroupComponent.nzName())))},dependencies:[le,ae,ue,de],encapsulation:2,changeDetection:0})}return n})(),ye=(()=>{class n{onChange=()=>{};onTouched=()=>{};isDisabledFirstChange=!0;directionality=s(I);nzName=x(null);nzDisabled=x(!1,{transform:c});nzOptions=x([]);value=W(null);finalDisabled=ie(()=>this.nzDisabled());dir=re(this.directionality.change,{initialValue:this.directionality.value});normalizedOptions=te(()=>De(this.nzOptions()));constructor(){let e=s(C),t=s(T),i=s(l);Z(()=>{t.monitor(e,!0).pipe(a(i)).subscribe(r=>{r||this.onTouched()}),i.onDestroy(()=>{t.stopMonitoring(e)})})}writeValue(e){F(()=>{this.value.set(e)})}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){F(()=>{this.finalDisabled.set(this.isDisabledFirstChange&&this.nzDisabled()||e)}),this.isDisabledFirstChange=!1}onCheckedChange(e,t){this.finalDisabled()||(this.value.update(i=>t?i?.concat(e)||[e]:i?.filter(r=>r!==e)||[]),this.onChange(this.value()))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=g({type:n,selectors:[["nz-checkbox-group"]],hostAttrs:[1,"ant-checkbox-group"],hostVars:2,hostBindings:function(t,i){t&2&&y("ant-checkbox-group-rtl",i.dir()==="rtl")},inputs:{nzName:[1,"nzName"],nzDisabled:[1,"nzDisabled"],nzOptions:[1,"nzOptions"]},exportAs:["nzCheckboxGroup"],features:[D([{provide:S,useExisting:m(()=>n),multi:!0},{provide:pe,useExisting:m(()=>n)}])],ngContentSelectors:A,decls:2,vars:0,consts:[["nz-checkbox","",3,"nzValue","nzName","nzDisabled"]],template:function(t,i){t&1&&(v(),k(0,0,null,ve,2,0))},dependencies:[be],encapsulation:2,changeDetection:0})}return n})();function De(n){return n.map(o=>typeof o=="string"||typeof o=="number"?{label:`${o}`,value:o}:o)}var Le=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=p({type:n});static \u0275inj=d({imports:[be,ye]})}return n})();var Oe=(()=>{class n{create(e){return typeof ResizeObserver>"u"?null:new ResizeObserver(e)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=u({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Je=(()=>{class n{nzResizeObserverFactory=s(Oe);destroyRef=s(l);observedElements=new Map;constructor(){this.destroyRef.onDestroy(()=>this.observedElements.forEach((e,t)=>this.cleanupObserver(t)))}observe(e){let t=se(e);return new G(i=>{let V=this.observeElement(t).subscribe(i);return()=>{V.unsubscribe(),this.unobserveElement(t)}})}observeElement(e){if(this.observedElements.has(e))this.observedElements.get(e).count++;else{let t=new f,i=this.nzResizeObserverFactory.create(r=>t.next(r));i&&i.observe(e),this.observedElements.set(e,{observer:i,stream:t,count:1})}return this.observedElements.get(e).stream}unobserveElement(e){this.observedElements.has(e)&&(this.observedElements.get(e).count--,this.observedElements.get(e).count||this.cleanupObserver(e))}cleanupObserver(e){if(this.observedElements.has(e)){let{observer:t,stream:i}=this.observedElements.get(e);t&&t.disconnect(),i.complete(),this.observedElements.delete(e)}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=u({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var j=class{_document;_textarea;constructor(o,e){this._document=e;let t=this._textarea=this._document.createElement("textarea"),i=t.style;i.position="fixed",i.top=i.opacity="0",i.left="-999em",t.setAttribute("aria-hidden","true"),t.value=o,t.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(t)}copy(){let o=this._textarea,e=!1;try{if(o){let t=this._document.activeElement;o.select(),o.setSelectionRange(0,o.value.length),e=this._document.execCommand("copy"),t&&t.focus()}}catch{}return e}destroy(){let o=this._textarea;o&&(o.remove(),this._textarea=void 0)}},ct=(()=>{class n{_document=s(L);constructor(){}copy(e){let t=this.beginCopy(e),i=t.copy();return t.destroy(),i}beginCopy(e){return new j(e,this._document)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=u({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var at=(()=>{class n{static \u0275fac=function(t){return new(t||n)};static \u0275mod=p({type:n});static \u0275inj=d({})}return n})();export{be as a,Le as b,Je as c,ct as d,at as e};
|