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
@@ -1 +1 @@
1
- export { L as Loading } from '../../index-QRbamarh.js';
1
+ export { l as loading } from '../../index-BAQxKstM.js';
@@ -1,5 +1,5 @@
1
1
  // src/mod/built-in/button/index.ts
2
- var Loading = (btn, state = false) => {
2
+ var loading = (btn, state = false) => {
3
3
  if (state) {
4
4
  btn.querySelector(".btn-loader")?.remove();
5
5
  btn.style.color = "transparent";
@@ -17,6 +17,6 @@ var Loading = (btn, state = false) => {
17
17
  }
18
18
  };
19
19
  export {
20
- Loading
20
+ loading
21
21
  };
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mod/built-in/button/index.ts"],"sourcesContent":["/* button */\n/*--------------------------------------------------------------------------------*/\nexport const Loading = (\n btn: HTMLButtonElement,\n state = false,\n) => {\n if (state) {\n btn.querySelector<HTMLElement>('.btn-loader')?.remove();\n btn.style.color = 'transparent';\n btn.style.position = 'relative';\n btn.style.pointerEvents = 'none';\n const loader = document.createElement('div');\n loader.className = 'btn-loader';\n loader.innerHTML = `<div class=\"spinner s22\"></div>`;\n btn.appendChild(loader);\n } else {\n btn.querySelector<HTMLElement>('.btn-loader')?.remove();\n btn.style.color = '';\n btn.style.position = '';\n btn.style.pointerEvents = '';\n }\n};\n/*--------------------------------------------------------------------------------*/\n"],"mappings":";AAEO,IAAM,UAAU,CACnB,KACA,QAAQ,UACP;AACD,MAAI,OAAO;AACP,QAAI,cAA2B,aAAa,GAAG,OAAO;AACtD,QAAI,MAAM,QAAQ;AAClB,QAAI,MAAM,WAAW;AACrB,QAAI,MAAM,gBAAgB;AAC1B,UAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,WAAO,YAAY;AACnB,WAAO,YAAY;AACnB,QAAI,YAAY,MAAM;AAAA,EAC1B,OAAO;AACH,QAAI,cAA2B,aAAa,GAAG,OAAO;AACtD,QAAI,MAAM,QAAQ;AAClB,QAAI,MAAM,WAAW;AACrB,QAAI,MAAM,gBAAgB;AAAA,EAC9B;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/mod/built-in/button/index.ts"],"sourcesContent":["/* button */\n/*--------------------------------------------------------------------------------*/\nexport const loading = (\n btn: HTMLButtonElement,\n state = false,\n) => {\n if (state) {\n btn.querySelector<HTMLElement>('.btn-loader')?.remove();\n btn.style.color = 'transparent';\n btn.style.position = 'relative';\n btn.style.pointerEvents = 'none';\n const loader = document.createElement('div');\n loader.className = 'btn-loader';\n loader.innerHTML = `<div class=\"spinner s22\"></div>`;\n btn.appendChild(loader);\n } else {\n btn.querySelector<HTMLElement>('.btn-loader')?.remove();\n btn.style.color = '';\n btn.style.position = '';\n btn.style.pointerEvents = '';\n }\n};\n/*--------------------------------------------------------------------------------*/\n"],"mappings":";AAEO,IAAM,UAAU,CACnB,KACA,QAAQ,UACP;AACD,MAAI,OAAO;AACP,QAAI,cAA2B,aAAa,GAAG,OAAO;AACtD,QAAI,MAAM,QAAQ;AAClB,QAAI,MAAM,WAAW;AACrB,QAAI,MAAM,gBAAgB;AAC1B,UAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,WAAO,YAAY;AACnB,WAAO,YAAY;AACnB,QAAI,YAAY,MAAM;AAAA,EAC1B,OAAO;AACH,QAAI,cAA2B,aAAa,GAAG,OAAO;AACtD,QAAI,MAAM,QAAQ;AAClB,QAAI,MAAM,WAAW;AACrB,QAAI,MAAM,gBAAgB;AAAA,EAC9B;AACJ;","names":[]}
@@ -1 +1 @@
1
- export { L as Loading, a as acdInit } from '../../index-BQcJsVJ-.js';
1
+ export { a as acdInit, l as loading } from '../../index-D5CUpF9v.js';
@@ -1,5 +1,5 @@
1
1
  // src/mod/built-in/cover/index.ts
2
- var Loading = (cover, state = false, align = "top", hide = true) => {
2
+ var loading = (cover, state = false, align = "top", hide = true) => {
3
3
  const inner = cover.querySelectorAll("*");
4
4
  if (state) {
5
5
  cover.querySelector(".cover-loader")?.remove();
@@ -34,7 +34,7 @@ var acdInit = () => {
34
34
  });
35
35
  };
36
36
  export {
37
- Loading,
38
- acdInit
37
+ acdInit,
38
+ loading
39
39
  };
40
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mod/built-in/cover/index.ts"],"sourcesContent":["/* cover */\n/*--------------------------------------------------------------------------------*/\nexport const Loading = (\n cover: HTMLElement,\n state = false,\n align = 'top',\n hide = true,\n) => {\n const inner = cover.querySelectorAll<HTMLElement>('*');\n if (state) {\n cover.querySelector<HTMLElement>('.cover-loader')?.remove();\n cover.style.position = 'relative';\n if (hide) inner.forEach(el => el.style.visibility = 'hidden');\n // create loader\n const loader = document.createElement('div');\n loader.className = `cover-loader ${align}`;\n loader.innerHTML = `<div class=\"spinner s28\"></div>`;\n cover.appendChild(loader);\n } else {\n new Promise(r => setTimeout(r, 400)).then(() => {\n cover.querySelector<HTMLElement>('.cover-loader')?.remove();\n cover.style.position = '';\n inner.forEach(el => el.style.visibility = '');\n });\n }\n};\n/*--------------------------------------------------------------------------------*/\n// accordion\nexport const acdInit = () => {\n const acdItem = document.querySelectorAll<HTMLElement>('.acd-item');\n acdItem.forEach(elm => {\n const topic = elm.querySelector<HTMLElement>('.topic');\n const panel = elm.querySelector<HTMLElement>('.panel');\n if (topic) topic.onclick = () => {\n elm.classList.toggle('active');\n if (!panel) return;\n if (elm.classList.contains('active')) {\n panel.style.maxHeight = `${panel.scrollHeight}px`;\n } else {\n panel.style.maxHeight = '';\n }\n };\n });\n};\n/*--------------------------------------------------------------------------------*/\n"],"mappings":";AAEO,IAAM,UAAU,CACnB,OACA,QAAQ,OACR,QAAQ,OACR,OAAO,SACN;AACD,QAAM,QAAQ,MAAM,iBAA8B,GAAG;AACrD,MAAI,OAAO;AACP,UAAM,cAA2B,eAAe,GAAG,OAAO;AAC1D,UAAM,MAAM,WAAW;AACvB,QAAI,KAAM,OAAM,QAAQ,QAAM,GAAG,MAAM,aAAa,QAAQ;AAE5D,UAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,WAAO,YAAY,gBAAgB,KAAK;AACxC,WAAO,YAAY;AACnB,UAAM,YAAY,MAAM;AAAA,EAC5B,OAAO;AACH,QAAI,QAAQ,OAAK,WAAW,GAAG,GAAG,CAAC,EAAE,KAAK,MAAM;AAC5C,YAAM,cAA2B,eAAe,GAAG,OAAO;AAC1D,YAAM,MAAM,WAAW;AACvB,YAAM,QAAQ,QAAM,GAAG,MAAM,aAAa,EAAE;AAAA,IAChD,CAAC;AAAA,EACL;AACJ;AAGO,IAAM,UAAU,MAAM;AACzB,QAAM,UAAU,SAAS,iBAA8B,WAAW;AAClE,UAAQ,QAAQ,SAAO;AACnB,UAAM,QAAQ,IAAI,cAA2B,QAAQ;AACrD,UAAM,QAAQ,IAAI,cAA2B,QAAQ;AACrD,QAAI,MAAO,OAAM,UAAU,MAAM;AAC7B,UAAI,UAAU,OAAO,QAAQ;AAC7B,UAAI,CAAC,MAAO;AACZ,UAAI,IAAI,UAAU,SAAS,QAAQ,GAAG;AAClC,cAAM,MAAM,YAAY,GAAG,MAAM,YAAY;AAAA,MACjD,OAAO;AACH,cAAM,MAAM,YAAY;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;","names":[]}
1
+ {"version":3,"sources":["../../../src/mod/built-in/cover/index.ts"],"sourcesContent":["/* cover */\n/*--------------------------------------------------------------------------------*/\nexport const loading = (\n cover: HTMLElement,\n state = false,\n align = 'top',\n hide = true,\n) => {\n const inner = cover.querySelectorAll<HTMLElement>('*');\n if (state) {\n cover.querySelector<HTMLElement>('.cover-loader')?.remove();\n cover.style.position = 'relative';\n if (hide) inner.forEach(el => el.style.visibility = 'hidden');\n // create loader\n const loader = document.createElement('div');\n loader.className = `cover-loader ${align}`;\n loader.innerHTML = `<div class=\"spinner s28\"></div>`;\n cover.appendChild(loader);\n } else {\n new Promise(r => setTimeout(r, 400)).then(() => {\n cover.querySelector<HTMLElement>('.cover-loader')?.remove();\n cover.style.position = '';\n inner.forEach(el => el.style.visibility = '');\n });\n }\n};\n/*--------------------------------------------------------------------------------*/\n// accordion\nexport const acdInit = () => {\n const acdItem = document.querySelectorAll<HTMLElement>('.acd-item');\n acdItem.forEach(elm => {\n const topic = elm.querySelector<HTMLElement>('.topic');\n const panel = elm.querySelector<HTMLElement>('.panel');\n if (topic) topic.onclick = () => {\n elm.classList.toggle('active');\n if (!panel) return;\n if (elm.classList.contains('active')) {\n panel.style.maxHeight = `${panel.scrollHeight}px`;\n } else {\n panel.style.maxHeight = '';\n }\n };\n });\n};\n/*--------------------------------------------------------------------------------*/\n"],"mappings":";AAEO,IAAM,UAAU,CACnB,OACA,QAAQ,OACR,QAAQ,OACR,OAAO,SACN;AACD,QAAM,QAAQ,MAAM,iBAA8B,GAAG;AACrD,MAAI,OAAO;AACP,UAAM,cAA2B,eAAe,GAAG,OAAO;AAC1D,UAAM,MAAM,WAAW;AACvB,QAAI,KAAM,OAAM,QAAQ,QAAM,GAAG,MAAM,aAAa,QAAQ;AAE5D,UAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,WAAO,YAAY,gBAAgB,KAAK;AACxC,WAAO,YAAY;AACnB,UAAM,YAAY,MAAM;AAAA,EAC5B,OAAO;AACH,QAAI,QAAQ,OAAK,WAAW,GAAG,GAAG,CAAC,EAAE,KAAK,MAAM;AAC5C,YAAM,cAA2B,eAAe,GAAG,OAAO;AAC1D,YAAM,MAAM,WAAW;AACvB,YAAM,QAAQ,QAAM,GAAG,MAAM,aAAa,EAAE;AAAA,IAChD,CAAC;AAAA,EACL;AACJ;AAGO,IAAM,UAAU,MAAM;AACzB,QAAM,UAAU,SAAS,iBAA8B,WAAW;AAClE,UAAQ,QAAQ,SAAO;AACnB,UAAM,QAAQ,IAAI,cAA2B,QAAQ;AACrD,UAAM,QAAQ,IAAI,cAA2B,QAAQ;AACrD,QAAI,MAAO,OAAM,UAAU,MAAM;AAC7B,UAAI,UAAU,OAAO,QAAQ;AAC7B,UAAI,CAAC,MAAO;AACZ,UAAI,IAAI,UAAU,SAAS,QAAQ,GAAG;AAClC,cAAM,MAAM,YAAY,GAAG,MAAM,YAAY;AAAA,MACjD,OAAO;AACH,cAAM,MAAM,YAAY;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;","names":[]}
@@ -1 +1 @@
1
- export { A as Alert, C as Confirm, T as Toast } from '../../index-CzsSwSvp.js';
1
+ export { a as alert, c as confirm, t as toast } from '../../index-B4158M0u.js';
@@ -1,6 +1,6 @@
1
1
  // src/mod/dialog/index.ts
2
2
  var app = document.querySelector("#app");
3
- var Confirm = (message, params) => new Promise((resolve) => {
3
+ var confirm = (message, params) => new Promise((resolve) => {
4
4
  if (!app) return;
5
5
  const doc = params && params?.target ? params.target : app;
6
6
  const color = params && params?.color ? params.color : "green";
@@ -34,7 +34,7 @@ var Confirm = (message, params) => new Promise((resolve) => {
34
34
  resolve(false);
35
35
  };
36
36
  });
37
- var Alert = (message, params) => new Promise((resolve) => {
37
+ var alert = (message, params) => new Promise((resolve) => {
38
38
  if (!app) return;
39
39
  const doc = params && params?.target ? params.target : app;
40
40
  const type = params && params?.type ? params.type : "success";
@@ -75,7 +75,7 @@ var Alert = (message, params) => new Promise((resolve) => {
75
75
  resolve();
76
76
  };
77
77
  });
78
- var Toast = (message, params) => new Promise((resolve) => {
78
+ var toast = (message, params) => new Promise((resolve) => {
79
79
  if (!app) return;
80
80
  const doc = params && params?.target ? params.target : app;
81
81
  const type = params && params?.type ? params.type : "success";
@@ -97,27 +97,27 @@ var Toast = (message, params) => new Promise((resolve) => {
97
97
  color = "blue";
98
98
  icon = "&#xf05a;";
99
99
  }
100
- const toast = document.createElement("div");
101
- toast.className = `slim-toast ${color}`;
102
- toast.innerHTML = /*html*/
100
+ const toast2 = document.createElement("div");
101
+ toast2.className = `slim-toast ${color}`;
102
+ toast2.innerHTML = /*html*/
103
103
  `
104
104
  <i class="icon">${icon}</i>
105
105
  <span class="text">${message}</span>
106
106
  `;
107
- doc.appendChild(toast);
108
- toast.classList.add("show");
107
+ doc.appendChild(toast2);
108
+ toast2.classList.add("show");
109
109
  let count = 0;
110
- toast.onanimationend = () => {
110
+ toast2.onanimationend = () => {
111
111
  count++;
112
112
  if (count == 2) {
113
- toast.remove();
113
+ toast2.remove();
114
114
  resolve();
115
115
  }
116
116
  };
117
117
  });
118
118
  export {
119
- Alert,
120
- Confirm,
121
- Toast
119
+ alert,
120
+ confirm,
121
+ toast
122
122
  };
123
123
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mod/dialog/index.ts"],"sourcesContent":["/* dialog */\nconst app = document.querySelector<HTMLElement>('#app');\n/*--------------------------------------------------------------------------------*/\nexport const Confirm = (\n message: string,\n params?: {\n color?: string;\n target?: HTMLElement;\n }\n) => new Promise<boolean>((resolve) => {\n if (!app) return;\n const doc = params && params?.target ? params.target : app;\n const color = params && params?.color ? params.color : 'green';\n // create\n const dialog = document.createElement('div');\n dialog.className = 'overlay slim-dialog';\n dialog.innerHTML = /*html*/ `\n <div class=\"confirm ${color}\">\n <div class=\"header\">\n <i class=\"icon solid\">&#xf058;</i> Slim Confirm\n </div>\n <div class=\"message\">${message}</div>\n <div class=\"footer\">\n <button class=\"lg gray left\" id=\"btn-no\">\n <i>&#xf057;</i>ยกเลิก\n </button>\n <button class=\"lg ${color} right\" id=\"btn-yes\">\n <i>&#xf058;</i>ตกลง\n </button>\n </div>\n </div>\n `;\n doc.appendChild(dialog);\n // button\n dialog.querySelector<HTMLButtonElement>('#btn-yes')!.focus();\n dialog.querySelector<HTMLButtonElement>('#btn-yes')!.onclick = () => {\n dialog.remove();\n resolve(true);\n };\n dialog.querySelector<HTMLButtonElement>('#btn-no')!.onclick = () => {\n dialog.remove();\n resolve(false);\n };\n});\n/*--------------------------------------------------------------------------------*/\nexport const Alert = (\n message: string,\n params?: {\n type?: string;\n target?: HTMLElement;\n }\n) => new Promise<void>((resolve) => {\n if (!app) return;\n const doc = params && params?.target ? params.target : app;\n const type = params && params?.type ? params.type : 'success';\n // type\n let color = '';\n let icon = '';\n if (type == 'success') { color = 'green'; icon = '&#xf058;'; }\n if (type == 'failure') { color = 'red'; icon = '&#xf057;'; }\n if (type == 'warning') { color = 'orange'; icon = '&#xf06a;'; }\n if (type == 'info') { color = 'blue'; icon = '&#xf05a;'; }\n // create\n const dialog = document.createElement('div');\n dialog.className = 'overlay slim-dialog';\n dialog.innerHTML = /*html*/ `\n <div class=\"alert ${color}\">\n <div class=\"icon solid\">${icon}</div>\n <div class=\"message\">${message}</div>\n <div class=\"footer\">\n <button class=\"lg ${color}\" id=\"btn-yes\">ตกลง</button>\n </div>\n </div>\n `;\n doc.appendChild(dialog);\n // button\n dialog.querySelector<HTMLButtonElement>('#btn-yes')!.focus();\n dialog.querySelector<HTMLButtonElement>('#btn-yes')!.onclick = () => {\n dialog.remove();\n resolve();\n };\n});\n/*--------------------------------------------------------------------------------*/\nexport const Toast = (\n message: string,\n params?: {\n type?: string;\n target?: HTMLElement;\n }\n) => new Promise<void>((resolve) => {\n if (!app) return;\n const doc = params && params?.target ? params.target : app;\n const type = params && params?.type ? params.type : 'success';\n // type\n let color = '';\n let icon = '';\n if (type == 'success') { color = 'green'; icon = '&#xf058;'; }\n if (type == 'failure') { color = 'red'; icon = '&#xf057;'; }\n if (type == 'warning') { color = 'orange'; icon = '&#xf06a;'; }\n if (type == 'info') { color = 'blue'; icon = '&#xf05a;'; }\n // create\n const toast = document.createElement('div');\n toast.className = `slim-toast ${color}`;\n toast.innerHTML = /*html*/ `\n <i class=\"icon\">${icon}</i>\n <span class=\"text\">${message}</span>\n `;\n doc.appendChild(toast);\n // animation\n toast.classList.add('show');\n let count = 0;\n toast.onanimationend = () => {\n count++;\n if (count == 2) {\n toast.remove();\n resolve();\n }\n };\n});\n/*--------------------------------------------------------------------------------*/\n"],"mappings":";AACA,IAAM,MAAM,SAAS,cAA2B,MAAM;AAE/C,IAAM,UAAU,CACnB,SACA,WAIC,IAAI,QAAiB,CAAC,YAAY;AACnC,MAAI,CAAC,IAAK;AACV,QAAM,MAAM,UAAU,QAAQ,SAAS,OAAO,SAAS;AACvD,QAAM,QAAQ,UAAU,QAAQ,QAAQ,OAAO,QAAQ;AAEvD,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,SAAO,YAAY;AACnB,SAAO;AAAA,EAAqB;AAAA,8BACF,KAAK;AAAA;AAAA;AAAA;AAAA,mCAIA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,oCAKN,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAMrC,MAAI,YAAY,MAAM;AAEtB,SAAO,cAAiC,UAAU,EAAG,MAAM;AAC3D,SAAO,cAAiC,UAAU,EAAG,UAAU,MAAM;AACjE,WAAO,OAAO;AACd,YAAQ,IAAI;AAAA,EAChB;AACA,SAAO,cAAiC,SAAS,EAAG,UAAU,MAAM;AAChE,WAAO,OAAO;AACd,YAAQ,KAAK;AAAA,EACjB;AACJ,CAAC;AAEM,IAAM,QAAQ,CACjB,SACA,WAIC,IAAI,QAAc,CAAC,YAAY;AAChC,MAAI,CAAC,IAAK;AACV,QAAM,MAAM,UAAU,QAAQ,SAAS,OAAO,SAAS;AACvD,QAAM,OAAO,UAAU,QAAQ,OAAO,OAAO,OAAO;AAEpD,MAAI,QAAQ;AACZ,MAAI,OAAO;AACX,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAS,WAAO;AAAA,EAAY;AAC7D,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAO,WAAO;AAAA,EAAY;AAC3D,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAU,WAAO;AAAA,EAAY;AAC9D,MAAI,QAAQ,QAAQ;AAAE,YAAQ;AAAQ,WAAO;AAAA,EAAY;AAEzD,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,SAAO,YAAY;AACnB,SAAO;AAAA,EAAqB;AAAA,4BACJ,KAAK;AAAA,sCACK,IAAI;AAAA,mCACP,OAAO;AAAA;AAAA,oCAEN,KAAK;AAAA;AAAA;AAAA;AAIrC,MAAI,YAAY,MAAM;AAEtB,SAAO,cAAiC,UAAU,EAAG,MAAM;AAC3D,SAAO,cAAiC,UAAU,EAAG,UAAU,MAAM;AACjE,WAAO,OAAO;AACd,YAAQ;AAAA,EACZ;AACJ,CAAC;AAEM,IAAM,QAAQ,CACjB,SACA,WAIC,IAAI,QAAc,CAAC,YAAY;AAChC,MAAI,CAAC,IAAK;AACV,QAAM,MAAM,UAAU,QAAQ,SAAS,OAAO,SAAS;AACvD,QAAM,OAAO,UAAU,QAAQ,OAAO,OAAO,OAAO;AAEpD,MAAI,QAAQ;AACZ,MAAI,OAAO;AACX,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAS,WAAO;AAAA,EAAY;AAC7D,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAO,WAAO;AAAA,EAAY;AAC3D,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAU,WAAO;AAAA,EAAY;AAC9D,MAAI,QAAQ,QAAQ;AAAE,YAAQ;AAAQ,WAAO;AAAA,EAAY;AAEzD,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,YAAY,cAAc,KAAK;AACrC,QAAM;AAAA,EAAqB;AAAA,0BACL,IAAI;AAAA,6BACD,OAAO;AAAA;AAEhC,MAAI,YAAY,KAAK;AAErB,QAAM,UAAU,IAAI,MAAM;AAC1B,MAAI,QAAQ;AACZ,QAAM,iBAAiB,MAAM;AACzB;AACA,QAAI,SAAS,GAAG;AACZ,YAAM,OAAO;AACb,cAAQ;AAAA,IACZ;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/mod/dialog/index.ts"],"sourcesContent":["/* dialog */\nconst app = document.querySelector<HTMLElement>('#app');\n/*--------------------------------------------------------------------------------*/\nexport const confirm = (\n message: string,\n params?: {\n color?: string;\n target?: HTMLElement;\n }\n) => new Promise<boolean>((resolve) => {\n if (!app) return;\n const doc = params && params?.target ? params.target : app;\n const color = params && params?.color ? params.color : 'green';\n // create\n const dialog = document.createElement('div');\n dialog.className = 'overlay slim-dialog';\n dialog.innerHTML = /*html*/ `\n <div class=\"confirm ${color}\">\n <div class=\"header\">\n <i class=\"icon solid\">&#xf058;</i> Slim Confirm\n </div>\n <div class=\"message\">${message}</div>\n <div class=\"footer\">\n <button class=\"lg gray left\" id=\"btn-no\">\n <i>&#xf057;</i>ยกเลิก\n </button>\n <button class=\"lg ${color} right\" id=\"btn-yes\">\n <i>&#xf058;</i>ตกลง\n </button>\n </div>\n </div>\n `;\n doc.appendChild(dialog);\n // button\n dialog.querySelector<HTMLButtonElement>('#btn-yes')!.focus();\n dialog.querySelector<HTMLButtonElement>('#btn-yes')!.onclick = () => {\n dialog.remove();\n resolve(true);\n };\n dialog.querySelector<HTMLButtonElement>('#btn-no')!.onclick = () => {\n dialog.remove();\n resolve(false);\n };\n});\n/*--------------------------------------------------------------------------------*/\nexport const alert = (\n message: string,\n params?: {\n type?: string;\n target?: HTMLElement;\n }\n) => new Promise<void>((resolve) => {\n if (!app) return;\n const doc = params && params?.target ? params.target : app;\n const type = params && params?.type ? params.type : 'success';\n // type\n let color = '';\n let icon = '';\n if (type == 'success') { color = 'green'; icon = '&#xf058;'; }\n if (type == 'failure') { color = 'red'; icon = '&#xf057;'; }\n if (type == 'warning') { color = 'orange'; icon = '&#xf06a;'; }\n if (type == 'info') { color = 'blue'; icon = '&#xf05a;'; }\n // create\n const dialog = document.createElement('div');\n dialog.className = 'overlay slim-dialog';\n dialog.innerHTML = /*html*/ `\n <div class=\"alert ${color}\">\n <div class=\"icon solid\">${icon}</div>\n <div class=\"message\">${message}</div>\n <div class=\"footer\">\n <button class=\"lg ${color}\" id=\"btn-yes\">ตกลง</button>\n </div>\n </div>\n `;\n doc.appendChild(dialog);\n // button\n dialog.querySelector<HTMLButtonElement>('#btn-yes')!.focus();\n dialog.querySelector<HTMLButtonElement>('#btn-yes')!.onclick = () => {\n dialog.remove();\n resolve();\n };\n});\n/*--------------------------------------------------------------------------------*/\nexport const toast = (\n message: string,\n params?: {\n type?: string;\n target?: HTMLElement;\n }\n) => new Promise<void>((resolve) => {\n if (!app) return;\n const doc = params && params?.target ? params.target : app;\n const type = params && params?.type ? params.type : 'success';\n // type\n let color = '';\n let icon = '';\n if (type == 'success') { color = 'green'; icon = '&#xf058;'; }\n if (type == 'failure') { color = 'red'; icon = '&#xf057;'; }\n if (type == 'warning') { color = 'orange'; icon = '&#xf06a;'; }\n if (type == 'info') { color = 'blue'; icon = '&#xf05a;'; }\n // create\n const toast = document.createElement('div');\n toast.className = `slim-toast ${color}`;\n toast.innerHTML = /*html*/ `\n <i class=\"icon\">${icon}</i>\n <span class=\"text\">${message}</span>\n `;\n doc.appendChild(toast);\n // animation\n toast.classList.add('show');\n let count = 0;\n toast.onanimationend = () => {\n count++;\n if (count == 2) {\n toast.remove();\n resolve();\n }\n };\n});\n/*--------------------------------------------------------------------------------*/\n"],"mappings":";AACA,IAAM,MAAM,SAAS,cAA2B,MAAM;AAE/C,IAAM,UAAU,CACnB,SACA,WAIC,IAAI,QAAiB,CAAC,YAAY;AACnC,MAAI,CAAC,IAAK;AACV,QAAM,MAAM,UAAU,QAAQ,SAAS,OAAO,SAAS;AACvD,QAAM,QAAQ,UAAU,QAAQ,QAAQ,OAAO,QAAQ;AAEvD,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,SAAO,YAAY;AACnB,SAAO;AAAA,EAAqB;AAAA,8BACF,KAAK;AAAA;AAAA;AAAA;AAAA,mCAIA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,oCAKN,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAMrC,MAAI,YAAY,MAAM;AAEtB,SAAO,cAAiC,UAAU,EAAG,MAAM;AAC3D,SAAO,cAAiC,UAAU,EAAG,UAAU,MAAM;AACjE,WAAO,OAAO;AACd,YAAQ,IAAI;AAAA,EAChB;AACA,SAAO,cAAiC,SAAS,EAAG,UAAU,MAAM;AAChE,WAAO,OAAO;AACd,YAAQ,KAAK;AAAA,EACjB;AACJ,CAAC;AAEM,IAAM,QAAQ,CACjB,SACA,WAIC,IAAI,QAAc,CAAC,YAAY;AAChC,MAAI,CAAC,IAAK;AACV,QAAM,MAAM,UAAU,QAAQ,SAAS,OAAO,SAAS;AACvD,QAAM,OAAO,UAAU,QAAQ,OAAO,OAAO,OAAO;AAEpD,MAAI,QAAQ;AACZ,MAAI,OAAO;AACX,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAS,WAAO;AAAA,EAAY;AAC7D,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAO,WAAO;AAAA,EAAY;AAC3D,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAU,WAAO;AAAA,EAAY;AAC9D,MAAI,QAAQ,QAAQ;AAAE,YAAQ;AAAQ,WAAO;AAAA,EAAY;AAEzD,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,SAAO,YAAY;AACnB,SAAO;AAAA,EAAqB;AAAA,4BACJ,KAAK;AAAA,sCACK,IAAI;AAAA,mCACP,OAAO;AAAA;AAAA,oCAEN,KAAK;AAAA;AAAA;AAAA;AAIrC,MAAI,YAAY,MAAM;AAEtB,SAAO,cAAiC,UAAU,EAAG,MAAM;AAC3D,SAAO,cAAiC,UAAU,EAAG,UAAU,MAAM;AACjE,WAAO,OAAO;AACd,YAAQ;AAAA,EACZ;AACJ,CAAC;AAEM,IAAM,QAAQ,CACjB,SACA,WAIC,IAAI,QAAc,CAAC,YAAY;AAChC,MAAI,CAAC,IAAK;AACV,QAAM,MAAM,UAAU,QAAQ,SAAS,OAAO,SAAS;AACvD,QAAM,OAAO,UAAU,QAAQ,OAAO,OAAO,OAAO;AAEpD,MAAI,QAAQ;AACZ,MAAI,OAAO;AACX,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAS,WAAO;AAAA,EAAY;AAC7D,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAO,WAAO;AAAA,EAAY;AAC3D,MAAI,QAAQ,WAAW;AAAE,YAAQ;AAAU,WAAO;AAAA,EAAY;AAC9D,MAAI,QAAQ,QAAQ;AAAE,YAAQ;AAAQ,WAAO;AAAA,EAAY;AAEzD,QAAMA,SAAQ,SAAS,cAAc,KAAK;AAC1C,EAAAA,OAAM,YAAY,cAAc,KAAK;AACrC,EAAAA,OAAM;AAAA,EAAqB;AAAA,0BACL,IAAI;AAAA,6BACD,OAAO;AAAA;AAEhC,MAAI,YAAYA,MAAK;AAErB,EAAAA,OAAM,UAAU,IAAI,MAAM;AAC1B,MAAI,QAAQ;AACZ,EAAAA,OAAM,iBAAiB,MAAM;AACzB;AACA,QAAI,SAAS,GAAG;AACZ,MAAAA,OAAM,OAAO;AACb,cAAQ;AAAA,IACZ;AAAA,EACJ;AACJ,CAAC;","names":["toast"]}
@@ -1 +1 @@
1
- export { a as Close, C as Create, L as Loading, R as Ready } from '../../index-B2HHS23A.js';
1
+ export { c as close, a as create, l as loading, r as ready } from '../../index-uQOR5bdy.js';
@@ -1,6 +1,6 @@
1
1
  // src/mod/drawer/index.ts
2
2
  var app = document.querySelector("#app");
3
- var Create = (params) => {
3
+ var create = (params) => {
4
4
  const name = params.name ? params.name : "drawer";
5
5
  const size = params.size ? params.size : "mobile";
6
6
  const drawer = document.createElement("div");
@@ -84,7 +84,7 @@ var openMobile = (drawer) => {
84
84
  }
85
85
  };
86
86
  };
87
- var Close = (drawer) => new Promise((resolve) => {
87
+ var close = (drawer) => new Promise((resolve) => {
88
88
  drawer.querySelector("#btn-exit").click();
89
89
  drawer.addEventListener("animationend", () => resolve());
90
90
  });
@@ -109,22 +109,22 @@ var destroy = (drawer) => {
109
109
  const dialog = document.querySelectorAll(".slim-dialog");
110
110
  dialog.forEach((el) => el.remove());
111
111
  };
112
- var Loading = (drawer) => {
112
+ var loading = (drawer) => {
113
113
  const body = drawer.querySelector(".drawer-body");
114
114
  const loader = drawer.querySelector(".loader");
115
115
  if (body) body.style.display = "none";
116
116
  if (loader) loader.style.display = "flex";
117
117
  };
118
- var Ready = (drawer) => {
118
+ var ready = (drawer) => {
119
119
  const body = drawer.querySelector(".drawer-body");
120
120
  const loader = drawer.querySelector(".loader");
121
121
  if (body) body.style.display = "block";
122
122
  if (loader) loader.style.display = "none";
123
123
  };
124
124
  export {
125
- Close,
126
- Create,
127
- Loading,
128
- Ready
125
+ close,
126
+ create,
127
+ loading,
128
+ ready
129
129
  };
130
130
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mod/drawer/index.ts"],"sourcesContent":["/* drawer */\nconst app = document.querySelector<HTMLElement>('#app');\n/*--------------------------------------------------------------------------------*/\ntype reqParams = {\n title: string;\n body: string;\n name?: string;\n size?: string; // mobile, full\n};\nexport const Create = (params: reqParams): HTMLElement => {\n const name = params.name ? params.name : 'drawer';\n const size = params.size ? params.size : 'mobile';\n // create\n const drawer = document.createElement('div');\n drawer.className = `slim-drawer ${size}`;\n drawer.innerHTML = /*html*/ `\n <div class=\"drawer-header\">\n <button id=\"btn-exit\" type=\"button\"\n class=\"circle sm light\"></button>\n <div class=\"title\">${params.title}</div>\n </div>\n <div class=\"drawer-body\">${params.body}</div>\n <div class=\"loader\">\n <div class=\"spinner s32\"></div>\n </div>\n `;\n document.body.appendChild(drawer);\n // set size\n switch (size) {\n case 'mobile': openMobile(drawer); break;\n case 'full':\n drawer.style.animation = 'slide-in-left 0.4s forwards';\n break;\n default: return drawer;\n }\n // hash change\n window.location.hash = name;\n const hashChange = () => {\n const hash = (window.location.hash).replaceAll('#', '');\n if (hash != name && hash != 'modal') done();\n };\n const done = () => {\n destroy(drawer);\n if (window.location.hash == `#${name}`) history.back();\n window.removeEventListener('hashchange', hashChange);\n };\n window.addEventListener('hashchange', hashChange);\n // button\n const btnExit = drawer.querySelector<HTMLButtonElement>('#btn-exit');\n const btnCancel = drawer.querySelector<HTMLButtonElement>('#btn-cancel');\n if (btnExit) {\n btnExit.focus();\n btnExit.onclick = done;\n }\n if (btnCancel) btnCancel.onclick = done;\n return drawer;\n};\n/*--------------------------------------------------------------------------------*/\nconst openMobile = (drawer: HTMLElement) => {\n if (!app) return;\n const offset = app.getBoundingClientRect();\n const appRight = offset.right;\n const appWidth = app.offsetWidth;\n // default position\n drawer.style.left = `${appRight}px`;\n // animation\n const css = document.createElement('style');\n drawer.appendChild(css);\n css.sheet?.insertRule(`\n @keyframes drawer-in {\n from {transform: translateX(0);}\n to {transform: translateX(-${appWidth}px);}\n }\n `);\n css.sheet?.insertRule(`\n @keyframes drawer-out {\n from {transform: translateX(-${appWidth}px);}\n to {transform: translateX(0);}\n }\n `);\n // open drawer\n const content = app.querySelector<HTMLElement>('#app-content');\n if (content) content.style.animation = 'drawer-push-app 0.4s forwards';\n drawer.style.animation = 'drawer-in 0.4s forwards';\n // scroll shadow\n const header = drawer.querySelector<HTMLElement>('.drawer-header');\n const body = drawer.querySelector<HTMLElement>('.drawer-body');\n if (header && body) body.onscroll = () => {\n if (body.scrollTop > 10) {\n header.style.boxShadow = `\n rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,\n rgba(60, 64, 67, 0.15) 0px 1px 3px 1px\n `;\n } else {\n header.style.boxShadow = '';\n }\n };\n};\n/*--------------------------------------------------------------------------------*/\nexport const Close = (drawer: HTMLElement) => new Promise<void>((resolve) => {\n drawer.querySelector<HTMLButtonElement>('#btn-exit')!.click();\n drawer.addEventListener('animationend', () => resolve());\n});\nconst destroy = (drawer: HTMLElement) => {\n if (!app) return;\n if (drawer.classList.contains('mobile')) {\n // mobile\n const content = app.querySelector<HTMLElement>('#app-content');\n if (content) content.style.animation = 'drawer-pull-app 0.4s forwards';\n drawer.style.animation = 'drawer-out 0.4s forwards';\n drawer.addEventListener('animationend', () => {\n if (content) content.style.animation = 'unset';\n drawer.remove();\n });\n } else {\n // full-page\n drawer.style.animation = 'slide-out-left 0.4s forwards';\n drawer.addEventListener('animationend', () => {\n drawer.remove();\n });\n }\n // remove modal\n const modal = document.querySelectorAll<HTMLElement>('.slim-modal');\n modal.forEach(el => el.remove());\n // remove dialog\n const dialog = document.querySelectorAll<HTMLElement>('.slim-dialog');\n dialog.forEach(el => el.remove());\n};\n/*--------------------------------------------------------------------------------*/\nexport const Loading = (drawer: HTMLElement) => {\n const body = drawer.querySelector<HTMLElement>('.drawer-body');\n const loader = drawer.querySelector<HTMLElement>('.loader');\n if (body) body.style.display = 'none';\n if (loader) loader.style.display = 'flex';\n};\n/*--------------------------------------------------------------------------------*/\nexport const Ready = (drawer: HTMLElement) => {\n const body = drawer.querySelector<HTMLElement>('.drawer-body');\n const loader = drawer.querySelector<HTMLElement>('.loader');\n if (body) body.style.display = 'block';\n if (loader) loader.style.display = 'none';\n};\n/*--------------------------------------------------------------------------------*/\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/mod/drawer/index.ts"],"sourcesContent":["/* drawer */\nconst app = document.querySelector<HTMLElement>('#app');\n/*--------------------------------------------------------------------------------*/\ntype reqParams = {\n title: string;\n body: string;\n name?: string;\n size?: string; // mobile, full\n};\nexport const create = (params: reqParams): HTMLElement => {\n const name = params.name ? params.name : 'drawer';\n const size = params.size ? params.size : 'mobile';\n // create\n const drawer = document.createElement('div');\n drawer.className = `slim-drawer ${size}`;\n drawer.innerHTML = /*html*/ `\n <div class=\"drawer-header\">\n <button id=\"btn-exit\" type=\"button\"\n class=\"circle sm light\"></button>\n <div class=\"title\">${params.title}</div>\n </div>\n <div class=\"drawer-body\">${params.body}</div>\n <div class=\"loader\">\n <div class=\"spinner s32\"></div>\n </div>\n `;\n document.body.appendChild(drawer);\n // set size\n switch (size) {\n case 'mobile': openMobile(drawer); break;\n case 'full':\n drawer.style.animation = 'slide-in-left 0.4s forwards';\n break;\n default: return drawer;\n }\n // hash change\n window.location.hash = name;\n const hashChange = () => {\n const hash = (window.location.hash).replaceAll('#', '');\n if (hash != name && hash != 'modal') done();\n };\n const done = () => {\n destroy(drawer);\n if (window.location.hash == `#${name}`) history.back();\n window.removeEventListener('hashchange', hashChange);\n };\n window.addEventListener('hashchange', hashChange);\n // button\n const btnExit = drawer.querySelector<HTMLButtonElement>('#btn-exit');\n const btnCancel = drawer.querySelector<HTMLButtonElement>('#btn-cancel');\n if (btnExit) {\n btnExit.focus();\n btnExit.onclick = done;\n }\n if (btnCancel) btnCancel.onclick = done;\n return drawer;\n};\n/*--------------------------------------------------------------------------------*/\nconst openMobile = (drawer: HTMLElement) => {\n if (!app) return;\n const offset = app.getBoundingClientRect();\n const appRight = offset.right;\n const appWidth = app.offsetWidth;\n // default position\n drawer.style.left = `${appRight}px`;\n // animation\n const css = document.createElement('style');\n drawer.appendChild(css);\n css.sheet?.insertRule(`\n @keyframes drawer-in {\n from {transform: translateX(0);}\n to {transform: translateX(-${appWidth}px);}\n }\n `);\n css.sheet?.insertRule(`\n @keyframes drawer-out {\n from {transform: translateX(-${appWidth}px);}\n to {transform: translateX(0);}\n }\n `);\n // open drawer\n const content = app.querySelector<HTMLElement>('#app-content');\n if (content) content.style.animation = 'drawer-push-app 0.4s forwards';\n drawer.style.animation = 'drawer-in 0.4s forwards';\n // scroll shadow\n const header = drawer.querySelector<HTMLElement>('.drawer-header');\n const body = drawer.querySelector<HTMLElement>('.drawer-body');\n if (header && body) body.onscroll = () => {\n if (body.scrollTop > 10) {\n header.style.boxShadow = `\n rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,\n rgba(60, 64, 67, 0.15) 0px 1px 3px 1px\n `;\n } else {\n header.style.boxShadow = '';\n }\n };\n};\n/*--------------------------------------------------------------------------------*/\nexport const close = (drawer: HTMLElement) => new Promise<void>((resolve) => {\n drawer.querySelector<HTMLButtonElement>('#btn-exit')!.click();\n drawer.addEventListener('animationend', () => resolve());\n});\nconst destroy = (drawer: HTMLElement) => {\n if (!app) return;\n if (drawer.classList.contains('mobile')) {\n // mobile\n const content = app.querySelector<HTMLElement>('#app-content');\n if (content) content.style.animation = 'drawer-pull-app 0.4s forwards';\n drawer.style.animation = 'drawer-out 0.4s forwards';\n drawer.addEventListener('animationend', () => {\n if (content) content.style.animation = 'unset';\n drawer.remove();\n });\n } else {\n // full-page\n drawer.style.animation = 'slide-out-left 0.4s forwards';\n drawer.addEventListener('animationend', () => {\n drawer.remove();\n });\n }\n // remove modal\n const modal = document.querySelectorAll<HTMLElement>('.slim-modal');\n modal.forEach(el => el.remove());\n // remove dialog\n const dialog = document.querySelectorAll<HTMLElement>('.slim-dialog');\n dialog.forEach(el => el.remove());\n};\n/*--------------------------------------------------------------------------------*/\nexport const loading = (drawer: HTMLElement) => {\n const body = drawer.querySelector<HTMLElement>('.drawer-body');\n const loader = drawer.querySelector<HTMLElement>('.loader');\n if (body) body.style.display = 'none';\n if (loader) loader.style.display = 'flex';\n};\n/*--------------------------------------------------------------------------------*/\nexport const ready = (drawer: HTMLElement) => {\n const body = drawer.querySelector<HTMLElement>('.drawer-body');\n const loader = drawer.querySelector<HTMLElement>('.loader');\n if (body) body.style.display = 'block';\n if (loader) loader.style.display = 'none';\n};\n/*--------------------------------------------------------------------------------*/\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- export { C as Clear, M as Menu, S as Select, U as Update } from '../../index-DcvauYN8.js';
1
+ export { c as clear, m as menu, s as select, u as update } from '../../index-CoYHkkyT.js';
@@ -1,25 +1,25 @@
1
1
  // src/mod/drop/index.ts
2
- var Menu = (drop) => {
2
+ var menu = (drop) => {
3
3
  const dropBtn = drop.querySelector(".drop-btn");
4
4
  const content = drop.querySelector(".drop-content");
5
5
  if (!dropBtn || !content) return;
6
6
  setBtnEvent(dropBtn, content);
7
7
  };
8
- var Select = (drop, icon, callBack) => {
8
+ var select = (drop, icon, callBack) => {
9
9
  const dropBtn = drop.querySelector(".drop-btn");
10
10
  const content = drop.querySelector(".drop-content");
11
11
  if (!dropBtn || !content) return;
12
12
  setBtnEvent(dropBtn, content);
13
- Update(drop, icon, callBack);
13
+ update(drop, icon, callBack);
14
14
  };
15
- var Update = (drop, icon, callBack) => {
16
- const select = drop.querySelector("select");
15
+ var update = (drop, icon, callBack) => {
16
+ const select2 = drop.querySelector("select");
17
17
  const content = drop.querySelector(".drop-content");
18
- if (!select || !content) return;
18
+ if (!select2 || !content) return;
19
19
  let elmIcon = "";
20
20
  if (icon) elmIcon = `<span style="margin-right: 6px;">${icon}</span>`;
21
21
  content.innerHTML = "";
22
- const option = select.querySelectorAll("option");
22
+ const option = select2.querySelectorAll("option");
23
23
  option.forEach((opt) => {
24
24
  const item = document.createElement("a");
25
25
  item.innerHTML = `${elmIcon}${opt.text}`;
@@ -33,7 +33,7 @@ var Update = (drop, icon, callBack) => {
33
33
  };
34
34
  });
35
35
  const clearSelected = () => {
36
- const index = select.selectedIndex;
36
+ const index = select2.selectedIndex;
37
37
  const list = content.querySelectorAll("a");
38
38
  list.forEach((el, i) => {
39
39
  if (i == index) {
@@ -54,7 +54,7 @@ var setBtnEvent = (btn, content) => {
54
54
  content.style.display = "";
55
55
  };
56
56
  } else {
57
- Clear();
57
+ clear();
58
58
  content.style.animation = "fade-in 0.4s forwards";
59
59
  content.style.display = "block";
60
60
  content.onanimationend = () => {
@@ -63,7 +63,7 @@ var setBtnEvent = (btn, content) => {
63
63
  }
64
64
  };
65
65
  };
66
- var Clear = () => {
66
+ var clear = () => {
67
67
  const drop = document.querySelectorAll(".drop-content");
68
68
  drop.forEach((el) => {
69
69
  if (el.style.display == "block") {
@@ -76,12 +76,12 @@ var Clear = () => {
76
76
  });
77
77
  };
78
78
  window.addEventListener("click", (e) => {
79
- if (!e.target.matches(".drop-btn")) Clear();
79
+ if (!e.target.matches(".drop-btn")) clear();
80
80
  });
81
81
  export {
82
- Clear,
83
- Menu,
84
- Select,
85
- Update
82
+ clear,
83
+ menu,
84
+ select,
85
+ update
86
86
  };
87
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mod/drop/index.ts"],"sourcesContent":["/* drop */\n/*--------------------------------------------------------------------------------*/\nexport const Menu = (drop: HTMLElement) => {\n const dropBtn = drop.querySelector<HTMLButtonElement>('.drop-btn');\n const content = drop.querySelector<HTMLElement>('.drop-content');\n if (!dropBtn || !content) return;\n setBtnEvent(dropBtn, content);\n};\n/*--------------------------------------------------------------------------------*/\nexport const Select = (\n drop: HTMLElement,\n icon: string,\n callBack: (value: string, text: string) => void,\n) => {\n const dropBtn = drop.querySelector<HTMLButtonElement>('.drop-btn');\n const content = drop.querySelector<HTMLElement>('.drop-content');\n if (!dropBtn || !content) return;\n setBtnEvent(dropBtn, content);\n Update(drop, icon, callBack);\n};\n/*--------------------------------------------------------------------------------*/\nexport const Update = (\n drop: HTMLElement,\n icon: string,\n callBack: (value: string, text: string) => void,\n) => {\n const select = drop.querySelector<HTMLSelectElement>('select');\n const content = drop.querySelector<HTMLElement>('.drop-content');\n if (!select || !content) return;\n let elmIcon = '';\n if (icon) elmIcon = `<span style=\"margin-right: 6px;\">${icon}</span>`;\n // select to menu\n content.innerHTML = '';\n const option = select.querySelectorAll<HTMLOptionElement>('option');\n option.forEach(opt => {\n const item = document.createElement('a');\n item.innerHTML = `${elmIcon}${opt.text}`;\n content.appendChild(item);\n // drop click\n item.onclick = () => {\n opt.selected = true;\n clearSelected();\n if (callBack) {\n callBack(opt.value, opt.text);\n }\n };\n });\n // clear selected\n const clearSelected = () => {\n const index = select.selectedIndex;\n const list = content.querySelectorAll<HTMLAnchorElement>('a');\n list.forEach((el, i) => {\n if (i == index) {\n el.classList.add('selected');\n } else {\n el.classList.remove('selected');\n }\n });\n };\n clearSelected();\n};\n/*--------------------------------------------------------------------------------*/\nconst setBtnEvent = (btn: HTMLButtonElement, content: HTMLElement) => {\n btn.onclick = () => {\n if (content.style.display == 'block') {\n content.style.animation = 'fade-out 0.4s forwards';\n content.onanimationend = () => {\n content.style.animation = '';\n content.style.display = '';\n };\n } else {\n Clear();\n content.style.animation = 'fade-in 0.4s forwards';\n content.style.display = 'block';\n content.onanimationend = () => {\n content.style.animation = '';\n };\n }\n };\n};\n/*--------------------------------------------------------------------------------*/\nexport const Clear = () => {\n const drop = document.querySelectorAll<HTMLElement>('.drop-content');\n drop.forEach(el => {\n if (el.style.display == 'block') {\n el.style.animation = 'fade-out 0.4s forwards';\n el.onanimationend = () => {\n el.style.animation = '';\n el.style.display = '';\n };\n }\n });\n};\nwindow.addEventListener('click', (e) => {\n if (!(<HTMLElement>e.target).matches('.drop-btn')) Clear();\n});\n/*--------------------------------------------------------------------------------*/\n"],"mappings":";AAEO,IAAM,OAAO,CAAC,SAAsB;AACvC,QAAM,UAAU,KAAK,cAAiC,WAAW;AACjE,QAAM,UAAU,KAAK,cAA2B,eAAe;AAC/D,MAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,cAAY,SAAS,OAAO;AAChC;AAEO,IAAM,SAAS,CAClB,MACA,MACA,aACC;AACD,QAAM,UAAU,KAAK,cAAiC,WAAW;AACjE,QAAM,UAAU,KAAK,cAA2B,eAAe;AAC/D,MAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,cAAY,SAAS,OAAO;AAC5B,SAAO,MAAM,MAAM,QAAQ;AAC/B;AAEO,IAAM,SAAS,CAClB,MACA,MACA,aACC;AACD,QAAM,SAAS,KAAK,cAAiC,QAAQ;AAC7D,QAAM,UAAU,KAAK,cAA2B,eAAe;AAC/D,MAAI,CAAC,UAAU,CAAC,QAAS;AACzB,MAAI,UAAU;AACd,MAAI,KAAM,WAAU,oCAAoC,IAAI;AAE5D,UAAQ,YAAY;AACpB,QAAM,SAAS,OAAO,iBAAoC,QAAQ;AAClE,SAAO,QAAQ,SAAO;AAClB,UAAM,OAAO,SAAS,cAAc,GAAG;AACvC,SAAK,YAAY,GAAG,OAAO,GAAG,IAAI,IAAI;AACtC,YAAQ,YAAY,IAAI;AAExB,SAAK,UAAU,MAAM;AACjB,UAAI,WAAW;AACf,oBAAc;AACd,UAAI,UAAU;AACV,iBAAS,IAAI,OAAO,IAAI,IAAI;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,gBAAgB,MAAM;AACxB,UAAM,QAAQ,OAAO;AACrB,UAAM,OAAO,QAAQ,iBAAoC,GAAG;AAC5D,SAAK,QAAQ,CAAC,IAAI,MAAM;AACpB,UAAI,KAAK,OAAO;AACZ,WAAG,UAAU,IAAI,UAAU;AAAA,MAC/B,OAAO;AACH,WAAG,UAAU,OAAO,UAAU;AAAA,MAClC;AAAA,IACJ,CAAC;AAAA,EACL;AACA,gBAAc;AAClB;AAEA,IAAM,cAAc,CAAC,KAAwB,YAAyB;AAClE,MAAI,UAAU,MAAM;AAChB,QAAI,QAAQ,MAAM,WAAW,SAAS;AAClC,cAAQ,MAAM,YAAY;AAC1B,cAAQ,iBAAiB,MAAM;AAC3B,gBAAQ,MAAM,YAAY;AAC1B,gBAAQ,MAAM,UAAU;AAAA,MAC5B;AAAA,IACJ,OAAO;AACH,YAAM;AACN,cAAQ,MAAM,YAAY;AAC1B,cAAQ,MAAM,UAAU;AACxB,cAAQ,iBAAiB,MAAM;AAC3B,gBAAQ,MAAM,YAAY;AAAA,MAC9B;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,IAAM,QAAQ,MAAM;AACvB,QAAM,OAAO,SAAS,iBAA8B,eAAe;AACnE,OAAK,QAAQ,QAAM;AACf,QAAI,GAAG,MAAM,WAAW,SAAS;AAC7B,SAAG,MAAM,YAAY;AACrB,SAAG,iBAAiB,MAAM;AACtB,WAAG,MAAM,YAAY;AACrB,WAAG,MAAM,UAAU;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;AACA,OAAO,iBAAiB,SAAS,CAAC,MAAM;AACpC,MAAI,CAAe,EAAE,OAAQ,QAAQ,WAAW,EAAG,OAAM;AAC7D,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/mod/drop/index.ts"],"sourcesContent":["/* drop */\n/*--------------------------------------------------------------------------------*/\nexport const menu = (drop: HTMLElement) => {\n const dropBtn = drop.querySelector<HTMLButtonElement>('.drop-btn');\n const content = drop.querySelector<HTMLElement>('.drop-content');\n if (!dropBtn || !content) return;\n setBtnEvent(dropBtn, content);\n};\n/*--------------------------------------------------------------------------------*/\nexport const select = (\n drop: HTMLElement,\n icon: string,\n callBack: (value: string, text: string) => void,\n) => {\n const dropBtn = drop.querySelector<HTMLButtonElement>('.drop-btn');\n const content = drop.querySelector<HTMLElement>('.drop-content');\n if (!dropBtn || !content) return;\n setBtnEvent(dropBtn, content);\n update(drop, icon, callBack);\n};\n/*--------------------------------------------------------------------------------*/\nexport const update = (\n drop: HTMLElement,\n icon: string,\n callBack: (value: string, text: string) => void,\n) => {\n const select = drop.querySelector<HTMLSelectElement>('select');\n const content = drop.querySelector<HTMLElement>('.drop-content');\n if (!select || !content) return;\n let elmIcon = '';\n if (icon) elmIcon = `<span style=\"margin-right: 6px;\">${icon}</span>`;\n // select to menu\n content.innerHTML = '';\n const option = select.querySelectorAll<HTMLOptionElement>('option');\n option.forEach(opt => {\n const item = document.createElement('a');\n item.innerHTML = `${elmIcon}${opt.text}`;\n content.appendChild(item);\n // drop click\n item.onclick = () => {\n opt.selected = true;\n clearSelected();\n if (callBack) {\n callBack(opt.value, opt.text);\n }\n };\n });\n // clear selected\n const clearSelected = () => {\n const index = select.selectedIndex;\n const list = content.querySelectorAll<HTMLAnchorElement>('a');\n list.forEach((el, i) => {\n if (i == index) {\n el.classList.add('selected');\n } else {\n el.classList.remove('selected');\n }\n });\n };\n clearSelected();\n};\n/*--------------------------------------------------------------------------------*/\nconst setBtnEvent = (btn: HTMLButtonElement, content: HTMLElement) => {\n btn.onclick = () => {\n if (content.style.display == 'block') {\n content.style.animation = 'fade-out 0.4s forwards';\n content.onanimationend = () => {\n content.style.animation = '';\n content.style.display = '';\n };\n } else {\n clear();\n content.style.animation = 'fade-in 0.4s forwards';\n content.style.display = 'block';\n content.onanimationend = () => {\n content.style.animation = '';\n };\n }\n };\n};\n/*--------------------------------------------------------------------------------*/\nexport const clear = () => {\n const drop = document.querySelectorAll<HTMLElement>('.drop-content');\n drop.forEach(el => {\n if (el.style.display == 'block') {\n el.style.animation = 'fade-out 0.4s forwards';\n el.onanimationend = () => {\n el.style.animation = '';\n el.style.display = '';\n };\n }\n });\n};\nwindow.addEventListener('click', (e) => {\n if (!(<HTMLElement>e.target).matches('.drop-btn')) clear();\n});\n/*--------------------------------------------------------------------------------*/\n"],"mappings":";AAEO,IAAM,OAAO,CAAC,SAAsB;AACvC,QAAM,UAAU,KAAK,cAAiC,WAAW;AACjE,QAAM,UAAU,KAAK,cAA2B,eAAe;AAC/D,MAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,cAAY,SAAS,OAAO;AAChC;AAEO,IAAM,SAAS,CAClB,MACA,MACA,aACC;AACD,QAAM,UAAU,KAAK,cAAiC,WAAW;AACjE,QAAM,UAAU,KAAK,cAA2B,eAAe;AAC/D,MAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,cAAY,SAAS,OAAO;AAC5B,SAAO,MAAM,MAAM,QAAQ;AAC/B;AAEO,IAAM,SAAS,CAClB,MACA,MACA,aACC;AACD,QAAMA,UAAS,KAAK,cAAiC,QAAQ;AAC7D,QAAM,UAAU,KAAK,cAA2B,eAAe;AAC/D,MAAI,CAACA,WAAU,CAAC,QAAS;AACzB,MAAI,UAAU;AACd,MAAI,KAAM,WAAU,oCAAoC,IAAI;AAE5D,UAAQ,YAAY;AACpB,QAAM,SAASA,QAAO,iBAAoC,QAAQ;AAClE,SAAO,QAAQ,SAAO;AAClB,UAAM,OAAO,SAAS,cAAc,GAAG;AACvC,SAAK,YAAY,GAAG,OAAO,GAAG,IAAI,IAAI;AACtC,YAAQ,YAAY,IAAI;AAExB,SAAK,UAAU,MAAM;AACjB,UAAI,WAAW;AACf,oBAAc;AACd,UAAI,UAAU;AACV,iBAAS,IAAI,OAAO,IAAI,IAAI;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,QAAM,gBAAgB,MAAM;AACxB,UAAM,QAAQA,QAAO;AACrB,UAAM,OAAO,QAAQ,iBAAoC,GAAG;AAC5D,SAAK,QAAQ,CAAC,IAAI,MAAM;AACpB,UAAI,KAAK,OAAO;AACZ,WAAG,UAAU,IAAI,UAAU;AAAA,MAC/B,OAAO;AACH,WAAG,UAAU,OAAO,UAAU;AAAA,MAClC;AAAA,IACJ,CAAC;AAAA,EACL;AACA,gBAAc;AAClB;AAEA,IAAM,cAAc,CAAC,KAAwB,YAAyB;AAClE,MAAI,UAAU,MAAM;AAChB,QAAI,QAAQ,MAAM,WAAW,SAAS;AAClC,cAAQ,MAAM,YAAY;AAC1B,cAAQ,iBAAiB,MAAM;AAC3B,gBAAQ,MAAM,YAAY;AAC1B,gBAAQ,MAAM,UAAU;AAAA,MAC5B;AAAA,IACJ,OAAO;AACH,YAAM;AACN,cAAQ,MAAM,YAAY;AAC1B,cAAQ,MAAM,UAAU;AACxB,cAAQ,iBAAiB,MAAM;AAC3B,gBAAQ,MAAM,YAAY;AAAA,MAC9B;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,IAAM,QAAQ,MAAM;AACvB,QAAM,OAAO,SAAS,iBAA8B,eAAe;AACnE,OAAK,QAAQ,QAAM;AACf,QAAI,GAAG,MAAM,WAAW,SAAS;AAC7B,SAAG,MAAM,YAAY;AACrB,SAAG,iBAAiB,MAAM;AACtB,WAAG,MAAM,YAAY;AACrB,WAAG,MAAM,UAAU;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;AACA,OAAO,iBAAiB,SAAS,CAAC,MAAM;AACpC,MAAI,CAAe,EAAE,OAAQ,QAAQ,WAAW,EAAG,OAAM;AAC7D,CAAC;","names":["select"]}
@@ -1,9 +1,9 @@
1
- export { i as button } from '../index-QRbamarh.js';
1
+ export { i as button } from '../index-BAQxKstM.js';
2
2
  export { i as input } from '../index-Dm_WTy_S.js';
3
- export { i as cover } from '../index-BQcJsVJ-.js';
3
+ export { i as cover } from '../index-D5CUpF9v.js';
4
4
  export { i as camera } from '../index-D3N8oo7V.js';
5
- export { i as dialog } from '../index-CzsSwSvp.js';
6
- export { i as drawer } from '../index-B2HHS23A.js';
7
- export { i as drop } from '../index-DcvauYN8.js';
8
- export { i as modal } from '../index-DQt71MNx.js';
9
- export { i as tabs } from '../index-DZdXvqxA.js';
5
+ export { i as dialog } from '../index-B4158M0u.js';
6
+ export { i as drawer } from '../index-uQOR5bdy.js';
7
+ export { i as drop } from '../index-CoYHkkyT.js';
8
+ export { i as modal } from '../index-CD53Vh6h.js';
9
+ export { i as tabs } from '../index-DzKPF0ja.js';