@updevs/components 1.0.0-alpha.4 → 1.0.0-alpha.6

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 (466) hide show
  1. package/README.md +2 -2
  2. package/button/button.component.d.ts +43 -0
  3. package/button/upd-button.module.d.ts +8 -0
  4. package/card/card.component.d.ts +54 -0
  5. package/card/directives/card-actions.directive.d.ts +8 -0
  6. package/card/directives/card-footer.directive.d.ts +8 -0
  7. package/card/directives/card-header.directive.d.ts +8 -0
  8. package/card/directives/card-image.directive.d.ts +8 -0
  9. package/card/upd-card.module.d.ts +14 -0
  10. package/dropdown/dropdown.component.d.ts +63 -0
  11. package/dropdown/{src/models/dropdown-item.ts → models/dropdown-item.d.ts} +0 -2
  12. package/dropdown/upd-dropdown.module.d.ts +12 -0
  13. package/esm2022/button/button.component.mjs +163 -0
  14. package/esm2022/button/index.mjs +2 -0
  15. package/esm2022/button/public-api.mjs +3 -0
  16. package/esm2022/button/upd-button.module.mjs +24 -0
  17. package/esm2022/button/updevs-components-button.mjs +5 -0
  18. package/esm2022/card/card.component.mjs +136 -0
  19. package/esm2022/card/directives/card-actions.directive.mjs +16 -0
  20. package/esm2022/card/directives/card-footer.directive.mjs +16 -0
  21. package/esm2022/card/directives/card-header.directive.mjs +16 -0
  22. package/esm2022/card/directives/card-image.directive.mjs +16 -0
  23. package/esm2022/card/directives/public-api.mjs +5 -0
  24. package/esm2022/card/index.mjs +2 -0
  25. package/esm2022/card/public-api.mjs +4 -0
  26. package/esm2022/card/types/card-state.type.mjs +2 -0
  27. package/esm2022/card/types/card-style.type.mjs +2 -0
  28. package/esm2022/card/types/hover-effect.type.mjs +2 -0
  29. package/esm2022/card/types/ribbon-style.type.mjs +2 -0
  30. package/esm2022/card/types/status-position.type.mjs +2 -0
  31. package/esm2022/card/upd-card.module.mjs +50 -0
  32. package/esm2022/card/updevs-components-card.mjs +5 -0
  33. package/esm2022/dropdown/dropdown.component.mjs +146 -0
  34. package/esm2022/dropdown/index.mjs +2 -0
  35. package/esm2022/dropdown/models/dropdown-item.mjs +2 -0
  36. package/esm2022/dropdown/models/dropdown-item.type.mjs +2 -0
  37. package/esm2022/dropdown/models/public-api.mjs +3 -0
  38. package/esm2022/dropdown/public-api.mjs +4 -0
  39. package/esm2022/dropdown/upd-dropdown.module.mjs +40 -0
  40. package/esm2022/dropdown/updevs-components-dropdown.mjs +5 -0
  41. package/esm2022/form/form.module.mjs +18 -0
  42. package/esm2022/form/index.mjs +2 -0
  43. package/esm2022/form/public-api.mjs +2 -0
  44. package/esm2022/form/updevs-components-form.mjs +5 -0
  45. package/esm2022/form-controls/checkbox/checkbox.component.mjs +68 -0
  46. package/esm2022/form-controls/checkbox/index.mjs +2 -0
  47. package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
  48. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +28 -0
  49. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
  50. package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
  51. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
  52. package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
  53. package/esm2022/form-controls/input/index.mjs +2 -0
  54. package/esm2022/form-controls/input/input.component.mjs +155 -0
  55. package/esm2022/form-controls/input/public-api.mjs +5 -0
  56. package/esm2022/form-controls/input/types/input.type.mjs +2 -0
  57. package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
  58. package/esm2022/form-controls/input/types/public-api.mjs +3 -0
  59. package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
  60. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
  61. package/esm2022/form-controls/radio/index.mjs +2 -0
  62. package/esm2022/form-controls/radio/public-api.mjs +3 -0
  63. package/esm2022/form-controls/radio/radio.component.mjs +64 -0
  64. package/esm2022/form-controls/radio/upd-radio.module.mjs +24 -0
  65. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
  66. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +66 -0
  67. package/esm2022/form-controls/select/components/single/select.component.mjs +54 -0
  68. package/esm2022/form-controls/select/index.mjs +2 -0
  69. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +208 -0
  70. package/esm2022/form-controls/select/models/public-api.mjs +2 -0
  71. package/esm2022/form-controls/select/models/select-item.mjs +2 -0
  72. package/esm2022/form-controls/select/public-api.mjs +5 -0
  73. package/esm2022/form-controls/select/upd-select.module.mjs +53 -0
  74. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
  75. package/esm2022/form-controls/textarea/index.mjs +2 -0
  76. package/esm2022/form-controls/textarea/public-api.mjs +3 -0
  77. package/esm2022/form-controls/textarea/textarea.component.mjs +62 -0
  78. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
  79. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
  80. package/esm2022/form-controls/time-picker/index.mjs +2 -0
  81. package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
  82. package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
  83. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +125 -0
  84. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +60 -0
  85. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
  86. package/esm2022/layout/abstractions/base-page.component.mjs +24 -0
  87. package/esm2022/layout/abstractions/public-api.mjs +2 -0
  88. package/esm2022/layout/index.mjs +2 -0
  89. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +11 -0
  90. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +24 -0
  91. package/esm2022/layout/layouts/public-api.mjs +5 -0
  92. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +33 -0
  93. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +81 -0
  94. package/esm2022/layout/models/public-api.mjs +2 -0
  95. package/esm2022/layout/models/upd-layout-config.model.mjs +30 -0
  96. package/esm2022/layout/models/upd-layout.config.mjs +2 -0
  97. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
  98. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +46 -0
  99. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
  100. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +27 -0
  101. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
  102. package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
  103. package/esm2022/layout/pages/public-api.mjs +2 -0
  104. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +15 -0
  105. package/esm2022/layout/partials/footer/footer.component.mjs +66 -0
  106. package/esm2022/layout/partials/footer/public-api.mjs +3 -0
  107. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  108. package/esm2022/layout/partials/header/header.component.mjs +79 -0
  109. package/esm2022/layout/partials/header/public-api.mjs +3 -0
  110. package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
  111. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  112. package/esm2022/layout/partials/public-api.mjs +5 -0
  113. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  114. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +144 -0
  115. package/esm2022/layout/public-api.mjs +8 -0
  116. package/esm2022/layout/services/public-api.mjs +2 -0
  117. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  118. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  119. package/esm2022/layout/upd-layout.module.mjs +43 -0
  120. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  121. package/esm2022/lib/index.mjs +2 -0
  122. package/esm2022/lib/public-api.mjs +3 -0
  123. package/esm2022/lib/types/component-size.type.mjs +2 -0
  124. package/esm2022/lib/types/public-api.mjs +3 -0
  125. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  126. package/esm2022/lib/upd-components.module.mjs +14 -0
  127. package/esm2022/link/index.mjs +2 -0
  128. package/esm2022/link/link.component.mjs +51 -0
  129. package/esm2022/link/public-api.mjs +4 -0
  130. package/esm2022/link/target.type.mjs +2 -0
  131. package/esm2022/link/upd-link.module.mjs +24 -0
  132. package/esm2022/link/updevs-components-link.mjs +5 -0
  133. package/esm2022/list/index.mjs +2 -0
  134. package/esm2022/list/list.component.mjs +134 -0
  135. package/esm2022/list/models/badge-position.type.mjs +2 -0
  136. package/esm2022/list/models/list-item.mjs +2 -0
  137. package/esm2022/list/models/list-item.model.mjs +15 -0
  138. package/esm2022/list/models/public-api.mjs +3 -0
  139. package/esm2022/list/public-api.mjs +4 -0
  140. package/esm2022/list/upd-list.module.mjs +43 -0
  141. package/esm2022/list/updevs-components-list.mjs +5 -0
  142. package/esm2022/popover/index.mjs +2 -0
  143. package/esm2022/popover/popover.component.mjs +65 -0
  144. package/esm2022/popover/popover.directive.mjs +129 -0
  145. package/esm2022/popover/public-api.mjs +4 -0
  146. package/esm2022/popover/upd-popover.module.mjs +29 -0
  147. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  148. package/esm2022/public-api.mjs +2 -0
  149. package/esm2022/updevs-components.mjs +5 -0
  150. package/fesm2022/updevs-components-button.mjs +191 -0
  151. package/fesm2022/updevs-components-button.mjs.map +1 -0
  152. package/fesm2022/updevs-components-card.mjs +238 -0
  153. package/fesm2022/updevs-components-card.mjs.map +1 -0
  154. package/fesm2022/updevs-components-dropdown.mjs +190 -0
  155. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  156. package/fesm2022/updevs-components-form-controls-checkbox.mjs +100 -0
  157. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  158. package/fesm2022/updevs-components-form-controls-input.mjs +229 -0
  159. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  160. package/fesm2022/updevs-components-form-controls-radio.mjs +92 -0
  161. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  162. package/fesm2022/updevs-components-form-controls-select.mjs +372 -0
  163. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  164. package/fesm2022/updevs-components-form-controls-textarea.mjs +90 -0
  165. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  166. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  167. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  168. package/fesm2022/updevs-components-form.mjs +25 -0
  169. package/fesm2022/updevs-components-form.mjs.map +1 -0
  170. package/fesm2022/updevs-components-layout.mjs +673 -0
  171. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  172. package/fesm2022/updevs-components-link.mjs +79 -0
  173. package/fesm2022/updevs-components-link.mjs.map +1 -0
  174. package/fesm2022/updevs-components-list.mjs +226 -0
  175. package/fesm2022/updevs-components-list.mjs.map +1 -0
  176. package/fesm2022/updevs-components-popover.mjs +223 -0
  177. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  178. package/fesm2022/updevs-components.mjs +21 -0
  179. package/fesm2022/updevs-components.mjs.map +1 -0
  180. package/form/form.module.d.ts +7 -0
  181. package/form-controls/checkbox/checkbox.component.d.ts +25 -0
  182. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  183. package/form-controls/checkbox/upd-checkbox.module.d.ts +9 -0
  184. package/form-controls/input/directives/input-append.directive.d.ts +8 -0
  185. package/form-controls/input/directives/input-prepend.directive.d.ts +8 -0
  186. package/form-controls/input/input.component.d.ts +54 -0
  187. package/form-controls/input/upd-input.module.d.ts +13 -0
  188. package/form-controls/radio/radio.component.d.ts +24 -0
  189. package/form-controls/radio/upd-radio.module.d.ts +8 -0
  190. package/form-controls/select/components/multiple/select-multiple.component.d.ts +18 -0
  191. package/form-controls/select/components/single/select.component.d.ts +20 -0
  192. package/form-controls/select/models/abstractions/base-select.component.d.ts +80 -0
  193. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  194. package/form-controls/select/upd-select.module.d.ts +15 -0
  195. package/form-controls/textarea/textarea.component.d.ts +23 -0
  196. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  197. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  198. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  199. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  200. package/index.d.ts +5 -0
  201. package/layout/abstractions/base-page.component.d.ts +13 -0
  202. package/layout/layouts/blank-layout/blank-layout.component.d.ts +5 -0
  203. package/layout/layouts/blank-layout/blank-layout.module.d.ts +8 -0
  204. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +13 -0
  205. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +20 -0
  206. package/layout/models/upd-layout-config.model.d.ts +39 -0
  207. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  208. package/layout/pages/auth-flow/auth-flow.module.d.ts +13 -0
  209. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  210. package/layout/pages/auth-flow/login/login.component.d.ts +12 -0
  211. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  212. package/layout/partials/footer/footer-copyright.directive.d.ts +6 -0
  213. package/layout/partials/footer/footer.component.d.ts +45 -0
  214. package/layout/partials/header/header.component.d.ts +33 -0
  215. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  216. package/layout/partials/sidebar/sidebar.component.d.ts +21 -0
  217. package/layout/services/upd-layout-config.service.d.ts +15 -0
  218. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  219. package/layout/upd-layout.module.d.ts +18 -0
  220. package/lib/upd-components.module.d.ts +6 -0
  221. package/link/link.component.d.ts +22 -0
  222. package/link/upd-link.module.d.ts +8 -0
  223. package/list/list.component.d.ts +62 -0
  224. package/list/{src/models/list-item.ts → models/list-item.d.ts} +0 -2
  225. package/list/{src/models/list-item.model.ts → models/list-item.model.d.ts} +5 -16
  226. package/list/upd-list.module.d.ts +13 -0
  227. package/package.json +114 -21
  228. package/popover/popover.component.d.ts +22 -0
  229. package/popover/popover.directive.d.ts +35 -0
  230. package/popover/upd-popover.module.d.ts +9 -0
  231. package/CHANGELOG.md +0 -8
  232. package/button/index.ts +0 -1
  233. package/button/ng-package.json +0 -7
  234. package/button/src/button.component.html +0 -8
  235. package/button/src/button.component.scss +0 -5
  236. package/button/src/button.component.spec.ts +0 -23
  237. package/button/src/button.component.ts +0 -154
  238. package/button/src/upd-button.module.ts +0 -17
  239. package/card/index.ts +0 -1
  240. package/card/ng-package.json +0 -7
  241. package/card/src/card.component.html +0 -105
  242. package/card/src/card.component.scss +0 -47
  243. package/card/src/card.component.spec.ts +0 -23
  244. package/card/src/card.component.ts +0 -112
  245. package/card/src/directives/card-actions.directive.spec.ts +0 -8
  246. package/card/src/directives/card-actions.directive.ts +0 -11
  247. package/card/src/directives/card-footer.directive.spec.ts +0 -8
  248. package/card/src/directives/card-footer.directive.ts +0 -11
  249. package/card/src/directives/card-header.directive.spec.ts +0 -8
  250. package/card/src/directives/card-header.directive.ts +0 -11
  251. package/card/src/directives/card-image.directive.spec.ts +0 -8
  252. package/card/src/directives/card-image.directive.ts +0 -11
  253. package/card/src/types/public-api.ts +0 -5
  254. package/card/src/upd-card.module.ts +0 -32
  255. package/dropdown/index.ts +0 -1
  256. package/dropdown/ng-package.json +0 -7
  257. package/dropdown/src/dropdown.component.html +0 -32
  258. package/dropdown/src/dropdown.component.scss +0 -19
  259. package/dropdown/src/dropdown.component.spec.ts +0 -23
  260. package/dropdown/src/dropdown.component.ts +0 -182
  261. package/dropdown/src/upd-dropdown.module.ts +0 -25
  262. package/form/index.ts +0 -1
  263. package/form/ng-package.json +0 -7
  264. package/form/src/form.module.ts +0 -10
  265. package/form-controls/checkbox/index.ts +0 -1
  266. package/form-controls/checkbox/ng-package.json +0 -7
  267. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  268. package/form-controls/checkbox/src/checkbox.component.scss +0 -0
  269. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  270. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  271. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  272. package/form-controls/input/index.ts +0 -1
  273. package/form-controls/input/ng-package.json +0 -7
  274. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  275. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  276. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  277. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  278. package/form-controls/input/src/input.component.html +0 -82
  279. package/form-controls/input/src/input.component.scss +0 -13
  280. package/form-controls/input/src/input.component.spec.ts +0 -23
  281. package/form-controls/input/src/input.component.ts +0 -124
  282. package/form-controls/input/src/upd-input.module.ts +0 -29
  283. package/form-controls/radio/index.ts +0 -1
  284. package/form-controls/radio/ng-package.json +0 -7
  285. package/form-controls/radio/src/radio.component.html +0 -7
  286. package/form-controls/radio/src/radio.component.scss +0 -0
  287. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  288. package/form-controls/radio/src/radio.component.ts +0 -47
  289. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  290. package/form-controls/select/index.ts +0 -1
  291. package/form-controls/select/ng-package.json +0 -7
  292. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  293. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  294. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  295. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  296. package/form-controls/select/src/components/shared.scss +0 -40
  297. package/form-controls/select/src/components/single/select.component.html +0 -53
  298. package/form-controls/select/src/components/single/select.component.scss +0 -3
  299. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  300. package/form-controls/select/src/components/single/select.component.ts +0 -58
  301. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  302. package/form-controls/select/src/upd-select.module.ts +0 -32
  303. package/form-controls/textarea/index.ts +0 -1
  304. package/form-controls/textarea/ng-package.json +0 -7
  305. package/form-controls/textarea/src/textarea.component.html +0 -8
  306. package/form-controls/textarea/src/textarea.component.scss +0 -0
  307. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  308. package/form-controls/textarea/src/textarea.component.ts +0 -47
  309. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  310. package/form-controls/time-picker/index.ts +0 -1
  311. package/form-controls/time-picker/ng-package.json +0 -7
  312. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  313. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  314. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  315. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  316. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  317. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  318. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  319. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  320. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  321. package/index.ts +0 -1
  322. package/layout/index.ts +0 -1
  323. package/layout/ng-package.json +0 -7
  324. package/layout/src/abstractions/base-page.component.ts +0 -21
  325. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  326. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  327. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  328. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  329. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  330. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  331. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  332. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  333. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  334. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  335. package/layout/src/models/upd-layout-config.model.ts +0 -71
  336. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  337. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  338. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  339. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  340. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  341. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  342. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  343. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  344. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  345. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  346. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  347. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  348. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  349. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  350. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  351. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  352. package/layout/src/partials/footer/footer.component.html +0 -30
  353. package/layout/src/partials/footer/footer.component.scss +0 -0
  354. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  355. package/layout/src/partials/footer/footer.component.ts +0 -73
  356. package/layout/src/partials/header/header.component.html +0 -163
  357. package/layout/src/partials/header/header.component.scss +0 -0
  358. package/layout/src/partials/header/header.component.spec.ts +0 -23
  359. package/layout/src/partials/header/header.component.ts +0 -86
  360. package/layout/src/partials/page-header/page-header.component.html +0 -19
  361. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  362. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  363. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  364. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  365. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  366. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  367. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  368. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  369. package/layout/src/services/upd-layout-config.service.ts +0 -20
  370. package/layout/src/upd-layout.module.ts +0 -34
  371. package/link/index.ts +0 -1
  372. package/link/ng-package.json +0 -7
  373. package/link/src/link.component.html +0 -3
  374. package/link/src/link.component.scss +0 -3
  375. package/link/src/link.component.spec.ts +0 -23
  376. package/link/src/link.component.ts +0 -48
  377. package/link/src/upd-link.module.ts +0 -17
  378. package/list/index.ts +0 -1
  379. package/list/ng-package.json +0 -7
  380. package/list/src/list.component.html +0 -58
  381. package/list/src/list.component.scss +0 -21
  382. package/list/src/list.component.spec.ts +0 -23
  383. package/list/src/list.component.ts +0 -147
  384. package/list/src/upd-list.module.ts +0 -30
  385. package/ng-package.json +0 -10
  386. package/popover/index.ts +0 -1
  387. package/popover/ng-package.json +0 -7
  388. package/popover/src/popover.component.html +0 -20
  389. package/popover/src/popover.component.scss +0 -8
  390. package/popover/src/popover.component.spec.ts +0 -23
  391. package/popover/src/popover.component.ts +0 -53
  392. package/popover/src/popover.directive.spec.ts +0 -8
  393. package/popover/src/popover.directive.ts +0 -128
  394. package/popover/src/upd-popover.module.ts +0 -20
  395. package/src/lib/upd-components.module.ts +0 -6
  396. package/tsconfig.lib.json +0 -14
  397. package/tsconfig.lib.prod.json +0 -10
  398. package/tsconfig.spec.json +0 -14
  399. /package/button/{src/index.ts → index.d.ts} +0 -0
  400. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  401. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  402. /package/card/{src/index.ts → index.d.ts} +0 -0
  403. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  404. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  405. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  406. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  407. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  408. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  409. /package/dropdown/{src/index.ts → index.d.ts} +0 -0
  410. /package/dropdown/{src/models/dropdown-item.type.ts → models/dropdown-item.type.d.ts} +0 -0
  411. /package/dropdown/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  412. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  413. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  414. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  415. /package/{layout/src → esm2022/layout}/assets/i18n/en.json +0 -0
  416. /package/{layout/src → esm2022/layout}/assets/i18n/pt.json +0 -0
  417. /package/{list/src → esm2022/list}/assets/i18n/en.json +0 -0
  418. /package/{list/src → esm2022/list}/assets/i18n/pt.json +0 -0
  419. /package/form/{src/index.ts → index.d.ts} +0 -0
  420. /package/form/{src/public-api.ts → public-api.d.ts} +0 -0
  421. /package/form-controls/checkbox/{src/index.ts → index.d.ts} +0 -0
  422. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  423. /package/form-controls/input/{src/index.ts → index.d.ts} +0 -0
  424. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  425. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  426. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  427. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  428. /package/form-controls/radio/{src/index.ts → index.d.ts} +0 -0
  429. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  430. /package/form-controls/select/{src/index.ts → index.d.ts} +0 -0
  431. /package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  432. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  433. /package/form-controls/textarea/{src/index.ts → index.d.ts} +0 -0
  434. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  435. /package/form-controls/time-picker/{src/index.ts → index.d.ts} +0 -0
  436. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  437. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  438. /package/layout/{src/index.ts → index.d.ts} +0 -0
  439. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  440. /package/layout/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  441. /package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +0 -0
  442. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  443. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  444. /package/layout/{src/partials/footer/public-api.ts → partials/footer/public-api.d.ts} +0 -0
  445. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  446. /package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +0 -0
  447. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  448. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  449. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  450. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  451. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  452. /package/{link/src/index.ts → lib/index.d.ts} +0 -0
  453. /package/{src/lib/public-api.ts → lib/public-api.d.ts} +0 -0
  454. /package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +0 -0
  455. /package/{src/lib/types/public-api.ts → lib/types/public-api.d.ts} +0 -0
  456. /package/{src/lib/types/validation-status.type.ts → lib/types/validation-status.type.d.ts} +0 -0
  457. /package/{list/src/index.ts → link/index.d.ts} +0 -0
  458. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  459. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  460. /package/{popover/src/index.ts → list/index.d.ts} +0 -0
  461. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  462. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  463. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  464. /package/{src/lib/index.ts → popover/index.d.ts} +0 -0
  465. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
  466. /package/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,673 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Directive, Component, NgModule, TemplateRef, ViewEncapsulation, HostBinding, ContentChild, Input, InjectionToken, Injectable, Inject } from '@angular/core';
3
+ import * as i1$1 from '@updevs/sdk/layout';
4
+ import { BaseComponent, LayoutService, UpdCoreLayoutModule } from '@updevs/sdk/layout';
5
+ import * as i2 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i1$2 from '@angular/router';
8
+ import { NavigationStart, RouterModule } from '@angular/router';
9
+ import * as i4 from '@updevs/icons';
10
+ import { UpdIconsModule } from '@updevs/icons';
11
+ import * as i2$1 from '@updevs/components/button';
12
+ import { UpdButtonModule } from '@updevs/components/button';
13
+ import * as i5 from '@updevs/components/link';
14
+ import { UpdLinkModule } from '@updevs/components/link';
15
+ import * as i1 from '@ngneat/transloco';
16
+ import { TranslocoModule } from '@ngneat/transloco';
17
+ import { RouteDataModel } from '@updevs/sdk/routes';
18
+ import { filter } from 'rxjs';
19
+ import { AuthService } from '@updevs/sdk/security';
20
+ import * as i3 from '@angular/forms';
21
+ import { FormsModule } from '@angular/forms';
22
+
23
+ /**
24
+ * Basic page structure.
25
+ */
26
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
27
+ class BasePageComponent extends BaseComponent {
28
+ constructor() {
29
+ super();
30
+ this._layoutService = inject(LayoutService);
31
+ }
32
+ ngOnDestroy() {
33
+ super.ngOnDestroy();
34
+ // TODO: clear subheader.
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BasePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
37
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: BasePageComponent, usesInheritance: true, ngImport: i0 }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BasePageComponent, decorators: [{
40
+ type: Directive,
41
+ args: [{}]
42
+ }], ctorParameters: function () { return []; } });
43
+
44
+ class BlankLayoutComponent {
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: BlankLayoutComponent, selector: "upd-blank-layout", ngImport: i0, template: "<p>blank-layout works!</p>\n", styles: [""] }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'upd-blank-layout', template: "<p>blank-layout works!</p>\n" }]
51
+ }] });
52
+
53
+ class BlankLayoutModule {
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
55
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutModule, declarations: [BlankLayoutComponent], imports: [CommonModule], exports: [BlankLayoutComponent] }); }
56
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutModule, imports: [CommonModule] }); }
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutModule, decorators: [{
59
+ type: NgModule,
60
+ args: [{
61
+ imports: [
62
+ CommonModule
63
+ ],
64
+ declarations: [
65
+ BlankLayoutComponent
66
+ ],
67
+ exports: [
68
+ BlankLayoutComponent
69
+ ]
70
+ }]
71
+ }] });
72
+
73
+ var Footer$1 = {
74
+ AllRightsReserved: "All rights reserved."
75
+ };
76
+ var en = {
77
+ Footer: Footer$1
78
+ };
79
+
80
+ var en$1 = /*#__PURE__*/Object.freeze({
81
+ __proto__: null,
82
+ Footer: Footer$1,
83
+ default: en
84
+ });
85
+
86
+ var Footer = {
87
+ AllRightsReserved: "Todos os direitos reservados."
88
+ };
89
+ var pt = {
90
+ Footer: Footer
91
+ };
92
+
93
+ var pt$1 = /*#__PURE__*/Object.freeze({
94
+ __proto__: null,
95
+ Footer: Footer,
96
+ default: pt
97
+ });
98
+
99
+ class FooterCopyrightDirective {
100
+ constructor() {
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FooterCopyrightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
103
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: FooterCopyrightDirective, selector: "[updFooterCopyright]", ngImport: i0 }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FooterCopyrightDirective, decorators: [{
106
+ type: Directive,
107
+ args: [{
108
+ selector: '[updFooterCopyright]'
109
+ }]
110
+ }], ctorParameters: function () { return []; } });
111
+
112
+ class FooterComponent extends BaseComponent {
113
+ constructor(translocoService) {
114
+ super();
115
+ this.translocoService = translocoService;
116
+ this.wrapperClasses = '';
117
+ /**
118
+ * Whether the footer will always be shown.
119
+ */
120
+ this.isSticky = false;
121
+ /**
122
+ * Whether the footer is transparent or not.
123
+ */
124
+ this.isTransparent = true;
125
+ /**
126
+ * Links.
127
+ */
128
+ this.links = [];
129
+ /**
130
+ * Current year.
131
+ */
132
+ this.currentYear = new Date().getFullYear();
133
+ /**
134
+ * Text displayed in the copyright section before the symbol and year.
135
+ */
136
+ this.copyrightPrefix = 'Copyright';
137
+ /**
138
+ * Text displayed in the copyright section after the symbol and year.
139
+ */
140
+ this.copyrightSuffix = '';
141
+ this.baseWrapperClasses = 'footer d-print-none';
142
+ }
143
+ ngOnInit() {
144
+ const footerCpsSub = this.translocoService.selectTranslate('Footer.AllRightsReserved').subscribe(r => this.copyrightSuffix = r);
145
+ this.updateWrapperClasses();
146
+ this.addSubscriptions(footerCpsSub);
147
+ }
148
+ ngOnChanges(changes) {
149
+ if (!!changes['isSticky'].currentValue || !!changes['isTransparent'].currentValue) {
150
+ this.updateWrapperClasses();
151
+ }
152
+ }
153
+ updateWrapperClasses() {
154
+ const stickyBottomCls = this.isSticky ? ' sticky-bottom' : '';
155
+ const transparentCls = this.isTransparent ? ' footer-transparent' : '';
156
+ this.wrapperClasses = `${this.baseWrapperClasses}${stickyBottomCls}${transparentCls}`;
157
+ }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FooterComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: FooterComponent, selector: "upd-footer", host: { properties: { "class": "this.wrapperClasses" } }, queries: [{ propertyName: "footerCopyrightTemplate", first: true, predicate: FooterCopyrightDirective, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-xl\">\n <div class=\"row text-center align-items-center flex-row-reverse\">\n <div class=\"col-lg-auto ms-lg-auto\">\n <ul *ngIf=\"links.length > 0\" class=\"list-inline list-inline-dots mb-0\">\n <li *ngFor=\"let link of links\" class=\"list-inline-item\">\n <a href=\"{{link.url}}\" target=\"{{link.target}}\" class=\"link-secondary\">\n <span [innerHTML]=\"link.text\"></span>\n <ng-container *transloco=\"let t\">\n {{t('Layout.Aloha')}}\n </ng-container>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"col-12 col-lg-auto mt-3 mt-lg-0\">\n <ng-container *ngIf=\"!!footerCopyrightTemplate; else defaultFooterTpl\"\n [ngTemplateOutlet]=\"footerCopyrightTemplate\"></ng-container>\n <ng-template #defaultFooterTpl>\n <ul class=\"list-inline list-inline-dots mb-0\">\n <li class=\"list-inline-item\">\n {{copyrightPrefix}} &copy; {{currentYear}} {{copyrightSuffix}}\n </li>\n <li *ngIf=\"!!version\" class=\"list-inline-item\">\n {{version}}\n </li>\n </ul>\n </ng-template>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }], encapsulation: i0.ViewEncapsulation.None }); }
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FooterComponent, decorators: [{
162
+ type: Component,
163
+ args: [{ selector: 'upd-footer', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-xl\">\n <div class=\"row text-center align-items-center flex-row-reverse\">\n <div class=\"col-lg-auto ms-lg-auto\">\n <ul *ngIf=\"links.length > 0\" class=\"list-inline list-inline-dots mb-0\">\n <li *ngFor=\"let link of links\" class=\"list-inline-item\">\n <a href=\"{{link.url}}\" target=\"{{link.target}}\" class=\"link-secondary\">\n <span [innerHTML]=\"link.text\"></span>\n <ng-container *transloco=\"let t\">\n {{t('Layout.Aloha')}}\n </ng-container>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"col-12 col-lg-auto mt-3 mt-lg-0\">\n <ng-container *ngIf=\"!!footerCopyrightTemplate; else defaultFooterTpl\"\n [ngTemplateOutlet]=\"footerCopyrightTemplate\"></ng-container>\n <ng-template #defaultFooterTpl>\n <ul class=\"list-inline list-inline-dots mb-0\">\n <li class=\"list-inline-item\">\n {{copyrightPrefix}} &copy; {{currentYear}} {{copyrightSuffix}}\n </li>\n <li *ngIf=\"!!version\" class=\"list-inline-item\">\n {{version}}\n </li>\n </ul>\n </ng-template>\n </div>\n </div>\n</div>\n" }]
164
+ }], ctorParameters: function () { return [{ type: i1.TranslocoService }]; }, propDecorators: { wrapperClasses: [{
165
+ type: HostBinding,
166
+ args: ['class']
167
+ }], footerCopyrightTemplate: [{
168
+ type: ContentChild,
169
+ args: [FooterCopyrightDirective, { read: TemplateRef, static: true }]
170
+ }] } });
171
+
172
+ class HeaderComponent extends BaseComponent {
173
+ constructor(coreLayoutConfigService, layoutService, translocoService) {
174
+ super();
175
+ this.coreLayoutConfigService = coreLayoutConfigService;
176
+ this.layoutService = layoutService;
177
+ this.translocoService = translocoService;
178
+ this.wrapperClasses = '';
179
+ this.style = 'light';
180
+ this.showSearchBar = true;
181
+ this.nextThemeIcon = 'moon';
182
+ this.nextThemeColor = 'black';
183
+ this.currentNotificationsIcon = 'bell';
184
+ this.hasNewNotifications = false;
185
+ this.showNotifications = false;
186
+ this.showLanguageSwitcher = true; // TODO: add on config.
187
+ this.showUserMenu = false;
188
+ this.baseWrapperClasses = 'navbar navbar-expand-md d-none d-lg-flex d-print-none';
189
+ }
190
+ ngOnInit() {
191
+ this.updateWrapperClasses();
192
+ if (this.coreLayoutConfigService.config.showNotificationsButton) {
193
+ this.setupNotifications();
194
+ }
195
+ if (this.coreLayoutConfigService.config.showUserMenu) {
196
+ this.showUserMenu = true;
197
+ }
198
+ }
199
+ ngOnChanges(changes) {
200
+ if (!!changes['style'].currentValue) {
201
+ this.updateWrapperClasses();
202
+ }
203
+ }
204
+ switchTheme() {
205
+ const isDarkMode = this.nextThemeIcon === 'moon';
206
+ this.nextThemeIcon = isDarkMode ? 'sun' : 'moon';
207
+ this.nextThemeColor = isDarkMode ? 'white' : 'black';
208
+ this.layoutService.toggleDarkMode(isDarkMode);
209
+ }
210
+ // TODO: implement.
211
+ switchLanguage() {
212
+ const currentLang = this.translocoService.getActiveLang();
213
+ this.translocoService.setActiveLang(currentLang === 'en' ? 'pt' : 'en');
214
+ }
215
+ openNotifications() {
216
+ this.updateNotificationsIcon();
217
+ }
218
+ setupNotifications() {
219
+ this.showNotifications = true;
220
+ }
221
+ updateNotificationsIcon() {
222
+ this.currentNotificationsIcon = this.currentNotificationsIcon === 'bell' ? 'bell-ringing' : 'bell';
223
+ this.hasNewNotifications = !this.hasNewNotifications;
224
+ }
225
+ updateWrapperClasses() {
226
+ this.wrapperClasses = `${this.baseWrapperClasses} navbar-${this.style}`;
227
+ }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: HeaderComponent, deps: [{ token: i1$1.UpdCoreLayoutConfigService }, { token: i1$1.LayoutService }, { token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: HeaderComponent, selector: "upd-header", inputs: { style: "style", showSearchBar: "showSearchBar" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-xl\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-nav flex-row order-md-last\">\n <div class=\"d-none d-md-flex me-3\">\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchTheme()\">\n <upd-icon [tablerIcon]=\"nextThemeIcon\"></upd-icon>\n </upd-link>\n </div>\n <div *ngIf=\"showLanguageSwitcher\" class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchLanguage()\">\n <upd-icon tablerIcon=\"flag\"></upd-icon>\n </upd-link>\n </div>\n <div *ngIf=\"showNotifications\" class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"openNotifications()\">\n <upd-icon [tablerIcon]=\"currentNotificationsIcon\"></upd-icon>\n <span *ngIf=\"hasNewNotifications\" class=\"badge bg-red\"></span>\n </upd-link>\n <div class=\"dropdown-menu dropdown-menu-arrow dropdown-menu-end dropdown-menu-card\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">Last updates</h3>\n </div>\n <div class=\"list-group list-group-flush list-group-hoverable\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-red d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 1</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Change deprecated html tags to text decoration classes (#29604)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 2</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n justify-content:between \u21D2 justify-content:space-between (#29734)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions show\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-yellow\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 3</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Update change-version.js (#29736)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-green d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 4</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Regenerate package-lock.json (#29730)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"showUserMenu\" class=\"nav-item dropdown\">\n <a href=\"#\" class=\"nav-link d-flex lh-1 text-reset p-0\" data-bs-toggle=\"dropdown\"\n aria-label=\"Open user menu\">\n <!--<span class=\"avatar avatar-sm\" style=\"background-image: url(./static/avatars/000m.jpg)\"></span>-->\n <span class=\"avatar avatar-sm\"></span>\n <div class=\"d-none d-xl-block ps-2\">\n <div>Eros Stein</div>\n <div class=\"mt-1 small text-muted\">Administrator</div>\n </div>\n </a>\n <div class=\"dropdown-menu dropdown-menu-end dropdown-menu-arrow\">\n <a href=\"#\" class=\"dropdown-item\">Status</a>\n <a href=\"./profile.html\" class=\"dropdown-item\">Profile</a>\n <a href=\"#\" class=\"dropdown-item\">Feedback</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"./settings.html\" class=\"dropdown-item\">Settings</a>\n <a href=\"./sign-in.html\" class=\"dropdown-item\">Logout</a>\n </div>\n </div>\n </div>\n <div *ngIf=\"showSearchBar\" class=\"collapse navbar-collapse\">\n <div>\n <form autocomplete=\"off\" novalidate>\n <div class=\"input-icon\">\n <span class=\"input-icon-addon\">\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </span>\n <input type=\"text\" value=\"\" class=\"form-control\" placeholder=\"Search\u2026\">\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
230
+ }
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: HeaderComponent, decorators: [{
232
+ type: Component,
233
+ args: [{ selector: 'upd-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-xl\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-nav flex-row order-md-last\">\n <div class=\"d-none d-md-flex me-3\">\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchTheme()\">\n <upd-icon [tablerIcon]=\"nextThemeIcon\"></upd-icon>\n </upd-link>\n </div>\n <div *ngIf=\"showLanguageSwitcher\" class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchLanguage()\">\n <upd-icon tablerIcon=\"flag\"></upd-icon>\n </upd-link>\n </div>\n <div *ngIf=\"showNotifications\" class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"openNotifications()\">\n <upd-icon [tablerIcon]=\"currentNotificationsIcon\"></upd-icon>\n <span *ngIf=\"hasNewNotifications\" class=\"badge bg-red\"></span>\n </upd-link>\n <div class=\"dropdown-menu dropdown-menu-arrow dropdown-menu-end dropdown-menu-card\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">Last updates</h3>\n </div>\n <div class=\"list-group list-group-flush list-group-hoverable\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-red d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 1</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Change deprecated html tags to text decoration classes (#29604)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 2</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n justify-content:between \u21D2 justify-content:space-between (#29734)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions show\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-yellow\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 3</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Update change-version.js (#29736)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-green d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 4</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Regenerate package-lock.json (#29730)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"showUserMenu\" class=\"nav-item dropdown\">\n <a href=\"#\" class=\"nav-link d-flex lh-1 text-reset p-0\" data-bs-toggle=\"dropdown\"\n aria-label=\"Open user menu\">\n <!--<span class=\"avatar avatar-sm\" style=\"background-image: url(./static/avatars/000m.jpg)\"></span>-->\n <span class=\"avatar avatar-sm\"></span>\n <div class=\"d-none d-xl-block ps-2\">\n <div>Eros Stein</div>\n <div class=\"mt-1 small text-muted\">Administrator</div>\n </div>\n </a>\n <div class=\"dropdown-menu dropdown-menu-end dropdown-menu-arrow\">\n <a href=\"#\" class=\"dropdown-item\">Status</a>\n <a href=\"./profile.html\" class=\"dropdown-item\">Profile</a>\n <a href=\"#\" class=\"dropdown-item\">Feedback</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"./settings.html\" class=\"dropdown-item\">Settings</a>\n <a href=\"./sign-in.html\" class=\"dropdown-item\">Logout</a>\n </div>\n </div>\n </div>\n <div *ngIf=\"showSearchBar\" class=\"collapse navbar-collapse\">\n <div>\n <form autocomplete=\"off\" novalidate>\n <div class=\"input-icon\">\n <span class=\"input-icon-addon\">\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </span>\n <input type=\"text\" value=\"\" class=\"form-control\" placeholder=\"Search\u2026\">\n </div>\n </form>\n </div>\n </div>\n</div>\n" }]
234
+ }], ctorParameters: function () { return [{ type: i1$1.UpdCoreLayoutConfigService }, { type: i1$1.LayoutService }, { type: i1.TranslocoService }]; }, propDecorators: { wrapperClasses: [{
235
+ type: HostBinding,
236
+ args: ['class']
237
+ }], style: [{
238
+ type: Input
239
+ }], showSearchBar: [{
240
+ type: Input
241
+ }] } });
242
+
243
+ class SidebarComponent extends BaseComponent {
244
+ constructor(router) {
245
+ super();
246
+ this.router = router;
247
+ this.wrapperClasses = 'navbar navbar-vertical navbar-expand-lg';
248
+ this.theme = 'dark';
249
+ this.menuItems = [];
250
+ }
251
+ ngOnInit() {
252
+ // TODO: remove demo code.
253
+ const sampleCardsItem = new RouteDataModel({
254
+ title: 'Sample cards',
255
+ icon: { tablerIcon: 'home' }
256
+ });
257
+ const cardActionsItem = new RouteDataModel({
258
+ title: 'Card actions',
259
+ icon: { tablerIcon: 'folder' }
260
+ });
261
+ const emptyPageItem = new RouteDataModel({
262
+ title: 'Empty page',
263
+ icon: { tablerIcon: 'home' }
264
+ });
265
+ const cardsItem = new RouteDataModel({
266
+ title: 'Cards',
267
+ icon: { tablerIcon: 'user' },
268
+ children: [
269
+ sampleCardsItem,
270
+ cardActionsItem
271
+ ]
272
+ });
273
+ const interfaceItem = new RouteDataModel({
274
+ title: 'Interface',
275
+ icon: { tablerIcon: 'device-desktop' },
276
+ children: [
277
+ emptyPageItem,
278
+ cardsItem
279
+ ]
280
+ });
281
+ sampleCardsItem.parent = cardsItem;
282
+ cardActionsItem.parent = cardsItem;
283
+ emptyPageItem.parent = interfaceItem;
284
+ cardsItem.parent = interfaceItem;
285
+ this.menuItems = [
286
+ new RouteDataModel({
287
+ title: 'Home',
288
+ icon: { tablerIcon: 'home' }
289
+ }),
290
+ new RouteDataModel({
291
+ title: 'Archives',
292
+ icon: { tablerIcon: 'folder' }
293
+ }),
294
+ interfaceItem,
295
+ new RouteDataModel({
296
+ title: 'Library',
297
+ icon: { tablerIcon: 'building' }
298
+ })
299
+ ];
300
+ // END demo code
301
+ const routerSub = this.router.events.pipe(filter(event => event instanceof NavigationStart)).subscribe(event => this.updateActiveRoute(event.url));
302
+ this.updateActiveRoute(this.router.url);
303
+ this.addSubscriptions(routerSub);
304
+ }
305
+ onMenuItemClick(item) {
306
+ this.resetMenuState(this.menuItems);
307
+ item.isActive = true;
308
+ this.updateParents(item);
309
+ if (!!item.clickFunction) {
310
+ item.clickFunction();
311
+ return;
312
+ }
313
+ if ((item.children?.length || 0) > 0) {
314
+ return;
315
+ }
316
+ this.router.navigate(item.getFullPath()).then();
317
+ }
318
+ hasChildren(item) {
319
+ return (item.children?.length || 0) > 0;
320
+ }
321
+ findActiveNode(item, fullPath) {
322
+ if (item.fullPath === fullPath) {
323
+ return item;
324
+ }
325
+ else if (item.children.length > 0) {
326
+ let result;
327
+ for (let i = 0; !result && i < item.children.length; i++) {
328
+ result = this.findActiveNode(item.children[i], fullPath);
329
+ }
330
+ return result;
331
+ }
332
+ return undefined;
333
+ }
334
+ updateActiveRoute(newPath) {
335
+ this.resetMenuState(this.menuItems);
336
+ let item;
337
+ for (const mi of this.menuItems) {
338
+ item = this.findActiveNode(mi, newPath);
339
+ if (!!item) {
340
+ break;
341
+ }
342
+ }
343
+ while (!!item) {
344
+ item.isActive = true;
345
+ item = item.parent;
346
+ }
347
+ }
348
+ resetMenuState(items) {
349
+ items.forEach(i => {
350
+ i.isActive = false;
351
+ if (i.children.length > 0) {
352
+ this.resetMenuState(i.children);
353
+ }
354
+ });
355
+ }
356
+ updateParents(menuItem) {
357
+ let item = menuItem;
358
+ while (!!item) {
359
+ item.isActive = true;
360
+ item = item.parent;
361
+ }
362
+ }
363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SidebarComponent, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SidebarComponent, selector: "upd-sidebar", host: { properties: { "class": "this.wrapperClasses", "attr.data-bs-theme": "this.theme" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <h1 class=\"navbar-brand navbar-brand-autodark\">\n <a href=\".\">\n <img width=\"110\" height=\"32\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </h1>\n <div class=\"collapse navbar-collapse\">\n <ul class=\"navbar-nav pt-lg-3\">\n <li *ngFor=\"let item of menuItems\" class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\"\n [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n </li>\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"[hasChildren(item) ? 'dropdown-toggle' : '', item.isActive ? 'show' : '']\">\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n <span class=\"nav-link-title\">{{item.title}}</span>\n </upd-link>\n <ng-container *ngIf=\"hasChildren(item)\" [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n <ng-container *ngFor=\"let child of item.children\">\n <upd-link *ngIf=\"!hasChildren(child); else grandchildTpl\" (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', child.isActive ? 'active' : '']\">\n {{child.title}}\n </upd-link>\n <ng-template #grandchildTpl>\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', 'dropdown-toggle', child.isActive ? 'active' : '']\">\n {{child.title}}\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n <ng-container *ngFor=\"let grandchild of child.children\">\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"['dropdown-item', grandchild.isActive ? 'active' : '']\">\n {{grandchild.title}}\n </upd-link>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
365
+ }
366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SidebarComponent, decorators: [{
367
+ type: Component,
368
+ args: [{ selector: 'upd-sidebar', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-fluid\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <h1 class=\"navbar-brand navbar-brand-autodark\">\n <a href=\".\">\n <img width=\"110\" height=\"32\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </h1>\n <div class=\"collapse navbar-collapse\">\n <ul class=\"navbar-nav pt-lg-3\">\n <li *ngFor=\"let item of menuItems\" class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\"\n [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n </li>\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"[hasChildren(item) ? 'dropdown-toggle' : '', item.isActive ? 'show' : '']\">\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n <span class=\"nav-link-title\">{{item.title}}</span>\n </upd-link>\n <ng-container *ngIf=\"hasChildren(item)\" [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n <ng-container *ngFor=\"let child of item.children\">\n <upd-link *ngIf=\"!hasChildren(child); else grandchildTpl\" (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', child.isActive ? 'active' : '']\">\n {{child.title}}\n </upd-link>\n <ng-template #grandchildTpl>\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', 'dropdown-toggle', child.isActive ? 'active' : '']\">\n {{child.title}}\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n <ng-container *ngFor=\"let grandchild of child.children\">\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"['dropdown-item', grandchild.isActive ? 'active' : '']\">\n {{grandchild.title}}\n </upd-link>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n" }]
369
+ }], ctorParameters: function () { return [{ type: i1$2.Router }]; }, propDecorators: { wrapperClasses: [{
370
+ type: HostBinding,
371
+ args: ['class']
372
+ }], theme: [{
373
+ type: HostBinding,
374
+ args: ['attr.data-bs-theme']
375
+ }] } });
376
+
377
+ class PageHeaderComponent {
378
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
379
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: PageHeaderComponent, selector: "upd-page-header", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"page-header d-print-none\">\n <div class=\"container-xl\">\n <div class=\"row g-2 align-items-center\">\n <div class=\"col\">\n <div class=\"page-pretitle\">\n {{model.titleHeader}}\n </div>\n <h2 class=\"page-title\">\n {{model.title}}\n </h2>\n </div>\n <div *ngIf=\"(model.actionButtons?.length || 0) > 0\" class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n <upd-button *ngFor=\"let btn of model.actionButtons\" [model]=\"btn!\"></upd-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "upd-button", inputs: ["text", "model", "colorStyle", "brandColorStyle", "customClasses", "isActive", "isDisabled", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "shouldIgnoreBtnClass"], outputs: ["clicked"] }] }); }
380
+ }
381
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: PageHeaderComponent, decorators: [{
382
+ type: Component,
383
+ args: [{ selector: 'upd-page-header', template: "<div class=\"page-header d-print-none\">\n <div class=\"container-xl\">\n <div class=\"row g-2 align-items-center\">\n <div class=\"col\">\n <div class=\"page-pretitle\">\n {{model.titleHeader}}\n </div>\n <h2 class=\"page-title\">\n {{model.title}}\n </h2>\n </div>\n <div *ngIf=\"(model.actionButtons?.length || 0) > 0\" class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n <upd-button *ngFor=\"let btn of model.actionButtons\" [model]=\"btn!\"></upd-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
384
+ }], propDecorators: { model: [{
385
+ type: Input
386
+ }] } });
387
+
388
+ class VerticalSidebarLayoutComponent extends BaseComponent {
389
+ constructor(changeDetectorRef, layoutService) {
390
+ super();
391
+ this.changeDetectorRef = changeDetectorRef;
392
+ this.layoutService = layoutService;
393
+ this.showPageHeader = false;
394
+ }
395
+ ngOnInit() {
396
+ const pHeaderSub = this.layoutService.onPageHeaderChange.subscribe(ph => {
397
+ this.showPageHeader = !!ph;
398
+ this.pageHeader = ph;
399
+ this.changeDetectorRef.detectChanges();
400
+ });
401
+ this.addSubscriptions(pHeaderSub);
402
+ }
403
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.LayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
404
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: VerticalSidebarLayoutComponent, selector: "upd-vertical-sidebar-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"page\">\n <upd-sidebar></upd-sidebar>\n <upd-header></upd-header>\n\n <div class=\"page-wrapper\">\n <upd-page-header *ngIf=\"showPageHeader\" [model]=\"pageHeader!\"></upd-page-header>\n <div class=\"page-body\">\n <div class=\"container-xl\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <upd-footer></upd-footer>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: FooterComponent, selector: "upd-footer" }, { kind: "component", type: HeaderComponent, selector: "upd-header", inputs: ["style", "showSearchBar"] }, { kind: "component", type: SidebarComponent, selector: "upd-sidebar" }, { kind: "component", type: PageHeaderComponent, selector: "upd-page-header", inputs: ["model"] }], encapsulation: i0.ViewEncapsulation.None }); }
405
+ }
406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutComponent, decorators: [{
407
+ type: Component,
408
+ args: [{ selector: 'upd-vertical-sidebar-layout', encapsulation: ViewEncapsulation.None, template: "<div class=\"page\">\n <upd-sidebar></upd-sidebar>\n <upd-header></upd-header>\n\n <div class=\"page-wrapper\">\n <upd-page-header *ngIf=\"showPageHeader\" [model]=\"pageHeader!\"></upd-page-header>\n <div class=\"page-body\">\n <div class=\"container-xl\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <upd-footer></upd-footer>\n </div>\n</div>\n" }]
409
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.LayoutService }]; } });
410
+
411
+ class VerticalSidebarLayoutModule {
412
+ constructor(translocoService) {
413
+ translocoService.setTranslation(en$1, 'en');
414
+ translocoService.setTranslation(pt$1, 'pt');
415
+ }
416
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutModule, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.NgModule }); }
417
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutModule, declarations: [VerticalSidebarLayoutComponent,
418
+ FooterComponent,
419
+ HeaderComponent,
420
+ SidebarComponent,
421
+ PageHeaderComponent], imports: [CommonModule,
422
+ RouterModule,
423
+ TranslocoModule,
424
+ UpdIconsModule,
425
+ UpdCoreLayoutModule,
426
+ UpdButtonModule,
427
+ UpdLinkModule], exports: [VerticalSidebarLayoutComponent,
428
+ FooterComponent,
429
+ HeaderComponent,
430
+ SidebarComponent,
431
+ PageHeaderComponent] }); }
432
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutModule, providers: [
433
+ FooterCopyrightDirective
434
+ ], imports: [CommonModule,
435
+ RouterModule,
436
+ TranslocoModule,
437
+ UpdIconsModule,
438
+ UpdCoreLayoutModule,
439
+ UpdButtonModule,
440
+ UpdLinkModule] }); }
441
+ }
442
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutModule, decorators: [{
443
+ type: NgModule,
444
+ args: [{
445
+ imports: [
446
+ CommonModule,
447
+ RouterModule,
448
+ TranslocoModule,
449
+ UpdIconsModule,
450
+ UpdCoreLayoutModule,
451
+ UpdButtonModule,
452
+ UpdLinkModule
453
+ ],
454
+ declarations: [
455
+ VerticalSidebarLayoutComponent,
456
+ FooterComponent,
457
+ HeaderComponent,
458
+ SidebarComponent,
459
+ PageHeaderComponent
460
+ ],
461
+ exports: [
462
+ VerticalSidebarLayoutComponent,
463
+ FooterComponent,
464
+ HeaderComponent,
465
+ SidebarComponent,
466
+ PageHeaderComponent
467
+ ],
468
+ providers: [
469
+ FooterCopyrightDirective
470
+ ]
471
+ }]
472
+ }], ctorParameters: function () { return [{ type: i1.TranslocoService }]; } });
473
+
474
+ class LoggedOutComponent {
475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: LoggedOutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
476
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: LoggedOutComponent, selector: "upd-logged-out", ngImport: i0, template: "<p>logged-out works!</p>\n", styles: [""] }); }
477
+ }
478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: LoggedOutComponent, decorators: [{
479
+ type: Component,
480
+ args: [{ selector: 'upd-logged-out', template: "<p>logged-out works!</p>\n" }]
481
+ }] });
482
+
483
+ class LoginComponent {
484
+ constructor() {
485
+ this.layout = 'centered-box';
486
+ this.username = '';
487
+ this.password = '';
488
+ this.authService = inject(AuthService);
489
+ this.layoutService = inject(LayoutService);
490
+ this.layoutService.addBodyClasses('border-top-wide', 'border-primary', 'd-flex', 'flex-column');
491
+ }
492
+ login() {
493
+ this.authService.login(this.username, this.password).subscribe();
494
+ }
495
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
496
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: LoginComponent, selector: "upd-login", ngImport: i0, template: "<div class=\"page page-center\">\n <ng-container [ngSwitch]=\"layout\">\n <div *ngSwitchCase=\"'centered-box'\" class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'box-with-picture'\" class=\"container container-normal py-4\">\n <div class=\"row align-items-center g-4\">\n <div class=\"col-lg\">\n <div class=\"container-tight\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n </div>\n <div class=\"col-lg d-none d-lg-block\">\n <img height=\"300\" class=\"d-block mx-auto upd-right-login-image\"/>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n\n<ng-template #loginCard>\n <div class=\"text-center mb-4\">\n <a href=\".\" class=\"navbar-brand navbar-brand-autodark\">\n <img height=\"36\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </div>\n <div class=\"card card-md\">\n <div class=\"card-body\">\n <h2 class=\"h2 text-center mb-4\" i18n>Login to your account</h2>\n <form action=\"./\" method=\"get\" autocomplete=\"off\" novalidate>\n <div class=\"mb-3\">\n <label class=\"form-label\">Email address</label>\n <input type=\"email\" class=\"form-control\" name=\"username\" [(ngModel)]=\"username\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">\n Password\n <span class=\"form-label-description\">\n <a href=\"./forgot-password.html\" i18n>I forgot my password</a>\n </span>\n </label>\n <div class=\"input-group input-group-flat\">\n <input type=\"password\" class=\"form-control\" name=\"password\" [(ngModel)]=\"password\">\n <span class=\"input-group-text\">\n <a href=\"#\" class=\"link-secondary\" title=\"Show password\" data-bs-toggle=\"tooltip\"><!-- Download SVG icon from http://tabler-icons.io/i/eye -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\"\n d=\"M0 0h24v24H0z\" fill=\"none\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/><path\n d=\"M22 12c-2.667 4.667 -6 7 -10 7s-7.333 -2.333 -10 -7c2.667 -4.667 6 -7 10 -7s7.333 2.333 10 7\"/></svg>\n </a>\n </span>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\"/>\n <span class=\"form-check-label\" i18n>Remember me on this device</span>\n </label>\n </div>\n <div class=\"form-footer\">\n <upd-button (clicked)=\"login()\" customClasses=\"w-100\">\n <span i18n>Sign in</span>\n </upd-button>\n </div>\n </form>\n </div>\n <div class=\"hr-text\" i18n>or</div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-github -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-github\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5\"/>\n </svg>\n Login with Github\n </a></div>\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-twitter -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-twitter\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z\"/>\n </svg>\n Login with Twitter\n </a></div>\n </div>\n </div>\n </div>\n <div class=\"text-center text-muted mt-3\">\n Don't have account yet? <a href=\"./sign-up.html\" tabindex=\"-1\" i18n>Sign up</a>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "upd-button", inputs: ["text", "model", "colorStyle", "brandColorStyle", "customClasses", "isActive", "isDisabled", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "shouldIgnoreBtnClass"], outputs: ["clicked"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
497
+ }
498
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: LoginComponent, decorators: [{
499
+ type: Component,
500
+ args: [{ selector: 'upd-login', encapsulation: ViewEncapsulation.None, template: "<div class=\"page page-center\">\n <ng-container [ngSwitch]=\"layout\">\n <div *ngSwitchCase=\"'centered-box'\" class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'box-with-picture'\" class=\"container container-normal py-4\">\n <div class=\"row align-items-center g-4\">\n <div class=\"col-lg\">\n <div class=\"container-tight\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n </div>\n <div class=\"col-lg d-none d-lg-block\">\n <img height=\"300\" class=\"d-block mx-auto upd-right-login-image\"/>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n\n<ng-template #loginCard>\n <div class=\"text-center mb-4\">\n <a href=\".\" class=\"navbar-brand navbar-brand-autodark\">\n <img height=\"36\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </div>\n <div class=\"card card-md\">\n <div class=\"card-body\">\n <h2 class=\"h2 text-center mb-4\" i18n>Login to your account</h2>\n <form action=\"./\" method=\"get\" autocomplete=\"off\" novalidate>\n <div class=\"mb-3\">\n <label class=\"form-label\">Email address</label>\n <input type=\"email\" class=\"form-control\" name=\"username\" [(ngModel)]=\"username\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">\n Password\n <span class=\"form-label-description\">\n <a href=\"./forgot-password.html\" i18n>I forgot my password</a>\n </span>\n </label>\n <div class=\"input-group input-group-flat\">\n <input type=\"password\" class=\"form-control\" name=\"password\" [(ngModel)]=\"password\">\n <span class=\"input-group-text\">\n <a href=\"#\" class=\"link-secondary\" title=\"Show password\" data-bs-toggle=\"tooltip\"><!-- Download SVG icon from http://tabler-icons.io/i/eye -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\"\n d=\"M0 0h24v24H0z\" fill=\"none\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/><path\n d=\"M22 12c-2.667 4.667 -6 7 -10 7s-7.333 -2.333 -10 -7c2.667 -4.667 6 -7 10 -7s7.333 2.333 10 7\"/></svg>\n </a>\n </span>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\"/>\n <span class=\"form-check-label\" i18n>Remember me on this device</span>\n </label>\n </div>\n <div class=\"form-footer\">\n <upd-button (clicked)=\"login()\" customClasses=\"w-100\">\n <span i18n>Sign in</span>\n </upd-button>\n </div>\n </form>\n </div>\n <div class=\"hr-text\" i18n>or</div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-github -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-github\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5\"/>\n </svg>\n Login with Github\n </a></div>\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-twitter -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-twitter\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z\"/>\n </svg>\n Login with Twitter\n </a></div>\n </div>\n </div>\n </div>\n <div class=\"text-center text-muted mt-3\">\n Don't have account yet? <a href=\"./sign-up.html\" tabindex=\"-1\" i18n>Sign up</a>\n </div>\n</ng-template>\n" }]
501
+ }], ctorParameters: function () { return []; } });
502
+
503
+ class OauthCallbackComponent {
504
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: OauthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
505
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: OauthCallbackComponent, selector: "upd-oauth-callback", ngImport: i0, template: "<p>oauth-callback works!</p>\n", styles: [""] }); }
506
+ }
507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: OauthCallbackComponent, decorators: [{
508
+ type: Component,
509
+ args: [{ selector: 'upd-oauth-callback', template: "<p>oauth-callback works!</p>\n" }]
510
+ }] });
511
+
512
+ /**
513
+ * Auth flow routes.
514
+ */
515
+ const routes = [
516
+ { path: 'oauth/callback', component: OauthCallbackComponent },
517
+ { path: 'logged-out', component: LoggedOutComponent },
518
+ { path: 'login', component: LoginComponent }
519
+ ];
520
+ class AuthFlowRoutingModule {
521
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
522
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
523
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowRoutingModule, imports: [RouterModule.forRoot(routes, { useHash: true }), RouterModule] }); }
524
+ }
525
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowRoutingModule, decorators: [{
526
+ type: NgModule,
527
+ args: [{
528
+ imports: [RouterModule.forRoot(routes, { useHash: true })],
529
+ exports: [RouterModule]
530
+ }]
531
+ }] });
532
+
533
+ class AuthFlowModule {
534
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
535
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowModule, declarations: [LoginComponent,
536
+ OauthCallbackComponent,
537
+ LoggedOutComponent], imports: [CommonModule,
538
+ AuthFlowRoutingModule,
539
+ UpdButtonModule,
540
+ FormsModule], exports: [LoginComponent,
541
+ OauthCallbackComponent,
542
+ LoggedOutComponent] }); }
543
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowModule, imports: [CommonModule,
544
+ AuthFlowRoutingModule,
545
+ UpdButtonModule,
546
+ FormsModule] }); }
547
+ }
548
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowModule, decorators: [{
549
+ type: NgModule,
550
+ args: [{
551
+ imports: [
552
+ CommonModule,
553
+ AuthFlowRoutingModule,
554
+ UpdButtonModule,
555
+ FormsModule
556
+ ],
557
+ declarations: [
558
+ LoginComponent,
559
+ OauthCallbackComponent,
560
+ LoggedOutComponent
561
+ ],
562
+ exports: [
563
+ LoginComponent,
564
+ OauthCallbackComponent,
565
+ LoggedOutComponent
566
+ ]
567
+ }]
568
+ }] });
569
+
570
+ /**
571
+ * Layout configuration.
572
+ */
573
+ class UpdLayoutConfigModel {
574
+ constructor(init) {
575
+ Object.assign(this, init);
576
+ if (this.mainLogo === undefined) {
577
+ // this.mainLogo = LogoConstants.defaultLogo; // TODO: add images
578
+ }
579
+ if (this.smallLogo === undefined) {
580
+ // this.smallLogo = LogoConstants.smallLogo;
581
+ }
582
+ if (this.loggedOutBackground === undefined) {
583
+ // this.loggedOutBackground = ImageConstants.loggedOutBackground;
584
+ }
585
+ if (this.menuTitle === undefined) {
586
+ this.menuTitle = 'UpDevs';
587
+ }
588
+ if (this.showNotificationsButton === undefined) {
589
+ this.showNotificationsButton = true;
590
+ }
591
+ if (this.showUserMenu === undefined) {
592
+ this.showUserMenu = true;
593
+ }
594
+ if (this.displayReportErrorButton === undefined) {
595
+ this.displayReportErrorButton = false;
596
+ }
597
+ }
598
+ }
599
+
600
+ /**
601
+ * Layout constants.
602
+ */
603
+ class LayoutConstants {
604
+ /**
605
+ * Key to inject the default configuration.
606
+ */
607
+ static { this.defaultOptionsKey = 'upd-layout-default-options'; }
608
+ /**
609
+ * Injection token for the default configuration.
610
+ */
611
+ static { this.defaultOptionsInjectionToken = new InjectionToken(LayoutConstants.defaultOptionsKey); }
612
+ }
613
+
614
+ /**
615
+ * Layout configuration data.
616
+ */
617
+ class UpdLayoutConfigService {
618
+ constructor(layoutConfig) {
619
+ this.config = new UpdLayoutConfigModel(layoutConfig);
620
+ }
621
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutConfigService, deps: [{ token: LayoutConstants.defaultOptionsInjectionToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
622
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutConfigService }); }
623
+ }
624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutConfigService, decorators: [{
625
+ type: Injectable
626
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
627
+ type: Inject,
628
+ args: [LayoutConstants.defaultOptionsInjectionToken]
629
+ }] }]; } });
630
+
631
+ /**
632
+ * Layout module.
633
+ */
634
+ class UpdLayoutModule {
635
+ /**
636
+ * Sets up the layout module with the provided configuration.
637
+ * @param config Configuration (See: #updsee[p:abstractions, i:UpdCoreLayoutConfig]).
638
+ */
639
+ static forRoot(config) {
640
+ return {
641
+ ngModule: UpdLayoutModule,
642
+ providers: [
643
+ { provide: LayoutConstants.defaultOptionsInjectionToken, useValue: config }
644
+ ]
645
+ };
646
+ }
647
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
648
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutModule, imports: [CommonModule,
649
+ UpdCoreLayoutModule] }); }
650
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutModule, providers: [
651
+ UpdLayoutConfigService
652
+ ], imports: [CommonModule,
653
+ UpdCoreLayoutModule] }); }
654
+ }
655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutModule, decorators: [{
656
+ type: NgModule,
657
+ args: [{
658
+ imports: [
659
+ CommonModule,
660
+ UpdCoreLayoutModule
661
+ ],
662
+ providers: [
663
+ UpdLayoutConfigService
664
+ ]
665
+ }]
666
+ }] });
667
+
668
+ /**
669
+ * Generated bundle index. Do not edit.
670
+ */
671
+
672
+ export { AuthFlowModule, AuthFlowRoutingModule, BasePageComponent, BlankLayoutComponent, BlankLayoutModule, FooterComponent, FooterCopyrightDirective, HeaderComponent, LoggedOutComponent, LoginComponent, OauthCallbackComponent, PageHeaderComponent, SidebarComponent, UpdLayoutConfigService, UpdLayoutModule, VerticalSidebarLayoutComponent, VerticalSidebarLayoutModule, routes };
673
+ //# sourceMappingURL=updevs-components-layout.mjs.map