@hitsoft/e-donusum 1.0.5

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 (693) hide show
  1. package/.eslintrc.json +44 -0
  2. package/README.md +24 -0
  3. package/_metronic/kt/_utils/DomHelpers.ts +478 -0
  4. package/_metronic/kt/_utils/ElementAnimateUtil.ts +111 -0
  5. package/_metronic/kt/_utils/EventHandlerUtil.ts +144 -0
  6. package/_metronic/kt/_utils/_DOMEventHandlerUtil.ts +60 -0
  7. package/_metronic/kt/_utils/_DataUtil.ts +72 -0
  8. package/_metronic/kt/_utils/_ElementStyleUtil.ts +17 -0
  9. package/_metronic/kt/_utils/_TypesHelpers.ts +54 -0
  10. package/_metronic/kt/_utils/index.ts +12 -0
  11. package/_metronic/kt/_utils/models/OffsetModel.ts +4 -0
  12. package/_metronic/kt/_utils/models/ViewPortModel.ts +4 -0
  13. package/_metronic/kt/components/MenuComponent.ts +1093 -0
  14. package/_metronic/kt/components/_CookieComponent.ts +60 -0
  15. package/_metronic/kt/components/_DrawerComponent.ts +385 -0
  16. package/_metronic/kt/components/_FeedbackComponent.ts +152 -0
  17. package/_metronic/kt/components/_PasswordMeterComponent.ts +273 -0
  18. package/_metronic/kt/components/_ScrollComponent.ts +312 -0
  19. package/_metronic/kt/components/_ScrollTopComponent.ts +148 -0
  20. package/_metronic/kt/components/_StepperComponent.ts +354 -0
  21. package/_metronic/kt/components/_StickyComponent.ts +293 -0
  22. package/_metronic/kt/components/_SwapperComponent.ts +208 -0
  23. package/_metronic/kt/components/_ToggleComponent.ts +218 -0
  24. package/_metronic/kt/components/index.ts +11 -0
  25. package/_metronic/kt/index.ts +3 -0
  26. package/_metronic/kt/kt-helpers.ts +12 -0
  27. package/_metronic/kt/layout/ThemeMode.ts +211 -0
  28. package/_metronic/kt/layout/index.ts +1 -0
  29. package/_metronic/layout/components/content/content.component.html +12 -0
  30. package/_metronic/layout/components/content/content.component.scss +0 -0
  31. package/_metronic/layout/components/content/content.component.ts +35 -0
  32. package/_metronic/layout/components/footer/footer.component.html +32 -0
  33. package/_metronic/layout/components/footer/footer.component.scss +0 -0
  34. package/_metronic/layout/components/footer/footer.component.spec.ts +25 -0
  35. package/_metronic/layout/components/footer/footer.component.ts +13 -0
  36. package/_metronic/layout/components/header/header-menu/header-menu.component.html +546 -0
  37. package/_metronic/layout/components/header/header-menu/header-menu.component.scss +4 -0
  38. package/_metronic/layout/components/header/header-menu/header-menu.component.spec.ts +25 -0
  39. package/_metronic/layout/components/header/header-menu/header-menu.component.ts +53 -0
  40. package/_metronic/layout/components/header/header.component.html +87 -0
  41. package/_metronic/layout/components/header/header.component.scss +0 -0
  42. package/_metronic/layout/components/header/header.component.spec.ts +25 -0
  43. package/_metronic/layout/components/header/header.component.ts +139 -0
  44. package/_metronic/layout/components/header/navbar/navbar.component.html +92 -0
  45. package/_metronic/layout/components/header/navbar/navbar.component.scss +0 -0
  46. package/_metronic/layout/components/header/navbar/navbar.component.spec.ts +23 -0
  47. package/_metronic/layout/components/header/navbar/navbar.component.ts +26 -0
  48. package/_metronic/layout/components/header/page-title/page-title.component.html +57 -0
  49. package/_metronic/layout/components/header/page-title/page-title.component.ts +31 -0
  50. package/_metronic/layout/components/scripts-init/scripts-init.component.html +0 -0
  51. package/_metronic/layout/components/scripts-init/scripts-init.component.ts +82 -0
  52. package/_metronic/layout/components/sidebar/sidebar-footer/sidebar-footer.component.html +9 -0
  53. package/_metronic/layout/components/sidebar/sidebar-footer/sidebar-footer.component.scss +0 -0
  54. package/_metronic/layout/components/sidebar/sidebar-footer/sidebar-footer.component.spec.ts +23 -0
  55. package/_metronic/layout/components/sidebar/sidebar-footer/sidebar-footer.component.ts +15 -0
  56. package/_metronic/layout/components/sidebar/sidebar-logo/sidebar-logo.component.html +26 -0
  57. package/_metronic/layout/components/sidebar/sidebar-logo/sidebar-logo.component.scss +0 -0
  58. package/_metronic/layout/components/sidebar/sidebar-logo/sidebar-logo.component.spec.ts +23 -0
  59. package/_metronic/layout/components/sidebar/sidebar-logo/sidebar-logo.component.ts +36 -0
  60. package/_metronic/layout/components/sidebar/sidebar-menu/sidebar-menu.component.html +397 -0
  61. package/_metronic/layout/components/sidebar/sidebar-menu/sidebar-menu.component.scss +0 -0
  62. package/_metronic/layout/components/sidebar/sidebar-menu/sidebar-menu.component.spec.ts +23 -0
  63. package/_metronic/layout/components/sidebar/sidebar-menu/sidebar-menu.component.ts +15 -0
  64. package/_metronic/layout/components/sidebar/sidebar.component.html +16 -0
  65. package/_metronic/layout/components/sidebar/sidebar.component.scss +0 -0
  66. package/_metronic/layout/components/sidebar/sidebar.component.spec.ts +23 -0
  67. package/_metronic/layout/components/sidebar/sidebar.component.ts +203 -0
  68. package/_metronic/layout/components/toolbar/accounting/accounting.component.html +84 -0
  69. package/_metronic/layout/components/toolbar/accounting/accounting.component.scss +0 -0
  70. package/_metronic/layout/components/toolbar/accounting/accounting.component.spec.ts +23 -0
  71. package/_metronic/layout/components/toolbar/accounting/accounting.component.ts +14 -0
  72. package/_metronic/layout/components/toolbar/classic/classic.component.html +37 -0
  73. package/_metronic/layout/components/toolbar/classic/classic.component.scss +0 -0
  74. package/_metronic/layout/components/toolbar/classic/classic.component.spec.ts +23 -0
  75. package/_metronic/layout/components/toolbar/classic/classic.component.ts +88 -0
  76. package/_metronic/layout/components/toolbar/extended/extended.component.html +100 -0
  77. package/_metronic/layout/components/toolbar/extended/extended.component.scss +0 -0
  78. package/_metronic/layout/components/toolbar/extended/extended.component.spec.ts +23 -0
  79. package/_metronic/layout/components/toolbar/extended/extended.component.ts +12 -0
  80. package/_metronic/layout/components/toolbar/reports/reports.component.html +62 -0
  81. package/_metronic/layout/components/toolbar/reports/reports.component.scss +0 -0
  82. package/_metronic/layout/components/toolbar/reports/reports.component.spec.ts +23 -0
  83. package/_metronic/layout/components/toolbar/reports/reports.component.ts +14 -0
  84. package/_metronic/layout/components/toolbar/saas/saas.component.html +77 -0
  85. package/_metronic/layout/components/toolbar/saas/saas.component.scss +0 -0
  86. package/_metronic/layout/components/toolbar/saas/saas.component.spec.ts +23 -0
  87. package/_metronic/layout/components/toolbar/saas/saas.component.ts +14 -0
  88. package/_metronic/layout/components/toolbar/toolbar.component.html +27 -0
  89. package/_metronic/layout/components/toolbar/toolbar.component.scss +0 -0
  90. package/_metronic/layout/components/toolbar/toolbar.component.spec.ts +25 -0
  91. package/_metronic/layout/components/toolbar/toolbar.component.ts +126 -0
  92. package/_metronic/layout/components/topbar/topbar.component.html +90 -0
  93. package/_metronic/layout/components/topbar/topbar.component.scss +0 -0
  94. package/_metronic/layout/components/topbar/topbar.component.spec.ts +25 -0
  95. package/_metronic/layout/components/topbar/topbar.component.ts +21 -0
  96. package/_metronic/layout/core/configs/config.ts +215 -0
  97. package/_metronic/layout/core/configs/dark-header.config.ts +138 -0
  98. package/_metronic/layout/core/configs/dark-sidebar.config.ts +138 -0
  99. package/_metronic/layout/core/configs/light-header.config.ts +138 -0
  100. package/_metronic/layout/core/configs/light-sidebar.config.ts +138 -0
  101. package/_metronic/layout/core/layout-init.service.ts +133 -0
  102. package/_metronic/layout/core/layout.service.ts +227 -0
  103. package/_metronic/layout/core/page-info.service.ts +151 -0
  104. package/_metronic/layout/index.ts +3 -0
  105. package/_metronic/layout/layout.component.html +70 -0
  106. package/_metronic/layout/layout.component.scss +15 -0
  107. package/_metronic/layout/layout.component.ts +400 -0
  108. package/_metronic/layout/layout.module.ts +93 -0
  109. package/_metronic/partials/content/cards/card1/card1.component.html +80 -0
  110. package/_metronic/partials/content/cards/card1/card1.component.ts +19 -0
  111. package/_metronic/partials/content/cards/card2/card2.component.html +69 -0
  112. package/_metronic/partials/content/cards/card2/card2.component.ts +21 -0
  113. package/_metronic/partials/content/cards/card3/card3.component.html +78 -0
  114. package/_metronic/partials/content/cards/card3/card3.component.ts +18 -0
  115. package/_metronic/partials/content/cards/card4/card4.component.html +9 -0
  116. package/_metronic/partials/content/cards/card4/card4.component.ts +14 -0
  117. package/_metronic/partials/content/cards/card5/card5.component.html +58 -0
  118. package/_metronic/partials/content/cards/card5/card5.component.ts +19 -0
  119. package/_metronic/partials/content/cards/cards.module.ts +39 -0
  120. package/_metronic/partials/content/cards/icon-user.model.ts +6 -0
  121. package/_metronic/partials/content/cards/user-list/user-list.component.html +15 -0
  122. package/_metronic/partials/content/cards/user-list/user-list.component.scss +0 -0
  123. package/_metronic/partials/content/cards/user-list/user-list.component.spec.ts +25 -0
  124. package/_metronic/partials/content/cards/user-list/user-list.component.ts +15 -0
  125. package/_metronic/partials/content/chat-inner/chat-inner.component.html +122 -0
  126. package/_metronic/partials/content/chat-inner/chat-inner.component.ts +74 -0
  127. package/_metronic/partials/content/chat-inner/chat-inner.module.ts +11 -0
  128. package/_metronic/partials/content/chat-inner/dataExample.ts +209 -0
  129. package/_metronic/partials/content/dropdown-menus/dropdown-menu1/dropdown-menu1.component.html +88 -0
  130. package/_metronic/partials/content/dropdown-menus/dropdown-menu1/dropdown-menu1.component.ts +15 -0
  131. package/_metronic/partials/content/dropdown-menus/dropdown-menu2/dropdown-menu2.component.html +53 -0
  132. package/_metronic/partials/content/dropdown-menus/dropdown-menu2/dropdown-menu2.component.ts +15 -0
  133. package/_metronic/partials/content/dropdown-menus/dropdown-menu3/dropdown-menu3.component.html +74 -0
  134. package/_metronic/partials/content/dropdown-menus/dropdown-menu3/dropdown-menu3.component.ts +15 -0
  135. package/_metronic/partials/content/dropdown-menus/dropdown-menus.module.ts +20 -0
  136. package/_metronic/partials/content/widgets/_new/cards/cards-widget17/cards-widget17.component.html +100 -0
  137. package/_metronic/partials/content/widgets/_new/cards/cards-widget17/cards-widget17.component.scss +0 -0
  138. package/_metronic/partials/content/widgets/_new/cards/cards-widget17/cards-widget17.component.spec.ts +23 -0
  139. package/_metronic/partials/content/widgets/_new/cards/cards-widget17/cards-widget17.component.ts +89 -0
  140. package/_metronic/partials/content/widgets/_new/cards/cards-widget18/cards-widget18.component.html +154 -0
  141. package/_metronic/partials/content/widgets/_new/cards/cards-widget18/cards-widget18.component.scss +0 -0
  142. package/_metronic/partials/content/widgets/_new/cards/cards-widget18/cards-widget18.component.spec.ts +23 -0
  143. package/_metronic/partials/content/widgets/_new/cards/cards-widget18/cards-widget18.component.ts +28 -0
  144. package/_metronic/partials/content/widgets/_new/cards/cards-widget20/cards-widget20.component.html +40 -0
  145. package/_metronic/partials/content/widgets/_new/cards/cards-widget20/cards-widget20.component.scss +3 -0
  146. package/_metronic/partials/content/widgets/_new/cards/cards-widget20/cards-widget20.component.spec.ts +23 -0
  147. package/_metronic/partials/content/widgets/_new/cards/cards-widget20/cards-widget20.component.ts +16 -0
  148. package/_metronic/partials/content/widgets/_new/cards/cards-widget7/cards-widget7.component.html +47 -0
  149. package/_metronic/partials/content/widgets/_new/cards/cards-widget7/cards-widget7.component.scss +0 -0
  150. package/_metronic/partials/content/widgets/_new/cards/cards-widget7/cards-widget7.component.spec.ts +23 -0
  151. package/_metronic/partials/content/widgets/_new/cards/cards-widget7/cards-widget7.component.ts +29 -0
  152. package/_metronic/partials/content/widgets/_new/charts/new-charts-widget8/new-charts-widget8.component.html +298 -0
  153. package/_metronic/partials/content/widgets/_new/charts/new-charts-widget8/new-charts-widget8.component.scss +0 -0
  154. package/_metronic/partials/content/widgets/_new/charts/new-charts-widget8/new-charts-widget8.component.spec.ts +23 -0
  155. package/_metronic/partials/content/widgets/_new/charts/new-charts-widget8/new-charts-widget8.component.ts +358 -0
  156. package/_metronic/partials/content/widgets/_new/engage/engage-widget10/engage-widget10.component.html +47 -0
  157. package/_metronic/partials/content/widgets/_new/engage/engage-widget10/engage-widget10.component.scss +0 -0
  158. package/_metronic/partials/content/widgets/_new/engage/engage-widget10/engage-widget10.component.spec.ts +23 -0
  159. package/_metronic/partials/content/widgets/_new/engage/engage-widget10/engage-widget10.component.ts +15 -0
  160. package/_metronic/partials/content/widgets/_new/lists/lists-widget26/lists-widget26.component.html +46 -0
  161. package/_metronic/partials/content/widgets/_new/lists/lists-widget26/lists-widget26.component.scss +0 -0
  162. package/_metronic/partials/content/widgets/_new/lists/lists-widget26/lists-widget26.component.spec.ts +23 -0
  163. package/_metronic/partials/content/widgets/_new/lists/lists-widget26/lists-widget26.component.ts +20 -0
  164. package/_metronic/partials/content/widgets/_new/tables/tables-widget16/tables-widget16.component.html +1 -0
  165. package/_metronic/partials/content/widgets/_new/tables/tables-widget16/tables-widget16.component.scss +0 -0
  166. package/_metronic/partials/content/widgets/_new/tables/tables-widget16/tables-widget16.component.spec.ts +23 -0
  167. package/_metronic/partials/content/widgets/_new/tables/tables-widget16/tables-widget16.component.ts +15 -0
  168. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget1/advance-tables-widget1.component.html +400 -0
  169. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget1/advance-tables-widget1.component.ts +10 -0
  170. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget2/advance-tables-widget2.component.html +357 -0
  171. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget2/advance-tables-widget2.component.ts +17 -0
  172. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget7/advance-tables-widget7.component.html +1267 -0
  173. package/_metronic/partials/content/widgets/advance-tables/advance-tables-widget7/advance-tables-widget7.component.ts +16 -0
  174. package/_metronic/partials/content/widgets/base-tables/base-tables-widget1/base-tables-widget1.component.html +1108 -0
  175. package/_metronic/partials/content/widgets/base-tables/base-tables-widget1/base-tables-widget1.component.ts +25 -0
  176. package/_metronic/partials/content/widgets/base-tables/base-tables-widget2/base-tables-widget2.component.html +675 -0
  177. package/_metronic/partials/content/widgets/base-tables/base-tables-widget2/base-tables-widget2.component.ts +21 -0
  178. package/_metronic/partials/content/widgets/base-tables/base-tables-widget6/base-tables-widget6.component.html +985 -0
  179. package/_metronic/partials/content/widgets/base-tables/base-tables-widget6/base-tables-widget6.component.ts +21 -0
  180. package/_metronic/partials/content/widgets/charts/charts-widget1/charts-widget1.component.html +51 -0
  181. package/_metronic/partials/content/widgets/charts/charts-widget1/charts-widget1.component.ts +128 -0
  182. package/_metronic/partials/content/widgets/charts/charts-widget2/charts-widget2.component.html +62 -0
  183. package/_metronic/partials/content/widgets/charts/charts-widget2/charts-widget2.component.ts +129 -0
  184. package/_metronic/partials/content/widgets/charts/charts-widget3/charts-widget3.component.html +63 -0
  185. package/_metronic/partials/content/widgets/charts/charts-widget3/charts-widget3.component.ts +141 -0
  186. package/_metronic/partials/content/widgets/charts/charts-widget4/charts-widget4.component.html +55 -0
  187. package/_metronic/partials/content/widgets/charts/charts-widget4/charts-widget4.component.ts +146 -0
  188. package/_metronic/partials/content/widgets/charts/charts-widget5/charts-widget5.component.html +36 -0
  189. package/_metronic/partials/content/widgets/charts/charts-widget5/charts-widget5.component.ts +132 -0
  190. package/_metronic/partials/content/widgets/charts/charts-widget6/charts-widget6.component.html +54 -0
  191. package/_metronic/partials/content/widgets/charts/charts-widget6/charts-widget6.component.ts +146 -0
  192. package/_metronic/partials/content/widgets/charts/charts-widget7/charts-widget7.component.html +66 -0
  193. package/_metronic/partials/content/widgets/charts/charts-widget7/charts-widget7.component.ts +167 -0
  194. package/_metronic/partials/content/widgets/charts/charts-widget8/charts-widget8.component.html +66 -0
  195. package/_metronic/partials/content/widgets/charts/charts-widget8/charts-widget8.component.ts +170 -0
  196. package/_metronic/partials/content/widgets/feeds/feeds-widget2/feeds-widget2.component.html +107 -0
  197. package/_metronic/partials/content/widgets/feeds/feeds-widget2/feeds-widget2.component.ts +11 -0
  198. package/_metronic/partials/content/widgets/feeds/feeds-widget3/feeds-widget3.component.html +186 -0
  199. package/_metronic/partials/content/widgets/feeds/feeds-widget3/feeds-widget3.component.ts +11 -0
  200. package/_metronic/partials/content/widgets/feeds/feeds-widget4/feeds-widget4.component.html +106 -0
  201. package/_metronic/partials/content/widgets/feeds/feeds-widget4/feeds-widget4.component.ts +11 -0
  202. package/_metronic/partials/content/widgets/feeds/feeds-widget5/feeds-widget5.component.html +114 -0
  203. package/_metronic/partials/content/widgets/feeds/feeds-widget5/feeds-widget5.component.ts +11 -0
  204. package/_metronic/partials/content/widgets/feeds/feeds-widget6/feeds-widget6.component.html +117 -0
  205. package/_metronic/partials/content/widgets/feeds/feeds-widget6/feeds-widget6.component.ts +11 -0
  206. package/_metronic/partials/content/widgets/lists/lists-widget1/lists-widget1.component.html +123 -0
  207. package/_metronic/partials/content/widgets/lists/lists-widget1/lists-widget1.component.ts +9 -0
  208. package/_metronic/partials/content/widgets/lists/lists-widget2/lists-widget2.component.html +108 -0
  209. package/_metronic/partials/content/widgets/lists/lists-widget2/lists-widget2.component.ts +9 -0
  210. package/_metronic/partials/content/widgets/lists/lists-widget3/lists-widget3.component.html +149 -0
  211. package/_metronic/partials/content/widgets/lists/lists-widget3/lists-widget3.component.ts +9 -0
  212. package/_metronic/partials/content/widgets/lists/lists-widget4/lists-widget4.component.html +192 -0
  213. package/_metronic/partials/content/widgets/lists/lists-widget4/lists-widget4.component.ts +10 -0
  214. package/_metronic/partials/content/widgets/lists/lists-widget5/lists-widget5.component.html +169 -0
  215. package/_metronic/partials/content/widgets/lists/lists-widget5/lists-widget5.component.ts +9 -0
  216. package/_metronic/partials/content/widgets/lists/lists-widget6/lists-widget6.component.html +103 -0
  217. package/_metronic/partials/content/widgets/lists/lists-widget6/lists-widget6.component.ts +9 -0
  218. package/_metronic/partials/content/widgets/lists/lists-widget7/lists-widget7.component.html +130 -0
  219. package/_metronic/partials/content/widgets/lists/lists-widget7/lists-widget7.component.ts +9 -0
  220. package/_metronic/partials/content/widgets/lists/lists-widget8/lists-widget8.component.html +182 -0
  221. package/_metronic/partials/content/widgets/lists/lists-widget8/lists-widget8.component.ts +10 -0
  222. package/_metronic/partials/content/widgets/mixed/mixed-widget1/mixed-widget1.component.html +169 -0
  223. package/_metronic/partials/content/widgets/mixed/mixed-widget1/mixed-widget1.component.ts +10 -0
  224. package/_metronic/partials/content/widgets/mixed/mixed-widget10/mixed-widget10.component.html +39 -0
  225. package/_metronic/partials/content/widgets/mixed/mixed-widget10/mixed-widget10.component.ts +140 -0
  226. package/_metronic/partials/content/widgets/mixed/mixed-widget11/mixed-widget11.component.html +40 -0
  227. package/_metronic/partials/content/widgets/mixed/mixed-widget11/mixed-widget11.component.ts +133 -0
  228. package/_metronic/partials/content/widgets/mixed/mixed-widget2/mixed-widget2.component.html +84 -0
  229. package/_metronic/partials/content/widgets/mixed/mixed-widget2/mixed-widget2.component.ts +157 -0
  230. package/_metronic/partials/content/widgets/mixed/mixed-widget3/mixed-widget3.component.html +92 -0
  231. package/_metronic/partials/content/widgets/mixed/mixed-widget3/mixed-widget3.component.ts +141 -0
  232. package/_metronic/partials/content/widgets/mixed/mixed-widget4/mixed-widget4.component.html +101 -0
  233. package/_metronic/partials/content/widgets/mixed/mixed-widget4/mixed-widget4.component.ts +14 -0
  234. package/_metronic/partials/content/widgets/mixed/mixed-widget5/mixed-widget5.component.html +57 -0
  235. package/_metronic/partials/content/widgets/mixed/mixed-widget5/mixed-widget5.component.ts +14 -0
  236. package/_metronic/partials/content/widgets/mixed/mixed-widget6/mixed-widget6.component.html +118 -0
  237. package/_metronic/partials/content/widgets/mixed/mixed-widget6/mixed-widget6.component.ts +140 -0
  238. package/_metronic/partials/content/widgets/mixed/mixed-widget7/mixed-widget7.component.html +60 -0
  239. package/_metronic/partials/content/widgets/mixed/mixed-widget7/mixed-widget7.component.ts +65 -0
  240. package/_metronic/partials/content/widgets/mixed/mixed-widget8/mixed-widget8.component.html +158 -0
  241. package/_metronic/partials/content/widgets/mixed/mixed-widget8/mixed-widget8.component.ts +164 -0
  242. package/_metronic/partials/content/widgets/mixed/mixed-widget9/mixed-widget9.component.html +147 -0
  243. package/_metronic/partials/content/widgets/mixed/mixed-widget9/mixed-widget9.component.scss +0 -0
  244. package/_metronic/partials/content/widgets/mixed/mixed-widget9/mixed-widget9.component.spec.ts +25 -0
  245. package/_metronic/partials/content/widgets/mixed/mixed-widget9/mixed-widget9.component.ts +140 -0
  246. package/_metronic/partials/content/widgets/stats/stats-widget1/stats-widget1.component.html +12 -0
  247. package/_metronic/partials/content/widgets/stats/stats-widget1/stats-widget1.component.ts +13 -0
  248. package/_metronic/partials/content/widgets/stats/stats-widget2/stats-widget2.component.html +13 -0
  249. package/_metronic/partials/content/widgets/stats/stats-widget2/stats-widget2.component.ts +14 -0
  250. package/_metronic/partials/content/widgets/stats/stats-widget3/stats-widget3.component.html +46 -0
  251. package/_metronic/partials/content/widgets/stats/stats-widget3/stats-widget3.component.ts +160 -0
  252. package/_metronic/partials/content/widgets/stats/stats-widget4/stats-widget4.component.html +44 -0
  253. package/_metronic/partials/content/widgets/stats/stats-widget4/stats-widget4.component.ts +159 -0
  254. package/_metronic/partials/content/widgets/stats/stats-widget5/stats-widget5.component.html +14 -0
  255. package/_metronic/partials/content/widgets/stats/stats-widget5/stats-widget5.component.ts +15 -0
  256. package/_metronic/partials/content/widgets/stats/stats-widget6/stats-widget6.component.html +24 -0
  257. package/_metronic/partials/content/widgets/stats/stats-widget6/stats-widget6.component.ts +14 -0
  258. package/_metronic/partials/content/widgets/tables/tables-widget1/tables-widget1.component.html +273 -0
  259. package/_metronic/partials/content/widgets/tables/tables-widget1/tables-widget1.component.ts +9 -0
  260. package/_metronic/partials/content/widgets/tables/tables-widget10/tables-widget10.component.html +489 -0
  261. package/_metronic/partials/content/widgets/tables/tables-widget10/tables-widget10.component.ts +11 -0
  262. package/_metronic/partials/content/widgets/tables/tables-widget11/tables-widget11.component.html +464 -0
  263. package/_metronic/partials/content/widgets/tables/tables-widget11/tables-widget11.component.ts +11 -0
  264. package/_metronic/partials/content/widgets/tables/tables-widget12/tables-widget12.component.html +550 -0
  265. package/_metronic/partials/content/widgets/tables/tables-widget12/tables-widget12.component.ts +11 -0
  266. package/_metronic/partials/content/widgets/tables/tables-widget13/tables-widget13.component.html +485 -0
  267. package/_metronic/partials/content/widgets/tables/tables-widget13/tables-widget13.component.ts +11 -0
  268. package/_metronic/partials/content/widgets/tables/tables-widget14/tables-widget14.component.html +1 -0
  269. package/_metronic/partials/content/widgets/tables/tables-widget14/tables-widget14.component.scss +0 -0
  270. package/_metronic/partials/content/widgets/tables/tables-widget14/tables-widget14.component.spec.ts +25 -0
  271. package/_metronic/partials/content/widgets/tables/tables-widget14/tables-widget14.component.ts +15 -0
  272. package/_metronic/partials/content/widgets/tables/tables-widget2/tables-widget2.component.html +238 -0
  273. package/_metronic/partials/content/widgets/tables/tables-widget2/tables-widget2.component.ts +9 -0
  274. package/_metronic/partials/content/widgets/tables/tables-widget3/tables-widget3.component.html +150 -0
  275. package/_metronic/partials/content/widgets/tables/tables-widget3/tables-widget3.component.ts +11 -0
  276. package/_metronic/partials/content/widgets/tables/tables-widget4/tables-widget4.component.html +707 -0
  277. package/_metronic/partials/content/widgets/tables/tables-widget4/tables-widget4.component.ts +24 -0
  278. package/_metronic/partials/content/widgets/tables/tables-widget5/tables-widget5.component.html +608 -0
  279. package/_metronic/partials/content/widgets/tables/tables-widget5/tables-widget5.component.ts +26 -0
  280. package/_metronic/partials/content/widgets/tables/tables-widget6/tables-widget6.component.html +632 -0
  281. package/_metronic/partials/content/widgets/tables/tables-widget6/tables-widget6.component.ts +26 -0
  282. package/_metronic/partials/content/widgets/tables/tables-widget7/tables-widget7.component.html +616 -0
  283. package/_metronic/partials/content/widgets/tables/tables-widget7/tables-widget7.component.ts +26 -0
  284. package/_metronic/partials/content/widgets/tables/tables-widget8/tables-widget8.component.html +575 -0
  285. package/_metronic/partials/content/widgets/tables/tables-widget8/tables-widget8.component.ts +26 -0
  286. package/_metronic/partials/content/widgets/tables/tables-widget9/tables-widget9.component.html +489 -0
  287. package/_metronic/partials/content/widgets/tables/tables-widget9/tables-widget9.component.ts +9 -0
  288. package/_metronic/partials/content/widgets/tiles/tiles-widget1/tiles-widget1.component.html +175 -0
  289. package/_metronic/partials/content/widgets/tiles/tiles-widget1/tiles-widget1.component.ts +202 -0
  290. package/_metronic/partials/content/widgets/tiles/tiles-widget10/tiles-widget10.component.html +27 -0
  291. package/_metronic/partials/content/widgets/tiles/tiles-widget10/tiles-widget10.component.ts +12 -0
  292. package/_metronic/partials/content/widgets/tiles/tiles-widget11/tiles-widget11.component.html +28 -0
  293. package/_metronic/partials/content/widgets/tiles/tiles-widget11/tiles-widget11.component.ts +19 -0
  294. package/_metronic/partials/content/widgets/tiles/tiles-widget12/tiles-widget12.component.html +21 -0
  295. package/_metronic/partials/content/widgets/tiles/tiles-widget12/tiles-widget12.component.ts +18 -0
  296. package/_metronic/partials/content/widgets/tiles/tiles-widget13/tiles-widget13.component.html +26 -0
  297. package/_metronic/partials/content/widgets/tiles/tiles-widget13/tiles-widget13.component.ts +12 -0
  298. package/_metronic/partials/content/widgets/tiles/tiles-widget14/tiles-widget14.component.html +24 -0
  299. package/_metronic/partials/content/widgets/tiles/tiles-widget14/tiles-widget14.component.ts +10 -0
  300. package/_metronic/partials/content/widgets/tiles/tiles-widget3/tiles-widget3.component.html +23 -0
  301. package/_metronic/partials/content/widgets/tiles/tiles-widget3/tiles-widget3.component.ts +12 -0
  302. package/_metronic/partials/content/widgets/widgets.module.ts +262 -0
  303. package/_metronic/partials/index.ts +16 -0
  304. package/_metronic/partials/layout/drawers/activity-drawer/activity-drawer.component.html +649 -0
  305. package/_metronic/partials/layout/drawers/activity-drawer/activity-drawer.component.ts +11 -0
  306. package/_metronic/partials/layout/drawers/drawers.module.ts +21 -0
  307. package/_metronic/partials/layout/drawers/messenger-drawer/messenger-drawer.component.html +59 -0
  308. package/_metronic/partials/layout/drawers/messenger-drawer/messenger-drawer.component.ts +11 -0
  309. package/_metronic/partials/layout/engages/engages.component.html +29 -0
  310. package/_metronic/partials/layout/engages/engages.component.scss +0 -0
  311. package/_metronic/partials/layout/engages/engages.component.ts +15 -0
  312. package/_metronic/partials/layout/engages/engages.module.ts +29 -0
  313. package/_metronic/partials/layout/engages/explore-main-drawer/explore-main-drawer.component.html +177 -0
  314. package/_metronic/partials/layout/engages/explore-main-drawer/explore-main-drawer.component.ts +19 -0
  315. package/_metronic/partials/layout/engages/help-drawer/help-drawer.component.html +156 -0
  316. package/_metronic/partials/layout/engages/help-drawer/help-drawer.component.ts +17 -0
  317. package/_metronic/partials/layout/engages/purchase-toolbar/purchase-toolbar.component.html +8 -0
  318. package/_metronic/partials/layout/engages/purchase-toolbar/purchase-toolbar.component.ts +16 -0
  319. package/_metronic/partials/layout/extras/dropdown-inner/notifications-inner/notifications-inner.component.html +176 -0
  320. package/_metronic/partials/layout/extras/dropdown-inner/notifications-inner/notifications-inner.component.ts +155 -0
  321. package/_metronic/partials/layout/extras/dropdown-inner/quick-links-inner/quick-links-inner.component.html +77 -0
  322. package/_metronic/partials/layout/extras/dropdown-inner/quick-links-inner/quick-links-inner.component.ts +13 -0
  323. package/_metronic/partials/layout/extras/dropdown-inner/search-result-inner/search-result-inner.component.html +120 -0
  324. package/_metronic/partials/layout/extras/dropdown-inner/search-result-inner/search-result-inner.component.ts +104 -0
  325. package/_metronic/partials/layout/extras/dropdown-inner/user-inner/user-inner.component.html +161 -0
  326. package/_metronic/partials/layout/extras/dropdown-inner/user-inner/user-inner.component.ts +95 -0
  327. package/_metronic/partials/layout/extras/extras.module.ts +41 -0
  328. package/_metronic/partials/layout/extras/scroll-top/scroll-top.component.html +1 -0
  329. package/_metronic/partials/layout/extras/scroll-top/scroll-top.component.ts +75 -0
  330. package/_metronic/partials/layout/modals/invite-users-modal/invite-users-modal.component.html +0 -0
  331. package/_metronic/partials/layout/modals/invite-users-modal/invite-users-modal.component.ts +9 -0
  332. package/_metronic/partials/layout/modals/main-modal/main-modal.component.html +0 -0
  333. package/_metronic/partials/layout/modals/main-modal/main-modal.component.ts +9 -0
  334. package/_metronic/partials/layout/modals/modal/modal.component.html +31 -0
  335. package/_metronic/partials/layout/modals/modal/modal.component.ts +50 -0
  336. package/_metronic/partials/layout/modals/modal.config.ts +13 -0
  337. package/_metronic/partials/layout/modals/modals.module.ts +34 -0
  338. package/_metronic/partials/layout/modals/upgrade-plan-modal/upgrade-plan-modal.component.html +0 -0
  339. package/_metronic/partials/layout/modals/upgrade-plan-modal/upgrade-plan-modal.component.ts +9 -0
  340. package/_metronic/partials/layout/splash-screen/splash-screen.component.html +14 -0
  341. package/_metronic/partials/layout/splash-screen/splash-screen.component.scss +57 -0
  342. package/_metronic/partials/layout/splash-screen/splash-screen.component.ts +17 -0
  343. package/_metronic/partials/layout/splash-screen/splash-screen.module.ts +10 -0
  344. package/_metronic/partials/layout/splash-screen/splash-screen.service.ts +51 -0
  345. package/_metronic/partials/layout/theme-mode-switcher/theme-mode-switcher.component.html +56 -0
  346. package/_metronic/partials/layout/theme-mode-switcher/theme-mode-switcher.component.ts +27 -0
  347. package/_metronic/partials/layout/theme-mode-switcher/theme-mode.module.ts +16 -0
  348. package/_metronic/partials/layout/theme-mode-switcher/theme-mode.service.ts +87 -0
  349. package/_metronic/shared/keenicon/icons.json +1 -0
  350. package/_metronic/shared/keenicon/keenicon.component.html +4 -0
  351. package/_metronic/shared/keenicon/keenicon.component.scss +0 -0
  352. package/_metronic/shared/keenicon/keenicon.component.spec.ts +23 -0
  353. package/_metronic/shared/keenicon/keenicon.component.ts +30 -0
  354. package/_metronic/shared/shared.module.ts +17 -0
  355. package/config/ng-package.json +7 -0
  356. package/config/src/e-donusum-config.module.ts +98 -0
  357. package/config/src/enums/eDonusum-route-names.ts +9 -0
  358. package/config/src/enums/index.ts +1 -0
  359. package/config/src/enums/route-names.ts +3 -0
  360. package/config/src/providers/branch-route.provider.ts +21 -0
  361. package/config/src/providers/business-partner-group-route.provider.ts +21 -0
  362. package/config/src/providers/business-partner-route.provider.ts +21 -0
  363. package/config/src/providers/despatch-document-reference-route.provider.ts +21 -0
  364. package/config/src/providers/despatch-line-order-line-reference-route.provider.ts +20 -0
  365. package/config/src/providers/despatch-line-route.provider.ts +21 -0
  366. package/config/src/providers/despatch-note-route.provider.ts +21 -0
  367. package/config/src/providers/despatch-route.provider.ts +21 -0
  368. package/config/src/providers/gib-partner-pk-all-route.provider.ts +21 -0
  369. package/config/src/providers/gib-partner-pk-route.provider.ts +21 -0
  370. package/config/src/providers/hit-providers/branch-route.provider.ts +23 -0
  371. package/config/src/providers/hit-providers/business-partner-group-route.provider.ts +23 -0
  372. package/config/src/providers/hit-providers/business-partner-route.provider.ts +23 -0
  373. package/config/src/providers/hit-providers/despatch-route.provider.ts +22 -0
  374. package/config/src/providers/hit-providers/gib-partner-pk-all-route.provider.ts +22 -0
  375. package/config/src/providers/hit-providers/gib-partner-pk-route.provider.ts +22 -0
  376. package/config/src/providers/hit-providers/inbound-invoice-route.provider.ts +22 -0
  377. package/config/src/providers/hit-providers/invoice-route.provider.ts +22 -0
  378. package/config/src/providers/hit-providers/note-rule-route.provider.ts +23 -0
  379. package/config/src/providers/hit-providers/route.provider.ts +62 -0
  380. package/config/src/providers/hit-providers/wizard-route.provider.ts +21 -0
  381. package/config/src/providers/hit-providers/xslt-format-route.provider.ts +22 -0
  382. package/config/src/providers/hit-providers/xslt-rule-route.provider.ts +22 -0
  383. package/config/src/providers/index.ts +1 -0
  384. package/config/src/providers/invoice-document-reference-route.provider.ts +21 -0
  385. package/config/src/providers/invoice-line-despatch-line-reference-route.provider.ts +20 -0
  386. package/config/src/providers/invoice-line-order-line-reference-route.provider.ts +21 -0
  387. package/config/src/providers/invoice-line-receipt-line-reference-route.provider.ts +20 -0
  388. package/config/src/providers/invoice-line-route.provider.ts +21 -0
  389. package/config/src/providers/invoice-note-route.provider.ts +21 -0
  390. package/config/src/providers/invoice-route.provider.ts +21 -0
  391. package/config/src/providers/note-rule-doc-type-route.provider.ts +21 -0
  392. package/config/src/providers/note-rule-route.provider.ts +21 -0
  393. package/config/src/providers/note-rule-scenario-route.provider.ts +21 -0
  394. package/config/src/providers/params-company-route.provider.ts +21 -0
  395. package/config/src/providers/params-general-route.provider.ts +21 -0
  396. package/config/src/providers/params-integrator-route.provider.ts +21 -0
  397. package/config/src/providers/paramse-dispatch-route.provider.ts +21 -0
  398. package/config/src/providers/paramse-invoice-route.provider.ts +21 -0
  399. package/config/src/providers/route.provider.ts +26 -0
  400. package/config/src/providers/xslt-format-route.provider.ts +21 -0
  401. package/config/src/providers/xslt-rule-doc-type-route.provider.ts +21 -0
  402. package/config/src/providers/xslt-rule-route.provider.ts +21 -0
  403. package/config/src/providers/xslt-rule-scenario-route.provider.ts +21 -0
  404. package/config/src/public-api.ts +3 -0
  405. package/karma.conf.js +44 -0
  406. package/ng-package.json +7 -0
  407. package/package.json +20 -0
  408. package/src/lib/branches/branch/branch-routing.module.ts +36 -0
  409. package/src/lib/branches/branch/branch.module.ts +34 -0
  410. package/src/lib/branches/branch/components/branch.component.html +375 -0
  411. package/src/lib/branches/branch/components/branch.component.ts +141 -0
  412. package/src/lib/business-partner-groups/business-partner-group/business-partner-group-routing.module.ts +36 -0
  413. package/src/lib/business-partner-groups/business-partner-group/business-partner-group.module.ts +34 -0
  414. package/src/lib/business-partner-groups/business-partner-group/components/business-partner-group.component.html +273 -0
  415. package/src/lib/business-partner-groups/business-partner-group/components/business-partner-group.component.ts +129 -0
  416. package/src/lib/business-partners/business-partner/business-partner-routing.module.ts +36 -0
  417. package/src/lib/business-partners/business-partner/business-partner.module.ts +34 -0
  418. package/src/lib/business-partners/business-partner/components/business-partner.component.html +584 -0
  419. package/src/lib/business-partners/business-partner/components/business-partner.component.ts +150 -0
  420. package/src/lib/components/e-donusum.component.ts +15 -0
  421. package/src/lib/components/hit-inbound-invoices/hit-inbound-invoice-routing.module.ts +37 -0
  422. package/src/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.html +165 -0
  423. package/src/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.ts +131 -0
  424. package/src/lib/components/hit-inbound-invoices/hit-inbound-invoice.module.ts +44 -0
  425. package/src/lib/components/hit-invoices/hit-invoice.component.html +1309 -0
  426. package/src/lib/components/hit-invoices/hit-invoice.component.ts +114 -0
  427. package/src/lib/components/hit-invoices/hit-invoice.module.ts +43 -0
  428. package/src/lib/components/hit-invoices/sanitize-html.pipe.ts +15 -0
  429. package/src/lib/components/hit-note-rules/hit-note-rule.component.html +384 -0
  430. package/src/lib/components/hit-note-rules/hit-note-rule.component.ts +388 -0
  431. package/src/lib/components/hit-note-rules/hit-note-rule.module.ts +40 -0
  432. package/src/lib/components/hit-paramas-invoices/hit-params-invoice.component.html +90 -0
  433. package/src/lib/components/hit-paramas-invoices/hit-params-invoice.component.ts +147 -0
  434. package/src/lib/components/hit-paramas-invoices/hit-params-invoice.module.ts +20 -0
  435. package/src/lib/components/hit-params-companies/hit-params-company.component.html +209 -0
  436. package/src/lib/components/hit-params-companies/hit-params-company.component.ts +153 -0
  437. package/src/lib/components/hit-params-companies/hit-params-company.module.ts +18 -0
  438. package/src/lib/components/hit-params-dispatches/hit-params-dispatch.component.html +178 -0
  439. package/src/lib/components/hit-params-dispatches/hit-params-dispatch.component.ts +167 -0
  440. package/src/lib/components/hit-params-dispatches/hit-params-dispatch.module.ts +20 -0
  441. package/src/lib/components/hit-params-generals/hit-params-general.component.html +0 -0
  442. package/src/lib/components/hit-params-generals/hit-params-general.component.ts +67 -0
  443. package/src/lib/components/hit-params-generals/hit-params-general.module.ts +22 -0
  444. package/src/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.html +91 -0
  445. package/src/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.component.ts +203 -0
  446. package/src/lib/components/hit-params-generals/hit-params-generals-part1/hit-params-general-part1.module.ts +21 -0
  447. package/src/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.component.html +27 -0
  448. package/src/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.component.ts +94 -0
  449. package/src/lib/components/hit-params-generals/hit-params-generals-part2/hit-params-general-part2.module.ts +20 -0
  450. package/src/lib/components/hit-params-integrators/hit-params-integrator.component.html +116 -0
  451. package/src/lib/components/hit-params-integrators/hit-params-integrator.component.ts +216 -0
  452. package/src/lib/components/hit-params-integrators/hit-params-integrator.module.ts +20 -0
  453. package/src/lib/components/hit-setup-wizard/hit-setup-wizard-routing.module.ts +37 -0
  454. package/src/lib/components/hit-setup-wizard/hit-setup-wizard.component.html +277 -0
  455. package/src/lib/components/hit-setup-wizard/hit-setup-wizard.component.ts +147 -0
  456. package/src/lib/components/hit-setup-wizard/hit-setup-wizard.module.ts +37 -0
  457. package/src/lib/components/hit-xslt-formats/hit-xslt-format.component.html +142 -0
  458. package/src/lib/components/hit-xslt-formats/hit-xslt-format.component.ts +179 -0
  459. package/src/lib/components/hit-xslt-formats/hit-xslt-format.module.ts +38 -0
  460. package/src/lib/components/hit-xslt-rules/hit-xslt-rule.component.html +341 -0
  461. package/src/lib/components/hit-xslt-rules/hit-xslt-rule.component.ts +363 -0
  462. package/src/lib/components/hit-xslt-rules/hit-xslt-rule.module.ts +40 -0
  463. package/src/lib/despatch-document-references/despatch-document-reference/components/despatch-document-reference.component.html +446 -0
  464. package/src/lib/despatch-document-references/despatch-document-reference/components/despatch-document-reference.component.ts +157 -0
  465. package/src/lib/despatch-document-references/despatch-document-reference/despatch-document-reference-routing.module.ts +36 -0
  466. package/src/lib/despatch-document-references/despatch-document-reference/despatch-document-reference.module.ts +34 -0
  467. package/src/lib/despatch-line-order-line-references/despatch-line-order-line-reference/components/despatch-line-order-line-reference.component.html +786 -0
  468. package/src/lib/despatch-line-order-line-references/despatch-line-order-line-reference/components/despatch-line-order-line-reference.component.ts +169 -0
  469. package/src/lib/despatch-line-order-line-references/despatch-line-order-line-reference/despatch-line-order-line-reference-routing.module.ts +36 -0
  470. package/src/lib/despatch-line-order-line-references/despatch-line-order-line-reference/despatch-line-order-line-reference.module.ts +34 -0
  471. package/src/lib/despatch-lines/despatch-line/components/despatch-line.component.html +843 -0
  472. package/src/lib/despatch-lines/despatch-line/components/despatch-line.component.ts +190 -0
  473. package/src/lib/despatch-lines/despatch-line/despatch-line-routing.module.ts +36 -0
  474. package/src/lib/despatch-lines/despatch-line/despatch-line.module.ts +34 -0
  475. package/src/lib/despatch-notes/despatch-note/components/despatch-note.component.html +181 -0
  476. package/src/lib/despatch-notes/despatch-note/components/despatch-note.component.ts +141 -0
  477. package/src/lib/despatch-notes/despatch-note/despatch-note-routing.module.ts +36 -0
  478. package/src/lib/despatch-notes/despatch-note/despatch-note.module.ts +34 -0
  479. package/src/lib/despatches/despatch/components/despatch.component.html +3798 -0
  480. package/src/lib/despatches/despatch/components/despatch.component.ts +387 -0
  481. package/src/lib/despatches/despatch/despatch-routing.module.ts +36 -0
  482. package/src/lib/despatches/despatch/despatch.module.ts +34 -0
  483. package/src/lib/e-donusum-routing.module.ts +102 -0
  484. package/src/lib/e-donusum.component.spec.ts +25 -0
  485. package/src/lib/e-donusum.module.ts +54 -0
  486. package/src/lib/e-donusum.service.spec.ts +16 -0
  487. package/src/lib/gib-partner-pk-alls/gib-partner-pk-all/components/gib-partner-pk-all.component.html +671 -0
  488. package/src/lib/gib-partner-pk-alls/gib-partner-pk-all/components/gib-partner-pk-all.component.ts +157 -0
  489. package/src/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all-routing.module.ts +36 -0
  490. package/src/lib/gib-partner-pk-alls/gib-partner-pk-all/gib-partner-pk-all.module.ts +34 -0
  491. package/src/lib/gib-partner-pks/gib-partner-pk/components/gib-partner-pk.component.html +671 -0
  492. package/src/lib/gib-partner-pks/gib-partner-pk/components/gib-partner-pk.component.ts +154 -0
  493. package/src/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk-routing.module.ts +36 -0
  494. package/src/lib/gib-partner-pks/gib-partner-pk/gib-partner-pk.module.ts +34 -0
  495. package/src/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.ts +20 -0
  496. package/src/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.ts +51 -0
  497. package/src/lib/hit-proxy/hit-branches/hit-branch.service.ts +29 -0
  498. package/src/lib/hit-proxy/hit-connectors/hit-connector.service.ts +43 -0
  499. package/src/lib/hit-proxy/hit-content-master/models.ts +14 -0
  500. package/src/lib/hit-proxy/hit-document-types/hit-document-type.service.ts +27 -0
  501. package/src/lib/hit-proxy/hit-entegrators/hit-entegrator.service.ts +45 -0
  502. package/src/lib/hit-proxy/hit-inbound-invoices/hit-inbound-invoice.service.ts +34 -0
  503. package/src/lib/hit-proxy/hit-inventory-transfer-addresses/hit-inventory-transfer-address.service.ts +20 -0
  504. package/src/lib/hit-proxy/hit-invoices/hit-invoice.service.ts +96 -0
  505. package/src/lib/hit-proxy/hit-note-rule-doc-types/hit-note-rule-doc-type.service.ts +20 -0
  506. package/src/lib/hit-proxy/hit-note-rule-scenarios/hit-note-rule-scenario.service.ts +20 -0
  507. package/src/lib/hit-proxy/hit-note-rules/hit-note-rule.service.ts +83 -0
  508. package/src/lib/hit-proxy/hit-note-rules/models.ts +42 -0
  509. package/src/lib/hit-proxy/hit-params-companies/hit-params-company.service.ts +37 -0
  510. package/src/lib/hit-proxy/hit-params-dispatches/hit-params-dispatch.service.ts +20 -0
  511. package/src/lib/hit-proxy/hit-params-generals/hit-params-general.service.ts +20 -0
  512. package/src/lib/hit-proxy/hit-params-integrators/hit-params-integrator.service.ts +20 -0
  513. package/src/lib/hit-proxy/hit-params-invoices/hit-params-invoice.service.ts +20 -0
  514. package/src/lib/hit-proxy/hit-scenario-types/hit-scenario-type.service.ts +27 -0
  515. package/src/lib/hit-proxy/hit-xslt-formats/hit-xslt-format.service.ts +57 -0
  516. package/src/lib/hit-proxy/hit-xslt-formats/models.ts +12 -0
  517. package/src/lib/hit-proxy/hit-xslt-rule-doc-types/hit-xslt-rule-doc-type.service.ts +20 -0
  518. package/src/lib/hit-proxy/hit-xslt-rule-scenarios/hit-xslt-rule-scenario.service.ts +20 -0
  519. package/src/lib/hit-proxy/hit-xslt-rules/hit-xslt-rule.service.ts +71 -0
  520. package/src/lib/hit-proxy/hit-xslt-rules/models.ts +42 -0
  521. package/src/lib/invoice-document-references/invoice-document-reference/components/invoice-document-reference.component.html +446 -0
  522. package/src/lib/invoice-document-references/invoice-document-reference/components/invoice-document-reference.component.ts +157 -0
  523. package/src/lib/invoice-document-references/invoice-document-reference/invoice-document-reference-routing.module.ts +36 -0
  524. package/src/lib/invoice-document-references/invoice-document-reference/invoice-document-reference.module.ts +34 -0
  525. package/src/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/components/invoice-line-despatch-line-reference.component.html +497 -0
  526. package/src/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/components/invoice-line-despatch-line-reference.component.ts +157 -0
  527. package/src/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/invoice-line-despatch-line-reference-routing.module.ts +36 -0
  528. package/src/lib/invoice-line-despatch-line-references/invoice-line-despatch-line-reference/invoice-line-despatch-line-reference.module.ts +34 -0
  529. package/src/lib/invoice-line-order-line-references/invoice-line-order-line-reference/components/invoice-line-order-line-reference.component.html +783 -0
  530. package/src/lib/invoice-line-order-line-references/invoice-line-order-line-reference/components/invoice-line-order-line-reference.component.ts +169 -0
  531. package/src/lib/invoice-line-order-line-references/invoice-line-order-line-reference/invoice-line-order-line-reference-routing.module.ts +36 -0
  532. package/src/lib/invoice-line-order-line-references/invoice-line-order-line-reference/invoice-line-order-line-reference.module.ts +34 -0
  533. package/src/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/components/invoice-line-receipt-line-reference.component.html +494 -0
  534. package/src/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/components/invoice-line-receipt-line-reference.component.ts +157 -0
  535. package/src/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/invoice-line-receipt-line-reference-routing.module.ts +36 -0
  536. package/src/lib/invoice-line-receipt-line-references/invoice-line-receipt-line-reference/invoice-line-receipt-line-reference.module.ts +34 -0
  537. package/src/lib/invoice-lines/invoice-line/components/invoice-line.component.html +843 -0
  538. package/src/lib/invoice-lines/invoice-line/components/invoice-line.component.ts +190 -0
  539. package/src/lib/invoice-lines/invoice-line/invoice-line-routing.module.ts +36 -0
  540. package/src/lib/invoice-lines/invoice-line/invoice-line.module.ts +34 -0
  541. package/src/lib/invoice-notes/invoice-note/components/invoice-note.component.html +181 -0
  542. package/src/lib/invoice-notes/invoice-note/components/invoice-note.component.ts +141 -0
  543. package/src/lib/invoice-notes/invoice-note/invoice-note-routing.module.ts +36 -0
  544. package/src/lib/invoice-notes/invoice-note/invoice-note.module.ts +34 -0
  545. package/src/lib/invoices/invoice/components/invoice.component.html +4182 -0
  546. package/src/lib/invoices/invoice/components/invoice.component.ts +377 -0
  547. package/src/lib/invoices/invoice/invoice-routing.module.ts +30 -0
  548. package/src/lib/invoices/invoice/invoice.module.ts +34 -0
  549. package/src/lib/note-rule-doc-types/note-rule-doc-type/components/note-rule-doc-type.component.html +199 -0
  550. package/src/lib/note-rule-doc-types/note-rule-doc-type/components/note-rule-doc-type.component.ts +124 -0
  551. package/src/lib/note-rule-doc-types/note-rule-doc-type/note-rule-doc-type-routing.module.ts +36 -0
  552. package/src/lib/note-rule-doc-types/note-rule-doc-type/note-rule-doc-type.module.ts +34 -0
  553. package/src/lib/note-rule-scenarios/note-rule-scenario/components/note-rule-scenario.component.html +199 -0
  554. package/src/lib/note-rule-scenarios/note-rule-scenario/components/note-rule-scenario.component.ts +124 -0
  555. package/src/lib/note-rule-scenarios/note-rule-scenario/note-rule-scenario-routing.module.ts +36 -0
  556. package/src/lib/note-rule-scenarios/note-rule-scenario/note-rule-scenario.module.ts +34 -0
  557. package/src/lib/note-rules/note-rule/components/note-rule.component.html +624 -0
  558. package/src/lib/note-rules/note-rule/components/note-rule.component.ts +162 -0
  559. package/src/lib/note-rules/note-rule/note-rule-routing.module.ts +31 -0
  560. package/src/lib/note-rules/note-rule/note-rule.module.ts +34 -0
  561. package/src/lib/params-companies/params-company/components/params-company.component.html +847 -0
  562. package/src/lib/params-companies/params-company/components/params-company.component.ts +176 -0
  563. package/src/lib/params-companies/params-company/params-company-routing.module.ts +34 -0
  564. package/src/lib/params-companies/params-company/params-company.module.ts +34 -0
  565. package/src/lib/params-generals/params-general/components/params-general.component.html +504 -0
  566. package/src/lib/params-generals/params-general/components/params-general.component.ts +141 -0
  567. package/src/lib/params-generals/params-general/params-general-routing.module.ts +34 -0
  568. package/src/lib/params-generals/params-general/params-general.module.ts +34 -0
  569. package/src/lib/params-integrators/params-integrator/components/params-integrator.component.html +499 -0
  570. package/src/lib/params-integrators/params-integrator/components/params-integrator.component.ts +162 -0
  571. package/src/lib/params-integrators/params-integrator/params-integrator-routing.module.ts +34 -0
  572. package/src/lib/params-integrators/params-integrator/params-integrator.module.ts +34 -0
  573. package/src/lib/paramse-dispatches/paramse-dispatch/components/paramse-dispatch.component.html +771 -0
  574. package/src/lib/paramse-dispatches/paramse-dispatch/components/paramse-dispatch.component.ts +163 -0
  575. package/src/lib/paramse-dispatches/paramse-dispatch/paramse-dispatch-routing.module.ts +34 -0
  576. package/src/lib/paramse-dispatches/paramse-dispatch/paramse-dispatch.module.ts +34 -0
  577. package/src/lib/paramse-invoices/paramse-invoice/components/paramse-invoice.component.html +433 -0
  578. package/src/lib/paramse-invoices/paramse-invoice/components/paramse-invoice.component.ts +151 -0
  579. package/src/lib/paramse-invoices/paramse-invoice/paramse-invoice-routing.module.ts +34 -0
  580. package/src/lib/paramse-invoices/paramse-invoice/paramse-invoice.module.ts +34 -0
  581. package/src/lib/proxy/branches/branch.service.ts +75 -0
  582. package/src/lib/proxy/branches/index.ts +2 -0
  583. package/src/lib/proxy/branches/models.ts +46 -0
  584. package/src/lib/proxy/business-partner-groups/business-partner-group.service.ts +56 -0
  585. package/src/lib/proxy/business-partner-groups/index.ts +2 -0
  586. package/src/lib/proxy/business-partner-groups/models.ts +36 -0
  587. package/src/lib/proxy/business-partners/business-partner.service.ts +74 -0
  588. package/src/lib/proxy/business-partners/index.ts +2 -0
  589. package/src/lib/proxy/business-partners/models.ts +70 -0
  590. package/src/lib/proxy/despatch-document-references/despatch-document-reference.service.ts +92 -0
  591. package/src/lib/proxy/despatch-document-references/index.ts +2 -0
  592. package/src/lib/proxy/despatch-document-references/models.ts +57 -0
  593. package/src/lib/proxy/despatch-line-order-line-references/despatch-line-order-line-reference.service.ts +92 -0
  594. package/src/lib/proxy/despatch-line-order-line-references/index.ts +2 -0
  595. package/src/lib/proxy/despatch-line-order-line-references/models.ts +86 -0
  596. package/src/lib/proxy/despatch-lines/despatch-line.service.ts +92 -0
  597. package/src/lib/proxy/despatch-lines/index.ts +2 -0
  598. package/src/lib/proxy/despatch-lines/models.ts +108 -0
  599. package/src/lib/proxy/despatch-notes/despatch-note.service.ts +92 -0
  600. package/src/lib/proxy/despatch-notes/index.ts +2 -0
  601. package/src/lib/proxy/despatch-notes/models.ts +36 -0
  602. package/src/lib/proxy/despatches/despatch.service.ts +75 -0
  603. package/src/lib/proxy/despatches/index.ts +2 -0
  604. package/src/lib/proxy/despatches/models.ts +338 -0
  605. package/src/lib/proxy/generate-proxy.json +31780 -0
  606. package/src/lib/proxy/gib-partner-pk-alls/gib-partner-pk-all.service.ts +75 -0
  607. package/src/lib/proxy/gib-partner-pk-alls/index.ts +2 -0
  608. package/src/lib/proxy/gib-partner-pk-alls/models.ts +62 -0
  609. package/src/lib/proxy/gib-partner-pks/gib-partner-pk.service.ts +75 -0
  610. package/src/lib/proxy/gib-partner-pks/index.ts +2 -0
  611. package/src/lib/proxy/gib-partner-pks/models.ts +62 -0
  612. package/src/lib/proxy/index.ts +31 -0
  613. package/src/lib/proxy/invoice-document-references/index.ts +2 -0
  614. package/src/lib/proxy/invoice-document-references/invoice-document-reference.service.ts +92 -0
  615. package/src/lib/proxy/invoice-document-references/models.ts +57 -0
  616. package/src/lib/proxy/invoice-line-despatch-line-references/index.ts +2 -0
  617. package/src/lib/proxy/invoice-line-despatch-line-references/invoice-line-despatch-line-reference.service.ts +92 -0
  618. package/src/lib/proxy/invoice-line-despatch-line-references/models.ts +61 -0
  619. package/src/lib/proxy/invoice-line-order-line-references/index.ts +2 -0
  620. package/src/lib/proxy/invoice-line-order-line-references/invoice-line-order-line-reference.service.ts +92 -0
  621. package/src/lib/proxy/invoice-line-order-line-references/models.ts +86 -0
  622. package/src/lib/proxy/invoice-line-receipt-line-references/index.ts +2 -0
  623. package/src/lib/proxy/invoice-line-receipt-line-references/invoice-line-receipt-line-reference.service.ts +92 -0
  624. package/src/lib/proxy/invoice-line-receipt-line-references/models.ts +61 -0
  625. package/src/lib/proxy/invoice-lines/index.ts +2 -0
  626. package/src/lib/proxy/invoice-lines/invoice-line.service.ts +92 -0
  627. package/src/lib/proxy/invoice-lines/models.ts +108 -0
  628. package/src/lib/proxy/invoice-notes/index.ts +2 -0
  629. package/src/lib/proxy/invoice-notes/invoice-note.service.ts +92 -0
  630. package/src/lib/proxy/invoice-notes/models.ts +36 -0
  631. package/src/lib/proxy/invoices/index.ts +2 -0
  632. package/src/lib/proxy/invoices/invoice.service.ts +75 -0
  633. package/src/lib/proxy/invoices/models.ts +359 -0
  634. package/src/lib/proxy/note-rule-doc-types/index.ts +2 -0
  635. package/src/lib/proxy/note-rule-doc-types/models.ts +31 -0
  636. package/src/lib/proxy/note-rule-doc-types/note-rule-doc-type.service.ts +74 -0
  637. package/src/lib/proxy/note-rule-scenarios/index.ts +2 -0
  638. package/src/lib/proxy/note-rule-scenarios/models.ts +31 -0
  639. package/src/lib/proxy/note-rule-scenarios/note-rule-scenario.service.ts +74 -0
  640. package/src/lib/proxy/note-rules/index.ts +2 -0
  641. package/src/lib/proxy/note-rules/models.ts +78 -0
  642. package/src/lib/proxy/note-rules/note-rule.service.ts +75 -0
  643. package/src/lib/proxy/params-companies/index.ts +2 -0
  644. package/src/lib/proxy/params-companies/models.ts +101 -0
  645. package/src/lib/proxy/params-companies/params-company.service.ts +75 -0
  646. package/src/lib/proxy/params-generals/index.ts +2 -0
  647. package/src/lib/proxy/params-generals/models.ts +44 -0
  648. package/src/lib/proxy/params-generals/params-general.service.ts +75 -0
  649. package/src/lib/proxy/params-integrators/index.ts +2 -0
  650. package/src/lib/proxy/params-integrators/models.ts +72 -0
  651. package/src/lib/proxy/params-integrators/params-integrator.service.ts +92 -0
  652. package/src/lib/proxy/paramse-dispatches/index.ts +2 -0
  653. package/src/lib/proxy/paramse-dispatches/models.ts +73 -0
  654. package/src/lib/proxy/paramse-dispatches/paramse-dispatch.service.ts +75 -0
  655. package/src/lib/proxy/paramse-invoices/index.ts +2 -0
  656. package/src/lib/proxy/paramse-invoices/models.ts +48 -0
  657. package/src/lib/proxy/paramse-invoices/paramse-invoice.service.ts +75 -0
  658. package/src/lib/proxy/shared/index.ts +1 -0
  659. package/src/lib/proxy/shared/models.ts +14 -0
  660. package/src/lib/proxy/xslt-formats/index.ts +2 -0
  661. package/src/lib/proxy/xslt-formats/models.ts +33 -0
  662. package/src/lib/proxy/xslt-formats/xslt-format.service.ts +56 -0
  663. package/src/lib/proxy/xslt-rule-doc-types/index.ts +2 -0
  664. package/src/lib/proxy/xslt-rule-doc-types/models.ts +31 -0
  665. package/src/lib/proxy/xslt-rule-doc-types/xslt-rule-doc-type.service.ts +74 -0
  666. package/src/lib/proxy/xslt-rule-scenarios/index.ts +2 -0
  667. package/src/lib/proxy/xslt-rule-scenarios/models.ts +31 -0
  668. package/src/lib/proxy/xslt-rule-scenarios/xslt-rule-scenario.service.ts +74 -0
  669. package/src/lib/proxy/xslt-rules/index.ts +2 -0
  670. package/src/lib/proxy/xslt-rules/models.ts +61 -0
  671. package/src/lib/proxy/xslt-rules/xslt-rule.service.ts +74 -0
  672. package/src/lib/services/e-donusum.service.ts +18 -0
  673. package/src/lib/xslt-formats/xslt-format/components/xslt-format.component.html +272 -0
  674. package/src/lib/xslt-formats/xslt-format/components/xslt-format.component.ts +122 -0
  675. package/src/lib/xslt-formats/xslt-format/xslt-format-routing.module.ts +36 -0
  676. package/src/lib/xslt-formats/xslt-format/xslt-format.module.ts +34 -0
  677. package/src/lib/xslt-rule-doc-types/xslt-rule-doc-type/components/xslt-rule-doc-type.component.html +199 -0
  678. package/src/lib/xslt-rule-doc-types/xslt-rule-doc-type/components/xslt-rule-doc-type.component.ts +124 -0
  679. package/src/lib/xslt-rule-doc-types/xslt-rule-doc-type/xslt-rule-doc-type-routing.module.ts +18 -0
  680. package/src/lib/xslt-rule-doc-types/xslt-rule-doc-type/xslt-rule-doc-type.module.ts +34 -0
  681. package/src/lib/xslt-rule-scenarios/xslt-rule-scenario/components/xslt-rule-scenario.component.html +199 -0
  682. package/src/lib/xslt-rule-scenarios/xslt-rule-scenario/components/xslt-rule-scenario.component.ts +124 -0
  683. package/src/lib/xslt-rule-scenarios/xslt-rule-scenario/xslt-rule-scenario-routing.module.ts +18 -0
  684. package/src/lib/xslt-rule-scenarios/xslt-rule-scenario/xslt-rule-scenario.module.ts +34 -0
  685. package/src/lib/xslt-rules/xslt-rule/components/xslt-rule.component.html +496 -0
  686. package/src/lib/xslt-rules/xslt-rule/components/xslt-rule.component.ts +141 -0
  687. package/src/lib/xslt-rules/xslt-rule/xslt-rule-routing.module.ts +30 -0
  688. package/src/lib/xslt-rules/xslt-rule/xslt-rule.module.ts +34 -0
  689. package/src/public-api.ts +7 -0
  690. package/src/test.ts +29 -0
  691. package/tsconfig.lib.json +20 -0
  692. package/tsconfig.lib.prod.json +10 -0
  693. package/tsconfig.spec.json +17 -0
@@ -0,0 +1,1093 @@
1
+ import {createPopper, VirtualElement} from '@popperjs/core'
2
+ import {
3
+ getElementChild,
4
+ getElementParents,
5
+ getAttributeValueByBreakpoint,
6
+ getUniqueIdWithPrefix,
7
+ DataUtil,
8
+ ElementStyleUtil,
9
+ EventHandlerUtil,
10
+ insertAfterElement,
11
+ slideUp,
12
+ slideDown,
13
+ DOMEventHandlerUtil,
14
+ throttle,
15
+ getHighestZindex,
16
+ } from '../_utils/index'
17
+
18
+ export interface MenuOptions {
19
+ dropdown: {
20
+ hoverTimeout: number
21
+ zindex: number
22
+ }
23
+ accordion: {
24
+ slideSpeed: number
25
+ expand: boolean
26
+ }
27
+ }
28
+
29
+ const defaultMenuOptions: MenuOptions = {
30
+ dropdown: {
31
+ hoverTimeout: 200,
32
+ zindex: 105,
33
+ },
34
+ accordion: {
35
+ slideSpeed: 250,
36
+ expand: false,
37
+ },
38
+ }
39
+
40
+ type PopperPlacement =
41
+ | 'right'
42
+ | 'auto'
43
+ | 'auto-start'
44
+ | 'auto-end'
45
+ | 'top'
46
+ | 'bottom'
47
+ | 'left'
48
+ | 'top-start'
49
+ | 'top-end'
50
+ | 'bottom-start'
51
+ | 'bottom-end'
52
+ | 'right-start'
53
+ | 'right-end'
54
+ | 'left-start'
55
+ | 'left-end'
56
+ | undefined
57
+
58
+ class MenuComponent {
59
+ element: HTMLElement
60
+ options: MenuOptions
61
+ instanceUid: string
62
+ triggerElement: HTMLElement | null = null
63
+
64
+ constructor(_element: HTMLElement, options: MenuOptions) {
65
+ this.element = _element
66
+ this.options = Object.assign(defaultMenuOptions, options)
67
+ this.instanceUid = getUniqueIdWithPrefix('menu')
68
+ // this.element.setAttribute('data-kt-menu', 'true')
69
+ this._setTriggerElement()
70
+ this._update()
71
+ DataUtil.set(this.element, 'menu', this)
72
+ return this
73
+ }
74
+
75
+ // Set external trigger element
76
+ private _setTriggerElement = () => {
77
+ const target = document.querySelector(
78
+ `[data-kt-menu-target="#${this.element.getAttribute('id')}"`
79
+ )
80
+
81
+ if (target) {
82
+ this.triggerElement = target as HTMLElement
83
+ } else if (this.element.closest('[data-kt-menu-trigger]')) {
84
+ this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement
85
+ } else if (
86
+ this.element.parentNode &&
87
+ getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]')
88
+ ) {
89
+ const child = getElementChild(
90
+ this.element.parentNode as HTMLElement,
91
+ '[data-kt-menu-trigger]'
92
+ )
93
+ if (child) {
94
+ this.triggerElement = child
95
+ }
96
+ }
97
+
98
+ if (this.triggerElement) {
99
+ DataUtil.set(this.triggerElement, 'menu', this)
100
+ }
101
+ }
102
+
103
+ // Test if menu has external trigger element
104
+ private _isTriggerElement = (item: HTMLElement) => {
105
+ return this.triggerElement === item
106
+ }
107
+
108
+ // Get item option(through html attributes)
109
+ private _getItemOption = (item: HTMLElement, name: string) => {
110
+ let value: string | JSON | null | boolean = null
111
+ if (item && item.hasAttribute('data-kt-menu-' + name)) {
112
+ const attr = item.getAttribute('data-kt-menu-' + name) || ''
113
+ value = getAttributeValueByBreakpoint(attr)
114
+ if (value !== null && String(value) === 'true') {
115
+ value = true
116
+ } else if (value !== null && String(value) === 'false') {
117
+ value = false
118
+ }
119
+ }
120
+ return value
121
+ }
122
+
123
+ // Get item element
124
+ private _getItemElement = (_element: HTMLElement): HTMLElement | undefined => {
125
+ // Element is the external trigger element
126
+ if (this._isTriggerElement(_element)) {
127
+ return _element
128
+ }
129
+
130
+ // Element has item toggler attribute
131
+ if (_element.hasAttribute('data-kt-menu-trigger')) {
132
+ return _element
133
+ }
134
+
135
+ // Element has item DOM reference in it's data storage
136
+ const itemElement = DataUtil.get(_element, 'item')
137
+ if (itemElement) {
138
+ return itemElement as HTMLElement
139
+ }
140
+
141
+ // Item is parent of element
142
+ const item = _element.closest<HTMLElement>('.menu-item[data-kt-menu-trigger]')
143
+ if (item) {
144
+ return item
145
+ }
146
+
147
+ // Element's parent has item DOM reference in it's data storage
148
+ const sub = _element.closest('.menu-sub')
149
+ if (sub) {
150
+ const subItem = DataUtil.get(sub as HTMLElement, 'item')
151
+ if (subItem) {
152
+ return subItem as HTMLElement
153
+ }
154
+ }
155
+ }
156
+
157
+ // Get item parent element
158
+ private _getItemParentElement = (item: HTMLElement) => {
159
+ const sub = item.closest<HTMLElement>('.menu-sub')
160
+ if (!sub) {
161
+ return null
162
+ }
163
+
164
+ const subItem = DataUtil.get(sub, 'item')
165
+ if (subItem) {
166
+ return subItem as HTMLElement
167
+ }
168
+
169
+ const parentItem = sub.closest<HTMLElement>('.menu-item[data-kt-menu-trigger]')
170
+ if (sub && parentItem) {
171
+ return parentItem
172
+ }
173
+
174
+ return null
175
+ }
176
+
177
+ // Get item parent elements
178
+ private _getItemParentElements = (item: HTMLElement) => {
179
+ const parents: Array<HTMLElement> = []
180
+ let parent: HTMLElement | null
181
+ let i = 0
182
+ let buffer: HTMLElement = item
183
+
184
+ do {
185
+ parent = this._getItemParentElement(buffer)
186
+ if (parent) {
187
+ parents.push(parent)
188
+ buffer = parent as HTMLElement
189
+ }
190
+
191
+ i++
192
+ } while (parent !== null && i < 20)
193
+
194
+ if (this.triggerElement) {
195
+ parents.unshift(this.triggerElement)
196
+ }
197
+
198
+ return parents
199
+ }
200
+
201
+ // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)
202
+ private _getDropdownPopperConfig = (item: HTMLElement) => {
203
+ // Placement
204
+ const placementOption = this._getItemOption(item, 'placement')
205
+ let placement: PopperPlacement = 'right'
206
+ if (placementOption) {
207
+ placement = placementOption as PopperPlacement
208
+ }
209
+
210
+ // Flip
211
+ // const flipValue = this._getItemOption(item, 'flip')
212
+ // const flip = flipValue ? flipValue.toString().split(',') : []
213
+
214
+ // Offset
215
+ const offsetValue = this._getItemOption(item, 'offset')
216
+ const offset = offsetValue ? offsetValue.toString().split(',') : []
217
+
218
+ // Strategy
219
+ const strategy: 'absolute' | 'fixed' | undefined =
220
+ this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed'
221
+
222
+ return {
223
+ placement: placement,
224
+ strategy: strategy,
225
+ modifiers: [
226
+ {
227
+ name: 'offset',
228
+ options: {
229
+ offset: offset,
230
+ },
231
+ },
232
+ {
233
+ name: 'preventOverflow',
234
+ },
235
+ {
236
+ name: 'flip',
237
+ options: {
238
+ // altBoundary: true,
239
+ // fallbackPlacements: flip,
240
+ flipVariations: false,
241
+ },
242
+ },
243
+ ],
244
+ }
245
+ }
246
+
247
+ // Get item child element
248
+ private _getItemChildElement = (item: HTMLElement): HTMLElement | null => {
249
+ let selector = item
250
+
251
+ const subItem = DataUtil.get(item, 'sub')
252
+ if (subItem) {
253
+ selector = subItem as HTMLElement
254
+ }
255
+
256
+ if (selector) {
257
+ //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');
258
+ const element = selector.querySelector<HTMLElement>('.menu-item[data-kt-menu-trigger]')
259
+ if (element) {
260
+ return element
261
+ }
262
+ }
263
+ return null
264
+ }
265
+
266
+ // Get item child elements
267
+ private _getItemChildElements = (item: HTMLElement) => {
268
+ const children: Array<HTMLElement> = []
269
+ let child: HTMLElement | null
270
+ let i = 0
271
+ let buffer = item
272
+ do {
273
+ child = this._getItemChildElement(buffer)
274
+ if (child) {
275
+ children.push(child)
276
+ buffer = child as HTMLElement
277
+ }
278
+
279
+ i++
280
+ } while (child !== null && i < 20)
281
+
282
+ return children
283
+ }
284
+
285
+ // Get item sub element
286
+ private _getItemSubElement = (item: HTMLElement): HTMLElement | null => {
287
+ if (!item) {
288
+ return null
289
+ }
290
+
291
+ if (this._isTriggerElement(item)) {
292
+ return this.element
293
+ }
294
+
295
+ if (item.classList.contains('menu-sub')) {
296
+ return item
297
+ } else if (DataUtil.has(item, 'sub')) {
298
+ const itemSub = DataUtil.get(item, 'sub')
299
+ return itemSub ? (itemSub as HTMLElement) : null
300
+ } else {
301
+ return getElementChild(item, '.menu-sub')
302
+ }
303
+ }
304
+
305
+ private _getCss = (el: HTMLElement, styleProp: string) => {
306
+ const defaultView = (el.ownerDocument || document).defaultView
307
+ if (!defaultView) {
308
+ return ''
309
+ }
310
+
311
+ // sanitize property name to css notation
312
+ // (hyphen separated words eg. font-Size)
313
+ styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()
314
+
315
+ return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)
316
+ }
317
+
318
+ // Get item sub type
319
+ private _getItemSubType = (element: HTMLElement) => {
320
+ const sub = this._getItemSubElement(element)
321
+ if (sub && parseInt(this._getCss(sub as HTMLElement, 'z-index')) > 0) {
322
+ return 'dropdown'
323
+ } else {
324
+ return 'accordion'
325
+ }
326
+ }
327
+
328
+ // Test if item's sub is shown
329
+ private _isItemSubShown = (item: HTMLElement) => {
330
+ let sub = this._getItemSubElement(item)
331
+ if (sub) {
332
+ if (this._getItemSubType(item) === 'dropdown') {
333
+ const subHTMLElement = sub as HTMLElement
334
+ return (
335
+ subHTMLElement.classList.contains('show') &&
336
+ subHTMLElement.hasAttribute('data-popper-placement')
337
+ )
338
+ } else {
339
+ return item.classList.contains('show')
340
+ }
341
+ }
342
+
343
+ return false
344
+ }
345
+
346
+ // Test if item dropdown is permanent
347
+ private _isItemDropdownPermanent = (item: HTMLElement) => {
348
+ return this._getItemOption(item, 'permanent') === true
349
+ }
350
+
351
+ // Test if item's parent is shown
352
+ private _isItemParentShown = (item: HTMLElement) => {
353
+ return getElementParents(item, '.menu-item.show').length > 0
354
+ }
355
+
356
+ // Test of it is item sub element
357
+ private _isItemSubElement = (item: HTMLElement) => {
358
+ return item.classList.contains('menu-sub')
359
+ }
360
+
361
+ // Test if item has sub
362
+ private _hasItemSub = (item: HTMLElement) => {
363
+ return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger')
364
+ }
365
+
366
+ // Get link element
367
+ private _getItemLinkElement = (item: HTMLElement) => {
368
+ return getElementChild(item, '.menu-link')
369
+ }
370
+
371
+ // Get toggle element
372
+ private _getItemToggleElement = (item: HTMLElement) => {
373
+ if (this.triggerElement) {
374
+ return this.triggerElement
375
+ }
376
+
377
+ return this._getItemLinkElement(item)
378
+ }
379
+
380
+ // Show item dropdown
381
+ private _showDropdown = (item: HTMLElement) => {
382
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {
383
+ return
384
+ }
385
+
386
+ // Hide all currently shown dropdowns except current one
387
+ MenuComponent.hideDropdowns(item)
388
+
389
+ // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);
390
+ const sub = this._getItemSubElement(item)
391
+ const width = this._getItemOption(item, 'width')
392
+ const height = this._getItemOption(item, 'height')
393
+
394
+ let zindex = this.options.dropdown.zindex
395
+ const parentZindex = getHighestZindex(item) // update
396
+ // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update
397
+ if (parentZindex !== null && parentZindex >= zindex) {
398
+ zindex = parentZindex + 1
399
+ }
400
+
401
+ if (zindex && sub) {
402
+ ElementStyleUtil.set(sub, 'z-index', zindex)
403
+ }
404
+
405
+ if (width && sub) {
406
+ ElementStyleUtil.set(sub, 'width', width)
407
+ }
408
+
409
+ if (height && sub) {
410
+ ElementStyleUtil.set(sub, 'height', height)
411
+ }
412
+
413
+ this.initDropdownPopper(item, sub as HTMLElement)
414
+
415
+ item.classList.add('show')
416
+ item.classList.add('menu-dropdown')
417
+ sub?.classList.add('show')
418
+
419
+ // Append the sub the the root of the menu
420
+ if (this._getItemOption(item, 'overflow') === true) {
421
+ if (sub) {
422
+ document.body.appendChild(sub)
423
+ DataUtil.set(item, 'sub', sub)
424
+ DataUtil.set(sub, 'item', item)
425
+ DataUtil.set(sub, 'menu', this)
426
+ }
427
+ } else {
428
+ if (sub) {
429
+ DataUtil.set(sub, 'item', item)
430
+ }
431
+ }
432
+
433
+ EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown')
434
+ }
435
+
436
+ // Init dropdown popper(new)
437
+ private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => {
438
+ // Setup popper instance
439
+ let reference
440
+ const attach = this._getItemOption(item, 'attach') as string
441
+
442
+ if (attach) {
443
+ if (attach === 'parent') {
444
+ reference = item.parentNode
445
+ } else {
446
+ reference = document.querySelector(attach)
447
+ }
448
+ } else {
449
+ reference = item
450
+ }
451
+
452
+ if (reference) {
453
+ const popper = createPopper(
454
+ reference as Element | VirtualElement,
455
+ sub,
456
+ this._getDropdownPopperConfig(item)
457
+ )
458
+ DataUtil.set(item, 'popper', popper)
459
+ }
460
+ }
461
+
462
+ // Hide item dropdown
463
+ private _hideDropdown = (item: HTMLElement) => {
464
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {
465
+ return
466
+ }
467
+
468
+ const sub = this._getItemSubElement(item)
469
+ if (sub) {
470
+ ElementStyleUtil.set(sub, 'z-index', '')
471
+ ElementStyleUtil.set(sub, 'width', '')
472
+ ElementStyleUtil.set(sub, 'height', '')
473
+ }
474
+
475
+ item.classList.remove('show')
476
+ item.classList.remove('menu-dropdown')
477
+ if (sub) {
478
+ sub.classList.remove('show')
479
+ }
480
+
481
+ // Append the sub back to it's parent
482
+ if (this._getItemOption(item, 'overflow') === true) {
483
+ if (item.classList.contains('menu-item')) {
484
+ if (sub) {
485
+ item.appendChild(sub)
486
+ }
487
+ } else {
488
+ insertAfterElement(this.element, item)
489
+ }
490
+
491
+ if (sub) {
492
+ DataUtil.remove(item, 'sub')
493
+ DataUtil.remove(sub, 'item')
494
+ DataUtil.remove(sub, 'menu')
495
+ }
496
+ }
497
+
498
+ if (DataUtil.has(item, 'popper') === true) {
499
+ // @ts-ignore
500
+ DataUtil.get(item, 'popper').destroy()
501
+ DataUtil.remove(item, 'popper')
502
+ }
503
+
504
+ // Destroy popper(new)
505
+ this.destroyDropdownPopper(item)
506
+ EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')
507
+ }
508
+
509
+ // Destroy dropdown popper(new)
510
+ private destroyDropdownPopper = (item: HTMLElement) => {
511
+ if (DataUtil.has(item, 'popper') === true) {
512
+ // @ts-ignore
513
+ DataUtil.get(item, 'popper').destroy()
514
+ DataUtil.remove(item, 'popper')
515
+ }
516
+
517
+ EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')
518
+ }
519
+
520
+ private _showAccordion = (item: HTMLElement) => {
521
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {
522
+ return
523
+ }
524
+
525
+ if (this.options.accordion.expand === false) {
526
+ this._hideAccordions(item)
527
+ }
528
+
529
+ if (DataUtil.has(item, 'popper') === true) {
530
+ this._hideDropdown(item)
531
+ }
532
+
533
+ item.classList.add('hover') // updateWW
534
+ item.classList.add('showing')
535
+
536
+ const subElement = this._getItemSubElement(item)
537
+ if (subElement) {
538
+ const sub = subElement as HTMLElement
539
+ slideDown(sub, this.options.accordion.slideSpeed, () => {
540
+ item.classList.remove('showing')
541
+ item.classList.add('show')
542
+ sub.classList.add('show')
543
+ EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown')
544
+ })
545
+ }
546
+ }
547
+
548
+ private _hideAccordion = (item: HTMLElement) => {
549
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {
550
+ return
551
+ }
552
+
553
+ const sub = this._getItemSubElement(item)
554
+ item.classList.add('hiding')
555
+
556
+ if (sub) {
557
+ slideUp(sub, this.options.accordion.slideSpeed, () => {
558
+ item.classList.remove('hiding')
559
+ item.classList.remove('show')
560
+ sub.classList.remove('show')
561
+ item.classList.remove('hover') // update
562
+ EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden')
563
+ })
564
+ }
565
+ }
566
+
567
+ // Hide all shown accordions of item
568
+ private _hideAccordions = (item: HTMLElement) => {
569
+ const itemsToHide = this.element.querySelectorAll('.hover[data-kt-menu-trigger]')
570
+ if (itemsToHide && itemsToHide.length > 0) {
571
+ for (var i = 0, len = itemsToHide.length; i < len; i++) {
572
+ const itemToHide = itemsToHide[i] as HTMLElement
573
+
574
+ if (
575
+ this._getItemSubType(itemToHide) === 'accordion' &&
576
+ itemToHide !== item &&
577
+ item.contains(itemToHide) === false &&
578
+ itemToHide.contains(item) === false
579
+ ) {
580
+ this._hideAccordion(itemToHide)
581
+ }
582
+ }
583
+ }
584
+ }
585
+
586
+ // Event Handlers
587
+ // Reset item state classes if item sub type changed
588
+ private _reset = (item: HTMLElement) => {
589
+ if (this._hasItemSub(item) === false) {
590
+ return
591
+ }
592
+
593
+ const sub = this._getItemSubElement(item)
594
+
595
+ // Reset sub state if sub type is changed during the window resize
596
+ if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {
597
+ // updated
598
+ item.classList.remove('hover')
599
+ item.classList.remove('show')
600
+ item.classList.remove('show')
601
+ if (sub) {
602
+ sub.classList.remove('show')
603
+ }
604
+ } // updated
605
+ }
606
+
607
+ // TODO: not done
608
+ private _destroy = () => {
609
+ this.element.removeEventListener('click', MenuComponent.globalClickHandler);
610
+ }
611
+
612
+ // Update all item state classes if item sub type changed
613
+ private _update = () => {
614
+ const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]')
615
+ items.forEach((el) => this._reset(el as HTMLElement))
616
+ }
617
+
618
+ // Hide item sub
619
+ private _hide = (item: HTMLElement) => {
620
+ if (!item) {
621
+ return
622
+ }
623
+
624
+ if (this._isItemSubShown(item) === false) {
625
+ return
626
+ }
627
+
628
+ if (this._getItemSubType(item) === 'dropdown') {
629
+ this._hideDropdown(item)
630
+ } else if (this._getItemSubType(item) === 'accordion') {
631
+ this._hideAccordion(item)
632
+ }
633
+ }
634
+
635
+ // Show item sub
636
+ private _show = (item: HTMLElement) => {
637
+ if (!item) {
638
+ return
639
+ }
640
+
641
+ if (this._isItemSubShown(item) === true) {
642
+ return
643
+ }
644
+
645
+ if (this._getItemSubType(item) === 'dropdown') {
646
+ this._showDropdown(item) // // show current dropdown
647
+ } else if (this._getItemSubType(item) === 'accordion') {
648
+ this._showAccordion(item)
649
+ }
650
+
651
+ // Remember last submenu type
652
+
653
+ DataUtil.set(item, 'type', this._getItemSubType(item)) // updated
654
+ }
655
+
656
+ // Toggle item sub
657
+ private _toggle = (item: HTMLElement) => {
658
+ if (!item) {
659
+ return
660
+ }
661
+
662
+ if (this._isItemSubShown(item) === true) {
663
+ this._hide(item)
664
+ } else {
665
+ this._show(item)
666
+ }
667
+ }
668
+
669
+ // Mouseout handle
670
+ private _mouseout = (element: HTMLElement, e: MouseEvent) => {
671
+ const item = this._getItemElement(element)
672
+ if (!item) {
673
+ return
674
+ }
675
+
676
+ if (this._getItemOption(item, 'trigger') !== 'hover') {
677
+ return
678
+ }
679
+
680
+ const timeout = setTimeout(() => {
681
+ if (DataUtil.get(item, 'hover') === '1') {
682
+ this._hide(item)
683
+ }
684
+ }, this.options.dropdown.hoverTimeout)
685
+
686
+ DataUtil.set(item, 'hover', '1')
687
+ DataUtil.set(item, 'timeout', timeout)
688
+ }
689
+
690
+ // Mouseover handle
691
+ private _mouseover = (element: HTMLElement, e: MouseEvent) => {
692
+ const item = this._getItemElement(element)
693
+ if (!item) {
694
+ return
695
+ }
696
+
697
+ if (this._getItemOption(item, 'trigger') !== 'hover') {
698
+ return
699
+ }
700
+
701
+ if (DataUtil.get(item, 'hover') === '1') {
702
+ const timeout = DataUtil.get(item, 'timeout')
703
+ if (timeout) {
704
+ clearTimeout(timeout as number)
705
+ }
706
+ DataUtil.remove(item, 'hover')
707
+ DataUtil.remove(item, 'timeout')
708
+ }
709
+
710
+ this._show(item)
711
+ }
712
+
713
+ // Dismiss handler
714
+ private _dismiss = (element: HTMLElement, e: Event) => {
715
+ const item = this._getItemElement(element)
716
+ if (!item) {
717
+ return
718
+ }
719
+ const items = this._getItemChildElements(item)
720
+ //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {
721
+ const itemSubType = this._getItemSubType(item)
722
+ if (item !== null && itemSubType === 'dropdown') {
723
+ this._hide(item) // hide items dropdown
724
+
725
+ // Hide all child elements as well
726
+ if (items.length > 0) {
727
+ for (let i = 0, len = items.length; i < len; i++) {
728
+ //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {
729
+ if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') {
730
+ this._hide(items[i] as HTMLElement)
731
+ }
732
+ }
733
+ }
734
+ }
735
+ }
736
+
737
+ // Link handler
738
+ private _link = (element: HTMLElement, e: Event) => {
739
+ if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {
740
+ return
741
+ }
742
+
743
+ this._hideAccordions(element)
744
+
745
+ // Dismiss all shown dropdowns
746
+ MenuComponent.hideDropdowns(undefined)
747
+ EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked')
748
+ }
749
+
750
+ private _click = (element: HTMLElement, e: Event) => {
751
+ e.preventDefault()
752
+ const item = this._getItemElement(element)
753
+ if (item) {
754
+ if (this._getItemOption(item, 'trigger') !== 'click') {
755
+ return
756
+ }
757
+
758
+ if (this._getItemOption(item, 'toggle') === false) {
759
+ this._show(item)
760
+ } else {
761
+ this._toggle(item)
762
+ }
763
+ }
764
+ }
765
+
766
+ ///////////////////////
767
+ // ** Public API ** //
768
+ ///////////////////////
769
+ public click = (element: HTMLElement, e: Event) => {
770
+ return this._click(element, e)
771
+ }
772
+
773
+ public link = (element: HTMLElement, e: Event) => {
774
+ return this._link(element, e)
775
+ }
776
+
777
+ public dismiss = (element: HTMLElement, e: Event) => {
778
+ return this._dismiss(element, e)
779
+ }
780
+
781
+ public mouseover = (element: HTMLElement, e: Event) => {
782
+ return this._mouseover(element, e as MouseEvent)
783
+ }
784
+
785
+ public mouseout = (element: HTMLElement, e: Event) => {
786
+ return this._mouseout(element, e as MouseEvent)
787
+ }
788
+
789
+ // General Methods
790
+ public getItemTriggerType = (item: HTMLElement) => {
791
+ return this._getItemOption(item, 'trigger')
792
+ }
793
+
794
+ public getItemSubType = (element: HTMLElement) => {
795
+ return this._getItemSubType(element)
796
+ }
797
+
798
+ public show = (item: HTMLElement) => {
799
+ return this._show(item)
800
+ }
801
+
802
+ public hide = (item: HTMLElement) => {
803
+ return this._hide(item)
804
+ }
805
+
806
+ public reset = (item: HTMLElement) => {
807
+ return this._reset(item)
808
+ }
809
+
810
+ public update = () => {
811
+ return this._update()
812
+ }
813
+
814
+ public getElement = () => {
815
+ return this.element
816
+ }
817
+
818
+ public getItemLinkElement = (item: HTMLElement) => {
819
+ return this._getItemLinkElement(item)
820
+ }
821
+
822
+ public getItemToggleElement = (item: HTMLElement) => {
823
+ return this._getItemToggleElement(item)
824
+ }
825
+
826
+ public getItemSubElement = (item: HTMLElement) => {
827
+ return this._getItemSubElement(item)
828
+ }
829
+
830
+ public getItemParentElements = (item: HTMLElement) => {
831
+ return this._getItemParentElements(item)
832
+ }
833
+
834
+ public isItemSubShown = (item: HTMLElement) => {
835
+ return this._isItemSubShown(item)
836
+ }
837
+
838
+ public isItemParentShown = (item: HTMLElement) => {
839
+ return this._isItemParentShown(item)
840
+ }
841
+
842
+ public getTriggerElement = () => {
843
+ return this.triggerElement
844
+ }
845
+
846
+ public isItemDropdownPermanent = (item: HTMLElement) => {
847
+ return this._isItemDropdownPermanent(item)
848
+ }
849
+
850
+ // Accordion Mode Methods
851
+ public hideAccordions = (item: HTMLElement) => {
852
+ return this._hideAccordions(item)
853
+ }
854
+
855
+ // Event API
856
+ public on = (name: string, handler: any) => {
857
+ return EventHandlerUtil.on(this.element, name, handler)
858
+ }
859
+
860
+ public one = (name: string, handler: any) => {
861
+ return EventHandlerUtil.one(this.element, name, handler)
862
+ }
863
+
864
+ public off = (name: string, handlerId: string) => {
865
+ return EventHandlerUtil.off(this.element, name, handlerId)
866
+ }
867
+
868
+ // public static methods
869
+ // Get KTMenu instance by element
870
+ public static getInstance = (element: HTMLElement): MenuComponent | null => {
871
+ // Element has menu DOM reference in it's DATA storage
872
+ const elementMenu = DataUtil.get(element, 'menu')
873
+ if (elementMenu) {
874
+ return elementMenu as MenuComponent
875
+ }
876
+
877
+ // Element has .menu parent
878
+ const menu = element.closest('.menu')
879
+ if (menu) {
880
+ const menuData = DataUtil.get(menu as HTMLElement, 'menu')
881
+ if (menuData) {
882
+ return menuData as MenuComponent
883
+ }
884
+ }
885
+
886
+ // Element has a parent with DOM reference to .menu in it's DATA storage
887
+ if (element.classList.contains('menu-link')) {
888
+ const sub = element.closest('.menu-sub')
889
+ if (sub) {
890
+ const subMenu = DataUtil.get(sub as HTMLElement, 'menu')
891
+ if (subMenu) {
892
+ return subMenu as MenuComponent
893
+ }
894
+ }
895
+ }
896
+
897
+ return null
898
+ }
899
+
900
+ // Hide all dropdowns and skip one if provided
901
+ public static hideDropdowns = (skip: HTMLElement | undefined) => {
902
+ const items = document.querySelectorAll<HTMLElement>(
903
+ '.show.menu-dropdown[data-kt-menu-trigger]'
904
+ )
905
+
906
+ if (items && items.length > 0) {
907
+ for (let i = 0, len = items.length; i < len; i++) {
908
+ const item = items[i]
909
+ const menu = MenuComponent.getInstance(item as HTMLElement)
910
+
911
+ if (menu && menu.getItemSubType(item) === 'dropdown') {
912
+ if (skip) {
913
+ if (
914
+ // @ts-ignore
915
+ menu.getItemSubElement(item).contains(skip) === false &&
916
+ item.contains(skip) === false &&
917
+ item !== skip
918
+ ) {
919
+ menu.hide(item)
920
+ }
921
+ } else {
922
+ menu.hide(item)
923
+ }
924
+ }
925
+ }
926
+ }
927
+ }
928
+
929
+ public static updateDropdowns = () => {
930
+ const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')
931
+ if (items && items.length > 0) {
932
+ for (var i = 0, len = items.length; i < len; i++) {
933
+ var item = items[i]
934
+
935
+ if (DataUtil.has(item as HTMLElement, 'popper')) {
936
+ // @ts-ignore
937
+ DataUtil.get(item as HTMLElement, 'popper').forceUpdate()
938
+ }
939
+ }
940
+ }
941
+ }
942
+
943
+ // Global handlers
944
+ public static createInstances = (selector: string) => {
945
+ // Initialize menus
946
+ document.querySelectorAll(selector).forEach((el) => {
947
+ const menuItem = el as HTMLElement
948
+ let menuInstance = MenuComponent.getInstance(menuItem)
949
+ if (!menuInstance) {
950
+ menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions)
951
+ }
952
+ })
953
+ }
954
+
955
+ private static globalClickHandler = (e: MouseEvent) => {
956
+ const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]');
957
+ if (menuItems && menuItems.length > 0) {
958
+ for (let i = 0; i < menuItems.length; i++) {
959
+ const item = menuItems[i] as HTMLElement;
960
+ const menuObj = MenuComponent.getInstance(item) as MenuComponent;
961
+ if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {
962
+ // const menu = menuObj.getElement();
963
+ const sub = menuObj.getItemSubElement(item) as HTMLElement;
964
+ if (item === e.target || item.contains(e.target as HTMLElement)) {
965
+ continue;
966
+ }
967
+ if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) {
968
+ continue;
969
+ }
970
+ menuObj.hide(item);
971
+ }
972
+ }
973
+ }
974
+ }
975
+
976
+ public static initGlobalHandlers = () => {
977
+ document.removeEventListener('click', MenuComponent.globalClickHandler);
978
+ // Dropdown handler
979
+ document.addEventListener('click', MenuComponent.globalClickHandler);
980
+
981
+ // Sub toggle handler
982
+ DOMEventHandlerUtil.on(
983
+ document.body,
984
+ '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger="auto"])',
985
+ 'click',
986
+ function (this: HTMLElement, e: Event) {
987
+ const menu = MenuComponent.getInstance(this) as MenuComponent
988
+ if (menu) {
989
+ return menu.click(this, e)
990
+ }
991
+ }
992
+ )
993
+
994
+ // // Link handler
995
+ DOMEventHandlerUtil.on(
996
+ document.body,
997
+ '.menu-item:not([data-kt-menu-trigger]) > .menu-link',
998
+ 'click',
999
+ function (this: HTMLElement, e: Event) {
1000
+ e.stopPropagation()
1001
+ const menu = MenuComponent.getInstance(this)
1002
+ if (menu && menu.link) {
1003
+ return menu.link(this, e)
1004
+ }
1005
+ }
1006
+ )
1007
+
1008
+ // Dismiss handler
1009
+ DOMEventHandlerUtil.on(
1010
+ document.body,
1011
+ '[data-kt-menu-dismiss="true"]',
1012
+ 'click',
1013
+ function (this: HTMLElement, e: Event) {
1014
+ const menu = MenuComponent.getInstance(this) as MenuComponent
1015
+ if (menu) {
1016
+ return menu.dismiss(this, e)
1017
+ }
1018
+ }
1019
+ )
1020
+
1021
+ // Mouseover handler
1022
+ DOMEventHandlerUtil.on(
1023
+ document.body,
1024
+ '[data-kt-menu-trigger], .menu-sub',
1025
+ 'mouseover',
1026
+ function (this: HTMLElement, e: Event) {
1027
+ const menu = MenuComponent.getInstance(this) as MenuComponent
1028
+ if (menu && menu.getItemSubType(this) === 'dropdown') {
1029
+ return menu.mouseover(this, e)
1030
+ }
1031
+ }
1032
+ )
1033
+
1034
+ // Mouseout handler
1035
+ DOMEventHandlerUtil.on(
1036
+ document.body,
1037
+ '[data-kt-menu-trigger], .menu-sub',
1038
+ 'mouseout',
1039
+ function (this: HTMLElement, e: Event) {
1040
+ const menu = MenuComponent.getInstance(this) as MenuComponent
1041
+ if (menu && menu.getItemSubType(this) === 'dropdown') {
1042
+ return menu.mouseout(this, e)
1043
+ }
1044
+ }
1045
+ )
1046
+
1047
+ // Resize handler
1048
+ window.addEventListener('resize', () => {
1049
+ let timer
1050
+ throttle(
1051
+ timer,
1052
+ () => {
1053
+ // Locate and update Drawer instances on window resize
1054
+ const elements = document.querySelectorAll('[data-kt-menu="true"]')
1055
+ elements.forEach((el) => {
1056
+ const menu = MenuComponent.getInstance(el as HTMLElement)
1057
+ if (menu) {
1058
+ menu.update()
1059
+ }
1060
+ })
1061
+ },
1062
+ 200
1063
+ )
1064
+ })
1065
+ }
1066
+
1067
+ public static bootstrap = () => {
1068
+ MenuComponent.initGlobalHandlers()
1069
+ MenuComponent.createInstances('[data-kt-menu="true"]')
1070
+ }
1071
+
1072
+ public static reinitialization = () => {
1073
+ MenuComponent.createInstances('[data-kt-menu="true"]')
1074
+ }
1075
+
1076
+ public static createInsance = (
1077
+ selector: string,
1078
+ options: MenuOptions = defaultMenuOptions
1079
+ ): MenuComponent | undefined => {
1080
+ const element = document.body.querySelector(selector)
1081
+ if (!element) {
1082
+ return
1083
+ }
1084
+ const item = element as HTMLElement
1085
+ let menu = MenuComponent.getInstance(item)
1086
+ if (!menu) {
1087
+ menu = new MenuComponent(item, options)
1088
+ }
1089
+ return menu
1090
+ }
1091
+ }
1092
+
1093
+ export {MenuComponent, defaultMenuOptions}