admin-lte 4.0.0-alpha3 → 4.0.0-beta2

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 (186) hide show
  1. package/.astro/settings.json +5 -0
  2. package/README.md +6 -1
  3. package/dist/css/adminlte.css +238 -226
  4. package/dist/css/adminlte.css.map +1 -1
  5. package/dist/css/adminlte.min.css +2 -2
  6. package/dist/css/adminlte.min.css.map +1 -1
  7. package/dist/css/adminlte.rtl.css +245 -224
  8. package/dist/css/adminlte.rtl.css.map +1 -1
  9. package/dist/css/adminlte.rtl.min.css +2 -2
  10. package/dist/css/adminlte.rtl.min.css.map +1 -1
  11. package/dist/js/adminlte.js +139 -37
  12. package/dist/js/adminlte.js.map +1 -1
  13. package/dist/js/adminlte.min.js +3 -3
  14. package/dist/js/adminlte.min.js.map +1 -1
  15. package/dist/pages/UI/general.html +901 -0
  16. package/dist/pages/UI/icons.html +452 -0
  17. package/dist/pages/UI/timeline.html +228 -599
  18. package/dist/pages/docs/browser-support.html +206 -509
  19. package/dist/pages/docs/color-mode.html +346 -685
  20. package/dist/pages/docs/components/main-header.html +435 -827
  21. package/dist/pages/docs/components/main-sidebar.html +308 -610
  22. package/dist/pages/docs/faq.html +194 -498
  23. package/dist/pages/docs/how-to-contribute.html +196 -499
  24. package/dist/pages/docs/introduction.html +215 -513
  25. package/dist/pages/docs/javascript/treeview.html +204 -507
  26. package/dist/pages/docs/layout.html +194 -499
  27. package/dist/pages/docs/license.html +194 -498
  28. package/dist/pages/examples/lockscreen.html +21 -59
  29. package/dist/pages/examples/login-v2.html +35 -95
  30. package/dist/pages/examples/login.html +33 -89
  31. package/dist/pages/examples/register-v2.html +37 -102
  32. package/dist/pages/examples/register.html +34 -92
  33. package/dist/pages/forms/general.html +286 -766
  34. package/dist/pages/generate/theme.html +412 -0
  35. package/dist/pages/index.html +310 -807
  36. package/dist/pages/index2.html +502 -1189
  37. package/dist/pages/index3.html +250 -663
  38. package/dist/pages/layout/collapsed-sidebar.html +201 -520
  39. package/dist/pages/layout/fixed-sidebar.html +201 -521
  40. package/dist/pages/layout/layout-custom-area.html +467 -0
  41. package/dist/pages/layout/layout-rtl.html +201 -520
  42. package/dist/pages/layout/logo-switch.html +111 -310
  43. package/dist/pages/layout/sidebar-mini.html +201 -520
  44. package/dist/pages/layout/unfixed-sidebar.html +200 -518
  45. package/dist/pages/tables/simple.html +268 -651
  46. package/dist/pages/widgets/cards.html +263 -705
  47. package/dist/pages/widgets/info-box.html +285 -788
  48. package/dist/pages/widgets/small-box.html +217 -548
  49. package/package.json +34 -33
  50. package/src/scss/_app-content.scss +0 -49
  51. package/src/scss/_app-main.scss +25 -1
  52. package/src/scss/_app-sidebar.scss +3 -8
  53. package/src/scss/_bootstrap-variables.scss +26 -22
  54. package/src/scss/_callouts.scss +6 -0
  55. package/src/scss/_cards.scss +1 -0
  56. package/src/scss/_compact-mode.scss +0 -26
  57. package/src/scss/_direct-chat.scss +5 -0
  58. package/src/scss/_dropdown.scss +1 -0
  59. package/src/scss/_info-box.scss +2 -10
  60. package/src/scss/_timeline.scss +1 -0
  61. package/src/scss/_toasts.scss +33 -0
  62. package/src/scss/_variables.scss +29 -11
  63. package/src/scss/adminlte.scss +1 -2
  64. package/src/scss/pages/_lockscreen.scss +1 -0
  65. package/src/scss/pages/_login_and_register.scss +1 -0
  66. package/src/scss/parts/_extra-components.scss +1 -0
  67. package/src/ts/adminlte.ts +3 -1
  68. package/src/ts/card-widget.ts +3 -2
  69. package/src/ts/direct-chat.ts +3 -2
  70. package/src/ts/fullscreen.ts +110 -0
  71. package/src/ts/layout.ts +3 -2
  72. package/src/ts/push-menu.ts +4 -3
  73. package/src/ts/treeview.ts +20 -3
  74. package/src/ts/util/index.ts +1 -1
  75. package/.bundlewatch.config.json +0 -28
  76. package/.cache/.eslintcache +0 -1
  77. package/.cache/.stylelintcache +0 -1
  78. package/.editorconfig +0 -14
  79. package/.eslintignore +0 -7
  80. package/.eslintrc.json +0 -120
  81. package/.gitattributes +0 -6
  82. package/.gitpod.yml +0 -6
  83. package/.idea/AdminLTE.iml +0 -16
  84. package/.idea/codeStyles/Project.xml +0 -53
  85. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  86. package/.idea/dbnavigator.xml +0 -421
  87. package/.idea/git_toolbox_prj.xml +0 -15
  88. package/.idea/inspectionProfiles/Project_Default.xml +0 -7
  89. package/.idea/jsLibraryMappings.xml +0 -6
  90. package/.idea/jsLinters/eslint.xml +0 -6
  91. package/.idea/modules.xml +0 -8
  92. package/.idea/php.xml +0 -28
  93. package/.idea/vcs.xml +0 -12
  94. package/.stylelintignore +0 -8
  95. package/.stylelintrc.json +0 -47
  96. package/composer.json +0 -25
  97. package/dist/pages/layout/fixed-complete.html +0 -867
  98. package/src/assets/img/AdminLTEFullLogo.png +0 -0
  99. package/src/assets/img/AdminLTELogo.png +0 -0
  100. package/src/assets/img/avatar.png +0 -0
  101. package/src/assets/img/avatar2.png +0 -0
  102. package/src/assets/img/avatar3.png +0 -0
  103. package/src/assets/img/avatar4.png +0 -0
  104. package/src/assets/img/avatar5.png +0 -0
  105. package/src/assets/img/boxed-bg.jpg +0 -0
  106. package/src/assets/img/boxed-bg.png +0 -0
  107. package/src/assets/img/credit/american-express.png +0 -0
  108. package/src/assets/img/credit/cirrus.png +0 -0
  109. package/src/assets/img/credit/mastercard.png +0 -0
  110. package/src/assets/img/credit/paypal.png +0 -0
  111. package/src/assets/img/credit/paypal2.png +0 -0
  112. package/src/assets/img/credit/visa.png +0 -0
  113. package/src/assets/img/default-150x150.png +0 -0
  114. package/src/assets/img/icons.png +0 -0
  115. package/src/assets/img/photo1.png +0 -0
  116. package/src/assets/img/photo2.png +0 -0
  117. package/src/assets/img/photo3.jpg +0 -0
  118. package/src/assets/img/photo4.jpg +0 -0
  119. package/src/assets/img/prod-1.jpg +0 -0
  120. package/src/assets/img/prod-2.jpg +0 -0
  121. package/src/assets/img/prod-3.jpg +0 -0
  122. package/src/assets/img/prod-4.jpg +0 -0
  123. package/src/assets/img/prod-5.jpg +0 -0
  124. package/src/assets/img/user1-128x128.jpg +0 -0
  125. package/src/assets/img/user2-160x160.jpg +0 -0
  126. package/src/assets/img/user3-128x128.jpg +0 -0
  127. package/src/assets/img/user4-128x128.jpg +0 -0
  128. package/src/assets/img/user5-128x128.jpg +0 -0
  129. package/src/assets/img/user6-128x128.jpg +0 -0
  130. package/src/assets/img/user7-128x128.jpg +0 -0
  131. package/src/assets/img/user8-128x128.jpg +0 -0
  132. package/src/config/assets.config.mjs +0 -8
  133. package/src/config/astro.config.mjs +0 -19
  134. package/src/config/postcss.config.mjs +0 -15
  135. package/src/config/rollup.config.js +0 -20
  136. package/src/html/.eslintrc.json +0 -24
  137. package/src/html/.prettierrc.js +0 -11
  138. package/src/html/.tsconfig.json +0 -4
  139. package/src/html/components/_head.astro +0 -47
  140. package/src/html/components/_scripts.astro +0 -51
  141. package/src/html/components/dashboard/_footer.astro +0 -18
  142. package/src/html/components/dashboard/_sidenav.astro +0 -553
  143. package/src/html/components/dashboard/_topbar.astro +0 -213
  144. package/src/html/components/docs/browser-support.mdx +0 -23
  145. package/src/html/components/docs/color-mode.mdx +0 -169
  146. package/src/html/components/docs/components/main-header.mdx +0 -198
  147. package/src/html/components/docs/components/main-sidebar.mdx +0 -129
  148. package/src/html/components/docs/faq.mdx +0 -11
  149. package/src/html/components/docs/how-to-contribute.mdx +0 -34
  150. package/src/html/components/docs/introduction.mdx +0 -60
  151. package/src/html/components/docs/license.mdx +0 -9
  152. package/src/html/components/javascript/treeview.mdx +0 -39
  153. package/src/html/env.d.ts +0 -1
  154. package/src/html/pages/UI/timeline.astro +0 -221
  155. package/src/html/pages/docs/browser-support.astro +0 -71
  156. package/src/html/pages/docs/color-mode.astro +0 -271
  157. package/src/html/pages/docs/components/main-header.astro +0 -319
  158. package/src/html/pages/docs/components/main-sidebar.astro +0 -71
  159. package/src/html/pages/docs/faq.astro +0 -71
  160. package/src/html/pages/docs/how-to-contribute.astro +0 -71
  161. package/src/html/pages/docs/introduction.astro +0 -71
  162. package/src/html/pages/docs/javascript/treeview.astro +0 -71
  163. package/src/html/pages/docs/layout.astro +0 -120
  164. package/src/html/pages/docs/license.astro +0 -71
  165. package/src/html/pages/examples/lockscreen.astro +0 -63
  166. package/src/html/pages/examples/login-v2.astro +0 -109
  167. package/src/html/pages/examples/login.astro +0 -99
  168. package/src/html/pages/examples/register-v2.astro +0 -116
  169. package/src/html/pages/examples/register.astro +0 -102
  170. package/src/html/pages/forms/general.astro +0 -624
  171. package/src/html/pages/index.astro +0 -790
  172. package/src/html/pages/index2.astro +0 -1345
  173. package/src/html/pages/index3.astro +0 -513
  174. package/src/html/pages/layout/collapsed-sidebar.astro +0 -110
  175. package/src/html/pages/layout/fixed-complete.astro +0 -209
  176. package/src/html/pages/layout/fixed-sidebar.astro +0 -109
  177. package/src/html/pages/layout/layout-rtl.astro +0 -109
  178. package/src/html/pages/layout/logo-switch.astro +0 -212
  179. package/src/html/pages/layout/sidebar-mini.astro +0 -108
  180. package/src/html/pages/layout/unfixed-sidebar.astro +0 -107
  181. package/src/html/pages/tables/simple.astro +0 -472
  182. package/src/html/pages/widgets/cards.astro +0 -373
  183. package/src/html/pages/widgets/info-box.astro +0 -413
  184. package/src/html/pages/widgets/small-box.astro +0 -182
  185. package/src/utils/index.js +0 -28
  186. package/tsconfig.json +0 -31
@@ -1 +1 @@
1
- {"version":3,"names":["domContentLoadedCallbacks","onDOMContentLoaded","callback","document","readyState","length","addEventListener","push","slideUp","target","duration","style","transitionProperty","transitionDuration","boxSizing","height","offsetHeight","overflow","window","setTimeout","paddingTop","paddingBottom","marginTop","marginBottom","display","removeProperty","slideDown","getComputedStyle","CLASS_NAME_HOLD_TRANSITIONS","Layout","constructor","element","this","_element","holdTransition","resizeTimer","body","classList","add","clearTimeout","remove","EVENT_KEY","EVENT_OPEN","EVENT_COLLAPSE","CLASS_NAME_SIDEBAR_MINI","CLASS_NAME_SIDEBAR_COLLAPSE","CLASS_NAME_SIDEBAR_OPEN","CLASS_NAME_SIDEBAR_EXPAND","SELECTOR_SIDEBAR_EXPAND","SELECTOR_SIDEBAR_TOGGLE","Defaults","sidebarBreakpoint","PushMenu","config","_config","Object","assign","menusClose","querySelectorAll","forEach","navTree","navSidebar","querySelector","navItem","navI","expand","event","Event","dispatchEvent","collapse","addSidebarBreakPoint","sidebarExpandList","_b","_a","sidebarExpand","_c","Array","from","find","className","startsWith","sidebar","getElementsByClassName","sidebarContent","getPropertyValue","Number","replace","innerWidth","contains","toggle","init","data","sidebarOverlay","createElement","append","preventDefault","currentTarget","btn","button","dataset","lteToggle","closest","EVENT_EXPANDED","EVENT_COLLAPSED","CLASS_NAME_MENU_OPEN","SELECTOR_TREEVIEW_MENU","Default","animationSpeed","Treeview","open","childElement","close","targetItem","targetLink","getAttribute","CLASS_NAME_DIRECT_CHAT_OPEN","DirectChat","chatPane","EVENT_REMOVE","EVENT_MAXIMIZED","EVENT_MINIMIZED","CLASS_NAME_CARD","CLASS_NAME_COLLAPSED","CLASS_NAME_COLLAPSING","CLASS_NAME_EXPANDING","CLASS_NAME_WAS_COLLAPSED","CLASS_NAME_MAXIMIZED","SELECTOR_DATA_REMOVE","SELECTOR_DATA_COLLAPSE","SELECTOR_DATA_MAXIMIZE","SELECTOR_CARD","SELECTOR_CARD_BODY","SELECTOR_CARD_FOOTER","collapseTrigger","removeTrigger","maximizeTrigger","CardWidget","_parent","el","HTMLElement","maximize","width","offsetWidth","transition","htmlTag","minimize","toggleMaximize"],"sources":["../../src/ts/util/index.ts","../../src/ts/layout.ts","../../src/ts/push-menu.ts","../../src/ts/treeview.ts","../../src/ts/direct-chat.ts","../../src/ts/card-widget.ts"],"sourcesContent":["const domContentLoadedCallbacks: Array<() => void> = []\n\nconst onDOMContentLoaded = (callback: () => void): void => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!domContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of domContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n domContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\n/* SLIDE UP */\nconst slideUp = (target: HTMLElement, duration = 500) => {\n target.style.transitionProperty = 'height, margin, padding'\n target.style.transitionDuration = `${duration}ms`\n target.style.boxSizing = 'border-box'\n target.style.height = `${target.offsetHeight}px`\n target.style.overflow = 'hidden'\n\n window.setTimeout(() => {\n target.style.height = '0'\n target.style.paddingTop = '0'\n target.style.paddingBottom = '0'\n target.style.marginTop = '0'\n target.style.marginBottom = '0'\n }, 1)\n\n window.setTimeout(() => {\n target.style.display = 'none'\n target.style.removeProperty('height')\n target.style.removeProperty('padding-top')\n target.style.removeProperty('padding-bottom')\n target.style.removeProperty('margin-top')\n target.style.removeProperty('margin-bottom')\n target.style.removeProperty('overflow')\n target.style.removeProperty('transition-duration')\n target.style.removeProperty('transition-property')\n }, duration)\n}\n\n/* SLIDE DOWN */\nconst slideDown = (target: HTMLElement, duration = 500) => {\n target.style.removeProperty('display')\n let { display } = window.getComputedStyle(target)\n\n if (display === 'none') {\n display = 'block'\n }\n\n target.style.display = display\n const height = target.offsetHeight\n target.style.overflow = 'hidden'\n target.style.height = '0'\n target.style.paddingTop = '0'\n target.style.paddingBottom = '0'\n target.style.marginTop = '0'\n target.style.marginBottom = '0'\n\n window.setTimeout(() => {\n target.style.boxSizing = 'border-box'\n target.style.transitionProperty = 'height, margin, padding'\n target.style.transitionDuration = `${duration}ms`\n target.style.height = `${height}px`\n target.style.removeProperty('padding-top')\n target.style.removeProperty('padding-bottom')\n target.style.removeProperty('margin-top')\n target.style.removeProperty('margin-bottom')\n }, 1)\n\n window.setTimeout(() => {\n target.style.removeProperty('height')\n target.style.removeProperty('overflow')\n target.style.removeProperty('transition-duration')\n target.style.removeProperty('transition-property')\n }, duration)\n}\n\n/* TOOGLE */\nconst slideToggle = (target: HTMLElement, duration = 500) => {\n if (window.getComputedStyle(target).display === 'none') {\n slideDown(target, duration)\n return\n }\n\n slideUp(target, duration)\n}\n\nexport {\n onDOMContentLoaded,\n slideUp,\n slideDown,\n slideToggle\n}\n","/**\n * --------------------------------------------\n * AdminLTE layout.ts\n * License MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded\n} from './util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst CLASS_NAME_HOLD_TRANSITIONS = 'hold-transition'\nconst CLASS_NAME_APP_LOADED = 'app-loaded'\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Layout {\n _element: HTMLElement\n\n constructor(element: HTMLElement) {\n this._element = element\n }\n\n holdTransition(): void {\n let resizeTimer: ReturnType<typeof setTimeout>\n window.addEventListener('resize', () => {\n document.body.classList.add(CLASS_NAME_HOLD_TRANSITIONS)\n clearTimeout(resizeTimer)\n resizeTimer = setTimeout(() => {\n document.body.classList.remove(CLASS_NAME_HOLD_TRANSITIONS)\n }, 400)\n })\n }\n}\n\nonDOMContentLoaded(() => {\n const data = new Layout(document.body)\n data.holdTransition()\n setTimeout(() => {\n document.body.classList.add(CLASS_NAME_APP_LOADED)\n }, 400)\n})\n\nexport default Layout\n","/**\n * --------------------------------------------\n * AdminLTE push-menu.ts\n * License MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded\n} from './util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst DATA_KEY = 'lte.push-menu'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_OPEN = `open${EVENT_KEY}`\nconst EVENT_COLLAPSE = `collapse${EVENT_KEY}`\n\nconst CLASS_NAME_SIDEBAR_MINI = 'sidebar-mini'\nconst CLASS_NAME_SIDEBAR_COLLAPSE = 'sidebar-collapse'\nconst CLASS_NAME_SIDEBAR_OPEN = 'sidebar-open'\nconst CLASS_NAME_SIDEBAR_EXPAND = 'sidebar-expand'\nconst CLASS_NAME_SIDEBAR_OVERLAY = 'sidebar-overlay'\nconst CLASS_NAME_MENU_OPEN = 'menu-open'\n\nconst SELECTOR_APP_SIDEBAR = '.app-sidebar'\nconst SELECTOR_SIDEBAR_MENU = '.sidebar-menu'\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_TREEVIEW = '.nav-treeview'\nconst SELECTOR_APP_WRAPPER = '.app-wrapper'\nconst SELECTOR_SIDEBAR_EXPAND = `[class*=\"${CLASS_NAME_SIDEBAR_EXPAND}\"]`\nconst SELECTOR_SIDEBAR_TOGGLE = '[data-lte-toggle=\"sidebar\"]'\n\ntype Config = {\n sidebarBreakpoint: number;\n}\n\nconst Defaults = {\n sidebarBreakpoint: 992\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass PushMenu {\n _element: HTMLElement\n _config: Config\n\n constructor(element: HTMLElement, config: Config) {\n this._element = element\n this._config = { ...Defaults, ...config }\n }\n\n // TODO\n menusClose() {\n const navTreeview = document.querySelectorAll<HTMLElement>(SELECTOR_NAV_TREEVIEW)\n\n navTreeview.forEach(navTree => {\n navTree.style.removeProperty('display')\n navTree.style.removeProperty('height')\n })\n\n const navSidebar = document.querySelector(SELECTOR_SIDEBAR_MENU)\n const navItem = navSidebar?.querySelectorAll(SELECTOR_NAV_ITEM)\n\n if (navItem) {\n navItem.forEach(navI => {\n navI.classList.remove(CLASS_NAME_MENU_OPEN)\n })\n }\n }\n\n expand() {\n const event = new Event(EVENT_OPEN)\n\n document.body.classList.remove(CLASS_NAME_SIDEBAR_COLLAPSE)\n document.body.classList.add(CLASS_NAME_SIDEBAR_OPEN)\n\n this._element.dispatchEvent(event)\n }\n\n collapse() {\n const event = new Event(EVENT_COLLAPSE)\n\n document.body.classList.remove(CLASS_NAME_SIDEBAR_OPEN)\n document.body.classList.add(CLASS_NAME_SIDEBAR_COLLAPSE)\n\n this._element.dispatchEvent(event)\n }\n\n addSidebarBreakPoint() {\n const sidebarExpandList = document.querySelector(SELECTOR_SIDEBAR_EXPAND)?.classList ?? []\n const sidebarExpand = Array.from(sidebarExpandList).find(className => className.startsWith(CLASS_NAME_SIDEBAR_EXPAND)) ?? ''\n const sidebar = document.getElementsByClassName(sidebarExpand)[0]\n const sidebarContent = window.getComputedStyle(sidebar, '::before').getPropertyValue('content')\n this._config = { ...this._config, sidebarBreakpoint: Number(sidebarContent.replace(/[^\\d.-]/g, '')) }\n\n if (window.innerWidth <= this._config.sidebarBreakpoint) {\n this.collapse()\n } else {\n if (!document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI)) {\n this.expand()\n }\n\n if (document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI) && document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) {\n this.collapse()\n }\n }\n }\n\n toggle() {\n if (document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) {\n this.expand()\n } else {\n this.collapse()\n }\n }\n\n init() {\n this.addSidebarBreakPoint()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nonDOMContentLoaded(() => {\n const sidebar = document?.querySelector(SELECTOR_APP_SIDEBAR) as HTMLElement | undefined\n\n if (sidebar) {\n const data = new PushMenu(sidebar, Defaults)\n data.init()\n\n window.addEventListener('resize', () => {\n data.init()\n })\n }\n\n const sidebarOverlay = document.createElement('div')\n sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY\n document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay)\n\n sidebarOverlay.addEventListener('touchstart', event => {\n event.preventDefault()\n const target = event.currentTarget as HTMLElement\n const data = new PushMenu(target, Defaults)\n data.collapse()\n })\n sidebarOverlay.addEventListener('click', event => {\n event.preventDefault()\n const target = event.currentTarget as HTMLElement\n const data = new PushMenu(target, Defaults)\n data.collapse()\n })\n\n const fullBtn = document.querySelectorAll(SELECTOR_SIDEBAR_TOGGLE)\n\n fullBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n\n let button = event.currentTarget as HTMLElement | undefined\n\n if (button?.dataset.lteToggle !== 'sidebar') {\n button = button?.closest(SELECTOR_SIDEBAR_TOGGLE) as HTMLElement | undefined\n }\n\n if (button) {\n event?.preventDefault()\n const data = new PushMenu(button, Defaults)\n data.toggle()\n }\n })\n })\n})\n\nexport default PushMenu\n","/**\n * --------------------------------------------\n * AdminLTE treeview.ts\n * License MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded,\n slideDown,\n slideUp\n} from './util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n// const NAME = 'Treeview'\nconst DATA_KEY = 'lte.treeview'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\n// const EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst CLASS_NAME_MENU_OPEN = 'menu-open'\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_TREEVIEW_MENU = '.nav-treeview'\nconst SELECTOR_DATA_TOGGLE = '[data-lte-toggle=\"treeview\"]'\n\nconst Default = {\n animationSpeed: 300\n}\n\ntype Config = {\n animationSpeed: number;\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Treeview {\n _element: HTMLElement\n _config: Config\n\n constructor(element: HTMLElement, config: Config) {\n this._element = element\n this._config = { ...Default, ...config }\n }\n\n open(): void {\n const event = new Event(EVENT_EXPANDED)\n\n this._element.classList.add(CLASS_NAME_MENU_OPEN)\n\n const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined\n if (childElement) {\n slideDown(childElement, this._config.animationSpeed)\n }\n\n this._element.dispatchEvent(event)\n }\n\n close(): void {\n const event = new Event(EVENT_COLLAPSED)\n\n this._element.classList.remove(CLASS_NAME_MENU_OPEN)\n\n const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined\n if (childElement) {\n slideUp(childElement, this._config.animationSpeed)\n }\n\n this._element.dispatchEvent(event)\n }\n\n toggle(): void {\n if (this._element.classList.contains(CLASS_NAME_MENU_OPEN)) {\n this.close()\n } else {\n this.open()\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nonDOMContentLoaded(() => {\n const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE)\n\n button.forEach(btn => {\n btn.addEventListener('click', event => {\n const target = event.target as HTMLElement\n const targetItem = target.closest(SELECTOR_NAV_ITEM) as HTMLElement | undefined\n const targetLink = target.closest(SELECTOR_NAV_LINK) as HTMLAnchorElement | undefined\n\n if (target?.getAttribute('href') === '#' || targetLink?.getAttribute('href') === '#') {\n event.preventDefault()\n }\n\n if (targetItem) {\n const data = new Treeview(targetItem, Default)\n data.toggle()\n }\n })\n })\n})\n\nexport default Treeview\n","/**\n * --------------------------------------------\n * AdminLTE direct-chat.ts\n * License MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded\n} from './util/index'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst DATA_KEY = 'lte.direct-chat'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-lte-toggle=\"chat-pane\"]'\nconst SELECTOR_DIRECT_CHAT = '.direct-chat'\n\nconst CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass DirectChat {\n _element: HTMLElement\n constructor(element: HTMLElement) {\n this._element = element\n }\n\n toggle(): void {\n if (this._element.classList.contains(CLASS_NAME_DIRECT_CHAT_OPEN)) {\n const event = new Event(EVENT_COLLAPSED)\n\n this._element.classList.remove(CLASS_NAME_DIRECT_CHAT_OPEN)\n\n this._element.dispatchEvent(event)\n } else {\n const event = new Event(EVENT_EXPANDED)\n\n this._element.classList.add(CLASS_NAME_DIRECT_CHAT_OPEN)\n\n this._element.dispatchEvent(event)\n }\n }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n\nonDOMContentLoaded(() => {\n const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE)\n\n button.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n const target = event.target as HTMLElement\n const chatPane = target.closest(SELECTOR_DIRECT_CHAT) as HTMLElement | undefined\n\n if (chatPane) {\n const data = new DirectChat(chatPane)\n data.toggle()\n }\n })\n })\n})\n\nexport default DirectChat\n","/**\n * --------------------------------------------\n * AdminLTE card-widget.ts\n * License MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded,\n slideUp,\n slideDown\n} from './util/index'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst DATA_KEY = 'lte.card-widget'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_MAXIMIZED = `maximized${EVENT_KEY}`\nconst EVENT_MINIMIZED = `minimized${EVENT_KEY}`\n\nconst CLASS_NAME_CARD = 'card'\nconst CLASS_NAME_COLLAPSED = 'collapsed-card'\nconst CLASS_NAME_COLLAPSING = 'collapsing-card'\nconst CLASS_NAME_EXPANDING = 'expanding-card'\nconst CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'\nconst CLASS_NAME_MAXIMIZED = 'maximized-card'\n\nconst SELECTOR_DATA_REMOVE = '[data-lte-toggle=\"card-remove\"]'\nconst SELECTOR_DATA_COLLAPSE = '[data-lte-toggle=\"card-collapse\"]'\nconst SELECTOR_DATA_MAXIMIZE = '[data-lte-toggle=\"card-maximize\"]'\nconst SELECTOR_CARD = `.${CLASS_NAME_CARD}`\nconst SELECTOR_CARD_BODY = '.card-body'\nconst SELECTOR_CARD_FOOTER = '.card-footer'\n\ntype Config = {\n animationSpeed: number;\n collapseTrigger: string;\n removeTrigger: string;\n maximizeTrigger: string;\n}\n\nconst Default: Config = {\n animationSpeed: 500,\n collapseTrigger: SELECTOR_DATA_COLLAPSE,\n removeTrigger: SELECTOR_DATA_REMOVE,\n maximizeTrigger: SELECTOR_DATA_MAXIMIZE\n}\n\nclass CardWidget {\n _element: HTMLElement\n _parent: HTMLElement | undefined\n _clone: HTMLElement | undefined\n _config: Config\n\n constructor(element: HTMLElement, config: Config) {\n this._element = element\n this._parent = element.closest(SELECTOR_CARD) as HTMLElement | undefined\n\n if (element.classList.contains(CLASS_NAME_CARD)) {\n this._parent = element\n }\n\n this._config = { ...Default, ...config }\n }\n\n collapse() {\n const event = new Event(EVENT_COLLAPSED)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_COLLAPSING)\n\n const elm = this._parent?.querySelectorAll(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n\n elm.forEach(el => {\n if (el instanceof HTMLElement) {\n slideUp(el, this._config.animationSpeed)\n }\n })\n\n setTimeout(() => {\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_COLLAPSED)\n this._parent.classList.remove(CLASS_NAME_COLLAPSING)\n }\n }, this._config.animationSpeed)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n expand() {\n const event = new Event(EVENT_EXPANDED)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_EXPANDING)\n\n const elm = this._parent?.querySelectorAll(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n\n elm.forEach(el => {\n if (el instanceof HTMLElement) {\n slideDown(el, this._config.animationSpeed)\n }\n })\n\n setTimeout(() => {\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_COLLAPSED)\n this._parent.classList.remove(CLASS_NAME_EXPANDING)\n }\n }, this._config.animationSpeed)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n remove() {\n const event = new Event(EVENT_REMOVE)\n\n if (this._parent) {\n slideUp(this._parent, this._config.animationSpeed)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n toggle() {\n if (this._parent?.classList.contains(CLASS_NAME_COLLAPSED)) {\n this.expand()\n return\n }\n\n this.collapse()\n }\n\n maximize() {\n const event = new Event(EVENT_MAXIMIZED)\n\n if (this._parent) {\n this._parent.style.height = `${this._parent.offsetHeight}px`\n this._parent.style.width = `${this._parent.offsetWidth}px`\n this._parent.style.transition = 'all .15s'\n\n setTimeout(() => {\n const htmlTag = document.querySelector('html')\n\n if (htmlTag) {\n htmlTag.classList.add(CLASS_NAME_MAXIMIZED)\n }\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_MAXIMIZED)\n\n if (this._parent.classList.contains(CLASS_NAME_COLLAPSED)) {\n this._parent.classList.add(CLASS_NAME_WAS_COLLAPSED)\n }\n }\n }, 150)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n minimize() {\n const event = new Event(EVENT_MINIMIZED)\n\n if (this._parent) {\n this._parent.style.height = 'auto'\n this._parent.style.width = 'auto'\n this._parent.style.transition = 'all .15s'\n\n setTimeout(() => {\n const htmlTag = document.querySelector('html')\n\n if (htmlTag) {\n htmlTag.classList.remove(CLASS_NAME_MAXIMIZED)\n }\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_MAXIMIZED)\n\n if (this._parent?.classList.contains(CLASS_NAME_WAS_COLLAPSED)) {\n this._parent.classList.remove(CLASS_NAME_WAS_COLLAPSED)\n }\n }\n }, 10)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n toggleMaximize() {\n if (this._parent?.classList.contains(CLASS_NAME_MAXIMIZED)) {\n this.minimize()\n return\n }\n\n this.maximize()\n }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n\nonDOMContentLoaded(() => {\n const collapseBtn = document.querySelectorAll(SELECTOR_DATA_COLLAPSE)\n\n collapseBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n const target = event.target as HTMLElement\n const data = new CardWidget(target, Default)\n data.toggle()\n })\n })\n\n const removeBtn = document.querySelectorAll(SELECTOR_DATA_REMOVE)\n\n removeBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n const target = event.target as HTMLElement\n const data = new CardWidget(target, Default)\n data.remove()\n })\n })\n\n const maxBtn = document.querySelectorAll(SELECTOR_DATA_MAXIMIZE)\n\n maxBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n const target = event.target as HTMLElement\n const data = new CardWidget(target, Default)\n data.toggleMaximize()\n })\n })\n})\n\nexport default CardWidget\n"],"mappings":"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"}
1
+ {"version":3,"names":["domContentLoadedCallbacks","onDOMContentLoaded","callback","document","readyState","length","addEventListener","push","slideUp","target","duration","style","transitionProperty","transitionDuration","boxSizing","height","offsetHeight","overflow","window","setTimeout","paddingTop","paddingBottom","marginTop","marginBottom","display","removeProperty","slideDown","getComputedStyle","CLASS_NAME_HOLD_TRANSITIONS","Layout","constructor","element","this","_element","holdTransition","resizeTimer","body","classList","add","clearTimeout","remove","EVENT_KEY","EVENT_OPEN","EVENT_COLLAPSE","CLASS_NAME_SIDEBAR_MINI","CLASS_NAME_SIDEBAR_COLLAPSE","CLASS_NAME_SIDEBAR_OPEN","CLASS_NAME_SIDEBAR_EXPAND","SELECTOR_SIDEBAR_EXPAND","SELECTOR_SIDEBAR_TOGGLE","Defaults","sidebarBreakpoint","PushMenu","config","_config","Object","assign","menusClose","querySelectorAll","forEach","navTree","navSidebar","querySelector","navItem","navI","expand","event","Event","dispatchEvent","collapse","addSidebarBreakPoint","sidebarExpandList","_b","_a","sidebarExpand","_c","Array","from","find","className","startsWith","sidebar","getElementsByClassName","sidebarContent","getPropertyValue","Number","replace","innerWidth","contains","toggle","init","data","sidebarOverlay","createElement","append","preventDefault","currentTarget","passive","btn","button","dataset","lteToggle","closest","EVENT_EXPANDED","EVENT_COLLAPSED","CLASS_NAME_MENU_OPEN","SELECTOR_NAV_ITEM","SELECTOR_TREEVIEW_MENU","Default","animationSpeed","accordion","Treeview","open","openMenuList","parentElement","openMenu","childElement","close","targetItem","targetLink","getAttribute","CLASS_NAME_DIRECT_CHAT_OPEN","DirectChat","chatPane","EVENT_REMOVE","EVENT_MAXIMIZED","EVENT_MINIMIZED","CLASS_NAME_CARD","CLASS_NAME_COLLAPSED","CLASS_NAME_COLLAPSING","CLASS_NAME_EXPANDING","CLASS_NAME_WAS_COLLAPSED","CLASS_NAME_MAXIMIZED","SELECTOR_DATA_REMOVE","SELECTOR_DATA_COLLAPSE","SELECTOR_DATA_MAXIMIZE","SELECTOR_CARD","SELECTOR_CARD_BODY","SELECTOR_CARD_FOOTER","collapseTrigger","removeTrigger","maximizeTrigger","CardWidget","_parent","el","HTMLElement","maximize","width","offsetWidth","transition","htmlTag","minimize","toggleMaximize","SELECTOR_FULLSCREEN_TOGGLE","SELECTOR_MAXIMIZE_ICON","SELECTOR_MINIMIZE_ICON","FullScreen","inFullScreen","iconMaximize","iconMinimize","documentElement","requestFullscreen","outFullscreen","exitFullscreen","toggleFullScreen","fullscreenEnabled","fullscreenElement","undefined"],"sources":["../../src/ts/util/index.ts","../../src/ts/layout.ts","../../src/ts/push-menu.ts","../../src/ts/treeview.ts","../../src/ts/direct-chat.ts","../../src/ts/card-widget.ts","../../src/ts/fullscreen.ts"],"sourcesContent":["const domContentLoadedCallbacks: Array<() => void> = []\n\nconst onDOMContentLoaded = (callback: () => void): void => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!domContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of domContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n domContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\n/* SLIDE UP */\nconst slideUp = (target: HTMLElement, duration = 500) => {\n target.style.transitionProperty = 'height, margin, padding'\n target.style.transitionDuration = `${duration}ms`\n target.style.boxSizing = 'border-box'\n target.style.height = `${target.offsetHeight}px`\n target.style.overflow = 'hidden'\n\n window.setTimeout(() => {\n target.style.height = '0'\n target.style.paddingTop = '0'\n target.style.paddingBottom = '0'\n target.style.marginTop = '0'\n target.style.marginBottom = '0'\n }, 1)\n\n window.setTimeout(() => {\n target.style.display = 'none'\n target.style.removeProperty('height')\n target.style.removeProperty('padding-top')\n target.style.removeProperty('padding-bottom')\n target.style.removeProperty('margin-top')\n target.style.removeProperty('margin-bottom')\n target.style.removeProperty('overflow')\n target.style.removeProperty('transition-duration')\n target.style.removeProperty('transition-property')\n }, duration)\n}\n\n/* SLIDE DOWN */\nconst slideDown = (target: HTMLElement, duration = 500) => {\n target.style.removeProperty('display')\n let { display } = window.getComputedStyle(target)\n\n if (display === 'none') {\n display = 'block'\n }\n\n target.style.display = display\n const height = target.offsetHeight\n target.style.overflow = 'hidden'\n target.style.height = '0'\n target.style.paddingTop = '0'\n target.style.paddingBottom = '0'\n target.style.marginTop = '0'\n target.style.marginBottom = '0'\n\n window.setTimeout(() => {\n target.style.boxSizing = 'border-box'\n target.style.transitionProperty = 'height, margin, padding'\n target.style.transitionDuration = `${duration}ms`\n target.style.height = `${height}px`\n target.style.removeProperty('padding-top')\n target.style.removeProperty('padding-bottom')\n target.style.removeProperty('margin-top')\n target.style.removeProperty('margin-bottom')\n }, 1)\n\n window.setTimeout(() => {\n target.style.removeProperty('height')\n target.style.removeProperty('overflow')\n target.style.removeProperty('transition-duration')\n target.style.removeProperty('transition-property')\n }, duration)\n}\n\n/* TOGGLE */\nconst slideToggle = (target: HTMLElement, duration = 500) => {\n if (window.getComputedStyle(target).display === 'none') {\n slideDown(target, duration)\n return\n }\n\n slideUp(target, duration)\n}\n\nexport {\n onDOMContentLoaded,\n slideUp,\n slideDown,\n slideToggle\n}\n","/**\n * --------------------------------------------\n * @file AdminLTE layout.ts\n * @description Layout for AdminLTE.\n * @license MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded\n} from './util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst CLASS_NAME_HOLD_TRANSITIONS = 'hold-transition'\nconst CLASS_NAME_APP_LOADED = 'app-loaded'\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Layout {\n _element: HTMLElement\n\n constructor(element: HTMLElement) {\n this._element = element\n }\n\n holdTransition(): void {\n let resizeTimer: ReturnType<typeof setTimeout>\n window.addEventListener('resize', () => {\n document.body.classList.add(CLASS_NAME_HOLD_TRANSITIONS)\n clearTimeout(resizeTimer)\n resizeTimer = setTimeout(() => {\n document.body.classList.remove(CLASS_NAME_HOLD_TRANSITIONS)\n }, 400)\n })\n }\n}\n\nonDOMContentLoaded(() => {\n const data = new Layout(document.body)\n data.holdTransition()\n setTimeout(() => {\n document.body.classList.add(CLASS_NAME_APP_LOADED)\n }, 400)\n})\n\nexport default Layout\n","/**\n * --------------------------------------------\n * @file AdminLTE push-menu.ts\n * @description Push menu for AdminLTE.\n * @license MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded\n} from './util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst DATA_KEY = 'lte.push-menu'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_OPEN = `open${EVENT_KEY}`\nconst EVENT_COLLAPSE = `collapse${EVENT_KEY}`\n\nconst CLASS_NAME_SIDEBAR_MINI = 'sidebar-mini'\nconst CLASS_NAME_SIDEBAR_COLLAPSE = 'sidebar-collapse'\nconst CLASS_NAME_SIDEBAR_OPEN = 'sidebar-open'\nconst CLASS_NAME_SIDEBAR_EXPAND = 'sidebar-expand'\nconst CLASS_NAME_SIDEBAR_OVERLAY = 'sidebar-overlay'\nconst CLASS_NAME_MENU_OPEN = 'menu-open'\n\nconst SELECTOR_APP_SIDEBAR = '.app-sidebar'\nconst SELECTOR_SIDEBAR_MENU = '.sidebar-menu'\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_TREEVIEW = '.nav-treeview'\nconst SELECTOR_APP_WRAPPER = '.app-wrapper'\nconst SELECTOR_SIDEBAR_EXPAND = `[class*=\"${CLASS_NAME_SIDEBAR_EXPAND}\"]`\nconst SELECTOR_SIDEBAR_TOGGLE = '[data-lte-toggle=\"sidebar\"]'\n\ntype Config = {\n sidebarBreakpoint: number;\n}\n\nconst Defaults = {\n sidebarBreakpoint: 992\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass PushMenu {\n _element: HTMLElement\n _config: Config\n\n constructor(element: HTMLElement, config: Config) {\n this._element = element\n this._config = { ...Defaults, ...config }\n }\n\n // TODO\n menusClose() {\n const navTreeview = document.querySelectorAll<HTMLElement>(SELECTOR_NAV_TREEVIEW)\n\n navTreeview.forEach(navTree => {\n navTree.style.removeProperty('display')\n navTree.style.removeProperty('height')\n })\n\n const navSidebar = document.querySelector(SELECTOR_SIDEBAR_MENU)\n const navItem = navSidebar?.querySelectorAll(SELECTOR_NAV_ITEM)\n\n if (navItem) {\n navItem.forEach(navI => {\n navI.classList.remove(CLASS_NAME_MENU_OPEN)\n })\n }\n }\n\n expand() {\n const event = new Event(EVENT_OPEN)\n\n document.body.classList.remove(CLASS_NAME_SIDEBAR_COLLAPSE)\n document.body.classList.add(CLASS_NAME_SIDEBAR_OPEN)\n\n this._element.dispatchEvent(event)\n }\n\n collapse() {\n const event = new Event(EVENT_COLLAPSE)\n\n document.body.classList.remove(CLASS_NAME_SIDEBAR_OPEN)\n document.body.classList.add(CLASS_NAME_SIDEBAR_COLLAPSE)\n\n this._element.dispatchEvent(event)\n }\n\n addSidebarBreakPoint() {\n const sidebarExpandList = document.querySelector(SELECTOR_SIDEBAR_EXPAND)?.classList ?? []\n const sidebarExpand = Array.from(sidebarExpandList).find(className => className.startsWith(CLASS_NAME_SIDEBAR_EXPAND)) ?? ''\n const sidebar = document.getElementsByClassName(sidebarExpand)[0]\n const sidebarContent = window.getComputedStyle(sidebar, '::before').getPropertyValue('content')\n this._config = { ...this._config, sidebarBreakpoint: Number(sidebarContent.replace(/[^\\d.-]/g, '')) }\n\n if (window.innerWidth <= this._config.sidebarBreakpoint) {\n this.collapse()\n } else {\n if (!document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI)) {\n this.expand()\n }\n\n if (document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI) && document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) {\n this.collapse()\n }\n }\n }\n\n toggle() {\n if (document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) {\n this.expand()\n } else {\n this.collapse()\n }\n }\n\n init() {\n this.addSidebarBreakPoint()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nonDOMContentLoaded(() => {\n const sidebar = document?.querySelector(SELECTOR_APP_SIDEBAR) as HTMLElement | undefined\n\n if (sidebar) {\n const data = new PushMenu(sidebar, Defaults)\n data.init()\n\n window.addEventListener('resize', () => {\n data.init()\n })\n }\n\n const sidebarOverlay = document.createElement('div')\n sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY\n document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay)\n\n sidebarOverlay.addEventListener('touchstart', event => {\n event.preventDefault()\n const target = event.currentTarget as HTMLElement\n const data = new PushMenu(target, Defaults)\n data.collapse()\n }, { passive: true })\n sidebarOverlay.addEventListener('click', event => {\n event.preventDefault()\n const target = event.currentTarget as HTMLElement\n const data = new PushMenu(target, Defaults)\n data.collapse()\n })\n\n const fullBtn = document.querySelectorAll(SELECTOR_SIDEBAR_TOGGLE)\n\n fullBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n\n let button = event.currentTarget as HTMLElement | undefined\n\n if (button?.dataset.lteToggle !== 'sidebar') {\n button = button?.closest(SELECTOR_SIDEBAR_TOGGLE) as HTMLElement | undefined\n }\n\n if (button) {\n event?.preventDefault()\n const data = new PushMenu(button, Defaults)\n data.toggle()\n }\n })\n })\n})\n\nexport default PushMenu\n","/**\n * --------------------------------------------\n * @file AdminLTE treeview.ts\n * @description Treeview plugin for AdminLTE.\n * @license MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded,\n slideDown,\n slideUp\n} from './util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n// const NAME = 'Treeview'\nconst DATA_KEY = 'lte.treeview'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\n// const EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst CLASS_NAME_MENU_OPEN = 'menu-open'\nconst SELECTOR_NAV_ITEM = '.nav-item'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_TREEVIEW_MENU = '.nav-treeview'\nconst SELECTOR_DATA_TOGGLE = '[data-lte-toggle=\"treeview\"]'\n\nconst Default = {\n animationSpeed: 300,\n accordion: true\n}\n\ntype Config = {\n animationSpeed: number;\n accordion: boolean;\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Treeview {\n _element: HTMLElement\n _config: Config\n\n constructor(element: HTMLElement, config: Config) {\n this._element = element\n this._config = { ...Default, ...config }\n }\n\n open(): void {\n const event = new Event(EVENT_EXPANDED)\n\n if (this._config.accordion) {\n const openMenuList = this._element.parentElement?.querySelectorAll(`${SELECTOR_NAV_ITEM}.${CLASS_NAME_MENU_OPEN}`)\n\n openMenuList?.forEach(openMenu => {\n if (openMenu !== this._element.parentElement) {\n openMenu.classList.remove(CLASS_NAME_MENU_OPEN)\n const childElement = openMenu?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined\n if (childElement) {\n slideUp(childElement, this._config.animationSpeed)\n }\n }\n })\n }\n\n this._element.classList.add(CLASS_NAME_MENU_OPEN)\n\n const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined\n if (childElement) {\n slideDown(childElement, this._config.animationSpeed)\n }\n\n this._element.dispatchEvent(event)\n }\n\n close(): void {\n const event = new Event(EVENT_COLLAPSED)\n\n this._element.classList.remove(CLASS_NAME_MENU_OPEN)\n\n const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined\n if (childElement) {\n slideUp(childElement, this._config.animationSpeed)\n }\n\n this._element.dispatchEvent(event)\n }\n\n toggle(): void {\n if (this._element.classList.contains(CLASS_NAME_MENU_OPEN)) {\n this.close()\n } else {\n this.open()\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nonDOMContentLoaded(() => {\n const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE)\n\n button.forEach(btn => {\n btn.addEventListener('click', event => {\n const target = event.target as HTMLElement\n const targetItem = target.closest(SELECTOR_NAV_ITEM) as HTMLElement | undefined\n const targetLink = target.closest(SELECTOR_NAV_LINK) as HTMLAnchorElement | undefined\n\n if (target?.getAttribute('href') === '#' || targetLink?.getAttribute('href') === '#') {\n event.preventDefault()\n }\n\n if (targetItem) {\n const data = new Treeview(targetItem, Default)\n data.toggle()\n }\n })\n })\n})\n\nexport default Treeview\n","/**\n * --------------------------------------------\n * @file AdminLTE direct-chat.ts\n * @description Direct chat for AdminLTE.\n * @license MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded\n} from './util/index'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst DATA_KEY = 'lte.direct-chat'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-lte-toggle=\"chat-pane\"]'\nconst SELECTOR_DIRECT_CHAT = '.direct-chat'\n\nconst CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass DirectChat {\n _element: HTMLElement\n constructor(element: HTMLElement) {\n this._element = element\n }\n\n toggle(): void {\n if (this._element.classList.contains(CLASS_NAME_DIRECT_CHAT_OPEN)) {\n const event = new Event(EVENT_COLLAPSED)\n\n this._element.classList.remove(CLASS_NAME_DIRECT_CHAT_OPEN)\n\n this._element.dispatchEvent(event)\n } else {\n const event = new Event(EVENT_EXPANDED)\n\n this._element.classList.add(CLASS_NAME_DIRECT_CHAT_OPEN)\n\n this._element.dispatchEvent(event)\n }\n }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n\nonDOMContentLoaded(() => {\n const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE)\n\n button.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n const target = event.target as HTMLElement\n const chatPane = target.closest(SELECTOR_DIRECT_CHAT) as HTMLElement | undefined\n\n if (chatPane) {\n const data = new DirectChat(chatPane)\n data.toggle()\n }\n })\n })\n})\n\nexport default DirectChat\n","/**\n * --------------------------------------------\n * @file AdminLTE card-widget.ts\n * @description Card widget for AdminLTE.\n * @license MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded,\n slideUp,\n slideDown\n} from './util/index'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst DATA_KEY = 'lte.card-widget'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_REMOVE = `remove${EVENT_KEY}`\nconst EVENT_MAXIMIZED = `maximized${EVENT_KEY}`\nconst EVENT_MINIMIZED = `minimized${EVENT_KEY}`\n\nconst CLASS_NAME_CARD = 'card'\nconst CLASS_NAME_COLLAPSED = 'collapsed-card'\nconst CLASS_NAME_COLLAPSING = 'collapsing-card'\nconst CLASS_NAME_EXPANDING = 'expanding-card'\nconst CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'\nconst CLASS_NAME_MAXIMIZED = 'maximized-card'\n\nconst SELECTOR_DATA_REMOVE = '[data-lte-toggle=\"card-remove\"]'\nconst SELECTOR_DATA_COLLAPSE = '[data-lte-toggle=\"card-collapse\"]'\nconst SELECTOR_DATA_MAXIMIZE = '[data-lte-toggle=\"card-maximize\"]'\nconst SELECTOR_CARD = `.${CLASS_NAME_CARD}`\nconst SELECTOR_CARD_BODY = '.card-body'\nconst SELECTOR_CARD_FOOTER = '.card-footer'\n\ntype Config = {\n animationSpeed: number;\n collapseTrigger: string;\n removeTrigger: string;\n maximizeTrigger: string;\n}\n\nconst Default: Config = {\n animationSpeed: 500,\n collapseTrigger: SELECTOR_DATA_COLLAPSE,\n removeTrigger: SELECTOR_DATA_REMOVE,\n maximizeTrigger: SELECTOR_DATA_MAXIMIZE\n}\n\nclass CardWidget {\n _element: HTMLElement\n _parent: HTMLElement | undefined\n _clone: HTMLElement | undefined\n _config: Config\n\n constructor(element: HTMLElement, config: Config) {\n this._element = element\n this._parent = element.closest(SELECTOR_CARD) as HTMLElement | undefined\n\n if (element.classList.contains(CLASS_NAME_CARD)) {\n this._parent = element\n }\n\n this._config = { ...Default, ...config }\n }\n\n collapse() {\n const event = new Event(EVENT_COLLAPSED)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_COLLAPSING)\n\n const elm = this._parent?.querySelectorAll(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n\n elm.forEach(el => {\n if (el instanceof HTMLElement) {\n slideUp(el, this._config.animationSpeed)\n }\n })\n\n setTimeout(() => {\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_COLLAPSED)\n this._parent.classList.remove(CLASS_NAME_COLLAPSING)\n }\n }, this._config.animationSpeed)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n expand() {\n const event = new Event(EVENT_EXPANDED)\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_EXPANDING)\n\n const elm = this._parent?.querySelectorAll(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n\n elm.forEach(el => {\n if (el instanceof HTMLElement) {\n slideDown(el, this._config.animationSpeed)\n }\n })\n\n setTimeout(() => {\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_COLLAPSED)\n this._parent.classList.remove(CLASS_NAME_EXPANDING)\n }\n }, this._config.animationSpeed)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n remove() {\n const event = new Event(EVENT_REMOVE)\n\n if (this._parent) {\n slideUp(this._parent, this._config.animationSpeed)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n toggle() {\n if (this._parent?.classList.contains(CLASS_NAME_COLLAPSED)) {\n this.expand()\n return\n }\n\n this.collapse()\n }\n\n maximize() {\n const event = new Event(EVENT_MAXIMIZED)\n\n if (this._parent) {\n this._parent.style.height = `${this._parent.offsetHeight}px`\n this._parent.style.width = `${this._parent.offsetWidth}px`\n this._parent.style.transition = 'all .15s'\n\n setTimeout(() => {\n const htmlTag = document.querySelector('html')\n\n if (htmlTag) {\n htmlTag.classList.add(CLASS_NAME_MAXIMIZED)\n }\n\n if (this._parent) {\n this._parent.classList.add(CLASS_NAME_MAXIMIZED)\n\n if (this._parent.classList.contains(CLASS_NAME_COLLAPSED)) {\n this._parent.classList.add(CLASS_NAME_WAS_COLLAPSED)\n }\n }\n }, 150)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n minimize() {\n const event = new Event(EVENT_MINIMIZED)\n\n if (this._parent) {\n this._parent.style.height = 'auto'\n this._parent.style.width = 'auto'\n this._parent.style.transition = 'all .15s'\n\n setTimeout(() => {\n const htmlTag = document.querySelector('html')\n\n if (htmlTag) {\n htmlTag.classList.remove(CLASS_NAME_MAXIMIZED)\n }\n\n if (this._parent) {\n this._parent.classList.remove(CLASS_NAME_MAXIMIZED)\n\n if (this._parent?.classList.contains(CLASS_NAME_WAS_COLLAPSED)) {\n this._parent.classList.remove(CLASS_NAME_WAS_COLLAPSED)\n }\n }\n }, 10)\n }\n\n this._element?.dispatchEvent(event)\n }\n\n toggleMaximize() {\n if (this._parent?.classList.contains(CLASS_NAME_MAXIMIZED)) {\n this.minimize()\n return\n }\n\n this.maximize()\n }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n\nonDOMContentLoaded(() => {\n const collapseBtn = document.querySelectorAll(SELECTOR_DATA_COLLAPSE)\n\n collapseBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n const target = event.target as HTMLElement\n const data = new CardWidget(target, Default)\n data.toggle()\n })\n })\n\n const removeBtn = document.querySelectorAll(SELECTOR_DATA_REMOVE)\n\n removeBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n const target = event.target as HTMLElement\n const data = new CardWidget(target, Default)\n data.remove()\n })\n })\n\n const maxBtn = document.querySelectorAll(SELECTOR_DATA_MAXIMIZE)\n\n maxBtn.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n const target = event.target as HTMLElement\n const data = new CardWidget(target, Default)\n data.toggleMaximize()\n })\n })\n})\n\nexport default CardWidget\n","/**\n * --------------------------------------------\n * @file AdminLTE fullscreen.ts\n * @description Fullscreen plugin for AdminLTE.\n * @license MIT\n * --------------------------------------------\n */\n\nimport {\n onDOMContentLoaded\n} from './util/index'\n\n/**\n * Constants\n * ============================================================================\n */\nconst DATA_KEY = 'lte.fullscreen'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_MAXIMIZED = `maximized${EVENT_KEY}`\nconst EVENT_MINIMIZED = `minimized${EVENT_KEY}`\n\nconst SELECTOR_FULLSCREEN_TOGGLE = '[data-lte-toggle=\"fullscreen\"]'\nconst SELECTOR_MAXIMIZE_ICON = '[data-lte-icon=\"maximize\"]'\nconst SELECTOR_MINIMIZE_ICON = '[data-lte-icon=\"minimize\"]'\n\n/**\n * Class Definition.\n * ============================================================================\n */\nclass FullScreen {\n _element: HTMLElement\n _config: undefined\n\n constructor(element: HTMLElement, config?: undefined) {\n this._element = element\n this._config = config\n }\n\n inFullScreen(): void {\n const event = new Event(EVENT_MAXIMIZED)\n\n const iconMaximize = document.querySelector<HTMLElement>(SELECTOR_MAXIMIZE_ICON)\n const iconMinimize = document.querySelector<HTMLElement>(SELECTOR_MINIMIZE_ICON)\n\n void document.documentElement.requestFullscreen()\n\n if (iconMaximize) {\n iconMaximize.style.display = 'none'\n }\n\n if (iconMinimize) {\n iconMinimize.style.display = 'block'\n }\n\n this._element.dispatchEvent(event)\n }\n\n outFullscreen(): void {\n const event = new Event(EVENT_MINIMIZED)\n\n const iconMaximize = document.querySelector<HTMLElement>(SELECTOR_MAXIMIZE_ICON)\n const iconMinimize = document.querySelector<HTMLElement>(SELECTOR_MINIMIZE_ICON)\n\n void document.exitFullscreen()\n\n if (iconMaximize) {\n iconMaximize.style.display = 'block'\n }\n\n if (iconMinimize) {\n iconMinimize.style.display = 'none'\n }\n\n this._element.dispatchEvent(event)\n }\n\n toggleFullScreen(): void {\n if (document.fullscreenEnabled) {\n if (document.fullscreenElement) {\n this.outFullscreen()\n } else {\n this.inFullScreen()\n }\n }\n }\n}\n\n/**\n * Data Api implementation\n * ============================================================================\n */\nonDOMContentLoaded(() => {\n const buttons = document.querySelectorAll(SELECTOR_FULLSCREEN_TOGGLE)\n\n buttons.forEach(btn => {\n btn.addEventListener('click', event => {\n event.preventDefault()\n\n const target = event.target as HTMLElement\n const button = target.closest(SELECTOR_FULLSCREEN_TOGGLE) as HTMLElement | undefined\n\n if (button) {\n const data = new FullScreen(button, undefined)\n data.toggleFullScreen()\n }\n })\n })\n})\n\nexport default FullScreen\n"],"mappings":"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","ignoreList":[]}