slimsdk 0.1.55 → 0.2.1

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 (90) hide show
  1. package/README.md +3 -5
  2. package/dist/desktop/index.css +0 -48
  3. package/dist/desktop/index.css.map +1 -1
  4. package/dist/desktop/index.d.ts +14 -13
  5. package/dist/desktop/index.js +1476 -1972
  6. package/dist/desktop/index.js.map +1 -1
  7. package/dist/docs-BHtSyl34.d.ts +10 -0
  8. package/dist/index-B4158M0u.d.ts +21 -0
  9. package/dist/index-BAQxKstM.d.ts +8 -0
  10. package/dist/index-BMqjxP9I.d.ts +11 -0
  11. package/dist/index-CD53Vh6h.d.ts +31 -0
  12. package/dist/index-COGi5mfY.d.ts +28 -0
  13. package/dist/index-COUeXLOQ.d.ts +3 -0
  14. package/dist/index-CoYHkkyT.d.ts +14 -0
  15. package/dist/{index-kr8P3eEW.d.ts → index-Cvng8f_u.d.ts} +10 -9
  16. package/dist/index-D5CUpF9v.d.ts +10 -0
  17. package/dist/index-DBhzpIiB.d.ts +32 -0
  18. package/dist/index-D_o5c-YA.d.ts +134 -0
  19. package/dist/index-DzKPF0ja.d.ts +14 -0
  20. package/dist/index-jVam7Sxi.d.ts +15 -0
  21. package/dist/index-uQOR5bdy.d.ts +20 -0
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.js +2 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/lib/index.d.ts +1 -1
  26. package/dist/lib/index.js +194 -1
  27. package/dist/lib/index.js.map +1 -1
  28. package/dist/mobile/index.css +0 -48
  29. package/dist/mobile/index.css.map +1 -1
  30. package/dist/mobile/index.d.ts +13 -12
  31. package/dist/mobile/index.js +542 -808
  32. package/dist/mobile/index.js.map +1 -1
  33. package/dist/mod/button/index.d.ts +1 -1
  34. package/dist/mod/button/index.js +2 -2
  35. package/dist/mod/button/index.js.map +1 -1
  36. package/dist/mod/cover/index.d.ts +1 -1
  37. package/dist/mod/cover/index.js +3 -3
  38. package/dist/mod/cover/index.js.map +1 -1
  39. package/dist/mod/dialog/index.d.ts +1 -1
  40. package/dist/mod/dialog/index.js +13 -13
  41. package/dist/mod/dialog/index.js.map +1 -1
  42. package/dist/mod/drawer/index.d.ts +1 -1
  43. package/dist/mod/drawer/index.js +8 -8
  44. package/dist/mod/drawer/index.js.map +1 -1
  45. package/dist/mod/drop/index.d.ts +1 -1
  46. package/dist/mod/drop/index.js +15 -15
  47. package/dist/mod/drop/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/svchub/index.d.ts +2 -0
  67. package/dist/svchub/index.js +760 -0
  68. package/dist/svchub/index.js.map +1 -0
  69. package/dist/worker/hubworker.js +1 -1
  70. package/dist/worker/hubworker.js.map +1 -1
  71. package/package.json +7 -6
  72. package/dist/index-B2HHS23A.d.ts +0 -20
  73. package/dist/index-BQcJsVJ-.d.ts +0 -10
  74. package/dist/index-Bf_lg-oZ.d.ts +0 -339
  75. package/dist/index-ChdqOPJq.d.ts +0 -15
  76. package/dist/index-CzsSwSvp.d.ts +0 -21
  77. package/dist/index-D3tu8t6p.d.ts +0 -28
  78. package/dist/index-DQt71MNx.d.ts +0 -31
  79. package/dist/index-DZdXvqxA.d.ts +0 -10
  80. package/dist/index-DcvauYN8.d.ts +0 -14
  81. package/dist/index-Pd7FTiEW.d.ts +0 -32
  82. package/dist/index-QRbamarh.d.ts +0 -8
  83. package/dist/mod/global/index.d.ts +0 -57
  84. package/dist/mod/global/index.js +0 -117
  85. package/dist/mod/global/index.js.map +0 -1
  86. package/dist/mod/hwlink/index.d.ts +0 -3
  87. package/dist/mod/hwlink/index.js +0 -873
  88. package/dist/mod/hwlink/index.js.map +0 -1
  89. package/dist/mod/hwlink/style.css +0 -1134
  90. package/dist/mod/hwlink/style.css.map +0 -1
@@ -4,20 +4,136 @@ var __export = (target, all) => {
4
4
  __defProp(target, name, { get: all[name], enumerable: true });
5
5
  };
6
6
 
7
+ // package.json
8
+ var version = "0.2.1";
9
+
10
+ // src/config/global.ts
11
+ var info = () => `sdk ${version}`;
12
+ var init = (params) => {
13
+ if (params?.svcWorker) svcWorker(params.svcWorker);
14
+ if (params?.webNotify) webNotify();
15
+ if (params?.wakeLock) wakeLock();
16
+ if (params?.btnToTop) btnToTop();
17
+ if (params?.hideTabbar) hideTabbar();
18
+ };
19
+ var svcWorker = (worker) => {
20
+ if (!("serviceWorker" in navigator)) return;
21
+ navigator.serviceWorker.register(worker, {
22
+ type: "module"
23
+ }).catch((err) => console.warn(err));
24
+ };
25
+ var webNotify = () => {
26
+ if (!("Notification" in window)) return;
27
+ Notification.requestPermission().catch((err) => console.warn(err));
28
+ };
29
+ var wakeLock = () => {
30
+ if (document.hidden) return;
31
+ navigator.wakeLock.request("screen").catch((err) => console.warn(err));
32
+ };
33
+ var hideTabbar = () => {
34
+ const winHeight = window.innerHeight;
35
+ window.visualViewport?.addEventListener("resize", () => {
36
+ const tabbar = document.querySelector("#tabbar");
37
+ if (!tabbar) return;
38
+ if (winHeight != window.innerHeight) {
39
+ tabbar.classList.add("hide");
40
+ } else {
41
+ tabbar.classList.remove("hide");
42
+ }
43
+ });
44
+ };
45
+ var app = document.querySelector("#app");
46
+ var btnToTop = () => {
47
+ if (!app) return;
48
+ const totop = document.createElement("div");
49
+ totop.id = "totop";
50
+ totop.innerHTML = /* html */
51
+ `
52
+ <button id="btn-totop" class="circle purple" shadow="true"
53
+ title="\u0E01\u0E25\u0E31\u0E1A\u0E14\u0E49\u0E32\u0E19\u0E1A\u0E19">&#xf341;</button>
54
+ `;
55
+ document.body.appendChild(totop);
56
+ totop.querySelector("#btn-totop").onclick = () => {
57
+ app.scrollTo({ top: 0, behavior: "smooth" });
58
+ };
59
+ app.addEventListener("scroll", () => {
60
+ if (app.scrollTop > 1e3) {
61
+ totop.style.display = "block";
62
+ if (app.classList.contains("tabbar")) {
63
+ app.style.paddingBottom = "116px";
64
+ } else {
65
+ app.style.paddingBottom = "60px";
66
+ }
67
+ } else {
68
+ totop.style.display = "";
69
+ app.style.paddingBottom = "";
70
+ }
71
+ const tabsMobile = app.querySelector(".slim-tabs.mobile .tabs-header");
72
+ if (!tabsMobile) return;
73
+ if (app.scrollTop > 10) {
74
+ tabsMobile.style.boxShadow = `rgba(0, 0, 0, 0.16) 0px 1px 4px`;
75
+ } else {
76
+ tabsMobile.style.boxShadow = "";
77
+ }
78
+ });
79
+ };
80
+
81
+ // src/config/index.ts
82
+ var cfg = {
83
+ UNIX_TIME: 0,
84
+ app: {
85
+ UUID: "",
86
+ NAME: "",
87
+ SECRET: "",
88
+ VERSION: "",
89
+ RELEASE: "",
90
+ CALLBACK: ""
91
+ },
92
+ api: {
93
+ URL: "",
94
+ TOKEN: ""
95
+ },
96
+ hub: {
97
+ LOGIN: "https://wkrh.info/oauth/v1/authorize",
98
+ OAUTH: "https://wkrh.info:8850/oauth/v1",
99
+ API: "https://wkrh.info:8850/api/v1",
100
+ WSS: "wss://wkrh.info:8855/ws",
101
+ UUID: ""
102
+ },
103
+ hwl: {
104
+ HOST: "ws://localhost:8844/ws",
105
+ FILE: "https://wkrh.info/app/hwlink/hwlink_setup.exe"
106
+ },
107
+ user: {
108
+ sub: 0,
109
+ name: "",
110
+ utyp: "",
111
+ unit: "",
112
+ unit_id: 0,
113
+ role_id: 0,
114
+ metadata: {
115
+ emp_type: "",
116
+ emp_level: "",
117
+ position: ""
118
+ },
119
+ picture: ""
120
+ }
121
+ };
122
+
7
123
  // src/page/mobile/index.ts
8
124
  var mobile_exports = {};
9
125
  __export(mobile_exports, {
10
- Create: () => Create,
11
- Error: () => Error2,
12
- FullLoad: () => FullLoad,
13
- Inform: () => Inform,
14
- Loading: () => Loading,
15
- NotFound: () => NotFound,
16
- Ready: () => Ready
126
+ create: () => create,
127
+ error: () => error,
128
+ fullLoad: () => fullLoad,
129
+ inform: () => inform,
130
+ loading: () => loading,
131
+ notFound: () => notFound,
132
+ ready: () => ready
17
133
  });
18
134
 
19
135
  // src/page/index.ts
20
- var app = document.querySelector("#app");
136
+ var app2 = document.querySelector("#app");
21
137
  var pageSpin = (
22
138
  /*html*/
23
139
  `
@@ -29,26 +145,26 @@ var pageSpin = (
29
145
  `
30
146
  );
31
147
  var smallSpin = `<div class="spinner s32"></div>`;
32
- var Loading = (size = "default") => {
33
- if (!app) return;
34
- if (!app.querySelector("#page-loader")) {
148
+ var loading = (size = "default") => {
149
+ if (!app2) return;
150
+ if (!app2.querySelector("#page-loader")) {
35
151
  const loader = document.createElement("div");
36
152
  loader.id = "page-loader";
37
153
  loader.className = "overlay center";
38
154
  loader.innerHTML = size == "default" ? pageSpin : smallSpin;
39
- app.appendChild(loader);
155
+ app2.appendChild(loader);
40
156
  }
41
- const content = app.querySelector("#app-content");
157
+ const content = app2.querySelector("#app-content");
42
158
  if (content) content.style.display = "none";
43
159
  };
44
- var Ready = (delay = 400) => {
160
+ var ready = (delay = 400) => {
45
161
  new Promise((r) => setTimeout(r, delay)).then(() => {
46
162
  clearLoader(true);
47
163
  });
48
164
  };
49
- var Error2 = (err) => {
165
+ var error = (err) => {
50
166
  clearLoader(false);
51
- if (!app) return;
167
+ if (!app2) return;
52
168
  const box = document.createElement("div");
53
169
  box.className = "page-error";
54
170
  box.innerHTML = /*html*/
@@ -57,12 +173,12 @@ var Error2 = (err) => {
57
173
  <div class="topic">&#x2726; \u0E40\u0E01\u0E34\u0E14\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14 &#x2726;</div>
58
174
  <div class="text">${err}</div>
59
175
  `;
60
- app.prepend(box);
176
+ app2.prepend(box);
61
177
  throw err;
62
178
  };
63
- var NotFound = () => {
64
- if (!app) return;
65
- app.innerHTML = /*html*/
179
+ var notFound = () => {
180
+ if (!app2) return;
181
+ app2.innerHTML = /*html*/
66
182
  `
67
183
  <div class="page-not-found">
68
184
  <h1>4<i class="fas fa-ghost"></i>4</h1>
@@ -71,11 +187,11 @@ var NotFound = () => {
71
187
  </div>
72
188
  `;
73
189
  };
74
- var FullLoad = () => {
190
+ var fullLoad = () => {
75
191
  clearNavbar();
76
- if (!app) return;
77
- app.classList.add("full-page");
78
- app.innerHTML = /*html*/
192
+ if (!app2) return;
193
+ app2.classList.add("full-page");
194
+ app2.innerHTML = /*html*/
79
195
  `
80
196
  <div class="page-full-load">
81
197
  <div class="spinner"></div>
@@ -83,11 +199,11 @@ var FullLoad = () => {
83
199
  </div>
84
200
  `;
85
201
  };
86
- var Inform = (params) => {
202
+ var inform = (params) => {
87
203
  clearNavbar();
88
- if (!app) return;
89
- app.classList.add("full-page");
90
- app.innerHTML = /*html*/
204
+ if (!app2) return;
205
+ app2.classList.add("full-page");
206
+ app2.innerHTML = /*html*/
91
207
  `
92
208
  <div class="page-inform ${params.color}">
93
209
  <div class="icon solid">${params.icon}</div>
@@ -97,7 +213,7 @@ var Inform = (params) => {
97
213
  </button>
98
214
  </div>
99
215
  `;
100
- const btn = app.querySelector("button");
216
+ const btn = app2.querySelector("button");
101
217
  btn.onclick = () => window.location.replace(params.btnUrl);
102
218
  };
103
219
  var clearNavbar = () => {
@@ -107,34 +223,34 @@ var clearNavbar = () => {
107
223
  if (topbar) topbar.remove();
108
224
  if (tabbar) tabbar.remove();
109
225
  if (sidebar) sidebar.remove();
110
- if (app) app.className = "";
226
+ if (app2) app2.className = "";
111
227
  };
112
228
  var clearLoader = (showContent) => {
113
- if (!app) return;
114
- const loader = app.querySelector("#page-loader");
229
+ if (!app2) return;
230
+ const loader = app2.querySelector("#page-loader");
115
231
  if (loader) {
116
232
  loader.style.animation = "fade-out 0.4s forwards";
117
233
  loader.onanimationend = () => loader.remove();
118
234
  }
119
- const content = app.querySelector("#app-content");
235
+ const content = app2.querySelector("#app-content");
120
236
  if (content) content.style.display = showContent ? "block" : "none";
121
237
  };
122
238
 
123
239
  // src/page/mobile/index.ts
124
- var app2 = document.querySelector("#app");
125
- var Create = (params) => {
126
- if (!app2) return;
240
+ var app3 = document.querySelector("#app");
241
+ var create = (params) => {
242
+ if (!app3) return;
127
243
  const size = params.size ? params.size : "";
128
244
  const template = params.template ? params.template : "";
129
245
  const content = document.createElement("div");
130
246
  content.id = "app-content";
131
247
  content.innerHTML = template;
132
- app2.appendChild(content);
248
+ app3.appendChild(content);
133
249
  if (size == "full") {
134
250
  navRemove();
135
- app2.classList.add("full-page");
251
+ app3.classList.add("full-page");
136
252
  } else {
137
- app2.classList.remove("full-page");
253
+ app3.classList.remove("full-page");
138
254
  if (document.querySelector("#topbar")) {
139
255
  setTopbar(params);
140
256
  } else {
@@ -182,7 +298,7 @@ var navRemove = () => {
182
298
  if (topbar) topbar.remove();
183
299
  if (tabbar) tabbar.remove();
184
300
  if (sidebar) sidebar.remove();
185
- if (app2) app2.className = "";
301
+ if (app3) app3.className = "";
186
302
  };
187
303
  var setTopbar = (params) => {
188
304
  const topbar = document.querySelector("#topbar");
@@ -205,10 +321,10 @@ var setTopbar = (params) => {
205
321
  if (!tabbar) return;
206
322
  if (params.button?.tab) {
207
323
  tabbar.style.display = "block";
208
- if (app2) app2.classList.add("tabbar");
324
+ if (app3) app3.classList.add("tabbar");
209
325
  } else {
210
326
  tabbar.style.display = "none";
211
- if (app2) app2.classList.remove("tabbar");
327
+ if (app3) app3.classList.remove("tabbar");
212
328
  }
213
329
  tabActive(params.uri);
214
330
  };
@@ -263,120 +379,6 @@ __export(docs_exports, {
263
379
  changelog: () => changelog,
264
380
  privacy: () => privacy
265
381
  });
266
-
267
- // package.json
268
- var version = "0.1.55";
269
-
270
- // src/mod/global.ts
271
- var gbvar = {
272
- UNIX_TIME: 0,
273
- app: {
274
- UUID: "",
275
- NAME: "",
276
- VERSION: "",
277
- RELEASE: ""
278
- },
279
- api: {
280
- URL: "",
281
- TOKEN: ""
282
- },
283
- hub: {
284
- LOGIN: "https://wkrh.info/oauth/v1/authorize",
285
- OAUTH: "https://wkrh.info:8850/oauth/v1",
286
- API: "https://wkrh.info:8850/api/v1",
287
- WSS: "wss://wkrh.info:8855/ws",
288
- UUID: ""
289
- },
290
- hwl: {
291
- HOST: "ws://localhost:8844/ws",
292
- FILE: "https://wkrh.info/app/hwlink/hwlink_setup.exe"
293
- },
294
- user: {
295
- ACCT: 0,
296
- ACTYPE: 0,
297
- ACROLE: 0,
298
- ACNAME: "",
299
- PICTURE: "",
300
- AGCY: 0,
301
- DVSN: 0,
302
- SECT: 0,
303
- DEPT: "0,0",
304
- AGCY_NAME: "",
305
- DVSN_NAME: "",
306
- SECT_NAME: ""
307
- }
308
- };
309
- var info = () => `sdk ${version}`;
310
- var init = (params) => {
311
- if (params?.svcWorker) svcWorker(params.svcWorker);
312
- if (params?.webNotify) webNotify();
313
- if (params?.wakeLock) wakeLock();
314
- if (params?.btnToTop) btnToTop();
315
- if (params?.hideTabbar) hideTabbar();
316
- };
317
- var svcWorker = (worker) => {
318
- if (!("serviceWorker" in navigator)) return;
319
- navigator.serviceWorker.register(worker, {
320
- type: "module"
321
- }).catch((err) => console.warn(err));
322
- };
323
- var webNotify = () => {
324
- if (!("Notification" in window)) return;
325
- Notification.requestPermission().catch((err) => console.warn(err));
326
- };
327
- var wakeLock = () => {
328
- if (document.hidden) return;
329
- navigator.wakeLock.request("screen").catch((err) => console.warn(err));
330
- };
331
- var hideTabbar = () => {
332
- const winHeight = window.innerHeight;
333
- window.visualViewport?.addEventListener("resize", () => {
334
- const tabbar = document.querySelector("#tabbar");
335
- if (!tabbar) return;
336
- if (winHeight != window.innerHeight) {
337
- tabbar.classList.add("hide");
338
- } else {
339
- tabbar.classList.remove("hide");
340
- }
341
- });
342
- };
343
- var app3 = document.querySelector("#app");
344
- var btnToTop = () => {
345
- if (!app3) return;
346
- const totop = document.createElement("div");
347
- totop.id = "totop";
348
- totop.innerHTML = /* html */
349
- `
350
- <button id="btn-totop" class="circle purple" shadow="true"
351
- title="\u0E01\u0E25\u0E31\u0E1A\u0E14\u0E49\u0E32\u0E19\u0E1A\u0E19">&#xf341;</button>
352
- `;
353
- document.body.appendChild(totop);
354
- totop.querySelector("#btn-totop").onclick = () => {
355
- app3.scrollTo({ top: 0, behavior: "smooth" });
356
- };
357
- app3.addEventListener("scroll", () => {
358
- if (app3.scrollTop > 1e3) {
359
- totop.style.display = "block";
360
- if (app3.classList.contains("tabbar")) {
361
- app3.style.paddingBottom = "116px";
362
- } else {
363
- app3.style.paddingBottom = "60px";
364
- }
365
- } else {
366
- totop.style.display = "";
367
- app3.style.paddingBottom = "";
368
- }
369
- const tabsMobile = app3.querySelector(".slim-tabs.mobile .tabs-header");
370
- if (!tabsMobile) return;
371
- if (app3.scrollTop > 10) {
372
- tabsMobile.style.boxShadow = `rgba(0, 0, 0, 0.16) 0px 1px 4px`;
373
- } else {
374
- tabsMobile.style.boxShadow = "";
375
- }
376
- });
377
- };
378
-
379
- // src/page/docs.ts
380
382
  var privacy = async () => {
381
383
  const url = "https://cdn.jsdelivr.net/gh/wkrdev/.github/docs/privacy.md";
382
384
  const resp = await fetch(url);
@@ -385,9 +387,9 @@ var privacy = async () => {
385
387
  }
386
388
  return "";
387
389
  };
388
- var changelog = async (clnt = 1) => {
389
- const url = `/clnt/${clnt}/log`;
390
- const resp = await fetch(gbvar.hub.API + url);
390
+ var changelog = async (app8 = 1) => {
391
+ const url = `/apps/${app8}/logs`;
392
+ const resp = await fetch(cfg.hub.API + url);
391
393
  if (resp.ok) {
392
394
  const json = await resp.json();
393
395
  return json.data;
@@ -416,6 +418,7 @@ __export(lib_exports, {
416
418
  getAge: () => getAge,
417
419
  isToday: () => isToday,
418
420
  jwtParse: () => jwtParse,
421
+ md5Hash: () => md5Hash,
419
422
  numFormat: () => numFormat,
420
423
  setYear: () => setYear,
421
424
  shiftIndex: () => shiftIndex,
@@ -829,9 +832,9 @@ var getPosition = (params) => new Promise((resolve, reject) => {
829
832
  });
830
833
  } else reject("not support geolocation");
831
834
  });
832
- var watchPosition = (success, error) => {
835
+ var watchPosition = (success, error2) => {
833
836
  if (navigator.geolocation) {
834
- return navigator.geolocation.watchPosition(success, error, {
837
+ return navigator.geolocation.watchPosition(success, error2, {
835
838
  enableHighAccuracy: true,
836
839
  timeout: 5e3,
837
840
  maximumAge: 0
@@ -862,7 +865,7 @@ __export(cookie_exports, {
862
865
  });
863
866
  var setItem = (key, val, exp) => {
864
867
  const d = /* @__PURE__ */ new Date();
865
- d.setTime(d.getTime() + exp * 24 * 60 * 60 * 1e3);
868
+ d.setTime(d.getTime() + 1e3 * exp);
866
869
  const expires = "expires=" + d.toUTCString();
867
870
  document.cookie = `${key}=${val};${expires};path=/`;
868
871
  };
@@ -974,6 +977,198 @@ function ThaiBahtText(input) {
974
977
  }
975
978
  var thbText = ThaiBahtText;
976
979
 
980
+ // src/lib/md5.ts
981
+ function safeAdd(x, y) {
982
+ const lsw = (x & 65535) + (y & 65535);
983
+ const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
984
+ return msw << 16 | lsw & 65535;
985
+ }
986
+ function bitRotateLeft(num, cnt) {
987
+ return num << cnt | num >>> 32 - cnt;
988
+ }
989
+ function md5cmn(q, a, b, x, s, t) {
990
+ return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
991
+ }
992
+ function md5ff(a, b, c, d, x, s, t) {
993
+ return md5cmn(b & c | ~b & d, a, b, x, s, t);
994
+ }
995
+ function md5gg(a, b, c, d, x, s, t) {
996
+ return md5cmn(b & d | c & ~d, a, b, x, s, t);
997
+ }
998
+ function md5hh(a, b, c, d, x, s, t) {
999
+ return md5cmn(b ^ c ^ d, a, b, x, s, t);
1000
+ }
1001
+ function md5ii(a, b, c, d, x, s, t) {
1002
+ return md5cmn(c ^ (b | ~d), a, b, x, s, t);
1003
+ }
1004
+ function binlMD5(x, len) {
1005
+ x[len >> 5] |= 128 << len % 32;
1006
+ x[(len + 64 >>> 9 << 4) + 14] = len;
1007
+ let i;
1008
+ let olda;
1009
+ let oldb;
1010
+ let oldc;
1011
+ let oldd;
1012
+ let a = 1732584193;
1013
+ let b = -271733879;
1014
+ let c = -1732584194;
1015
+ let d = 271733878;
1016
+ for (i = 0; i < x.length; i += 16) {
1017
+ olda = a;
1018
+ oldb = b;
1019
+ oldc = c;
1020
+ oldd = d;
1021
+ a = md5ff(a, b, c, d, x[i], 7, -680876936);
1022
+ d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
1023
+ c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
1024
+ b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
1025
+ a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
1026
+ d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
1027
+ c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
1028
+ b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
1029
+ a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
1030
+ d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
1031
+ c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
1032
+ b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
1033
+ a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
1034
+ d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
1035
+ c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
1036
+ b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
1037
+ a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
1038
+ d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
1039
+ c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
1040
+ b = md5gg(b, c, d, a, x[i], 20, -373897302);
1041
+ a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
1042
+ d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
1043
+ c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
1044
+ b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
1045
+ a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
1046
+ d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
1047
+ c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
1048
+ b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
1049
+ a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
1050
+ d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
1051
+ c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
1052
+ b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
1053
+ a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
1054
+ d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
1055
+ c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
1056
+ b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
1057
+ a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
1058
+ d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
1059
+ c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
1060
+ b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
1061
+ a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
1062
+ d = md5hh(d, a, b, c, x[i], 11, -358537222);
1063
+ c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
1064
+ b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
1065
+ a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
1066
+ d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
1067
+ c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
1068
+ b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
1069
+ a = md5ii(a, b, c, d, x[i], 6, -198630844);
1070
+ d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
1071
+ c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
1072
+ b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
1073
+ a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
1074
+ d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
1075
+ c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
1076
+ b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
1077
+ a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
1078
+ d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
1079
+ c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
1080
+ b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
1081
+ a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
1082
+ d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
1083
+ c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
1084
+ b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
1085
+ a = safeAdd(a, olda);
1086
+ b = safeAdd(b, oldb);
1087
+ c = safeAdd(c, oldc);
1088
+ d = safeAdd(d, oldd);
1089
+ }
1090
+ return [a, b, c, d];
1091
+ }
1092
+ function binl2rstr(input) {
1093
+ let i;
1094
+ let output = "";
1095
+ const length32 = input.length * 32;
1096
+ for (i = 0; i < length32; i += 8) {
1097
+ output += String.fromCharCode(input[i >> 5] >>> i % 32 & 255);
1098
+ }
1099
+ return output;
1100
+ }
1101
+ function rstr2binl(input) {
1102
+ let i;
1103
+ const output = [];
1104
+ output[(input.length >> 2) - 1] = void 0;
1105
+ for (i = 0; i < output.length; i += 1) {
1106
+ output[i] = 0;
1107
+ }
1108
+ const length8 = input.length * 8;
1109
+ for (i = 0; i < length8; i += 8) {
1110
+ output[i >> 5] |= (input.charCodeAt(i / 8) & 255) << i % 32;
1111
+ }
1112
+ return output;
1113
+ }
1114
+ function rstrMD5(s) {
1115
+ return binl2rstr(binlMD5(rstr2binl(s), s.length * 8));
1116
+ }
1117
+ function rstrHMACMD5(key, data) {
1118
+ let i;
1119
+ let bkey = rstr2binl(key);
1120
+ const ipad = [];
1121
+ const opad = [];
1122
+ ipad[15] = opad[15] = void 0;
1123
+ if (bkey.length > 16) {
1124
+ bkey = binlMD5(bkey, key.length * 8);
1125
+ }
1126
+ for (i = 0; i < 16; i += 1) {
1127
+ ipad[i] = bkey[i] ^ 909522486;
1128
+ opad[i] = bkey[i] ^ 1549556828;
1129
+ }
1130
+ const hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
1131
+ return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));
1132
+ }
1133
+ function rstr2hex(input) {
1134
+ const hexTab = "0123456789abcdef";
1135
+ let output = "";
1136
+ let x;
1137
+ let i;
1138
+ for (i = 0; i < input.length; i += 1) {
1139
+ x = input.charCodeAt(i);
1140
+ output += hexTab.charAt(x >>> 4 & 15) + hexTab.charAt(x & 15);
1141
+ }
1142
+ return output;
1143
+ }
1144
+ function str2rstrUTF8(input) {
1145
+ return decodeURIComponent(encodeURIComponent(input));
1146
+ }
1147
+ function rawMD5(s) {
1148
+ return rstrMD5(str2rstrUTF8(s));
1149
+ }
1150
+ function hexMD5(s) {
1151
+ return rstr2hex(rawMD5(s));
1152
+ }
1153
+ function rawHMACMD5(k, d) {
1154
+ return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d));
1155
+ }
1156
+ function hexHMACMD5(k, d) {
1157
+ return rstr2hex(rawHMACMD5(k, d));
1158
+ }
1159
+ function md5Hash(string, key, raw) {
1160
+ if (!key) {
1161
+ if (!raw) {
1162
+ return hexMD5(string);
1163
+ }
1164
+ return rawMD5(string);
1165
+ }
1166
+ if (!raw) {
1167
+ return hexHMACMD5(key, string);
1168
+ }
1169
+ return rawHMACMD5(key, string);
1170
+ }
1171
+
977
1172
  // src/mod/index.ts
978
1173
  var mod_exports = {};
979
1174
  __export(mod_exports, {
@@ -991,9 +1186,9 @@ __export(mod_exports, {
991
1186
  // src/mod/built-in/button/index.ts
992
1187
  var button_exports = {};
993
1188
  __export(button_exports, {
994
- Loading: () => Loading2
1189
+ loading: () => loading2
995
1190
  });
996
- var Loading2 = (btn, state = false) => {
1191
+ var loading2 = (btn, state = false) => {
997
1192
  if (state) {
998
1193
  btn.querySelector(".btn-loader")?.remove();
999
1194
  btn.style.color = "transparent";
@@ -1030,10 +1225,10 @@ var fitSize = (elm, delay = 0) => {
1030
1225
  // src/mod/built-in/cover/index.ts
1031
1226
  var cover_exports = {};
1032
1227
  __export(cover_exports, {
1033
- Loading: () => Loading3,
1034
- acdInit: () => acdInit
1228
+ acdInit: () => acdInit,
1229
+ loading: () => loading3
1035
1230
  });
1036
- var Loading3 = (cover, state = false, align = "top", hide = true) => {
1231
+ var loading3 = (cover, state = false, align = "top", hide = true) => {
1037
1232
  const inner = cover.querySelectorAll("*");
1038
1233
  if (state) {
1039
1234
  cover.querySelector(".cover-loader")?.remove();
@@ -1220,12 +1415,12 @@ var camReady = (cam) => {
1220
1415
  // src/mod/dialog/index.ts
1221
1416
  var dialog_exports = {};
1222
1417
  __export(dialog_exports, {
1223
- Alert: () => Alert,
1224
- Confirm: () => Confirm,
1225
- Toast: () => Toast
1418
+ alert: () => alert,
1419
+ confirm: () => confirm,
1420
+ toast: () => toast
1226
1421
  });
1227
1422
  var app4 = document.querySelector("#app");
1228
- var Confirm = (message, params) => new Promise((resolve) => {
1423
+ var confirm = (message, params) => new Promise((resolve) => {
1229
1424
  if (!app4) return;
1230
1425
  const doc = params && params?.target ? params.target : app4;
1231
1426
  const color = params && params?.color ? params.color : "green";
@@ -1259,7 +1454,7 @@ var Confirm = (message, params) => new Promise((resolve) => {
1259
1454
  resolve(false);
1260
1455
  };
1261
1456
  });
1262
- var Alert = (message, params) => new Promise((resolve) => {
1457
+ var alert = (message, params) => new Promise((resolve) => {
1263
1458
  if (!app4) return;
1264
1459
  const doc = params && params?.target ? params.target : app4;
1265
1460
  const type = params && params?.type ? params.type : "success";
@@ -1300,7 +1495,7 @@ var Alert = (message, params) => new Promise((resolve) => {
1300
1495
  resolve();
1301
1496
  };
1302
1497
  });
1303
- var Toast = (message, params) => new Promise((resolve) => {
1498
+ var toast = (message, params) => new Promise((resolve) => {
1304
1499
  if (!app4) return;
1305
1500
  const doc = params && params?.target ? params.target : app4;
1306
1501
  const type = params && params?.type ? params.type : "success";
@@ -1322,20 +1517,20 @@ var Toast = (message, params) => new Promise((resolve) => {
1322
1517
  color = "blue";
1323
1518
  icon = "&#xf05a;";
1324
1519
  }
1325
- const toast = document.createElement("div");
1326
- toast.className = `slim-toast ${color}`;
1327
- toast.innerHTML = /*html*/
1520
+ const toast2 = document.createElement("div");
1521
+ toast2.className = `slim-toast ${color}`;
1522
+ toast2.innerHTML = /*html*/
1328
1523
  `
1329
1524
  <i class="icon">${icon}</i>
1330
1525
  <span class="text">${message}</span>
1331
1526
  `;
1332
- doc.appendChild(toast);
1333
- toast.classList.add("show");
1527
+ doc.appendChild(toast2);
1528
+ toast2.classList.add("show");
1334
1529
  let count = 0;
1335
- toast.onanimationend = () => {
1530
+ toast2.onanimationend = () => {
1336
1531
  count++;
1337
1532
  if (count == 2) {
1338
- toast.remove();
1533
+ toast2.remove();
1339
1534
  resolve();
1340
1535
  }
1341
1536
  };
@@ -1344,13 +1539,13 @@ var Toast = (message, params) => new Promise((resolve) => {
1344
1539
  // src/mod/drawer/index.ts
1345
1540
  var drawer_exports = {};
1346
1541
  __export(drawer_exports, {
1347
- Close: () => Close,
1348
- Create: () => Create2,
1349
- Loading: () => Loading4,
1350
- Ready: () => Ready2
1542
+ close: () => close,
1543
+ create: () => create2,
1544
+ loading: () => loading4,
1545
+ ready: () => ready2
1351
1546
  });
1352
1547
  var app5 = document.querySelector("#app");
1353
- var Create2 = (params) => {
1548
+ var create2 = (params) => {
1354
1549
  const name = params.name ? params.name : "drawer";
1355
1550
  const size = params.size ? params.size : "mobile";
1356
1551
  const drawer = document.createElement("div");
@@ -1434,7 +1629,7 @@ var openMobile = (drawer) => {
1434
1629
  }
1435
1630
  };
1436
1631
  };
1437
- var Close = (drawer) => new Promise((resolve) => {
1632
+ var close = (drawer) => new Promise((resolve) => {
1438
1633
  drawer.querySelector("#btn-exit").click();
1439
1634
  drawer.addEventListener("animationend", () => resolve());
1440
1635
  });
@@ -1459,13 +1654,13 @@ var destroy = (drawer) => {
1459
1654
  const dialog = document.querySelectorAll(".slim-dialog");
1460
1655
  dialog.forEach((el) => el.remove());
1461
1656
  };
1462
- var Loading4 = (drawer) => {
1657
+ var loading4 = (drawer) => {
1463
1658
  const body = drawer.querySelector(".drawer-body");
1464
1659
  const loader = drawer.querySelector(".loader");
1465
1660
  if (body) body.style.display = "none";
1466
1661
  if (loader) loader.style.display = "flex";
1467
1662
  };
1468
- var Ready2 = (drawer) => {
1663
+ var ready2 = (drawer) => {
1469
1664
  const body = drawer.querySelector(".drawer-body");
1470
1665
  const loader = drawer.querySelector(".loader");
1471
1666
  if (body) body.style.display = "block";
@@ -1475,32 +1670,32 @@ var Ready2 = (drawer) => {
1475
1670
  // src/mod/drop/index.ts
1476
1671
  var drop_exports = {};
1477
1672
  __export(drop_exports, {
1478
- Clear: () => Clear,
1479
- Menu: () => Menu,
1480
- Select: () => Select,
1481
- Update: () => Update
1673
+ clear: () => clear2,
1674
+ menu: () => menu,
1675
+ select: () => select,
1676
+ update: () => update
1482
1677
  });
1483
- var Menu = (drop) => {
1678
+ var menu = (drop) => {
1484
1679
  const dropBtn = drop.querySelector(".drop-btn");
1485
1680
  const content = drop.querySelector(".drop-content");
1486
1681
  if (!dropBtn || !content) return;
1487
1682
  setBtnEvent(dropBtn, content);
1488
1683
  };
1489
- var Select = (drop, icon, callBack) => {
1684
+ var select = (drop, icon, callBack) => {
1490
1685
  const dropBtn = drop.querySelector(".drop-btn");
1491
1686
  const content = drop.querySelector(".drop-content");
1492
1687
  if (!dropBtn || !content) return;
1493
1688
  setBtnEvent(dropBtn, content);
1494
- Update(drop, icon, callBack);
1689
+ update(drop, icon, callBack);
1495
1690
  };
1496
- var Update = (drop, icon, callBack) => {
1497
- const select = drop.querySelector("select");
1691
+ var update = (drop, icon, callBack) => {
1692
+ const select2 = drop.querySelector("select");
1498
1693
  const content = drop.querySelector(".drop-content");
1499
- if (!select || !content) return;
1694
+ if (!select2 || !content) return;
1500
1695
  let elmIcon = "";
1501
1696
  if (icon) elmIcon = `<span style="margin-right: 6px;">${icon}</span>`;
1502
1697
  content.innerHTML = "";
1503
- const option = select.querySelectorAll("option");
1698
+ const option = select2.querySelectorAll("option");
1504
1699
  option.forEach((opt) => {
1505
1700
  const item = document.createElement("a");
1506
1701
  item.innerHTML = `${elmIcon}${opt.text}`;
@@ -1514,7 +1709,7 @@ var Update = (drop, icon, callBack) => {
1514
1709
  };
1515
1710
  });
1516
1711
  const clearSelected = () => {
1517
- const index = select.selectedIndex;
1712
+ const index = select2.selectedIndex;
1518
1713
  const list = content.querySelectorAll("a");
1519
1714
  list.forEach((el, i) => {
1520
1715
  if (i == index) {
@@ -1535,7 +1730,7 @@ var setBtnEvent = (btn, content) => {
1535
1730
  content.style.display = "";
1536
1731
  };
1537
1732
  } else {
1538
- Clear();
1733
+ clear2();
1539
1734
  content.style.animation = "fade-in 0.4s forwards";
1540
1735
  content.style.display = "block";
1541
1736
  content.onanimationend = () => {
@@ -1544,7 +1739,7 @@ var setBtnEvent = (btn, content) => {
1544
1739
  }
1545
1740
  };
1546
1741
  };
1547
- var Clear = () => {
1742
+ var clear2 = () => {
1548
1743
  const drop = document.querySelectorAll(".drop-content");
1549
1744
  drop.forEach((el) => {
1550
1745
  if (el.style.display == "block") {
@@ -1557,18 +1752,18 @@ var Clear = () => {
1557
1752
  });
1558
1753
  };
1559
1754
  window.addEventListener("click", (e) => {
1560
- if (!e.target.matches(".drop-btn")) Clear();
1755
+ if (!e.target.matches(".drop-btn")) clear2();
1561
1756
  });
1562
1757
 
1563
1758
  // src/mod/modal/index.ts
1564
1759
  var modal_exports = {};
1565
1760
  __export(modal_exports, {
1566
- Close: () => Close2,
1567
- Create: () => Create3,
1568
- Hidden: () => Hidden,
1569
- Loading: () => Loading5,
1570
- Ready: () => Ready3,
1571
- Visible: () => Visible
1761
+ close: () => close2,
1762
+ create: () => create3,
1763
+ hidden: () => hidden,
1764
+ loading: () => loading5,
1765
+ ready: () => ready3,
1766
+ visible: () => visible
1572
1767
  });
1573
1768
  var app6 = document.querySelector("#app");
1574
1769
  var tmpBtnSave = (
@@ -1595,7 +1790,7 @@ var tmpBtnClose = (
1595
1790
  </button>
1596
1791
  `
1597
1792
  );
1598
- var Create3 = (params) => {
1793
+ var create3 = (params) => {
1599
1794
  const icon = params.icon ? params.icon : "&#xf40e;";
1600
1795
  const title = params.title ? params.title : "Modal Title";
1601
1796
  const body = params.body ? params.body : "Modal Body";
@@ -1662,7 +1857,7 @@ var Create3 = (params) => {
1662
1857
  if (btnClose) btnClose.onclick = done;
1663
1858
  return modal;
1664
1859
  };
1665
- var Close2 = (modal) => new Promise((resolve) => {
1860
+ var close2 = (modal) => new Promise((resolve) => {
1666
1861
  modal.querySelector("#btn-exit").click();
1667
1862
  const content = modal.querySelector(".content");
1668
1863
  content.addEventListener("animationend", () => resolve());
@@ -1678,34 +1873,36 @@ var destroy2 = (modal) => {
1678
1873
  }
1679
1874
  });
1680
1875
  };
1681
- var Loading5 = (modal) => {
1876
+ var loading5 = (modal) => {
1682
1877
  const body = modal.querySelector(".body");
1683
1878
  const loader = modal.querySelector(".loader");
1684
1879
  if (body) body.style.visibility = "hidden";
1685
1880
  if (loader) loader.style.display = "flex";
1686
1881
  };
1687
- var Ready3 = (modal) => {
1882
+ var ready3 = (modal) => {
1688
1883
  const body = modal.querySelector(".body");
1689
1884
  const loader = modal.querySelector(".loader");
1690
1885
  if (body) body.style.visibility = "visible";
1691
1886
  if (loader) loader.style.display = "none";
1692
1887
  };
1693
- var Hidden = (modal) => {
1888
+ var hidden = (modal) => {
1694
1889
  modal.style.display = "none";
1695
1890
  };
1696
- var Visible = (modal) => {
1891
+ var visible = (modal) => {
1697
1892
  modal.style.display = "block";
1698
1893
  };
1699
1894
 
1700
1895
  // src/mod/tabs/index.ts
1701
1896
  var tabs_exports = {};
1702
1897
  __export(tabs_exports, {
1703
- Init: () => Init,
1898
+ init: () => init2,
1899
+ loading: () => loading6,
1900
+ ready: () => ready4,
1704
1901
  setActive: () => setActive
1705
1902
  });
1706
1903
  var ignore = ["camera", "drawer", "modal"];
1707
1904
  var hashIgnore = (hash) => ignore.includes(hash);
1708
- var Init = (tabs, onChange) => {
1905
+ var init2 = (tabs, onChange) => {
1709
1906
  const tbtn = tabs.querySelectorAll(".tabs-btn");
1710
1907
  tbtn.forEach((elm) => {
1711
1908
  const dataHash = elm.getAttribute("data-hash");
@@ -1731,13 +1928,13 @@ var Init = (tabs, onChange) => {
1731
1928
  elm.classList.remove("active");
1732
1929
  }
1733
1930
  });
1734
- tabsLoading(tabs, index);
1735
- onChange(index, () => tabsReady(tabs, index));
1931
+ loading6(tabs, index);
1932
+ onChange(index, () => ready4(tabs, index));
1736
1933
  };
1737
1934
  tabsChange();
1738
1935
  window.onhashchange = tabsChange;
1739
1936
  };
1740
- var tabsLoading = (tabs, index) => {
1937
+ var loading6 = (tabs, index) => {
1741
1938
  const tbtn = tabs.querySelectorAll(".tabs-btn")[index];
1742
1939
  const body = tabs.querySelector(".tabs-body");
1743
1940
  const inner = tbtn.querySelectorAll("*");
@@ -1765,7 +1962,7 @@ var tabsLoading = (tabs, index) => {
1765
1962
  }
1766
1963
  }
1767
1964
  };
1768
- var tabsReady = (tabs, index) => {
1965
+ var ready4 = (tabs, index) => {
1769
1966
  const tbtn = tabs.querySelectorAll(".tabs-btn")[index];
1770
1967
  const body = tabs.querySelector(".tabs-body");
1771
1968
  const inner = tbtn.querySelectorAll("*");
@@ -1795,10 +1992,10 @@ var setActive = (tbtn, index) => {
1795
1992
  // src/svchub/oauth/index.ts
1796
1993
  var oauth_exports = {};
1797
1994
  __export(oauth_exports, {
1798
- Callback: () => Callback,
1799
- Login: () => Login,
1800
- Logout: () => Logout,
1801
- Midware: () => Midware
1995
+ authMW: () => authMW,
1996
+ callback: () => callback,
1997
+ login: () => login,
1998
+ logout: () => logout
1802
1999
  });
1803
2000
 
1804
2001
  // src/svchub/oauth/template.ts
@@ -1815,28 +2012,70 @@ var tempLogout = (
1815
2012
  <!-- loader -->
1816
2013
  <div id="loader"></div>
1817
2014
  </div>
2015
+ <style>
2016
+ #app:has(#page-logout) {
2017
+ padding: 0;
2018
+ }
2019
+ #page-logout {
2020
+ width: 100%;
2021
+ height: 100%;
2022
+ position: fixed;
2023
+ display: flex;
2024
+ flex-direction: column;
2025
+ justify-content: center;
2026
+ align-items: center;
2027
+ background-position: center;
2028
+ background-repeat: no-repeat;
2029
+ background-size: cover;
2030
+ background-image: url('https://cdn.jsdelivr.net/npm/slimsdk/dist/assets/bg/bg-01.jpg');
2031
+ }
2032
+ #page-logout #content {
2033
+ display: none;
2034
+ text-align: center;
2035
+ animation: fadeIn 0.4s;
2036
+ }
2037
+ #page-logout #content .logo {
2038
+ margin: auto;
2039
+ width: 150px;
2040
+ height: 150px;
2041
+ margin-bottom: 20px;
2042
+ border-radius: 50%;
2043
+ background-color: rgba(255, 255, 255, 0.2);
2044
+ box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2),
2045
+ 0 6px 20px 0 rgba(0, 0, 0, 0.19);
2046
+ }
2047
+ #page-logout #content .logo img {
2048
+ width: 100%;
2049
+ height: 100%;
2050
+ border-radius: 50%;
2051
+ }
2052
+ #page-logout #content #btn-login {
2053
+ box-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px,
2054
+ rgba(0, 0, 0, 0.23) 0px 3px 6px;
2055
+ }
2056
+ #page-logout #loader {
2057
+ width: 110px;
2058
+ height: 110px;
2059
+ border-radius: 50%;
2060
+ border: 11px solid #E5E7EB;
2061
+ border-color: #E5E7EB #06B6D4 #E5E7EB #06B6D4;
2062
+ animation: spin 2s linear infinite;
2063
+ }
2064
+ </style>
1818
2065
  `
1819
2066
  );
1820
2067
 
1821
- // src/svchub/api/account/access.ts
1822
- var access_exports = {};
1823
- __export(access_exports, {
1824
- Create: () => Create4,
1825
- Read: () => Read
2068
+ // src/svchub/api/auth/index.ts
2069
+ var auth_exports = {};
2070
+ __export(auth_exports, {
2071
+ getToken: () => getToken,
2072
+ getUserInfo: () => getUserInfo
1826
2073
  });
1827
- var Read = (agcy, acct, params) => new Promise((resolve, reject) => {
1828
- const date = params && params.date ? params.date : curDate();
1829
- let query = `?date=${date}`;
1830
- if (params) {
1831
- const client = params.client ? params.client : "";
1832
- const search = params.search ? params.search : "";
1833
- if (client) query += `&client=${client}`;
1834
- if (search) query += `&search=${search}`;
1835
- }
1836
- const url = `/agcy/${agcy}/acct/${acct}/access${query}`;
1837
- fetch(gbvar.hub.API + url, {
1838
- method: "GET",
1839
- headers: gbvar.api.HEADERS
2074
+ var getToken = (params) => new Promise((resolve, reject) => {
2075
+ fetch(cfg.hub.OAUTH + "/token", {
2076
+ method: "POST",
2077
+ headers: { "Content-Type": "application/json; charset=utf-8" },
2078
+ body: JSON.stringify(params)
1840
2079
  }).then((resp) => {
1841
2080
  if (!resp.ok) throw resp;
1842
2081
  return resp.json();
@@ -1844,19 +2083,15 @@ var Read = (agcy, acct, params) => new Promise((resolve, reject) => {
1844
2083
  resolve(json);
1845
2084
  }).catch((err) => reject(err));
1846
2085
  });
1847
- var Create4 = () => new Promise((resolve, reject) => {
1848
- const jwt = jwtParse(gbvar.api.TOKEN);
1849
- if (!jwt) reject("err: jwt token");
1850
- const screenSize = `${screen.width}x${screen.height}`;
1851
- const url = `/agcy/${jwt?.agcy}/acct/${jwt?.acct}/access`;
1852
- fetch(gbvar.hub.API + url, {
1853
- method: "POST",
1854
- headers: gbvar.api.HEADERS,
1855
- body: JSON.stringify({
1856
- device: 0,
1857
- client: Number(gbvar.app.UUID),
1858
- screen: screenSize
1859
- })
2086
+ var getUserInfo = (token) => new Promise((resolve, reject) => {
2087
+ let headers = cfg.api.HEADERS;
2088
+ if (token) headers = new Headers({
2089
+ "Content-Type": "application/json; charset=utf-8",
2090
+ "Authorization": `Bearer ${token}`
2091
+ });
2092
+ fetch(cfg.hub.OAUTH + "/userinfo", {
2093
+ method: "GET",
2094
+ headers
1860
2095
  }).then((resp) => {
1861
2096
  if (!resp.ok) throw resp;
1862
2097
  return resp.json();
@@ -1867,7 +2102,7 @@ var Create4 = () => new Promise((resolve, reject) => {
1867
2102
 
1868
2103
  // src/svchub/oauth/midware.ts
1869
2104
  var IGNORE = ["__NOT_FOUND__", "login", "logout", "callback"];
1870
- var Midware = async (route, ignore2) => {
2105
+ var authMW = async (route, ignore2) => {
1871
2106
  ignore2?.forEach((val) => IGNORE.push(val));
1872
2107
  if (IGNORE.includes(route)) {
1873
2108
  console.log("ignore :", route);
@@ -1887,36 +2122,32 @@ var Midware = async (route, ignore2) => {
1887
2122
  } catch {
1888
2123
  gotoLogin();
1889
2124
  }
1890
- gbvar.api.TOKEN = token;
1891
- gbvar.api.HEADERS = new Headers({
2125
+ cfg.api.TOKEN = token;
2126
+ cfg.api.HEADERS = new Headers({
1892
2127
  "Content-Type": "application/json; charset=utf-8",
1893
- "Authorization": `Bearer ${gbvar.api.TOKEN}`
2128
+ "Authorization": `Bearer ${cfg.api.TOKEN}`
1894
2129
  });
1895
2130
  const session = sessionStorage.getItem("ACCESS_SESSION");
1896
2131
  if (!session) {
1897
- await Create4().then((resp) => {
2132
+ await getUserInfo().then((resp) => {
1898
2133
  const data = resp.data;
1899
- setProfile(data.profile);
2134
+ setProfile(data);
1900
2135
  sessionStorage.setItem("ACCESS_SESSION", JSON.stringify(data));
1901
2136
  }).catch(() => gotoLogin());
1902
2137
  } else {
1903
2138
  const data = JSON.parse(session);
1904
- setProfile(data.profile);
1905
- }
1906
- };
1907
- var setProfile = (profile) => {
1908
- gbvar.user.AGCY = profile.agcy;
1909
- gbvar.user.DVSN = profile.dvsn;
1910
- gbvar.user.SECT = profile.sect;
1911
- gbvar.user.DEPT = `${profile.dvsn},${profile.sect}`;
1912
- gbvar.user.ACCT = profile.acct;
1913
- gbvar.user.ACTYPE = profile.actype;
1914
- gbvar.user.ACROLE = profile.acrole;
1915
- gbvar.user.ACNAME = profile.acname;
1916
- gbvar.user.PICTURE = profile.picture;
1917
- gbvar.user.AGCY_NAME = profile.agcy_name;
1918
- gbvar.user.DVSN_NAME = profile.dvsn_name;
1919
- gbvar.user.SECT_NAME = profile.sect_name;
2139
+ setProfile(data);
2140
+ }
2141
+ };
2142
+ var setProfile = (user) => {
2143
+ cfg.user.sub = user.sub;
2144
+ cfg.user.name = user.name;
2145
+ cfg.user.utyp = user.utyp;
2146
+ cfg.user.unit = user.unit;
2147
+ cfg.user.unit_id = user.unit_id;
2148
+ cfg.user.role_id = user.role_id;
2149
+ cfg.user.picture = user.picture ? user.picture : "";
2150
+ if (user.metadata) cfg.user.metadata = user.metadata;
1920
2151
  };
1921
2152
  var gotoLogin = () => {
1922
2153
  clear();
@@ -1928,26 +2159,27 @@ var gotoLogin = () => {
1928
2159
 
1929
2160
  // src/svchub/oauth/index.ts
1930
2161
  var app7 = document.querySelector("#app");
1931
- var Login = () => {
2162
+ var login = () => {
1932
2163
  clearCache();
1933
2164
  const state = Math.random().toString(36).slice(-8);
1934
2165
  sessionStorage.setItem("OAUTH_STATE", state);
1935
2166
  const query = new URLSearchParams({
1936
2167
  response_type: "token",
1937
- client_id: gbvar.app.UUID,
2168
+ client_id: cfg.app.UUID,
2169
+ redirect_uri: cfg.app.CALLBACK,
1938
2170
  state
1939
2171
  }).toString();
1940
- const url = `${gbvar.hub.LOGIN}?${query}`;
2172
+ const url = `${cfg.hub.LOGIN}?${query}`;
1941
2173
  window.location.replace(url);
1942
2174
  };
1943
- var Logout = () => {
2175
+ var logout = () => {
1944
2176
  clearCache();
1945
2177
  if (!app7) return;
1946
2178
  app7.innerHTML = tempLogout;
1947
2179
  app7.classList.add("full-page");
1948
2180
  const content = app7.querySelector("#content");
1949
2181
  const loader = app7.querySelector("#loader");
1950
- new Promise((r) => setTimeout(r, 800)).then(() => {
2182
+ new Promise((r) => setTimeout(r, 400)).then(() => {
1951
2183
  content.style.display = "block";
1952
2184
  loader.style.display = "none";
1953
2185
  });
@@ -1955,7 +2187,7 @@ var Logout = () => {
1955
2187
  window.location.replace("/login");
1956
2188
  };
1957
2189
  };
1958
- var Callback = () => {
2190
+ var callback = () => {
1959
2191
  const search = window.location.search;
1960
2192
  const query = new URLSearchParams(search);
1961
2193
  const state = query.get("state");
@@ -1982,505 +2214,7 @@ var clearCache = () => {
1982
2214
  // src/svchub/api/index.ts
1983
2215
  var api_exports = {};
1984
2216
  __export(api_exports, {
1985
- acct: () => account_exports,
1986
- agcy: () => agcy_exports,
1987
- dept: () => dept_exports,
1988
- dvsn: () => dvsn_exports,
1989
- oauth: () => oauth_exports2,
1990
- sect: () => sect_exports,
1991
- stat: () => static_exports
1992
- });
1993
-
1994
- // src/svchub/api/static/index.ts
1995
- var static_exports = {};
1996
- __export(static_exports, {
1997
- acrole: () => acrole_exports,
1998
- actype: () => actype_exports,
1999
- dvtype: () => dvtype_exports,
2000
- hmposn: () => hmposn_exports,
2001
- hmrank: () => hmrank_exports,
2002
- hmtype: () => hmtype_exports,
2003
- sctype: () => sctype_exports,
2004
- vdtype: () => vdtype_exports
2005
- });
2006
-
2007
- // src/svchub/api/static/acrole.ts
2008
- var acrole_exports = {};
2009
- __export(acrole_exports, {
2010
- Read: () => Read2,
2011
- Set: () => Set
2012
- });
2013
- var Read2 = () => new Promise((resolve, reject) => {
2014
- const url = `/stat/acrole`;
2015
- fetch(gbvar.hub.API + url, {
2016
- method: "GET",
2017
- headers: gbvar.api.HEADERS
2018
- }).then((resp) => {
2019
- if (!resp.ok) throw resp;
2020
- return resp.json();
2021
- }).then((json) => {
2022
- resolve(json);
2023
- }).catch((err) => reject(err));
2024
- });
2025
- var Set = async (elm) => {
2026
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2027
- await Read2().then((resp) => {
2028
- const data = resp.data;
2029
- for (const val of data) {
2030
- const opt = document.createElement("option");
2031
- opt.value = `${val.id}`;
2032
- opt.text = `${val.name}`;
2033
- elm.appendChild(opt);
2034
- }
2035
- }).catch((err) => console.error(err));
2036
- };
2037
-
2038
- // src/svchub/api/static/actype.ts
2039
- var actype_exports = {};
2040
- __export(actype_exports, {
2041
- Read: () => Read3,
2042
- Set: () => Set2
2043
- });
2044
- var Read3 = () => new Promise((resolve, reject) => {
2045
- const url = `/stat/actype`;
2046
- fetch(gbvar.hub.API + url, {
2047
- method: "GET",
2048
- headers: gbvar.api.HEADERS
2049
- }).then((resp) => {
2050
- if (!resp.ok) throw resp;
2051
- return resp.json();
2052
- }).then((json) => {
2053
- resolve(json);
2054
- }).catch((err) => reject(err));
2055
- });
2056
- var Set2 = async (elm) => {
2057
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2058
- await Read3().then((resp) => {
2059
- const data = resp.data;
2060
- for (const val of data) {
2061
- const opt = document.createElement("option");
2062
- opt.value = `${val.id}`;
2063
- opt.text = `${val.name}`;
2064
- elm.appendChild(opt);
2065
- }
2066
- }).catch((err) => console.error(err));
2067
- };
2068
-
2069
- // src/svchub/api/static/dvtype.ts
2070
- var dvtype_exports = {};
2071
- __export(dvtype_exports, {
2072
- Read: () => Read4,
2073
- Set: () => Set3
2074
- });
2075
- var Read4 = () => new Promise((resolve, reject) => {
2076
- const url = `/stat/dvtype`;
2077
- fetch(gbvar.hub.API + url, {
2078
- method: "GET",
2079
- headers: gbvar.api.HEADERS
2080
- }).then((resp) => {
2081
- if (!resp.ok) throw resp;
2082
- return resp.json();
2083
- }).then((json) => {
2084
- resolve(json);
2085
- }).catch((err) => reject(err));
2086
- });
2087
- var Set3 = async (elm) => {
2088
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2089
- await Read4().then((resp) => {
2090
- const data = resp.data;
2091
- for (const val of data) {
2092
- const opt = document.createElement("option");
2093
- opt.value = `${val.id}`;
2094
- opt.text = `${val.name}`;
2095
- elm.appendChild(opt);
2096
- }
2097
- }).catch((err) => console.error(err));
2098
- };
2099
-
2100
- // src/svchub/api/static/hmtype.ts
2101
- var hmtype_exports = {};
2102
- __export(hmtype_exports, {
2103
- Read: () => Read5,
2104
- Set: () => Set4
2105
- });
2106
- var Read5 = () => new Promise((resolve, reject) => {
2107
- const url = `/stat/hmtype`;
2108
- fetch(gbvar.hub.API + url, {
2109
- method: "GET",
2110
- headers: gbvar.api.HEADERS
2111
- }).then((resp) => {
2112
- if (!resp.ok) throw resp;
2113
- return resp.json();
2114
- }).then((json) => {
2115
- resolve(json);
2116
- }).catch((err) => reject(err));
2117
- });
2118
- var Set4 = async (elm) => {
2119
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2120
- await Read5().then((resp) => {
2121
- const data = resp.data;
2122
- for (const val of data) {
2123
- const opt = document.createElement("option");
2124
- opt.value = `${val.id}`;
2125
- opt.text = `${val.name}`;
2126
- elm.appendChild(opt);
2127
- }
2128
- }).catch((err) => console.error(err));
2129
- };
2130
-
2131
- // src/svchub/api/static/hmposn.ts
2132
- var hmposn_exports = {};
2133
- __export(hmposn_exports, {
2134
- Read: () => Read6,
2135
- Set: () => Set5
2136
- });
2137
- var Read6 = () => new Promise((resolve, reject) => {
2138
- const url = `/stat/hmposn`;
2139
- fetch(gbvar.hub.API + url, {
2140
- method: "GET",
2141
- headers: gbvar.api.HEADERS
2142
- }).then((resp) => {
2143
- if (!resp.ok) throw resp;
2144
- return resp.json();
2145
- }).then((json) => {
2146
- resolve(json);
2147
- }).catch((err) => reject(err));
2148
- });
2149
- var Set5 = async (elm) => {
2150
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2151
- await Read6().then((resp) => {
2152
- const data = resp.data;
2153
- for (const val of data) {
2154
- const opt = document.createElement("option");
2155
- opt.value = `${val.id}`;
2156
- opt.text = `${val.name}`;
2157
- elm.appendChild(opt);
2158
- }
2159
- }).catch((err) => console.error(err));
2160
- };
2161
-
2162
- // src/svchub/api/static/hmrank.ts
2163
- var hmrank_exports = {};
2164
- __export(hmrank_exports, {
2165
- Read: () => Read7,
2166
- Set: () => Set6
2167
- });
2168
- var Read7 = () => new Promise((resolve, reject) => {
2169
- const url = `/stat/hmrank`;
2170
- fetch(gbvar.hub.API + url, {
2171
- method: "GET",
2172
- headers: gbvar.api.HEADERS
2173
- }).then((resp) => {
2174
- if (!resp.ok) throw resp;
2175
- return resp.json();
2176
- }).then((json) => {
2177
- resolve(json);
2178
- }).catch((err) => reject(err));
2179
- });
2180
- var Set6 = async (elm) => {
2181
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2182
- await Read7().then((resp) => {
2183
- const data = resp.data;
2184
- for (const val of data) {
2185
- const opt = document.createElement("option");
2186
- opt.value = `${val.id}`;
2187
- opt.text = `${val.name}`;
2188
- elm.appendChild(opt);
2189
- }
2190
- }).catch((err) => console.error(err));
2191
- };
2192
-
2193
- // src/svchub/api/static/sctype.ts
2194
- var sctype_exports = {};
2195
- __export(sctype_exports, {
2196
- Read: () => Read8,
2197
- Set: () => Set7
2198
- });
2199
- var Read8 = () => new Promise((resolve, reject) => {
2200
- const url = `/stat/sctype`;
2201
- fetch(gbvar.hub.API + url, {
2202
- method: "GET",
2203
- headers: gbvar.api.HEADERS
2204
- }).then((resp) => {
2205
- if (!resp.ok) throw resp;
2206
- return resp.json();
2207
- }).then((json) => {
2208
- resolve(json);
2209
- }).catch((err) => reject(err));
2210
- });
2211
- var Set7 = async (elm) => {
2212
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2213
- await Read8().then((resp) => {
2214
- const data = resp.data;
2215
- for (const val of data) {
2216
- const opt = document.createElement("option");
2217
- opt.value = `${val.id}`;
2218
- opt.text = `${val.name}`;
2219
- elm.appendChild(opt);
2220
- }
2221
- }).catch((err) => console.error(err));
2222
- };
2223
-
2224
- // src/svchub/api/static/vdtype.ts
2225
- var vdtype_exports = {};
2226
- __export(vdtype_exports, {
2227
- Read: () => Read9,
2228
- Set: () => Set8
2229
- });
2230
- var Read9 = () => new Promise((resolve, reject) => {
2231
- const url = `/stat/vdtype`;
2232
- fetch(gbvar.hub.API + url, {
2233
- method: "GET",
2234
- headers: gbvar.api.HEADERS
2235
- }).then((resp) => {
2236
- if (!resp.ok) throw resp;
2237
- return resp.json();
2238
- }).then((json) => {
2239
- resolve(json);
2240
- }).catch((err) => reject(err));
2241
- });
2242
- var Set8 = async (elm) => {
2243
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2244
- await Read9().then((resp) => {
2245
- const data = resp.data;
2246
- for (const val of data) {
2247
- const opt = document.createElement("option");
2248
- opt.value = `${val.id}`;
2249
- opt.text = `${val.name}`;
2250
- elm.appendChild(opt);
2251
- }
2252
- }).catch((err) => console.error(err));
2253
- };
2254
-
2255
- // src/svchub/api/oauth/index.ts
2256
- var oauth_exports2 = {};
2257
- __export(oauth_exports2, {
2258
- Token: () => Token,
2259
- UserInfo: () => UserInfo
2260
- });
2261
- var Token = (params) => new Promise((resolve, reject) => {
2262
- fetch(gbvar.hub.OAUTH + "/token", {
2263
- method: "POST",
2264
- headers: { "Content-Type": "application/json; charset=utf-8" },
2265
- body: JSON.stringify(params)
2266
- }).then((resp) => {
2267
- if (!resp.ok) throw resp;
2268
- return resp.json();
2269
- }).then((json) => {
2270
- resolve(json);
2271
- }).catch((err) => reject(err));
2272
- });
2273
- var UserInfo = (token) => new Promise((resolve, reject) => {
2274
- let headers = gbvar.api.HEADERS;
2275
- if (token) headers = new Headers({
2276
- "Content-Type": "application/json; charset=utf-8",
2277
- "Authorization": `Bearer ${token}`
2278
- });
2279
- fetch(gbvar.hub.OAUTH + "/userinfo", {
2280
- method: "GET",
2281
- headers
2282
- }).then((resp) => {
2283
- if (!resp.ok) throw resp;
2284
- return resp.json();
2285
- }).then((json) => {
2286
- resolve(json);
2287
- }).catch((err) => reject(err));
2288
- });
2289
-
2290
- // src/svchub/api/agency/agcy.ts
2291
- var agcy_exports = {};
2292
- __export(agcy_exports, {
2293
- Read: () => Read10,
2294
- Set: () => Set9
2295
- });
2296
- var Read10 = (agcy) => new Promise((resolve, reject) => {
2297
- let url = `/agcy`;
2298
- if (agcy) url = `/agcy/${agcy}`;
2299
- fetch(gbvar.hub.API + url, {
2300
- method: "GET",
2301
- headers: gbvar.api.HEADERS
2302
- }).then((resp) => {
2303
- if (!resp.ok) throw resp;
2304
- return resp.json();
2305
- }).then((json) => {
2306
- resolve(json);
2307
- }).catch((err) => reject(err));
2308
- });
2309
- var Set9 = async (elm) => {
2310
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2311
- await Read10().then((resp) => {
2312
- const data = resp.data;
2313
- for (const val of data) {
2314
- const name = val.short ? val.short : val.name;
2315
- const opt = document.createElement("option");
2316
- opt.value = `${val.id}`;
2317
- opt.text = name;
2318
- elm.appendChild(opt);
2319
- }
2320
- }).catch((err) => console.error(err));
2321
- };
2322
-
2323
- // src/svchub/api/agency/dvsn.ts
2324
- var dvsn_exports = {};
2325
- __export(dvsn_exports, {
2326
- Read: () => Read11,
2327
- Set: () => Set10
2328
- });
2329
- var Read11 = (agcy, dvsn) => new Promise((resolve, reject) => {
2330
- let url = `/agcy/${agcy}/dvsn`;
2331
- if (dvsn) url = `/agcy/${agcy}/dvsn/${dvsn}`;
2332
- fetch(gbvar.hub.API + url, {
2333
- method: "GET",
2334
- headers: gbvar.api.HEADERS
2335
- }).then((resp) => {
2336
- if (!resp.ok) throw resp;
2337
- return resp.json();
2338
- }).then((json) => {
2339
- resolve(json);
2340
- }).catch((err) => reject(err));
2341
- });
2342
- var Set10 = async (agcy, elm) => {
2343
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2344
- await Read11(agcy).then((resp) => {
2345
- const data = resp.data;
2346
- for (const val of data) {
2347
- const name = val.short ? val.short : val.name;
2348
- const opt = document.createElement("option");
2349
- opt.value = `${val.id}`;
2350
- opt.text = name;
2351
- elm.appendChild(opt);
2352
- }
2353
- }).catch((err) => console.error(err));
2354
- };
2355
-
2356
- // src/svchub/api/agency/sect.ts
2357
- var sect_exports = {};
2358
- __export(sect_exports, {
2359
- Read: () => Read12,
2360
- Set: () => Set11
2361
- });
2362
- var Read12 = (agcy, dvsn, sect) => new Promise((resolve, reject) => {
2363
- let url = `/agcy/${agcy}/dvsn/${dvsn}/sect`;
2364
- if (sect) url = `/agcy/${agcy}/dvsn/${dvsn}/sect/${sect}`;
2365
- fetch(gbvar.hub.API + url, {
2366
- method: "GET",
2367
- headers: gbvar.api.HEADERS
2368
- }).then((resp) => {
2369
- if (!resp.ok) throw resp;
2370
- return resp.json();
2371
- }).then((json) => {
2372
- resolve(json);
2373
- }).catch((err) => reject(err));
2374
- });
2375
- var Set11 = async (agcy, dvsn, elm) => {
2376
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2377
- await Read12(agcy, dvsn).then((resp) => {
2378
- const data = resp.data;
2379
- for (const val of data) {
2380
- const name = val.short ? val.short : val.name;
2381
- const opt = document.createElement("option");
2382
- opt.value = `${val.id}`;
2383
- opt.text = name;
2384
- elm.appendChild(opt);
2385
- }
2386
- }).catch((err) => console.error(err));
2387
- };
2388
-
2389
- // src/svchub/api/agency/dept.ts
2390
- var dept_exports = {};
2391
- __export(dept_exports, {
2392
- Read: () => Read13,
2393
- Set: () => Set12
2394
- });
2395
- var Read13 = (agcy) => new Promise((resolve, reject) => {
2396
- const url = `/agcy/${agcy}/dept`;
2397
- fetch(gbvar.hub.API + url, {
2398
- method: "GET",
2399
- headers: gbvar.api.HEADERS
2400
- }).then((resp) => {
2401
- if (!resp.ok) throw resp;
2402
- return resp.json();
2403
- }).then((json) => {
2404
- resolve(json);
2405
- }).catch((err) => reject(err));
2406
- });
2407
- var Set12 = async (agcy, elm) => {
2408
- elm.innerHTML = '<option value="">- \u0E40\u0E25\u0E37\u0E2D\u0E01 -</option>';
2409
- await Read13(agcy).then((resp) => {
2410
- const data = resp.data;
2411
- for (const val of data) {
2412
- const opt = document.createElement("option");
2413
- opt.value = `${val.dvsn},${val.sect}`;
2414
- if (val.sect == 0) {
2415
- opt.text = `${val.name}`;
2416
- opt.style.fontWeight = "600";
2417
- } else {
2418
- opt.text = `- ${val.name}`;
2419
- opt.style.fontStyle = "italic";
2420
- }
2421
- elm.appendChild(opt);
2422
- }
2423
- }).catch((err) => console.error(err));
2424
- };
2425
-
2426
- // src/svchub/api/account/index.ts
2427
- var account_exports = {};
2428
- __export(account_exports, {
2429
- Create: () => Create5,
2430
- Read: () => Read14,
2431
- Update: () => Update2,
2432
- access: () => access_exports
2433
- });
2434
- var Read14 = (agcy, acct, params) => new Promise((resolve, reject) => {
2435
- const status = params && params.status ? params.status : 1;
2436
- let query = `?status=${status}`;
2437
- if (params) {
2438
- const dvsn = params.dvsn ? params.dvsn : 0;
2439
- const sect = params.sect ? params.sect : 0;
2440
- const actype = params.actype ? params.actype : 0;
2441
- const acrole = params.acrole ? params.acrole : 0;
2442
- if (dvsn) query += `&dvsn=${dvsn}`;
2443
- if (sect) query += `&sect=${sect}`;
2444
- if (actype) query += `&actype=${actype}`;
2445
- if (acrole) query += `&acrole=${acrole}`;
2446
- }
2447
- let url = `/agcy/${agcy}/acct${query}`;
2448
- if (acct) url = `/agcy/${agcy}/acct/${acct}`;
2449
- fetch(gbvar.hub.API + url, {
2450
- method: "GET",
2451
- headers: gbvar.api.HEADERS
2452
- }).then((resp) => {
2453
- if (!resp.ok) throw resp;
2454
- return resp.json();
2455
- }).then((json) => {
2456
- resolve(json);
2457
- }).catch((err) => reject(err));
2458
- });
2459
- var Create5 = (agcy, params) => new Promise((resolve, reject) => {
2460
- const url = `/agcy/${agcy}/acct`;
2461
- fetch(gbvar.hub.API + url, {
2462
- method: "POST",
2463
- headers: gbvar.api.HEADERS,
2464
- body: JSON.stringify(params)
2465
- }).then((resp) => {
2466
- if (!resp.ok) throw resp;
2467
- return resp.json();
2468
- }).then((json) => {
2469
- resolve(json);
2470
- }).catch((err) => reject(err));
2471
- });
2472
- var Update2 = (agcy, acct, params) => new Promise((resolve, reject) => {
2473
- const url = `/agcy/${agcy}/acct/${acct}`;
2474
- fetch(gbvar.hub.API + url, {
2475
- method: "PUT",
2476
- headers: gbvar.api.HEADERS,
2477
- body: JSON.stringify(params)
2478
- }).then((resp) => {
2479
- if (!resp.ok) throw resp;
2480
- return resp.json();
2481
- }).then((json) => {
2482
- resolve(json);
2483
- }).catch((err) => reject(err));
2217
+ auth: () => auth_exports
2484
2218
  });
2485
2219
 
2486
2220
  // src/svchub/wss/index.ts
@@ -2491,25 +2225,25 @@ __export(wss_exports, {
2491
2225
  });
2492
2226
  var newTask = (worker) => {
2493
2227
  if (!window.Worker) return;
2494
- gbvar.hub.TASK = new worker();
2495
- gbvar.hub.TASK.postMessage({
2228
+ cfg.hub.TASK = new worker();
2229
+ cfg.hub.TASK.postMessage({
2496
2230
  head: "INIT",
2497
2231
  data: {
2498
- url: gbvar.hub.WSS,
2499
- app: gbvar.app.NAME,
2500
- uid: gbvar.app.UUID,
2501
- ver: gbvar.app.VERSION
2232
+ url: cfg.hub.WSS,
2233
+ app: cfg.app.NAME,
2234
+ uid: cfg.app.UUID,
2235
+ ver: cfg.app.VERSION
2502
2236
  }
2503
2237
  });
2504
- gbvar.hub.TASK.addEventListener("message", (e) => {
2238
+ cfg.hub.TASK.addEventListener("message", (e) => {
2505
2239
  const json = e.data;
2506
2240
  const head = json.head ? json.head : "";
2507
2241
  const data = json.data ? json.data : "";
2508
2242
  if (head == "ACCEPT") {
2509
2243
  rspAccept(data);
2510
- gbvar.hub.TASK?.postMessage({
2244
+ cfg.hub.TASK?.postMessage({
2511
2245
  head: "VERIFY",
2512
- data: gbvar.api.TOKEN
2246
+ data: cfg.api.TOKEN
2513
2247
  });
2514
2248
  }
2515
2249
  if (head == "DISCON") rspDiscon();
@@ -2522,11 +2256,11 @@ var newTask = (worker) => {
2522
2256
  };
2523
2257
  var checkUpdate = (min = 10) => {
2524
2258
  return setInterval(() => {
2525
- gbvar.hub.TASK?.postMessage({
2259
+ cfg.hub.TASK?.postMessage({
2526
2260
  head: "LATEST",
2527
2261
  data: {
2528
- app: gbvar.app.NAME,
2529
- uid: gbvar.app.UUID
2262
+ app: cfg.app.NAME,
2263
+ uid: cfg.app.UUID
2530
2264
  }
2531
2265
  });
2532
2266
  }, 1e3 * 60 * min);
@@ -2534,30 +2268,30 @@ var checkUpdate = (min = 10) => {
2534
2268
  var rspBrdMsg = (brd) => {
2535
2269
  if (brd.cmd == "LOGS") console.log(brd.msg);
2536
2270
  if (brd.cmd == "TIME") setTime(brd.msg);
2537
- if (brd.cmd == "RESULT" && brd.to == gbvar.hub.UUID) {
2271
+ if (brd.cmd == "RESULT" && brd.to == cfg.hub.UUID) {
2538
2272
  console.log(brd.cmd, "From:", brd.from);
2539
2273
  console.log(brd.msg);
2540
2274
  }
2541
- if (brd.cmd == "CONRST" && (brd.to == gbvar.hub.UUID || brd.to == "@all")) {
2275
+ if (brd.cmd == "CONRST" && (brd.to == cfg.hub.UUID || brd.to == "@all")) {
2542
2276
  sessionStorage.clear();
2543
2277
  window.location.reload();
2544
2278
  }
2545
- if (brd.cmd == "LOGOUT" && (brd.to == gbvar.hub.UUID || brd.to == "@all")) {
2279
+ if (brd.cmd == "LOGOUT" && (brd.to == cfg.hub.UUID || brd.to == "@all")) {
2546
2280
  localStorage.clear();
2547
2281
  sessionStorage.clear();
2548
2282
  window.location.reload();
2549
2283
  }
2550
- if (brd.cmd == "NOTIFY" && (brd.to == gbvar.hub.UUID || brd.to == "@all")) {
2284
+ if (brd.cmd == "NOTIFY" && (brd.to == cfg.hub.UUID || brd.to == "@all")) {
2551
2285
  brdNotify(brd.msg);
2552
2286
  }
2553
2287
  if (brd.cmd == "") console.log(brd.msg);
2554
2288
  };
2555
2289
  var rspAccept = (data) => {
2556
- gbvar.hub.UUID = data.uuid ? data.uuid : "";
2557
- console.log("hub-uuid:", gbvar.hub.UUID);
2290
+ cfg.hub.UUID = data.uuid ? data.uuid : "";
2291
+ console.log("hub-uuid:", cfg.hub.UUID);
2558
2292
  const boxTime = document.querySelector("#topbar #box-time");
2559
2293
  if (boxTime) boxTime.classList.remove("offline");
2560
- Toast("\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D Server \u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08.!", { type: "success" });
2294
+ toast("\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D Server \u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08.!", { type: "success" });
2561
2295
  };
2562
2296
  var rspDiscon = () => {
2563
2297
  const boxTime = document.querySelector("#topbar #box-time");
@@ -2568,23 +2302,23 @@ var rspDiscon = () => {
2568
2302
  if (svTime) svTime.innerText = "server";
2569
2303
  if (svDate) svDate.innerText = "OFFLINE";
2570
2304
  }
2571
- Toast("\u0E02\u0E32\u0E14\u0E01\u0E32\u0E23\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D Server.!", { type: "failure" });
2305
+ toast("\u0E02\u0E32\u0E14\u0E01\u0E32\u0E23\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D Server.!", { type: "failure" });
2572
2306
  };
2573
2307
  var rspLatest = (data) => {
2574
- if (gbvar.app.UUID == data.appuuid && gbvar.app.NAME == data.appname) {
2308
+ if (cfg.app.UUID == data.appuuid && cfg.app.NAME == data.appname) {
2575
2309
  const path = window.location.pathname;
2576
- if (path != "/changelog" && gbvar.app.RELEASE != data.release) {
2310
+ if (path != "/changelog" && cfg.app.RELEASE != data.release) {
2577
2311
  window.location.replace("/changelog");
2578
2312
  }
2579
2313
  }
2580
2314
  };
2581
2315
  var setTime = (data) => {
2582
2316
  if (typeof data.unix != "number") return;
2583
- gbvar.UNIX_TIME = Number(data.unix);
2317
+ cfg.UNIX_TIME = Number(data.unix);
2584
2318
  const svTime = document.querySelector("#topbar #box-time #sv-time");
2585
2319
  const svDate = document.querySelector("#topbar #box-time #sv-date");
2586
2320
  if (svTime && svDate) {
2587
- const [date, time] = timeToStr(gbvar.UNIX_TIME).split(" ");
2321
+ const [date, time] = timeToStr(cfg.UNIX_TIME).split(" ");
2588
2322
  svTime.innerText = time;
2589
2323
  svDate.innerText = thaiDate(date, 11);
2590
2324
  }
@@ -2602,8 +2336,8 @@ var brdNotify = (data) => {
2602
2336
  };
2603
2337
  export {
2604
2338
  api_exports as apiHub,
2339
+ cfg,
2605
2340
  docs_exports as docs,
2606
- gbvar,
2607
2341
  info,
2608
2342
  init,
2609
2343
  lib_exports as lib,