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
- {"version":3,"sources":["../../../src/page/index.ts","../../../src/page/mobile/index.ts"],"sourcesContent":["/* page */\n/*--------------------------------------------------------------------------------*/\nconst app = document.querySelector<HTMLElement>('#app');\nconst pageSpin: string = /*html*/ `\n<div class=\"lds-spinner\">\n <div></div><div></div><div></div><div></div>\n <div></div><div></div><div></div><div></div>\n <div></div><div></div><div></div><div></div>\n</div>\n`;\nconst smallSpin: string = `<div class=\"spinner s32\"></div>`;\n/*--------------------------------------------------------------------------------*/\nexport const Loading = (size = 'default') => {\n if (!app) return;\n // page-loader\n if (!app.querySelector('#page-loader')) {\n const loader = document.createElement('div');\n loader.id = 'page-loader';\n loader.className = 'overlay center';\n loader.innerHTML = size == 'default' ? pageSpin : smallSpin;\n app.appendChild(loader);\n }\n // app-content\n const content = app.querySelector<HTMLElement>('#app-content');\n if (content) content.style.display = 'none';\n};\n/*--------------------------------------------------------------------------------*/\nexport const Ready = (delay = 400) => {\n new Promise(r => setTimeout(r, delay)).then(() => {\n clearLoader(true);\n });\n};\n/*--------------------------------------------------------------------------------*/\nexport const Error = (err: Error) => {\n clearLoader(false);\n if (!app) return;\n // create\n const box = document.createElement('div');\n box.className = 'page-error';\n box.innerHTML = /*html*/ `\n <i class=\"icon red\">&#xf188;</i>\n <div class=\"topic\">&#x2726; เกิดข้อผิดพลาด &#x2726;</div>\n <div class=\"text\">${err}</div>\n `;\n app.prepend(box);\n throw err;\n};\n/*--------------------------------------------------------------------------------*/\nexport const NotFound = () => {\n if (!app) return;\n app.innerHTML = /*html*/ `\n <div class=\"page-not-found\">\n <h1>4<i class=\"fas fa-ghost\"></i>4</h1>\n <h2>Error 404 Page Not Found</h2>\n <p>Sorry, the page cannot be accessed</p>\n </div>\n `;\n};\n/*--------------------------------------------------------------------------------*/\nexport const FullLoad = () => {\n clearNavbar();\n if (!app) return;\n app.classList.add('full-page');\n app.innerHTML = /*html*/ `\n <div class=\"page-full-load\">\n <div class=\"spinner\"></div>\n <div class=\"text\">Slim<br>Loading</div>\n </div>\n `;\n};\n/*--------------------------------------------------------------------------------*/\nexport const Inform = (params: {\n icon: string;\n msg: string;\n btnTxt: string;\n btnUrl: string;\n color?: string;\n}) => {\n clearNavbar();\n if (!app) return;\n app.classList.add('full-page');\n app.innerHTML = /*html*/ `\n <div class=\"page-inform ${params.color}\">\n <div class=\"icon solid\">${params.icon}</div>\n <div class=\"msg\">${params.msg}</div>\n <button class=\"lg ${params.color}\" shadow=\"true\">\n ${params.btnTxt}\n </button>\n </div>\n `;\n const btn = app.querySelector<HTMLButtonElement>('button')!;\n btn.onclick = () => window.location.replace(params.btnUrl);\n};\n/*--------------------------------------------------------------------------------*/\n//export const Maintain = () => { };\n//export const Construct = () => { };\n/*--------------------------------------------------------------------------------*/\nconst clearNavbar = () => {\n const topbar = document.querySelector<HTMLElement>('#topbar');\n const tabbar = document.querySelector<HTMLElement>('#tabbar');\n const sidebar = document.querySelector<HTMLElement>('#sidebar');\n if (topbar) topbar.remove();\n if (tabbar) tabbar.remove();\n if (sidebar) sidebar.remove();\n if (app) app.className = '';\n};\nconst clearLoader = (showContent: boolean) => {\n if (!app) return;\n const loader = app.querySelector<HTMLElement>('#page-loader');\n if (loader) {\n loader.style.animation = 'fade-out 0.4s forwards';\n loader.onanimationend = () => loader.remove();\n }\n const content = app.querySelector<HTMLElement>('#app-content');\n if (content) content.style.display = showContent ? 'block' : 'none';\n};\n/*--------------------------------------------------------------------------------*/\n","/* page */\n/*--------------------------------------------------------------------------------*/\nexport * from '../index';\nconst app = document.querySelector<HTMLElement>('#app');\n/*--------------------------------------------------------------------------------*/\nexport type PageParams = {\n auth?: boolean;\n size?: string;\n icon?: string;\n title?: string;\n template?: string;\n button?: {\n side?: boolean;\n tab?: boolean;\n };\n sidebar?: string;\n tabbar?: string;\n actbar?: string;\n uri?: string;\n};\n/*--------------------------------------------------------------------------------*/\nexport const Create = (params: PageParams) => {\n if (!app) return;\n const size = params.size ? params.size : '';\n const template = params.template ? params.template : '';\n // content\n const content = document.createElement('div');\n content.id = 'app-content';\n content.innerHTML = template;\n app.appendChild(content);\n // page init\n if (size == 'full') {\n navRemove();\n app.classList.add('full-page');\n } else {\n app.classList.remove('full-page');\n if (document.querySelector('#topbar')) {\n setTopbar(params);\n } else {\n navCreate(params);\n setTopbar(params);\n }\n }\n};\n/*--------------------------------------------------------------------------------*/\n// ### navbar ###\n/*--------------------------------------------------------------------------------*/\nconst navCreate = (params: PageParams) => {\n // topbar\n const topbar = document.createElement('nav');\n const tabbar = document.createElement('nav');\n const sidebar = document.createElement('nav');\n topbar.id = 'topbar';\n tabbar.id = 'tabbar';\n sidebar.id = 'sidebar';\n topbar.innerHTML = /*html*/ `\n <div class=\"container\">\n <div class=\"box left\">\n <button id=\"nav-back\" class=\"topbar-btn icon\"\n onclick=\"history.back()\">&#xf053;</button>\n <button id=\"nav-side\" class=\"topbar-btn icon\">&#xf0c9;</button>\n <div class=\"title\"></div>\n </div>\n <div id=\"actbar\" class=\"box right\"></div>\n </div>\n `;\n tabbar.innerHTML = params.tabbar ? params.tabbar : '';\n sidebar.innerHTML = params.sidebar ? params.sidebar : '';\n document.body.prepend(topbar, tabbar, sidebar);\n // nav-side\n sideBtnEvent(sidebar);\n const navSide = topbar.querySelector<HTMLButtonElement>('#nav-side');\n if (navSide) navSide.onclick = () => {\n const posLeft = sidebar.getBoundingClientRect().left;\n if (posLeft == 0) sideClose(sidebar);\n else sideOpen(sidebar);\n };\n const btnSideClose = sidebar.querySelector<HTMLButtonElement>('#btn-close');\n if (btnSideClose) btnSideClose.onclick = () => sideClose(sidebar);\n};\n/*--------------------------------------------------------------------------------*/\nconst navRemove = () => {\n const topbar = document.querySelector<HTMLElement>('#topbar');\n const tabbar = document.querySelector<HTMLElement>('#tabbar');\n const sidebar = document.querySelector<HTMLElement>('#sidebar');\n if (topbar) topbar.remove();\n if (tabbar) tabbar.remove();\n if (sidebar) sidebar.remove();\n if (app) app.className = '';\n};\n/*--------------------------------------------------------------------------------*/\nconst setTopbar = (params: PageParams) => {\n const topbar = document.querySelector<HTMLElement>('#topbar');\n if (!topbar) return;\n // title\n const title = params.title ? params.title : 'Page Title';\n topbar.querySelector<HTMLElement>('.title')!.innerText = title;\n // icon\n const navBack = document.querySelector<HTMLElement>('#topbar #nav-back')!;\n navBack.innerHTML = params.icon ? params.icon : '&#xf053;';\n // navside\n const navSide = document.querySelector<HTMLElement>('#topbar #nav-side')!;\n if (params.button?.side) {\n navSide.style.display = 'block';\n navBack.style.display = 'none';\n } else {\n navSide.style.display = 'none';\n navBack.style.display = 'block';\n }\n // actbar\n const actbar = topbar.querySelector<HTMLElement>('#actbar');\n if (actbar) actbar.innerHTML = params.actbar ? params.actbar : '';\n // tabbar\n const tabbar = document.querySelector<HTMLElement>('#tabbar');\n if (!tabbar) return;\n if (params.button?.tab) {\n tabbar.style.display = 'block';\n if (app) app.classList.add('tabbar');\n } else {\n tabbar.style.display = 'none';\n if (app) app.classList.remove('tabbar');\n }\n // tabbar active\n tabActive(params.uri);\n};\n/*--------------------------------------------------------------------------------*/\nconst tabActive = (uri: string | undefined) => {\n if (!uri) return;\n if (uri.indexOf('#') > 0) {\n uri = uri.substring(0, uri.indexOf('#'));\n }\n const btn = document.querySelectorAll<HTMLButtonElement>('#tabbar button');\n btn.forEach(el => {\n if (!el.disabled) {\n const path = el.getAttribute('href');\n if (uri == path) {\n el.classList.add('active');\n } else {\n el.classList.remove('active');\n }\n }\n });\n};\n/*--------------------------------------------------------------------------------*/\nconst sideBtnEvent = (sidebar: HTMLElement) => {\n const btn = sidebar.querySelectorAll('a');\n btn.forEach(el => {\n el.addEventListener('click', () => {\n sideClose(sidebar);\n });\n });\n};\nconst sideOpen = (sidebar: HTMLElement) => {\n sidebar.classList.remove('close');\n sidebar.classList.add('open');\n // overlay\n const overlay = document.createElement('div');\n overlay.id = 'side-overlay';\n overlay.className = 'overlay';\n overlay.style.animation = 'fade-in 0.4s forwards';\n document.body.appendChild(overlay);\n overlay.onclick = () => sideClose(sidebar);\n};\nconst sideClose = (sidebar: HTMLElement) => {\n sidebar.classList.remove('open');\n sidebar.classList.add('close');\n // overlay\n const overlay = document.querySelector<HTMLElement>('#side-overlay');\n if (overlay) {\n overlay.style.animation = 'fade-out 0.4s forwards';\n overlay.onanimationend = () => overlay.remove();\n }\n};\n/*--------------------------------------------------------------------------------*/\n"],"mappings":"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","names":["app"]}
1
+ {"version":3,"sources":["../../../src/page/index.ts","../../../src/page/mobile/index.ts"],"sourcesContent":["/* page */\n/*--------------------------------------------------------------------------------*/\nconst app = document.querySelector<HTMLElement>('#app');\nconst pageSpin: string = /*html*/ `\n<div class=\"lds-spinner\">\n <div></div><div></div><div></div><div></div>\n <div></div><div></div><div></div><div></div>\n <div></div><div></div><div></div><div></div>\n</div>\n`;\nconst smallSpin: string = `<div class=\"spinner s32\"></div>`;\n/*--------------------------------------------------------------------------------*/\nexport const loading = (size = 'default') => {\n if (!app) return;\n // page-loader\n if (!app.querySelector('#page-loader')) {\n const loader = document.createElement('div');\n loader.id = 'page-loader';\n loader.className = 'overlay center';\n loader.innerHTML = size == 'default' ? pageSpin : smallSpin;\n app.appendChild(loader);\n }\n // app-content\n const content = app.querySelector<HTMLElement>('#app-content');\n if (content) content.style.display = 'none';\n};\n/*--------------------------------------------------------------------------------*/\nexport const ready = (delay = 400) => {\n new Promise(r => setTimeout(r, delay)).then(() => {\n clearLoader(true);\n });\n};\n/*--------------------------------------------------------------------------------*/\nexport const error = (err: Error) => {\n clearLoader(false);\n if (!app) return;\n // create\n const box = document.createElement('div');\n box.className = 'page-error';\n box.innerHTML = /*html*/ `\n <i class=\"icon red\">&#xf188;</i>\n <div class=\"topic\">&#x2726; เกิดข้อผิดพลาด &#x2726;</div>\n <div class=\"text\">${err}</div>\n `;\n app.prepend(box);\n throw err;\n};\n/*--------------------------------------------------------------------------------*/\nexport const notFound = () => {\n if (!app) return;\n app.innerHTML = /*html*/ `\n <div class=\"page-not-found\">\n <h1>4<i class=\"fas fa-ghost\"></i>4</h1>\n <h2>Error 404 Page Not Found</h2>\n <p>Sorry, the page cannot be accessed</p>\n </div>\n `;\n};\n/*--------------------------------------------------------------------------------*/\nexport const fullLoad = () => {\n clearNavbar();\n if (!app) return;\n app.classList.add('full-page');\n app.innerHTML = /*html*/ `\n <div class=\"page-full-load\">\n <div class=\"spinner\"></div>\n <div class=\"text\">Slim<br>Loading</div>\n </div>\n `;\n};\n/*--------------------------------------------------------------------------------*/\nexport const inform = (params: {\n icon: string;\n msg: string;\n btnTxt: string;\n btnUrl: string;\n color?: string;\n}) => {\n clearNavbar();\n if (!app) return;\n app.classList.add('full-page');\n app.innerHTML = /*html*/ `\n <div class=\"page-inform ${params.color}\">\n <div class=\"icon solid\">${params.icon}</div>\n <div class=\"msg\">${params.msg}</div>\n <button class=\"lg ${params.color}\" shadow=\"true\">\n ${params.btnTxt}\n </button>\n </div>\n `;\n const btn = app.querySelector<HTMLButtonElement>('button')!;\n btn.onclick = () => window.location.replace(params.btnUrl);\n};\n/*--------------------------------------------------------------------------------*/\n//export const Maintain = () => { };\n//export const Construct = () => { };\n/*--------------------------------------------------------------------------------*/\nconst clearNavbar = () => {\n const topbar = document.querySelector<HTMLElement>('#topbar');\n const tabbar = document.querySelector<HTMLElement>('#tabbar');\n const sidebar = document.querySelector<HTMLElement>('#sidebar');\n if (topbar) topbar.remove();\n if (tabbar) tabbar.remove();\n if (sidebar) sidebar.remove();\n if (app) app.className = '';\n};\nconst clearLoader = (showContent: boolean) => {\n if (!app) return;\n const loader = app.querySelector<HTMLElement>('#page-loader');\n if (loader) {\n loader.style.animation = 'fade-out 0.4s forwards';\n loader.onanimationend = () => loader.remove();\n }\n const content = app.querySelector<HTMLElement>('#app-content');\n if (content) content.style.display = showContent ? 'block' : 'none';\n};\n/*--------------------------------------------------------------------------------*/\n","/* page */\n/*--------------------------------------------------------------------------------*/\nexport * from '../index';\nconst app = document.querySelector<HTMLElement>('#app');\n/*--------------------------------------------------------------------------------*/\nexport type PageParams = {\n auth?: boolean;\n size?: string;\n icon?: string;\n title?: string;\n template?: string;\n button?: {\n side?: boolean;\n tab?: boolean;\n };\n sidebar?: string;\n tabbar?: string;\n actbar?: string;\n uri?: string;\n};\n/*--------------------------------------------------------------------------------*/\nexport const create = (params: PageParams) => {\n if (!app) return;\n const size = params.size ? params.size : '';\n const template = params.template ? params.template : '';\n // content\n const content = document.createElement('div');\n content.id = 'app-content';\n content.innerHTML = template;\n app.appendChild(content);\n // page init\n if (size == 'full') {\n navRemove();\n app.classList.add('full-page');\n } else {\n app.classList.remove('full-page');\n if (document.querySelector('#topbar')) {\n setTopbar(params);\n } else {\n navCreate(params);\n setTopbar(params);\n }\n }\n};\n/*--------------------------------------------------------------------------------*/\n// ### navbar ###\n/*--------------------------------------------------------------------------------*/\nconst navCreate = (params: PageParams) => {\n // topbar\n const topbar = document.createElement('nav');\n const tabbar = document.createElement('nav');\n const sidebar = document.createElement('nav');\n topbar.id = 'topbar';\n tabbar.id = 'tabbar';\n sidebar.id = 'sidebar';\n topbar.innerHTML = /*html*/ `\n <div class=\"container\">\n <div class=\"box left\">\n <button id=\"nav-back\" class=\"topbar-btn icon\"\n onclick=\"history.back()\">&#xf053;</button>\n <button id=\"nav-side\" class=\"topbar-btn icon\">&#xf0c9;</button>\n <div class=\"title\"></div>\n </div>\n <div id=\"actbar\" class=\"box right\"></div>\n </div>\n `;\n tabbar.innerHTML = params.tabbar ? params.tabbar : '';\n sidebar.innerHTML = params.sidebar ? params.sidebar : '';\n document.body.prepend(topbar, tabbar, sidebar);\n // nav-side\n sideBtnEvent(sidebar);\n const navSide = topbar.querySelector<HTMLButtonElement>('#nav-side');\n if (navSide) navSide.onclick = () => {\n const posLeft = sidebar.getBoundingClientRect().left;\n if (posLeft == 0) sideClose(sidebar);\n else sideOpen(sidebar);\n };\n const btnSideClose = sidebar.querySelector<HTMLButtonElement>('#btn-close');\n if (btnSideClose) btnSideClose.onclick = () => sideClose(sidebar);\n};\n/*--------------------------------------------------------------------------------*/\nconst navRemove = () => {\n const topbar = document.querySelector<HTMLElement>('#topbar');\n const tabbar = document.querySelector<HTMLElement>('#tabbar');\n const sidebar = document.querySelector<HTMLElement>('#sidebar');\n if (topbar) topbar.remove();\n if (tabbar) tabbar.remove();\n if (sidebar) sidebar.remove();\n if (app) app.className = '';\n};\n/*--------------------------------------------------------------------------------*/\nconst setTopbar = (params: PageParams) => {\n const topbar = document.querySelector<HTMLElement>('#topbar');\n if (!topbar) return;\n // title\n const title = params.title ? params.title : 'Page Title';\n topbar.querySelector<HTMLElement>('.title')!.innerText = title;\n // icon\n const navBack = document.querySelector<HTMLElement>('#topbar #nav-back')!;\n navBack.innerHTML = params.icon ? params.icon : '&#xf053;';\n // navside\n const navSide = document.querySelector<HTMLElement>('#topbar #nav-side')!;\n if (params.button?.side) {\n navSide.style.display = 'block';\n navBack.style.display = 'none';\n } else {\n navSide.style.display = 'none';\n navBack.style.display = 'block';\n }\n // actbar\n const actbar = topbar.querySelector<HTMLElement>('#actbar');\n if (actbar) actbar.innerHTML = params.actbar ? params.actbar : '';\n // tabbar\n const tabbar = document.querySelector<HTMLElement>('#tabbar');\n if (!tabbar) return;\n if (params.button?.tab) {\n tabbar.style.display = 'block';\n if (app) app.classList.add('tabbar');\n } else {\n tabbar.style.display = 'none';\n if (app) app.classList.remove('tabbar');\n }\n // tabbar active\n tabActive(params.uri);\n};\n/*--------------------------------------------------------------------------------*/\nconst tabActive = (uri: string | undefined) => {\n if (!uri) return;\n if (uri.indexOf('#') > 0) {\n uri = uri.substring(0, uri.indexOf('#'));\n }\n const btn = document.querySelectorAll<HTMLButtonElement>('#tabbar button');\n btn.forEach(el => {\n if (!el.disabled) {\n const path = el.getAttribute('href');\n if (uri == path) {\n el.classList.add('active');\n } else {\n el.classList.remove('active');\n }\n }\n });\n};\n/*--------------------------------------------------------------------------------*/\nconst sideBtnEvent = (sidebar: HTMLElement) => {\n const btn = sidebar.querySelectorAll('a');\n btn.forEach(el => {\n el.addEventListener('click', () => {\n sideClose(sidebar);\n });\n });\n};\nconst sideOpen = (sidebar: HTMLElement) => {\n sidebar.classList.remove('close');\n sidebar.classList.add('open');\n // overlay\n const overlay = document.createElement('div');\n overlay.id = 'side-overlay';\n overlay.className = 'overlay';\n overlay.style.animation = 'fade-in 0.4s forwards';\n document.body.appendChild(overlay);\n overlay.onclick = () => sideClose(sidebar);\n};\nconst sideClose = (sidebar: HTMLElement) => {\n sidebar.classList.remove('open');\n sidebar.classList.add('close');\n // overlay\n const overlay = document.querySelector<HTMLElement>('#side-overlay');\n if (overlay) {\n overlay.style.animation = 'fade-out 0.4s forwards';\n overlay.onanimationend = () => overlay.remove();\n }\n};\n/*--------------------------------------------------------------------------------*/\n"],"mappings":"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","names":["app"]}
@@ -0,0 +1,2 @@
1
+ export { i as apiHub, c as cfg, a as oauth, b as wssHub } from '../index-D_o5c-YA.js';
2
+ export { h as hwLink } from '../index-COUeXLOQ.js';