slimsdk 0.1.55 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +1 -1
  2. package/dist/desktop/index.d.ts +13 -12
  3. package/dist/desktop/index.js +1228 -1967
  4. package/dist/desktop/index.js.map +1 -1
  5. package/dist/index-3POan8Vl.d.ts +94 -0
  6. package/dist/index-B4158M0u.d.ts +21 -0
  7. package/dist/index-BAQxKstM.d.ts +8 -0
  8. package/dist/index-BMqjxP9I.d.ts +11 -0
  9. package/dist/index-CD53Vh6h.d.ts +31 -0
  10. package/dist/index-CoYHkkyT.d.ts +14 -0
  11. package/dist/index-D5CUpF9v.d.ts +10 -0
  12. package/dist/index-DBhzpIiB.d.ts +32 -0
  13. package/dist/index-DCw_tM-R.d.ts +28 -0
  14. package/dist/{index-kr8P3eEW.d.ts → index-DWqF-tKY.d.ts} +7 -9
  15. package/dist/index-DzKPF0ja.d.ts +14 -0
  16. package/dist/index-jVam7Sxi.d.ts +15 -0
  17. package/dist/index-uQOR5bdy.d.ts +20 -0
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +2 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/lib/index.d.ts +1 -1
  22. package/dist/lib/index.js +1 -1
  23. package/dist/lib/index.js.map +1 -1
  24. package/dist/mobile/index.d.ts +13 -12
  25. package/dist/mobile/index.js +299 -808
  26. package/dist/mobile/index.js.map +1 -1
  27. package/dist/mod/button/index.d.ts +1 -1
  28. package/dist/mod/button/index.js +2 -2
  29. package/dist/mod/button/index.js.map +1 -1
  30. package/dist/mod/config/index.d.ts +52 -0
  31. package/dist/mod/{global → config}/index.js +45 -41
  32. package/dist/mod/config/index.js.map +1 -0
  33. package/dist/mod/cover/index.d.ts +1 -1
  34. package/dist/mod/cover/index.js +3 -3
  35. package/dist/mod/cover/index.js.map +1 -1
  36. package/dist/mod/dialog/index.d.ts +1 -1
  37. package/dist/mod/dialog/index.js +13 -13
  38. package/dist/mod/dialog/index.js.map +1 -1
  39. package/dist/mod/drawer/index.d.ts +1 -1
  40. package/dist/mod/drawer/index.js +8 -8
  41. package/dist/mod/drawer/index.js.map +1 -1
  42. package/dist/mod/drop/index.d.ts +1 -1
  43. package/dist/mod/drop/index.js +15 -15
  44. package/dist/mod/drop/index.js.map +1 -1
  45. package/dist/mod/hwlink/index.d.ts +2 -2
  46. package/dist/mod/hwlink/index.js +44 -656
  47. package/dist/mod/hwlink/index.js.map +1 -1
  48. package/dist/mod/index.d.ts +7 -7
  49. package/dist/mod/index.js +61 -59
  50. package/dist/mod/index.js.map +1 -1
  51. package/dist/mod/modal/index.d.ts +1 -1
  52. package/dist/mod/modal/index.js +12 -12
  53. package/dist/mod/modal/index.js.map +1 -1
  54. package/dist/mod/tabs/index.d.ts +1 -1
  55. package/dist/mod/tabs/index.js +8 -6
  56. package/dist/mod/tabs/index.js.map +1 -1
  57. package/dist/page/desktop/index.d.ts +3 -3
  58. package/dist/page/desktop/index.js +228 -801
  59. package/dist/page/desktop/index.js.map +1 -1
  60. package/dist/page/index.d.ts +7 -7
  61. package/dist/page/index.js +12 -12
  62. package/dist/page/index.js.map +1 -1
  63. package/dist/page/mobile/index.d.ts +2 -2
  64. package/dist/page/mobile/index.js +14 -14
  65. package/dist/page/mobile/index.js.map +1 -1
  66. package/dist/worker/hubworker.js +1 -1
  67. package/dist/worker/hubworker.js.map +1 -1
  68. package/package.json +6 -6
  69. package/dist/index-B2HHS23A.d.ts +0 -20
  70. package/dist/index-BQcJsVJ-.d.ts +0 -10
  71. package/dist/index-Bf_lg-oZ.d.ts +0 -339
  72. package/dist/index-ChdqOPJq.d.ts +0 -15
  73. package/dist/index-CzsSwSvp.d.ts +0 -21
  74. package/dist/index-D3tu8t6p.d.ts +0 -28
  75. package/dist/index-DQt71MNx.d.ts +0 -31
  76. package/dist/index-DZdXvqxA.d.ts +0 -10
  77. package/dist/index-DcvauYN8.d.ts +0 -14
  78. package/dist/index-Pd7FTiEW.d.ts +0 -32
  79. package/dist/index-QRbamarh.d.ts +0 -8
  80. package/dist/mod/global/index.d.ts +0 -57
  81. package/dist/mod/global/index.js.map +0 -1
@@ -1,5 +1,156 @@
1
- // src/page/index.ts
1
+ // src/config/global.ts
2
2
  var app = document.querySelector("#app");
3
+
4
+ // src/config/index.ts
5
+ var cfg = {
6
+ UNIX_TIME: 0,
7
+ app: {
8
+ UUID: "",
9
+ NAME: "",
10
+ SECRET: "",
11
+ VERSION: "",
12
+ RELEASE: "",
13
+ CALLBACK: ""
14
+ },
15
+ api: {
16
+ URL: "",
17
+ TOKEN: ""
18
+ },
19
+ hub: {
20
+ LOGIN: "https://wkrh.info/oauth/v1/authorize",
21
+ OAUTH: "https://wkrh.info:8850/oauth/v1",
22
+ API: "https://wkrh.info:8850/api/v1",
23
+ WSS: "wss://wkrh.info:8855/ws",
24
+ UUID: ""
25
+ },
26
+ hwl: {
27
+ HOST: "ws://localhost:8844/ws",
28
+ FILE: "https://wkrh.info/app/hwlink/hwlink_setup.exe"
29
+ },
30
+ user: {
31
+ sub: 0,
32
+ name: "",
33
+ utyp: "",
34
+ unit: "",
35
+ unit_id: 0,
36
+ role_id: 0,
37
+ metadata: {
38
+ emp_type: "",
39
+ emp_level: "",
40
+ position: ""
41
+ },
42
+ picture: ""
43
+ }
44
+ };
45
+
46
+ // src/mod/dialog/index.ts
47
+ var app2 = document.querySelector("#app");
48
+ var confirm = (message, params) => new Promise((resolve) => {
49
+ if (!app2) return;
50
+ const doc = params && params?.target ? params.target : app2;
51
+ const color = params && params?.color ? params.color : "green";
52
+ const dialog = document.createElement("div");
53
+ dialog.className = "overlay slim-dialog";
54
+ dialog.innerHTML = /*html*/
55
+ `
56
+ <div class="confirm ${color}">
57
+ <div class="header">
58
+ <i class="icon solid">&#xf058;</i> Slim Confirm
59
+ </div>
60
+ <div class="message">${message}</div>
61
+ <div class="footer">
62
+ <button class="lg gray left" id="btn-no">
63
+ <i>&#xf057;</i>\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01
64
+ </button>
65
+ <button class="lg ${color} right" id="btn-yes">
66
+ <i>&#xf058;</i>\u0E15\u0E01\u0E25\u0E07
67
+ </button>
68
+ </div>
69
+ </div>
70
+ `;
71
+ doc.appendChild(dialog);
72
+ dialog.querySelector("#btn-yes").focus();
73
+ dialog.querySelector("#btn-yes").onclick = () => {
74
+ dialog.remove();
75
+ resolve(true);
76
+ };
77
+ dialog.querySelector("#btn-no").onclick = () => {
78
+ dialog.remove();
79
+ resolve(false);
80
+ };
81
+ });
82
+
83
+ // src/lib/utility.ts
84
+ var winPopup = (width, height, name, url) => {
85
+ const left = (screen.width - width) / 2;
86
+ const top = (screen.height - height) / 2;
87
+ let opt = `width=${width}, height=${height},`;
88
+ opt += `left=${left}, top=${top}`;
89
+ return window.open(url, name, opt);
90
+ };
91
+
92
+ // src/mod/built-in/button/index.ts
93
+ var loading = (btn, state = false) => {
94
+ if (state) {
95
+ btn.querySelector(".btn-loader")?.remove();
96
+ btn.style.color = "transparent";
97
+ btn.style.position = "relative";
98
+ btn.style.pointerEvents = "none";
99
+ const loader = document.createElement("div");
100
+ loader.className = "btn-loader";
101
+ loader.innerHTML = `<div class="spinner s22"></div>`;
102
+ btn.appendChild(loader);
103
+ } else {
104
+ btn.querySelector(".btn-loader")?.remove();
105
+ btn.style.color = "";
106
+ btn.style.position = "";
107
+ btn.style.pointerEvents = "";
108
+ }
109
+ };
110
+
111
+ // src/mod/drop/index.ts
112
+ var menu = (drop) => {
113
+ const dropBtn = drop.querySelector(".drop-btn");
114
+ const content = drop.querySelector(".drop-content");
115
+ if (!dropBtn || !content) return;
116
+ setBtnEvent(dropBtn, content);
117
+ };
118
+ var setBtnEvent = (btn, content) => {
119
+ btn.onclick = () => {
120
+ if (content.style.display == "block") {
121
+ content.style.animation = "fade-out 0.4s forwards";
122
+ content.onanimationend = () => {
123
+ content.style.animation = "";
124
+ content.style.display = "";
125
+ };
126
+ } else {
127
+ clear();
128
+ content.style.animation = "fade-in 0.4s forwards";
129
+ content.style.display = "block";
130
+ content.onanimationend = () => {
131
+ content.style.animation = "";
132
+ };
133
+ }
134
+ };
135
+ };
136
+ var clear = () => {
137
+ const drop = document.querySelectorAll(".drop-content");
138
+ drop.forEach((el) => {
139
+ if (el.style.display == "block") {
140
+ el.style.animation = "fade-out 0.4s forwards";
141
+ el.onanimationend = () => {
142
+ el.style.animation = "";
143
+ el.style.display = "";
144
+ };
145
+ }
146
+ });
147
+ };
148
+ window.addEventListener("click", (e) => {
149
+ if (!e.target.matches(".drop-btn")) clear();
150
+ });
151
+
152
+ // src/page/index.ts
153
+ var app3 = document.querySelector("#app");
3
154
  var pageSpin = (
4
155
  /*html*/
5
156
  `
@@ -11,26 +162,26 @@ var pageSpin = (
11
162
  `
12
163
  );
13
164
  var smallSpin = `<div class="spinner s32"></div>`;
14
- var Loading = (size = "default") => {
15
- if (!app) return;
16
- if (!app.querySelector("#page-loader")) {
165
+ var loading2 = (size = "default") => {
166
+ if (!app3) return;
167
+ if (!app3.querySelector("#page-loader")) {
17
168
  const loader = document.createElement("div");
18
169
  loader.id = "page-loader";
19
170
  loader.className = "overlay center";
20
171
  loader.innerHTML = size == "default" ? pageSpin : smallSpin;
21
- app.appendChild(loader);
172
+ app3.appendChild(loader);
22
173
  }
23
- const content = app.querySelector("#app-content");
174
+ const content = app3.querySelector("#app-content");
24
175
  if (content) content.style.display = "none";
25
176
  };
26
- var Ready = (delay = 400) => {
177
+ var ready = (delay = 400) => {
27
178
  new Promise((r) => setTimeout(r, delay)).then(() => {
28
179
  clearLoader(true);
29
180
  });
30
181
  };
31
- var Error = (err) => {
182
+ var error = (err) => {
32
183
  clearLoader(false);
33
- if (!app) return;
184
+ if (!app3) return;
34
185
  const box = document.createElement("div");
35
186
  box.className = "page-error";
36
187
  box.innerHTML = /*html*/
@@ -39,12 +190,12 @@ var Error = (err) => {
39
190
  <div class="topic">&#x2726; \u0E40\u0E01\u0E34\u0E14\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14 &#x2726;</div>
40
191
  <div class="text">${err}</div>
41
192
  `;
42
- app.prepend(box);
193
+ app3.prepend(box);
43
194
  throw err;
44
195
  };
45
- var NotFound = () => {
46
- if (!app) return;
47
- app.innerHTML = /*html*/
196
+ var notFound = () => {
197
+ if (!app3) return;
198
+ app3.innerHTML = /*html*/
48
199
  `
49
200
  <div class="page-not-found">
50
201
  <h1>4<i class="fas fa-ghost"></i>4</h1>
@@ -53,11 +204,11 @@ var NotFound = () => {
53
204
  </div>
54
205
  `;
55
206
  };
56
- var FullLoad = () => {
207
+ var fullLoad = () => {
57
208
  clearNavbar();
58
- if (!app) return;
59
- app.classList.add("full-page");
60
- app.innerHTML = /*html*/
209
+ if (!app3) return;
210
+ app3.classList.add("full-page");
211
+ app3.innerHTML = /*html*/
61
212
  `
62
213
  <div class="page-full-load">
63
214
  <div class="spinner"></div>
@@ -65,11 +216,11 @@ var FullLoad = () => {
65
216
  </div>
66
217
  `;
67
218
  };
68
- var Inform = (params) => {
219
+ var inform = (params) => {
69
220
  clearNavbar();
70
- if (!app) return;
71
- app.classList.add("full-page");
72
- app.innerHTML = /*html*/
221
+ if (!app3) return;
222
+ app3.classList.add("full-page");
223
+ app3.innerHTML = /*html*/
73
224
  `
74
225
  <div class="page-inform ${params.color}">
75
226
  <div class="icon solid">${params.icon}</div>
@@ -79,7 +230,7 @@ var Inform = (params) => {
79
230
  </button>
80
231
  </div>
81
232
  `;
82
- const btn = app.querySelector("button");
233
+ const btn = app3.querySelector("button");
83
234
  btn.onclick = () => window.location.replace(params.btnUrl);
84
235
  };
85
236
  var clearNavbar = () => {
@@ -89,342 +240,19 @@ var clearNavbar = () => {
89
240
  if (topbar) topbar.remove();
90
241
  if (tabbar) tabbar.remove();
91
242
  if (sidebar) sidebar.remove();
92
- if (app) app.className = "";
243
+ if (app3) app3.className = "";
93
244
  };
94
245
  var clearLoader = (showContent) => {
95
- if (!app) return;
96
- const loader = app.querySelector("#page-loader");
246
+ if (!app3) return;
247
+ const loader = app3.querySelector("#page-loader");
97
248
  if (loader) {
98
249
  loader.style.animation = "fade-out 0.4s forwards";
99
250
  loader.onanimationend = () => loader.remove();
100
251
  }
101
- const content = app.querySelector("#app-content");
252
+ const content = app3.querySelector("#app-content");
102
253
  if (content) content.style.display = showContent ? "block" : "none";
103
254
  };
104
255
 
105
- // src/mod/global.ts
106
- var gbvar = {
107
- UNIX_TIME: 0,
108
- app: {
109
- UUID: "",
110
- NAME: "",
111
- VERSION: "",
112
- RELEASE: ""
113
- },
114
- api: {
115
- URL: "",
116
- TOKEN: ""
117
- },
118
- hub: {
119
- LOGIN: "https://wkrh.info/oauth/v1/authorize",
120
- OAUTH: "https://wkrh.info:8850/oauth/v1",
121
- API: "https://wkrh.info:8850/api/v1",
122
- WSS: "wss://wkrh.info:8855/ws",
123
- UUID: ""
124
- },
125
- hwl: {
126
- HOST: "ws://localhost:8844/ws",
127
- FILE: "https://wkrh.info/app/hwlink/hwlink_setup.exe"
128
- },
129
- user: {
130
- ACCT: 0,
131
- ACTYPE: 0,
132
- ACROLE: 0,
133
- ACNAME: "",
134
- PICTURE: "",
135
- AGCY: 0,
136
- DVSN: 0,
137
- SECT: 0,
138
- DEPT: "0,0",
139
- AGCY_NAME: "",
140
- DVSN_NAME: "",
141
- SECT_NAME: ""
142
- }
143
- };
144
- var app2 = document.querySelector("#app");
145
-
146
- // src/mod/built-in/cover/index.ts
147
- var Loading2 = (cover, state = false, align = "top", hide = true) => {
148
- const inner = cover.querySelectorAll("*");
149
- if (state) {
150
- cover.querySelector(".cover-loader")?.remove();
151
- cover.style.position = "relative";
152
- if (hide) inner.forEach((el) => el.style.visibility = "hidden");
153
- const loader = document.createElement("div");
154
- loader.className = `cover-loader ${align}`;
155
- loader.innerHTML = `<div class="spinner s28"></div>`;
156
- cover.appendChild(loader);
157
- } else {
158
- new Promise((r) => setTimeout(r, 400)).then(() => {
159
- cover.querySelector(".cover-loader")?.remove();
160
- cover.style.position = "";
161
- inner.forEach((el) => el.style.visibility = "");
162
- });
163
- }
164
- };
165
-
166
- // src/mod/modal/index.ts
167
- var app3 = document.querySelector("#app");
168
- var tmpBtnSave = (
169
- /* html */
170
- `
171
- <button class="solid green" type="submit">
172
- <i>&#xf0c7;</i>\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01
173
- </button>
174
- `
175
- );
176
- var tmpBtnCancel = (
177
- /* html */
178
- `
179
- <button class="solid gray" type="button" id="btn-cancel">
180
- <i>&#xf057;</i>\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01
181
- </button>
182
- `
183
- );
184
- var tmpBtnClose = (
185
- /* html */
186
- `
187
- <button class="solid blue" type="button" id="btn-close">
188
- <i>&#xf057;</i>\u0E1B\u0E34\u0E14\u0E2B\u0E19\u0E49\u0E32
189
- </button>
190
- `
191
- );
192
- var Create = (params) => {
193
- const icon = params.icon ? params.icon : "&#xf40e;";
194
- const title = params.title ? params.title : "Modal Title";
195
- const body = params.body ? params.body : "Modal Body";
196
- const width = params.width ? params.width : "100%";
197
- const align = params.button?.align ? params.button?.align : "";
198
- const doc = params.target ? params.target : app3;
199
- let button = "";
200
- if (params.button?.cancel) button += tmpBtnCancel;
201
- if (params.button?.close) button += tmpBtnClose;
202
- if (params.button?.save) button += tmpBtnSave;
203
- const modal = document.createElement("div");
204
- modal.className = "overlay slim-modal";
205
- modal.innerHTML = /*html*/
206
- `
207
- <form>
208
- <div class="content" style="width: ${width};">
209
- <div class="header">
210
- <i class="icon pad">${icon}</i>${title}
211
- <button id="btn-exit" type="button"
212
- class="icon">&#xf00d;</button>
213
- </div>
214
- <div class="body">${body}</div>
215
- <div class="footer ${align}">${button}</div>
216
- <div class="loader">
217
- <div class="spinner s28"></div>
218
- </div>
219
- </div>
220
- </form>
221
- `;
222
- if (!doc) return modal;
223
- doc.appendChild(modal);
224
- if (width == "auto") {
225
- const content2 = modal.querySelector(".content");
226
- if (content2) content2.style.maxWidth = `450px`;
227
- }
228
- window.location.hash = "modal";
229
- const content = modal.querySelector(".content");
230
- content.classList.add("modal-in");
231
- modal.classList.add("overlay-in");
232
- content.addEventListener("animationend", () => {
233
- if (content.classList.contains("modal-in")) {
234
- content.classList.remove("modal-in");
235
- modal.classList.remove("overlay-in");
236
- }
237
- });
238
- const hashChange = () => {
239
- const hash = window.location.hash.replaceAll("#", "");
240
- if (hash != "modal") done();
241
- };
242
- const done = () => {
243
- destroy(modal);
244
- if (window.location.hash == "#modal") history.back();
245
- window.removeEventListener("hashchange", hashChange);
246
- };
247
- window.addEventListener("hashchange", hashChange);
248
- const btnExit = modal.querySelector("#btn-exit");
249
- const btnCancel = modal.querySelector("#btn-cancel");
250
- const btnClose = modal.querySelector("#btn-close");
251
- if (btnExit) {
252
- btnExit.focus();
253
- btnExit.onclick = done;
254
- }
255
- if (btnCancel) btnCancel.onclick = done;
256
- if (btnClose) btnClose.onclick = done;
257
- return modal;
258
- };
259
- var Close = (modal) => new Promise((resolve) => {
260
- modal.querySelector("#btn-exit").click();
261
- const content = modal.querySelector(".content");
262
- content.addEventListener("animationend", () => resolve());
263
- });
264
- var destroy = (modal) => {
265
- const content = modal.querySelector(".content");
266
- content.classList.add("modal-out");
267
- modal.classList.add("overlay-out");
268
- content.addEventListener("animationend", () => {
269
- if (content.classList.contains("modal-out")) {
270
- modal.style.display = "none";
271
- modal.remove();
272
- }
273
- });
274
- };
275
- var Loading3 = (modal) => {
276
- const body = modal.querySelector(".body");
277
- const loader = modal.querySelector(".loader");
278
- if (body) body.style.visibility = "hidden";
279
- if (loader) loader.style.display = "flex";
280
- };
281
- var Ready2 = (modal) => {
282
- const body = modal.querySelector(".body");
283
- const loader = modal.querySelector(".loader");
284
- if (body) body.style.visibility = "visible";
285
- if (loader) loader.style.display = "none";
286
- };
287
- var Hidden = (modal) => {
288
- modal.style.display = "none";
289
- };
290
- var Visible = (modal) => {
291
- modal.style.display = "block";
292
- };
293
-
294
- // src/mod/dialog/index.ts
295
- var app4 = document.querySelector("#app");
296
- var Confirm = (message, params) => new Promise((resolve) => {
297
- if (!app4) return;
298
- const doc = params && params?.target ? params.target : app4;
299
- const color = params && params?.color ? params.color : "green";
300
- const dialog = document.createElement("div");
301
- dialog.className = "overlay slim-dialog";
302
- dialog.innerHTML = /*html*/
303
- `
304
- <div class="confirm ${color}">
305
- <div class="header">
306
- <i class="icon solid">&#xf058;</i> Slim Confirm
307
- </div>
308
- <div class="message">${message}</div>
309
- <div class="footer">
310
- <button class="lg gray left" id="btn-no">
311
- <i>&#xf057;</i>\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01
312
- </button>
313
- <button class="lg ${color} right" id="btn-yes">
314
- <i>&#xf058;</i>\u0E15\u0E01\u0E25\u0E07
315
- </button>
316
- </div>
317
- </div>
318
- `;
319
- doc.appendChild(dialog);
320
- dialog.querySelector("#btn-yes").focus();
321
- dialog.querySelector("#btn-yes").onclick = () => {
322
- dialog.remove();
323
- resolve(true);
324
- };
325
- dialog.querySelector("#btn-no").onclick = () => {
326
- dialog.remove();
327
- resolve(false);
328
- };
329
- });
330
- var Alert = (message, params) => new Promise((resolve) => {
331
- if (!app4) return;
332
- const doc = params && params?.target ? params.target : app4;
333
- const type = params && params?.type ? params.type : "success";
334
- let color = "";
335
- let icon = "";
336
- if (type == "success") {
337
- color = "green";
338
- icon = "&#xf058;";
339
- }
340
- if (type == "failure") {
341
- color = "red";
342
- icon = "&#xf057;";
343
- }
344
- if (type == "warning") {
345
- color = "orange";
346
- icon = "&#xf06a;";
347
- }
348
- if (type == "info") {
349
- color = "blue";
350
- icon = "&#xf05a;";
351
- }
352
- const dialog = document.createElement("div");
353
- dialog.className = "overlay slim-dialog";
354
- dialog.innerHTML = /*html*/
355
- `
356
- <div class="alert ${color}">
357
- <div class="icon solid">${icon}</div>
358
- <div class="message">${message}</div>
359
- <div class="footer">
360
- <button class="lg ${color}" id="btn-yes">\u0E15\u0E01\u0E25\u0E07</button>
361
- </div>
362
- </div>
363
- `;
364
- doc.appendChild(dialog);
365
- dialog.querySelector("#btn-yes").focus();
366
- dialog.querySelector("#btn-yes").onclick = () => {
367
- dialog.remove();
368
- resolve();
369
- };
370
- });
371
- var Toast = (message, params) => new Promise((resolve) => {
372
- if (!app4) return;
373
- const doc = params && params?.target ? params.target : app4;
374
- const type = params && params?.type ? params.type : "success";
375
- let color = "";
376
- let icon = "";
377
- if (type == "success") {
378
- color = "green";
379
- icon = "&#xf058;";
380
- }
381
- if (type == "failure") {
382
- color = "red";
383
- icon = "&#xf057;";
384
- }
385
- if (type == "warning") {
386
- color = "orange";
387
- icon = "&#xf06a;";
388
- }
389
- if (type == "info") {
390
- color = "blue";
391
- icon = "&#xf05a;";
392
- }
393
- const toast = document.createElement("div");
394
- toast.className = `slim-toast ${color}`;
395
- toast.innerHTML = /*html*/
396
- `
397
- <i class="icon">${icon}</i>
398
- <span class="text">${message}</span>
399
- `;
400
- doc.appendChild(toast);
401
- toast.classList.add("show");
402
- let count = 0;
403
- toast.onanimationend = () => {
404
- count++;
405
- if (count == 2) {
406
- toast.remove();
407
- resolve();
408
- }
409
- };
410
- });
411
-
412
- // src/lib/utility.ts
413
- var winPopup = (width, height, name, url) => {
414
- const left = (screen.width - width) / 2;
415
- const top = (screen.height - height) / 2;
416
- let opt = `width=${width}, height=${height},`;
417
- opt += `left=${left}, top=${top}`;
418
- return window.open(url, name, opt);
419
- };
420
- var strCheck = (str) => {
421
- let out = String(str);
422
- out = out.replaceAll("'", "\\'");
423
- out = out.replaceAll('"', '\\"');
424
- out = out.trim();
425
- return out;
426
- };
427
-
428
256
  // src/svchub/hwlink/template.ts
429
257
  var template = (
430
258
  /*html*/
@@ -452,19 +280,19 @@ var template = (
452
280
  <div id="device">
453
281
  <div class="box-tb">
454
282
  <div class="topic">\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E07\u0E32\u0E19</div>
455
- <div class="text" id="agcy">:</div>
283
+ <div class="text" id="">:</div>
456
284
  </div>
457
285
  <div class="box-tb">
458
286
  <div class="topic">\u0E01\u0E25\u0E38\u0E48\u0E21\u0E07\u0E32\u0E19</div>
459
- <div class="text" id="dept">:</div>
287
+ <div class="text" id="">:</div>
460
288
  </div>
461
289
  <div class="box-tb">
462
290
  <div class="topic">\u0E0A\u0E37\u0E48\u0E2D\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C</div>
463
- <div class="text" id="dname">:</div>
291
+ <div class="text" id="">:</div>
464
292
  </div>
465
293
  <div class="box-tb">
466
294
  <div class="topic">\u0E40\u0E25\u0E02\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E4C\u0E2A\u0E34\u0E19</div>
467
- <div class="text" id="assno">:</div>
295
+ <div class="text" id="">:</div>
468
296
  </div>
469
297
  <button id="btn-edit" class="circle sm blue"
470
298
  shadow="true">&#xf5ae;</button>
@@ -534,351 +362,26 @@ var template = (
534
362
  </style>
535
363
  `
536
364
  );
537
- var frmDevice = (
538
- /*html*/
539
- `
540
- <div id="frm-device" class="cover grid">
541
- <div class="input-box span">
542
- <select id="inp-agcy" required></select>
543
- <div class="label">\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E07\u0E32\u0E19 *</div>
544
- </div>
545
- <div class="input-box span">
546
- <select id="inp-dept"></select>
547
- <div class="label">\u0E01\u0E25\u0E38\u0E48\u0E21\u0E07\u0E32\u0E19/\u0E2A\u0E48\u0E27\u0E19\u0E07\u0E32\u0E19</div>
548
- </div>
549
- <div class="input-box span">
550
- <input type="text" id="inp-name" maxlength="100" required>
551
- <div class="label">\u0E0A\u0E37\u0E48\u0E2D\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C *</div>
552
- </div>
553
- </div>
554
- <style>
555
- #frm-device {
556
- gap: 5px;
557
- }
558
- #frm-device .dvsn {
559
- font-weight: 600;
560
- }
561
- #frm-device .sect {
562
- font-style: italic;
563
- }
564
- </style>
565
- `
566
- );
567
-
568
- // src/svchub/api/agency/agcy.ts
569
- var Read = (agcy) => new Promise((resolve, reject) => {
570
- let url = `/agcy`;
571
- if (agcy) url = `/agcy/${agcy}`;
572
- fetch(gbvar.hub.API + url, {
573
- method: "GET",
574
- headers: gbvar.api.HEADERS
575
- }).then((resp) => {
576
- if (!resp.ok) throw resp;
577
- return resp.json();
578
- }).then((json) => {
579
- resolve(json);
580
- }).catch((err) => reject(err));
581
- });
582
- var Set = async (elm) => {
583
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
584
- await Read().then((resp) => {
585
- const data = resp.data;
586
- for (const val of data) {
587
- const name = val.short ? val.short : val.name;
588
- const opt = document.createElement("option");
589
- opt.value = `${val.id}`;
590
- opt.text = name;
591
- elm.appendChild(opt);
592
- }
593
- }).catch((err) => console.error(err));
594
- };
595
-
596
- // src/svchub/api/agency/dept.ts
597
- var Read2 = (agcy) => new Promise((resolve, reject) => {
598
- const url = `/agcy/${agcy}/dept`;
599
- fetch(gbvar.hub.API + url, {
600
- method: "GET",
601
- headers: gbvar.api.HEADERS
602
- }).then((resp) => {
603
- if (!resp.ok) throw resp;
604
- return resp.json();
605
- }).then((json) => {
606
- resolve(json);
607
- }).catch((err) => reject(err));
608
- });
609
- var Set2 = async (agcy, elm) => {
610
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
611
- await Read2(agcy).then((resp) => {
612
- const data = resp.data;
613
- for (const val of data) {
614
- const opt = document.createElement("option");
615
- opt.value = `${val.dvsn},${val.sect}`;
616
- if (val.sect == 0) {
617
- opt.text = `${val.name}`;
618
- opt.style.fontWeight = "600";
619
- } else {
620
- opt.text = `- ${val.name}`;
621
- opt.style.fontStyle = "italic";
622
- }
623
- elm.appendChild(opt);
624
- }
625
- }).catch((err) => console.error(err));
626
- };
627
-
628
- // src/svchub/api/account/index.ts
629
- var Read3 = (agcy, acct, params) => new Promise((resolve, reject) => {
630
- const status = params && params.status ? params.status : 1;
631
- let query = `?status=${status}`;
632
- if (params) {
633
- const dvsn = params.dvsn ? params.dvsn : 0;
634
- const sect = params.sect ? params.sect : 0;
635
- const actype = params.actype ? params.actype : 0;
636
- const acrole = params.acrole ? params.acrole : 0;
637
- if (dvsn) query += `&dvsn=${dvsn}`;
638
- if (sect) query += `&sect=${sect}`;
639
- if (actype) query += `&actype=${actype}`;
640
- if (acrole) query += `&acrole=${acrole}`;
641
- }
642
- let url = `/agcy/${agcy}/acct${query}`;
643
- if (acct) url = `/agcy/${agcy}/acct/${acct}`;
644
- fetch(gbvar.hub.API + url, {
645
- method: "GET",
646
- headers: gbvar.api.HEADERS
647
- }).then((resp) => {
648
- if (!resp.ok) throw resp;
649
- return resp.json();
650
- }).then((json) => {
651
- resolve(json);
652
- }).catch((err) => reject(err));
653
- });
654
- var Create2 = (agcy, params) => new Promise((resolve, reject) => {
655
- const url = `/agcy/${agcy}/acct`;
656
- fetch(gbvar.hub.API + url, {
657
- method: "POST",
658
- headers: gbvar.api.HEADERS,
659
- body: JSON.stringify(params)
660
- }).then((resp) => {
661
- if (!resp.ok) throw resp;
662
- return resp.json();
663
- }).then((json) => {
664
- resolve(json);
665
- }).catch((err) => reject(err));
666
- });
667
- var Update = (agcy, acct, params) => new Promise((resolve, reject) => {
668
- const url = `/agcy/${agcy}/acct/${acct}`;
669
- fetch(gbvar.hub.API + url, {
670
- method: "PUT",
671
- headers: gbvar.api.HEADERS,
672
- body: JSON.stringify(params)
673
- }).then((resp) => {
674
- if (!resp.ok) throw resp;
675
- return resp.json();
676
- }).then((json) => {
677
- resolve(json);
678
- }).catch((err) => reject(err));
679
- });
680
-
681
- // src/svchub/hwlink/device.ts
682
- var Create3 = (csid) => new Promise((resolve, reject) => {
683
- const modal = Create({
684
- title: "\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E04\u0E2D\u0E21\u0E1E\u0E34\u0E27\u0E40\u0E15\u0E2D\u0E23\u0E4C",
685
- icon: "&#xf390;",
686
- width: "400px",
687
- body: frmDevice,
688
- button: { save: true, cancel: true }
689
- });
690
- const inpAgcy = modal.querySelector("#inp-agcy");
691
- const inpDept = modal.querySelector("#inp-dept");
692
- const inpName = modal.querySelector("#inp-name");
693
- inpAgcy.onchange = () => {
694
- Set2(Number(inpAgcy.value), inpDept);
695
- };
696
- (async () => {
697
- await Set(inpAgcy);
698
- await Set2(Number(inpAgcy.value), inpDept);
699
- Ready2(modal);
700
- })();
701
- const form = modal.querySelector("form");
702
- if (form) form.onsubmit = async (e) => {
703
- e.preventDefault();
704
- Hidden(modal);
705
- const res = await Confirm("\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19.! \u0E01\u0E32\u0E23\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25");
706
- Visible(modal);
707
- if (res) {
708
- Loading3(modal);
709
- const newAgcy = Number(inpAgcy.value);
710
- const [dvsn, sect] = inpDept.value.split(",");
711
- const params = {
712
- agcy: newAgcy,
713
- dvsn: dvsn ? Number(dvsn) : 0,
714
- sect: sect ? Number(sect) : 0,
715
- actype: 2,
716
- // อุปกรณ์
717
- acrole: 8,
718
- // คอมพิวเตอร์
719
- acuuid: strCheck(csid),
720
- profile: {
721
- dvtype: 1,
722
- // คอมพิวเตอร์
723
- name: strCheck(inpName.value)
724
- }
725
- };
726
- await Create2(newAgcy, params).then(() => {
727
- Close(modal);
728
- Toast("\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 \u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08.!", { type: "success" });
729
- resolve();
730
- }).catch((err) => {
731
- Close(modal);
732
- Alert("\u0E40\u0E01\u0E34\u0E14\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14...!", { type: "failure" });
733
- reject(err);
734
- });
735
- }
736
- };
737
- });
738
- var Update2 = (agcy, acct, csid) => new Promise((resolve, reject) => {
739
- const modal = Create({
740
- title: "\u0E41\u0E01\u0E49\u0E44\u0E02\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14",
741
- icon: "&#xf390;",
742
- width: "400px",
743
- body: frmDevice,
744
- button: { save: true, cancel: true }
745
- });
746
- const inpAgcy = modal.querySelector("#inp-agcy");
747
- const inpDept = modal.querySelector("#inp-dept");
748
- const inpName = modal.querySelector("#inp-name");
749
- inpAgcy.onchange = () => {
750
- Set2(Number(inpAgcy.value), inpDept);
751
- };
752
- (async () => {
753
- await Read3(agcy, acct).then(async (resp) => {
754
- const data = resp.data;
755
- const profile = data.profile;
756
- await Set(inpAgcy);
757
- await Set2(data.agcy, inpDept);
758
- inpAgcy.value = String(data.agcy);
759
- inpDept.value = data.dvsn ? `${data.dvsn},${data.sect}` : "";
760
- inpName.value = profile.name;
761
- }).catch((err) => console.error(err));
762
- Ready2(modal);
763
- })();
764
- const form = modal.querySelector("form");
765
- if (form) form.onsubmit = async (e) => {
766
- e.preventDefault();
767
- Hidden(modal);
768
- const res = await Confirm("\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19.! \u0E01\u0E32\u0E23\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25");
769
- Visible(modal);
770
- if (res) {
771
- Loading3(modal);
772
- const newAgcy = Number(inpAgcy.value);
773
- const [dvsn, sect] = inpDept.value.split(",");
774
- const params = {
775
- agcy: newAgcy,
776
- dvsn: dvsn ? Number(dvsn) : 0,
777
- sect: sect ? Number(sect) : 0,
778
- actype: 2,
779
- // อุปกรณ์
780
- acrole: 8,
781
- // คอมพิวเตอร์
782
- acuuid: strCheck(csid),
783
- profile: {
784
- dvtype: 1,
785
- // คอมพิวเตอร์
786
- name: strCheck(inpName.value)
787
- }
788
- };
789
- await Update(agcy, acct, params).then(() => {
790
- Close(modal);
791
- Toast("\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 \u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08.!", { type: "success" });
792
- resolve();
793
- }).catch((err) => {
794
- Close(modal);
795
- Alert("\u0E40\u0E01\u0E34\u0E14\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14...!", { type: "failure" });
796
- reject(err);
797
- });
798
- }
799
- };
800
- });
801
- var PwdChk = () => new Promise((resolve) => {
802
- const modal = Create({
803
- title: "\u0E01\u0E23\u0E2D\u0E01\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19",
804
- icon: "&#xf084;",
805
- width: "230px",
806
- body: (
807
- /*html*/
808
- `
809
- <div class="cover">
810
- <input type="password" id="inp-pass"
811
- value="admin@wkr" style="width: 100%;">
812
- </div>
813
- `
814
- ),
815
- button: { save: true, cancel: true, align: "center" }
816
- });
817
- Ready2(modal);
818
- const inpPass = modal.querySelector("#inp-pass");
819
- inpPass?.focus();
820
- const form = modal.querySelector("form");
821
- if (form) form.onsubmit = async (e) => {
822
- e.preventDefault();
823
- const pass = inpPass?.value?.trim();
824
- if (pass === "admin@wkr") {
825
- await Close(modal);
826
- resolve(true);
827
- } else {
828
- await Alert("\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19.! \u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07", { type: "failure" });
829
- inpPass?.focus();
830
- }
831
- };
832
- });
833
365
 
834
366
  // src/svchub/hwlink/index.ts
835
- var app5 = document.querySelector("#app");
836
- var AGCY;
837
- var ACCT;
838
- var CSID;
367
+ var app4 = document.querySelector("#app");
839
368
  var isREADY;
840
369
  var WSSVC;
841
- var boxDv;
842
- var HwLink = () => {
843
- if (!app5) return;
370
+ var hwLink = () => {
371
+ if (!app4) return;
844
372
  const content = document.createElement("div");
845
373
  content.id = "app-content";
846
374
  content.innerHTML = template;
847
- app5.classList.add("full-page");
848
- app5.appendChild(content);
849
- boxDv = app5.querySelector("#device");
850
- const btnEdit = app5.querySelector("#btn-edit");
851
- if (btnEdit) btnEdit.onclick = async () => {
852
- if (await PwdChk()) {
853
- if (AGCY > 0 && ACCT > 0 && CSID != "") {
854
- Update2(AGCY, ACCT, CSID).then(() => {
855
- Loading2(boxDv, true);
856
- WSSVC.send('{"head": "KEYRST"}');
857
- }).catch((err) => console.error(err));
858
- } else {
859
- Create3(CSID).then(() => {
860
- Loading2(boxDv, true);
861
- WSSVC.send('{"head": "KEYRST"}');
862
- }).catch((err) => console.error(err));
863
- }
864
- }
865
- };
866
- Loading();
867
- AGCY = 0;
868
- ACCT = 0;
869
- CSID = "";
375
+ app4.classList.add("full-page");
376
+ app4.appendChild(content);
870
377
  isREADY = false;
871
- if (!gbvar.api.TOKEN) {
872
- const btn = app5.querySelectorAll("button");
873
- btn.forEach((elm) => elm.style.display = "none");
874
- }
378
+ loading2();
875
379
  wsSvc();
876
380
  };
877
381
  var wsSvc = () => {
878
- WSSVC = new WebSocket(gbvar.hwl.HOST);
382
+ WSSVC = new WebSocket(cfg.hwl.HOST);
879
383
  WSSVC.onopen = () => {
880
384
  hwinfo();
881
- dvinfo();
882
385
  T_hwinfo = setInterval(hwinfo, 1e3 * 10);
883
386
  };
884
387
  WSSVC.onclose = () => {
@@ -889,30 +392,26 @@ var wsSvc = () => {
889
392
  const resp = JSON.parse(e.data);
890
393
  const head = resp.head ? resp.head : "";
891
394
  const data = resp.data ? resp.data : "";
892
- if (head == "CSUUID") CSID = data;
893
- if (head == "HWINFO") setHwInfo(data);
894
- if (head == "DVINFO") {
395
+ if (head == "CSUUID") {
895
396
  if (!isREADY) {
896
397
  isREADY = true;
897
- Ready();
398
+ ready();
898
399
  }
899
- setDvInfo(data);
900
- Loading2(boxDv, false);
901
400
  }
401
+ if (head == "HWINFO") setHwInfo(data);
902
402
  };
903
403
  let T_hwinfo;
904
404
  const hwinfo = () => WSSVC.send('{"head": "HWINFO"}');
905
- const dvinfo = () => WSSVC.send('{"head": "DVINFO"}');
906
405
  };
907
406
  var setHwInfo = (data) => {
908
- if (!app5) return;
407
+ if (!app4) return;
909
408
  const svc = data.svc;
910
- app5.querySelector("#hwlink").innerText = `: ${svc.hwlink}`;
911
- app5.querySelector("#autoup").innerText = `: ${svc.autoup}`;
912
- app5.querySelector("#csuuid").innerText = `: ${data.csuuid}`;
409
+ app4.querySelector("#hwlink").innerText = `: ${svc.hwlink}`;
410
+ app4.querySelector("#autoup").innerText = `: ${svc.autoup}`;
411
+ app4.querySelector("#csuuid").innerText = `: ${data.csuuid}`;
913
412
  const cpu = data.cpu;
914
413
  const mem = data.mem;
915
- const hwinfo = app5.querySelector("#hwinfo");
414
+ const hwinfo = app4.querySelector("#hwinfo");
916
415
  const uptime = Number(data.uptime);
917
416
  const hh = Math.floor(uptime / 3600);
918
417
  const mm = Math.floor(uptime % 3600 / 60);
@@ -922,86 +421,14 @@ var setHwInfo = (data) => {
922
421
  hwinfo.querySelector("#host").innerText = `: ${data.hostname}`;
923
422
  hwinfo.querySelector("#os").innerText = `: ${data.platform}`;
924
423
  hwinfo.querySelector("#cpu").innerText = `: ${cpu.model}`;
925
- app5.querySelector("#mem").innerText = `: ${mem_text}`;
926
- app5.querySelector("#uptime").innerText = `: ${hh} h ${mm} m`;
927
- };
928
- var setDvInfo = (data) => {
929
- if (!app5 || !data.acct || Number(data.acct) == 0) return;
930
- AGCY = Number(data.agcy);
931
- ACCT = Number(data.acct);
932
- let dept = data.dvsn_name;
933
- if (Number(data.sect) > 0) {
934
- dept += ` - ${data.sect_name}`;
935
- }
936
- app5.querySelector("#agcy").innerText = `: ${data.agcy_name}`;
937
- app5.querySelector("#dept").innerText = `: ${dept}`;
938
- app5.querySelector("#dname").innerText = `: ${data.acname}`;
424
+ app4.querySelector("#mem").innerText = `: ${mem_text}`;
425
+ app4.querySelector("#uptime").innerText = `: ${hh} h ${mm} m`;
939
426
  };
940
427
 
941
- // src/mod/built-in/button/index.ts
942
- var Loading4 = (btn, state = false) => {
943
- if (state) {
944
- btn.querySelector(".btn-loader")?.remove();
945
- btn.style.color = "transparent";
946
- btn.style.position = "relative";
947
- btn.style.pointerEvents = "none";
948
- const loader = document.createElement("div");
949
- loader.className = "btn-loader";
950
- loader.innerHTML = `<div class="spinner s22"></div>`;
951
- btn.appendChild(loader);
952
- } else {
953
- btn.querySelector(".btn-loader")?.remove();
954
- btn.style.color = "";
955
- btn.style.position = "";
956
- btn.style.pointerEvents = "";
957
- }
958
- };
959
-
960
- // src/mod/drop/index.ts
961
- var Menu = (drop) => {
962
- const dropBtn = drop.querySelector(".drop-btn");
963
- const content = drop.querySelector(".drop-content");
964
- if (!dropBtn || !content) return;
965
- setBtnEvent(dropBtn, content);
966
- };
967
- var setBtnEvent = (btn, content) => {
968
- btn.onclick = () => {
969
- if (content.style.display == "block") {
970
- content.style.animation = "fade-out 0.4s forwards";
971
- content.onanimationend = () => {
972
- content.style.animation = "";
973
- content.style.display = "";
974
- };
975
- } else {
976
- Clear();
977
- content.style.animation = "fade-in 0.4s forwards";
978
- content.style.display = "block";
979
- content.onanimationend = () => {
980
- content.style.animation = "";
981
- };
982
- }
983
- };
984
- };
985
- var Clear = () => {
986
- const drop = document.querySelectorAll(".drop-content");
987
- drop.forEach((el) => {
988
- if (el.style.display == "block") {
989
- el.style.animation = "fade-out 0.4s forwards";
990
- el.onanimationend = () => {
991
- el.style.animation = "";
992
- el.style.display = "";
993
- };
994
- }
995
- });
996
- };
997
- window.addEventListener("click", (e) => {
998
- if (!e.target.matches(".drop-btn")) Clear();
999
- });
1000
-
1001
428
  // src/page/desktop/index.ts
1002
- var app6 = document.querySelector("#app");
1003
- var Create4 = (params) => {
1004
- if (!app6) return false;
429
+ var app5 = document.querySelector("#app");
430
+ var create = (params) => {
431
+ if (!app5) return false;
1005
432
  const uri = params.uri ? params.uri : "";
1006
433
  const size = params.size ? params.size : "";
1007
434
  const topbar = params.topbar ? params.topbar : "";
@@ -1010,13 +437,13 @@ var Create4 = (params) => {
1010
437
  const content = document.createElement("div");
1011
438
  content.id = "app-content";
1012
439
  content.innerHTML = template2;
1013
- app6.appendChild(content);
440
+ app5.appendChild(content);
1014
441
  let newNav = false;
1015
442
  if (size == "full") {
1016
- app6.classList.add("full-page");
443
+ app5.classList.add("full-page");
1017
444
  navRemove();
1018
445
  } else {
1019
- app6.classList.remove("full-page");
446
+ app5.classList.remove("full-page");
1020
447
  if (!document.querySelector("#topbar")) {
1021
448
  navCreate({ topbar, sidebar });
1022
449
  newNav = true;
@@ -1044,9 +471,9 @@ var navCreate = (params) => {
1044
471
  setScreen();
1045
472
  window.addEventListener("resize", setScreen);
1046
473
  const dropUser = topbar.querySelector("#drop-user");
1047
- if (dropUser) Menu(dropUser);
474
+ if (dropUser) menu(dropUser);
1048
475
  const logout = () => {
1049
- Confirm("\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19..! \u0E01\u0E32\u0E23\u0E2D\u0E2D\u0E01\u0E08\u0E32\u0E01\u0E23\u0E30\u0E1A\u0E1A").then((res) => {
476
+ confirm("\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19..! \u0E01\u0E32\u0E23\u0E2D\u0E2D\u0E01\u0E08\u0E32\u0E01\u0E23\u0E30\u0E1A\u0E1A").then((res) => {
1050
477
  if (res) window.location.replace("/logout");
1051
478
  });
1052
479
  };
@@ -1072,18 +499,18 @@ var navActive = (uri) => {
1072
499
  if (!btn.disabled && uri == path) {
1073
500
  btn.classList.add("active");
1074
501
  if (btn.classList.contains("grp-btn")) {
1075
- const menu = btn.parentNode?.querySelector(".submenu");
502
+ const menu2 = btn.parentNode?.querySelector(".submenu");
1076
503
  const grpBtn = btn.parentNode?.querySelector(".grp-btn");
1077
- if (menu && grpBtn) {
1078
- menu.style.maxHeight = "400px";
504
+ if (menu2 && grpBtn) {
505
+ menu2.style.maxHeight = "400px";
1079
506
  grpBtn.classList.add("bar");
1080
507
  }
1081
508
  }
1082
509
  if (btn.classList.contains("sub-btn")) {
1083
- const menu = btn.parentNode;
1084
- const grpBtn = menu.parentNode?.querySelector(".grp-btn");
1085
- if (menu && grpBtn && menu.classList.contains("submenu")) {
1086
- menu.style.maxHeight = "400px";
510
+ const menu2 = btn.parentNode;
511
+ const grpBtn = menu2.parentNode?.querySelector(".grp-btn");
512
+ if (menu2 && grpBtn && menu2.classList.contains("submenu")) {
513
+ menu2.style.maxHeight = "400px";
1087
514
  grpBtn.classList.add("active");
1088
515
  grpBtn.classList.remove("bar");
1089
516
  }
@@ -1118,7 +545,7 @@ var navMenu = (state) => {
1118
545
  sidebar.classList.remove("menu-out");
1119
546
  }
1120
547
  };
1121
- var Clear2 = () => {
548
+ var clear2 = () => {
1122
549
  const sidebar = document.querySelector("#sidebar");
1123
550
  if (!sidebar) return;
1124
551
  const scWidth = window.innerWidth ? window.innerWidth : screen.width;
@@ -1129,7 +556,7 @@ var Clear2 = () => {
1129
556
  }
1130
557
  };
1131
558
  window.addEventListener("click", (e) => {
1132
- if (!e.target.matches("#nav-menu")) Clear2();
559
+ if (!e.target.matches("#nav-menu")) clear2();
1133
560
  });
1134
561
  var navHwLink = () => {
1135
562
  const btnHwl = document.querySelector("#nav-hwlink");
@@ -1138,8 +565,8 @@ var navHwLink = () => {
1138
565
  if (agent.indexOf("win") != -1) {
1139
566
  btnHwl.style.display = "block";
1140
567
  btnHwl.onclick = () => {
1141
- Loading4(btnHwl, true);
1142
- const ws = new WebSocket(gbvar.hwl.HOST);
568
+ loading(btnHwl, true);
569
+ const ws = new WebSocket(cfg.hwl.HOST);
1143
570
  ws.onerror = () => {
1144
571
  download();
1145
572
  done();
@@ -1150,14 +577,14 @@ var navHwLink = () => {
1150
577
  done();
1151
578
  };
1152
579
  const done = () => {
1153
- Loading4(btnHwl, false);
580
+ loading(btnHwl, false);
1154
581
  };
1155
582
  };
1156
583
  } else {
1157
584
  btnHwl.style.display = "none";
1158
585
  }
1159
586
  const download = () => {
1160
- const url = gbvar.hwl.FILE;
587
+ const url = cfg.hwl.FILE;
1161
588
  const link = document.createElement("a");
1162
589
  link.href = url;
1163
590
  link.download = String(url.split("/").pop());
@@ -1184,14 +611,14 @@ var onlineStatus = () => {
1184
611
  window.addEventListener("online", onlineStatus);
1185
612
  window.addEventListener("offline", onlineStatus);
1186
613
  export {
1187
- Clear2 as Clear,
1188
- Create4 as Create,
1189
- Error,
1190
- FullLoad,
1191
- HwLink,
1192
- Inform,
1193
- Loading,
1194
- NotFound,
1195
- Ready
614
+ clear2 as clear,
615
+ create,
616
+ error,
617
+ fullLoad,
618
+ hwLink,
619
+ inform,
620
+ loading2 as loading,
621
+ notFound,
622
+ ready
1196
623
  };
1197
624
  //# sourceMappingURL=index.js.map