cmat 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (680) hide show
  1. package/README.md +3 -0
  2. package/animations/defaults.d.ts +11 -0
  3. package/animations/drop.d.ts +2 -0
  4. package/animations/expand-collapse.d.ts +2 -0
  5. package/animations/fade.d.ts +11 -0
  6. package/animations/index.d.ts +5 -0
  7. package/animations/public-api.d.ts +1 -0
  8. package/animations/shake.d.ts +2 -0
  9. package/animations/slide.d.ts +9 -0
  10. package/animations/transform.d.ts +2 -0
  11. package/animations/zoom.d.ts +3 -0
  12. package/components/adapter/datetime-adapter.d.ts +45 -0
  13. package/components/adapter/datetime-formats.d.ts +22 -0
  14. package/components/adapter/dayjs-date-adapter.d.ts +63 -0
  15. package/components/adapter/dayjs-date-formats.d.ts +2 -0
  16. package/components/adapter/dayjs-datetime-adapter.d.ts +22 -0
  17. package/components/adapter/dayjs-datetime-formats.d.ts +2 -0
  18. package/components/adapter/index.d.ts +5 -0
  19. package/components/adapter/native-datetime-adapter.d.ts +31 -0
  20. package/components/adapter/native-datetime-formats.d.ts +2 -0
  21. package/components/adapter/public-api.d.ts +8 -0
  22. package/components/breadcrumb/breadcrumb-item.directive.d.ts +10 -0
  23. package/components/breadcrumb/breadcrumb.component.d.ts +57 -0
  24. package/components/breadcrumb/breadcrumb.component.scss +18 -0
  25. package/components/breadcrumb/breadcrumb.service.d.ts +126 -0
  26. package/components/breadcrumb/index.d.ts +5 -0
  27. package/components/breadcrumb/public-api.d.ts +3 -0
  28. package/components/breadcrumb/types/breadcrumb.config.d.ts +33 -0
  29. package/components/breadcrumb/types/breadcrumb.d.ts +23 -0
  30. package/components/card/card.component.d.ts +20 -0
  31. package/components/card/card.component.scss +63 -0
  32. package/components/card/card.types.d.ts +1 -0
  33. package/components/card/index.d.ts +5 -0
  34. package/components/card/public-api.d.ts +1 -0
  35. package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +14 -0
  36. package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.scss +43 -0
  37. package/components/cascade/cascade-list/cascade-list.component.d.ts +52 -0
  38. package/components/cascade/cascade-list/cascade-list.component.scss +22 -0
  39. package/components/cascade/cascade-menu/cascade-menu.component.d.ts +10 -0
  40. package/components/cascade/cascade-menu/cascade-menu.component.scss +48 -0
  41. package/components/cascade/index.d.ts +5 -0
  42. package/components/cascade/options.interface.d.ts +8 -0
  43. package/components/cascade/public-api.d.ts +2 -0
  44. package/components/date-range/date-range.component.d.ts +134 -0
  45. package/components/date-range/date-range.component.scss +232 -0
  46. package/components/date-range/index.d.ts +5 -0
  47. package/components/date-range/public-api.d.ts +1 -0
  48. package/components/drawer/drawer.component.d.ts +75 -0
  49. package/components/drawer/drawer.component.scss +133 -0
  50. package/components/drawer/drawer.service.d.ts +26 -0
  51. package/components/drawer/drawer.types.d.ts +2 -0
  52. package/components/drawer/index.d.ts +5 -0
  53. package/components/drawer/public-api.d.ts +3 -0
  54. package/components/fullscreen/fullscreen.component.d.ts +18 -0
  55. package/components/fullscreen/fullscreen.types.d.ts +13 -0
  56. package/components/fullscreen/index.d.ts +5 -0
  57. package/components/fullscreen/public-api.d.ts +2 -0
  58. package/components/highlight/highlight.component.d.ts +21 -0
  59. package/components/highlight/highlight.component.scss +3 -0
  60. package/components/highlight/highlight.service.d.ts +7 -0
  61. package/components/highlight/index.d.ts +5 -0
  62. package/components/highlight/public-api.d.ts +2 -0
  63. package/components/masonry/index.d.ts +5 -0
  64. package/components/masonry/masonry.component.d.ts +13 -0
  65. package/components/masonry/public-api.d.ts +1 -0
  66. package/components/material-color-picker/base-color.d.ts +1 -0
  67. package/components/material-color-picker/index.d.ts +5 -0
  68. package/components/material-color-picker/material-color-picker.component.d.ts +35 -0
  69. package/components/material-color-picker/material-color-picker.component.scss +5 -0
  70. package/components/material-color-picker/public-api.d.ts +2 -0
  71. package/components/material-color-picker/selected-color.d.ts +5 -0
  72. package/components/material-datetimepicker/calendar-body.d.ts +43 -0
  73. package/components/material-datetimepicker/calendar-body.scss +58 -0
  74. package/components/material-datetimepicker/calendar.d.ts +146 -0
  75. package/components/material-datetimepicker/calendar.scss +194 -0
  76. package/components/material-datetimepicker/clock.d.ts +74 -0
  77. package/components/material-datetimepicker/clock.scss +90 -0
  78. package/components/material-datetimepicker/datetimepicker-animations.d.ts +4 -0
  79. package/components/material-datetimepicker/datetimepicker-content.scss +151 -0
  80. package/components/material-datetimepicker/datetimepicker-errors.d.ts +1 -0
  81. package/components/material-datetimepicker/datetimepicker-filtertype.d.ts +5 -0
  82. package/components/material-datetimepicker/datetimepicker-input.d.ts +106 -0
  83. package/components/material-datetimepicker/datetimepicker-intl.d.ts +51 -0
  84. package/components/material-datetimepicker/datetimepicker-toggle.d.ts +40 -0
  85. package/components/material-datetimepicker/datetimepicker-types.d.ts +13 -0
  86. package/components/material-datetimepicker/datetimepicker.d.ts +195 -0
  87. package/components/material-datetimepicker/datetimepicker.scss +145 -0
  88. package/components/material-datetimepicker/index.d.ts +5 -0
  89. package/components/material-datetimepicker/month-view.d.ts +64 -0
  90. package/components/material-datetimepicker/multi-year-view.d.ts +74 -0
  91. package/components/material-datetimepicker/public-api.d.ts +9 -0
  92. package/components/material-datetimepicker/time.d.ts +129 -0
  93. package/components/material-datetimepicker/time.scss +82 -0
  94. package/components/material-datetimepicker/year-view.d.ts +56 -0
  95. package/components/navigation/horizontal/components/basic/basic.component.d.ts +27 -0
  96. package/components/navigation/horizontal/components/branch/branch.component.d.ts +39 -0
  97. package/components/navigation/horizontal/components/divider/divider.component.d.ts +23 -0
  98. package/components/navigation/horizontal/components/spacer/spacer.component.d.ts +23 -0
  99. package/components/navigation/horizontal/horizontal.component.d.ts +43 -0
  100. package/components/navigation/horizontal/horizontal.component.scss +167 -0
  101. package/components/navigation/index.d.ts +5 -0
  102. package/components/navigation/navigation.service.d.ts +71 -0
  103. package/components/navigation/navigation.types.d.ts +34 -0
  104. package/components/navigation/public-api.d.ts +4 -0
  105. package/components/navigation/vertical/components/aside/aside.component.d.ts +63 -0
  106. package/components/navigation/vertical/components/basic/basic.component.d.ts +30 -0
  107. package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +74 -0
  108. package/components/navigation/vertical/components/divider/divider.component.d.ts +26 -0
  109. package/components/navigation/vertical/components/group/group.component.d.ts +36 -0
  110. package/components/navigation/vertical/components/spacer/spacer.component.d.ts +26 -0
  111. package/components/navigation/vertical/styles/appearances/compact.scss +103 -0
  112. package/components/navigation/vertical/styles/appearances/default.scss +550 -0
  113. package/components/navigation/vertical/styles/appearances/dense.scss +171 -0
  114. package/components/navigation/vertical/styles/appearances/thin.scss +91 -0
  115. package/components/navigation/vertical/vertical.component.d.ts +176 -0
  116. package/components/navigation/vertical/vertical.component.scss +4 -0
  117. package/components/pagination/index.d.ts +5 -0
  118. package/components/pagination/pagination.component.d.ts +24 -0
  119. package/components/pagination/pagination.directive.d.ts +40 -0
  120. package/components/pagination/pagination.instance.d.ts +11 -0
  121. package/components/pagination/pagination.pipe.d.ts +29 -0
  122. package/components/pagination/pagination.service.d.ts +20 -0
  123. package/components/pagination/public-api.d.ts +4 -0
  124. package/components/password-strength/animations/index.d.ts +4 -0
  125. package/components/password-strength/enum.d.ts +13 -0
  126. package/components/password-strength/index.d.ts +5 -0
  127. package/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.d.ts +11 -0
  128. package/components/password-strength/mat-password-strength/mat-password-strength.component.d.ts +52 -0
  129. package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.d.ts +16 -0
  130. package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.scss +19 -0
  131. package/components/password-strength/mat-password-strength-validator.d.ts +6 -0
  132. package/components/password-strength/public-api.d.ts +3 -0
  133. package/components/password-strength/regexp.class.d.ts +6 -0
  134. package/components/popover/index.d.ts +5 -0
  135. package/components/popover/popover.component.d.ts +139 -0
  136. package/components/popover/popover.component.scss +174 -0
  137. package/components/popover/popover.errors.d.ts +14 -0
  138. package/components/popover/popover.interfaces.d.ts +44 -0
  139. package/components/popover/popover.type.d.ts +5 -0
  140. package/components/popover/public-api.d.ts +1 -0
  141. package/components/progress-bar/index.d.ts +5 -0
  142. package/components/progress-bar/progress-bar.component.d.ts +17 -0
  143. package/components/progress-bar/progress-bar.component.scss +7 -0
  144. package/components/progress-bar/public-api.d.ts +1 -0
  145. package/components/rating/index.d.ts +5 -0
  146. package/components/rating/public-api.d.ts +1 -0
  147. package/components/rating/rating.component.d.ts +28 -0
  148. package/components/rating/rating.component.scss +33 -0
  149. package/components/select-search/default-options.d.ts +8 -0
  150. package/components/select-search/index.d.ts +5 -0
  151. package/components/select-search/public-api.d.ts +2 -0
  152. package/components/select-search/select-no-entries-found.directive.d.ts +5 -0
  153. package/components/select-search/select-search-clear.directive.d.ts +5 -0
  154. package/components/select-search/select-search.component.d.ts +91 -0
  155. package/components/select-search/select-search.component.scss +126 -0
  156. package/components/select-tree/index.d.ts +5 -0
  157. package/components/select-tree/public-api.d.ts +1 -0
  158. package/components/select-tree/select-tree.component.d.ts +85 -0
  159. package/components/select-tree/select-tree.component.scss +54 -0
  160. package/components/select-tree/select-tree.flatnode.d.ts +6 -0
  161. package/components/select-tree/select-tree.node.d.ts +5 -0
  162. package/components/timeline/index.d.ts +5 -0
  163. package/components/timeline/public-api.d.ts +2 -0
  164. package/components/timeline/timeline-item/timeline-item.component.d.ts +25 -0
  165. package/components/timeline/timeline-item/timeline-item.component.scss +329 -0
  166. package/components/timeline/timeline.component.d.ts +32 -0
  167. package/components/timeline/timeline.component.scss +42 -0
  168. package/components/toast/index.d.ts +5 -0
  169. package/components/toast/models/global-config.model.d.ts +12 -0
  170. package/components/toast/models/toast.model.d.ts +6 -0
  171. package/components/toast/models/type.model.d.ts +12 -0
  172. package/components/toast/public-api.d.ts +2 -0
  173. package/components/toast/toast-modal.component.d.ts +18 -0
  174. package/components/toast/toast-modal.component.scss +119 -0
  175. package/components/toast/toast.component.d.ts +17 -0
  176. package/components/toast/toast.component.scss +62 -0
  177. package/components/toast/toast.service.d.ts +26 -0
  178. package/components/transfer-picker/filter/filter.component.d.ts +24 -0
  179. package/components/transfer-picker/filter/filter.component.scss +40 -0
  180. package/components/transfer-picker/index.d.ts +5 -0
  181. package/components/transfer-picker/interface.d.ts +42 -0
  182. package/components/transfer-picker/public-api.d.ts +7 -0
  183. package/components/transfer-picker/search/search.component.d.ts +14 -0
  184. package/components/transfer-picker/search/search.component.scss +7 -0
  185. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +49 -0
  186. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.scss +25 -0
  187. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +12 -0
  188. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.scss +27 -0
  189. package/components/transfer-picker/transfer-picker.component.d.ts +28 -0
  190. package/components/transfer-picker/transfer-picker.component.scss +8 -0
  191. package/components/transfer-picker/transfer-picker.service.d.ts +31 -0
  192. package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +29 -0
  193. package/directives/animate-on-scroll/index.d.ts +5 -0
  194. package/directives/animate-on-scroll/public-api.d.ts +1 -0
  195. package/directives/animate-on-scroll/scroll.service.d.ts +15 -0
  196. package/directives/autofocus/autofocus.directive.d.ts +10 -0
  197. package/directives/autofocus/index.d.ts +5 -0
  198. package/directives/autofocus/public-api.d.ts +1 -0
  199. package/directives/debounce/abstract-debounce.directive.d.ts +15 -0
  200. package/directives/debounce/debounce-click.directive.d.ts +8 -0
  201. package/directives/debounce/debounce-keyup.directive.d.ts +8 -0
  202. package/directives/debounce/index.d.ts +5 -0
  203. package/directives/debounce/public-api.d.ts +2 -0
  204. package/directives/digit-only/digit-only.directive.d.ts +34 -0
  205. package/directives/digit-only/index.d.ts +5 -0
  206. package/directives/digit-only/mask.directive.d.ts +14 -0
  207. package/directives/digit-only/public-api.d.ts +2 -0
  208. package/directives/equal-validator/equal-validator.directive.d.ts +14 -0
  209. package/directives/equal-validator/index.d.ts +5 -0
  210. package/directives/equal-validator/public-api.d.ts +1 -0
  211. package/esm2022/animations/cmat-animations.mjs +5 -0
  212. package/esm2022/animations/defaults.mjs +12 -0
  213. package/esm2022/animations/drop.mjs +26 -0
  214. package/esm2022/animations/expand-collapse.mjs +17 -0
  215. package/esm2022/animations/fade.mjs +170 -0
  216. package/esm2022/animations/public-api.mjs +19 -0
  217. package/esm2022/animations/shake.mjs +59 -0
  218. package/esm2022/animations/slide.mjs +124 -0
  219. package/esm2022/animations/transform.mjs +16 -0
  220. package/esm2022/animations/zoom.mjs +38 -0
  221. package/esm2022/cmat.mjs +5 -0
  222. package/esm2022/components/adapter/cmat-components-adapter.mjs +5 -0
  223. package/esm2022/components/adapter/datetime-adapter.mjs +127 -0
  224. package/esm2022/components/adapter/datetime-formats.mjs +3 -0
  225. package/esm2022/components/adapter/dayjs-date-adapter.mjs +198 -0
  226. package/esm2022/components/adapter/dayjs-date-formats.mjs +12 -0
  227. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +100 -0
  228. package/esm2022/components/adapter/dayjs-datetime-formats.mjs +21 -0
  229. package/esm2022/components/adapter/native-datetime-adapter.mjs +130 -0
  230. package/esm2022/components/adapter/native-datetime-formats.mjs +15 -0
  231. package/esm2022/components/adapter/public-api.mjs +9 -0
  232. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +19 -0
  233. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +95 -0
  234. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +336 -0
  235. package/esm2022/components/breadcrumb/cmat-components-breadcrumb.mjs +5 -0
  236. package/esm2022/components/breadcrumb/public-api.mjs +4 -0
  237. package/esm2022/components/breadcrumb/types/breadcrumb.config.mjs +2 -0
  238. package/esm2022/components/breadcrumb/types/breadcrumb.mjs +2 -0
  239. package/esm2022/components/card/card.component.mjs +58 -0
  240. package/esm2022/components/card/card.types.mjs +2 -0
  241. package/esm2022/components/card/cmat-components-card.mjs +5 -0
  242. package/esm2022/components/card/public-api.mjs +2 -0
  243. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +53 -0
  244. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +263 -0
  245. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +29 -0
  246. package/esm2022/components/cascade/cmat-components-cascade.mjs +5 -0
  247. package/esm2022/components/cascade/options.interface.mjs +2 -0
  248. package/esm2022/components/cascade/public-api.mjs +3 -0
  249. package/esm2022/components/date-range/cmat-components-date-range.mjs +5 -0
  250. package/esm2022/components/date-range/date-range.component.mjs +540 -0
  251. package/esm2022/components/date-range/public-api.mjs +2 -0
  252. package/esm2022/components/drawer/cmat-components-drawer.mjs +5 -0
  253. package/esm2022/components/drawer/drawer.component.mjs +301 -0
  254. package/esm2022/components/drawer/drawer.service.mjs +41 -0
  255. package/esm2022/components/drawer/drawer.types.mjs +2 -0
  256. package/esm2022/components/drawer/public-api.mjs +4 -0
  257. package/esm2022/components/fullscreen/cmat-components-fullscreen.mjs +5 -0
  258. package/esm2022/components/fullscreen/fullscreen.component.mjs +101 -0
  259. package/esm2022/components/fullscreen/fullscreen.types.mjs +2 -0
  260. package/esm2022/components/fullscreen/public-api.mjs +3 -0
  261. package/esm2022/components/highlight/cmat-components-highlight.mjs +5 -0
  262. package/esm2022/components/highlight/highlight.component.mjs +80 -0
  263. package/esm2022/components/highlight/highlight.service.mjs +47 -0
  264. package/esm2022/components/highlight/public-api.mjs +3 -0
  265. package/esm2022/components/masonry/cmat-components-masonry.mjs +5 -0
  266. package/esm2022/components/masonry/masonry.component.mjs +54 -0
  267. package/esm2022/components/masonry/public-api.mjs +2 -0
  268. package/esm2022/components/material-color-picker/base-color.mjs +13 -0
  269. package/esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs +5 -0
  270. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +138 -0
  271. package/esm2022/components/material-color-picker/public-api.mjs +3 -0
  272. package/esm2022/components/material-color-picker/selected-color.mjs +3 -0
  273. package/esm2022/components/material-datetimepicker/calendar-body.mjs +80 -0
  274. package/esm2022/components/material-datetimepicker/calendar.mjs +678 -0
  275. package/esm2022/components/material-datetimepicker/clock.mjs +293 -0
  276. package/esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs +5 -0
  277. package/esm2022/components/material-datetimepicker/datetimepicker-animations.mjs +34 -0
  278. package/esm2022/components/material-datetimepicker/datetimepicker-errors.mjs +6 -0
  279. package/esm2022/components/material-datetimepicker/datetimepicker-filtertype.mjs +8 -0
  280. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +340 -0
  281. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +63 -0
  282. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +88 -0
  283. package/esm2022/components/material-datetimepicker/datetimepicker-types.mjs +2 -0
  284. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +534 -0
  285. package/esm2022/components/material-datetimepicker/month-view.mjs +146 -0
  286. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +198 -0
  287. package/esm2022/components/material-datetimepicker/public-api.mjs +10 -0
  288. package/esm2022/components/material-datetimepicker/time.mjs +456 -0
  289. package/esm2022/components/material-datetimepicker/year-view.mjs +125 -0
  290. package/esm2022/components/navigation/cmat-components-navigation.mjs +5 -0
  291. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +70 -0
  292. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +83 -0
  293. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +47 -0
  294. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +47 -0
  295. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +88 -0
  296. package/esm2022/components/navigation/navigation.service.mjs +140 -0
  297. package/esm2022/components/navigation/navigation.types.mjs +3 -0
  298. package/esm2022/components/navigation/public-api.mjs +5 -0
  299. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +162 -0
  300. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +76 -0
  301. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +279 -0
  302. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +56 -0
  303. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +79 -0
  304. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +56 -0
  305. package/esm2022/components/navigation/vertical/vertical.component.mjs +586 -0
  306. package/esm2022/components/pagination/cmat-components-pagination.mjs +5 -0
  307. package/esm2022/components/pagination/pagination.component.mjs +71 -0
  308. package/esm2022/components/pagination/pagination.directive.mjs +197 -0
  309. package/esm2022/components/pagination/pagination.instance.mjs +2 -0
  310. package/esm2022/components/pagination/pagination.pipe.mjs +100 -0
  311. package/esm2022/components/pagination/pagination.service.mjs +90 -0
  312. package/esm2022/components/pagination/public-api.mjs +5 -0
  313. package/esm2022/components/password-strength/animations/index.mjs +48 -0
  314. package/esm2022/components/password-strength/cmat-components-password-strength.mjs +5 -0
  315. package/esm2022/components/password-strength/enum.mjs +17 -0
  316. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +27 -0
  317. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +206 -0
  318. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +151 -0
  319. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +36 -0
  320. package/esm2022/components/password-strength/public-api.mjs +4 -0
  321. package/esm2022/components/password-strength/regexp.class.mjs +8 -0
  322. package/esm2022/components/popover/cmat-components-popover.mjs +5 -0
  323. package/esm2022/components/popover/popover.component.mjs +350 -0
  324. package/esm2022/components/popover/popover.errors.mjs +27 -0
  325. package/esm2022/components/popover/popover.interfaces.mjs +2 -0
  326. package/esm2022/components/popover/popover.type.mjs +2 -0
  327. package/esm2022/components/popover/public-api.mjs +2 -0
  328. package/esm2022/components/progress-bar/cmat-components-progress-bar.mjs +5 -0
  329. package/esm2022/components/progress-bar/progress-bar.component.mjs +55 -0
  330. package/esm2022/components/progress-bar/public-api.mjs +2 -0
  331. package/esm2022/components/rating/cmat-components-rating.mjs +5 -0
  332. package/esm2022/components/rating/public-api.mjs +2 -0
  333. package/esm2022/components/rating/rating.component.mjs +91 -0
  334. package/esm2022/components/select-search/cmat-components-select-search.mjs +5 -0
  335. package/esm2022/components/select-search/default-options.mjs +16 -0
  336. package/esm2022/components/select-search/public-api.mjs +3 -0
  337. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +14 -0
  338. package/esm2022/components/select-search/select-search-clear.directive.mjs +14 -0
  339. package/esm2022/components/select-search/select-search.component.mjs +488 -0
  340. package/esm2022/components/select-tree/cmat-components-select-tree.mjs +5 -0
  341. package/esm2022/components/select-tree/public-api.mjs +2 -0
  342. package/esm2022/components/select-tree/select-tree.component.mjs +458 -0
  343. package/esm2022/components/select-tree/select-tree.flatnode.mjs +3 -0
  344. package/esm2022/components/select-tree/select-tree.node.mjs +3 -0
  345. package/esm2022/components/timeline/cmat-components-timeline.mjs +5 -0
  346. package/esm2022/components/timeline/public-api.mjs +3 -0
  347. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +68 -0
  348. package/esm2022/components/timeline/timeline.component.mjs +114 -0
  349. package/esm2022/components/toast/cmat-components-toast.mjs +5 -0
  350. package/esm2022/components/toast/models/global-config.model.mjs +2 -0
  351. package/esm2022/components/toast/models/toast.model.mjs +2 -0
  352. package/esm2022/components/toast/models/type.model.mjs +2 -0
  353. package/esm2022/components/toast/public-api.mjs +3 -0
  354. package/esm2022/components/toast/toast-modal.component.mjs +53 -0
  355. package/esm2022/components/toast/toast.component.mjs +30 -0
  356. package/esm2022/components/toast/toast.service.mjs +122 -0
  357. package/esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs +5 -0
  358. package/esm2022/components/transfer-picker/filter/filter.component.mjs +85 -0
  359. package/esm2022/components/transfer-picker/interface.mjs +17 -0
  360. package/esm2022/components/transfer-picker/public-api.mjs +8 -0
  361. package/esm2022/components/transfer-picker/search/search.component.mjs +34 -0
  362. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +178 -0
  363. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +34 -0
  364. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +82 -0
  365. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +134 -0
  366. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +126 -0
  367. package/esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs +5 -0
  368. package/esm2022/directives/animate-on-scroll/public-api.mjs +2 -0
  369. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +38 -0
  370. package/esm2022/directives/autofocus/autofocus.directive.mjs +20 -0
  371. package/esm2022/directives/autofocus/cmat-directives-autofocus.mjs +5 -0
  372. package/esm2022/directives/autofocus/public-api.mjs +2 -0
  373. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +34 -0
  374. package/esm2022/directives/debounce/cmat-directives-debounce.mjs +5 -0
  375. package/esm2022/directives/debounce/debounce-click.directive.mjs +25 -0
  376. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +25 -0
  377. package/esm2022/directives/debounce/public-api.mjs +3 -0
  378. package/esm2022/directives/digit-only/cmat-directives-digit-only.mjs +5 -0
  379. package/esm2022/directives/digit-only/digit-only.directive.mjs +282 -0
  380. package/esm2022/directives/digit-only/mask.directive.mjs +69 -0
  381. package/esm2022/directives/digit-only/public-api.mjs +3 -0
  382. package/esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs +5 -0
  383. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +54 -0
  384. package/esm2022/directives/equal-validator/public-api.mjs +2 -0
  385. package/esm2022/lib/mock-api/cmat-lib-mock-api.mjs +5 -0
  386. package/esm2022/lib/mock-api/mock-api.constants.mjs +3 -0
  387. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +73 -0
  388. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +48 -0
  389. package/esm2022/lib/mock-api/mock-api.service.mjs +93 -0
  390. package/esm2022/lib/mock-api/mock-api.types.mjs +2 -0
  391. package/esm2022/lib/mock-api/mock-api.utils.mjs +17 -0
  392. package/esm2022/lib/mock-api/public-api.mjs +6 -0
  393. package/esm2022/pipes/bytes/bytes.pipe.mjs +25 -0
  394. package/esm2022/pipes/bytes/cmat-pipes-bytes.mjs +5 -0
  395. package/esm2022/pipes/bytes/public-api.mjs +2 -0
  396. package/esm2022/pipes/date-format/cmat-pipes-date-format.mjs +5 -0
  397. package/esm2022/pipes/date-format/date-format.pipe.mjs +18 -0
  398. package/esm2022/pipes/date-format/public-api.mjs +2 -0
  399. package/esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs +5 -0
  400. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +23 -0
  401. package/esm2022/pipes/find-by-key/public-api.mjs +2 -0
  402. package/esm2022/pipes/group-by/cmat-pipes-group-by.mjs +5 -0
  403. package/esm2022/pipes/group-by/group-by.pipe.mjs +29 -0
  404. package/esm2022/pipes/group-by/public-api.mjs +2 -0
  405. package/esm2022/pipes/keys/cmat-pipes-keys.mjs +5 -0
  406. package/esm2022/pipes/keys/keys.pipe.mjs +26 -0
  407. package/esm2022/pipes/keys/public-api.mjs +2 -0
  408. package/esm2022/pipes/secure/cmat-pipes-secure.mjs +5 -0
  409. package/esm2022/pipes/secure/public-api.mjs +2 -0
  410. package/esm2022/pipes/secure/secure-pipe.mjs +43 -0
  411. package/esm2022/pipes/uppercase/cmat-pipes-uppercase.mjs +5 -0
  412. package/esm2022/pipes/uppercase/public-api.mjs +2 -0
  413. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +17 -0
  414. package/esm2022/public-api.mjs +2 -0
  415. package/esm2022/services/alert/alert.dialog.mjs +12 -0
  416. package/esm2022/services/alert/alert.message.mjs +9 -0
  417. package/esm2022/services/alert/alert.service.mjs +165 -0
  418. package/esm2022/services/alert/cmat-services-alert.mjs +5 -0
  419. package/esm2022/services/alert/enum.mjs +15 -0
  420. package/esm2022/services/alert/public-api.mjs +5 -0
  421. package/esm2022/services/config/cmat-services-config.mjs +5 -0
  422. package/esm2022/services/config/config.constants.mjs +3 -0
  423. package/esm2022/services/config/config.service.mjs +35 -0
  424. package/esm2022/services/config/public-api.mjs +4 -0
  425. package/esm2022/services/config/urlStateConfig.service.mjs +30 -0
  426. package/esm2022/services/confirmation/cmat-services-confirmation.mjs +5 -0
  427. package/esm2022/services/confirmation/confirmation.service.mjs +51 -0
  428. package/esm2022/services/confirmation/confirmation.types.mjs +2 -0
  429. package/esm2022/services/confirmation/dialog/dialog.component.mjs +25 -0
  430. package/esm2022/services/confirmation/public-api.mjs +3 -0
  431. package/esm2022/services/data/cmat-services-data.mjs +5 -0
  432. package/esm2022/services/data/data.service.mjs +169 -0
  433. package/esm2022/services/data/public-api.mjs +2 -0
  434. package/esm2022/services/loading/cmat-services-loading.mjs +5 -0
  435. package/esm2022/services/loading/loading.interceptor.mjs +29 -0
  436. package/esm2022/services/loading/loading.service.mjs +72 -0
  437. package/esm2022/services/loading/public-api.mjs +3 -0
  438. package/esm2022/services/local-storage/cmat-services-local-storage.mjs +5 -0
  439. package/esm2022/services/local-storage/local-storage.service.mjs +22 -0
  440. package/esm2022/services/local-storage/public-api.mjs +2 -0
  441. package/esm2022/services/media-watcher/cmat-services-media-watcher.mjs +5 -0
  442. package/esm2022/services/media-watcher/media-watcher.service.mjs +55 -0
  443. package/esm2022/services/media-watcher/public-api.mjs +2 -0
  444. package/esm2022/services/platform/cmat-services-platform.mjs +5 -0
  445. package/esm2022/services/platform/platform.service.mjs +46 -0
  446. package/esm2022/services/platform/public-api.mjs +2 -0
  447. package/esm2022/services/splash-screen/cmat-services-splash-screen.mjs +5 -0
  448. package/esm2022/services/splash-screen/public-api.mjs +2 -0
  449. package/esm2022/services/splash-screen/splash-screen.service.mjs +42 -0
  450. package/esm2022/services/title/cmat-services-title.mjs +5 -0
  451. package/esm2022/services/title/public-api.mjs +2 -0
  452. package/esm2022/services/title/title.service.mjs +46 -0
  453. package/esm2022/services/translation/cmat-services-translation.mjs +5 -0
  454. package/esm2022/services/translation/public-api.mjs +2 -0
  455. package/esm2022/services/translation/translation.service.mjs +62 -0
  456. package/esm2022/services/utils/cmat-services-utils.mjs +5 -0
  457. package/esm2022/services/utils/public-api.mjs +2 -0
  458. package/esm2022/services/utils/utils.service.mjs +391 -0
  459. package/esm2022/validators/cmat-validators.mjs +5 -0
  460. package/esm2022/validators/public-api.mjs +2 -0
  461. package/esm2022/validators/validators.mjs +33 -0
  462. package/esm2022/version/cmat-version.mjs +5 -0
  463. package/esm2022/version/public-api.mjs +2 -0
  464. package/esm2022/version/version.mjs +11 -0
  465. package/fesm2022/cmat-animations.mjs +466 -0
  466. package/fesm2022/cmat-animations.mjs.map +1 -0
  467. package/fesm2022/cmat-components-adapter.mjs +600 -0
  468. package/fesm2022/cmat-components-adapter.mjs.map +1 -0
  469. package/fesm2022/cmat-components-breadcrumb.mjs +449 -0
  470. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -0
  471. package/fesm2022/cmat-components-card.mjs +65 -0
  472. package/fesm2022/cmat-components-card.mjs.map +1 -0
  473. package/fesm2022/cmat-components-cascade.mjs +334 -0
  474. package/fesm2022/cmat-components-cascade.mjs.map +1 -0
  475. package/fesm2022/cmat-components-date-range.mjs +547 -0
  476. package/fesm2022/cmat-components-date-range.mjs.map +1 -0
  477. package/fesm2022/cmat-components-drawer.mjs +346 -0
  478. package/fesm2022/cmat-components-drawer.mjs.map +1 -0
  479. package/fesm2022/cmat-components-fullscreen.mjs +108 -0
  480. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -0
  481. package/fesm2022/cmat-components-highlight.mjs +131 -0
  482. package/fesm2022/cmat-components-highlight.mjs.map +1 -0
  483. package/fesm2022/cmat-components-masonry.mjs +61 -0
  484. package/fesm2022/cmat-components-masonry.mjs.map +1 -0
  485. package/fesm2022/cmat-components-material-color-picker.mjs +160 -0
  486. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -0
  487. package/fesm2022/cmat-components-material-datetimepicker.mjs +2976 -0
  488. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -0
  489. package/fesm2022/cmat-components-navigation.mjs +1656 -0
  490. package/fesm2022/cmat-components-navigation.mjs.map +1 -0
  491. package/fesm2022/cmat-components-pagination.mjs +455 -0
  492. package/fesm2022/cmat-components-pagination.mjs.map +1 -0
  493. package/fesm2022/cmat-components-password-strength.mjs +489 -0
  494. package/fesm2022/cmat-components-password-strength.mjs.map +1 -0
  495. package/fesm2022/cmat-components-popover.mjs +383 -0
  496. package/fesm2022/cmat-components-popover.mjs.map +1 -0
  497. package/fesm2022/cmat-components-progress-bar.mjs +62 -0
  498. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -0
  499. package/fesm2022/cmat-components-rating.mjs +98 -0
  500. package/fesm2022/cmat-components-rating.mjs.map +1 -0
  501. package/fesm2022/cmat-components-select-search.mjs +531 -0
  502. package/fesm2022/cmat-components-select-search.mjs.map +1 -0
  503. package/fesm2022/cmat-components-select-tree.mjs +467 -0
  504. package/fesm2022/cmat-components-select-tree.mjs.map +1 -0
  505. package/fesm2022/cmat-components-timeline.mjs +186 -0
  506. package/fesm2022/cmat-components-timeline.mjs.map +1 -0
  507. package/fesm2022/cmat-components-toast.mjs +205 -0
  508. package/fesm2022/cmat-components-toast.mjs.map +1 -0
  509. package/fesm2022/cmat-components-transfer-picker.mjs +536 -0
  510. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -0
  511. package/fesm2022/cmat-directives-animate-on-scroll.mjs +166 -0
  512. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -0
  513. package/fesm2022/cmat-directives-autofocus.mjs +27 -0
  514. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -0
  515. package/fesm2022/cmat-directives-debounce.mjs +85 -0
  516. package/fesm2022/cmat-directives-debounce.mjs.map +1 -0
  517. package/fesm2022/cmat-directives-digit-only.mjs +356 -0
  518. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -0
  519. package/fesm2022/cmat-directives-equal-validator.mjs +61 -0
  520. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -0
  521. package/fesm2022/cmat-lib-mock-api.mjs +232 -0
  522. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -0
  523. package/fesm2022/cmat-pipes-bytes.mjs +32 -0
  524. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -0
  525. package/fesm2022/cmat-pipes-date-format.mjs +25 -0
  526. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -0
  527. package/fesm2022/cmat-pipes-find-by-key.mjs +30 -0
  528. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -0
  529. package/fesm2022/cmat-pipes-group-by.mjs +36 -0
  530. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -0
  531. package/fesm2022/cmat-pipes-keys.mjs +33 -0
  532. package/fesm2022/cmat-pipes-keys.mjs.map +1 -0
  533. package/fesm2022/cmat-pipes-secure.mjs +50 -0
  534. package/fesm2022/cmat-pipes-secure.mjs.map +1 -0
  535. package/fesm2022/cmat-pipes-uppercase.mjs +24 -0
  536. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -0
  537. package/fesm2022/cmat-services-alert.mjs +207 -0
  538. package/fesm2022/cmat-services-alert.mjs.map +1 -0
  539. package/fesm2022/cmat-services-config.mjs +69 -0
  540. package/fesm2022/cmat-services-config.mjs.map +1 -0
  541. package/fesm2022/cmat-services-confirmation.mjs +79 -0
  542. package/fesm2022/cmat-services-confirmation.mjs.map +1 -0
  543. package/fesm2022/cmat-services-data.mjs +176 -0
  544. package/fesm2022/cmat-services-data.mjs.map +1 -0
  545. package/fesm2022/cmat-services-loading.mjs +104 -0
  546. package/fesm2022/cmat-services-loading.mjs.map +1 -0
  547. package/fesm2022/cmat-services-local-storage.mjs +29 -0
  548. package/fesm2022/cmat-services-local-storage.mjs.map +1 -0
  549. package/fesm2022/cmat-services-media-watcher.mjs +62 -0
  550. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -0
  551. package/fesm2022/cmat-services-platform.mjs +53 -0
  552. package/fesm2022/cmat-services-platform.mjs.map +1 -0
  553. package/fesm2022/cmat-services-splash-screen.mjs +49 -0
  554. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -0
  555. package/fesm2022/cmat-services-title.mjs +53 -0
  556. package/fesm2022/cmat-services-title.mjs.map +1 -0
  557. package/fesm2022/cmat-services-translation.mjs +69 -0
  558. package/fesm2022/cmat-services-translation.mjs.map +1 -0
  559. package/fesm2022/cmat-services-utils.mjs +398 -0
  560. package/fesm2022/cmat-services-utils.mjs.map +1 -0
  561. package/fesm2022/cmat-validators.mjs +39 -0
  562. package/fesm2022/cmat-validators.mjs.map +1 -0
  563. package/fesm2022/cmat-version.mjs +17 -0
  564. package/fesm2022/cmat-version.mjs.map +1 -0
  565. package/fesm2022/cmat.mjs +4 -0
  566. package/fesm2022/cmat.mjs.map +1 -0
  567. package/icons/CSV.svg +3 -0
  568. package/icons/EXCEL.svg +3 -0
  569. package/icons/FILE.svg +3 -0
  570. package/icons/GIF.svg +3 -0
  571. package/icons/JPG.svg +3 -0
  572. package/icons/PDF.svg +3 -0
  573. package/icons/PNG.svg +3 -0
  574. package/icons/PPT.svg +3 -0
  575. package/icons/TEXT.svg +3 -0
  576. package/icons/VIDEO.svg +3 -0
  577. package/icons/WORD.svg +3 -0
  578. package/icons/ZIP.svg +3 -0
  579. package/icons/arrow-cursor.svg +3 -0
  580. package/icons/material-icons/heroicons-outline.svg +893 -0
  581. package/icons/material-icons/heroicons-solid.svg +958 -0
  582. package/icons/material-icons/material-outline.svg +3586 -0
  583. package/icons/material-icons/material-solid.svg +3586 -0
  584. package/index.d.ts +5 -0
  585. package/lib/mock-api/index.d.ts +5 -0
  586. package/lib/mock-api/mock-api.constants.d.ts +2 -0
  587. package/lib/mock-api/mock-api.interceptor.d.ts +12 -0
  588. package/lib/mock-api/mock-api.request-handler.d.ts +18 -0
  589. package/lib/mock-api/mock-api.service.d.ts +22 -0
  590. package/lib/mock-api/mock-api.types.d.ts +9 -0
  591. package/lib/mock-api/mock-api.utils.d.ts +3 -0
  592. package/lib/mock-api/public-api.d.ts +5 -0
  593. package/package.json +344 -0
  594. package/pipes/bytes/bytes.pipe.d.ts +7 -0
  595. package/pipes/bytes/index.d.ts +5 -0
  596. package/pipes/bytes/public-api.d.ts +1 -0
  597. package/pipes/date-format/date-format.pipe.d.ts +7 -0
  598. package/pipes/date-format/index.d.ts +5 -0
  599. package/pipes/date-format/public-api.d.ts +1 -0
  600. package/pipes/find-by-key/find-by-key.pipe.d.ts +7 -0
  601. package/pipes/find-by-key/index.d.ts +5 -0
  602. package/pipes/find-by-key/public-api.d.ts +1 -0
  603. package/pipes/group-by/group-by.pipe.d.ts +7 -0
  604. package/pipes/group-by/index.d.ts +5 -0
  605. package/pipes/group-by/public-api.d.ts +1 -0
  606. package/pipes/keys/index.d.ts +5 -0
  607. package/pipes/keys/keys.pipe.d.ts +7 -0
  608. package/pipes/keys/public-api.d.ts +1 -0
  609. package/pipes/secure/index.d.ts +5 -0
  610. package/pipes/secure/public-api.d.ts +1 -0
  611. package/pipes/secure/secure-pipe.d.ts +18 -0
  612. package/pipes/uppercase/index.d.ts +5 -0
  613. package/pipes/uppercase/public-api.d.ts +1 -0
  614. package/pipes/uppercase/uppercase.pipe.d.ts +7 -0
  615. package/public-api.d.ts +1 -0
  616. package/services/alert/alert.dialog.d.ts +11 -0
  617. package/services/alert/alert.message.d.ts +8 -0
  618. package/services/alert/alert.service.d.ts +37 -0
  619. package/services/alert/enum.d.ts +12 -0
  620. package/services/alert/index.d.ts +5 -0
  621. package/services/alert/public-api.d.ts +4 -0
  622. package/services/config/config.constants.d.ts +6 -0
  623. package/services/config/config.service.d.ts +11 -0
  624. package/services/config/index.d.ts +5 -0
  625. package/services/config/public-api.d.ts +3 -0
  626. package/services/config/urlStateConfig.service.d.ts +10 -0
  627. package/services/confirmation/confirmation.service.d.ts +12 -0
  628. package/services/confirmation/confirmation.types.d.ts +21 -0
  629. package/services/confirmation/dialog/dialog.component.d.ts +10 -0
  630. package/services/confirmation/index.d.ts +5 -0
  631. package/services/confirmation/public-api.d.ts +2 -0
  632. package/services/data/data.service.d.ts +20 -0
  633. package/services/data/index.d.ts +5 -0
  634. package/services/data/public-api.d.ts +1 -0
  635. package/services/loading/index.d.ts +5 -0
  636. package/services/loading/loading.interceptor.d.ts +12 -0
  637. package/services/loading/loading.service.d.ts +24 -0
  638. package/services/loading/public-api.d.ts +2 -0
  639. package/services/local-storage/index.d.ts +5 -0
  640. package/services/local-storage/local-storage.service.d.ts +8 -0
  641. package/services/local-storage/public-api.d.ts +1 -0
  642. package/services/media-watcher/index.d.ts +5 -0
  643. package/services/media-watcher/media-watcher.service.d.ts +20 -0
  644. package/services/media-watcher/public-api.d.ts +1 -0
  645. package/services/platform/index.d.ts +5 -0
  646. package/services/platform/platform.service.d.ts +9 -0
  647. package/services/platform/public-api.d.ts +1 -0
  648. package/services/splash-screen/index.d.ts +5 -0
  649. package/services/splash-screen/public-api.d.ts +1 -0
  650. package/services/splash-screen/splash-screen.service.d.ts +14 -0
  651. package/services/title/index.d.ts +5 -0
  652. package/services/title/public-api.d.ts +1 -0
  653. package/services/title/title.service.d.ts +13 -0
  654. package/services/translation/index.d.ts +5 -0
  655. package/services/translation/public-api.d.ts +1 -0
  656. package/services/translation/translation.service.d.ts +20 -0
  657. package/services/utils/index.d.ts +5 -0
  658. package/services/utils/public-api.d.ts +1 -0
  659. package/services/utils/utils.service.d.ts +57 -0
  660. package/styles/components/input.scss +42 -0
  661. package/styles/main.scss +9 -0
  662. package/styles/overrides/angular-material.scss +1403 -0
  663. package/styles/overrides/fullcalendar.scss +550 -0
  664. package/styles/overrides/highlightjs.scss +81 -0
  665. package/styles/styles.scss +3 -0
  666. package/styles/tailwind.scss +86 -0
  667. package/styles/themes.scss +164 -0
  668. package/styles/user-themes.scss +1 -0
  669. package/tailwind/plugins/icon-size.js +49 -0
  670. package/tailwind/plugins/theming.js +256 -0
  671. package/tailwind/plugins/utilities.js +66 -0
  672. package/tailwind/utils/generate-contrasts.js +29 -0
  673. package/tailwind/utils/generate-palette.js +100 -0
  674. package/tailwind/utils/json-to-sass-map.js +67 -0
  675. package/validators/index.d.ts +5 -0
  676. package/validators/public-api.d.ts +1 -0
  677. package/validators/validators.d.ts +5 -0
  678. package/version/index.d.ts +5 -0
  679. package/version/public-api.d.ts +1 -0
  680. package/version/version.d.ts +9 -0
@@ -0,0 +1,1656 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, ChangeDetectionStrategy, Input, forwardRef, ViewChild, ViewEncapsulation, EventEmitter, Output, HostBinding, HostListener } from '@angular/core';
3
+ import { Subject, ReplaySubject } from 'rxjs';
4
+ import { cmatAnimations } from 'cmat/animations';
5
+ import { takeUntil, filter } from 'rxjs/operators';
6
+ import { NgClass, NgIf, NgTemplateOutlet, NgFor } from '@angular/common';
7
+ import * as i2$1 from '@angular/material/menu';
8
+ import { MatMenuModule } from '@angular/material/menu';
9
+ import * as i4 from '@angular/material/icon';
10
+ import { MatIconModule } from '@angular/material/icon';
11
+ import * as i3 from '@angular/material/tooltip';
12
+ import { MatTooltipModule } from '@angular/material/tooltip';
13
+ import * as i1 from '@angular/router';
14
+ import { RouterLink, RouterLinkActive, NavigationEnd } from '@angular/router';
15
+ import * as i2 from 'cmat/services/utils';
16
+ import * as i1$1 from '@angular/animations';
17
+ import { style, animate } from '@angular/animations';
18
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
19
+ import * as i3$1 from '@angular/cdk/overlay';
20
+
21
+ class CmatNavigationService {
22
+ constructor() {
23
+ this._componentRegistry = new Map();
24
+ this._navigationStore = new Map();
25
+ }
26
+ // -----------------------------------------------------------------------------------------------------
27
+ // @ Public methods
28
+ // -----------------------------------------------------------------------------------------------------
29
+ /**
30
+ * Register navigation component
31
+ *
32
+ * @param name
33
+ * @param component
34
+ */
35
+ registerComponent(name, component) {
36
+ this._componentRegistry.set(name, component);
37
+ }
38
+ /**
39
+ * Deregister navigation component
40
+ *
41
+ * @param name
42
+ */
43
+ deregisterComponent(name) {
44
+ this._componentRegistry.delete(name);
45
+ }
46
+ /**
47
+ * Get navigation component from the registry
48
+ *
49
+ * @param name
50
+ */
51
+ getComponent(name) {
52
+ return this._componentRegistry.get(name);
53
+ }
54
+ /**
55
+ * Store the given navigation with the given key
56
+ *
57
+ * @param key
58
+ * @param navigation
59
+ */
60
+ storeNavigation(key, navigation) {
61
+ // Add to the store
62
+ this._navigationStore.set(key, navigation);
63
+ }
64
+ /**
65
+ * Get navigation from storage by key
66
+ *
67
+ * @param key
68
+ */
69
+ getNavigation(key) {
70
+ return this._navigationStore.get(key) ?? [];
71
+ }
72
+ /**
73
+ * Delete the navigation from the storage
74
+ *
75
+ * @param key
76
+ */
77
+ deleteNavigation(key) {
78
+ // Check if the navigation exists
79
+ if (!this._navigationStore.has(key)) {
80
+ console.warn(`Navigation with the key '${key}' does not exist in the store.`);
81
+ }
82
+ // Delete from the storage
83
+ this._navigationStore.delete(key);
84
+ }
85
+ /**
86
+ * Utility function that returns a flattened
87
+ * version of the given navigation array
88
+ *
89
+ * @param navigation
90
+ * @param flatNavigation
91
+ */
92
+ getFlatNavigation(navigation, flatNavigation = []) {
93
+ for (const item of navigation) {
94
+ if (item.type === 'basic') {
95
+ flatNavigation.push(item);
96
+ continue;
97
+ }
98
+ if (item.type === 'aside' || item.type === 'collapsable' || item.type === 'group') {
99
+ if (item.children) {
100
+ this.getFlatNavigation(item.children, flatNavigation);
101
+ }
102
+ }
103
+ }
104
+ return flatNavigation;
105
+ }
106
+ /**
107
+ * Utility function that returns the item
108
+ * with the given id from given navigation
109
+ *
110
+ * @param id
111
+ * @param navigation
112
+ */
113
+ getItem(id, navigation) {
114
+ for (const item of navigation) {
115
+ if (item.id === id) {
116
+ return item;
117
+ }
118
+ if (item.children) {
119
+ const childItem = this.getItem(id, item.children);
120
+ if (childItem) {
121
+ return childItem;
122
+ }
123
+ }
124
+ }
125
+ return null;
126
+ }
127
+ /**
128
+ * Utility function that returns the item's parent
129
+ * with the given id from given navigation
130
+ *
131
+ * @param id
132
+ * @param navigation
133
+ * @param parent
134
+ */
135
+ getItemParent(id, navigation, parent) {
136
+ for (const item of navigation) {
137
+ if (item.id === id) {
138
+ return parent;
139
+ }
140
+ if (item.children) {
141
+ const childItem = this.getItemParent(id, item.children, item);
142
+ if (childItem) {
143
+ return childItem;
144
+ }
145
+ }
146
+ }
147
+ return null;
148
+ }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatNavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
150
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatNavigationService, providedIn: 'root' }); }
151
+ }
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatNavigationService, decorators: [{
153
+ type: Injectable,
154
+ args: [{
155
+ providedIn: 'root'
156
+ }]
157
+ }] });
158
+
159
+ class CmatHorizontalNavigationSpacerItemComponent {
160
+ constructor(_changeDetectorRef, _cmatNavigationService) {
161
+ this._changeDetectorRef = _changeDetectorRef;
162
+ this._cmatNavigationService = _cmatNavigationService;
163
+ this._unsubscribeAll = new Subject();
164
+ }
165
+ // -----------------------------------------------------------------------------------------------------
166
+ // @ Lifecycle hooks
167
+ // -----------------------------------------------------------------------------------------------------
168
+ /**
169
+ * On init
170
+ */
171
+ ngOnInit() {
172
+ // Get the parent navigation component
173
+ this._cmatHorizontalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
174
+ // Subscribe to onRefreshed on the navigation component
175
+ this._cmatHorizontalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
176
+ // Mark for check
177
+ this._changeDetectorRef.markForCheck();
178
+ });
179
+ }
180
+ /**
181
+ * On destroy
182
+ */
183
+ ngOnDestroy() {
184
+ // Unsubscribe from all subscriptions
185
+ this._unsubscribeAll.next(void 0);
186
+ this._unsubscribeAll.complete();
187
+ }
188
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationSpacerItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
189
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatHorizontalNavigationSpacerItemComponent, isStandalone: true, selector: "cmat-horizontal-navigation-spacer-item", inputs: { item: "item", name: "name" }, ngImport: i0, template: "<!-- Spacer -->\r\n<div class=\"cmat-horizontal-navigation-item-wrapper\" [ngClass]=\"item.classes?.wrapper\"></div>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
190
+ }
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationSpacerItemComponent, decorators: [{
192
+ type: Component,
193
+ args: [{ selector: 'cmat-horizontal-navigation-spacer-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "<!-- Spacer -->\r\n<div class=\"cmat-horizontal-navigation-item-wrapper\" [ngClass]=\"item.classes?.wrapper\"></div>" }]
194
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }], propDecorators: { item: [{
195
+ type: Input
196
+ }], name: [{
197
+ type: Input
198
+ }] } });
199
+
200
+ class CmatHorizontalNavigationDividerItemComponent {
201
+ constructor(_changeDetectorRef, _cmatNavigationService) {
202
+ this._changeDetectorRef = _changeDetectorRef;
203
+ this._cmatNavigationService = _cmatNavigationService;
204
+ this._unsubscribeAll = new Subject();
205
+ }
206
+ // -----------------------------------------------------------------------------------------------------
207
+ // @ Lifecycle hooks
208
+ // -----------------------------------------------------------------------------------------------------
209
+ /**
210
+ * On init
211
+ */
212
+ ngOnInit() {
213
+ // Get the parent navigation component
214
+ this._cmatHorizontalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
215
+ // Subscribe to onRefreshed on the navigation component
216
+ this._cmatHorizontalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
217
+ // Mark for check
218
+ this._changeDetectorRef.markForCheck();
219
+ });
220
+ }
221
+ /**
222
+ * On destroy
223
+ */
224
+ ngOnDestroy() {
225
+ // Unsubscribe from all subscriptions
226
+ this._unsubscribeAll.next(void 0);
227
+ this._unsubscribeAll.complete();
228
+ }
229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationDividerItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatHorizontalNavigationDividerItemComponent, isStandalone: true, selector: "cmat-horizontal-navigation-divider-item", inputs: { item: "item", name: "name" }, ngImport: i0, template: "<!-- Divider -->\r\n<div class=\"cmat-horizontal-navigation-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
231
+ }
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationDividerItemComponent, decorators: [{
233
+ type: Component,
234
+ args: [{ selector: 'cmat-horizontal-navigation-divider-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "<!-- Divider -->\r\n<div class=\"cmat-horizontal-navigation-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>" }]
235
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }], propDecorators: { item: [{
236
+ type: Input
237
+ }], name: [{
238
+ type: Input
239
+ }] } });
240
+
241
+ class CmatHorizontalNavigationBasicItemComponent {
242
+ constructor(_changeDetectorRef, _cmatNavigationService, _cmatUtilsService) {
243
+ this._changeDetectorRef = _changeDetectorRef;
244
+ this._cmatNavigationService = _cmatNavigationService;
245
+ this._cmatUtilsService = _cmatUtilsService;
246
+ this._unsubscribeAll = new Subject();
247
+ // Set the equivalent of {exact: false} as default for active match options.
248
+ // We are not assigning the item.isActiveMatchOptions directly to the
249
+ // [routerLinkActiveOptions] because if it's "undefined" initially, the router
250
+ // will throw an error and stop working.
251
+ this.isActiveMatchOptions = this._cmatUtilsService.subsetMatchOptions;
252
+ }
253
+ // -----------------------------------------------------------------------------------------------------
254
+ // @ Lifecycle hooks
255
+ // -----------------------------------------------------------------------------------------------------
256
+ /**
257
+ * On init
258
+ */
259
+ ngOnInit() {
260
+ // Set the "isActiveMatchOptions" either from item's
261
+ // "isActiveMatchOptions" or the equivalent form of
262
+ // item's "exactMatch" option
263
+ this.isActiveMatchOptions =
264
+ this.item.isActiveMatchOptions ?? this.item.exactMatch
265
+ ? this._cmatUtilsService.exactMatchOptions
266
+ : this._cmatUtilsService.subsetMatchOptions;
267
+ // Get the parent navigation component
268
+ this._cmatHorizontalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
269
+ // Mark for check
270
+ this._changeDetectorRef.markForCheck();
271
+ // Subscribe to onRefreshed on the navigation component
272
+ this._cmatHorizontalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
273
+ // Mark for check
274
+ this._changeDetectorRef.markForCheck();
275
+ });
276
+ }
277
+ /**
278
+ * On destroy
279
+ */
280
+ ngOnDestroy() {
281
+ // Unsubscribe from all subscriptions
282
+ this._unsubscribeAll.next(void 0);
283
+ this._unsubscribeAll.complete();
284
+ }
285
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationBasicItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }, { token: i2.CmatUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
286
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatHorizontalNavigationBasicItemComponent, isStandalone: true, selector: "cmat-horizontal-navigation-basic-item", inputs: { item: "item", name: "name" }, ngImport: i0, template: "<!-- Item wrapper -->\r\n<div class=\"cmat-horizontal-navigation-item-wrapper\"\r\n [class.cmat-horizontal-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <!-- Item with an internal link -->\r\n <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\r\n [routerLinkActive]=\"'cmat-horizontal-navigation-item-active'\"\r\n [routerLinkActiveOptions]=\"isActiveMatchOptions\" [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item with an external link -->\r\n <ng-container *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\">\r\n <a class=\"cmat-horizontal-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with a function -->\r\n <ng-container *ngIf=\"!item.link && item.function && !item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item with an internal link and function -->\r\n <ng-container *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\r\n [routerLinkActive]=\"'cmat-horizontal-navigation-item-active'\"\r\n [routerLinkActiveOptions]=\"isActiveMatchOptions\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item with an external link and function -->\r\n <ng-container *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\">\r\n <a class=\"cmat-horizontal-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\" mat-menu-item>\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with a no link and no function -->\r\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item is disabled -->\r\n <ng-container *ngIf=\"item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item cmat-horizontal-navigation-item-disabled\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<!-- Item template -->\r\n<ng-template #itemTemplate>\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-horizontal-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-horizontal-navigation-item-title-wrapper\">\r\n <div class=\"cmat-horizontal-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <!-- <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-horizontal-navigation-item-subtitle text-hint\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container> -->\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-template>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
287
+ }
288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationBasicItemComponent, decorators: [{
289
+ type: Component,
290
+ args: [{ selector: 'cmat-horizontal-navigation-basic-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgIf, RouterLink, RouterLinkActive, MatTooltipModule, NgTemplateOutlet, MatMenuModule, MatIconModule], template: "<!-- Item wrapper -->\r\n<div class=\"cmat-horizontal-navigation-item-wrapper\"\r\n [class.cmat-horizontal-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <!-- Item with an internal link -->\r\n <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\r\n [routerLinkActive]=\"'cmat-horizontal-navigation-item-active'\"\r\n [routerLinkActiveOptions]=\"isActiveMatchOptions\" [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item with an external link -->\r\n <ng-container *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\">\r\n <a class=\"cmat-horizontal-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with a function -->\r\n <ng-container *ngIf=\"!item.link && item.function && !item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item with an internal link and function -->\r\n <ng-container *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\r\n [routerLinkActive]=\"'cmat-horizontal-navigation-item-active'\"\r\n [routerLinkActiveOptions]=\"isActiveMatchOptions\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item with an external link and function -->\r\n <ng-container *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\">\r\n <a class=\"cmat-horizontal-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\" mat-menu-item>\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with a no link and no function -->\r\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item is disabled -->\r\n <ng-container *ngIf=\"item.disabled\">\r\n <div class=\"cmat-horizontal-navigation-item cmat-horizontal-navigation-item-disabled\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<!-- Item template -->\r\n<ng-template #itemTemplate>\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-horizontal-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-horizontal-navigation-item-title-wrapper\">\r\n <div class=\"cmat-horizontal-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <!-- <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-horizontal-navigation-item-subtitle text-hint\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container> -->\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-template>" }]
291
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }, { type: i2.CmatUtilsService }], propDecorators: { item: [{
292
+ type: Input
293
+ }], name: [{
294
+ type: Input
295
+ }] } });
296
+
297
+ class CmatHorizontalNavigationBranchItemComponent {
298
+ constructor(_changeDetectorRef, _cmatNavigationService) {
299
+ this._changeDetectorRef = _changeDetectorRef;
300
+ this._cmatNavigationService = _cmatNavigationService;
301
+ /* eslint-enable @typescript-eslint/naming-convention */
302
+ this.child = false;
303
+ this._unsubscribeAll = new Subject();
304
+ }
305
+ // -----------------------------------------------------------------------------------------------------
306
+ // @ Lifecycle hooks
307
+ // -----------------------------------------------------------------------------------------------------
308
+ /**
309
+ * On init
310
+ */
311
+ ngOnInit() {
312
+ // Get the parent navigation component
313
+ this._cmatHorizontalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
314
+ // Subscribe to onRefreshed on the navigation component
315
+ this._cmatHorizontalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
316
+ // Mark for check
317
+ this._changeDetectorRef.markForCheck();
318
+ });
319
+ }
320
+ /**
321
+ * On destroy
322
+ */
323
+ ngOnDestroy() {
324
+ // Unsubscribe from all subscriptions
325
+ this._unsubscribeAll.next(void 0);
326
+ this._unsubscribeAll.complete();
327
+ }
328
+ // -----------------------------------------------------------------------------------------------------
329
+ // @ Public methods
330
+ // -----------------------------------------------------------------------------------------------------
331
+ /**
332
+ * Trigger the change detection
333
+ */
334
+ triggerChangeDetection() {
335
+ // Mark for check
336
+ this._changeDetectorRef.markForCheck();
337
+ }
338
+ /**
339
+ * Track by function for ngFor loops
340
+ *
341
+ * @param index
342
+ * @param item
343
+ */
344
+ trackByFn(index, item) {
345
+ return item.id || index;
346
+ }
347
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationBranchItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
348
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatHorizontalNavigationBranchItemComponent, isStandalone: true, selector: "cmat-horizontal-navigation-branch-item", inputs: { child: "child", item: "item", name: "name" }, viewQueries: [{ propertyName: "matMenu", first: true, predicate: ["matMenu"], descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"!child\">\r\n <div [ngClass]=\"{'cmat-horizontal-navigation-menu-active': trigger.menuOpen,\r\n 'cmat-horizontal-navigation-menu-active-forced': item.active}\" [matMenuTriggerFor]=\"matMenu\"\r\n (onMenuOpen)=\"triggerChangeDetection()\" (onMenuClose)=\"triggerChangeDetection()\" #trigger=\"matMenuTrigger\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<mat-menu class=\"cmat-horizontal-navigation-menu-panel\" [overlapTrigger]=\"false\" #matMenu=\"matMenu\">\r\n\r\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <div class=\"cmat-horizontal-navigation-menu-item\" [disabled]=\"item.disabled\" mat-menu-item>\r\n <cmat-horizontal-navigation-basic-item [item]=\"item\" [name]=\"name\">\r\n </cmat-horizontal-navigation-basic-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Branch: aside, collapsable, group -->\r\n <ng-container *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\">\r\n <div class=\"cmat-horizontal-navigation-menu-item\" [disabled]=\"item.disabled\"\r\n [matMenuTriggerFor]=\"branch.matMenu\" mat-menu-item>\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\r\n <cmat-horizontal-navigation-branch-item [child]=\"true\" [item]=\"item\" [name]=\"name\" #branch>\r\n </cmat-horizontal-navigation-branch-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <div class=\"cmat-horizontal-navigation-menu-item\" mat-menu-item>\r\n <cmat-horizontal-navigation-divider-item [item]=\"item\" [name]=\"name\">\r\n </cmat-horizontal-navigation-divider-item>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</mat-menu>\r\n\r\n<!-- Item template -->\r\n<ng-template let-item #itemTemplate>\r\n\r\n <div class=\"cmat-horizontal-navigation-item-wrapper\"\r\n [class.cmat-horizontal-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <div class=\"cmat-horizontal-navigation-item\" [ngClass]=\"{'cmat-horizontal-navigation-item-disabled': item.disabled,\r\n 'cmat-horizontal-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-horizontal-navigation-item-icon\" [ngClass]=\"item.classes?.icon\"\r\n [svgIcon]=\"item.icon\"></mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-horizontal-navigation-item-title-wrapper\">\r\n <div class=\"cmat-horizontal-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <!-- <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-horizontal-navigation-item-subtitle text-hint\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container> -->\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>", dependencies: [{ kind: "component", type: i0.forwardRef(() => CmatHorizontalNavigationBranchItemComponent), selector: "cmat-horizontal-navigation-branch-item", inputs: ["child", "item", "name"] }, { kind: "directive", type: i0.forwardRef(() => NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i2$1.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i2$1.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i2$1.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => NgFor), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(() => CmatHorizontalNavigationBasicItemComponent), selector: "cmat-horizontal-navigation-basic-item", inputs: ["item", "name"] }, { kind: "component", type: i0.forwardRef(() => CmatHorizontalNavigationDividerItemComponent), selector: "cmat-horizontal-navigation-divider-item", inputs: ["item", "name"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatTooltipModule) }, { kind: "directive", type: i0.forwardRef(() => i3.MatTooltip), selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatIconModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatIcon), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
349
+ }
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationBranchItemComponent, decorators: [{
351
+ type: Component,
352
+ args: [{ selector: 'cmat-horizontal-navigation-branch-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgClass, MatMenuModule, NgTemplateOutlet, NgFor, CmatHorizontalNavigationBasicItemComponent,
353
+ forwardRef(() => CmatHorizontalNavigationBranchItemComponent),
354
+ CmatHorizontalNavigationDividerItemComponent, MatTooltipModule, MatIconModule], template: "<ng-container *ngIf=\"!child\">\r\n <div [ngClass]=\"{'cmat-horizontal-navigation-menu-active': trigger.menuOpen,\r\n 'cmat-horizontal-navigation-menu-active-forced': item.active}\" [matMenuTriggerFor]=\"matMenu\"\r\n (onMenuOpen)=\"triggerChangeDetection()\" (onMenuClose)=\"triggerChangeDetection()\" #trigger=\"matMenuTrigger\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<mat-menu class=\"cmat-horizontal-navigation-menu-panel\" [overlapTrigger]=\"false\" #matMenu=\"matMenu\">\r\n\r\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <div class=\"cmat-horizontal-navigation-menu-item\" [disabled]=\"item.disabled\" mat-menu-item>\r\n <cmat-horizontal-navigation-basic-item [item]=\"item\" [name]=\"name\">\r\n </cmat-horizontal-navigation-basic-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Branch: aside, collapsable, group -->\r\n <ng-container *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\">\r\n <div class=\"cmat-horizontal-navigation-menu-item\" [disabled]=\"item.disabled\"\r\n [matMenuTriggerFor]=\"branch.matMenu\" mat-menu-item>\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\r\n <cmat-horizontal-navigation-branch-item [child]=\"true\" [item]=\"item\" [name]=\"name\" #branch>\r\n </cmat-horizontal-navigation-branch-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <div class=\"cmat-horizontal-navigation-menu-item\" mat-menu-item>\r\n <cmat-horizontal-navigation-divider-item [item]=\"item\" [name]=\"name\">\r\n </cmat-horizontal-navigation-divider-item>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</mat-menu>\r\n\r\n<!-- Item template -->\r\n<ng-template let-item #itemTemplate>\r\n\r\n <div class=\"cmat-horizontal-navigation-item-wrapper\"\r\n [class.cmat-horizontal-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <div class=\"cmat-horizontal-navigation-item\" [ngClass]=\"{'cmat-horizontal-navigation-item-disabled': item.disabled,\r\n 'cmat-horizontal-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-horizontal-navigation-item-icon\" [ngClass]=\"item.classes?.icon\"\r\n [svgIcon]=\"item.icon\"></mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-horizontal-navigation-item-title-wrapper\">\r\n <div class=\"cmat-horizontal-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <!-- <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-horizontal-navigation-item-subtitle text-hint\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container> -->\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>" }]
355
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }], propDecorators: { child: [{
356
+ type: Input
357
+ }], item: [{
358
+ type: Input
359
+ }], name: [{
360
+ type: Input
361
+ }], matMenu: [{
362
+ type: ViewChild,
363
+ args: ['matMenu', { static: true }]
364
+ }] } });
365
+
366
+ class CmatHorizontalNavigationComponent {
367
+ constructor(_changeDetectorRef, _cmatNavigationService, _cmatUtilsService) {
368
+ this._changeDetectorRef = _changeDetectorRef;
369
+ this._cmatNavigationService = _cmatNavigationService;
370
+ this._cmatUtilsService = _cmatUtilsService;
371
+ this.name = this._cmatUtilsService.randomId();
372
+ this.onRefreshed = new ReplaySubject(1);
373
+ this._unsubscribeAll = new Subject();
374
+ }
375
+ // -----------------------------------------------------------------------------------------------------
376
+ // @ Lifecycle hooks
377
+ // -----------------------------------------------------------------------------------------------------
378
+ /**
379
+ * On changes
380
+ *
381
+ * @param changes
382
+ */
383
+ ngOnChanges(changes) {
384
+ // Navigation
385
+ if ('navigation' in changes) {
386
+ // Mark for check
387
+ this._changeDetectorRef.markForCheck();
388
+ }
389
+ }
390
+ /**
391
+ * On init
392
+ */
393
+ ngOnInit() {
394
+ // Make sure the name input is not an empty string
395
+ if (this.name === '') {
396
+ this.name = this._cmatUtilsService.randomId();
397
+ }
398
+ // Register the navigation component
399
+ this._cmatNavigationService.registerComponent(this.name, this);
400
+ }
401
+ /**
402
+ * On destroy
403
+ */
404
+ ngOnDestroy() {
405
+ // Deregister the navigation component from the registry
406
+ this._cmatNavigationService.deregisterComponent(this.name);
407
+ // Unsubscribe from all subscriptions
408
+ this._unsubscribeAll.next(void 0);
409
+ this._unsubscribeAll.complete();
410
+ }
411
+ // -----------------------------------------------------------------------------------------------------
412
+ // @ Public methods
413
+ // -----------------------------------------------------------------------------------------------------
414
+ /**
415
+ * Refresh the component to apply the changes
416
+ */
417
+ refresh() {
418
+ // Mark for check
419
+ this._changeDetectorRef.markForCheck();
420
+ // Execute the observable
421
+ this.onRefreshed.next(true);
422
+ }
423
+ /**
424
+ * Track by function for ngFor loops
425
+ *
426
+ * @param index
427
+ * @param item
428
+ */
429
+ trackByFn(index, item) {
430
+ return item.id || index;
431
+ }
432
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }, { token: i2.CmatUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
433
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatHorizontalNavigationComponent, isStandalone: true, selector: "cmat-horizontal-navigation", inputs: { name: "name", navigation: "navigation" }, exportAs: ["cmatHorizontalNavigation"], usesOnChanges: true, ngImport: i0, template: "<div class=\"cmat-horizontal-navigation-wrapper\">\r\n\r\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-horizontal-navigation-basic-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [name]=\"name\"></cmat-horizontal-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Branch: aside, collapsable, group -->\r\n <ng-container *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\">\r\n <cmat-horizontal-navigation-branch-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [name]=\"name\"></cmat-horizontal-navigation-branch-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-horizontal-navigation-spacer-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [name]=\"name\"></cmat-horizontal-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</div>", styles: ["cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper{display:flex;align-items:center}@screen sm{cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item:hover .cmat-horizontal-navigation-item-wrapper,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item:hover .cmat-horizontal-navigation-item-wrapper {@apply bg-hover;}}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-wrapper,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-item-wrapper{border-radius:4px;overflow:hidden}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item{padding:0 16px;cursor:pointer;-webkit-user-select:none;user-select:none}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-icon,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-icon{margin-right:12px}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-title,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-title{@apply text-primary !important;}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-subtitle,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-subtitle{@apply text-primary-400 !important;}.dark cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-subtitle,.dark cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-subtitle{@apply text-primary-600 !important;}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-icon,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-icon{@apply text-primary !important;}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-menu-active .cmat-horizontal-navigation-item-wrapper,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-menu-active-forced .cmat-horizontal-navigation-item-wrapper{@apply bg-hover;}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-spacer-item{margin:12px 0}.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item{height:auto;min-height:0;line-height:normal;white-space:normal}.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item,.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-branch-item,.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-divider-item{display:flex;flex:1 1 auto}.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-divider-item{margin:8px -16px}.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-divider-item .cmat-horizontal-navigation-item-wrapper{height:1px;box-shadow:0 1px}.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-title,.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-title{@apply text-primary !important;}.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-subtitle,.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-subtitle{@apply text-primary-400 !important;}.dark .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-subtitle,.dark .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-subtitle{@apply text-primary-600 !important;}.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-icon,.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-icon{@apply text-primary !important;}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper{width:100%}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper.cmat-horizontal-navigation-item-has-subtitle .cmat-horizontal-navigation-item{min-height:56px}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;min-height:48px;width:100%;font-size:13px;font-weight:500;text-decoration:none}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-title-wrapper{@apply whitespace-nowrap;}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-title-wrapper .cmat-horizontal-navigation-item-subtitle{font-size:12px}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-badge{margin-left:auto}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-badge .cmat-horizontal-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CmatHorizontalNavigationBasicItemComponent, selector: "cmat-horizontal-navigation-basic-item", inputs: ["item", "name"] }, { kind: "component", type: CmatHorizontalNavigationBranchItemComponent, selector: "cmat-horizontal-navigation-branch-item", inputs: ["child", "item", "name"] }, { kind: "component", type: CmatHorizontalNavigationSpacerItemComponent, selector: "cmat-horizontal-navigation-spacer-item", inputs: ["item", "name"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
434
+ }
435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatHorizontalNavigationComponent, decorators: [{
436
+ type: Component,
437
+ args: [{ selector: 'cmat-horizontal-navigation', animations: cmatAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatHorizontalNavigation', standalone: true, imports: [NgFor, NgIf, CmatHorizontalNavigationBasicItemComponent, CmatHorizontalNavigationBranchItemComponent, CmatHorizontalNavigationSpacerItemComponent], template: "<div class=\"cmat-horizontal-navigation-wrapper\">\r\n\r\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-horizontal-navigation-basic-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [name]=\"name\"></cmat-horizontal-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Branch: aside, collapsable, group -->\r\n <ng-container *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\">\r\n <cmat-horizontal-navigation-branch-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [name]=\"name\"></cmat-horizontal-navigation-branch-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-horizontal-navigation-spacer-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [name]=\"name\"></cmat-horizontal-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</div>", styles: ["cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper{display:flex;align-items:center}@screen sm{cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item:hover .cmat-horizontal-navigation-item-wrapper,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item:hover .cmat-horizontal-navigation-item-wrapper {@apply bg-hover;}}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-wrapper,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-item-wrapper{border-radius:4px;overflow:hidden}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item{padding:0 16px;cursor:pointer;-webkit-user-select:none;user-select:none}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-icon,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-icon{margin-right:12px}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-title,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-title{@apply text-primary !important;}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-subtitle,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-subtitle{@apply text-primary-400 !important;}.dark cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-subtitle,.dark cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-subtitle{@apply text-primary-600 !important;}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-icon,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-icon{@apply text-primary !important;}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-menu-active .cmat-horizontal-navigation-item-wrapper,cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-branch-item .cmat-horizontal-navigation-menu-active-forced .cmat-horizontal-navigation-item-wrapper{@apply bg-hover;}cmat-horizontal-navigation .cmat-horizontal-navigation-wrapper cmat-horizontal-navigation-spacer-item{margin:12px 0}.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item{height:auto;min-height:0;line-height:normal;white-space:normal}.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item,.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-branch-item,.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-divider-item{display:flex;flex:1 1 auto}.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-divider-item{margin:8px -16px}.cmat-horizontal-navigation-menu-panel .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-divider-item .cmat-horizontal-navigation-item-wrapper{height:1px;box-shadow:0 1px}.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-title,.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-title{@apply text-primary !important;}.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-subtitle,.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-subtitle{@apply text-primary-400 !important;}.dark .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-subtitle,.dark .cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-subtitle{@apply text-primary-600 !important;}.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active .cmat-horizontal-navigation-item-icon,.cmat-horizontal-navigation-menu-item cmat-horizontal-navigation-basic-item .cmat-horizontal-navigation-item-active-forced .cmat-horizontal-navigation-item-icon{@apply text-primary !important;}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper{width:100%}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper.cmat-horizontal-navigation-item-has-subtitle .cmat-horizontal-navigation-item{min-height:56px}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;min-height:48px;width:100%;font-size:13px;font-weight:500;text-decoration:none}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-title-wrapper{@apply whitespace-nowrap;}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-title-wrapper .cmat-horizontal-navigation-item-subtitle{font-size:12px}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-badge{margin-left:auto}.cmat-horizontal-navigation-menu-item .cmat-horizontal-navigation-item-wrapper .cmat-horizontal-navigation-item .cmat-horizontal-navigation-item-badge .cmat-horizontal-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}\n"] }]
438
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }, { type: i2.CmatUtilsService }], propDecorators: { name: [{
439
+ type: Input
440
+ }], navigation: [{
441
+ type: Input
442
+ }] } });
443
+
444
+ class CmatVerticalNavigationSpacerItemComponent {
445
+ constructor(_changeDetectorRef, _cmatNavigationService) {
446
+ this._changeDetectorRef = _changeDetectorRef;
447
+ this._cmatNavigationService = _cmatNavigationService;
448
+ this.editMode = false;
449
+ this.editSelectedItemChanged = new EventEmitter();
450
+ this._unsubscribeAll = new Subject();
451
+ }
452
+ // -----------------------------------------------------------------------------------------------------
453
+ // @ Lifecycle hooks
454
+ // -----------------------------------------------------------------------------------------------------
455
+ /**
456
+ * On init
457
+ */
458
+ ngOnInit() {
459
+ // Get the parent navigation component
460
+ this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
461
+ // Subscribe to onRefreshed on the navigation component
462
+ this._cmatVerticalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
463
+ // Mark for check
464
+ this._changeDetectorRef.markForCheck();
465
+ });
466
+ }
467
+ /**
468
+ * On destroy
469
+ */
470
+ ngOnDestroy() {
471
+ // Unsubscribe from all subscriptions
472
+ this._unsubscribeAll.next(void 0);
473
+ this._unsubscribeAll.complete();
474
+ }
475
+ selectItem(item) {
476
+ this.editSelectedItemChanged.next(item);
477
+ }
478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationSpacerItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
479
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatVerticalNavigationSpacerItemComponent, isStandalone: true, selector: "cmat-vertical-navigation-spacer-item", inputs: { item: "item", name: "name", editMode: "editMode" }, outputs: { editSelectedItemChanged: "editSelectedItemChanged" }, ngImport: i0, template: "<!-- Spacer -->\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" role=\"presentation\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\"></div>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
480
+ }
481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationSpacerItemComponent, decorators: [{
482
+ type: Component,
483
+ args: [{ selector: 'cmat-vertical-navigation-spacer-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "<!-- Spacer -->\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" role=\"presentation\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\"></div>" }]
484
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }], propDecorators: { item: [{
485
+ type: Input
486
+ }], name: [{
487
+ type: Input
488
+ }], editMode: [{
489
+ type: Input
490
+ }], editSelectedItemChanged: [{
491
+ type: Output
492
+ }] } });
493
+
494
+ class CmatVerticalNavigationDividerItemComponent {
495
+ constructor(_changeDetectorRef, _cmatNavigationService) {
496
+ this._changeDetectorRef = _changeDetectorRef;
497
+ this._cmatNavigationService = _cmatNavigationService;
498
+ this.editMode = false;
499
+ this.editSelectedItemChanged = new EventEmitter();
500
+ this._unsubscribeAll = new Subject();
501
+ }
502
+ // -----------------------------------------------------------------------------------------------------
503
+ // @ Lifecycle hooks
504
+ // -----------------------------------------------------------------------------------------------------
505
+ /**
506
+ * On init
507
+ */
508
+ ngOnInit() {
509
+ // Get the parent navigation component
510
+ this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
511
+ // Subscribe to onRefreshed on the navigation component
512
+ this._cmatVerticalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
513
+ // Mark for check
514
+ this._changeDetectorRef.markForCheck();
515
+ });
516
+ }
517
+ /**
518
+ * On destroy
519
+ */
520
+ ngOnDestroy() {
521
+ // Unsubscribe from all subscriptions
522
+ this._unsubscribeAll.next(void 0);
523
+ this._unsubscribeAll.complete();
524
+ }
525
+ selectItem(item) {
526
+ this.editSelectedItemChanged.next(item);
527
+ }
528
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationDividerItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
529
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatVerticalNavigationDividerItemComponent, isStandalone: true, selector: "cmat-vertical-navigation-divider-item", inputs: { item: "item", name: "name", editMode: "editMode" }, outputs: { editSelectedItemChanged: "editSelectedItemChanged" }, ngImport: i0, template: "<!-- Divider -->\r\n<div class=\"cmat-vertical-navigation-item-wrapper divider\" role=\"presentation\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\"></div>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
530
+ }
531
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationDividerItemComponent, decorators: [{
532
+ type: Component,
533
+ args: [{ selector: 'cmat-vertical-navigation-divider-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: "<!-- Divider -->\r\n<div class=\"cmat-vertical-navigation-item-wrapper divider\" role=\"presentation\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\"></div>" }]
534
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }], propDecorators: { item: [{
535
+ type: Input
536
+ }], name: [{
537
+ type: Input
538
+ }], editMode: [{
539
+ type: Input
540
+ }], editSelectedItemChanged: [{
541
+ type: Output
542
+ }] } });
543
+
544
+ class CmatVerticalNavigationBasicItemComponent {
545
+ constructor(_changeDetectorRef, _cmatNavigationService, _cmatUtilsService) {
546
+ this._changeDetectorRef = _changeDetectorRef;
547
+ this._cmatNavigationService = _cmatNavigationService;
548
+ this._cmatUtilsService = _cmatUtilsService;
549
+ this.editSelectedItemChanged = new EventEmitter();
550
+ this._unsubscribeAll = new Subject();
551
+ // Set the equivalent of {exact: false} as default for active match options.
552
+ // We are not assigning the item.isActiveMatchOptions directly to the
553
+ // [routerLinkActiveOptions] because if it's "undefined" initially, the router
554
+ // will throw an error and stop working.
555
+ this.isActiveMatchOptions = this._cmatUtilsService.subsetMatchOptions;
556
+ }
557
+ // -----------------------------------------------------------------------------------------------------
558
+ // @ Lifecycle hooks
559
+ // -----------------------------------------------------------------------------------------------------
560
+ /**
561
+ * On init
562
+ */
563
+ ngOnInit() {
564
+ // Set the "isActiveMatchOptions" either from item's
565
+ // "isActiveMatchOptions" or the equivalent form of
566
+ // item's "exactMatch" option
567
+ this.isActiveMatchOptions =
568
+ this.item.isActiveMatchOptions ?? this.item.exactMatch
569
+ ? this._cmatUtilsService.exactMatchOptions
570
+ : this._cmatUtilsService.subsetMatchOptions;
571
+ // Get the parent navigation component
572
+ this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
573
+ // Mark for check
574
+ this._changeDetectorRef.markForCheck();
575
+ // Subscribe to onRefreshed on the navigation component
576
+ this._cmatVerticalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
577
+ // Mark for check
578
+ this._changeDetectorRef.markForCheck();
579
+ });
580
+ }
581
+ /**
582
+ * On destroy
583
+ */
584
+ ngOnDestroy() {
585
+ // Unsubscribe from all subscriptions
586
+ this._unsubscribeAll.next(void 0);
587
+ this._unsubscribeAll.complete();
588
+ }
589
+ selectItem() {
590
+ this.editSelectedItemChanged.next(this.item);
591
+ }
592
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationBasicItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }, { token: i2.CmatUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
593
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatVerticalNavigationBasicItemComponent, isStandalone: true, selector: "cmat-vertical-navigation-basic-item", inputs: { item: "item", name: "name", editMode: "editMode" }, outputs: { editSelectedItemChanged: "editSelectedItemChanged" }, ngImport: i0, template: "<!-- Item wrapper -->\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <ng-container *ngIf=\"editMode\">\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"selectItem()\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!editMode\">\r\n <!-- Item with an internal link -->\r\n <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\r\n <a class=\"cmat-vertical-navigation-item\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\r\n [routerLinkActive]=\"'cmat-vertical-navigation-item-active'\"\r\n [routerLinkActiveOptions]=\"isActiveMatchOptions\" [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with an external link -->\r\n <ng-container *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\">\r\n <a class=\"cmat-vertical-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with a function -->\r\n <ng-container *ngIf=\"!item.link && item.function && !item.disabled\">\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item with an internal link and function -->\r\n <ng-container *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\">\r\n <a class=\"cmat-vertical-navigation-item\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\r\n [routerLinkActive]=\"'cmat-vertical-navigation-item-active'\"\r\n [routerLinkActiveOptions]=\"isActiveMatchOptions\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with an external link and function -->\r\n <ng-container *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\">\r\n <a class=\"cmat-vertical-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with a no link and no function -->\r\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\r\n <div class=\"cmat-vertical-navigation-item\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item is disabled -->\r\n <ng-container *ngIf=\"item.disabled\">\r\n <div class=\"cmat-vertical-navigation-item cmat-vertical-navigation-item-disabled\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<!-- Item template -->\r\n<ng-template #itemTemplate>\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-template>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
594
+ }
595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationBasicItemComponent, decorators: [{
596
+ type: Component,
597
+ args: [{ selector: 'cmat-vertical-navigation-basic-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgIf, RouterLink, RouterLinkActive, MatTooltipModule, NgTemplateOutlet, MatIconModule], template: "<!-- Item wrapper -->\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <ng-container *ngIf=\"editMode\">\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"selectItem()\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!editMode\">\r\n <!-- Item with an internal link -->\r\n <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\r\n <a class=\"cmat-vertical-navigation-item\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\r\n [routerLinkActive]=\"'cmat-vertical-navigation-item-active'\"\r\n [routerLinkActiveOptions]=\"isActiveMatchOptions\" [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with an external link -->\r\n <ng-container *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\">\r\n <a class=\"cmat-vertical-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with a function -->\r\n <ng-container *ngIf=\"!item.link && item.function && !item.disabled\">\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item with an internal link and function -->\r\n <ng-container *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\">\r\n <a class=\"cmat-vertical-navigation-item\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\r\n [routerLinkActive]=\"'cmat-vertical-navigation-item-active'\"\r\n [routerLinkActiveOptions]=\"isActiveMatchOptions\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with an external link and function -->\r\n <ng-container *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\">\r\n <a class=\"cmat-vertical-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Item with a no link and no function -->\r\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\r\n <div class=\"cmat-vertical-navigation-item\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Item is disabled -->\r\n <ng-container *ngIf=\"item.disabled\">\r\n <div class=\"cmat-vertical-navigation-item cmat-vertical-navigation-item-disabled\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<!-- Item template -->\r\n<ng-template #itemTemplate>\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-template>" }]
598
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }, { type: i2.CmatUtilsService }], propDecorators: { item: [{
599
+ type: Input
600
+ }], name: [{
601
+ type: Input
602
+ }], editMode: [{
603
+ type: Input
604
+ }], editSelectedItemChanged: [{
605
+ type: Output
606
+ }] } });
607
+
608
+ class CmatVerticalNavigationCollapsableItemComponent {
609
+ constructor(_changeDetectorRef, _router, _cmatNavigationService) {
610
+ this._changeDetectorRef = _changeDetectorRef;
611
+ this._router = _router;
612
+ this._cmatNavigationService = _cmatNavigationService;
613
+ this.editMode = false;
614
+ this.editSelectedItemChanged = new EventEmitter();
615
+ this.isCollapsed = true;
616
+ this.isExpanded = false;
617
+ this._unsubscribeAll = new Subject();
618
+ }
619
+ // -----------------------------------------------------------------------------------------------------
620
+ // @ Accessors
621
+ // -----------------------------------------------------------------------------------------------------
622
+ /**
623
+ * Host binding for component classes
624
+ */
625
+ get classList() {
626
+ return {
627
+ // eslint-disable-next-line @typescript-eslint/naming-convention
628
+ 'cmat-vertical-navigation-item-collapsed': this.isCollapsed,
629
+ // eslint-disable-next-line @typescript-eslint/naming-convention
630
+ 'cmat-vertical-navigation-item-expanded': this.isExpanded
631
+ };
632
+ }
633
+ // -----------------------------------------------------------------------------------------------------
634
+ // @ Lifecycle hooks
635
+ // -----------------------------------------------------------------------------------------------------
636
+ /**
637
+ * On init
638
+ */
639
+ ngOnInit() {
640
+ // Get the parent navigation component
641
+ this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
642
+ // If the item has a children that has a matching url with the current url, expand...
643
+ if (this._hasActiveChild(this.item, this._router.url)) {
644
+ this.expand();
645
+ }
646
+ // Otherwise...
647
+ else {
648
+ // If the autoCollapse is on, collapse...
649
+ if (this.autoCollapse) {
650
+ this.collapse();
651
+ }
652
+ }
653
+ // Listen for the onCollapsableItemCollapsed from the service
654
+ this._cmatVerticalNavigationComponent.onCollapsableItemCollapsed
655
+ .pipe(takeUntil(this._unsubscribeAll))
656
+ .subscribe((collapsedItem) => {
657
+ // Check if the collapsed item is null
658
+ if (collapsedItem === null) {
659
+ return;
660
+ }
661
+ // Collapse if this is a children of the collapsed item
662
+ if (this._isChildrenOf(collapsedItem, this.item)) {
663
+ this.collapse();
664
+ }
665
+ });
666
+ // Listen for the onCollapsableItemExpanded from the service if the autoCollapse is on
667
+ if (this.autoCollapse) {
668
+ this._cmatVerticalNavigationComponent.onCollapsableItemExpanded
669
+ .pipe(takeUntil(this._unsubscribeAll))
670
+ .subscribe((expandedItem) => {
671
+ // Check if the expanded item is null
672
+ if (expandedItem === null) {
673
+ return;
674
+ }
675
+ // Check if this is a parent of the expanded item
676
+ if (this._isChildrenOf(this.item, expandedItem)) {
677
+ return;
678
+ }
679
+ // Check if this has a children with a matching url with the current active url
680
+ if (this._hasActiveChild(this.item, this._router.url)) {
681
+ return;
682
+ }
683
+ // Check if this is the expanded item
684
+ if (this.item === expandedItem) {
685
+ return;
686
+ }
687
+ // If none of the above conditions are matched, collapse this item
688
+ this.collapse();
689
+ });
690
+ }
691
+ // Attach a listener to the NavigationEnd event
692
+ this._router.events
693
+ .pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this._unsubscribeAll))
694
+ .subscribe((event) => {
695
+ // If the item has a children that has a matching url with the current url, expand...
696
+ if (this._hasActiveChild(this.item, event.urlAfterRedirects)) {
697
+ this.expand();
698
+ }
699
+ // Otherwise...
700
+ else {
701
+ // If the autoCollapse is on, collapse...
702
+ if (this.autoCollapse) {
703
+ this.collapse();
704
+ }
705
+ }
706
+ });
707
+ // Subscribe to onRefreshed on the navigation component
708
+ this._cmatVerticalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
709
+ // Mark for check
710
+ this._changeDetectorRef.markForCheck();
711
+ });
712
+ }
713
+ /**
714
+ * On destroy
715
+ */
716
+ ngOnDestroy() {
717
+ // Unsubscribe from all subscriptions
718
+ this._unsubscribeAll.next(void 0);
719
+ this._unsubscribeAll.complete();
720
+ }
721
+ // -----------------------------------------------------------------------------------------------------
722
+ // @ Public methods
723
+ // -----------------------------------------------------------------------------------------------------
724
+ /**
725
+ * Collapse
726
+ */
727
+ collapse() {
728
+ // Return if the item is disabled
729
+ if (this.item.disabled) {
730
+ return;
731
+ }
732
+ // Return if the item is already collapsed
733
+ if (this.isCollapsed) {
734
+ return;
735
+ }
736
+ // Collapse it
737
+ this.isCollapsed = true;
738
+ this.isExpanded = !this.isCollapsed;
739
+ // Mark for check
740
+ this._changeDetectorRef.markForCheck();
741
+ // Execute the observable
742
+ this._cmatVerticalNavigationComponent.onCollapsableItemCollapsed.next(this.item);
743
+ }
744
+ /**
745
+ * Expand
746
+ */
747
+ expand() {
748
+ // Return if the item is disabled
749
+ if (this.item.disabled) {
750
+ return;
751
+ }
752
+ // Return if the item is already expanded
753
+ if (!this.isCollapsed) {
754
+ return;
755
+ }
756
+ // Expand it
757
+ this.isCollapsed = false;
758
+ this.isExpanded = !this.isCollapsed;
759
+ // Mark for check
760
+ this._changeDetectorRef.markForCheck();
761
+ // Execute the observable
762
+ this._cmatVerticalNavigationComponent.onCollapsableItemExpanded.next(this.item);
763
+ }
764
+ /**
765
+ * Toggle collapsable
766
+ */
767
+ toggleCollapsable() {
768
+ // Toggle collapse/expand
769
+ if (this.isCollapsed) {
770
+ this.expand();
771
+ }
772
+ else {
773
+ this.collapse();
774
+ }
775
+ }
776
+ /**
777
+ * Track by function for ngFor loops
778
+ *
779
+ * @param index
780
+ * @param item
781
+ */
782
+ trackByFn(index, item) {
783
+ return item.id || index;
784
+ }
785
+ selectItem(item) {
786
+ this.editSelectedItemChanged.next(item);
787
+ }
788
+ // -----------------------------------------------------------------------------------------------------
789
+ // @ Private methods
790
+ // -----------------------------------------------------------------------------------------------------
791
+ /**
792
+ * Check if the given item has the given url
793
+ * in one of its children
794
+ *
795
+ * @param item
796
+ * @param currentUrl
797
+ * @private
798
+ */
799
+ _hasActiveChild(item, currentUrl) {
800
+ const children = item.children;
801
+ if (!children) {
802
+ return false;
803
+ }
804
+ for (const child of children) {
805
+ if (child.children) {
806
+ if (this._hasActiveChild(child, currentUrl)) {
807
+ return true;
808
+ }
809
+ }
810
+ // Check if the child has a link and is active
811
+ if (child.link && this._router.isActive(child.link, {
812
+ paths: child.exactMatch || false ? 'exact' : 'subset',
813
+ queryParams: child.exactMatch || false ? 'exact' : 'subset', matrixParams: 'ignored', fragment: 'ignored'
814
+ })) {
815
+ return true;
816
+ }
817
+ }
818
+ return false;
819
+ }
820
+ /**
821
+ * Check if this is a children
822
+ * of the given item
823
+ *
824
+ * @param parent
825
+ * @param item
826
+ * @private
827
+ */
828
+ _isChildrenOf(parent, item) {
829
+ const children = parent.children;
830
+ if (!children) {
831
+ return false;
832
+ }
833
+ if (children.indexOf(item) > -1) {
834
+ return true;
835
+ }
836
+ for (const child of children) {
837
+ if (child.children) {
838
+ if (this._isChildrenOf(child, item)) {
839
+ return true;
840
+ }
841
+ }
842
+ }
843
+ return false;
844
+ }
845
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationCollapsableItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: CmatNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
846
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatVerticalNavigationCollapsableItemComponent, isStandalone: true, selector: "cmat-vertical-navigation-collapsable-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name", editMode: "editMode" }, outputs: { editSelectedItemChanged: "editSelectedItemChanged" }, host: { properties: { "class": "this.classList" } }, ngImport: i0, template: "<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\" [ngClass]=\"{'cmat-vertical-navigation-item-disabled': item.disabled}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"toggleCollapsable();selectItem(item);\">\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Arrow -->\r\n <mat-icon class=\"cmat-vertical-navigation-item-arrow icon-size-4\" [svgIcon]=\"'heroicons_solid:chevron-right'\">\r\n </mat-icon>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<div class=\"cmat-vertical-navigation-item-children\" *ngIf=\"!isCollapsed\" @expandCollapse>\r\n\r\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Collapsable -->\r\n <ng-container *ngIf=\"item.type === 'collapsable'\">\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-collapsable-item>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n </ng-container>\r\n\r\n <!-- Group -->\r\n <ng-container *ngIf=\"item.type === 'group'\">\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-group-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</div>", dependencies: [{ kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationCollapsableItemComponent), selector: "cmat-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatTooltipModule) }, { kind: "directive", type: i0.forwardRef(() => i3.MatTooltip), selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i0.forwardRef(() => NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatIconModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatIcon), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i0.forwardRef(() => NgFor), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationBasicItemComponent), selector: "cmat-vertical-navigation-basic-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationDividerItemComponent), selector: "cmat-vertical-navigation-divider-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationGroupItemComponent), selector: "cmat-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationSpacerItemComponent), selector: "cmat-vertical-navigation-spacer-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
847
+ }
848
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationCollapsableItemComponent, decorators: [{
849
+ type: Component,
850
+ args: [{ selector: 'cmat-vertical-navigation-collapsable-item', animations: cmatAnimations, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, MatTooltipModule, NgIf, MatIconModule, NgFor,
851
+ CmatVerticalNavigationBasicItemComponent,
852
+ forwardRef(() => CmatVerticalNavigationCollapsableItemComponent),
853
+ CmatVerticalNavigationDividerItemComponent, CmatVerticalNavigationGroupItemComponent,
854
+ CmatVerticalNavigationSpacerItemComponent], template: "<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\" [ngClass]=\"{'cmat-vertical-navigation-item-disabled': item.disabled}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"toggleCollapsable();selectItem(item);\">\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Arrow -->\r\n <mat-icon class=\"cmat-vertical-navigation-item-arrow icon-size-4\" [svgIcon]=\"'heroicons_solid:chevron-right'\">\r\n </mat-icon>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<div class=\"cmat-vertical-navigation-item-children\" *ngIf=\"!isCollapsed\" @expandCollapse>\r\n\r\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Collapsable -->\r\n <ng-container *ngIf=\"item.type === 'collapsable'\">\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-collapsable-item>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n </ng-container>\r\n\r\n <!-- Group -->\r\n <ng-container *ngIf=\"item.type === 'group'\">\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-group-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</div>" }]
855
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: CmatNavigationService }], propDecorators: { autoCollapse: [{
856
+ type: Input
857
+ }], item: [{
858
+ type: Input
859
+ }], name: [{
860
+ type: Input
861
+ }], editMode: [{
862
+ type: Input
863
+ }], editSelectedItemChanged: [{
864
+ type: Output
865
+ }], classList: [{
866
+ type: HostBinding,
867
+ args: ['class']
868
+ }] } });
869
+
870
+ class CmatVerticalNavigationGroupItemComponent {
871
+ constructor(_changeDetectorRef, _cmatNavigationService) {
872
+ this._changeDetectorRef = _changeDetectorRef;
873
+ this._cmatNavigationService = _cmatNavigationService;
874
+ this.editMode = false;
875
+ this.editSelectedItemChanged = new EventEmitter();
876
+ this._unsubscribeAll = new Subject();
877
+ }
878
+ // -----------------------------------------------------------------------------------------------------
879
+ // @ Lifecycle hooks
880
+ // -----------------------------------------------------------------------------------------------------
881
+ /**
882
+ * On init
883
+ */
884
+ ngOnInit() {
885
+ // Get the parent navigation component
886
+ this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
887
+ // Subscribe to onRefreshed on the navigation component
888
+ this._cmatVerticalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
889
+ // Mark for check
890
+ this._changeDetectorRef.markForCheck();
891
+ });
892
+ }
893
+ /**
894
+ * On destroy
895
+ */
896
+ ngOnDestroy() {
897
+ // Unsubscribe from all subscriptions
898
+ this._unsubscribeAll.next(void 0);
899
+ this._unsubscribeAll.complete();
900
+ }
901
+ // -----------------------------------------------------------------------------------------------------
902
+ // @ Public methods
903
+ // -----------------------------------------------------------------------------------------------------
904
+ /**
905
+ * Track by function for ngFor loops
906
+ *
907
+ * @param index
908
+ * @param item
909
+ */
910
+ trackByFn(index, item) {
911
+ return item.id || index;
912
+ }
913
+ selectItem(item) {
914
+ this.editSelectedItemChanged.next(item);
915
+ }
916
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationGroupItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CmatNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
917
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatVerticalNavigationGroupItemComponent, isStandalone: true, selector: "cmat-vertical-navigation-group-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name", editMode: "editMode" }, outputs: { editSelectedItemChanged: "editSelectedItemChanged" }, ngImport: i0, template: "<!-- Item wrapper -->\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\" role=\"presentation\" (click)=\"selectItem(item);\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\">\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Collapsable -->\r\n <ng-container *ngIf=\"item.type === 'collapsable'\">\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-collapsable-item>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-divider-item>\r\n </ng-container>\r\n\r\n <!-- Group -->\r\n <ng-container *ngIf=\"item.type === 'group'\">\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-group-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</ng-container>", dependencies: [{ kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationGroupItemComponent), selector: "cmat-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatIconModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatIcon), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i0.forwardRef(() => NgFor), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationBasicItemComponent), selector: "cmat-vertical-navigation-basic-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationCollapsableItemComponent), selector: "cmat-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationDividerItemComponent), selector: "cmat-vertical-navigation-divider-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: i0.forwardRef(() => CmatVerticalNavigationSpacerItemComponent), selector: "cmat-vertical-navigation-spacer-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
918
+ }
919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationGroupItemComponent, decorators: [{
920
+ type: Component,
921
+ args: [{ selector: 'cmat-vertical-navigation-group-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgIf, MatIconModule, NgFor, CmatVerticalNavigationBasicItemComponent,
922
+ CmatVerticalNavigationCollapsableItemComponent, CmatVerticalNavigationDividerItemComponent,
923
+ forwardRef(() => CmatVerticalNavigationGroupItemComponent),
924
+ CmatVerticalNavigationSpacerItemComponent], template: "<!-- Item wrapper -->\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\" role=\"presentation\" (click)=\"selectItem(item);\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\">\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Collapsable -->\r\n <ng-container *ngIf=\"item.type === 'collapsable'\">\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-collapsable-item>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-divider-item>\r\n </ng-container>\r\n\r\n <!-- Group -->\r\n <ng-container *ngIf=\"item.type === 'group'\">\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-group-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n</ng-container>" }]
925
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CmatNavigationService }], propDecorators: { autoCollapse: [{
926
+ type: Input
927
+ }], item: [{
928
+ type: Input
929
+ }], name: [{
930
+ type: Input
931
+ }], editMode: [{
932
+ type: Input
933
+ }], editSelectedItemChanged: [{
934
+ type: Output
935
+ }] } });
936
+
937
+ class CmatVerticalNavigationAsideItemComponent {
938
+ constructor(_changeDetectorRef, _router, _cmatNavigationService) {
939
+ this._changeDetectorRef = _changeDetectorRef;
940
+ this._router = _router;
941
+ this._cmatNavigationService = _cmatNavigationService;
942
+ this.editMode = false;
943
+ this.editSelectedItemChanged = new EventEmitter();
944
+ this.active = false;
945
+ this._unsubscribeAll = new Subject();
946
+ }
947
+ // -----------------------------------------------------------------------------------------------------
948
+ // @ Lifecycle hooks
949
+ // -----------------------------------------------------------------------------------------------------
950
+ /**
951
+ * On changes
952
+ *
953
+ * @param changes
954
+ */
955
+ ngOnChanges(changes) {
956
+ // Active item id
957
+ if ('activeItemId' in changes) {
958
+ // Mark if active
959
+ this._markIfActive(this._router.url);
960
+ }
961
+ }
962
+ /**
963
+ * On init
964
+ */
965
+ ngOnInit() {
966
+ // Mark if active
967
+ this._markIfActive(this._router.url);
968
+ // Attach a listener to the NavigationEnd event
969
+ this._router.events
970
+ .pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this._unsubscribeAll))
971
+ .subscribe((event) => {
972
+ // Mark if active
973
+ this._markIfActive(event.urlAfterRedirects);
974
+ });
975
+ // Get the parent navigation component
976
+ this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);
977
+ // Subscribe to onRefreshed on the navigation component
978
+ this._cmatVerticalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
979
+ // Mark for check
980
+ this._changeDetectorRef.markForCheck();
981
+ });
982
+ }
983
+ /**
984
+ * On destroy
985
+ */
986
+ ngOnDestroy() {
987
+ // Unsubscribe from all subscriptions
988
+ this._unsubscribeAll.next(void 0);
989
+ this._unsubscribeAll.complete();
990
+ }
991
+ // -----------------------------------------------------------------------------------------------------
992
+ // @ Public methods
993
+ // -----------------------------------------------------------------------------------------------------
994
+ /**
995
+ * Track by function for ngFor loops
996
+ *
997
+ * @param index
998
+ * @param item
999
+ */
1000
+ trackByFn(index, item) {
1001
+ return item.id || index;
1002
+ }
1003
+ selectItem(item) {
1004
+ this.editSelectedItemChanged.next(item);
1005
+ }
1006
+ // -----------------------------------------------------------------------------------------------------
1007
+ // @ Private methods
1008
+ // -----------------------------------------------------------------------------------------------------
1009
+ /**
1010
+ * Check if the given item has the given url
1011
+ * in one of its children
1012
+ *
1013
+ * @param item
1014
+ * @param currentUrl
1015
+ * @private
1016
+ */
1017
+ _hasActiveChild(item, currentUrl) {
1018
+ const children = item.children;
1019
+ if (!children) {
1020
+ return false;
1021
+ }
1022
+ for (const child of children) {
1023
+ if (child.children) {
1024
+ if (this._hasActiveChild(child, currentUrl)) {
1025
+ return true;
1026
+ }
1027
+ }
1028
+ // Skip items other than 'basic'
1029
+ if (child.type !== 'basic') {
1030
+ continue;
1031
+ }
1032
+ // Check if the child has a link and is active
1033
+ if (child.link && this._router.isActive(child.link, {
1034
+ paths: child.exactMatch || false ? 'exact' : 'subset',
1035
+ queryParams: child.exactMatch || false ? 'exact' : 'subset', fragment: 'ignored', matrixParams: 'ignored'
1036
+ })) {
1037
+ return true;
1038
+ }
1039
+ }
1040
+ return false;
1041
+ }
1042
+ /**
1043
+ * Decide and mark if the item is active
1044
+ *
1045
+ * @private
1046
+ */
1047
+ _markIfActive(currentUrl) {
1048
+ // Check if the activeItemId is equals to this item id
1049
+ this.active = this.activeItemId === this.item.id;
1050
+ // If the aside has a children that is active,
1051
+ // always mark it as active
1052
+ if (this._hasActiveChild(this.item, currentUrl)) {
1053
+ this.active = true;
1054
+ }
1055
+ // Mark for check
1056
+ this._changeDetectorRef.markForCheck();
1057
+ }
1058
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationAsideItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: CmatNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
1059
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatVerticalNavigationAsideItemComponent, isStandalone: true, selector: "cmat-vertical-navigation-aside-item", inputs: { activeItemId: "activeItemId", autoCollapse: "autoCollapse", item: "item", name: "name", skipChildren: "skipChildren", editMode: "editMode" }, outputs: { editSelectedItemChanged: "editSelectedItemChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\" role=\"presentation\" (click)=\"selectItem(item);\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\" [ngClass]=\"{'cmat-vertical-navigation-item-active': active,\r\n 'cmat-vertical-navigation-item-disabled': item.disabled,\r\n 'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\">\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<ng-container *ngIf=\"!skipChildren\">\r\n\r\n <div class=\"cmat-vertical-navigation-item-children\">\r\n\r\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Collapsable -->\r\n <ng-container *ngIf=\"item.type === 'collapsable'\">\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n </ng-container>\r\n\r\n <!-- Group -->\r\n <ng-container *ngIf=\"item.type === 'group'\">\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n\r\n</ng-container>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: CmatVerticalNavigationBasicItemComponent, selector: "cmat-vertical-navigation-basic-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationCollapsableItemComponent, selector: "cmat-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationDividerItemComponent, selector: "cmat-vertical-navigation-divider-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationGroupItemComponent, selector: "cmat-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationSpacerItemComponent, selector: "cmat-vertical-navigation-spacer-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1060
+ }
1061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationAsideItemComponent, decorators: [{
1062
+ type: Component,
1063
+ args: [{ selector: 'cmat-vertical-navigation-aside-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, MatTooltipModule, NgIf, MatIconModule, NgFor, CmatVerticalNavigationBasicItemComponent,
1064
+ CmatVerticalNavigationCollapsableItemComponent, CmatVerticalNavigationDividerItemComponent,
1065
+ CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent], template: "<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\" role=\"presentation\" (click)=\"selectItem(item);\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\" [ngClass]=\"{'cmat-vertical-navigation-item-active': active,\r\n 'cmat-vertical-navigation-item-disabled': item.disabled,\r\n 'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\">\r\n\r\n <!-- Icon -->\r\n <ng-container *ngIf=\"item.icon\">\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <!-- Title & Subtitle -->\r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"item.subTitle\">\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Badge -->\r\n <ng-container *ngIf=\"item.badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<ng-container *ngIf=\"!skipChildren\">\r\n\r\n <div class=\"cmat-vertical-navigation-item-children\">\r\n\r\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Collapsable -->\r\n <ng-container *ngIf=\"item.type === 'collapsable'\">\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n </ng-container>\r\n\r\n <!-- Group -->\r\n <ng-container *ngIf=\"item.type === 'group'\">\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n\r\n</ng-container>" }]
1066
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: CmatNavigationService }], propDecorators: { activeItemId: [{
1067
+ type: Input
1068
+ }], autoCollapse: [{
1069
+ type: Input
1070
+ }], item: [{
1071
+ type: Input
1072
+ }], name: [{
1073
+ type: Input
1074
+ }], skipChildren: [{
1075
+ type: Input
1076
+ }], editMode: [{
1077
+ type: Input
1078
+ }], editSelectedItemChanged: [{
1079
+ type: Output
1080
+ }] } });
1081
+
1082
+ class CmatVerticalNavigationComponent {
1083
+ constructor(_animationBuilder, _changeDetectorRef, _elementRef, _renderer2, _router, _scrollStrategyOptions, _cmatNavigationService, _cmatUtilsService) {
1084
+ this._animationBuilder = _animationBuilder;
1085
+ this._changeDetectorRef = _changeDetectorRef;
1086
+ this._elementRef = _elementRef;
1087
+ this._renderer2 = _renderer2;
1088
+ this._router = _router;
1089
+ this._scrollStrategyOptions = _scrollStrategyOptions;
1090
+ this._cmatNavigationService = _cmatNavigationService;
1091
+ this._cmatUtilsService = _cmatUtilsService;
1092
+ /* eslint-enable @typescript-eslint/naming-convention */
1093
+ this.appearance = 'default';
1094
+ this.autoCollapse = true;
1095
+ this.editMode = false;
1096
+ this.inner = false;
1097
+ this.mode = 'side';
1098
+ this.name = this._cmatUtilsService.randomId();
1099
+ this.opened = true;
1100
+ this.position = 'left';
1101
+ this.transparentOverlay = false;
1102
+ this.appearanceChanged = new EventEmitter();
1103
+ this.modeChanged = new EventEmitter();
1104
+ this.openedChanged = new EventEmitter();
1105
+ this.positionChanged = new EventEmitter();
1106
+ this.editSelectedItemChanged = new EventEmitter();
1107
+ this.activeAsideItemId = null;
1108
+ this.onCollapsableItemCollapsed = new ReplaySubject(1);
1109
+ this.onCollapsableItemExpanded = new ReplaySubject(1);
1110
+ this.onRefreshed = new ReplaySubject(1);
1111
+ this._animationsEnabled = false;
1112
+ this._hovered = false;
1113
+ this._scrollStrategy = this._scrollStrategyOptions.block();
1114
+ this._unsubscribeAll = new Subject();
1115
+ this._handleAsideOverlayClick = () => {
1116
+ this.closeAside();
1117
+ };
1118
+ this._handleOverlayClick = () => {
1119
+ this.close();
1120
+ };
1121
+ }
1122
+ // -----------------------------------------------------------------------------------------------------
1123
+ // @ Accessors
1124
+ // -----------------------------------------------------------------------------------------------------
1125
+ /**
1126
+ * Host binding for component classes
1127
+ */
1128
+ get classList() {
1129
+ return {
1130
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1131
+ 'cmat-vertical-navigation-animations-enabled': this._animationsEnabled,
1132
+ [`cmat-vertical-navigation-appearance-${this.appearance}`]: true,
1133
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1134
+ 'cmat-vertical-navigation-hover': this._hovered,
1135
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1136
+ 'cmat-vertical-navigation-inner': this.inner,
1137
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1138
+ 'cmat-vertical-navigation-mode-over': this.mode === 'over',
1139
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1140
+ 'cmat-vertical-navigation-mode-side': this.mode === 'side',
1141
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1142
+ 'cmat-vertical-navigation-opened': this.opened,
1143
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1144
+ 'cmat-vertical-navigation-position-left': this.position === 'left',
1145
+ // eslint-disable-next-line @typescript-eslint/naming-convention
1146
+ 'cmat-vertical-navigation-position-right': this.position === 'right'
1147
+ };
1148
+ }
1149
+ /**
1150
+ * Host binding for component inline styles
1151
+ */
1152
+ get styleList() {
1153
+ return {
1154
+ 'visibility': this.opened ? 'visible' : 'hidden'
1155
+ };
1156
+ }
1157
+ // -----------------------------------------------------------------------------------------------------
1158
+ // @ Decorated methods
1159
+ // -----------------------------------------------------------------------------------------------------
1160
+ /**
1161
+ * On mouseenter
1162
+ *
1163
+ * @private
1164
+ */
1165
+ onMouseenter() {
1166
+ // Enable the animations
1167
+ this._enableAnimations();
1168
+ // Set the hovered
1169
+ this._hovered = true;
1170
+ }
1171
+ /**
1172
+ * On mouseleave
1173
+ *
1174
+ * @private
1175
+ */
1176
+ onMouseleave() {
1177
+ // Enable the animations
1178
+ this._enableAnimations();
1179
+ // Set the hovered
1180
+ this._hovered = false;
1181
+ }
1182
+ // -----------------------------------------------------------------------------------------------------
1183
+ // @ Lifecycle hooks
1184
+ // -----------------------------------------------------------------------------------------------------
1185
+ /**
1186
+ * On changes
1187
+ *
1188
+ * @param changes
1189
+ */
1190
+ ngOnChanges(changes) {
1191
+ // Appearance
1192
+ if ('appearance' in changes) {
1193
+ // Execute the observable
1194
+ this.appearanceChanged.next(changes['appearance'].currentValue);
1195
+ }
1196
+ // Inner
1197
+ if ('inner' in changes) {
1198
+ // Coerce the value to a boolean
1199
+ this.inner = coerceBooleanProperty(changes['inner'].currentValue);
1200
+ }
1201
+ // Mode
1202
+ if ('mode' in changes) {
1203
+ // Get the previous and current values
1204
+ const currentMode = changes['mode'].currentValue;
1205
+ const previousMode = changes['mode'].previousValue;
1206
+ // Disable the animations
1207
+ this._disableAnimations();
1208
+ // If the mode changes: 'over -> side'
1209
+ if (previousMode === 'over' && currentMode === 'side') {
1210
+ // Hide the overlay
1211
+ this._hideOverlay();
1212
+ }
1213
+ // If the mode changes: 'side -> over'
1214
+ if (previousMode === 'side' && currentMode === 'over') {
1215
+ // Close the aside
1216
+ this.closeAside();
1217
+ // If the navigation is opened
1218
+ if (this.opened) {
1219
+ // Show the overlay
1220
+ this._showOverlay();
1221
+ }
1222
+ }
1223
+ // Execute the observable
1224
+ this.modeChanged.next(currentMode);
1225
+ // Enable the animations after a delay
1226
+ // The delay must be bigger than the current transition-duration
1227
+ // to make sure nothing will be animated while the mode changing
1228
+ setTimeout(() => {
1229
+ this._enableAnimations();
1230
+ }, 500);
1231
+ }
1232
+ // Navigation
1233
+ if ('navigation' in changes) {
1234
+ // Mark for check
1235
+ this._changeDetectorRef.markForCheck();
1236
+ }
1237
+ // Opened
1238
+ if ('opened' in changes) {
1239
+ // Coerce the value to a boolean
1240
+ this.opened = coerceBooleanProperty(changes['opened'].currentValue);
1241
+ // Open/close the navigation
1242
+ this._toggleOpened(this.opened);
1243
+ }
1244
+ // Position
1245
+ if ('position' in changes) {
1246
+ // Execute the observable
1247
+ this.positionChanged.next(changes['position'].currentValue);
1248
+ }
1249
+ // Transparent overlay
1250
+ if ('transparentOverlay' in changes) {
1251
+ // Coerce the value to a boolean
1252
+ this.transparentOverlay = coerceBooleanProperty(changes['transparentOverlay'].currentValue);
1253
+ }
1254
+ }
1255
+ /**
1256
+ * On init
1257
+ */
1258
+ ngOnInit() {
1259
+ // Make sure the name input is not an empty string
1260
+ if (this.name === '') {
1261
+ this.name = this._cmatUtilsService.randomId();
1262
+ }
1263
+ // Register the navigation component
1264
+ this._cmatNavigationService.registerComponent(this.name, this);
1265
+ // Subscribe to the 'NavigationEnd' event
1266
+ this._router.events
1267
+ .pipe(filter(event => event instanceof NavigationEnd), takeUntil(this._unsubscribeAll))
1268
+ .subscribe(() => {
1269
+ // If the mode is 'over' and the navigation is opened...
1270
+ if (this.mode === 'over' && this.opened) {
1271
+ // Close the navigation
1272
+ this.close();
1273
+ }
1274
+ // If the mode is 'side' and the aside is active...
1275
+ if (this.mode === 'side' && this.activeAsideItemId) {
1276
+ // Close the aside
1277
+ this.closeAside();
1278
+ }
1279
+ });
1280
+ }
1281
+ /**
1282
+ * After view init
1283
+ */
1284
+ ngAfterViewInit() {
1285
+ setTimeout(() => {
1286
+ // Return if 'navigation content' element does not exist
1287
+ if (!this._navigationContentEl) {
1288
+ return;
1289
+ }
1290
+ const activeItem = this._navigationContentEl.nativeElement.querySelector('.cmat-vertical-navigation-item-active');
1291
+ // If the active item exists, scroll it into view
1292
+ if (activeItem) {
1293
+ if (activeItem.getBoundingClientRect().bottom
1294
+ <= (this._navigationContentEl.nativeElement.getBoundingClientRect().bottom - Math.abs(-120))) {
1295
+ return;
1296
+ }
1297
+ this._navigationContentEl.nativeElement.scrollTo({
1298
+ top: activeItem.getBoundingClientRect().top -
1299
+ this._navigationContentEl.nativeElement.getBoundingClientRect().top - 120, behavior: 'smooth'
1300
+ });
1301
+ }
1302
+ });
1303
+ }
1304
+ /**
1305
+ * On destroy
1306
+ */
1307
+ ngOnDestroy() {
1308
+ // Forcefully close the navigation and aside in case they are opened
1309
+ this.close();
1310
+ this.closeAside();
1311
+ // Deregister the navigation component from the registry
1312
+ this._cmatNavigationService.deregisterComponent(this.name);
1313
+ // Unsubscribe from all subscriptions
1314
+ this._unsubscribeAll.next(void 0);
1315
+ this._unsubscribeAll.complete();
1316
+ }
1317
+ // -----------------------------------------------------------------------------------------------------
1318
+ // @ Public methods
1319
+ // -----------------------------------------------------------------------------------------------------
1320
+ /**
1321
+ * Refresh the component to apply the changes
1322
+ */
1323
+ refresh() {
1324
+ // Mark for check
1325
+ this._changeDetectorRef.markForCheck();
1326
+ // Execute the observable
1327
+ this.onRefreshed.next(true);
1328
+ }
1329
+ /**
1330
+ * Open the navigation
1331
+ */
1332
+ open() {
1333
+ // Return if the navigation is already open
1334
+ if (this.opened) {
1335
+ return;
1336
+ }
1337
+ // Set the opened
1338
+ this._toggleOpened(true);
1339
+ }
1340
+ /**
1341
+ * Close the navigation
1342
+ */
1343
+ close() {
1344
+ // Return if the navigation is already closed
1345
+ if (!this.opened) {
1346
+ return;
1347
+ }
1348
+ // Close the aside
1349
+ this.closeAside();
1350
+ // Set the opened
1351
+ this._toggleOpened(false);
1352
+ }
1353
+ /**
1354
+ * Toggle the navigation
1355
+ */
1356
+ toggle() {
1357
+ // Toggle
1358
+ if (this.opened) {
1359
+ this.close();
1360
+ }
1361
+ else {
1362
+ this.open();
1363
+ }
1364
+ }
1365
+ /**
1366
+ * Open the aside
1367
+ *
1368
+ * @param item
1369
+ */
1370
+ openAside(item) {
1371
+ // Return if the item is disabled
1372
+ if (item.disabled || !item.id) {
1373
+ return;
1374
+ }
1375
+ // Open
1376
+ this.activeAsideItemId = item.id;
1377
+ // Show the aside overlay
1378
+ this._showAsideOverlay();
1379
+ // Mark for check
1380
+ this._changeDetectorRef.markForCheck();
1381
+ }
1382
+ /**
1383
+ * Close the aside
1384
+ */
1385
+ closeAside() {
1386
+ // Close
1387
+ this.activeAsideItemId = null;
1388
+ // Hide the aside overlay
1389
+ this._hideAsideOverlay();
1390
+ // Mark for check
1391
+ this._changeDetectorRef.markForCheck();
1392
+ }
1393
+ /**
1394
+ * Toggle the aside
1395
+ *
1396
+ * @param item
1397
+ */
1398
+ toggleAside(item) {
1399
+ // Toggle
1400
+ if (this.activeAsideItemId === item.id) {
1401
+ this.closeAside();
1402
+ }
1403
+ else {
1404
+ this.openAside(item);
1405
+ }
1406
+ }
1407
+ /**
1408
+ * Track by function for ngFor loops
1409
+ *
1410
+ * @param index
1411
+ * @param item
1412
+ */
1413
+ trackByFn(index, item) {
1414
+ return item.id || index;
1415
+ }
1416
+ selectItem(item) {
1417
+ this.editSelectedItemChanged.next(item);
1418
+ }
1419
+ // -----------------------------------------------------------------------------------------------------
1420
+ // @ Private methods
1421
+ // -----------------------------------------------------------------------------------------------------
1422
+ /**
1423
+ * Enable the animations
1424
+ *
1425
+ * @private
1426
+ */
1427
+ _enableAnimations() {
1428
+ // Return if the animations are already enabled
1429
+ if (this._animationsEnabled) {
1430
+ return;
1431
+ }
1432
+ // Enable the animations
1433
+ this._animationsEnabled = true;
1434
+ }
1435
+ /**
1436
+ * Disable the animations
1437
+ *
1438
+ * @private
1439
+ */
1440
+ _disableAnimations() {
1441
+ // Return if the animations are already disabled
1442
+ if (!this._animationsEnabled) {
1443
+ return;
1444
+ }
1445
+ // Disable the animations
1446
+ this._animationsEnabled = false;
1447
+ }
1448
+ /**
1449
+ * Show the overlay
1450
+ *
1451
+ * @private
1452
+ */
1453
+ _showOverlay() {
1454
+ // Return if there is already an overlay
1455
+ if (this._asideOverlay) {
1456
+ return;
1457
+ }
1458
+ // Create the overlay element
1459
+ this._overlay = this._renderer2.createElement('div');
1460
+ if (this._overlay) {
1461
+ // Add a class to the overlay element
1462
+ this._overlay.classList.add('cmat-vertical-navigation-overlay');
1463
+ // Add a class depending on the transparentOverlay option
1464
+ if (this.transparentOverlay) {
1465
+ this._overlay.classList.add('cmat-vertical-navigation-overlay-transparent');
1466
+ }
1467
+ // Append the overlay to the parent of the navigation
1468
+ this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._overlay);
1469
+ // Enable block scroll strategy
1470
+ this._scrollStrategy.enable();
1471
+ // Create the enter animation and attach it to the player
1472
+ this._player = this._animationBuilder.build([
1473
+ animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ opacity: 1 }))
1474
+ ]).create(this._overlay);
1475
+ // Play the animation
1476
+ this._player.play();
1477
+ // Add an event listener to the overlay
1478
+ this._overlay.addEventListener('click', this._handleOverlayClick);
1479
+ }
1480
+ }
1481
+ /**
1482
+ * Hide the overlay
1483
+ *
1484
+ * @private
1485
+ */
1486
+ _hideOverlay() {
1487
+ if (!this._overlay) {
1488
+ return;
1489
+ }
1490
+ // Create the leave animation and attach it to the player
1491
+ this._player = this._animationBuilder.build([
1492
+ animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ opacity: 0 }))
1493
+ ]).create(this._overlay);
1494
+ // Play the animation
1495
+ this._player.play();
1496
+ // Once the animation is done...
1497
+ this._player.onDone(() => {
1498
+ // If the overlay still exists...
1499
+ if (this._overlay) {
1500
+ // Remove the event listener
1501
+ this._overlay.removeEventListener('click', this._handleOverlayClick);
1502
+ // Remove the overlay
1503
+ this._overlay.parentNode?.removeChild(this._overlay);
1504
+ this._overlay = null;
1505
+ }
1506
+ // Disable block scroll strategy
1507
+ this._scrollStrategy.disable();
1508
+ });
1509
+ }
1510
+ /**
1511
+ * Show the aside overlay
1512
+ *
1513
+ * @private
1514
+ */
1515
+ _showAsideOverlay() {
1516
+ // Return if there is already an overlay
1517
+ if (this._asideOverlay) {
1518
+ return;
1519
+ }
1520
+ // Create the aside overlay element
1521
+ this._asideOverlay = this._renderer2.createElement('div');
1522
+ if (this._asideOverlay) {
1523
+ // Add a class to the aside overlay element
1524
+ this._asideOverlay.classList.add('cmat-vertical-navigation-aside-overlay');
1525
+ // Append the aside overlay to the parent of the navigation
1526
+ this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._asideOverlay);
1527
+ // Create the enter animation and attach it to the player
1528
+ this._player =
1529
+ this._animationBuilder
1530
+ .build([
1531
+ animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ opacity: 1 }))
1532
+ ]).create(this._asideOverlay);
1533
+ // Play the animation
1534
+ this._player.play();
1535
+ // Add an event listener to the aside overlay
1536
+ this._asideOverlay.addEventListener('click', this._handleAsideOverlayClick);
1537
+ }
1538
+ }
1539
+ /**
1540
+ * Hide the aside overlay
1541
+ *
1542
+ * @private
1543
+ */
1544
+ _hideAsideOverlay() {
1545
+ if (!this._asideOverlay) {
1546
+ return;
1547
+ }
1548
+ // Create the leave animation and attach it to the player
1549
+ this._player =
1550
+ this._animationBuilder
1551
+ .build([
1552
+ animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ opacity: 0 }))
1553
+ ]).create(this._asideOverlay);
1554
+ // Play the animation
1555
+ this._player.play();
1556
+ // Once the animation is done...
1557
+ this._player.onDone(() => {
1558
+ // If the aside overlay still exists...
1559
+ if (this._asideOverlay) {
1560
+ // Remove the event listener
1561
+ this._asideOverlay.removeEventListener('click', this._handleAsideOverlayClick);
1562
+ // Remove the aside overlay
1563
+ this._asideOverlay.parentNode?.removeChild(this._asideOverlay);
1564
+ this._asideOverlay = null;
1565
+ }
1566
+ });
1567
+ }
1568
+ /**
1569
+ * Open/close the navigation
1570
+ *
1571
+ * @param open
1572
+ * @private
1573
+ */
1574
+ _toggleOpened(open) {
1575
+ // Set the opened
1576
+ this.opened = open;
1577
+ // Enable the animations
1578
+ this._enableAnimations();
1579
+ // If the navigation opened, and the mode
1580
+ // is 'over', show the overlay
1581
+ if (this.mode === 'over') {
1582
+ if (this.opened) {
1583
+ this._showOverlay();
1584
+ }
1585
+ else {
1586
+ this._hideOverlay();
1587
+ }
1588
+ }
1589
+ // Execute the observable
1590
+ this.openedChanged.next(open);
1591
+ }
1592
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationComponent, deps: [{ token: i1$1.AnimationBuilder }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.Router }, { token: i3$1.ScrollStrategyOptions }, { token: CmatNavigationService }, { token: i2.CmatUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
1593
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatVerticalNavigationComponent, isStandalone: true, selector: "cmat-vertical-navigation", inputs: { appearance: "appearance", autoCollapse: "autoCollapse", editMode: "editMode", inner: "inner", mode: "mode", name: "name", navigation: "navigation", opened: "opened", position: "position", transparentOverlay: "transparentOverlay" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", positionChanged: "positionChanged", editSelectedItemChanged: "editSelectedItemChanged" }, host: { listeners: { "mouseenter": "onMouseenter()", "mouseleave": "onMouseleave()" }, properties: { "class": "this.classList", "style": "this.styleList" } }, viewQueries: [{ propertyName: "_navigationContentEl", first: true, predicate: ["navigationContent"], descendants: true }], exportAs: ["cmatVerticalNavigation"], usesOnChanges: true, ngImport: i0, template: "<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n <!-- Header -->\r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" #navigationContent>\r\n\r\n <!-- Content header -->\r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Items -->\r\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Aside -->\r\n <ng-container *ngIf=\"item.type === 'aside'\">\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" (click)=\"toggleAside(item)\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n </ng-container>\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Collapsable -->\r\n <ng-container *ngIf=\"item.type === 'collapsable'\">\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n </ng-container>\r\n\r\n <!-- Group -->\r\n <ng-container *ngIf=\"item.type === 'group'\">\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <!-- Content footer -->\r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n <!-- Footer -->\r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- Aside -->\r\n<ng-container *ngIf=\"activeAsideItemId\">\r\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\r\n [@fadeOutRight]=\"position === 'right'\">\r\n\r\n <!-- Items -->\r\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Aside -->\r\n <ng-container *ngIf=\"item.type === 'aside' && item.id === activeAsideItemId\">\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\r\n </cmat-vertical-navigation-aside-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n</ng-container>", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{color:currentColor}cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{@apply text-current opacity-60;}cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{@apply text-current opacity-80;}cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{@apply text-current opacity-50;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-icon{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-title,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-title,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-title,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-title{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-subtitle{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-icon{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-title,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-title,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-arrow{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-subtitle{@apply opacity-100;}cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{@apply opacity-100;}cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{@apply opacity-100;}cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-subtitle{@apply opacity-100;}cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{@apply opacity-100 text-primary-600 dark:text-primary-400;}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CmatVerticalNavigationAsideItemComponent, selector: "cmat-vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "name", "skipChildren", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationBasicItemComponent, selector: "cmat-vertical-navigation-basic-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationCollapsableItemComponent, selector: "cmat-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationDividerItemComponent, selector: "cmat-vertical-navigation-divider-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationGroupItemComponent, selector: "cmat-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationSpacerItemComponent, selector: "cmat-vertical-navigation-spacer-item", inputs: ["item", "name", "editMode"], outputs: ["editSelectedItemChanged"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1594
+ }
1595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatVerticalNavigationComponent, decorators: [{
1596
+ type: Component,
1597
+ args: [{ selector: 'cmat-vertical-navigation', animations: cmatAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatVerticalNavigation', standalone: true, imports: [NgFor, NgIf, CmatVerticalNavigationAsideItemComponent,
1598
+ CmatVerticalNavigationBasicItemComponent, CmatVerticalNavigationCollapsableItemComponent,
1599
+ CmatVerticalNavigationDividerItemComponent, CmatVerticalNavigationGroupItemComponent,
1600
+ CmatVerticalNavigationSpacerItemComponent], template: "<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n <!-- Header -->\r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" #navigationContent>\r\n\r\n <!-- Content header -->\r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Items -->\r\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Aside -->\r\n <ng-container *ngIf=\"item.type === 'aside'\">\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" (click)=\"toggleAside(item)\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n </ng-container>\r\n\r\n <!-- Basic -->\r\n <ng-container *ngIf=\"item.type === 'basic'\">\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n </ng-container>\r\n\r\n <!-- Collapsable -->\r\n <ng-container *ngIf=\"item.type === 'collapsable'\">\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\r\n </ng-container>\r\n\r\n <!-- Divider -->\r\n <ng-container *ngIf=\"item.type === 'divider'\">\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n </ng-container>\r\n\r\n <!-- Group -->\r\n <ng-container *ngIf=\"item.type === 'group'\">\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n </ng-container>\r\n\r\n <!-- Spacer -->\r\n <ng-container *ngIf=\"item.type === 'spacer'\">\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editMode]=\"editMode\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <!-- Content footer -->\r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n <!-- Footer -->\r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- Aside -->\r\n<ng-container *ngIf=\"activeAsideItemId\">\r\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\r\n [@fadeOutRight]=\"position === 'right'\">\r\n\r\n <!-- Items -->\r\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\r\n\r\n <!-- Skip the hidden items -->\r\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\r\n\r\n <!-- Aside -->\r\n <ng-container *ngIf=\"item.type === 'aside' && item.id === activeAsideItemId\">\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\r\n </cmat-vertical-navigation-aside-item>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n</ng-container>", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{color:currentColor}cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{@apply text-current opacity-60;}cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{@apply text-current opacity-80;}cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{@apply text-current opacity-50;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-icon{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-title,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-title,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-title,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-title{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-disabled).cmat-vertical-navigation-item-active-forced .cmat-vertical-navigation-item-subtitle{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-icon,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-icon{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-title,cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-title,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-arrow{@apply opacity-100;}cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:not(.cmat-vertical-navigation-item-active-forced):not(.cmat-vertical-navigation-item-active):not(.cmat-vertical-navigation-item-disabled):hover .cmat-vertical-navigation-item-subtitle{@apply opacity-100;}cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{@apply opacity-100;}cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title,cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{@apply opacity-100;}cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-subtitle{@apply opacity-100;}cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{@apply opacity-100 text-primary-600 dark:text-primary-400;}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"] }]
1601
+ }], ctorParameters: () => [{ type: i1$1.AnimationBuilder }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.Router }, { type: i3$1.ScrollStrategyOptions }, { type: CmatNavigationService }, { type: i2.CmatUtilsService }], propDecorators: { appearance: [{
1602
+ type: Input
1603
+ }], autoCollapse: [{
1604
+ type: Input
1605
+ }], editMode: [{
1606
+ type: Input
1607
+ }], inner: [{
1608
+ type: Input
1609
+ }], mode: [{
1610
+ type: Input
1611
+ }], name: [{
1612
+ type: Input
1613
+ }], navigation: [{
1614
+ type: Input
1615
+ }], opened: [{
1616
+ type: Input
1617
+ }], position: [{
1618
+ type: Input
1619
+ }], transparentOverlay: [{
1620
+ type: Input
1621
+ }], appearanceChanged: [{
1622
+ type: Output
1623
+ }], modeChanged: [{
1624
+ type: Output
1625
+ }], openedChanged: [{
1626
+ type: Output
1627
+ }], positionChanged: [{
1628
+ type: Output
1629
+ }], editSelectedItemChanged: [{
1630
+ type: Output
1631
+ }], _navigationContentEl: [{
1632
+ type: ViewChild,
1633
+ args: ['navigationContent']
1634
+ }], classList: [{
1635
+ type: HostBinding,
1636
+ args: ['class']
1637
+ }], styleList: [{
1638
+ type: HostBinding,
1639
+ args: ['style']
1640
+ }], onMouseenter: [{
1641
+ type: HostListener,
1642
+ args: ['mouseenter']
1643
+ }], onMouseleave: [{
1644
+ type: HostListener,
1645
+ args: ['mouseleave']
1646
+ }] } });
1647
+
1648
+ class CmatNavigationItem {
1649
+ }
1650
+
1651
+ /**
1652
+ * Generated bundle index. Do not edit.
1653
+ */
1654
+
1655
+ export { CmatHorizontalNavigationComponent, CmatNavigationItem, CmatNavigationService, CmatVerticalNavigationComponent };
1656
+ //# sourceMappingURL=cmat-components-navigation.mjs.map