admin-lte 4.0.0-alpha1 → 4.0.0-alpha3

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 (200) hide show
  1. package/.bundlewatch.config.json +8 -8
  2. package/.cache/.eslintcache +1 -0
  3. package/.cache/.stylelintcache +1 -0
  4. package/.eslintignore +1 -0
  5. package/.eslintrc.json +16 -0
  6. package/.gitpod.yml +1 -1
  7. package/.idea/AdminLTE.iml +4 -0
  8. package/.idea/codeStyles/Project.xml +24 -0
  9. package/.idea/dbnavigator.xml +421 -0
  10. package/.idea/git_toolbox_prj.xml +15 -0
  11. package/.idea/jsLibraryMappings.xml +6 -0
  12. package/.idea/jsLinters/eslint.xml +6 -0
  13. package/.idea/vcs.xml +6 -0
  14. package/.stylelintrc.json +47 -0
  15. package/LICENSE +1 -1
  16. package/README.md +6 -7
  17. package/dist/assets/img/AdminLTEFullLogo.png +0 -0
  18. package/dist/css/adminlte.css +2716 -2710
  19. package/dist/css/adminlte.css.map +1 -1
  20. package/dist/css/adminlte.min.css +2 -2
  21. package/dist/css/adminlte.min.css.map +1 -1
  22. package/dist/css/{rtl/adminlte.rtl.css → adminlte.rtl.css} +2715 -2710
  23. package/dist/css/adminlte.rtl.css.map +1 -0
  24. package/dist/css/adminlte.rtl.min.css +7 -0
  25. package/dist/css/adminlte.rtl.min.css.map +1 -0
  26. package/dist/js/adminlte.js +204 -233
  27. package/dist/js/adminlte.js.map +1 -1
  28. package/dist/js/adminlte.min.js +6 -1
  29. package/dist/js/adminlte.min.js.map +1 -1
  30. package/dist/pages/UI/timeline.html +869 -0
  31. package/dist/pages/docs/browser-support.html +755 -0
  32. package/dist/pages/docs/color-mode.html +1067 -0
  33. package/dist/pages/docs/components/main-header.html +1137 -0
  34. package/dist/pages/docs/components/main-sidebar.html +858 -0
  35. package/dist/pages/docs/faq.html +743 -0
  36. package/dist/pages/docs/how-to-contribute.html +783 -0
  37. package/dist/pages/docs/introduction.html +767 -0
  38. package/dist/pages/docs/javascript/treeview.html +762 -0
  39. package/dist/pages/docs/layout.html +788 -0
  40. package/dist/pages/docs/license.html +746 -0
  41. package/dist/pages/examples/lockscreen.html +107 -0
  42. package/dist/pages/examples/login-v2.html +148 -0
  43. package/dist/pages/examples/login.html +128 -196
  44. package/dist/pages/examples/register-v2.html +155 -0
  45. package/dist/pages/examples/register.html +131 -199
  46. package/dist/pages/forms/general.html +1065 -652
  47. package/dist/pages/index.html +1320 -0
  48. package/dist/pages/index2.html +1776 -0
  49. package/dist/pages/index3.html +1111 -0
  50. package/dist/pages/layout/collapsed-sidebar.html +766 -0
  51. package/dist/pages/layout/fixed-complete.html +867 -0
  52. package/dist/pages/layout/fixed-sidebar.html +749 -654
  53. package/dist/pages/layout/layout-rtl.html +766 -0
  54. package/dist/pages/layout/logo-switch.html +433 -0
  55. package/dist/pages/layout/sidebar-mini.html +766 -0
  56. package/dist/pages/layout/unfixed-sidebar.html +747 -654
  57. package/dist/pages/tables/simple.html +1049 -946
  58. package/dist/pages/widgets/cards.html +974 -713
  59. package/dist/pages/widgets/info-box.html +1062 -966
  60. package/dist/pages/widgets/small-box.html +792 -694
  61. package/index.html +6 -15
  62. package/package.json +59 -39
  63. package/src/assets/img/AdminLTEFullLogo.png +0 -0
  64. package/src/config/assets.config.mjs +8 -0
  65. package/src/config/astro.config.mjs +19 -0
  66. package/src/config/postcss.config.mjs +15 -0
  67. package/src/config/rollup.config.js +20 -0
  68. package/src/html/.eslintrc.json +24 -0
  69. package/src/html/.prettierrc.js +11 -0
  70. package/src/html/.tsconfig.json +4 -0
  71. package/src/html/components/_head.astro +47 -0
  72. package/src/html/components/_scripts.astro +51 -0
  73. package/src/html/components/dashboard/_footer.astro +18 -0
  74. package/src/html/components/dashboard/_sidenav.astro +553 -0
  75. package/src/html/components/dashboard/_topbar.astro +213 -0
  76. package/src/html/components/docs/browser-support.mdx +23 -0
  77. package/src/html/components/docs/color-mode.mdx +169 -0
  78. package/src/{partials/dashboard/_topbar.html → html/components/docs/components/main-header.mdx} +67 -67
  79. package/src/html/components/docs/components/main-sidebar.mdx +129 -0
  80. package/src/html/components/docs/faq.mdx +11 -0
  81. package/src/html/components/docs/how-to-contribute.mdx +34 -0
  82. package/src/html/components/docs/introduction.mdx +60 -0
  83. package/src/html/components/docs/license.mdx +9 -0
  84. package/src/html/components/javascript/treeview.mdx +39 -0
  85. package/src/html/env.d.ts +1 -0
  86. package/src/html/pages/UI/timeline.astro +221 -0
  87. package/src/html/pages/docs/browser-support.astro +71 -0
  88. package/src/html/pages/docs/color-mode.astro +271 -0
  89. package/src/html/pages/docs/components/main-header.astro +319 -0
  90. package/src/html/pages/docs/components/main-sidebar.astro +71 -0
  91. package/src/html/pages/docs/faq.astro +71 -0
  92. package/src/html/pages/docs/how-to-contribute.astro +71 -0
  93. package/src/html/pages/docs/introduction.astro +71 -0
  94. package/src/html/pages/docs/javascript/treeview.astro +71 -0
  95. package/src/html/pages/docs/layout.astro +120 -0
  96. package/src/html/pages/docs/license.astro +71 -0
  97. package/src/html/pages/examples/lockscreen.astro +63 -0
  98. package/src/html/pages/examples/login-v2.astro +109 -0
  99. package/src/{pages/examples/login.html → html/pages/examples/login.astro} +40 -22
  100. package/src/html/pages/examples/register-v2.astro +116 -0
  101. package/src/{pages/examples/register.html → html/pages/examples/register.astro} +42 -24
  102. package/src/html/pages/forms/general.astro +624 -0
  103. package/src/html/pages/index.astro +790 -0
  104. package/src/html/pages/index2.astro +1345 -0
  105. package/src/html/pages/index3.astro +513 -0
  106. package/src/html/pages/layout/collapsed-sidebar.astro +110 -0
  107. package/src/html/pages/layout/fixed-complete.astro +209 -0
  108. package/src/html/pages/layout/fixed-sidebar.astro +109 -0
  109. package/src/html/pages/layout/layout-rtl.astro +109 -0
  110. package/src/html/pages/layout/logo-switch.astro +212 -0
  111. package/src/html/pages/layout/sidebar-mini.astro +108 -0
  112. package/src/html/pages/layout/unfixed-sidebar.astro +107 -0
  113. package/src/html/pages/tables/simple.astro +472 -0
  114. package/src/html/pages/widgets/cards.astro +373 -0
  115. package/src/{pages/widgets/info-box.html → html/pages/widgets/info-box.astro} +110 -60
  116. package/src/html/pages/widgets/small-box.astro +182 -0
  117. package/src/scss/_app-content.scss +52 -0
  118. package/src/scss/_app-footer.scss +15 -0
  119. package/src/scss/_app-header.scss +26 -0
  120. package/src/scss/_app-main.scss +17 -0
  121. package/src/scss/_app-sidebar.scss +603 -0
  122. package/src/scss/{_wrapper.scss → _app-wrapper.scss} +8 -4
  123. package/src/scss/_bootstrap-variables.scss +42 -27
  124. package/src/scss/_callouts.scss +34 -0
  125. package/src/scss/_cards.scss +54 -224
  126. package/src/scss/_compact-mode.scss +79 -0
  127. package/src/scss/_direct-chat.scss +15 -9
  128. package/src/scss/_docs.scss +4 -0
  129. package/src/scss/_dropdown.scss +7 -5
  130. package/src/scss/_info-box.scss +2 -6
  131. package/src/scss/_miscellaneous.scss +0 -455
  132. package/src/scss/_mixins.scss +0 -6
  133. package/src/scss/_root.scss +2 -58
  134. package/src/scss/_small-box.scss +15 -41
  135. package/src/scss/_table.scss +0 -50
  136. package/src/scss/_timeline.scss +120 -0
  137. package/src/scss/_variables-dark.scss +15 -8
  138. package/src/scss/_variables.scss +48 -136
  139. package/src/scss/adminlte.scss +1 -1
  140. package/src/scss/mixins/_animations.scss +0 -1
  141. package/src/scss/mixins/_scrollbar.scss +2 -2
  142. package/src/scss/pages/_lockscreen.scss +74 -0
  143. package/src/scss/pages/_login_and_register.scss +1 -5
  144. package/src/scss/parts/_core.scss +9 -15
  145. package/src/scss/parts/_extra-components.scss +1 -2
  146. package/src/scss/parts/_pages.scss +1 -0
  147. package/src/ts/adminlte.ts +0 -2
  148. package/src/ts/card-widget.ts +57 -66
  149. package/src/ts/direct-chat.ts +35 -10
  150. package/src/ts/layout.ts +8 -6
  151. package/src/ts/push-menu.ts +90 -158
  152. package/src/ts/treeview.ts +30 -30
  153. package/src/ts/util/index.ts +14 -12
  154. package/src/utils/index.js +28 -0
  155. package/tsconfig.json +11 -3
  156. package/.stylelintrc +0 -40
  157. package/CHECKLIST.md +0 -0
  158. package/dist/css/rtl/adminlte.rtl.css.map +0 -1
  159. package/dist/css/rtl/adminlte.rtl.min.css +0 -7
  160. package/dist/css/rtl/adminlte.rtl.min.css.map +0 -1
  161. package/dist/index.html +0 -1065
  162. package/dist/index2.html +0 -1629
  163. package/dist/index3.html +0 -1015
  164. package/gulpfile.js +0 -315
  165. package/src/index.html +0 -476
  166. package/src/index2.html +0 -968
  167. package/src/index3.html +0 -430
  168. package/src/pages/forms/general.html +0 -97
  169. package/src/pages/layout/fixed-sidebar.html +0 -87
  170. package/src/pages/layout/unfixed-sidebar.html +0 -87
  171. package/src/pages/tables/simple.html +0 -336
  172. package/src/pages/widgets/cards.html +0 -143
  173. package/src/pages/widgets/small-box.html +0 -124
  174. package/src/partials/_head.html +0 -31
  175. package/src/partials/_scripts.html +0 -95
  176. package/src/partials/dashboard/_footer.html +0 -9
  177. package/src/partials/dashboard/_sidenav.html +0 -244
  178. package/src/scss/_brand-container.scss +0 -72
  179. package/src/scss/_content-header.scss +0 -9
  180. package/src/scss/_content-wrapper.scss +0 -6
  181. package/src/scss/_content.scss +0 -3
  182. package/src/scss/_layout-fixed.scss +0 -43
  183. package/src/scss/_layout-mobile.scss +0 -22
  184. package/src/scss/_main-footer.scss +0 -28
  185. package/src/scss/_main-header.scss +0 -40
  186. package/src/scss/_main-sidebar.scss +0 -63
  187. package/src/scss/_nav-sidebar.scss +0 -66
  188. package/src/scss/_products.scss +0 -55
  189. package/src/scss/_sidebar-close.scss +0 -6
  190. package/src/scss/_sidebar-collapse.scss +0 -120
  191. package/src/scss/_sidebar-horizontal.scss +0 -67
  192. package/src/scss/_sidebar.scss +0 -11
  193. package/src/scss/_users-list.scss +0 -45
  194. package/src/scss/mixins/_brand-variant.scss +0 -9
  195. package/src/scss/mixins/_cards.scss +0 -53
  196. package/src/scss/mixins/_direct-chat.scss +0 -17
  197. package/src/scss/mixins/_header-variant.scss +0 -22
  198. package/src/scss/mixins/_nav-treeview-dark.scss +0 -87
  199. package/src/scss/mixins/_nav-treeview-light.scss +0 -89
  200. package/src/scss/mixins/_sidebar-color.scss +0 -9
@@ -1,15 +1,29 @@
1
+ /*!
2
+ * AdminLTE v4.0.0-alpha3 (https://adminlte.io)
3
+ * Copyright 2014-2023 Colorlib <https://colorlib.com>
4
+ * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)
5
+ */
1
6
  (function (global, factory) {
2
7
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
8
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.adminlte = {}));
5
10
  })(this, (function (exports) { 'use strict';
6
11
 
7
- const domReady = (callBack) => {
12
+ const domContentLoadedCallbacks = [];
13
+ const onDOMContentLoaded = (callback) => {
8
14
  if (document.readyState === 'loading') {
9
- document.addEventListener('DOMContentLoaded', callBack);
15
+ // add listener on the first call when the document is in loading state
16
+ if (!domContentLoadedCallbacks.length) {
17
+ document.addEventListener('DOMContentLoaded', () => {
18
+ for (const callback of domContentLoadedCallbacks) {
19
+ callback();
20
+ }
21
+ });
22
+ }
23
+ domContentLoadedCallbacks.push(callback);
10
24
  }
11
25
  else {
12
- callBack();
26
+ callback();
13
27
  }
14
28
  };
15
29
  /* SLIDE UP */
@@ -83,14 +97,14 @@
83
97
  * ------------------------------------------------------------------------
84
98
  */
85
99
  const CLASS_NAME_HOLD_TRANSITIONS = 'hold-transition';
100
+ const CLASS_NAME_APP_LOADED = 'app-loaded';
86
101
  /**
87
102
  * Class Definition
88
103
  * ====================================================
89
104
  */
90
105
  class Layout {
91
- constructor(element, config) {
106
+ constructor(element) {
92
107
  this._element = element;
93
- this._config = config;
94
108
  }
95
109
  holdTransition() {
96
110
  let resizeTimer;
@@ -103,9 +117,12 @@
103
117
  });
104
118
  }
105
119
  }
106
- domReady(() => {
107
- const data = new Layout(document.body, undefined);
120
+ onDOMContentLoaded(() => {
121
+ const data = new Layout(document.body);
108
122
  data.holdTransition();
123
+ setTimeout(() => {
124
+ document.body.classList.add(CLASS_NAME_APP_LOADED);
125
+ }, 400);
109
126
  });
110
127
 
111
128
  /**
@@ -119,27 +136,25 @@
119
136
  * Constants
120
137
  * ------------------------------------------------------------------------
121
138
  */
139
+ const DATA_KEY$3 = 'lte.push-menu';
140
+ const EVENT_KEY$3 = `.${DATA_KEY$3}`;
141
+ const EVENT_OPEN = `open${EVENT_KEY$3}`;
142
+ const EVENT_COLLAPSE = `collapse${EVENT_KEY$3}`;
122
143
  const CLASS_NAME_SIDEBAR_MINI = 'sidebar-mini';
123
- const CLASS_NAME_SIDEBAR_MINI_HAD = 'sidebar-mini-had';
124
- const CLASS_NAME_SIDEBAR_HORIZONTAL = 'sidebar-horizontal';
125
144
  const CLASS_NAME_SIDEBAR_COLLAPSE = 'sidebar-collapse';
126
- const CLASS_NAME_SIDEBAR_CLOSE = 'sidebar-close';
127
145
  const CLASS_NAME_SIDEBAR_OPEN = 'sidebar-open';
128
- const CLASS_NAME_SIDEBAR_OPENING = 'sidebar-is-opening';
129
- const CLASS_NAME_SIDEBAR_COLLAPSING = 'sidebar-is-collapsing';
130
- const CLASS_NAME_SIDEBAR_IS_HOVER = 'sidebar-is-hover';
146
+ const CLASS_NAME_SIDEBAR_EXPAND = 'sidebar-expand';
147
+ const CLASS_NAME_SIDEBAR_OVERLAY = 'sidebar-overlay';
131
148
  const CLASS_NAME_MENU_OPEN$1 = 'menu-open';
132
- const CLASS_NAME_LAYOUT_MOBILE = 'layout-mobile';
133
- const SELECTOR_SIDEBAR = '.sidebar';
134
- const SELECTOR_NAV_SIDEBAR = '.nav-sidebar';
149
+ const SELECTOR_APP_SIDEBAR = '.app-sidebar';
150
+ const SELECTOR_SIDEBAR_MENU = '.sidebar-menu';
135
151
  const SELECTOR_NAV_ITEM$1 = '.nav-item';
136
152
  const SELECTOR_NAV_TREEVIEW = '.nav-treeview';
137
- const SELECTOR_MINI_TOGGLE = '[data-lte-toggle="sidebar-mini"]';
138
- const SELECTOR_FULL_TOGGLE = '[data-lte-toggle="sidebar-full"]';
139
- const SELECTOR_SIDEBAR_SM = `.${CLASS_NAME_LAYOUT_MOBILE}`;
140
- const SELECTOR_CONTENT_WRAPPER = '.content-wrapper';
153
+ const SELECTOR_APP_WRAPPER = '.app-wrapper';
154
+ const SELECTOR_SIDEBAR_EXPAND = `[class*="${CLASS_NAME_SIDEBAR_EXPAND}"]`;
155
+ const SELECTOR_SIDEBAR_TOGGLE = '[data-lte-toggle="sidebar"]';
141
156
  const Defaults = {
142
- onLayouMobile: 992
157
+ sidebarBreakpoint: 992
143
158
  };
144
159
  /**
145
160
  * Class Definition
@@ -148,108 +163,56 @@
148
163
  class PushMenu {
149
164
  constructor(element, config) {
150
165
  this._element = element;
151
- const bodyElement = document.body;
152
- this._bodyClass = bodyElement.classList;
153
- this._config = config;
154
- }
155
- sidebarOpening() {
156
- this._bodyClass.add(CLASS_NAME_SIDEBAR_OPENING);
157
- setTimeout(() => {
158
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_OPENING);
159
- }, 1000);
160
- }
161
- sidebarColllapsing() {
162
- this._bodyClass.add(CLASS_NAME_SIDEBAR_COLLAPSING);
163
- setTimeout(() => {
164
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_COLLAPSING);
165
- }, 1000);
166
+ this._config = Object.assign(Object.assign({}, Defaults), config);
166
167
  }
168
+ // TODO
167
169
  menusClose() {
168
170
  const navTreeview = document.querySelectorAll(SELECTOR_NAV_TREEVIEW);
169
- for (const navTree of navTreeview) {
171
+ navTreeview.forEach(navTree => {
170
172
  navTree.style.removeProperty('display');
171
173
  navTree.style.removeProperty('height');
172
- }
173
- const navSidebar = document.querySelector(SELECTOR_NAV_SIDEBAR);
174
+ });
175
+ const navSidebar = document.querySelector(SELECTOR_SIDEBAR_MENU);
174
176
  const navItem = navSidebar === null || navSidebar === void 0 ? void 0 : navSidebar.querySelectorAll(SELECTOR_NAV_ITEM$1);
175
177
  if (navItem) {
176
- for (const navI of navItem) {
178
+ navItem.forEach(navI => {
177
179
  navI.classList.remove(CLASS_NAME_MENU_OPEN$1);
178
- }
180
+ });
179
181
  }
180
182
  }
181
183
  expand() {
182
- this.sidebarOpening();
183
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_CLOSE);
184
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_COLLAPSE);
185
- this._bodyClass.add(CLASS_NAME_SIDEBAR_OPEN);
184
+ const event = new Event(EVENT_OPEN);
185
+ document.body.classList.remove(CLASS_NAME_SIDEBAR_COLLAPSE);
186
+ document.body.classList.add(CLASS_NAME_SIDEBAR_OPEN);
187
+ this._element.dispatchEvent(event);
186
188
  }
187
189
  collapse() {
188
- this.sidebarColllapsing();
189
- this._bodyClass.add(CLASS_NAME_SIDEBAR_COLLAPSE);
190
- }
191
- close() {
192
- this._bodyClass.add(CLASS_NAME_SIDEBAR_CLOSE);
193
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_OPEN);
194
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_COLLAPSE);
195
- if (this._bodyClass.contains(CLASS_NAME_SIDEBAR_HORIZONTAL)) {
196
- this.menusClose();
197
- }
198
- }
199
- sidebarHover() {
200
- const selSidebar = document.querySelector(SELECTOR_SIDEBAR);
201
- if (selSidebar) {
202
- selSidebar.addEventListener('mouseover', () => {
203
- this._bodyClass.add(CLASS_NAME_SIDEBAR_IS_HOVER);
204
- });
205
- selSidebar.addEventListener('mouseout', () => {
206
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_IS_HOVER);
207
- });
208
- }
209
- }
210
- addSidebaBreakPoint() {
211
- const bodyClass = document.body.classList;
212
- const widthOutput = window.innerWidth;
213
- if (widthOutput < Defaults.onLayouMobile) {
214
- bodyClass.add(CLASS_NAME_LAYOUT_MOBILE);
215
- }
216
- if (widthOutput >= Defaults.onLayouMobile) {
217
- bodyClass.remove(CLASS_NAME_LAYOUT_MOBILE);
218
- this.expand();
219
- }
220
- }
221
- removeOverlaySidebar() {
222
- const bodyClass = document.body.classList;
223
- if (bodyClass.contains(CLASS_NAME_LAYOUT_MOBILE)) {
224
- bodyClass.remove(CLASS_NAME_SIDEBAR_OPEN);
225
- bodyClass.remove(CLASS_NAME_SIDEBAR_COLLAPSE);
226
- bodyClass.add(CLASS_NAME_SIDEBAR_CLOSE);
227
- }
228
- }
229
- closeSidebar() {
230
- const widthOutput = window.innerWidth;
231
- if (widthOutput < Defaults.onLayouMobile) {
232
- document.body.classList.add(CLASS_NAME_SIDEBAR_CLOSE);
233
- }
234
- }
235
- toggleFull() {
236
- if (this._bodyClass.contains(CLASS_NAME_SIDEBAR_CLOSE)) {
237
- this.expand();
190
+ const event = new Event(EVENT_COLLAPSE);
191
+ document.body.classList.remove(CLASS_NAME_SIDEBAR_OPEN);
192
+ document.body.classList.add(CLASS_NAME_SIDEBAR_COLLAPSE);
193
+ this._element.dispatchEvent(event);
194
+ }
195
+ addSidebarBreakPoint() {
196
+ var _a, _b, _c;
197
+ const sidebarExpandList = (_b = (_a = document.querySelector(SELECTOR_SIDEBAR_EXPAND)) === null || _a === void 0 ? void 0 : _a.classList) !== null && _b !== void 0 ? _b : [];
198
+ const sidebarExpand = (_c = Array.from(sidebarExpandList).find(className => className.startsWith(CLASS_NAME_SIDEBAR_EXPAND))) !== null && _c !== void 0 ? _c : '';
199
+ const sidebar = document.getElementsByClassName(sidebarExpand)[0];
200
+ const sidebarContent = window.getComputedStyle(sidebar, '::before').getPropertyValue('content');
201
+ this._config = Object.assign(Object.assign({}, this._config), { sidebarBreakpoint: Number(sidebarContent.replace(/[^\d.-]/g, '')) });
202
+ if (window.innerWidth <= this._config.sidebarBreakpoint) {
203
+ this.collapse();
238
204
  }
239
205
  else {
240
- this.close();
241
- }
242
- if (this._bodyClass.contains(CLASS_NAME_SIDEBAR_MINI)) {
243
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_MINI);
244
- this._bodyClass.add(CLASS_NAME_SIDEBAR_MINI_HAD);
206
+ if (!document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI)) {
207
+ this.expand();
208
+ }
209
+ if (document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI) && document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) {
210
+ this.collapse();
211
+ }
245
212
  }
246
213
  }
247
- toggleMini() {
248
- if (this._bodyClass.contains(CLASS_NAME_SIDEBAR_MINI_HAD)) {
249
- this._bodyClass.remove(CLASS_NAME_SIDEBAR_MINI_HAD);
250
- this._bodyClass.add(CLASS_NAME_SIDEBAR_MINI);
251
- }
252
- if (this._bodyClass.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) {
214
+ toggle() {
215
+ if (document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) {
253
216
  this.expand();
254
217
  }
255
218
  else {
@@ -257,15 +220,7 @@
257
220
  }
258
221
  }
259
222
  init() {
260
- this.addSidebaBreakPoint();
261
- this.sidebarHover();
262
- const selSidebarSm = document.querySelector(SELECTOR_SIDEBAR_SM);
263
- const selContentWrapper = selSidebarSm === null || selSidebarSm === void 0 ? void 0 : selSidebarSm.querySelector(SELECTOR_CONTENT_WRAPPER);
264
- if (selContentWrapper) {
265
- selContentWrapper.addEventListener('touchstart', this.removeOverlaySidebar);
266
- selContentWrapper.addEventListener('click', this.removeOverlaySidebar);
267
- }
268
- this.closeSidebar();
223
+ this.addSidebarBreakPoint();
269
224
  }
270
225
  }
271
226
  /**
@@ -273,40 +228,46 @@
273
228
  * Data Api implementation
274
229
  * ------------------------------------------------------------------------
275
230
  */
276
- domReady(() => {
277
- const data = new PushMenu(undefined, undefined);
278
- data.init();
279
- window.addEventListener('resize', () => {
231
+ onDOMContentLoaded(() => {
232
+ var _a;
233
+ const sidebar = document === null || document === void 0 ? void 0 : document.querySelector(SELECTOR_APP_SIDEBAR);
234
+ if (sidebar) {
235
+ const data = new PushMenu(sidebar, Defaults);
280
236
  data.init();
281
- });
282
- const fullBtn = document.querySelectorAll(SELECTOR_FULL_TOGGLE);
283
- for (const btn of fullBtn) {
284
- btn.addEventListener('click', event => {
285
- event.preventDefault();
286
- let button = event.currentTarget;
287
- if ((button === null || button === void 0 ? void 0 : button.dataset.lteToggle) !== 'sidebar-full') {
288
- button = button === null || button === void 0 ? void 0 : button.closest(SELECTOR_FULL_TOGGLE);
289
- }
290
- if (button) {
291
- const data = new PushMenu(button, undefined);
292
- data.toggleFull();
293
- }
237
+ window.addEventListener('resize', () => {
238
+ data.init();
294
239
  });
295
240
  }
296
- const miniBtn = document.querySelectorAll(SELECTOR_MINI_TOGGLE);
297
- for (const btn of miniBtn) {
241
+ const sidebarOverlay = document.createElement('div');
242
+ sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY;
243
+ (_a = document.querySelector(SELECTOR_APP_WRAPPER)) === null || _a === void 0 ? void 0 : _a.append(sidebarOverlay);
244
+ sidebarOverlay.addEventListener('touchstart', event => {
245
+ event.preventDefault();
246
+ const target = event.currentTarget;
247
+ const data = new PushMenu(target, Defaults);
248
+ data.collapse();
249
+ });
250
+ sidebarOverlay.addEventListener('click', event => {
251
+ event.preventDefault();
252
+ const target = event.currentTarget;
253
+ const data = new PushMenu(target, Defaults);
254
+ data.collapse();
255
+ });
256
+ const fullBtn = document.querySelectorAll(SELECTOR_SIDEBAR_TOGGLE);
257
+ fullBtn.forEach(btn => {
298
258
  btn.addEventListener('click', event => {
299
259
  event.preventDefault();
300
260
  let button = event.currentTarget;
301
- if ((button === null || button === void 0 ? void 0 : button.dataset.lteToggle) !== 'sidebar-mini') {
302
- button = button === null || button === void 0 ? void 0 : button.closest(SELECTOR_FULL_TOGGLE);
261
+ if ((button === null || button === void 0 ? void 0 : button.dataset.lteToggle) !== 'sidebar') {
262
+ button = button === null || button === void 0 ? void 0 : button.closest(SELECTOR_SIDEBAR_TOGGLE);
303
263
  }
304
264
  if (button) {
305
- const data = new PushMenu(button, undefined);
306
- data.toggleMini();
265
+ event === null || event === void 0 ? void 0 : event.preventDefault();
266
+ const data = new PushMenu(button, Defaults);
267
+ data.toggle();
307
268
  }
308
269
  });
309
- }
270
+ });
310
271
  });
311
272
 
312
273
  /**
@@ -321,14 +282,14 @@
321
282
  * ------------------------------------------------------------------------
322
283
  */
323
284
  // const NAME = 'Treeview'
324
- const DATA_KEY = 'lte.treeview';
325
- const EVENT_KEY = `.${DATA_KEY}`;
326
- const EVENT_EXPANDED = `expanded${EVENT_KEY}`;
327
- const EVENT_COLLAPSED = `collapsed${EVENT_KEY}`;
285
+ const DATA_KEY$2 = 'lte.treeview';
286
+ const EVENT_KEY$2 = `.${DATA_KEY$2}`;
287
+ const EVENT_EXPANDED$2 = `expanded${EVENT_KEY$2}`;
288
+ const EVENT_COLLAPSED$2 = `collapsed${EVENT_KEY$2}`;
328
289
  // const EVENT_LOAD_DATA_API = `load${EVENT_KEY}`
329
290
  const CLASS_NAME_MENU_OPEN = 'menu-open';
330
- const CLASS_NAME_MENU_IS_OPEN = 'menu-is-open';
331
291
  const SELECTOR_NAV_ITEM = '.nav-item';
292
+ const SELECTOR_NAV_LINK = '.nav-link';
332
293
  const SELECTOR_TREEVIEW_MENU = '.nav-treeview';
333
294
  const SELECTOR_DATA_TOGGLE$1 = '[data-lte-toggle="treeview"]';
334
295
  const Default$1 = {
@@ -340,37 +301,31 @@
340
301
  */
341
302
  class Treeview {
342
303
  constructor(element, config) {
343
- var _a, _b;
344
304
  this._element = element;
345
- this._config = { ...Default$1, ...config };
346
- this._navItem = (_a = this._element) === null || _a === void 0 ? void 0 : _a.closest(SELECTOR_NAV_ITEM);
347
- this._childNavItem = (_b = this._navItem) === null || _b === void 0 ? void 0 : _b.querySelector(SELECTOR_TREEVIEW_MENU);
305
+ this._config = Object.assign(Object.assign({}, Default$1), config);
348
306
  }
349
307
  open() {
350
- const event = new Event(EVENT_EXPANDED);
351
- if (this._navItem) {
352
- this._navItem.classList.add(CLASS_NAME_MENU_OPEN);
353
- this._navItem.classList.add(CLASS_NAME_MENU_IS_OPEN);
354
- }
355
- if (this._childNavItem) {
356
- slideDown(this._childNavItem, this._config.animationSpeed);
357
- this._element.dispatchEvent(event);
308
+ var _a;
309
+ const event = new Event(EVENT_EXPANDED$2);
310
+ this._element.classList.add(CLASS_NAME_MENU_OPEN);
311
+ const childElement = (_a = this._element) === null || _a === void 0 ? void 0 : _a.querySelector(SELECTOR_TREEVIEW_MENU);
312
+ if (childElement) {
313
+ slideDown(childElement, this._config.animationSpeed);
358
314
  }
315
+ this._element.dispatchEvent(event);
359
316
  }
360
317
  close() {
361
- const event = new Event(EVENT_COLLAPSED);
362
- if (this._navItem) {
363
- this._navItem.classList.remove(CLASS_NAME_MENU_IS_OPEN);
364
- this._navItem.classList.remove(CLASS_NAME_MENU_OPEN);
365
- }
366
- if (this._childNavItem) {
367
- slideUp(this._childNavItem, this._config.animationSpeed);
368
- this._element.dispatchEvent(event);
318
+ var _a;
319
+ const event = new Event(EVENT_COLLAPSED$2);
320
+ this._element.classList.remove(CLASS_NAME_MENU_OPEN);
321
+ const childElement = (_a = this._element) === null || _a === void 0 ? void 0 : _a.querySelector(SELECTOR_TREEVIEW_MENU);
322
+ if (childElement) {
323
+ slideUp(childElement, this._config.animationSpeed);
369
324
  }
325
+ this._element.dispatchEvent(event);
370
326
  }
371
327
  toggle() {
372
- var _a;
373
- if ((_a = this._navItem) === null || _a === void 0 ? void 0 : _a.classList.contains(CLASS_NAME_MENU_OPEN)) {
328
+ if (this._element.classList.contains(CLASS_NAME_MENU_OPEN)) {
374
329
  this.close();
375
330
  }
376
331
  else {
@@ -383,16 +338,22 @@
383
338
  * Data Api implementation
384
339
  * ------------------------------------------------------------------------
385
340
  */
386
- domReady(() => {
341
+ onDOMContentLoaded(() => {
387
342
  const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE$1);
388
- for (const btn of button) {
343
+ button.forEach(btn => {
389
344
  btn.addEventListener('click', event => {
390
- // event.preventDefault()
391
- const treeviewMenu = event.target;
392
- const data = new Treeview(treeviewMenu, Default$1);
393
- data.toggle();
345
+ const target = event.target;
346
+ const targetItem = target.closest(SELECTOR_NAV_ITEM);
347
+ const targetLink = target.closest(SELECTOR_NAV_LINK);
348
+ if ((target === null || target === void 0 ? void 0 : target.getAttribute('href')) === '#' || (targetLink === null || targetLink === void 0 ? void 0 : targetLink.getAttribute('href')) === '#') {
349
+ event.preventDefault();
350
+ }
351
+ if (targetItem) {
352
+ const data = new Treeview(targetItem, Default$1);
353
+ data.toggle();
354
+ }
394
355
  });
395
- }
356
+ });
396
357
  });
397
358
 
398
359
  /**
@@ -405,6 +366,10 @@
405
366
  * Constants
406
367
  * ====================================================
407
368
  */
369
+ const DATA_KEY$1 = 'lte.direct-chat';
370
+ const EVENT_KEY$1 = `.${DATA_KEY$1}`;
371
+ const EVENT_EXPANDED$1 = `expanded${EVENT_KEY$1}`;
372
+ const EVENT_COLLAPSED$1 = `collapsed${EVENT_KEY$1}`;
408
373
  const SELECTOR_DATA_TOGGLE = '[data-lte-toggle="chat-pane"]';
409
374
  const SELECTOR_DIRECT_CHAT = '.direct-chat';
410
375
  const CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open';
@@ -413,10 +378,20 @@
413
378
  * ====================================================
414
379
  */
415
380
  class DirectChat {
416
- toggle(chatPane) {
417
- var _a;
418
- // chatPane
419
- (_a = chatPane.closest(SELECTOR_DIRECT_CHAT)) === null || _a === void 0 ? void 0 : _a.classList.toggle(CLASS_NAME_DIRECT_CHAT_OPEN);
381
+ constructor(element) {
382
+ this._element = element;
383
+ }
384
+ toggle() {
385
+ if (this._element.classList.contains(CLASS_NAME_DIRECT_CHAT_OPEN)) {
386
+ const event = new Event(EVENT_COLLAPSED$1);
387
+ this._element.classList.remove(CLASS_NAME_DIRECT_CHAT_OPEN);
388
+ this._element.dispatchEvent(event);
389
+ }
390
+ else {
391
+ const event = new Event(EVENT_EXPANDED$1);
392
+ this._element.classList.add(CLASS_NAME_DIRECT_CHAT_OPEN);
393
+ this._element.dispatchEvent(event);
394
+ }
420
395
  }
421
396
  }
422
397
  /**
@@ -424,16 +399,19 @@
424
399
  * Data Api implementation
425
400
  * ====================================================
426
401
  */
427
- domReady(() => {
402
+ onDOMContentLoaded(() => {
428
403
  const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE);
429
- for (const btn of button) {
404
+ button.forEach(btn => {
430
405
  btn.addEventListener('click', event => {
431
406
  event.preventDefault();
432
- const chatPane = event.target;
433
- const data = new DirectChat();
434
- data.toggle(chatPane);
407
+ const target = event.target;
408
+ const chatPane = target.closest(SELECTOR_DIRECT_CHAT);
409
+ if (chatPane) {
410
+ const data = new DirectChat(chatPane);
411
+ data.toggle();
412
+ }
435
413
  });
436
- }
414
+ });
437
415
  });
438
416
 
439
417
  /**
@@ -446,28 +424,30 @@
446
424
  * Constants
447
425
  * ====================================================
448
426
  */
427
+ const DATA_KEY = 'lte.card-widget';
428
+ const EVENT_KEY = `.${DATA_KEY}`;
429
+ const EVENT_COLLAPSED = `collapsed${EVENT_KEY}`;
430
+ const EVENT_EXPANDED = `expanded${EVENT_KEY}`;
431
+ const EVENT_REMOVE = `remove${EVENT_KEY}`;
432
+ const EVENT_MAXIMIZED = `maximized${EVENT_KEY}`;
433
+ const EVENT_MINIMIZED = `minimized${EVENT_KEY}`;
449
434
  const CLASS_NAME_CARD = 'card';
450
435
  const CLASS_NAME_COLLAPSED = 'collapsed-card';
451
436
  const CLASS_NAME_COLLAPSING = 'collapsing-card';
452
437
  const CLASS_NAME_EXPANDING = 'expanding-card';
453
438
  const CLASS_NAME_WAS_COLLAPSED = 'was-collapsed';
454
439
  const CLASS_NAME_MAXIMIZED = 'maximized-card';
455
- const SELECTOR_DATA_REMOVE = '[data-lte-dismiss="card-remove"]';
440
+ const SELECTOR_DATA_REMOVE = '[data-lte-toggle="card-remove"]';
456
441
  const SELECTOR_DATA_COLLAPSE = '[data-lte-toggle="card-collapse"]';
457
442
  const SELECTOR_DATA_MAXIMIZE = '[data-lte-toggle="card-maximize"]';
458
443
  const SELECTOR_CARD = `.${CLASS_NAME_CARD}`;
459
- const SELECTOR_CARD_HEADER = '.card-header';
460
444
  const SELECTOR_CARD_BODY = '.card-body';
461
445
  const SELECTOR_CARD_FOOTER = '.card-footer';
462
446
  const Default = {
463
447
  animationSpeed: 500,
464
448
  collapseTrigger: SELECTOR_DATA_COLLAPSE,
465
449
  removeTrigger: SELECTOR_DATA_REMOVE,
466
- maximizeTrigger: SELECTOR_DATA_MAXIMIZE,
467
- collapseIcon: 'fa-minus',
468
- expandIcon: 'fa-plus',
469
- maximizeIcon: 'fa-expand',
470
- minimizeIcon: 'fa-compress'
450
+ maximizeTrigger: SELECTOR_DATA_MAXIMIZE
471
451
  };
472
452
  class CardWidget {
473
453
  constructor(element, config) {
@@ -476,20 +456,19 @@
476
456
  if (element.classList.contains(CLASS_NAME_CARD)) {
477
457
  this._parent = element;
478
458
  }
479
- this._config = { ...Default, ...config };
459
+ this._config = Object.assign(Object.assign({}, Default), config);
480
460
  }
481
461
  collapse() {
482
462
  var _a, _b;
463
+ const event = new Event(EVENT_COLLAPSED);
483
464
  if (this._parent) {
484
465
  this._parent.classList.add(CLASS_NAME_COLLAPSING);
485
466
  const elm = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.querySelectorAll(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`);
486
- if (elm !== undefined) {
487
- for (const el of elm) {
488
- if (el instanceof HTMLElement) {
489
- slideUp(el, this._config.animationSpeed);
490
- }
467
+ elm.forEach(el => {
468
+ if (el instanceof HTMLElement) {
469
+ slideUp(el, this._config.animationSpeed);
491
470
  }
492
- }
471
+ });
493
472
  setTimeout(() => {
494
473
  if (this._parent) {
495
474
  this._parent.classList.add(CLASS_NAME_COLLAPSED);
@@ -497,24 +476,19 @@
497
476
  }
498
477
  }, this._config.animationSpeed);
499
478
  }
500
- const icon = (_b = this._parent) === null || _b === void 0 ? void 0 : _b.querySelector(`${SELECTOR_CARD_HEADER} ${this._config.collapseTrigger} .${this._config.collapseIcon}`);
501
- if (icon) {
502
- icon.classList.remove(this._config.collapseIcon);
503
- icon.classList.add(this._config.expandIcon);
504
- }
479
+ (_b = this._element) === null || _b === void 0 ? void 0 : _b.dispatchEvent(event);
505
480
  }
506
481
  expand() {
507
482
  var _a, _b;
483
+ const event = new Event(EVENT_EXPANDED);
508
484
  if (this._parent) {
509
485
  this._parent.classList.add(CLASS_NAME_EXPANDING);
510
486
  const elm = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.querySelectorAll(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`);
511
- if (elm !== undefined) {
512
- for (const el of elm) {
513
- if (el instanceof HTMLElement) {
514
- slideDown(el, this._config.animationSpeed);
515
- }
487
+ elm.forEach(el => {
488
+ if (el instanceof HTMLElement) {
489
+ slideDown(el, this._config.animationSpeed);
516
490
  }
517
- }
491
+ });
518
492
  setTimeout(() => {
519
493
  if (this._parent) {
520
494
  this._parent.classList.remove(CLASS_NAME_COLLAPSED);
@@ -522,16 +496,15 @@
522
496
  }
523
497
  }, this._config.animationSpeed);
524
498
  }
525
- const icon = (_b = this._parent) === null || _b === void 0 ? void 0 : _b.querySelector(`${SELECTOR_CARD_HEADER} ${this._config.collapseTrigger} .${this._config.expandIcon}`);
526
- if (icon) {
527
- icon.classList.add(this._config.collapseIcon);
528
- icon.classList.remove(this._config.expandIcon);
529
- }
499
+ (_b = this._element) === null || _b === void 0 ? void 0 : _b.dispatchEvent(event);
530
500
  }
531
501
  remove() {
502
+ var _a;
503
+ const event = new Event(EVENT_REMOVE);
532
504
  if (this._parent) {
533
505
  slideUp(this._parent, this._config.animationSpeed);
534
506
  }
507
+ (_a = this._element) === null || _a === void 0 ? void 0 : _a.dispatchEvent(event);
535
508
  }
536
509
  toggle() {
537
510
  var _a;
@@ -542,14 +515,11 @@
542
515
  this.collapse();
543
516
  }
544
517
  maximize() {
518
+ var _a;
519
+ const event = new Event(EVENT_MAXIMIZED);
545
520
  if (this._parent) {
546
- const maxElm = this._parent.querySelector(`${this._config.maximizeTrigger} .${this._config.maximizeIcon}`);
547
- if (maxElm) {
548
- maxElm.classList.add(this._config.minimizeIcon);
549
- maxElm.classList.remove(this._config.maximizeIcon);
550
- }
551
- this._parent.style.height = `${this._parent.scrollHeight}px`;
552
- this._parent.style.width = `${this._parent.scrollWidth}px`;
521
+ this._parent.style.height = `${this._parent.offsetHeight}px`;
522
+ this._parent.style.width = `${this._parent.offsetWidth}px`;
553
523
  this._parent.style.transition = 'all .15s';
554
524
  setTimeout(() => {
555
525
  const htmlTag = document.querySelector('html');
@@ -564,15 +534,15 @@
564
534
  }
565
535
  }, 150);
566
536
  }
537
+ (_a = this._element) === null || _a === void 0 ? void 0 : _a.dispatchEvent(event);
567
538
  }
568
539
  minimize() {
540
+ var _a;
541
+ const event = new Event(EVENT_MINIMIZED);
569
542
  if (this._parent) {
570
- const minElm = this._parent.querySelector(`${this._config.maximizeTrigger} .${this._config.minimizeIcon}`);
571
- if (minElm) {
572
- minElm.classList.add(this._config.maximizeIcon);
573
- minElm.classList.remove(this._config.minimizeIcon);
574
- }
575
- this._parent.style.cssText = `height: ${this._parent.style.height} !important; width: ${this._parent.style.width} !important; transition: all .15s;`;
543
+ this._parent.style.height = 'auto';
544
+ this._parent.style.width = 'auto';
545
+ this._parent.style.transition = 'all .15s';
576
546
  setTimeout(() => {
577
547
  var _a;
578
548
  const htmlTag = document.querySelector('html');
@@ -587,6 +557,7 @@
587
557
  }
588
558
  }, 10);
589
559
  }
560
+ (_a = this._element) === null || _a === void 0 ? void 0 : _a.dispatchEvent(event);
590
561
  }
591
562
  toggleMaximize() {
592
563
  var _a;
@@ -602,34 +573,34 @@
602
573
  * Data Api implementation
603
574
  * ====================================================
604
575
  */
605
- domReady(() => {
576
+ onDOMContentLoaded(() => {
606
577
  const collapseBtn = document.querySelectorAll(SELECTOR_DATA_COLLAPSE);
607
- for (const btn of collapseBtn) {
578
+ collapseBtn.forEach(btn => {
608
579
  btn.addEventListener('click', event => {
609
580
  event.preventDefault();
610
581
  const target = event.target;
611
582
  const data = new CardWidget(target, Default);
612
583
  data.toggle();
613
584
  });
614
- }
585
+ });
615
586
  const removeBtn = document.querySelectorAll(SELECTOR_DATA_REMOVE);
616
- for (const btn of removeBtn) {
587
+ removeBtn.forEach(btn => {
617
588
  btn.addEventListener('click', event => {
618
589
  event.preventDefault();
619
590
  const target = event.target;
620
591
  const data = new CardWidget(target, Default);
621
592
  data.remove();
622
593
  });
623
- }
594
+ });
624
595
  const maxBtn = document.querySelectorAll(SELECTOR_DATA_MAXIMIZE);
625
- for (const btn of maxBtn) {
596
+ maxBtn.forEach(btn => {
626
597
  btn.addEventListener('click', event => {
627
598
  event.preventDefault();
628
599
  const target = event.target;
629
600
  const data = new CardWidget(target, Default);
630
601
  data.toggleMaximize();
631
602
  });
632
- }
603
+ });
633
604
  });
634
605
 
635
606
  exports.CardWidget = CardWidget;