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
@@ -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.0";
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;
@@ -829,9 +831,9 @@ var getPosition = (params) => new Promise((resolve, reject) => {
829
831
  });
830
832
  } else reject("not support geolocation");
831
833
  });
832
- var watchPosition = (success, error) => {
834
+ var watchPosition = (success, error2) => {
833
835
  if (navigator.geolocation) {
834
- return navigator.geolocation.watchPosition(success, error, {
836
+ return navigator.geolocation.watchPosition(success, error2, {
835
837
  enableHighAccuracy: true,
836
838
  timeout: 5e3,
837
839
  maximumAge: 0
@@ -862,7 +864,7 @@ __export(cookie_exports, {
862
864
  });
863
865
  var setItem = (key, val, exp) => {
864
866
  const d = /* @__PURE__ */ new Date();
865
- d.setTime(d.getTime() + exp * 24 * 60 * 60 * 1e3);
867
+ d.setTime(d.getTime() + 1e3 * exp);
866
868
  const expires = "expires=" + d.toUTCString();
867
869
  document.cookie = `${key}=${val};${expires};path=/`;
868
870
  };
@@ -991,9 +993,9 @@ __export(mod_exports, {
991
993
  // src/mod/built-in/button/index.ts
992
994
  var button_exports = {};
993
995
  __export(button_exports, {
994
- Loading: () => Loading2
996
+ loading: () => loading2
995
997
  });
996
- var Loading2 = (btn, state = false) => {
998
+ var loading2 = (btn, state = false) => {
997
999
  if (state) {
998
1000
  btn.querySelector(".btn-loader")?.remove();
999
1001
  btn.style.color = "transparent";
@@ -1030,10 +1032,10 @@ var fitSize = (elm, delay = 0) => {
1030
1032
  // src/mod/built-in/cover/index.ts
1031
1033
  var cover_exports = {};
1032
1034
  __export(cover_exports, {
1033
- Loading: () => Loading3,
1034
- acdInit: () => acdInit
1035
+ acdInit: () => acdInit,
1036
+ loading: () => loading3
1035
1037
  });
1036
- var Loading3 = (cover, state = false, align = "top", hide = true) => {
1038
+ var loading3 = (cover, state = false, align = "top", hide = true) => {
1037
1039
  const inner = cover.querySelectorAll("*");
1038
1040
  if (state) {
1039
1041
  cover.querySelector(".cover-loader")?.remove();
@@ -1220,12 +1222,12 @@ var camReady = (cam) => {
1220
1222
  // src/mod/dialog/index.ts
1221
1223
  var dialog_exports = {};
1222
1224
  __export(dialog_exports, {
1223
- Alert: () => Alert,
1224
- Confirm: () => Confirm,
1225
- Toast: () => Toast
1225
+ alert: () => alert,
1226
+ confirm: () => confirm,
1227
+ toast: () => toast
1226
1228
  });
1227
1229
  var app4 = document.querySelector("#app");
1228
- var Confirm = (message, params) => new Promise((resolve) => {
1230
+ var confirm = (message, params) => new Promise((resolve) => {
1229
1231
  if (!app4) return;
1230
1232
  const doc = params && params?.target ? params.target : app4;
1231
1233
  const color = params && params?.color ? params.color : "green";
@@ -1259,7 +1261,7 @@ var Confirm = (message, params) => new Promise((resolve) => {
1259
1261
  resolve(false);
1260
1262
  };
1261
1263
  });
1262
- var Alert = (message, params) => new Promise((resolve) => {
1264
+ var alert = (message, params) => new Promise((resolve) => {
1263
1265
  if (!app4) return;
1264
1266
  const doc = params && params?.target ? params.target : app4;
1265
1267
  const type = params && params?.type ? params.type : "success";
@@ -1300,7 +1302,7 @@ var Alert = (message, params) => new Promise((resolve) => {
1300
1302
  resolve();
1301
1303
  };
1302
1304
  });
1303
- var Toast = (message, params) => new Promise((resolve) => {
1305
+ var toast = (message, params) => new Promise((resolve) => {
1304
1306
  if (!app4) return;
1305
1307
  const doc = params && params?.target ? params.target : app4;
1306
1308
  const type = params && params?.type ? params.type : "success";
@@ -1322,20 +1324,20 @@ var Toast = (message, params) => new Promise((resolve) => {
1322
1324
  color = "blue";
1323
1325
  icon = "&#xf05a;";
1324
1326
  }
1325
- const toast = document.createElement("div");
1326
- toast.className = `slim-toast ${color}`;
1327
- toast.innerHTML = /*html*/
1327
+ const toast2 = document.createElement("div");
1328
+ toast2.className = `slim-toast ${color}`;
1329
+ toast2.innerHTML = /*html*/
1328
1330
  `
1329
1331
  <i class="icon">${icon}</i>
1330
1332
  <span class="text">${message}</span>
1331
1333
  `;
1332
- doc.appendChild(toast);
1333
- toast.classList.add("show");
1334
+ doc.appendChild(toast2);
1335
+ toast2.classList.add("show");
1334
1336
  let count = 0;
1335
- toast.onanimationend = () => {
1337
+ toast2.onanimationend = () => {
1336
1338
  count++;
1337
1339
  if (count == 2) {
1338
- toast.remove();
1340
+ toast2.remove();
1339
1341
  resolve();
1340
1342
  }
1341
1343
  };
@@ -1344,13 +1346,13 @@ var Toast = (message, params) => new Promise((resolve) => {
1344
1346
  // src/mod/drawer/index.ts
1345
1347
  var drawer_exports = {};
1346
1348
  __export(drawer_exports, {
1347
- Close: () => Close,
1348
- Create: () => Create2,
1349
- Loading: () => Loading4,
1350
- Ready: () => Ready2
1349
+ close: () => close,
1350
+ create: () => create2,
1351
+ loading: () => loading4,
1352
+ ready: () => ready2
1351
1353
  });
1352
1354
  var app5 = document.querySelector("#app");
1353
- var Create2 = (params) => {
1355
+ var create2 = (params) => {
1354
1356
  const name = params.name ? params.name : "drawer";
1355
1357
  const size = params.size ? params.size : "mobile";
1356
1358
  const drawer = document.createElement("div");
@@ -1434,7 +1436,7 @@ var openMobile = (drawer) => {
1434
1436
  }
1435
1437
  };
1436
1438
  };
1437
- var Close = (drawer) => new Promise((resolve) => {
1439
+ var close = (drawer) => new Promise((resolve) => {
1438
1440
  drawer.querySelector("#btn-exit").click();
1439
1441
  drawer.addEventListener("animationend", () => resolve());
1440
1442
  });
@@ -1459,13 +1461,13 @@ var destroy = (drawer) => {
1459
1461
  const dialog = document.querySelectorAll(".slim-dialog");
1460
1462
  dialog.forEach((el) => el.remove());
1461
1463
  };
1462
- var Loading4 = (drawer) => {
1464
+ var loading4 = (drawer) => {
1463
1465
  const body = drawer.querySelector(".drawer-body");
1464
1466
  const loader = drawer.querySelector(".loader");
1465
1467
  if (body) body.style.display = "none";
1466
1468
  if (loader) loader.style.display = "flex";
1467
1469
  };
1468
- var Ready2 = (drawer) => {
1470
+ var ready2 = (drawer) => {
1469
1471
  const body = drawer.querySelector(".drawer-body");
1470
1472
  const loader = drawer.querySelector(".loader");
1471
1473
  if (body) body.style.display = "block";
@@ -1475,32 +1477,32 @@ var Ready2 = (drawer) => {
1475
1477
  // src/mod/drop/index.ts
1476
1478
  var drop_exports = {};
1477
1479
  __export(drop_exports, {
1478
- Clear: () => Clear,
1479
- Menu: () => Menu,
1480
- Select: () => Select,
1481
- Update: () => Update
1480
+ clear: () => clear2,
1481
+ menu: () => menu,
1482
+ select: () => select,
1483
+ update: () => update
1482
1484
  });
1483
- var Menu = (drop) => {
1485
+ var menu = (drop) => {
1484
1486
  const dropBtn = drop.querySelector(".drop-btn");
1485
1487
  const content = drop.querySelector(".drop-content");
1486
1488
  if (!dropBtn || !content) return;
1487
1489
  setBtnEvent(dropBtn, content);
1488
1490
  };
1489
- var Select = (drop, icon, callBack) => {
1491
+ var select = (drop, icon, callBack) => {
1490
1492
  const dropBtn = drop.querySelector(".drop-btn");
1491
1493
  const content = drop.querySelector(".drop-content");
1492
1494
  if (!dropBtn || !content) return;
1493
1495
  setBtnEvent(dropBtn, content);
1494
- Update(drop, icon, callBack);
1496
+ update(drop, icon, callBack);
1495
1497
  };
1496
- var Update = (drop, icon, callBack) => {
1497
- const select = drop.querySelector("select");
1498
+ var update = (drop, icon, callBack) => {
1499
+ const select2 = drop.querySelector("select");
1498
1500
  const content = drop.querySelector(".drop-content");
1499
- if (!select || !content) return;
1501
+ if (!select2 || !content) return;
1500
1502
  let elmIcon = "";
1501
1503
  if (icon) elmIcon = `<span style="margin-right: 6px;">${icon}</span>`;
1502
1504
  content.innerHTML = "";
1503
- const option = select.querySelectorAll("option");
1505
+ const option = select2.querySelectorAll("option");
1504
1506
  option.forEach((opt) => {
1505
1507
  const item = document.createElement("a");
1506
1508
  item.innerHTML = `${elmIcon}${opt.text}`;
@@ -1514,7 +1516,7 @@ var Update = (drop, icon, callBack) => {
1514
1516
  };
1515
1517
  });
1516
1518
  const clearSelected = () => {
1517
- const index = select.selectedIndex;
1519
+ const index = select2.selectedIndex;
1518
1520
  const list = content.querySelectorAll("a");
1519
1521
  list.forEach((el, i) => {
1520
1522
  if (i == index) {
@@ -1535,7 +1537,7 @@ var setBtnEvent = (btn, content) => {
1535
1537
  content.style.display = "";
1536
1538
  };
1537
1539
  } else {
1538
- Clear();
1540
+ clear2();
1539
1541
  content.style.animation = "fade-in 0.4s forwards";
1540
1542
  content.style.display = "block";
1541
1543
  content.onanimationend = () => {
@@ -1544,7 +1546,7 @@ var setBtnEvent = (btn, content) => {
1544
1546
  }
1545
1547
  };
1546
1548
  };
1547
- var Clear = () => {
1549
+ var clear2 = () => {
1548
1550
  const drop = document.querySelectorAll(".drop-content");
1549
1551
  drop.forEach((el) => {
1550
1552
  if (el.style.display == "block") {
@@ -1557,18 +1559,18 @@ var Clear = () => {
1557
1559
  });
1558
1560
  };
1559
1561
  window.addEventListener("click", (e) => {
1560
- if (!e.target.matches(".drop-btn")) Clear();
1562
+ if (!e.target.matches(".drop-btn")) clear2();
1561
1563
  });
1562
1564
 
1563
1565
  // src/mod/modal/index.ts
1564
1566
  var modal_exports = {};
1565
1567
  __export(modal_exports, {
1566
- Close: () => Close2,
1567
- Create: () => Create3,
1568
- Hidden: () => Hidden,
1569
- Loading: () => Loading5,
1570
- Ready: () => Ready3,
1571
- Visible: () => Visible
1568
+ close: () => close2,
1569
+ create: () => create3,
1570
+ hidden: () => hidden,
1571
+ loading: () => loading5,
1572
+ ready: () => ready3,
1573
+ visible: () => visible
1572
1574
  });
1573
1575
  var app6 = document.querySelector("#app");
1574
1576
  var tmpBtnSave = (
@@ -1595,7 +1597,7 @@ var tmpBtnClose = (
1595
1597
  </button>
1596
1598
  `
1597
1599
  );
1598
- var Create3 = (params) => {
1600
+ var create3 = (params) => {
1599
1601
  const icon = params.icon ? params.icon : "&#xf40e;";
1600
1602
  const title = params.title ? params.title : "Modal Title";
1601
1603
  const body = params.body ? params.body : "Modal Body";
@@ -1662,7 +1664,7 @@ var Create3 = (params) => {
1662
1664
  if (btnClose) btnClose.onclick = done;
1663
1665
  return modal;
1664
1666
  };
1665
- var Close2 = (modal) => new Promise((resolve) => {
1667
+ var close2 = (modal) => new Promise((resolve) => {
1666
1668
  modal.querySelector("#btn-exit").click();
1667
1669
  const content = modal.querySelector(".content");
1668
1670
  content.addEventListener("animationend", () => resolve());
@@ -1678,34 +1680,36 @@ var destroy2 = (modal) => {
1678
1680
  }
1679
1681
  });
1680
1682
  };
1681
- var Loading5 = (modal) => {
1683
+ var loading5 = (modal) => {
1682
1684
  const body = modal.querySelector(".body");
1683
1685
  const loader = modal.querySelector(".loader");
1684
1686
  if (body) body.style.visibility = "hidden";
1685
1687
  if (loader) loader.style.display = "flex";
1686
1688
  };
1687
- var Ready3 = (modal) => {
1689
+ var ready3 = (modal) => {
1688
1690
  const body = modal.querySelector(".body");
1689
1691
  const loader = modal.querySelector(".loader");
1690
1692
  if (body) body.style.visibility = "visible";
1691
1693
  if (loader) loader.style.display = "none";
1692
1694
  };
1693
- var Hidden = (modal) => {
1695
+ var hidden = (modal) => {
1694
1696
  modal.style.display = "none";
1695
1697
  };
1696
- var Visible = (modal) => {
1698
+ var visible = (modal) => {
1697
1699
  modal.style.display = "block";
1698
1700
  };
1699
1701
 
1700
1702
  // src/mod/tabs/index.ts
1701
1703
  var tabs_exports = {};
1702
1704
  __export(tabs_exports, {
1703
- Init: () => Init,
1705
+ init: () => init2,
1706
+ loading: () => loading6,
1707
+ ready: () => ready4,
1704
1708
  setActive: () => setActive
1705
1709
  });
1706
1710
  var ignore = ["camera", "drawer", "modal"];
1707
1711
  var hashIgnore = (hash) => ignore.includes(hash);
1708
- var Init = (tabs, onChange) => {
1712
+ var init2 = (tabs, onChange) => {
1709
1713
  const tbtn = tabs.querySelectorAll(".tabs-btn");
1710
1714
  tbtn.forEach((elm) => {
1711
1715
  const dataHash = elm.getAttribute("data-hash");
@@ -1731,13 +1735,13 @@ var Init = (tabs, onChange) => {
1731
1735
  elm.classList.remove("active");
1732
1736
  }
1733
1737
  });
1734
- tabsLoading(tabs, index);
1735
- onChange(index, () => tabsReady(tabs, index));
1738
+ loading6(tabs, index);
1739
+ onChange(index, () => ready4(tabs, index));
1736
1740
  };
1737
1741
  tabsChange();
1738
1742
  window.onhashchange = tabsChange;
1739
1743
  };
1740
- var tabsLoading = (tabs, index) => {
1744
+ var loading6 = (tabs, index) => {
1741
1745
  const tbtn = tabs.querySelectorAll(".tabs-btn")[index];
1742
1746
  const body = tabs.querySelector(".tabs-body");
1743
1747
  const inner = tbtn.querySelectorAll("*");
@@ -1765,7 +1769,7 @@ var tabsLoading = (tabs, index) => {
1765
1769
  }
1766
1770
  }
1767
1771
  };
1768
- var tabsReady = (tabs, index) => {
1772
+ var ready4 = (tabs, index) => {
1769
1773
  const tbtn = tabs.querySelectorAll(".tabs-btn")[index];
1770
1774
  const body = tabs.querySelector(".tabs-body");
1771
1775
  const inner = tbtn.querySelectorAll("*");
@@ -1795,10 +1799,10 @@ var setActive = (tbtn, index) => {
1795
1799
  // src/svchub/oauth/index.ts
1796
1800
  var oauth_exports = {};
1797
1801
  __export(oauth_exports, {
1798
- Callback: () => Callback,
1799
- Login: () => Login,
1800
- Logout: () => Logout,
1801
- Midware: () => Midware
1802
+ authMW: () => authMW,
1803
+ callback: () => callback,
1804
+ login: () => login,
1805
+ logout: () => logout
1802
1806
  });
1803
1807
 
1804
1808
  // src/svchub/oauth/template.ts
@@ -1818,25 +1822,17 @@ var tempLogout = (
1818
1822
  `
1819
1823
  );
1820
1824
 
1821
- // src/svchub/api/account/access.ts
1822
- var access_exports = {};
1823
- __export(access_exports, {
1824
- Create: () => Create4,
1825
- Read: () => Read
1825
+ // src/svchub/api/auth/index.ts
1826
+ var auth_exports = {};
1827
+ __export(auth_exports, {
1828
+ getToken: () => getToken,
1829
+ getUserInfo: () => getUserInfo
1826
1830
  });
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
1831
+ var getToken = (params) => new Promise((resolve, reject) => {
1832
+ fetch(cfg.hub.OAUTH + "/token", {
1833
+ method: "POST",
1834
+ headers: { "Content-Type": "application/json; charset=utf-8" },
1835
+ body: JSON.stringify(params)
1840
1836
  }).then((resp) => {
1841
1837
  if (!resp.ok) throw resp;
1842
1838
  return resp.json();
@@ -1844,19 +1840,15 @@ var Read = (agcy, acct, params) => new Promise((resolve, reject) => {
1844
1840
  resolve(json);
1845
1841
  }).catch((err) => reject(err));
1846
1842
  });
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
- })
1843
+ var getUserInfo = (token) => new Promise((resolve, reject) => {
1844
+ let headers = cfg.api.HEADERS;
1845
+ if (token) headers = new Headers({
1846
+ "Content-Type": "application/json; charset=utf-8",
1847
+ "Authorization": `Bearer ${token}`
1848
+ });
1849
+ fetch(cfg.hub.OAUTH + "/userinfo", {
1850
+ method: "GET",
1851
+ headers
1860
1852
  }).then((resp) => {
1861
1853
  if (!resp.ok) throw resp;
1862
1854
  return resp.json();
@@ -1867,7 +1859,7 @@ var Create4 = () => new Promise((resolve, reject) => {
1867
1859
 
1868
1860
  // src/svchub/oauth/midware.ts
1869
1861
  var IGNORE = ["__NOT_FOUND__", "login", "logout", "callback"];
1870
- var Midware = async (route, ignore2) => {
1862
+ var authMW = async (route, ignore2) => {
1871
1863
  ignore2?.forEach((val) => IGNORE.push(val));
1872
1864
  if (IGNORE.includes(route)) {
1873
1865
  console.log("ignore :", route);
@@ -1887,36 +1879,32 @@ var Midware = async (route, ignore2) => {
1887
1879
  } catch {
1888
1880
  gotoLogin();
1889
1881
  }
1890
- gbvar.api.TOKEN = token;
1891
- gbvar.api.HEADERS = new Headers({
1882
+ cfg.api.TOKEN = token;
1883
+ cfg.api.HEADERS = new Headers({
1892
1884
  "Content-Type": "application/json; charset=utf-8",
1893
- "Authorization": `Bearer ${gbvar.api.TOKEN}`
1885
+ "Authorization": `Bearer ${cfg.api.TOKEN}`
1894
1886
  });
1895
1887
  const session = sessionStorage.getItem("ACCESS_SESSION");
1896
1888
  if (!session) {
1897
- await Create4().then((resp) => {
1889
+ await getUserInfo().then((resp) => {
1898
1890
  const data = resp.data;
1899
- setProfile(data.profile);
1891
+ setProfile(data);
1900
1892
  sessionStorage.setItem("ACCESS_SESSION", JSON.stringify(data));
1901
1893
  }).catch(() => gotoLogin());
1902
1894
  } else {
1903
1895
  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;
1896
+ setProfile(data);
1897
+ }
1898
+ };
1899
+ var setProfile = (user) => {
1900
+ cfg.user.sub = user.sub;
1901
+ cfg.user.name = user.name;
1902
+ cfg.user.utyp = user.utyp;
1903
+ cfg.user.unit = user.unit;
1904
+ cfg.user.unit_id = user.unit_id;
1905
+ cfg.user.role_id = user.role_id;
1906
+ cfg.user.picture = user.picture ? user.picture : "";
1907
+ if (user.metadata) cfg.user.metadata = user.metadata;
1920
1908
  };
1921
1909
  var gotoLogin = () => {
1922
1910
  clear();
@@ -1928,26 +1916,27 @@ var gotoLogin = () => {
1928
1916
 
1929
1917
  // src/svchub/oauth/index.ts
1930
1918
  var app7 = document.querySelector("#app");
1931
- var Login = () => {
1919
+ var login = () => {
1932
1920
  clearCache();
1933
1921
  const state = Math.random().toString(36).slice(-8);
1934
1922
  sessionStorage.setItem("OAUTH_STATE", state);
1935
1923
  const query = new URLSearchParams({
1936
1924
  response_type: "token",
1937
- client_id: gbvar.app.UUID,
1925
+ client_id: cfg.app.UUID,
1926
+ redirect_uri: cfg.app.CALLBACK,
1938
1927
  state
1939
1928
  }).toString();
1940
- const url = `${gbvar.hub.LOGIN}?${query}`;
1929
+ const url = `${cfg.hub.LOGIN}?${query}`;
1941
1930
  window.location.replace(url);
1942
1931
  };
1943
- var Logout = () => {
1932
+ var logout = () => {
1944
1933
  clearCache();
1945
1934
  if (!app7) return;
1946
1935
  app7.innerHTML = tempLogout;
1947
1936
  app7.classList.add("full-page");
1948
1937
  const content = app7.querySelector("#content");
1949
1938
  const loader = app7.querySelector("#loader");
1950
- new Promise((r) => setTimeout(r, 800)).then(() => {
1939
+ new Promise((r) => setTimeout(r, 400)).then(() => {
1951
1940
  content.style.display = "block";
1952
1941
  loader.style.display = "none";
1953
1942
  });
@@ -1955,7 +1944,7 @@ var Logout = () => {
1955
1944
  window.location.replace("/login");
1956
1945
  };
1957
1946
  };
1958
- var Callback = () => {
1947
+ var callback = () => {
1959
1948
  const search = window.location.search;
1960
1949
  const query = new URLSearchParams(search);
1961
1950
  const state = query.get("state");
@@ -1982,505 +1971,7 @@ var clearCache = () => {
1982
1971
  // src/svchub/api/index.ts
1983
1972
  var api_exports = {};
1984
1973
  __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));
1974
+ auth: () => auth_exports
2484
1975
  });
2485
1976
 
2486
1977
  // src/svchub/wss/index.ts
@@ -2491,25 +1982,25 @@ __export(wss_exports, {
2491
1982
  });
2492
1983
  var newTask = (worker) => {
2493
1984
  if (!window.Worker) return;
2494
- gbvar.hub.TASK = new worker();
2495
- gbvar.hub.TASK.postMessage({
1985
+ cfg.hub.TASK = new worker();
1986
+ cfg.hub.TASK.postMessage({
2496
1987
  head: "INIT",
2497
1988
  data: {
2498
- url: gbvar.hub.WSS,
2499
- app: gbvar.app.NAME,
2500
- uid: gbvar.app.UUID,
2501
- ver: gbvar.app.VERSION
1989
+ url: cfg.hub.WSS,
1990
+ app: cfg.app.NAME,
1991
+ uid: cfg.app.UUID,
1992
+ ver: cfg.app.VERSION
2502
1993
  }
2503
1994
  });
2504
- gbvar.hub.TASK.addEventListener("message", (e) => {
1995
+ cfg.hub.TASK.addEventListener("message", (e) => {
2505
1996
  const json = e.data;
2506
1997
  const head = json.head ? json.head : "";
2507
1998
  const data = json.data ? json.data : "";
2508
1999
  if (head == "ACCEPT") {
2509
2000
  rspAccept(data);
2510
- gbvar.hub.TASK?.postMessage({
2001
+ cfg.hub.TASK?.postMessage({
2511
2002
  head: "VERIFY",
2512
- data: gbvar.api.TOKEN
2003
+ data: cfg.api.TOKEN
2513
2004
  });
2514
2005
  }
2515
2006
  if (head == "DISCON") rspDiscon();
@@ -2522,11 +2013,11 @@ var newTask = (worker) => {
2522
2013
  };
2523
2014
  var checkUpdate = (min = 10) => {
2524
2015
  return setInterval(() => {
2525
- gbvar.hub.TASK?.postMessage({
2016
+ cfg.hub.TASK?.postMessage({
2526
2017
  head: "LATEST",
2527
2018
  data: {
2528
- app: gbvar.app.NAME,
2529
- uid: gbvar.app.UUID
2019
+ app: cfg.app.NAME,
2020
+ uid: cfg.app.UUID
2530
2021
  }
2531
2022
  });
2532
2023
  }, 1e3 * 60 * min);
@@ -2534,30 +2025,30 @@ var checkUpdate = (min = 10) => {
2534
2025
  var rspBrdMsg = (brd) => {
2535
2026
  if (brd.cmd == "LOGS") console.log(brd.msg);
2536
2027
  if (brd.cmd == "TIME") setTime(brd.msg);
2537
- if (brd.cmd == "RESULT" && brd.to == gbvar.hub.UUID) {
2028
+ if (brd.cmd == "RESULT" && brd.to == cfg.hub.UUID) {
2538
2029
  console.log(brd.cmd, "From:", brd.from);
2539
2030
  console.log(brd.msg);
2540
2031
  }
2541
- if (brd.cmd == "CONRST" && (brd.to == gbvar.hub.UUID || brd.to == "@all")) {
2032
+ if (brd.cmd == "CONRST" && (brd.to == cfg.hub.UUID || brd.to == "@all")) {
2542
2033
  sessionStorage.clear();
2543
2034
  window.location.reload();
2544
2035
  }
2545
- if (brd.cmd == "LOGOUT" && (brd.to == gbvar.hub.UUID || brd.to == "@all")) {
2036
+ if (brd.cmd == "LOGOUT" && (brd.to == cfg.hub.UUID || brd.to == "@all")) {
2546
2037
  localStorage.clear();
2547
2038
  sessionStorage.clear();
2548
2039
  window.location.reload();
2549
2040
  }
2550
- if (brd.cmd == "NOTIFY" && (brd.to == gbvar.hub.UUID || brd.to == "@all")) {
2041
+ if (brd.cmd == "NOTIFY" && (brd.to == cfg.hub.UUID || brd.to == "@all")) {
2551
2042
  brdNotify(brd.msg);
2552
2043
  }
2553
2044
  if (brd.cmd == "") console.log(brd.msg);
2554
2045
  };
2555
2046
  var rspAccept = (data) => {
2556
- gbvar.hub.UUID = data.uuid ? data.uuid : "";
2557
- console.log("hub-uuid:", gbvar.hub.UUID);
2047
+ cfg.hub.UUID = data.uuid ? data.uuid : "";
2048
+ console.log("hub-uuid:", cfg.hub.UUID);
2558
2049
  const boxTime = document.querySelector("#topbar #box-time");
2559
2050
  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" });
2051
+ toast("\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D Server \u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08.!", { type: "success" });
2561
2052
  };
2562
2053
  var rspDiscon = () => {
2563
2054
  const boxTime = document.querySelector("#topbar #box-time");
@@ -2568,23 +2059,23 @@ var rspDiscon = () => {
2568
2059
  if (svTime) svTime.innerText = "server";
2569
2060
  if (svDate) svDate.innerText = "OFFLINE";
2570
2061
  }
2571
- Toast("\u0E02\u0E32\u0E14\u0E01\u0E32\u0E23\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D Server.!", { type: "failure" });
2062
+ toast("\u0E02\u0E32\u0E14\u0E01\u0E32\u0E23\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D Server.!", { type: "failure" });
2572
2063
  };
2573
2064
  var rspLatest = (data) => {
2574
- if (gbvar.app.UUID == data.appuuid && gbvar.app.NAME == data.appname) {
2065
+ if (cfg.app.UUID == data.appuuid && cfg.app.NAME == data.appname) {
2575
2066
  const path = window.location.pathname;
2576
- if (path != "/changelog" && gbvar.app.RELEASE != data.release) {
2067
+ if (path != "/changelog" && cfg.app.RELEASE != data.release) {
2577
2068
  window.location.replace("/changelog");
2578
2069
  }
2579
2070
  }
2580
2071
  };
2581
2072
  var setTime = (data) => {
2582
2073
  if (typeof data.unix != "number") return;
2583
- gbvar.UNIX_TIME = Number(data.unix);
2074
+ cfg.UNIX_TIME = Number(data.unix);
2584
2075
  const svTime = document.querySelector("#topbar #box-time #sv-time");
2585
2076
  const svDate = document.querySelector("#topbar #box-time #sv-date");
2586
2077
  if (svTime && svDate) {
2587
- const [date, time] = timeToStr(gbvar.UNIX_TIME).split(" ");
2078
+ const [date, time] = timeToStr(cfg.UNIX_TIME).split(" ");
2588
2079
  svTime.innerText = time;
2589
2080
  svDate.innerText = thaiDate(date, 11);
2590
2081
  }
@@ -2602,8 +2093,8 @@ var brdNotify = (data) => {
2602
2093
  };
2603
2094
  export {
2604
2095
  api_exports as apiHub,
2096
+ cfg,
2605
2097
  docs_exports as docs,
2606
- gbvar,
2607
2098
  info,
2608
2099
  init,
2609
2100
  lib_exports as lib,