@soyfri/template 1.0.1 → 1.0.3

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 (477) hide show
  1. package/dist/assets/fonticon/fonticon.css +282 -0
  2. package/dist/assets/fonticon/fonticon.eot +0 -0
  3. package/dist/assets/fonticon/fonticon.scss +362 -0
  4. package/dist/assets/fonticon/fonticon.svg +273 -0
  5. package/dist/assets/fonticon/fonticon.ttf +0 -0
  6. package/dist/assets/fonticon/fonticon.woff +0 -0
  7. package/dist/assets/fonticon/fonticon.woff2 +0 -0
  8. package/dist/assets/keenicons/duotone/Read Me.txt +7 -0
  9. package/dist/assets/keenicons/duotone/demo-files/demo.css +152 -0
  10. package/dist/assets/keenicons/duotone/demo-files/demo.js +30 -0
  11. package/dist/assets/keenicons/duotone/demo.html +8060 -0
  12. package/dist/assets/keenicons/duotone/fonts/keenicons-duotone.eot +0 -0
  13. package/dist/assets/keenicons/duotone/fonts/keenicons-duotone.svg +1720 -0
  14. package/dist/assets/keenicons/duotone/fonts/keenicons-duotone.ttf +0 -0
  15. package/dist/assets/keenicons/duotone/fonts/keenicons-duotone.woff +0 -0
  16. package/dist/assets/keenicons/duotone/selection.json +1 -0
  17. package/dist/assets/keenicons/duotone/style.css +8678 -0
  18. package/dist/assets/keenicons/outline/Read Me.txt +7 -0
  19. package/dist/assets/keenicons/outline/demo-files/demo.css +152 -0
  20. package/dist/assets/keenicons/outline/demo-files/demo.js +30 -0
  21. package/dist/assets/keenicons/outline/demo.html +8060 -0
  22. package/dist/assets/keenicons/outline/fonts/keenicons-outline.eot +0 -0
  23. package/dist/assets/keenicons/outline/fonts/keenicons-outline.svg +583 -0
  24. package/dist/assets/keenicons/outline/fonts/keenicons-outline.ttf +0 -0
  25. package/dist/assets/keenicons/outline/fonts/keenicons-outline.woff +0 -0
  26. package/dist/assets/keenicons/outline/selection.json +1 -0
  27. package/dist/assets/keenicons/outline/style.css +1746 -0
  28. package/dist/assets/keenicons/solid/Read Me.txt +7 -0
  29. package/dist/assets/keenicons/solid/demo-files/demo.css +152 -0
  30. package/dist/assets/keenicons/solid/demo-files/demo.js +30 -0
  31. package/dist/assets/keenicons/solid/demo.html +8060 -0
  32. package/dist/assets/keenicons/solid/fonts/keenicons-solid.eot +0 -0
  33. package/dist/assets/keenicons/solid/fonts/keenicons-solid.svg +583 -0
  34. package/dist/assets/keenicons/solid/fonts/keenicons-solid.ttf +0 -0
  35. package/dist/assets/keenicons/solid/fonts/keenicons-solid.woff +0 -0
  36. package/dist/assets/keenicons/solid/selection.json +1 -0
  37. package/dist/assets/keenicons/solid/style.css +1746 -0
  38. package/dist/assets/sass/_init.scss +32 -0
  39. package/dist/assets/sass/components/_btn-secondary.scss +36 -0
  40. package/dist/assets/sass/components/_landing.scss +136 -0
  41. package/dist/assets/sass/components/_variables.custom.scss +6 -0
  42. package/dist/assets/sass/components/_variables.override.scss +15 -0
  43. package/dist/assets/sass/components/components.scss +8 -0
  44. package/dist/assets/sass/components/stepper/_multistep.scss +42 -0
  45. package/dist/assets/sass/core/base/_functions.scss +10 -0
  46. package/dist/assets/sass/core/base/_mixins.scss +11 -0
  47. package/dist/assets/sass/core/base/functions/_get.scss +82 -0
  48. package/dist/assets/sass/core/base/functions/_math.scss +15 -0
  49. package/dist/assets/sass/core/base/functions/_set.scss +43 -0
  50. package/dist/assets/sass/core/base/functions/_theme-colors.scss +15 -0
  51. package/dist/assets/sass/core/base/functions/_valueif.scss +13 -0
  52. package/dist/assets/sass/core/base/mixins/_breakpoints.scss +25 -0
  53. package/dist/assets/sass/core/base/mixins/_browsers.scss +23 -0
  54. package/dist/assets/sass/core/base/mixins/_fixes.scss +15 -0
  55. package/dist/assets/sass/core/base/mixins/_placeholder.scss +16 -0
  56. package/dist/assets/sass/core/base/mixins/_property.scss +9 -0
  57. package/dist/assets/sass/core/base/mixins/_reset.scss +23 -0
  58. package/dist/assets/sass/core/components/_accordion.scss +107 -0
  59. package/dist/assets/sass/core/components/_alert.scss +15 -0
  60. package/dist/assets/sass/core/components/_anchor.scss +37 -0
  61. package/dist/assets/sass/core/components/_animation.scss +81 -0
  62. package/dist/assets/sass/core/components/_badge.scss +85 -0
  63. package/dist/assets/sass/core/components/_blockui.scss +53 -0
  64. package/dist/assets/sass/core/components/_bootstrap-icon.scss +22 -0
  65. package/dist/assets/sass/core/components/_breadcrumb.scss +69 -0
  66. package/dist/assets/sass/core/components/_bullet.scss +33 -0
  67. package/dist/assets/sass/core/components/_buttons.scss +7 -0
  68. package/dist/assets/sass/core/components/_card.scss +327 -0
  69. package/dist/assets/sass/core/components/_carousel.scss +130 -0
  70. package/dist/assets/sass/core/components/_code.scss +24 -0
  71. package/dist/assets/sass/core/components/_cookiealert.scss +8 -0
  72. package/dist/assets/sass/core/components/_drawer.scss +78 -0
  73. package/dist/assets/sass/core/components/_dropdown.scss +35 -0
  74. package/dist/assets/sass/core/components/_engage.scss +118 -0
  75. package/dist/assets/sass/core/components/_explore.scss +104 -0
  76. package/dist/assets/sass/core/components/_fixed.scss +18 -0
  77. package/dist/assets/sass/core/components/_forms.scss +13 -0
  78. package/dist/assets/sass/core/components/_helpers.scss +12 -0
  79. package/dist/assets/sass/core/components/_hover.scss +53 -0
  80. package/dist/assets/sass/core/components/_image-input.scss +111 -0
  81. package/dist/assets/sass/core/components/_image.scss +17 -0
  82. package/dist/assets/sass/core/components/_indicator.scss +17 -0
  83. package/dist/assets/sass/core/components/_menu.scss +7 -0
  84. package/dist/assets/sass/core/components/_mixins.scss +13 -0
  85. package/dist/assets/sass/core/components/_modal.scss +7 -0
  86. package/dist/assets/sass/core/components/_nav-line-tabs.scss +68 -0
  87. package/dist/assets/sass/core/components/_nav-pills-custom.scss +91 -0
  88. package/dist/assets/sass/core/components/_nav.scss +99 -0
  89. package/dist/assets/sass/core/components/_offcanvas.scss +6 -0
  90. package/dist/assets/sass/core/components/_overlay.scss +35 -0
  91. package/dist/assets/sass/core/components/_page-loader.scss +28 -0
  92. package/dist/assets/sass/core/components/_pagination.scss +176 -0
  93. package/dist/assets/sass/core/components/_popover.scss +58 -0
  94. package/dist/assets/sass/core/components/_print.scss +34 -0
  95. package/dist/assets/sass/core/components/_progress.scss +27 -0
  96. package/dist/assets/sass/core/components/_pulse.scss +39 -0
  97. package/dist/assets/sass/core/components/_rating.scss +62 -0
  98. package/dist/assets/sass/core/components/_reboot.scss +7 -0
  99. package/dist/assets/sass/core/components/_ribbon.scss +195 -0
  100. package/dist/assets/sass/core/components/_root.scss +332 -0
  101. package/dist/assets/sass/core/components/_rotate.scss +47 -0
  102. package/dist/assets/sass/core/components/_scroll.scss +119 -0
  103. package/dist/assets/sass/core/components/_scrolltop.scss +69 -0
  104. package/dist/assets/sass/core/components/_separator.scss +66 -0
  105. package/dist/assets/sass/core/components/_shape.scss +13 -0
  106. package/dist/assets/sass/core/components/_stepper.scss +8 -0
  107. package/dist/assets/sass/core/components/_svg-icon.scss +30 -0
  108. package/dist/assets/sass/core/components/_symbol.scss +133 -0
  109. package/dist/assets/sass/core/components/_tables.scss +269 -0
  110. package/dist/assets/sass/core/components/_testimonials-slider.scss +65 -0
  111. package/dist/assets/sass/core/components/_theme-mode.scss +38 -0
  112. package/dist/assets/sass/core/components/_timeline-label.scss +59 -0
  113. package/dist/assets/sass/core/components/_timeline.scss +96 -0
  114. package/dist/assets/sass/core/components/_title-reports.scss +81 -0
  115. package/dist/assets/sass/core/components/_toasts.scss +17 -0
  116. package/dist/assets/sass/core/components/_toggle.scss +19 -0
  117. package/dist/assets/sass/core/components/_tooltip.scss +32 -0
  118. package/dist/assets/sass/core/components/_tree.scss +92 -0
  119. package/dist/assets/sass/core/components/_type.scss +9 -0
  120. package/dist/assets/sass/core/components/_utilities.scss +134 -0
  121. package/dist/assets/sass/core/components/_variables-dark.scss +333 -0
  122. package/dist/assets/sass/core/components/_variables.scss +1313 -0
  123. package/dist/assets/sass/core/components/buttons/_base.scss +129 -0
  124. package/dist/assets/sass/core/components/buttons/_theme.scss +307 -0
  125. package/dist/assets/sass/core/components/buttons_new/_base.scss +74 -0
  126. package/dist/assets/sass/core/components/buttons_new/_theme.scss +21 -0
  127. package/dist/assets/sass/core/components/components.scss +72 -0
  128. package/dist/assets/sass/core/components/forms/_floating-labels.scss +20 -0
  129. package/dist/assets/sass/core/components/forms/_form-check.scss +193 -0
  130. package/dist/assets/sass/core/components/forms/_form-control.scss +70 -0
  131. package/dist/assets/sass/core/components/forms/_form-select.scss +68 -0
  132. package/dist/assets/sass/core/components/forms/_input-group.scss +36 -0
  133. package/dist/assets/sass/core/components/forms/_labels.scss +8 -0
  134. package/dist/assets/sass/core/components/forms/_required.scss +14 -0
  135. package/dist/assets/sass/core/components/helpers/_background.scss +269 -0
  136. package/dist/assets/sass/core/components/helpers/_borders.scss +123 -0
  137. package/dist/assets/sass/core/components/helpers/_flex.scss +57 -0
  138. package/dist/assets/sass/core/components/helpers/_opacity.scss +18 -0
  139. package/dist/assets/sass/core/components/helpers/_shadow.scss +19 -0
  140. package/dist/assets/sass/core/components/helpers/_text.scss +146 -0
  141. package/dist/assets/sass/core/components/helpers/_transform.scss +8 -0
  142. package/dist/assets/sass/core/components/menu/_base.scss +316 -0
  143. package/dist/assets/sass/core/components/menu/_theme.scss +519 -0
  144. package/dist/assets/sass/core/components/mixins/_buttons.scss +84 -0
  145. package/dist/assets/sass/core/components/mixins/_ki.scss +18 -0
  146. package/dist/assets/sass/core/components/mixins/_menu.scss +301 -0
  147. package/dist/assets/sass/core/components/mixins/_scroll.scss +34 -0
  148. package/dist/assets/sass/core/components/mixins/_shape.scss +29 -0
  149. package/dist/assets/sass/core/components/mixins/_svg-bg-icon.scss +68 -0
  150. package/dist/assets/sass/core/components/mixins/_svg-icon.scss +11 -0
  151. package/dist/assets/sass/core/components/mixins/_symbol.scss +42 -0
  152. package/dist/assets/sass/core/components/stepper/_base.scss +112 -0
  153. package/dist/assets/sass/core/components/stepper/_links.scss +57 -0
  154. package/dist/assets/sass/core/components/stepper/_pills.scss +201 -0
  155. package/dist/assets/sass/core/components/wizard/wizard.scss +47 -0
  156. package/dist/assets/sass/core/components/wizard.scss +6 -0
  157. package/dist/assets/sass/core/layout/_base.scss +50 -0
  158. package/dist/assets/sass/core/layout/base/_container.scss +30 -0
  159. package/dist/assets/sass/core/layout/base/_content.scss +24 -0
  160. package/dist/assets/sass/core/layout/base/_footer.scss +99 -0
  161. package/dist/assets/sass/core/layout/base/_hero.scss +13 -0
  162. package/dist/assets/sass/core/layout/base/_layout-builder.scss +19 -0
  163. package/dist/assets/sass/core/layout/base/_layout.scss +29 -0
  164. package/dist/assets/sass/core/layout/base/_main.scss +96 -0
  165. package/dist/assets/sass/core/layout/base/_navbar.scss +19 -0
  166. package/dist/assets/sass/core/layout/base/_page-loader.scss +31 -0
  167. package/dist/assets/sass/core/layout/base/_page.scss +7 -0
  168. package/dist/assets/sass/core/layout/base/_print.scss +34 -0
  169. package/dist/assets/sass/core/layout/base/_reboot.scss +65 -0
  170. package/dist/assets/sass/core/layout/base/_root.scss +368 -0
  171. package/dist/assets/sass/core/layout/base/_toolbar.scss +171 -0
  172. package/dist/assets/sass/core/layout/base/_variables.scss +615 -0
  173. package/dist/assets/sass/core/layout/base/_wrapper.scss +100 -0
  174. package/dist/assets/sass/core/layout/base/aside/_aside.scss +275 -0
  175. package/dist/assets/sass/core/layout/base/header/_header-primary.scss +135 -0
  176. package/dist/assets/sass/core/layout/base/header/_header-secondary.scss +139 -0
  177. package/dist/assets/sass/core/layout/base/header/_header-tertiary.scss +138 -0
  178. package/dist/assets/sass/core/layout/base/header/_header.scss +239 -0
  179. package/dist/assets/sass/core/layout/base/mixins/_layout-minimize.scss +41 -0
  180. package/dist/assets/sass/core/layout/base/mixins/_layout-transition.scss +7 -0
  181. package/dist/assets/sass/core/layout/base/sidebar/_sidebar-panel.scss +281 -0
  182. package/dist/assets/sass/core/layout/base/sidebar/_sidebar-primary.scss +230 -0
  183. package/dist/assets/sass/core/layout/base/sidebar/_sidebar-secondary.scss +274 -0
  184. package/dist/assets/sass/core/layout/base/sidebar/_sidebar.scss +284 -0
  185. package/dist/assets/sass/core/vendors/plugins/_apexcharts.scss +129 -0
  186. package/dist/assets/sass/core/vendors/plugins/_bootstrap-maxlength.scss +16 -0
  187. package/dist/assets/sass/core/vendors/plugins/_ckeditor.scss +54 -0
  188. package/dist/assets/sass/core/vendors/plugins/_datatables.scss +292 -0
  189. package/dist/assets/sass/core/vendors/plugins/_daterangepicker.scss +272 -0
  190. package/dist/assets/sass/core/vendors/plugins/_draggable.scss +28 -0
  191. package/dist/assets/sass/core/vendors/plugins/_dropzone.scss +188 -0
  192. package/dist/assets/sass/core/vendors/plugins/_flatpickr.scss +407 -0
  193. package/dist/assets/sass/core/vendors/plugins/_formvalidation.scss +20 -0
  194. package/dist/assets/sass/core/vendors/plugins/_fslightbox.scss +11 -0
  195. package/dist/assets/sass/core/vendors/plugins/_fullcalendar.scss +297 -0
  196. package/dist/assets/sass/core/vendors/plugins/_gmaps.scss +18 -0
  197. package/dist/assets/sass/core/vendors/plugins/_jkanban.scss +94 -0
  198. package/dist/assets/sass/core/vendors/plugins/_jstree.scss +150 -0
  199. package/dist/assets/sass/core/vendors/plugins/_keenicons.scss +12 -0
  200. package/dist/assets/sass/core/vendors/plugins/_leaflet.scss +23 -0
  201. package/dist/assets/sass/core/vendors/plugins/_mixins.scss +5 -0
  202. package/dist/assets/sass/core/vendors/plugins/_nouislider.scss +103 -0
  203. package/dist/assets/sass/core/vendors/plugins/_plugins.angular.scss +12 -0
  204. package/dist/assets/sass/core/vendors/plugins/_plugins.react.scss +12 -0
  205. package/dist/assets/sass/core/vendors/plugins/_plugins.scss +34 -0
  206. package/dist/assets/sass/core/vendors/plugins/_plugins.vue.scss +12 -0
  207. package/dist/assets/sass/core/vendors/plugins/_prismjs.scss +84 -0
  208. package/dist/assets/sass/core/vendors/plugins/_quill.scss +196 -0
  209. package/dist/assets/sass/core/vendors/plugins/_recaptcha.scss +32 -0
  210. package/dist/assets/sass/core/vendors/plugins/_root.scss +36 -0
  211. package/dist/assets/sass/core/vendors/plugins/_select2.scss +418 -0
  212. package/dist/assets/sass/core/vendors/plugins/_sweetalert2.scss +112 -0
  213. package/dist/assets/sass/core/vendors/plugins/_tagify.scss +222 -0
  214. package/dist/assets/sass/core/vendors/plugins/_tempus-dominus.scss +163 -0
  215. package/dist/assets/sass/core/vendors/plugins/_tiny-slider.scss +141 -0
  216. package/dist/assets/sass/core/vendors/plugins/_tinymce.scss +13 -0
  217. package/dist/assets/sass/core/vendors/plugins/_toastr.scss +87 -0
  218. package/dist/assets/sass/core/vendors/plugins/_variables-dark.scss +18 -0
  219. package/dist/assets/sass/core/vendors/plugins/_variables.scss +27 -0
  220. package/dist/assets/sass/core/vendors/plugins/_vis-timeline.scss +131 -0
  221. package/dist/assets/sass/core/vendors/plugins/mixins/_nouislider.scss +13 -0
  222. package/dist/assets/sass/layout/_aside.scss +22 -0
  223. package/dist/assets/sass/layout/_content.scss +22 -0
  224. package/dist/assets/sass/layout/_layout.scss +17 -0
  225. package/dist/assets/sass/layout/_main.scss +21 -0
  226. package/dist/assets/sass/layout/_page-title.scss +14 -0
  227. package/dist/assets/sass/layout/_root.scss +49 -0
  228. package/dist/assets/sass/layout/_toolbar.scss +42 -0
  229. package/dist/assets/sass/layout/_variables.custom.scss +132 -0
  230. package/dist/assets/sass/layout/header/_header-dark.scss +77 -0
  231. package/dist/assets/sass/layout/header/_header-sidebar-light.scss +56 -0
  232. package/dist/assets/sass/layout/header/_header.scss +170 -0
  233. package/dist/assets/sass/layout/sidebar/_sidebar-dark.scss +105 -0
  234. package/dist/assets/sass/layout/sidebar/_sidebar-light.scss +105 -0
  235. package/dist/assets/sass/layout/sidebar/_sidebar-minimize.scss +64 -0
  236. package/dist/assets/sass/layout/sidebar/_sidebar.scss +53 -0
  237. package/dist/assets/sass/style.react.scss +28 -0
  238. package/dist/assets/sass/style.scss +14 -0
  239. package/dist/assets/sass/vendors/react-select.scss +199 -0
  240. package/dist/assets/ts/_utils/DomHelpers.js +68 -100
  241. package/dist/assets/ts/_utils/DomHelpers.ts +478 -0
  242. package/dist/assets/ts/_utils/ElementAnimateUtil.js +38 -46
  243. package/dist/assets/ts/_utils/ElementAnimateUtil.ts +111 -0
  244. package/dist/assets/ts/_utils/EventHandlerUtil.js +44 -52
  245. package/dist/assets/ts/_utils/EventHandlerUtil.ts +144 -0
  246. package/dist/assets/ts/_utils/_DOMEventHandlerUtil.js +16 -23
  247. package/dist/assets/ts/_utils/_DOMEventHandlerUtil.ts +60 -0
  248. package/dist/assets/ts/_utils/_DataUtil.js +26 -33
  249. package/dist/assets/ts/_utils/_DataUtil.ts +72 -0
  250. package/dist/assets/ts/_utils/_ElementStyleUtil.js +8 -15
  251. package/dist/assets/ts/_utils/_ElementStyleUtil.ts +17 -0
  252. package/dist/assets/ts/_utils/_TypesHelpers.js +8 -14
  253. package/dist/assets/ts/_utils/_TypesHelpers.ts +54 -0
  254. package/dist/assets/ts/_utils/index.js +9 -25
  255. package/dist/assets/ts/_utils/index.ts +12 -0
  256. package/dist/assets/ts/_utils/models/OffsetModel.js +1 -2
  257. package/dist/assets/ts/_utils/models/OffsetModel.ts +4 -0
  258. package/dist/assets/ts/_utils/models/ViewPortModel.js +1 -2
  259. package/dist/assets/ts/_utils/models/ViewPortModel.ts +4 -0
  260. package/dist/assets/ts/components/MenuComponent.js +687 -691
  261. package/dist/assets/ts/components/MenuComponent.ts +1090 -0
  262. package/dist/assets/ts/components/SearchComponent.js +248 -249
  263. package/dist/assets/ts/components/SearchComponent.ts +478 -0
  264. package/dist/assets/ts/components/_CookieComponent.js +17 -31
  265. package/dist/assets/ts/components/_CookieComponent.ts +60 -0
  266. package/dist/assets/ts/components/_DrawerComponent.js +250 -259
  267. package/dist/assets/ts/components/_DrawerComponent.ts +388 -0
  268. package/dist/assets/ts/components/_FeedbackComponent.js +92 -96
  269. package/dist/assets/ts/components/_FeedbackComponent.ts +152 -0
  270. package/dist/assets/ts/components/_ImageInputComponent.js +110 -117
  271. package/dist/assets/ts/components/_ImageInputComponent.ts +229 -0
  272. package/dist/assets/ts/components/_PasswordMeterComponent.js +82 -92
  273. package/dist/assets/ts/components/_PasswordMeterComponent.ts +271 -0
  274. package/dist/assets/ts/components/_ScrollComponent.js +215 -223
  275. package/dist/assets/ts/components/_ScrollComponent.ts +312 -0
  276. package/dist/assets/ts/components/_ScrollTopComponent.js +79 -83
  277. package/dist/assets/ts/components/_ScrollTopComponent.ts +148 -0
  278. package/dist/assets/ts/components/_StepperComponent.js +210 -213
  279. package/dist/assets/ts/components/_StepperComponent.ts +332 -0
  280. package/dist/assets/ts/components/_StickyComponent.js +193 -196
  281. package/dist/assets/ts/components/_StickyComponent.ts +297 -0
  282. package/dist/assets/ts/components/_SwapperComponent.js +79 -97
  283. package/dist/assets/ts/components/_SwapperComponent.ts +210 -0
  284. package/dist/assets/ts/components/_ToggleComponent.js +125 -130
  285. package/dist/assets/ts/components/_ToggleComponent.ts +200 -0
  286. package/dist/assets/ts/components/index.js +13 -29
  287. package/dist/assets/ts/components/index.ts +14 -0
  288. package/dist/assets/ts/index.js +2 -28
  289. package/dist/assets/ts/index.ts +43 -0
  290. package/dist/assets/ts/layout/ThemeMode.js +164 -176
  291. package/dist/assets/ts/layout/ThemeMode.ts +211 -0
  292. package/dist/assets/ts/layout/index.js +1 -17
  293. package/dist/assets/ts/layout/index.ts +1 -0
  294. package/dist/helpers/AssetHelpers.js +9 -17
  295. package/dist/helpers/RouterHelpers.js +3 -8
  296. package/dist/helpers/components/KTCard.js +7 -13
  297. package/dist/helpers/components/KTCardBody.js +7 -13
  298. package/dist/helpers/components/KTIcon.js +9 -26
  299. package/dist/helpers/components/KTSVG.js +3 -11
  300. package/dist/helpers/crud-helper/consts.js +2 -5
  301. package/dist/helpers/crud-helper/helpers.js +22 -45
  302. package/dist/helpers/crud-helper/models.js +10 -13
  303. package/dist/helpers/dataExamples.js +6 -13
  304. package/dist/helpers/icons-config/icons.js +2 -4
  305. package/dist/helpers/index.js +11 -27
  306. package/dist/helpers/react18MigrationHelpers.js +5 -8
  307. package/dist/i18n/Metronici18n.js +13 -42
  308. package/dist/i18n/i18nProvider.js +16 -23
  309. package/dist/i18n/index.d.ts +2 -0
  310. package/dist/i18n/index.js +11 -0
  311. package/dist/index.d.ts +3 -0
  312. package/dist/index.js +10 -23
  313. package/dist/layout/MasterInit.js +23 -30
  314. package/dist/layout/MasterLayout.js +32 -38
  315. package/dist/layout/components/content/Content.js +15 -23
  316. package/dist/layout/components/content/index.js +1 -17
  317. package/dist/layout/components/footer/Footer.js +21 -28
  318. package/dist/layout/components/footer/FooterWrapper.js +10 -17
  319. package/dist/layout/components/footer/index.js +1 -17
  320. package/dist/layout/components/header/Header.js +26 -53
  321. package/dist/layout/components/header/HeaderWrapper.js +30 -38
  322. package/dist/layout/components/header/Navbar.js +35 -42
  323. package/dist/layout/components/header/header-menus/MegaMenu.js +67 -73
  324. package/dist/layout/components/header/header-menus/MenuInner.js +42 -49
  325. package/dist/layout/components/header/header-menus/MenuInnerWithSub.js +21 -51
  326. package/dist/layout/components/header/header-menus/MenuItem.js +19 -26
  327. package/dist/layout/components/header/header-menus/index.js +1 -17
  328. package/dist/layout/components/header/index.js +1 -17
  329. package/dist/layout/components/scroll-top/ScrollTop.js +23 -30
  330. package/dist/layout/components/scroll-top/index.js +1 -17
  331. package/dist/layout/components/sidebar/Sidebar.js +54 -85
  332. package/dist/layout/components/sidebar/SidebarFooter.js +9 -15
  333. package/dist/layout/components/sidebar/SidebarLogo.js +27 -34
  334. package/dist/layout/components/sidebar/index.js +1 -17
  335. package/dist/layout/components/sidebar/sidebar-menu/SidebarMenu.js +8 -14
  336. package/dist/layout/components/sidebar/sidebar-menu/SidebarMenuItem.js +20 -28
  337. package/dist/layout/components/sidebar/sidebar-menu/SidebarMenuItemWithSub.js +21 -29
  338. package/dist/layout/components/sidebar/sidebar-menu/SidebarMenuMain.js +51 -57
  339. package/dist/layout/components/toolbar/Toolbar.js +39 -47
  340. package/dist/layout/components/toolbar/ToolbarWrapper.js +19 -26
  341. package/dist/layout/components/toolbar/index.js +1 -17
  342. package/dist/layout/components/toolbar/page-title/PageTitle.js +21 -28
  343. package/dist/layout/components/toolbar/page-title/PageTitleWrapper.js +8 -15
  344. package/dist/layout/components/toolbar/page-title/index.js +1 -17
  345. package/dist/layout/components/toolbar/toolbars/ToolbarAccounting.js +39 -65
  346. package/dist/layout/components/toolbar/toolbars/ToolbarClassic.js +22 -29
  347. package/dist/layout/components/toolbar/toolbars/ToolbarExtended.js +44 -70
  348. package/dist/layout/components/toolbar/toolbars/ToolbarReports.js +30 -56
  349. package/dist/layout/components/toolbar/toolbars/ToolbarSaas.js +30 -56
  350. package/dist/layout/components/toolbar/toolbars/index.js +5 -21
  351. package/dist/layout/core/MetronicSplashScreen.js +18 -47
  352. package/dist/layout/core/PageData.js +33 -65
  353. package/dist/layout/core/_LayoutConfig.js +1 -4
  354. package/dist/layout/core/_LayoutProvider.js +48 -89
  355. package/dist/layout/core/_LayoutSetup.js +86 -100
  356. package/dist/layout/core/_Models.js +1 -2
  357. package/dist/layout/core/index.js +6 -22
  358. package/dist/layout/index.js +12 -28
  359. package/dist/partials/chat/ChatInner.js +48 -89
  360. package/dist/partials/content/activity/Item1.js +43 -49
  361. package/dist/partials/content/activity/Item2.js +16 -22
  362. package/dist/partials/content/activity/Item3.js +33 -39
  363. package/dist/partials/content/activity/Item4.js +18 -24
  364. package/dist/partials/content/activity/Item5.js +33 -39
  365. package/dist/partials/content/activity/Item6.js +17 -23
  366. package/dist/partials/content/activity/Item7.js +24 -30
  367. package/dist/partials/content/activity/Item8.js +16 -22
  368. package/dist/partials/content/activity/index.js +8 -24
  369. package/dist/partials/content/cards/Card1.js +20 -27
  370. package/dist/partials/content/cards/Card2.js +26 -31
  371. package/dist/partials/content/cards/Card3.js +21 -28
  372. package/dist/partials/content/cards/Card4.js +11 -18
  373. package/dist/partials/content/cards/Card5.js +25 -32
  374. package/dist/partials/content/code-highlight/CodeBlock.js +20 -59
  375. package/dist/partials/content/dropdown/Dropdown1.js +33 -40
  376. package/dist/partials/content/dropdown/Dropdown2.js +28 -34
  377. package/dist/partials/content/dropdown/Dropdown3.js +32 -38
  378. package/dist/partials/content/editor/EditorToolbar.js +1 -4
  379. package/dist/partials/content/portal/Portal.js +8 -12
  380. package/dist/partials/index.js +22 -38
  381. package/dist/partials/layout/InboxCompose.js +67 -94
  382. package/dist/partials/layout/RightToolbar.js +11 -17
  383. package/dist/partials/layout/SearchModal.js +50 -57
  384. package/dist/partials/layout/activity-drawer/ActivityDrawer.js +33 -39
  385. package/dist/partials/layout/create-app/CreateApp.js +4 -10
  386. package/dist/partials/layout/drawer-messenger/DrawerMessenger.js +20 -26
  387. package/dist/partials/layout/header-menus/HeaderNotificationsMenu.js +48 -54
  388. package/dist/partials/layout/header-menus/HeaderUserMenu.js +50 -56
  389. package/dist/partials/layout/header-menus/Languages.js +27 -33
  390. package/dist/partials/layout/help-drawer/HelpDrawer.js +53 -59
  391. package/dist/partials/layout/help-drawer/ToggleHelpDrawer.js +3 -9
  392. package/dist/partials/layout/purchase/PurchaseButton.js +4 -10
  393. package/dist/partials/layout/quick-links/QuicLinks.js +32 -38
  394. package/dist/partials/layout/search/Search.js +265 -291
  395. package/dist/partials/layout/search/SearchInner.js +10 -36
  396. package/dist/partials/layout/theme-mode/ThemeModeProvider.js +34 -66
  397. package/dist/partials/layout/theme-mode/ThemeModeSwitcher.js +31 -38
  398. package/dist/partials/modals/create-app-stepper/CreateAppModal.js +96 -134
  399. package/dist/partials/modals/create-app-stepper/IAppModels.js +1 -4
  400. package/dist/partials/modals/create-app-stepper/steps/Step1.js +68 -83
  401. package/dist/partials/modals/create-app-stepper/steps/Step2.js +49 -56
  402. package/dist/partials/modals/create-app-stepper/steps/Step3.js +65 -80
  403. package/dist/partials/modals/create-app-stepper/steps/Step4.js +39 -46
  404. package/dist/partials/modals/create-app-stepper/steps/Step5.js +11 -17
  405. package/dist/partials/modals/invite-users/InviteUsers.js +45 -51
  406. package/dist/partials/modals/select-location/SelectLocationModal.js +22 -49
  407. package/dist/partials/modals/upgrade-plan/UpgradePlan.js +63 -89
  408. package/dist/partials/widgets/_new/cards/CardsWidget17.js +48 -78
  409. package/dist/partials/widgets/_new/cards/CardsWidget20.js +17 -26
  410. package/dist/partials/widgets/_new/cards/CardsWidget7.js +22 -31
  411. package/dist/partials/widgets/_new/engage/EngageWidget10.js +22 -31
  412. package/dist/partials/widgets/_new/lists/ListsWidget26.js +14 -43
  413. package/dist/partials/widgets/charts/ChartsWidget1.js +31 -61
  414. package/dist/partials/widgets/charts/ChartsWidget2.js +29 -59
  415. package/dist/partials/widgets/charts/ChartsWidget3.js +28 -58
  416. package/dist/partials/widgets/charts/ChartsWidget4.js +31 -61
  417. package/dist/partials/widgets/charts/ChartsWidget5.js +29 -59
  418. package/dist/partials/widgets/charts/ChartsWidget6.js +29 -59
  419. package/dist/partials/widgets/charts/ChartsWidget7.js +34 -64
  420. package/dist/partials/widgets/charts/ChartsWidget8.js +34 -64
  421. package/dist/partials/widgets/engage/EngageWidget1.js +15 -22
  422. package/dist/partials/widgets/engage/EngageWidget2.js +12 -19
  423. package/dist/partials/widgets/engage/EngageWidget3.js +31 -38
  424. package/dist/partials/widgets/feeds/FeedsWidget2.js +33 -40
  425. package/dist/partials/widgets/feeds/FeedsWidget3.js +52 -59
  426. package/dist/partials/widgets/feeds/FeedsWidget4.js +33 -40
  427. package/dist/partials/widgets/feeds/FeedsWidget5.js +35 -42
  428. package/dist/partials/widgets/feeds/FeedsWidget6.js +35 -42
  429. package/dist/partials/widgets/index.js +71 -87
  430. package/dist/partials/widgets/lists/ListsWidget1.js +50 -57
  431. package/dist/partials/widgets/lists/ListsWidget2.js +43 -50
  432. package/dist/partials/widgets/lists/ListsWidget3.js +61 -68
  433. package/dist/partials/widgets/lists/ListsWidget4.js +69 -76
  434. package/dist/partials/widgets/lists/ListsWidget5.js +60 -67
  435. package/dist/partials/widgets/lists/ListsWidget6.js +41 -47
  436. package/dist/partials/widgets/lists/ListsWidget7.js +47 -53
  437. package/dist/partials/widgets/lists/ListsWidget8.js +67 -73
  438. package/dist/partials/widgets/lists/ListsWidget9.js +76 -83
  439. package/dist/partials/widgets/mixed/MixedWidget1.js +62 -69
  440. package/dist/partials/widgets/mixed/MixedWidget10.js +27 -57
  441. package/dist/partials/widgets/mixed/MixedWidget11.js +26 -56
  442. package/dist/partials/widgets/mixed/MixedWidget13.js +25 -55
  443. package/dist/partials/widgets/mixed/MixedWidget14.js +22 -52
  444. package/dist/partials/widgets/mixed/MixedWidget15.js +40 -49
  445. package/dist/partials/widgets/mixed/MixedWidget2.js +43 -73
  446. package/dist/partials/widgets/mixed/MixedWidget3.js +43 -73
  447. package/dist/partials/widgets/mixed/MixedWidget4.js +35 -42
  448. package/dist/partials/widgets/mixed/MixedWidget5.js +21 -28
  449. package/dist/partials/widgets/mixed/MixedWidget6.js +50 -80
  450. package/dist/partials/widgets/mixed/MixedWidget7.js +36 -66
  451. package/dist/partials/widgets/mixed/MixedWidget8.js +59 -89
  452. package/dist/partials/widgets/mixed/MixedWidget9.js +66 -96
  453. package/dist/partials/widgets/statistics/StatisticsWidget1.js +10 -17
  454. package/dist/partials/widgets/statistics/StatisticsWidget2.js +10 -17
  455. package/dist/partials/widgets/statistics/StatisticsWidget3.js +27 -57
  456. package/dist/partials/widgets/statistics/StatisticsWidget4.js +29 -59
  457. package/dist/partials/widgets/statistics/StatisticsWidget5.js +9 -16
  458. package/dist/partials/widgets/statistics/StatisticsWidget6.js +11 -18
  459. package/dist/partials/widgets/tables/TablesWidget1.js +109 -116
  460. package/dist/partials/widgets/tables/TablesWidget10.js +165 -172
  461. package/dist/partials/widgets/tables/TablesWidget11.js +154 -161
  462. package/dist/partials/widgets/tables/TablesWidget12.js +219 -226
  463. package/dist/partials/widgets/tables/TablesWidget13.js +178 -185
  464. package/dist/partials/widgets/tables/TablesWidget2.js +105 -112
  465. package/dist/partials/widgets/tables/TablesWidget3.js +75 -82
  466. package/dist/partials/widgets/tables/TablesWidget4.js +349 -356
  467. package/dist/partials/widgets/tables/TablesWidget5.js +220 -227
  468. package/dist/partials/widgets/tables/TablesWidget6.js +241 -248
  469. package/dist/partials/widgets/tables/TablesWidget7.js +241 -248
  470. package/dist/partials/widgets/tables/TablesWidget8.js +214 -221
  471. package/dist/partials/widgets/tables/TablesWidget9.js +165 -172
  472. package/dist/partials/widgets/tiles/TilesWidget1.js +9 -16
  473. package/dist/partials/widgets/tiles/TilesWidget2.js +12 -19
  474. package/dist/partials/widgets/tiles/TilesWidget3.js +11 -18
  475. package/dist/partials/widgets/tiles/TilesWidget4.js +10 -17
  476. package/dist/partials/widgets/tiles/TilesWidget5.js +12 -18
  477. package/package.json +5 -3
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultMenuOptions = exports.MenuComponent = void 0;
4
- var core_1 = require("@popperjs/core");
5
- var index_1 = require("../_utils/index");
6
- var defaultMenuOptions = {
1
+ import { createPopper } from '@popperjs/core';
2
+ import { getElementChild, getElementParents, getAttributeValueByBreakpoint, getUniqueIdWithPrefix, DataUtil, ElementStyleUtil, EventHandlerUtil, insertAfterElement, slideUp, slideDown, DOMEventHandlerUtil, throttle, getHighestZindex, } from '../_utils/index';
3
+ const defaultMenuOptions = {
7
4
  dropdown: {
8
5
  hoverTimeout: 200,
9
6
  zindex: 105,
@@ -13,697 +10,698 @@ var defaultMenuOptions = {
13
10
  expand: false,
14
11
  },
15
12
  };
16
- exports.defaultMenuOptions = defaultMenuOptions;
17
- var MenuComponent = /** @class */ (function () {
18
- function MenuComponent(_element, options) {
19
- var _this = this;
20
- this.triggerElement = null;
21
- // Set external trigger element
22
- this._setTriggerElement = function () {
23
- var target = document.querySelector("[data-kt-menu-target=\"#".concat(_this.element.getAttribute('id'), "\""));
24
- if (target) {
25
- _this.triggerElement = target;
26
- }
27
- else if (_this.element.closest('[data-kt-menu-trigger]')) {
28
- _this.triggerElement = _this.element.closest('[data-kt-menu-trigger]');
29
- }
30
- else if (_this.element.parentNode &&
31
- (0, index_1.getElementChild)(_this.element.parentNode, '[data-kt-menu-trigger]')) {
32
- var child = (0, index_1.getElementChild)(_this.element.parentNode, '[data-kt-menu-trigger]');
33
- if (child) {
34
- _this.triggerElement = child;
35
- }
36
- }
37
- if (_this.triggerElement) {
38
- index_1.DataUtil.set(_this.triggerElement, 'menu', _this);
39
- }
40
- };
41
- // Test if menu has external trigger element
42
- this._isTriggerElement = function (item) {
43
- return _this.triggerElement === item;
44
- };
45
- // Get item option(through html attributes)
46
- this._getItemOption = function (item, name) {
47
- var value = null;
48
- if (item && item.hasAttribute('data-kt-menu-' + name)) {
49
- var attr = item.getAttribute('data-kt-menu-' + name) || '';
50
- value = (0, index_1.getAttributeValueByBreakpoint)(attr);
51
- if (value !== null && String(value) === 'true') {
52
- value = true;
53
- }
54
- else if (value !== null && String(value) === 'false') {
55
- value = false;
56
- }
57
- }
58
- return value;
59
- };
60
- // Get item element
61
- this._getItemElement = function (_element) {
62
- // Element is the external trigger element
63
- if (_this._isTriggerElement(_element)) {
64
- return _element;
65
- }
66
- // Element has item toggler attribute
67
- if (_element.hasAttribute('data-kt-menu-trigger')) {
68
- return _element;
69
- }
70
- // Element has item DOM reference in it's data storage
71
- var itemElement = index_1.DataUtil.get(_element, 'item');
72
- if (itemElement) {
73
- return itemElement;
74
- }
75
- // Item is parent of element
76
- var item = _element.closest('.menu-item[data-kt-menu-trigger]');
77
- if (item) {
78
- return item;
79
- }
80
- // Element's parent has item DOM reference in it's data storage
81
- var sub = _element.closest('.menu-sub');
82
- if (sub) {
83
- var subItem = index_1.DataUtil.get(sub, 'item');
84
- if (subItem) {
85
- return subItem;
86
- }
13
+ class MenuComponent {
14
+ element;
15
+ options;
16
+ instanceUid;
17
+ triggerElement = null;
18
+ constructor(_element, options) {
19
+ this.element = _element;
20
+ this.options = Object.assign(defaultMenuOptions, options);
21
+ this.instanceUid = getUniqueIdWithPrefix('menu');
22
+ // this.element.setAttribute('data-kt-menu', 'true')
23
+ this._setTriggerElement();
24
+ this._update();
25
+ DataUtil.set(this.element, 'menu', this);
26
+ return this;
27
+ }
28
+ // Set external trigger element
29
+ _setTriggerElement = () => {
30
+ const target = document.querySelector(`[data-kt-menu-target="#${this.element.getAttribute('id')}"`);
31
+ if (target) {
32
+ this.triggerElement = target;
33
+ }
34
+ else if (this.element.closest('[data-kt-menu-trigger]')) {
35
+ this.triggerElement = this.element.closest('[data-kt-menu-trigger]');
36
+ }
37
+ else if (this.element.parentNode &&
38
+ getElementChild(this.element.parentNode, '[data-kt-menu-trigger]')) {
39
+ const child = getElementChild(this.element.parentNode, '[data-kt-menu-trigger]');
40
+ if (child) {
41
+ this.triggerElement = child;
87
42
  }
88
- };
89
- // Get item parent element
90
- this._getItemParentElement = function (item) {
91
- var sub = item.closest('.menu-sub');
92
- if (!sub) {
93
- return null;
43
+ }
44
+ if (this.triggerElement) {
45
+ DataUtil.set(this.triggerElement, 'menu', this);
46
+ }
47
+ };
48
+ // Test if menu has external trigger element
49
+ _isTriggerElement = (item) => {
50
+ return this.triggerElement === item;
51
+ };
52
+ // Get item option(through html attributes)
53
+ _getItemOption = (item, name) => {
54
+ let value = null;
55
+ if (item && item.hasAttribute('data-kt-menu-' + name)) {
56
+ const attr = item.getAttribute('data-kt-menu-' + name) || '';
57
+ value = getAttributeValueByBreakpoint(attr);
58
+ if (value !== null && String(value) === 'true') {
59
+ value = true;
60
+ }
61
+ else if (value !== null && String(value) === 'false') {
62
+ value = false;
94
63
  }
95
- var subItem = index_1.DataUtil.get(sub, 'item');
64
+ }
65
+ return value;
66
+ };
67
+ // Get item element
68
+ _getItemElement = (_element) => {
69
+ // Element is the external trigger element
70
+ if (this._isTriggerElement(_element)) {
71
+ return _element;
72
+ }
73
+ // Element has item toggler attribute
74
+ if (_element.hasAttribute('data-kt-menu-trigger')) {
75
+ return _element;
76
+ }
77
+ // Element has item DOM reference in it's data storage
78
+ const itemElement = DataUtil.get(_element, 'item');
79
+ if (itemElement) {
80
+ return itemElement;
81
+ }
82
+ // Item is parent of element
83
+ const item = _element.closest('.menu-item[data-kt-menu-trigger]');
84
+ if (item) {
85
+ return item;
86
+ }
87
+ // Element's parent has item DOM reference in it's data storage
88
+ const sub = _element.closest('.menu-sub');
89
+ if (sub) {
90
+ const subItem = DataUtil.get(sub, 'item');
96
91
  if (subItem) {
97
92
  return subItem;
98
93
  }
99
- var parentItem = sub.closest('.menu-item[data-kt-menu-trigger]');
100
- if (sub && parentItem) {
101
- return parentItem;
102
- }
94
+ }
95
+ };
96
+ // Get item parent element
97
+ _getItemParentElement = (item) => {
98
+ const sub = item.closest('.menu-sub');
99
+ if (!sub) {
103
100
  return null;
104
- };
105
- // Get item parent elements
106
- this._getItemParentElements = function (item) {
107
- var parents = [];
108
- var parent;
109
- var i = 0;
110
- var buffer = item;
111
- do {
112
- parent = _this._getItemParentElement(buffer);
113
- if (parent) {
114
- parents.push(parent);
115
- buffer = parent;
116
- }
117
- i++;
118
- } while (parent !== null && i < 20);
119
- if (_this.triggerElement) {
120
- parents.unshift(_this.triggerElement);
121
- }
122
- return parents;
123
- };
124
- // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)
125
- this._getDropdownPopperConfig = function (item) {
126
- // Placement
127
- var placementOption = _this._getItemOption(item, 'placement');
128
- var placement = 'right';
129
- if (placementOption) {
130
- placement = placementOption;
131
- }
132
- // Flip
133
- // const flipValue = this._getItemOption(item, 'flip')
134
- // const flip = flipValue ? flipValue.toString().split(',') : []
135
- // Offset
136
- var offsetValue = _this._getItemOption(item, 'offset');
137
- var offset = offsetValue ? offsetValue.toString().split(',') : [];
138
- // Strategy
139
- var strategy = _this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed';
140
- return {
141
- placement: placement,
142
- strategy: strategy,
143
- modifiers: [
144
- {
145
- name: 'offset',
146
- options: {
147
- offset: offset,
148
- },
149
- },
150
- {
151
- name: 'preventOverflow',
101
+ }
102
+ const subItem = DataUtil.get(sub, 'item');
103
+ if (subItem) {
104
+ return subItem;
105
+ }
106
+ const parentItem = sub.closest('.menu-item[data-kt-menu-trigger]');
107
+ if (sub && parentItem) {
108
+ return parentItem;
109
+ }
110
+ return null;
111
+ };
112
+ // Get item parent elements
113
+ _getItemParentElements = (item) => {
114
+ const parents = [];
115
+ let parent;
116
+ let i = 0;
117
+ let buffer = item;
118
+ do {
119
+ parent = this._getItemParentElement(buffer);
120
+ if (parent) {
121
+ parents.push(parent);
122
+ buffer = parent;
123
+ }
124
+ i++;
125
+ } while (parent !== null && i < 20);
126
+ if (this.triggerElement) {
127
+ parents.unshift(this.triggerElement);
128
+ }
129
+ return parents;
130
+ };
131
+ // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)
132
+ _getDropdownPopperConfig = (item) => {
133
+ // Placement
134
+ const placementOption = this._getItemOption(item, 'placement');
135
+ let placement = 'right';
136
+ if (placementOption) {
137
+ placement = placementOption;
138
+ }
139
+ // Flip
140
+ // const flipValue = this._getItemOption(item, 'flip')
141
+ // const flip = flipValue ? flipValue.toString().split(',') : []
142
+ // Offset
143
+ const offsetValue = this._getItemOption(item, 'offset');
144
+ const offset = offsetValue ? offsetValue.toString().split(',') : [];
145
+ // Strategy
146
+ const strategy = this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed';
147
+ return {
148
+ placement: placement,
149
+ strategy: strategy,
150
+ modifiers: [
151
+ {
152
+ name: 'offset',
153
+ options: {
154
+ offset: offset,
152
155
  },
153
- {
154
- name: 'flip',
155
- options: {
156
- // altBoundary: true,
157
- // fallbackPlacements: flip,
158
- flipVariations: false,
159
- },
156
+ },
157
+ {
158
+ name: 'preventOverflow',
159
+ },
160
+ {
161
+ name: 'flip',
162
+ options: {
163
+ // altBoundary: true,
164
+ // fallbackPlacements: flip,
165
+ flipVariations: false,
160
166
  },
161
- ],
162
- };
167
+ },
168
+ ],
163
169
  };
164
- // Get item child element
165
- this._getItemChildElement = function (item) {
166
- var selector = item;
167
- var subItem = index_1.DataUtil.get(item, 'sub');
168
- if (subItem) {
169
- selector = subItem;
170
- }
171
- if (selector) {
172
- //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');
173
- var element = selector.querySelector('.menu-item[data-kt-menu-trigger]');
174
- if (element) {
175
- return element;
176
- }
170
+ };
171
+ // Get item child element
172
+ _getItemChildElement = (item) => {
173
+ let selector = item;
174
+ const subItem = DataUtil.get(item, 'sub');
175
+ if (subItem) {
176
+ selector = subItem;
177
+ }
178
+ if (selector) {
179
+ //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');
180
+ const element = selector.querySelector('.menu-item[data-kt-menu-trigger]');
181
+ if (element) {
182
+ return element;
177
183
  }
184
+ }
185
+ return null;
186
+ };
187
+ // Get item child elements
188
+ _getItemChildElements = (item) => {
189
+ const children = [];
190
+ let child;
191
+ let i = 0;
192
+ let buffer = item;
193
+ do {
194
+ child = this._getItemChildElement(buffer);
195
+ if (child) {
196
+ children.push(child);
197
+ buffer = child;
198
+ }
199
+ i++;
200
+ } while (child !== null && i < 20);
201
+ return children;
202
+ };
203
+ // Get item sub element
204
+ _getItemSubElement = (item) => {
205
+ if (!item) {
178
206
  return null;
179
- };
180
- // Get item child elements
181
- this._getItemChildElements = function (item) {
182
- var children = [];
183
- var child;
184
- var i = 0;
185
- var buffer = item;
186
- do {
187
- child = _this._getItemChildElement(buffer);
188
- if (child) {
189
- children.push(child);
190
- buffer = child;
191
- }
192
- i++;
193
- } while (child !== null && i < 20);
194
- return children;
195
- };
196
- // Get item sub element
197
- this._getItemSubElement = function (item) {
198
- if (!item) {
199
- return null;
200
- }
201
- if (_this._isTriggerElement(item)) {
202
- return _this.element;
203
- }
204
- if (item.classList.contains('menu-sub')) {
205
- return item;
206
- }
207
- else if (index_1.DataUtil.has(item, 'sub')) {
208
- var itemSub = index_1.DataUtil.get(item, 'sub');
209
- return itemSub ? itemSub : null;
210
- }
211
- else {
212
- return (0, index_1.getElementChild)(item, '.menu-sub');
213
- }
214
- };
215
- this._getCss = function (el, styleProp) {
216
- var defaultView = (el.ownerDocument || document).defaultView;
217
- if (!defaultView) {
218
- return '';
219
- }
220
- // sanitize property name to css notation
221
- // (hyphen separated words eg. font-Size)
222
- styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase();
223
- return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
224
- };
225
- // Get item sub type
226
- this._getItemSubType = function (element) {
227
- var sub = _this._getItemSubElement(element);
228
- if (sub && parseInt(_this._getCss(sub, 'z-index')) > 0) {
229
- return 'dropdown';
207
+ }
208
+ if (this._isTriggerElement(item)) {
209
+ return this.element;
210
+ }
211
+ if (item.classList.contains('menu-sub')) {
212
+ return item;
213
+ }
214
+ else if (DataUtil.has(item, 'sub')) {
215
+ const itemSub = DataUtil.get(item, 'sub');
216
+ return itemSub ? itemSub : null;
217
+ }
218
+ else {
219
+ return getElementChild(item, '.menu-sub');
220
+ }
221
+ };
222
+ _getCss = (el, styleProp) => {
223
+ const defaultView = (el.ownerDocument || document).defaultView;
224
+ if (!defaultView) {
225
+ return '';
226
+ }
227
+ // sanitize property name to css notation
228
+ // (hyphen separated words eg. font-Size)
229
+ styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase();
230
+ return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
231
+ };
232
+ // Get item sub type
233
+ _getItemSubType = (element) => {
234
+ const sub = this._getItemSubElement(element);
235
+ if (sub && parseInt(this._getCss(sub, 'z-index')) > 0) {
236
+ return 'dropdown';
237
+ }
238
+ else {
239
+ return 'accordion';
240
+ }
241
+ };
242
+ // Test if item's sub is shown
243
+ _isItemSubShown = (item) => {
244
+ const sub = this._getItemSubElement(item);
245
+ if (sub) {
246
+ if (this._getItemSubType(item) === 'dropdown') {
247
+ const subHTMLElement = sub;
248
+ return (subHTMLElement.classList.contains('show') &&
249
+ subHTMLElement.hasAttribute('data-popper-placement'));
230
250
  }
231
251
  else {
232
- return 'accordion';
252
+ return item.classList.contains('show');
233
253
  }
234
- };
235
- // Test if item's sub is shown
236
- this._isItemSubShown = function (item) {
237
- var sub = _this._getItemSubElement(item);
254
+ }
255
+ return false;
256
+ };
257
+ // Test if item dropdown is permanent
258
+ _isItemDropdownPermanent = (item) => {
259
+ return this._getItemOption(item, 'permanent') === true;
260
+ };
261
+ // Test if item's parent is shown
262
+ _isItemParentShown = (item) => {
263
+ return getElementParents(item, '.menu-item.show').length > 0;
264
+ };
265
+ // Test of it is item sub element
266
+ _isItemSubElement = (item) => {
267
+ return item.classList.contains('menu-sub');
268
+ };
269
+ // Test if item has sub
270
+ _hasItemSub = (item) => {
271
+ return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger');
272
+ };
273
+ // Get link element
274
+ _getItemLinkElement = (item) => {
275
+ return getElementChild(item, '.menu-link');
276
+ };
277
+ // Get toggle element
278
+ _getItemToggleElement = (item) => {
279
+ if (this.triggerElement) {
280
+ return this.triggerElement;
281
+ }
282
+ return this._getItemLinkElement(item);
283
+ };
284
+ // Show item dropdown
285
+ _showDropdown = (item) => {
286
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {
287
+ return;
288
+ }
289
+ // Hide all currently shown dropdowns except current one
290
+ MenuComponent.hideDropdowns(item);
291
+ // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);
292
+ const sub = this._getItemSubElement(item);
293
+ const width = this._getItemOption(item, 'width');
294
+ const height = this._getItemOption(item, 'height');
295
+ let zindex = this.options.dropdown.zindex;
296
+ const parentZindex = getHighestZindex(item); // update
297
+ // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update
298
+ if (parentZindex !== null && parentZindex >= zindex) {
299
+ zindex = parentZindex + 1;
300
+ }
301
+ if (zindex && sub) {
302
+ ElementStyleUtil.set(sub, 'z-index', zindex);
303
+ }
304
+ if (width && sub) {
305
+ ElementStyleUtil.set(sub, 'width', width);
306
+ }
307
+ if (height && sub) {
308
+ ElementStyleUtil.set(sub, 'height', height);
309
+ }
310
+ this.initDropdownPopper(item, sub);
311
+ item.classList.add('show');
312
+ item.classList.add('menu-dropdown');
313
+ sub?.classList.add('show');
314
+ // Append the sub the the root of the menu
315
+ if (this._getItemOption(item, 'overflow') === true) {
238
316
  if (sub) {
239
- if (_this._getItemSubType(item) === 'dropdown') {
240
- var subHTMLElement = sub;
241
- return (subHTMLElement.classList.contains('show') &&
242
- subHTMLElement.hasAttribute('data-popper-placement'));
243
- }
244
- else {
245
- return item.classList.contains('show');
246
- }
247
- }
248
- return false;
249
- };
250
- // Test if item dropdown is permanent
251
- this._isItemDropdownPermanent = function (item) {
252
- return _this._getItemOption(item, 'permanent') === true;
253
- };
254
- // Test if item's parent is shown
255
- this._isItemParentShown = function (item) {
256
- return (0, index_1.getElementParents)(item, '.menu-item.show').length > 0;
257
- };
258
- // Test of it is item sub element
259
- this._isItemSubElement = function (item) {
260
- return item.classList.contains('menu-sub');
261
- };
262
- // Test if item has sub
263
- this._hasItemSub = function (item) {
264
- return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger');
265
- };
266
- // Get link element
267
- this._getItemLinkElement = function (item) {
268
- return (0, index_1.getElementChild)(item, '.menu-link');
269
- };
270
- // Get toggle element
271
- this._getItemToggleElement = function (item) {
272
- if (_this.triggerElement) {
273
- return _this.triggerElement;
317
+ document.body.appendChild(sub);
318
+ DataUtil.set(item, 'sub', sub);
319
+ DataUtil.set(sub, 'item', item);
320
+ DataUtil.set(sub, 'menu', this);
274
321
  }
275
- return _this._getItemLinkElement(item);
276
- };
277
- // Show item dropdown
278
- this._showDropdown = function (item) {
279
- if (index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.dropdown.show') === false) {
280
- return;
322
+ }
323
+ else {
324
+ if (sub) {
325
+ DataUtil.set(sub, 'item', item);
281
326
  }
282
- // Hide all currently shown dropdowns except current one
283
- MenuComponent.hideDropdowns(item);
284
- // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);
285
- var sub = _this._getItemSubElement(item);
286
- var width = _this._getItemOption(item, 'width');
287
- var height = _this._getItemOption(item, 'height');
288
- var zindex = _this.options.dropdown.zindex;
289
- var parentZindex = (0, index_1.getHighestZindex)(item); // update
290
- // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update
291
- if (parentZindex !== null && parentZindex >= zindex) {
292
- zindex = parentZindex + 1;
293
- }
294
- if (zindex && sub) {
295
- index_1.ElementStyleUtil.set(sub, 'z-index', zindex);
296
- }
297
- if (width && sub) {
298
- index_1.ElementStyleUtil.set(sub, 'width', width);
299
- }
300
- if (height && sub) {
301
- index_1.ElementStyleUtil.set(sub, 'height', height);
302
- }
303
- _this.initDropdownPopper(item, sub);
304
- item.classList.add('show');
305
- item.classList.add('menu-dropdown');
306
- sub === null || sub === void 0 ? void 0 : sub.classList.add('show');
307
- // Append the sub the the root of the menu
308
- if (_this._getItemOption(item, 'overflow') === true) {
309
- if (sub) {
310
- document.body.appendChild(sub);
311
- index_1.DataUtil.set(item, 'sub', sub);
312
- index_1.DataUtil.set(sub, 'item', item);
313
- index_1.DataUtil.set(sub, 'menu', _this);
314
- }
327
+ }
328
+ EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown');
329
+ };
330
+ // Init dropdown popper(new)
331
+ initDropdownPopper = (item, sub) => {
332
+ // Setup popper instance
333
+ let reference;
334
+ const attach = this._getItemOption(item, 'attach');
335
+ if (attach) {
336
+ if (attach === 'parent') {
337
+ reference = item.parentNode;
315
338
  }
316
339
  else {
317
- if (sub) {
318
- index_1.DataUtil.set(sub, 'item', item);
319
- }
340
+ reference = document.querySelector(attach);
320
341
  }
321
- index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.dropdown.shown');
322
- };
323
- // Init dropdown popper(new)
324
- this.initDropdownPopper = function (item, sub) {
325
- // Setup popper instance
326
- var reference;
327
- var attach = _this._getItemOption(item, 'attach');
328
- if (attach) {
329
- if (attach === 'parent') {
330
- reference = item.parentNode;
331
- }
332
- else {
333
- reference = document.querySelector(attach);
342
+ }
343
+ else {
344
+ reference = item;
345
+ }
346
+ if (reference) {
347
+ const popper = createPopper(reference, sub, this._getDropdownPopperConfig(item));
348
+ DataUtil.set(item, 'popper', popper);
349
+ }
350
+ };
351
+ // Hide item dropdown
352
+ _hideDropdown = (item) => {
353
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {
354
+ return;
355
+ }
356
+ const sub = this._getItemSubElement(item);
357
+ if (sub) {
358
+ ElementStyleUtil.set(sub, 'z-index', '');
359
+ ElementStyleUtil.set(sub, 'width', '');
360
+ ElementStyleUtil.set(sub, 'height', '');
361
+ }
362
+ item.classList.remove('show');
363
+ item.classList.remove('menu-dropdown');
364
+ if (sub) {
365
+ sub.classList.remove('show');
366
+ }
367
+ // Append the sub back to it's parent
368
+ if (this._getItemOption(item, 'overflow') === true) {
369
+ if (item.classList.contains('menu-item')) {
370
+ if (sub) {
371
+ item.appendChild(sub);
334
372
  }
335
373
  }
336
374
  else {
337
- reference = item;
338
- }
339
- if (reference) {
340
- var popper = (0, core_1.createPopper)(reference, sub, _this._getDropdownPopperConfig(item));
341
- index_1.DataUtil.set(item, 'popper', popper);
375
+ insertAfterElement(this.element, item);
342
376
  }
343
- };
344
- // Hide item dropdown
345
- this._hideDropdown = function (item) {
346
- if (index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.dropdown.hide') === false) {
347
- return;
348
- }
349
- var sub = _this._getItemSubElement(item);
350
377
  if (sub) {
351
- index_1.ElementStyleUtil.set(sub, 'z-index', '');
352
- index_1.ElementStyleUtil.set(sub, 'width', '');
353
- index_1.ElementStyleUtil.set(sub, 'height', '');
378
+ DataUtil.remove(item, 'sub');
379
+ DataUtil.remove(sub, 'item');
380
+ DataUtil.remove(sub, 'menu');
354
381
  }
355
- item.classList.remove('show');
356
- item.classList.remove('menu-dropdown');
357
- if (sub) {
382
+ }
383
+ if (DataUtil.has(item, 'popper') === true) {
384
+ // @ts-ignore
385
+ DataUtil.get(item, 'popper').destroy();
386
+ DataUtil.remove(item, 'popper');
387
+ }
388
+ // Destroy popper(new)
389
+ this.destroyDropdownPopper(item);
390
+ EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden');
391
+ };
392
+ // Destroy dropdown popper(new)
393
+ destroyDropdownPopper = (item) => {
394
+ if (DataUtil.has(item, 'popper') === true) {
395
+ // @ts-ignore
396
+ DataUtil.get(item, 'popper').destroy();
397
+ DataUtil.remove(item, 'popper');
398
+ }
399
+ EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden');
400
+ };
401
+ _showAccordion = (item) => {
402
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {
403
+ return;
404
+ }
405
+ if (this.options.accordion.expand === false) {
406
+ this._hideAccordions(item);
407
+ }
408
+ if (DataUtil.has(item, 'popper') === true) {
409
+ this._hideDropdown(item);
410
+ }
411
+ item.classList.add('hover'); // updateWW
412
+ item.classList.add('showing');
413
+ const subElement = this._getItemSubElement(item);
414
+ if (subElement) {
415
+ const sub = subElement;
416
+ slideDown(sub, this.options.accordion.slideSpeed, () => {
417
+ item.classList.remove('showing');
418
+ item.classList.add('show');
419
+ sub.classList.add('show');
420
+ EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown');
421
+ });
422
+ }
423
+ };
424
+ _hideAccordion = (item) => {
425
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {
426
+ return;
427
+ }
428
+ const sub = this._getItemSubElement(item);
429
+ item.classList.add('hiding');
430
+ if (sub) {
431
+ slideUp(sub, this.options.accordion.slideSpeed, () => {
432
+ item.classList.remove('hiding');
433
+ item.classList.remove('show');
358
434
  sub.classList.remove('show');
359
- }
360
- // Append the sub back to it's parent
361
- if (_this._getItemOption(item, 'overflow') === true) {
362
- if (item.classList.contains('menu-item')) {
363
- if (sub) {
364
- item.appendChild(sub);
365
- }
366
- }
367
- else {
368
- (0, index_1.insertAfterElement)(_this.element, item);
369
- }
370
- if (sub) {
371
- index_1.DataUtil.remove(item, 'sub');
372
- index_1.DataUtil.remove(sub, 'item');
373
- index_1.DataUtil.remove(sub, 'menu');
435
+ item.classList.remove('hover'); // update
436
+ EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden');
437
+ });
438
+ }
439
+ };
440
+ // Hide all shown accordions of item
441
+ _hideAccordions = (item) => {
442
+ const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]');
443
+ if (itemsToHide && itemsToHide.length > 0) {
444
+ for (let i = 0, len = itemsToHide.length; i < len; i++) {
445
+ const itemToHide = itemsToHide[i];
446
+ if (this._getItemSubType(itemToHide) === 'accordion' &&
447
+ itemToHide !== item &&
448
+ item.contains(itemToHide) === false &&
449
+ itemToHide.contains(item) === false) {
450
+ this._hideAccordion(itemToHide);
374
451
  }
375
452
  }
376
- if (index_1.DataUtil.has(item, 'popper') === true) {
377
- // @ts-ignore
378
- index_1.DataUtil.get(item, 'popper').destroy();
379
- index_1.DataUtil.remove(item, 'popper');
380
- }
381
- // Destroy popper(new)
382
- _this.destroyDropdownPopper(item);
383
- index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.dropdown.hidden');
384
- };
385
- // Destroy dropdown popper(new)
386
- this.destroyDropdownPopper = function (item) {
387
- if (index_1.DataUtil.has(item, 'popper') === true) {
388
- // @ts-ignore
389
- index_1.DataUtil.get(item, 'popper').destroy();
390
- index_1.DataUtil.remove(item, 'popper');
391
- }
392
- index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.dropdown.hidden');
393
- };
394
- this._showAccordion = function (item) {
395
- if (index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.accordion.show') === false) {
396
- return;
397
- }
398
- if (_this.options.accordion.expand === false) {
399
- _this._hideAccordions(item);
400
- }
401
- if (index_1.DataUtil.has(item, 'popper') === true) {
402
- _this._hideDropdown(item);
403
- }
404
- item.classList.add('hover'); // updateWW
405
- item.classList.add('showing');
406
- var subElement = _this._getItemSubElement(item);
407
- if (subElement) {
408
- var sub_1 = subElement;
409
- (0, index_1.slideDown)(sub_1, _this.options.accordion.slideSpeed, function () {
410
- item.classList.remove('showing');
411
- item.classList.add('show');
412
- sub_1.classList.add('show');
413
- index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.accordion.shown');
414
- });
415
- }
416
- };
417
- this._hideAccordion = function (item) {
418
- if (index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.accordion.hide') === false) {
419
- return;
420
- }
421
- var sub = _this._getItemSubElement(item);
422
- item.classList.add('hiding');
453
+ }
454
+ };
455
+ // Event Handlers
456
+ // Reset item state classes if item sub type changed
457
+ _reset = (item) => {
458
+ if (this._hasItemSub(item) === false) {
459
+ return;
460
+ }
461
+ const sub = this._getItemSubElement(item);
462
+ // Reset sub state if sub type is changed during the window resize
463
+ if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {
464
+ // updated
465
+ item.classList.remove('hover');
466
+ item.classList.remove('show');
467
+ item.classList.remove('show');
423
468
  if (sub) {
424
- (0, index_1.slideUp)(sub, _this.options.accordion.slideSpeed, function () {
425
- item.classList.remove('hiding');
426
- item.classList.remove('show');
427
- sub.classList.remove('show');
428
- item.classList.remove('hover'); // update
429
- index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.accordion.hidden');
430
- });
469
+ sub.classList.remove('show');
431
470
  }
432
- };
433
- // Hide all shown accordions of item
434
- this._hideAccordions = function (item) {
435
- var itemsToHide = _this.element.querySelectorAll('.show[data-kt-menu-trigger]');
436
- if (itemsToHide && itemsToHide.length > 0) {
437
- for (var i = 0, len = itemsToHide.length; i < len; i++) {
438
- var itemToHide = itemsToHide[i];
439
- if (_this._getItemSubType(itemToHide) === 'accordion' &&
440
- itemToHide !== item &&
441
- item.contains(itemToHide) === false &&
442
- itemToHide.contains(item) === false) {
443
- _this._hideAccordion(itemToHide);
444
- }
445
- }
471
+ } // updated
472
+ };
473
+ // TODO: not done
474
+ _destroy = () => { };
475
+ // Update all item state classes if item sub type changed
476
+ _update = () => {
477
+ const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]');
478
+ items.forEach((el) => this._reset(el));
479
+ };
480
+ // Hide item sub
481
+ _hide = (item) => {
482
+ if (!item) {
483
+ return;
484
+ }
485
+ if (this._isItemSubShown(item) === false) {
486
+ return;
487
+ }
488
+ if (this._getItemSubType(item) === 'dropdown') {
489
+ this._hideDropdown(item);
490
+ }
491
+ else if (this._getItemSubType(item) === 'accordion') {
492
+ this._hideAccordion(item);
493
+ }
494
+ };
495
+ // Show item sub
496
+ _show = (item) => {
497
+ if (!item) {
498
+ return;
499
+ }
500
+ if (this._isItemSubShown(item) === true) {
501
+ return;
502
+ }
503
+ if (this._getItemSubType(item) === 'dropdown') {
504
+ this._showDropdown(item); // // show current dropdown
505
+ }
506
+ else if (this._getItemSubType(item) === 'accordion') {
507
+ this._showAccordion(item);
508
+ }
509
+ // Remember last submenu type
510
+ DataUtil.set(item, 'type', this._getItemSubType(item)); // updated
511
+ };
512
+ // Toggle item sub
513
+ _toggle = (item) => {
514
+ if (!item) {
515
+ return;
516
+ }
517
+ if (this._isItemSubShown(item) === true) {
518
+ this._hide(item);
519
+ }
520
+ else {
521
+ this._show(item);
522
+ }
523
+ };
524
+ // Mouseout handle
525
+ _mouseout = (element, e) => {
526
+ const item = this._getItemElement(element);
527
+ if (!item) {
528
+ return;
529
+ }
530
+ if (this._getItemOption(item, 'trigger') !== 'hover') {
531
+ return;
532
+ }
533
+ const timeout = setTimeout(() => {
534
+ if (DataUtil.get(item, 'hover') === '1') {
535
+ this._hide(item);
446
536
  }
447
- };
448
- // Event Handlers
449
- // Reset item state classes if item sub type changed
450
- this._reset = function (item) {
451
- if (_this._hasItemSub(item) === false) {
452
- return;
537
+ }, this.options.dropdown.hoverTimeout);
538
+ DataUtil.set(item, 'hover', '1');
539
+ DataUtil.set(item, 'timeout', timeout);
540
+ };
541
+ // Mouseover handle
542
+ _mouseover = (element, e) => {
543
+ const item = this._getItemElement(element);
544
+ if (!item) {
545
+ return;
546
+ }
547
+ if (this._getItemOption(item, 'trigger') !== 'hover') {
548
+ return;
549
+ }
550
+ if (DataUtil.get(item, 'hover') === '1') {
551
+ const timeout = DataUtil.get(item, 'timeout');
552
+ if (timeout) {
553
+ clearTimeout(timeout);
453
554
  }
454
- var sub = _this._getItemSubElement(item);
455
- // Reset sub state if sub type is changed during the window resize
456
- if (index_1.DataUtil.has(item, 'type') && index_1.DataUtil.get(item, 'type') !== _this._getItemSubType(item)) {
457
- // updated
458
- item.classList.remove('hover');
459
- item.classList.remove('show');
460
- item.classList.remove('show');
461
- if (sub) {
462
- sub.classList.remove('show');
555
+ DataUtil.remove(item, 'hover');
556
+ DataUtil.remove(item, 'timeout');
557
+ }
558
+ this._show(item);
559
+ };
560
+ // Dismiss handler
561
+ _dismiss = (element, e) => {
562
+ const item = this._getItemElement(element);
563
+ if (!item) {
564
+ return;
565
+ }
566
+ const items = this._getItemChildElements(item);
567
+ //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {
568
+ const itemSubType = this._getItemSubType(item);
569
+ if (item !== null && itemSubType === 'dropdown') {
570
+ this._hide(item); // hide items dropdown
571
+ // Hide all child elements as well
572
+ if (items.length > 0) {
573
+ for (let i = 0, len = items.length; i < len; i++) {
574
+ //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {
575
+ if (items[i] !== null && this._getItemSubType(items[i]) === 'dropdown') {
576
+ this._hide(items[i]);
577
+ }
463
578
  }
464
- } // updated
465
- };
466
- // TODO: not done
467
- this._destroy = function () { };
468
- // Update all item state classes if item sub type changed
469
- this._update = function () {
470
- var items = _this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]');
471
- items.forEach(function (el) { return _this._reset(el); });
472
- };
473
- // Hide item sub
474
- this._hide = function (item) {
475
- if (!item) {
476
- return;
477
- }
478
- if (_this._isItemSubShown(item) === false) {
479
- return;
480
- }
481
- if (_this._getItemSubType(item) === 'dropdown') {
482
- _this._hideDropdown(item);
483
- }
484
- else if (_this._getItemSubType(item) === 'accordion') {
485
- _this._hideAccordion(item);
486
- }
487
- };
488
- // Show item sub
489
- this._show = function (item) {
490
- if (!item) {
491
- return;
492
- }
493
- if (_this._isItemSubShown(item) === true) {
494
- return;
495
- }
496
- if (_this._getItemSubType(item) === 'dropdown') {
497
- _this._showDropdown(item); // // show current dropdown
498
579
  }
499
- else if (_this._getItemSubType(item) === 'accordion') {
500
- _this._showAccordion(item);
501
- }
502
- // Remember last submenu type
503
- index_1.DataUtil.set(item, 'type', _this._getItemSubType(item)); // updated
504
- };
505
- // Toggle item sub
506
- this._toggle = function (item) {
507
- if (!item) {
580
+ }
581
+ };
582
+ // Link handler
583
+ _link = (element, e) => {
584
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {
585
+ return;
586
+ }
587
+ // Dismiss all shown dropdowns
588
+ MenuComponent.hideDropdowns(undefined);
589
+ EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked');
590
+ };
591
+ _click = (element, e) => {
592
+ e.preventDefault();
593
+ const item = this._getItemElement(element);
594
+ if (item) {
595
+ if (this._getItemOption(item, 'trigger') !== 'click') {
508
596
  return;
509
597
  }
510
- if (_this._isItemSubShown(item) === true) {
511
- _this._hide(item);
598
+ if (this._getItemOption(item, 'toggle') === false) {
599
+ this._show(item);
512
600
  }
513
601
  else {
514
- _this._show(item);
515
- }
516
- };
517
- // Mouseout handle
518
- this._mouseout = function (element, e) {
519
- var item = _this._getItemElement(element);
520
- if (!item) {
521
- return;
602
+ this._toggle(item);
522
603
  }
523
- if (_this._getItemOption(item, 'trigger') !== 'hover') {
524
- return;
525
- }
526
- var timeout = setTimeout(function () {
527
- if (index_1.DataUtil.get(item, 'hover') === '1') {
528
- _this._hide(item);
529
- }
530
- }, _this.options.dropdown.hoverTimeout);
531
- index_1.DataUtil.set(item, 'hover', '1');
532
- index_1.DataUtil.set(item, 'timeout', timeout);
533
- };
534
- // Mouseover handle
535
- this._mouseover = function (element, e) {
536
- var item = _this._getItemElement(element);
537
- if (!item) {
538
- return;
539
- }
540
- if (_this._getItemOption(item, 'trigger') !== 'hover') {
541
- return;
542
- }
543
- if (index_1.DataUtil.get(item, 'hover') === '1') {
544
- var timeout = index_1.DataUtil.get(item, 'timeout');
545
- if (timeout) {
546
- clearTimeout(timeout);
547
- }
548
- index_1.DataUtil.remove(item, 'hover');
549
- index_1.DataUtil.remove(item, 'timeout');
550
- }
551
- _this._show(item);
552
- };
553
- // Dismiss handler
554
- this._dismiss = function (element, e) {
555
- var item = _this._getItemElement(element);
556
- if (!item) {
557
- return;
558
- }
559
- var items = _this._getItemChildElements(item);
560
- //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {
561
- var itemSubType = _this._getItemSubType(item);
562
- if (item !== null && itemSubType === 'dropdown') {
563
- _this._hide(item); // hide items dropdown
564
- // Hide all child elements as well
565
- if (items.length > 0) {
566
- for (var i = 0, len = items.length; i < len; i++) {
567
- //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {
568
- if (items[i] !== null && _this._getItemSubType(items[i]) === 'dropdown') {
569
- _this._hide(items[i]);
570
- }
571
- }
572
- }
573
- }
574
- };
575
- // Link handler
576
- this._link = function (element, e) {
577
- if (index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.link.click') === false) {
578
- return;
579
- }
580
- // Dismiss all shown dropdowns
581
- MenuComponent.hideDropdowns(undefined);
582
- index_1.EventHandlerUtil.trigger(_this.element, 'kt.menu.link.clicked');
583
- };
584
- this._click = function (element, e) {
585
- e.preventDefault();
586
- var item = _this._getItemElement(element);
587
- if (item) {
588
- if (_this._getItemOption(item, 'trigger') !== 'click') {
589
- return;
590
- }
591
- if (_this._getItemOption(item, 'toggle') === false) {
592
- _this._show(item);
593
- }
594
- else {
595
- _this._toggle(item);
596
- }
597
- }
598
- };
599
- ///////////////////////
600
- // ** Public API ** //
601
- ///////////////////////
602
- this.click = function (element, e) {
603
- return _this._click(element, e);
604
- };
605
- this.link = function (element, e) {
606
- return _this._link(element, e);
607
- };
608
- this.dismiss = function (element, e) {
609
- return _this._dismiss(element, e);
610
- };
611
- this.mouseover = function (element, e) {
612
- return _this._mouseover(element, e);
613
- };
614
- this.mouseout = function (element, e) {
615
- return _this._mouseout(element, e);
616
- };
617
- // General Methods
618
- this.getItemTriggerType = function (item) {
619
- return _this._getItemOption(item, 'trigger');
620
- };
621
- this.getItemSubType = function (element) {
622
- return _this._getItemSubType(element);
623
- };
624
- this.show = function (item) {
625
- return _this._show(item);
626
- };
627
- this.hide = function (item) {
628
- return _this._hide(item);
629
- };
630
- this.reset = function (item) {
631
- return _this._reset(item);
632
- };
633
- this.update = function () {
634
- return _this._update();
635
- };
636
- this.getElement = function () {
637
- return _this.element;
638
- };
639
- this.getItemLinkElement = function (item) {
640
- return _this._getItemLinkElement(item);
641
- };
642
- this.getItemToggleElement = function (item) {
643
- return _this._getItemToggleElement(item);
644
- };
645
- this.getItemSubElement = function (item) {
646
- return _this._getItemSubElement(item);
647
- };
648
- this.getItemParentElements = function (item) {
649
- return _this._getItemParentElements(item);
650
- };
651
- this.isItemSubShown = function (item) {
652
- return _this._isItemSubShown(item);
653
- };
654
- this.isItemParentShown = function (item) {
655
- return _this._isItemParentShown(item);
656
- };
657
- this.getTriggerElement = function () {
658
- return _this.triggerElement;
659
- };
660
- this.isItemDropdownPermanent = function (item) {
661
- return _this._isItemDropdownPermanent(item);
662
- };
663
- // Accordion Mode Methods
664
- this.hideAccordions = function (item) {
665
- return _this._hideAccordions(item);
666
- };
667
- // Event API
668
- this.on = function (name, handler) {
669
- return index_1.EventHandlerUtil.on(_this.element, name, handler);
670
- };
671
- this.one = function (name, handler) {
672
- return index_1.EventHandlerUtil.one(_this.element, name, handler);
673
- };
674
- this.off = function (name, handlerId) {
675
- return index_1.EventHandlerUtil.off(_this.element, name, handlerId);
676
- };
677
- this.element = _element;
678
- this.options = Object.assign(defaultMenuOptions, options);
679
- this.instanceUid = (0, index_1.getUniqueIdWithPrefix)('menu');
680
- // this.element.setAttribute('data-kt-menu', 'true')
681
- this._setTriggerElement();
682
- this._update();
683
- index_1.DataUtil.set(this.element, 'menu', this);
684
- return this;
685
- }
604
+ }
605
+ };
606
+ ///////////////////////
607
+ // ** Public API ** //
608
+ ///////////////////////
609
+ click = (element, e) => {
610
+ return this._click(element, e);
611
+ };
612
+ link = (element, e) => {
613
+ return this._link(element, e);
614
+ };
615
+ dismiss = (element, e) => {
616
+ return this._dismiss(element, e);
617
+ };
618
+ mouseover = (element, e) => {
619
+ return this._mouseover(element, e);
620
+ };
621
+ mouseout = (element, e) => {
622
+ return this._mouseout(element, e);
623
+ };
624
+ // General Methods
625
+ getItemTriggerType = (item) => {
626
+ return this._getItemOption(item, 'trigger');
627
+ };
628
+ getItemSubType = (element) => {
629
+ return this._getItemSubType(element);
630
+ };
631
+ show = (item) => {
632
+ return this._show(item);
633
+ };
634
+ hide = (item) => {
635
+ return this._hide(item);
636
+ };
637
+ reset = (item) => {
638
+ return this._reset(item);
639
+ };
640
+ update = () => {
641
+ return this._update();
642
+ };
643
+ getElement = () => {
644
+ return this.element;
645
+ };
646
+ getItemLinkElement = (item) => {
647
+ return this._getItemLinkElement(item);
648
+ };
649
+ getItemToggleElement = (item) => {
650
+ return this._getItemToggleElement(item);
651
+ };
652
+ getItemSubElement = (item) => {
653
+ return this._getItemSubElement(item);
654
+ };
655
+ getItemParentElements = (item) => {
656
+ return this._getItemParentElements(item);
657
+ };
658
+ isItemSubShown = (item) => {
659
+ return this._isItemSubShown(item);
660
+ };
661
+ isItemParentShown = (item) => {
662
+ return this._isItemParentShown(item);
663
+ };
664
+ getTriggerElement = () => {
665
+ return this.triggerElement;
666
+ };
667
+ isItemDropdownPermanent = (item) => {
668
+ return this._isItemDropdownPermanent(item);
669
+ };
670
+ // Accordion Mode Methods
671
+ hideAccordions = (item) => {
672
+ return this._hideAccordions(item);
673
+ };
674
+ // Event API
675
+ on = (name, handler) => {
676
+ return EventHandlerUtil.on(this.element, name, handler);
677
+ };
678
+ one = (name, handler) => {
679
+ return EventHandlerUtil.one(this.element, name, handler);
680
+ };
681
+ off = (name, handlerId) => {
682
+ return EventHandlerUtil.off(this.element, name, handlerId);
683
+ };
686
684
  // public static methods
687
685
  // Get KTMenu instance by element
688
- MenuComponent.getInstance = function (element) {
686
+ static getInstance = (element) => {
689
687
  // Element has menu DOM reference in it's DATA storage
690
- var elementMenu = index_1.DataUtil.get(element, 'menu');
688
+ const elementMenu = DataUtil.get(element, 'menu');
691
689
  if (elementMenu) {
692
690
  return elementMenu;
693
691
  }
694
692
  // Element has .menu parent
695
- var menu = element.closest('.menu');
693
+ const menu = element.closest('.menu');
696
694
  if (menu) {
697
- var menuData = index_1.DataUtil.get(menu, 'menu');
695
+ const menuData = DataUtil.get(menu, 'menu');
698
696
  if (menuData) {
699
697
  return menuData;
700
698
  }
701
699
  }
702
700
  // Element has a parent with DOM reference to .menu in it's DATA storage
703
701
  if (element.classList.contains('menu-link')) {
704
- var sub = element.closest('.menu-sub');
702
+ const sub = element.closest('.menu-sub');
705
703
  if (sub) {
706
- var subMenu = index_1.DataUtil.get(sub, 'menu');
704
+ const subMenu = DataUtil.get(sub, 'menu');
707
705
  if (subMenu) {
708
706
  return subMenu;
709
707
  }
@@ -712,12 +710,12 @@ var MenuComponent = /** @class */ (function () {
712
710
  return null;
713
711
  };
714
712
  // Hide all dropdowns and skip one if provided
715
- MenuComponent.hideDropdowns = function (skip) {
716
- var items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]');
713
+ static hideDropdowns = (skip) => {
714
+ const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]');
717
715
  if (items && items.length > 0) {
718
- for (var i = 0, len = items.length; i < len; i++) {
719
- var item = items[i];
720
- var menu = MenuComponent.getInstance(item);
716
+ for (let i = 0, len = items.length; i < len; i++) {
717
+ const item = items[i];
718
+ const menu = MenuComponent.getInstance(item);
721
719
  if (menu && menu.getItemSubType(item) === 'dropdown') {
722
720
  if (skip) {
723
721
  if (
@@ -735,41 +733,41 @@ var MenuComponent = /** @class */ (function () {
735
733
  }
736
734
  }
737
735
  };
738
- MenuComponent.updateDropdowns = function () {
739
- var items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]');
736
+ static updateDropdowns = () => {
737
+ const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]');
740
738
  if (items && items.length > 0) {
741
- for (var i = 0, len = items.length; i < len; i++) {
742
- var item = items[i];
743
- if (index_1.DataUtil.has(item, 'popper')) {
739
+ for (let i = 0, len = items.length; i < len; i++) {
740
+ const item = items[i];
741
+ if (DataUtil.has(item, 'popper')) {
744
742
  // @ts-ignore
745
- index_1.DataUtil.get(item, 'popper').forceUpdate();
743
+ DataUtil.get(item, 'popper').forceUpdate();
746
744
  }
747
745
  }
748
746
  }
749
747
  };
750
748
  // Global handlers
751
- MenuComponent.createInstances = function (selector) {
749
+ static createInstances = (selector) => {
752
750
  // Initialize menus
753
- document.querySelectorAll(selector).forEach(function (el) {
754
- var menuItem = el;
755
- var menuInstance = MenuComponent.getInstance(menuItem);
751
+ document.querySelectorAll(selector).forEach((el) => {
752
+ const menuItem = el;
753
+ let menuInstance = MenuComponent.getInstance(menuItem);
756
754
  if (!menuInstance) {
757
755
  menuInstance = new MenuComponent(el, defaultMenuOptions);
758
756
  }
759
757
  });
760
758
  };
761
- MenuComponent.initGlobalHandlers = function () {
759
+ static initGlobalHandlers = () => {
762
760
  // Dropdown handler
763
- document.addEventListener('click', function (e) {
764
- var menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]:not([data-kt-menu-static="true"])');
761
+ document.addEventListener('click', (e) => {
762
+ const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]:not([data-kt-menu-static="true"])');
765
763
  if (menuItems && menuItems.length > 0) {
766
- for (var i = 0; i < menuItems.length; i++) {
767
- var item = menuItems[i];
768
- var menuObj = MenuComponent.getInstance(item);
764
+ for (let i = 0; i < menuItems.length; i++) {
765
+ const item = menuItems[i];
766
+ const menuObj = MenuComponent.getInstance(item);
769
767
  if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {
770
768
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
771
- var menu = menuObj.getElement();
772
- var sub = menuObj.getItemSubElement(item);
769
+ const menu = menuObj.getElement();
770
+ const sub = menuObj.getItemSubElement(item);
773
771
  if (item === e.target || item.contains(e.target)) {
774
772
  continue;
775
773
  }
@@ -782,49 +780,49 @@ var MenuComponent = /** @class */ (function () {
782
780
  }
783
781
  });
784
782
  // Sub toggle handler
785
- index_1.DOMEventHandlerUtil.on(document.body, '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger="auto"])', 'click', function (e) {
786
- var menu = MenuComponent.getInstance(this);
783
+ DOMEventHandlerUtil.on(document.body, '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger="auto"])', 'click', function (e) {
784
+ const menu = MenuComponent.getInstance(this);
787
785
  if (menu) {
788
786
  return menu.click(this, e);
789
787
  }
790
788
  });
791
789
  // // Link handler
792
- index_1.DOMEventHandlerUtil.on(document.body, '.menu-item:not([data-kt-menu-trigger]) > .menu-link', 'click', function (e) {
790
+ DOMEventHandlerUtil.on(document.body, '.menu-item:not([data-kt-menu-trigger]) > .menu-link', 'click', function (e) {
793
791
  e.stopPropagation();
794
- var menu = MenuComponent.getInstance(this);
792
+ const menu = MenuComponent.getInstance(this);
795
793
  if (menu && menu.link) {
796
794
  return menu.link(this, e);
797
795
  }
798
796
  });
799
797
  // Dismiss handler
800
- index_1.DOMEventHandlerUtil.on(document.body, '[data-kt-menu-dismiss="true"]', 'click', function (e) {
801
- var menu = MenuComponent.getInstance(this);
798
+ DOMEventHandlerUtil.on(document.body, '[data-kt-menu-dismiss="true"]', 'click', function (e) {
799
+ const menu = MenuComponent.getInstance(this);
802
800
  if (menu) {
803
801
  return menu.dismiss(this, e);
804
802
  }
805
803
  });
806
804
  // Mouseover handler
807
- index_1.DOMEventHandlerUtil.on(document.body, '[data-kt-menu-trigger], .menu-sub', 'mouseover', function (e) {
808
- var menu = MenuComponent.getInstance(this);
805
+ DOMEventHandlerUtil.on(document.body, '[data-kt-menu-trigger], .menu-sub', 'mouseover', function (e) {
806
+ const menu = MenuComponent.getInstance(this);
809
807
  if (menu && menu.getItemSubType(this) === 'dropdown') {
810
808
  return menu.mouseover(this, e);
811
809
  }
812
810
  });
813
811
  // Mouseout handler
814
- index_1.DOMEventHandlerUtil.on(document.body, '[data-kt-menu-trigger], .menu-sub', 'mouseout', function (e) {
815
- var menu = MenuComponent.getInstance(this);
812
+ DOMEventHandlerUtil.on(document.body, '[data-kt-menu-trigger], .menu-sub', 'mouseout', function (e) {
813
+ const menu = MenuComponent.getInstance(this);
816
814
  if (menu && menu.getItemSubType(this) === 'dropdown') {
817
815
  return menu.mouseout(this, e);
818
816
  }
819
817
  });
820
818
  // Resize handler
821
- window.addEventListener('resize', function () {
822
- var timer;
823
- (0, index_1.throttle)(timer, function () {
819
+ window.addEventListener('resize', () => {
820
+ let timer;
821
+ throttle(timer, () => {
824
822
  // Locate and update Drawer instances on window resize
825
- var elements = document.querySelectorAll('[data-kt-menu="true"]');
826
- elements.forEach(function (el) {
827
- var menu = MenuComponent.getInstance(el);
823
+ const elements = document.querySelectorAll('[data-kt-menu="true"]');
824
+ elements.forEach((el) => {
825
+ const menu = MenuComponent.getInstance(el);
828
826
  if (menu) {
829
827
  menu.update();
830
828
  }
@@ -832,26 +830,24 @@ var MenuComponent = /** @class */ (function () {
832
830
  }, 200);
833
831
  });
834
832
  };
835
- MenuComponent.bootstrap = function () {
833
+ static bootstrap = () => {
836
834
  MenuComponent.initGlobalHandlers();
837
835
  MenuComponent.createInstances('[data-kt-menu="true"]');
838
836
  };
839
- MenuComponent.reinitialization = function () {
837
+ static reinitialization = () => {
840
838
  MenuComponent.createInstances('[data-kt-menu="true"]');
841
839
  };
842
- MenuComponent.createInsance = function (selector, options) {
843
- if (options === void 0) { options = defaultMenuOptions; }
844
- var element = document.body.querySelector(selector);
840
+ static createInsance = (selector, options = defaultMenuOptions) => {
841
+ const element = document.body.querySelector(selector);
845
842
  if (!element) {
846
843
  return;
847
844
  }
848
- var item = element;
849
- var menu = MenuComponent.getInstance(item);
845
+ const item = element;
846
+ let menu = MenuComponent.getInstance(item);
850
847
  if (!menu) {
851
848
  menu = new MenuComponent(item, options);
852
849
  }
853
850
  return menu;
854
851
  };
855
- return MenuComponent;
856
- }());
857
- exports.MenuComponent = MenuComponent;
852
+ }
853
+ export { MenuComponent, defaultMenuOptions };