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

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 (914) hide show
  1. package/README.md +4 -7
  2. package/assets/styles/_bootstrap-components.scss +18 -1
  3. package/assets/styles/_core.scss +9 -0
  4. package/assets/styles/_debug.scss +49 -0
  5. package/assets/styles/_props.scss +91 -0
  6. package/assets/styles/_seven-columns.scss +73 -0
  7. package/assets/styles/_updevs.scss +4 -0
  8. package/assets/styles/_utilities-marketing.scss +209 -0
  9. package/assets/styles/_utilities.scss +127 -92
  10. package/assets/styles/_variables-dark.scss +8 -6
  11. package/assets/styles/_variables.scss +325 -256
  12. package/assets/styles/helpers/_index.scss +143 -0
  13. package/assets/styles/layout/_core.scss +3 -2
  14. package/assets/styles/layout/_dark.scss +40 -35
  15. package/assets/styles/layout/_footer.scss +1 -1
  16. package/assets/styles/layout/_navbar.scss +31 -19
  17. package/assets/styles/layout/_page.scss +6 -5
  18. package/assets/styles/layout/_root.scss +26 -34
  19. package/assets/styles/marketing/_browser.scss +67 -0
  20. package/assets/styles/marketing/_core.scss +8 -0
  21. package/assets/styles/marketing/_hero.scss +70 -0
  22. package/assets/styles/marketing/_pricing.scss +111 -0
  23. package/assets/styles/marketing/_sections.scss +124 -0
  24. package/assets/styles/marketing/_shape.scss +31 -0
  25. package/assets/styles/mixins/_functions.scss +53 -0
  26. package/assets/styles/mixins/_mixins.scss +9 -9
  27. package/assets/styles/ui/_accordion.scss +165 -11
  28. package/assets/styles/ui/_alerts.scss +80 -38
  29. package/assets/styles/ui/_avatars.scss +36 -9
  30. package/assets/styles/ui/_badges.scss +47 -13
  31. package/assets/styles/ui/_button-group.scss +1 -1
  32. package/assets/styles/ui/_buttons.scss +33 -37
  33. package/assets/styles/ui/_calendars.scss +2 -2
  34. package/assets/styles/ui/_cards.scss +9 -0
  35. package/assets/styles/ui/_carousel.scss +1 -1
  36. package/assets/styles/ui/_charts.scss +1 -1
  37. package/assets/styles/ui/_chat.scss +38 -0
  38. package/assets/styles/ui/_close.scss +54 -1
  39. package/assets/styles/ui/_datagrid.scss +1 -1
  40. package/assets/styles/ui/_dropdowns.scss +3 -0
  41. package/assets/styles/ui/_empty.scss +0 -5
  42. package/assets/styles/ui/_flags.scss +2 -2
  43. package/assets/styles/ui/_forms.scss +33 -7
  44. package/assets/styles/ui/_grid.scss +1 -1
  45. package/assets/styles/ui/_icons.scss +1 -1
  46. package/assets/styles/ui/_images.scss +4 -0
  47. package/assets/styles/ui/_lists.scss +12 -16
  48. package/assets/styles/ui/_loaders.scss +1 -1
  49. package/assets/styles/ui/_markdown.scss +15 -4
  50. package/assets/styles/ui/_modals.scss +2 -2
  51. package/assets/styles/ui/_nav.scss +17 -3
  52. package/assets/styles/ui/_offcanvas.scss +2 -2
  53. package/assets/styles/ui/_pagination.scss +2 -0
  54. package/assets/styles/ui/_payments.scss +1 -1
  55. package/assets/styles/ui/_placeholder.scss +1 -1
  56. package/assets/styles/ui/_progress.scss +1 -1
  57. package/assets/styles/ui/_ribbons.scss +1 -0
  58. package/assets/styles/ui/_segmented.scss +101 -0
  59. package/assets/styles/ui/_signature.scss +15 -0
  60. package/assets/styles/ui/_social.scss +52 -0
  61. package/assets/styles/ui/_status.scss +1 -1
  62. package/assets/styles/ui/_steps.scss +5 -1
  63. package/assets/styles/ui/_switch-icon.scss +1 -1
  64. package/assets/styles/ui/_tables.scss +27 -1
  65. package/assets/styles/ui/_tags.scss +1 -1
  66. package/assets/styles/ui/_timeline.scss +1 -1
  67. package/assets/styles/ui/_toasts.scss +0 -1
  68. package/assets/styles/ui/_tracking.scss +1 -1
  69. package/assets/styles/ui/_type.scss +169 -8
  70. package/assets/styles/ui/forms/_form-check.scss +1 -1
  71. package/assets/styles/ui/forms/_form-colorinput.scss +1 -1
  72. package/assets/styles/ui/forms/_form-custom.scss +1 -1
  73. package/assets/styles/ui/forms/_form-imagecheck.scss +6 -5
  74. package/assets/styles/ui/forms/_form-selectgroup.scss +2 -2
  75. package/assets/styles/ui/typo/_hr.scss +4 -2
  76. package/assets/styles/utils/_colors.scss +72 -11
  77. package/assets/styles/utils/_opacity.scss +1 -1
  78. package/assets/styles/utils/_scroll.scss +0 -2
  79. package/assets/styles/utils/_sizing.scss +1 -1
  80. package/assets/styles/utils/_text.scss +1 -2
  81. package/assets/styles/vendor/_apexcharts.scss +52 -0
  82. package/assets/styles/vendor/_coloris.scss +72 -0
  83. package/assets/styles/vendor/_dropzone.scss +27 -0
  84. package/assets/styles/vendor/_fslightbox.scss +13 -0
  85. package/assets/styles/vendor/_jsvectormap.scss +47 -0
  86. package/assets/styles/vendor/_litepicker.scss +69 -0
  87. package/assets/styles/vendor/_nouislider.scss +49 -0
  88. package/assets/styles/vendor/_plyr.scss +3 -0
  89. package/assets/styles/vendor/_stars-rating.scss +22 -0
  90. package/assets/styles/vendor/_tom-select.scss +81 -0
  91. package/assets/styles/vendor/_turbo.scss +3 -0
  92. package/assets/styles/vendor/_typed.scss +4 -0
  93. package/assets/styles/vendor/_wysiwyg.scss +46 -0
  94. package/badge/badge-config.model.d.ts +14 -0
  95. package/badge/badge.component.d.ts +24 -0
  96. package/badge/badge.config.d.ts +12 -0
  97. package/badge/public-api.d.ts +3 -0
  98. package/badge/upd-badge.module.d.ts +8 -0
  99. package/button/button.component.d.ts +61 -0
  100. package/button/upd-button.module.d.ts +10 -0
  101. package/calendar/calendar.component.d.ts +127 -0
  102. package/calendar/components/calendar-body/calendar-body.component.d.ts +263 -0
  103. package/calendar/components/calendar-header/calendar-header.component.d.ts +57 -0
  104. package/calendar/components/calendar-month-view/calendar-month-view.component.d.ts +151 -0
  105. package/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.d.ts +10 -0
  106. package/calendar/components/calendar-year-view/calendar-year-view.component.d.ts +9 -0
  107. package/calendar/models/calendar-cell.model.d.ts +16 -0
  108. package/calendar/models/calendar-user-event.model.d.ts +4 -0
  109. package/calendar/models/date-range.model.d.ts +26 -0
  110. package/calendar/models/public-api.d.ts +2 -0
  111. package/calendar/public-api.d.ts +5 -0
  112. package/calendar/services/calendar-range-strategy.service.d.ts +35 -0
  113. package/calendar/services/calendar-signals.service.d.ts +24 -0
  114. package/calendar/services/calendar.service.d.ts +15 -0
  115. package/calendar/services/public-api.d.ts +1 -0
  116. package/calendar/tools/events-options.d.ts +12 -0
  117. package/calendar/tools/keyboard-tools.d.ts +9 -0
  118. package/calendar/tools/passive-listeners.d.ts +16 -0
  119. package/calendar/types/calendar-cell-class-function.type.d.ts +3 -0
  120. package/calendar/types/calendar-cell-css-classes.type.d.ts +3 -0
  121. package/calendar/types/calendar-view.type.d.ts +1 -0
  122. package/calendar/types/modifier-key.type.d.ts +1 -0
  123. package/calendar/types/public-api.d.ts +1 -0
  124. package/calendar/upd-calendar.module.d.ts +18 -0
  125. package/card/card.component.d.ts +54 -0
  126. package/card/directives/card-actions.directive.d.ts +7 -0
  127. package/card/directives/card-footer.directive.d.ts +7 -0
  128. package/card/directives/card-header.directive.d.ts +7 -0
  129. package/card/directives/card-image.directive.d.ts +7 -0
  130. package/card/upd-card.module.d.ts +14 -0
  131. package/drag-and-drop/drag-and-drop.component.d.ts +26 -0
  132. package/drag-and-drop/models/drag-and-drop-column.config.d.ts +8 -0
  133. package/drag-and-drop/models/drag-and-drop-column.model.d.ts +10 -0
  134. package/drag-and-drop/models/drag-and-drop-item.d.ts +7 -0
  135. package/drag-and-drop/models/drag-and-drop-item.model.d.ts +13 -0
  136. package/drag-and-drop/models/drag-and-drop.config.d.ts +6 -0
  137. package/drag-and-drop/models/public-api.d.ts +4 -0
  138. package/drag-and-drop/public-api.d.ts +3 -0
  139. package/drag-and-drop/upd-drag-and-drop.module.d.ts +9 -0
  140. package/dropdown/dropdown.component.d.ts +76 -0
  141. package/dropdown/models/dropdown-action-clicked.model.d.ts +6 -0
  142. package/dropdown/{src/models/dropdown-item.ts → models/dropdown-item.d.ts} +7 -4
  143. package/dropdown/{src/models/dropdown-item.type.ts → models/dropdown-item.type.d.ts} +1 -1
  144. package/dropdown/models/public-api.d.ts +4 -0
  145. package/dropdown/models/toolbar.type.d.ts +1 -0
  146. package/dropdown/upd-dropdown.module.d.ts +12 -0
  147. package/esm2022/badge/badge-config.model.mjs +14 -0
  148. package/esm2022/badge/badge.component.mjs +50 -0
  149. package/esm2022/badge/badge.config.mjs +2 -0
  150. package/esm2022/badge/index.mjs +2 -0
  151. package/esm2022/badge/public-api.mjs +4 -0
  152. package/esm2022/badge/upd-badge.module.mjs +24 -0
  153. package/esm2022/badge/updevs-components-badge.mjs +5 -0
  154. package/esm2022/button/button.component.mjs +157 -0
  155. package/esm2022/button/index.mjs +2 -0
  156. package/esm2022/button/public-api.mjs +3 -0
  157. package/esm2022/button/upd-button.module.mjs +32 -0
  158. package/esm2022/button/updevs-components-button.mjs +5 -0
  159. package/esm2022/calendar/assets/i18n/en.json +16 -0
  160. package/esm2022/calendar/assets/i18n/pt.json +16 -0
  161. package/esm2022/calendar/calendar.component.mjs +247 -0
  162. package/esm2022/calendar/components/calendar-body/calendar-body.component.mjs +515 -0
  163. package/esm2022/calendar/components/calendar-header/calendar-header.component.mjs +144 -0
  164. package/esm2022/calendar/components/calendar-month-view/calendar-month-view.component.mjs +423 -0
  165. package/esm2022/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.mjs +18 -0
  166. package/esm2022/calendar/components/calendar-year-view/calendar-year-view.component.mjs +17 -0
  167. package/esm2022/calendar/index.mjs +2 -0
  168. package/esm2022/calendar/models/calendar-cell.model.mjs +18 -0
  169. package/esm2022/calendar/models/calendar-user-event.model.mjs +2 -0
  170. package/esm2022/calendar/models/date-range.model.mjs +18 -0
  171. package/esm2022/calendar/models/public-api.mjs +3 -0
  172. package/esm2022/calendar/public-api.mjs +6 -0
  173. package/esm2022/calendar/services/calendar-range-strategy.service.mjs +99 -0
  174. package/esm2022/calendar/services/calendar-signals.service.mjs +47 -0
  175. package/esm2022/calendar/services/calendar.service.mjs +40 -0
  176. package/esm2022/calendar/services/public-api.mjs +2 -0
  177. package/esm2022/calendar/tools/events-options.mjs +14 -0
  178. package/esm2022/calendar/tools/keyboard-tools.mjs +14 -0
  179. package/esm2022/calendar/tools/passive-listeners.mjs +29 -0
  180. package/esm2022/calendar/types/calendar-cell-class-function.type.mjs +2 -0
  181. package/esm2022/calendar/types/calendar-cell-css-classes.type.mjs +2 -0
  182. package/esm2022/calendar/types/calendar-view.type.mjs +2 -0
  183. package/esm2022/calendar/types/modifier-key.type.mjs +2 -0
  184. package/esm2022/calendar/types/public-api.mjs +2 -0
  185. package/esm2022/calendar/upd-calendar.module.mjs +70 -0
  186. package/esm2022/calendar/updevs-components-calendar.mjs +5 -0
  187. package/esm2022/card/card.component.mjs +136 -0
  188. package/esm2022/card/directives/card-actions.directive.mjs +16 -0
  189. package/esm2022/card/directives/card-footer.directive.mjs +16 -0
  190. package/esm2022/card/directives/card-header.directive.mjs +16 -0
  191. package/esm2022/card/directives/card-image.directive.mjs +16 -0
  192. package/esm2022/card/directives/public-api.mjs +5 -0
  193. package/esm2022/card/index.mjs +2 -0
  194. package/esm2022/card/public-api.mjs +4 -0
  195. package/esm2022/card/types/card-state.type.mjs +2 -0
  196. package/esm2022/card/types/card-style.type.mjs +2 -0
  197. package/esm2022/card/types/hover-effect.type.mjs +2 -0
  198. package/esm2022/card/types/ribbon-style.type.mjs +2 -0
  199. package/esm2022/card/types/status-position.type.mjs +2 -0
  200. package/esm2022/card/upd-card.module.mjs +50 -0
  201. package/esm2022/card/updevs-components-card.mjs +5 -0
  202. package/esm2022/drag-and-drop/drag-and-drop.component.mjs +134 -0
  203. package/esm2022/drag-and-drop/index.mjs +2 -0
  204. package/esm2022/drag-and-drop/models/drag-and-drop-column.config.mjs +2 -0
  205. package/esm2022/drag-and-drop/models/drag-and-drop-column.model.mjs +9 -0
  206. package/esm2022/drag-and-drop/models/drag-and-drop-item.mjs +2 -0
  207. package/esm2022/drag-and-drop/models/drag-and-drop-item.model.mjs +14 -0
  208. package/esm2022/drag-and-drop/models/drag-and-drop.config.mjs +2 -0
  209. package/esm2022/drag-and-drop/models/public-api.mjs +5 -0
  210. package/esm2022/drag-and-drop/public-api.mjs +4 -0
  211. package/esm2022/drag-and-drop/upd-drag-and-drop.module.mjs +28 -0
  212. package/esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs +5 -0
  213. package/esm2022/dropdown/dropdown.component.mjs +182 -0
  214. package/esm2022/dropdown/index.mjs +2 -0
  215. package/esm2022/dropdown/models/dropdown-action-clicked.model.mjs +2 -0
  216. package/esm2022/dropdown/models/dropdown-item.mjs +2 -0
  217. package/esm2022/dropdown/models/dropdown-item.type.mjs +2 -0
  218. package/esm2022/dropdown/models/public-api.mjs +5 -0
  219. package/esm2022/dropdown/models/toolbar.type.mjs +2 -0
  220. package/esm2022/dropdown/public-api.mjs +4 -0
  221. package/esm2022/dropdown/upd-dropdown.module.mjs +40 -0
  222. package/esm2022/dropdown/updevs-components-dropdown.mjs +5 -0
  223. package/esm2022/form/assets/i18n/en.json +17 -0
  224. package/esm2022/form/assets/i18n/pt.json +17 -0
  225. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +127 -0
  226. package/esm2022/form/form.component.mjs +122 -0
  227. package/esm2022/form/index.mjs +2 -0
  228. package/esm2022/form/models/checkbox-field.model.mjs +2 -0
  229. package/esm2022/form/models/checkbox-group-field.model.mjs +2 -0
  230. package/esm2022/form/models/dynamic-field.model.mjs +2 -0
  231. package/esm2022/form/models/enums/dynamic-field.type.mjs +14 -0
  232. package/esm2022/form/models/enums/public-api.mjs +2 -0
  233. package/esm2022/form/models/file-upload-field.model.mjs +2 -0
  234. package/esm2022/form/models/form-config.mjs +2 -0
  235. package/esm2022/form/models/form-row.model.mjs +2 -0
  236. package/esm2022/form/models/input-field.model.mjs +2 -0
  237. package/esm2022/form/models/public-api.mjs +15 -0
  238. package/esm2022/form/models/radio-field.model.mjs +2 -0
  239. package/esm2022/form/models/radio-group-field.model.mjs +2 -0
  240. package/esm2022/form/models/select-field.model.mjs +2 -0
  241. package/esm2022/form/models/single-select-field.model.mjs +2 -0
  242. package/esm2022/form/models/textarea-field.model.mjs +2 -0
  243. package/esm2022/form/models/validator-config.mjs +2 -0
  244. package/esm2022/form/public-api.mjs +4 -0
  245. package/esm2022/form/tools/errors-helper.mjs +54 -0
  246. package/esm2022/form/upd-form.module.mjs +84 -0
  247. package/esm2022/form/updevs-components-form.mjs +5 -0
  248. package/esm2022/form-controls/abstractions/base-control.mjs +46 -0
  249. package/esm2022/form-controls/abstractions/index.mjs +2 -0
  250. package/esm2022/form-controls/abstractions/public-api.mjs +2 -0
  251. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +5 -0
  252. package/esm2022/form-controls/checkbox/checkbox.component.mjs +51 -0
  253. package/esm2022/form-controls/checkbox/index.mjs +2 -0
  254. package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
  255. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +32 -0
  256. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
  257. package/esm2022/form-controls/date-picker/date-picker.component.mjs +147 -0
  258. package/esm2022/form-controls/date-picker/index.mjs +2 -0
  259. package/esm2022/form-controls/date-picker/public-api.mjs +3 -0
  260. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +40 -0
  261. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +5 -0
  262. package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
  263. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
  264. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
  265. package/esm2022/form-controls/file-upload/file-upload.component.mjs +169 -0
  266. package/esm2022/form-controls/file-upload/index.mjs +2 -0
  267. package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
  268. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +48 -0
  269. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
  270. package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
  271. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
  272. package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
  273. package/esm2022/form-controls/input/index.mjs +2 -0
  274. package/esm2022/form-controls/input/input.component.mjs +185 -0
  275. package/esm2022/form-controls/input/public-api.mjs +5 -0
  276. package/esm2022/form-controls/input/types/input.type.mjs +2 -0
  277. package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
  278. package/esm2022/form-controls/input/types/public-api.mjs +3 -0
  279. package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
  280. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
  281. package/esm2022/form-controls/radio/index.mjs +2 -0
  282. package/esm2022/form-controls/radio/public-api.mjs +3 -0
  283. package/esm2022/form-controls/radio/radio.component.mjs +51 -0
  284. package/esm2022/form-controls/radio/upd-radio.module.mjs +32 -0
  285. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
  286. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +76 -0
  287. package/esm2022/form-controls/select/components/single/select.component.mjs +72 -0
  288. package/esm2022/form-controls/select/index.mjs +2 -0
  289. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +215 -0
  290. package/esm2022/form-controls/select/models/defaults.mjs +8 -0
  291. package/esm2022/form-controls/select/models/public-api.mjs +3 -0
  292. package/esm2022/form-controls/select/models/select-item.mjs +2 -0
  293. package/esm2022/form-controls/select/public-api.mjs +5 -0
  294. package/esm2022/form-controls/select/upd-select.module.mjs +57 -0
  295. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
  296. package/esm2022/form-controls/textarea/index.mjs +2 -0
  297. package/esm2022/form-controls/textarea/public-api.mjs +3 -0
  298. package/esm2022/form-controls/textarea/textarea.component.mjs +44 -0
  299. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
  300. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
  301. package/esm2022/form-controls/time-picker/index.mjs +2 -0
  302. package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
  303. package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
  304. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +124 -0
  305. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +61 -0
  306. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
  307. package/esm2022/index.mjs +2 -0
  308. package/esm2022/layout/abstractions/base-page.component.mjs +23 -0
  309. package/esm2022/layout/abstractions/base.layout.mjs +31 -0
  310. package/esm2022/layout/abstractions/public-api.mjs +2 -0
  311. package/esm2022/layout/assets/i18n/en.json +27 -0
  312. package/esm2022/layout/assets/i18n/pt.json +27 -0
  313. package/esm2022/layout/index.mjs +2 -0
  314. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +22 -0
  315. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +50 -0
  316. package/esm2022/layout/layouts/public-api.mjs +5 -0
  317. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +17 -0
  318. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +78 -0
  319. package/esm2022/layout/models/login-page-config.model.mjs +20 -0
  320. package/esm2022/layout/models/login-page.config.mjs +2 -0
  321. package/esm2022/layout/models/public-api.mjs +3 -0
  322. package/esm2022/layout/models/security-layout-config.model.mjs +10 -0
  323. package/esm2022/layout/models/security-layout.config.mjs +2 -0
  324. package/esm2022/layout/models/upd-layout-config.model.mjs +24 -0
  325. package/esm2022/layout/models/upd-layout.config.mjs +2 -0
  326. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
  327. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +73 -0
  328. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
  329. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +110 -0
  330. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
  331. package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
  332. package/esm2022/layout/pages/public-api.mjs +2 -0
  333. package/esm2022/layout/partials/footer/footer.component.mjs +52 -0
  334. package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
  335. package/esm2022/layout/partials/footer/public-api.mjs +3 -0
  336. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  337. package/esm2022/layout/partials/header/header.component.mjs +130 -0
  338. package/esm2022/layout/partials/header/header.module.mjs +40 -0
  339. package/esm2022/layout/partials/header/public-api.mjs +4 -0
  340. package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
  341. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  342. package/esm2022/layout/partials/public-api.mjs +5 -0
  343. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  344. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +195 -0
  345. package/esm2022/layout/public-api.mjs +8 -0
  346. package/esm2022/layout/services/public-api.mjs +2 -0
  347. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  348. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  349. package/esm2022/layout/upd-layout.module.mjs +47 -0
  350. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  351. package/esm2022/lib/index.mjs +2 -0
  352. package/esm2022/lib/models/public-api.mjs +2 -0
  353. package/esm2022/lib/models/row-column-size.mjs +2 -0
  354. package/esm2022/lib/public-api.mjs +5 -0
  355. package/esm2022/lib/tools/column-size.helper.mjs +12 -0
  356. package/esm2022/lib/tools/public-api.mjs +2 -0
  357. package/esm2022/lib/types/component-size.type.mjs +2 -0
  358. package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
  359. package/esm2022/lib/types/public-api.mjs +4 -0
  360. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  361. package/esm2022/lib/upd-components.module.mjs +14 -0
  362. package/esm2022/link/index.mjs +2 -0
  363. package/esm2022/link/link.component.mjs +51 -0
  364. package/esm2022/link/public-api.mjs +4 -0
  365. package/esm2022/link/target.type.mjs +2 -0
  366. package/esm2022/link/upd-link.module.mjs +24 -0
  367. package/esm2022/link/updevs-components-link.mjs +5 -0
  368. package/esm2022/list/assets/i18n/en.json +9 -0
  369. package/esm2022/list/assets/i18n/pt.json +9 -0
  370. package/esm2022/list/index.mjs +2 -0
  371. package/esm2022/list/list.component.mjs +113 -0
  372. package/esm2022/list/models/badge-position.type.mjs +2 -0
  373. package/esm2022/list/models/list-item.mjs +2 -0
  374. package/esm2022/list/models/list-item.model.mjs +15 -0
  375. package/esm2022/list/models/public-api.mjs +3 -0
  376. package/esm2022/list/public-api.mjs +4 -0
  377. package/esm2022/list/upd-list.module.mjs +44 -0
  378. package/esm2022/list/updevs-components-list.mjs +5 -0
  379. package/esm2022/modal/assets/i18n/en.json +17 -0
  380. package/esm2022/modal/assets/i18n/pt.json +17 -0
  381. package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
  382. package/esm2022/modal/index.mjs +2 -0
  383. package/esm2022/modal/models/base.modal.mjs +14 -0
  384. package/esm2022/modal/models/modal-config.model.mjs +20 -0
  385. package/esm2022/modal/models/modal-ref.mjs +2 -0
  386. package/esm2022/modal/models/modal.config.mjs +2 -0
  387. package/esm2022/modal/models/public-api.mjs +4 -0
  388. package/esm2022/modal/public-api.mjs +4 -0
  389. package/esm2022/modal/services/modal-alert.service.mjs +99 -0
  390. package/esm2022/modal/services/modal.service.mjs +30 -0
  391. package/esm2022/modal/services/public-api.mjs +3 -0
  392. package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
  393. package/esm2022/modal/types/modal-size.type.mjs +2 -0
  394. package/esm2022/modal/upd-modal.module.mjs +90 -0
  395. package/esm2022/modal/updevs-components-modal.mjs +5 -0
  396. package/esm2022/paginator/assets/i18n/en.json +15 -0
  397. package/esm2022/paginator/assets/i18n/pt.json +15 -0
  398. package/esm2022/paginator/index.mjs +2 -0
  399. package/esm2022/paginator/paginator.component.mjs +66 -0
  400. package/esm2022/paginator/public-api.mjs +3 -0
  401. package/esm2022/paginator/upd-paginator.module.mjs +47 -0
  402. package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
  403. package/esm2022/popover/index.mjs +2 -0
  404. package/esm2022/popover/popover.component.mjs +65 -0
  405. package/esm2022/popover/popover.directive.mjs +129 -0
  406. package/esm2022/popover/public-api.mjs +4 -0
  407. package/esm2022/popover/upd-popover.module.mjs +29 -0
  408. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  409. package/esm2022/public-api.mjs +2 -0
  410. package/esm2022/table/abstractions/base-column.model.mjs +52 -0
  411. package/esm2022/table/abstractions/base.column.mjs +98 -0
  412. package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
  413. package/esm2022/table/abstractions/public-api.mjs +3 -0
  414. package/esm2022/table/assets/i18n/en.json +74 -0
  415. package/esm2022/table/assets/i18n/pt.json +74 -0
  416. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
  417. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
  418. package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
  419. package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
  420. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
  421. package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
  422. package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
  423. package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
  424. package/esm2022/table/directives/public-api.mjs +2 -0
  425. package/esm2022/table/directives/table-column.directive.mjs +52 -0
  426. package/esm2022/table/index.mjs +2 -0
  427. package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
  428. package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
  429. package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
  430. package/esm2022/table/models/columns/image-column.model.mjs +11 -0
  431. package/esm2022/table/models/columns/number-column.model.mjs +17 -0
  432. package/esm2022/table/models/columns/public-api.mjs +7 -0
  433. package/esm2022/table/models/columns/text-column.model.mjs +11 -0
  434. package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
  435. package/esm2022/table/models/enums/public-api.mjs +2 -0
  436. package/esm2022/table/models/filter-item.model.mjs +2 -0
  437. package/esm2022/table/models/filter-operand.config.mjs +2 -0
  438. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
  439. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
  440. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
  441. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
  442. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
  443. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
  444. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
  445. package/esm2022/table/models/public-api.mjs +5 -0
  446. package/esm2022/table/models/saved-view.model.mjs +2 -0
  447. package/esm2022/table/models/table-config.model.mjs +29 -0
  448. package/esm2022/table/models/table.config.mjs +2 -0
  449. package/esm2022/table/models/upd-table-config.model.mjs +9 -0
  450. package/esm2022/table/models/upd-table.config.mjs +2 -0
  451. package/esm2022/table/public-api.mjs +6 -0
  452. package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
  453. package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
  454. package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
  455. package/esm2022/table/services/upd-table-config.service.mjs +18 -0
  456. package/esm2022/table/table.component.mjs +442 -0
  457. package/esm2022/table/tools/filters.tools.mjs +48 -0
  458. package/esm2022/table/tools/table.constants.mjs +15 -0
  459. package/esm2022/table/upd-table.module.mjs +150 -0
  460. package/esm2022/table/updevs-components-table.mjs +5 -0
  461. package/esm2022/updevs-components.mjs +5 -0
  462. package/fesm2022/updevs-components-badge.mjs +91 -0
  463. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  464. package/fesm2022/updevs-components-button.mjs +193 -0
  465. package/fesm2022/updevs-components-button.mjs.map +1 -0
  466. package/fesm2022/updevs-components-calendar.mjs +1712 -0
  467. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  468. package/fesm2022/updevs-components-card.mjs +238 -0
  469. package/fesm2022/updevs-components-card.mjs.map +1 -0
  470. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  471. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  472. package/fesm2022/updevs-components-dropdown.mjs +226 -0
  473. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  474. package/fesm2022/updevs-components-form-controls-abstractions.mjs +53 -0
  475. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  476. package/fesm2022/updevs-components-form-controls-checkbox.mjs +87 -0
  477. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  478. package/fesm2022/updevs-components-form-controls-date-picker.mjs +190 -0
  479. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  480. package/fesm2022/updevs-components-form-controls-file-upload.mjs +264 -0
  481. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  482. package/fesm2022/updevs-components-form-controls-input.mjs +259 -0
  483. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  484. package/fesm2022/updevs-components-form-controls-radio.mjs +87 -0
  485. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  486. package/fesm2022/updevs-components-form-controls-select.mjs +417 -0
  487. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  488. package/fesm2022/updevs-components-form-controls-textarea.mjs +72 -0
  489. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  490. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  491. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  492. package/fesm2022/updevs-components-form.mjs +436 -0
  493. package/fesm2022/updevs-components-form.mjs.map +1 -0
  494. package/fesm2022/updevs-components-layout.mjs +1005 -0
  495. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  496. package/fesm2022/updevs-components-link.mjs +79 -0
  497. package/fesm2022/updevs-components-link.mjs.map +1 -0
  498. package/fesm2022/updevs-components-list.mjs +206 -0
  499. package/fesm2022/updevs-components-list.mjs.map +1 -0
  500. package/fesm2022/updevs-components-modal.mjs +504 -0
  501. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  502. package/fesm2022/updevs-components-paginator.mjs +160 -0
  503. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  504. package/fesm2022/updevs-components-popover.mjs +223 -0
  505. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  506. package/fesm2022/updevs-components-table.mjs +1771 -0
  507. package/fesm2022/updevs-components-table.mjs.map +1 -0
  508. package/fesm2022/updevs-components.mjs +33 -0
  509. package/fesm2022/updevs-components.mjs.map +1 -0
  510. package/form/components/dynamic-field/dynamic-field.component.d.ts +55 -0
  511. package/form/form.component.d.ts +60 -0
  512. package/form/models/checkbox-field.model.d.ts +4 -0
  513. package/form/models/checkbox-group-field.model.d.ts +6 -0
  514. package/form/models/dynamic-field.model.d.ts +28 -0
  515. package/form/models/enums/dynamic-field.type.d.ts +12 -0
  516. package/form/models/enums/public-api.d.ts +1 -0
  517. package/form/models/file-upload-field.model.d.ts +16 -0
  518. package/form/models/form-config.d.ts +2 -0
  519. package/form/models/form-row.model.d.ts +10 -0
  520. package/form/models/input-field.model.d.ts +9 -0
  521. package/form/models/public-api.d.ts +14 -0
  522. package/form/models/radio-field.model.d.ts +4 -0
  523. package/form/models/radio-group-field.model.d.ts +6 -0
  524. package/form/models/select-field.model.d.ts +28 -0
  525. package/form/models/single-select-field.model.d.ts +4 -0
  526. package/form/models/textarea-field.model.d.ts +10 -0
  527. package/form/models/validator-config.d.ts +5 -0
  528. package/form/public-api.d.ts +3 -0
  529. package/form/tools/errors-helper.d.ts +11 -0
  530. package/form/upd-form.module.d.ts +22 -0
  531. package/form-controls/abstractions/base-control.d.ts +29 -0
  532. package/form-controls/abstractions/index.d.ts +2 -0
  533. package/form-controls/abstractions/public-api.d.ts +2 -0
  534. package/form-controls/checkbox/checkbox.component.d.ts +19 -0
  535. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  536. package/form-controls/checkbox/upd-checkbox.module.d.ts +10 -0
  537. package/form-controls/date-picker/date-picker.component.d.ts +87 -0
  538. package/form-controls/date-picker/public-api.d.ts +2 -0
  539. package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
  540. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  541. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  542. package/form-controls/file-upload/public-api.d.ts +3 -0
  543. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  544. package/form-controls/input/directives/input-append.directive.d.ts +7 -0
  545. package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
  546. package/form-controls/input/input.component.d.ts +64 -0
  547. package/form-controls/input/upd-input.module.d.ts +13 -0
  548. package/form-controls/radio/radio.component.d.ts +17 -0
  549. package/form-controls/radio/upd-radio.module.d.ts +10 -0
  550. package/form-controls/select/components/multiple/select-multiple.component.d.ts +25 -0
  551. package/form-controls/select/components/single/select.component.d.ts +26 -0
  552. package/form-controls/select/models/abstractions/base-select.component.d.ts +77 -0
  553. package/form-controls/select/models/defaults.d.ts +8 -0
  554. package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  555. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  556. package/form-controls/select/upd-select.module.d.ts +16 -0
  557. package/form-controls/textarea/textarea.component.d.ts +19 -0
  558. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  559. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  560. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  561. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  562. package/index.d.ts +2 -0
  563. package/layout/abstractions/base-page.component.d.ts +12 -0
  564. package/layout/abstractions/base.layout.d.ts +15 -0
  565. package/layout/index.d.ts +1 -0
  566. package/layout/layouts/blank-layout/blank-layout.component.d.ts +9 -0
  567. package/layout/layouts/blank-layout/blank-layout.module.d.ts +15 -0
  568. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +6 -0
  569. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +21 -0
  570. package/layout/models/login-page-config.model.d.ts +46 -0
  571. package/layout/models/login-page.config.d.ts +44 -0
  572. package/layout/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  573. package/layout/models/security-layout-config.model.d.ts +12 -0
  574. package/layout/models/security-layout.config.d.ts +10 -0
  575. package/layout/models/upd-layout-config.model.d.ts +48 -0
  576. package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +9 -0
  577. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  578. package/layout/pages/auth-flow/auth-flow.module.d.ts +20 -0
  579. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  580. package/layout/pages/auth-flow/login/login.component.d.ts +26 -0
  581. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  582. package/layout/partials/footer/footer.component.d.ts +34 -0
  583. package/layout/partials/footer/footer.module.d.ts +9 -0
  584. package/layout/partials/footer/public-api.d.ts +2 -0
  585. package/layout/partials/header/header.component.d.ts +48 -0
  586. package/layout/partials/header/header.module.d.ts +12 -0
  587. package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +1 -0
  588. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  589. package/layout/partials/sidebar/sidebar.component.d.ts +30 -0
  590. package/layout/services/upd-layout-config.service.d.ts +15 -0
  591. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  592. package/layout/upd-layout.module.d.ts +19 -0
  593. package/lib/index.d.ts +2 -0
  594. package/lib/models/public-api.d.ts +2 -0
  595. package/lib/models/row-column-size.d.ts +6 -0
  596. package/lib/public-api.d.ts +5 -0
  597. package/lib/tools/column-size.helper.d.ts +6 -0
  598. package/lib/tools/public-api.d.ts +2 -0
  599. package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +1 -0
  600. package/lib/types/horizontal-vertical.type.d.ts +2 -0
  601. package/lib/types/public-api.d.ts +4 -0
  602. package/lib/types/validation-status.type.d.ts +2 -0
  603. package/lib/upd-components.module.d.ts +7 -0
  604. package/link/index.d.ts +1 -0
  605. package/link/link.component.d.ts +22 -0
  606. package/link/upd-link.module.d.ts +8 -0
  607. package/list/index.d.ts +1 -0
  608. package/list/list.component.d.ts +46 -0
  609. package/list/{src/models/list-item.ts → models/list-item.d.ts} +3 -4
  610. package/list/models/list-item.model.d.ts +25 -0
  611. package/list/upd-list.module.d.ts +13 -0
  612. package/modal/components/modal-container/modal-container.component.d.ts +74 -0
  613. package/modal/index.d.ts +1 -0
  614. package/modal/models/base.modal.d.ts +8 -0
  615. package/modal/models/modal-config.model.d.ts +32 -0
  616. package/modal/models/modal-ref.d.ts +6 -0
  617. package/modal/models/modal.config.d.ts +30 -0
  618. package/modal/models/public-api.d.ts +3 -0
  619. package/modal/public-api.d.ts +3 -0
  620. package/modal/services/modal-alert.service.d.ts +22 -0
  621. package/modal/services/modal.service.d.ts +12 -0
  622. package/modal/services/public-api.d.ts +2 -0
  623. package/modal/types/modal-footer-style.type.d.ts +1 -0
  624. package/modal/types/modal-size.type.d.ts +1 -0
  625. package/modal/upd-modal.module.d.ts +18 -0
  626. package/package.json +169 -21
  627. package/paginator/index.d.ts +1 -0
  628. package/paginator/paginator.component.d.ts +42 -0
  629. package/paginator/public-api.d.ts +2 -0
  630. package/paginator/upd-paginator.module.d.ts +14 -0
  631. package/popover/index.d.ts +1 -0
  632. package/popover/popover.component.d.ts +22 -0
  633. package/popover/popover.directive.d.ts +33 -0
  634. package/popover/upd-popover.module.d.ts +9 -0
  635. package/public-api.d.ts +2 -0
  636. package/table/abstractions/base-column.model.d.ts +31 -0
  637. package/table/abstractions/base.column.d.ts +22 -0
  638. package/table/abstractions/filters-operands.service.d.ts +8 -0
  639. package/table/abstractions/public-api.d.ts +2 -0
  640. package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
  641. package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
  642. package/table/components/columns/number-column/number-column.component.d.ts +7 -0
  643. package/table/components/columns/text-column/text-column.component.d.ts +9 -0
  644. package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
  645. package/table/components/filter-row/filter-row.component.d.ts +40 -0
  646. package/table/components/save-search/save-search.component.d.ts +17 -0
  647. package/table/components/search-section/search-section.component.d.ts +36 -0
  648. package/table/directives/public-api.d.ts +1 -0
  649. package/table/directives/table-column.directive.d.ts +14 -0
  650. package/table/index.d.ts +1 -0
  651. package/table/models/columns/boolean-column.model.d.ts +15 -0
  652. package/table/models/columns/date-time-column.model.d.ts +8 -0
  653. package/table/models/columns/guid-column.model.d.ts +4 -0
  654. package/table/models/columns/image-column.model.d.ts +6 -0
  655. package/table/models/columns/number-column.model.d.ts +8 -0
  656. package/table/models/columns/public-api.d.ts +6 -0
  657. package/table/models/columns/text-column.model.d.ts +6 -0
  658. package/table/models/enums/column-type.enum.d.ts +13 -0
  659. package/table/models/enums/public-api.d.ts +1 -0
  660. package/table/models/filter-item.model.d.ts +6 -0
  661. package/table/models/filter-operand.config.d.ts +9 -0
  662. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
  663. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
  664. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
  665. package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
  666. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
  667. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
  668. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
  669. package/table/models/public-api.d.ts +4 -0
  670. package/table/models/saved-view.model.d.ts +11 -0
  671. package/table/models/table-config.model.d.ts +33 -0
  672. package/table/models/table.config.d.ts +31 -0
  673. package/table/models/upd-table-config.model.d.ts +6 -0
  674. package/table/models/upd-table.config.d.ts +6 -0
  675. package/table/public-api.d.ts +5 -0
  676. package/table/services/default-filters-operands.service.d.ts +17 -0
  677. package/table/services/storages/saved-views.storage.d.ts +19 -0
  678. package/table/services/stores/filters-operands.store.d.ts +11 -0
  679. package/table/services/upd-table-config.service.d.ts +12 -0
  680. package/table/table.component.d.ts +81 -0
  681. package/table/tools/filters.tools.d.ts +9 -0
  682. package/table/tools/table.constants.d.ts +15 -0
  683. package/table/upd-table.module.d.ts +40 -0
  684. package/CHANGELOG.md +0 -8
  685. package/button/index.ts +0 -1
  686. package/button/ng-package.json +0 -7
  687. package/button/src/button.component.html +0 -8
  688. package/button/src/button.component.scss +0 -5
  689. package/button/src/button.component.spec.ts +0 -23
  690. package/button/src/button.component.ts +0 -154
  691. package/button/src/upd-button.module.ts +0 -17
  692. package/card/index.ts +0 -1
  693. package/card/ng-package.json +0 -7
  694. package/card/src/card.component.html +0 -105
  695. package/card/src/card.component.scss +0 -47
  696. package/card/src/card.component.spec.ts +0 -23
  697. package/card/src/card.component.ts +0 -112
  698. package/card/src/directives/card-actions.directive.spec.ts +0 -8
  699. package/card/src/directives/card-actions.directive.ts +0 -11
  700. package/card/src/directives/card-footer.directive.spec.ts +0 -8
  701. package/card/src/directives/card-footer.directive.ts +0 -11
  702. package/card/src/directives/card-header.directive.spec.ts +0 -8
  703. package/card/src/directives/card-header.directive.ts +0 -11
  704. package/card/src/directives/card-image.directive.spec.ts +0 -8
  705. package/card/src/directives/card-image.directive.ts +0 -11
  706. package/card/src/types/public-api.ts +0 -5
  707. package/card/src/upd-card.module.ts +0 -32
  708. package/dropdown/index.ts +0 -1
  709. package/dropdown/ng-package.json +0 -7
  710. package/dropdown/src/dropdown.component.html +0 -32
  711. package/dropdown/src/dropdown.component.scss +0 -19
  712. package/dropdown/src/dropdown.component.spec.ts +0 -23
  713. package/dropdown/src/dropdown.component.ts +0 -182
  714. package/dropdown/src/models/public-api.ts +0 -2
  715. package/dropdown/src/upd-dropdown.module.ts +0 -25
  716. package/form/index.ts +0 -1
  717. package/form/ng-package.json +0 -7
  718. package/form/src/form.module.ts +0 -10
  719. package/form/src/public-api.ts +0 -1
  720. package/form-controls/checkbox/index.ts +0 -1
  721. package/form-controls/checkbox/ng-package.json +0 -7
  722. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  723. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  724. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  725. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  726. package/form-controls/input/index.ts +0 -1
  727. package/form-controls/input/ng-package.json +0 -7
  728. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  729. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  730. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  731. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  732. package/form-controls/input/src/input.component.html +0 -82
  733. package/form-controls/input/src/input.component.scss +0 -13
  734. package/form-controls/input/src/input.component.spec.ts +0 -23
  735. package/form-controls/input/src/input.component.ts +0 -124
  736. package/form-controls/input/src/upd-input.module.ts +0 -29
  737. package/form-controls/radio/index.ts +0 -1
  738. package/form-controls/radio/ng-package.json +0 -7
  739. package/form-controls/radio/src/radio.component.html +0 -7
  740. package/form-controls/radio/src/radio.component.scss +0 -0
  741. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  742. package/form-controls/radio/src/radio.component.ts +0 -47
  743. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  744. package/form-controls/select/index.ts +0 -1
  745. package/form-controls/select/ng-package.json +0 -7
  746. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  747. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  748. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  749. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  750. package/form-controls/select/src/components/shared.scss +0 -40
  751. package/form-controls/select/src/components/single/select.component.html +0 -53
  752. package/form-controls/select/src/components/single/select.component.scss +0 -3
  753. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  754. package/form-controls/select/src/components/single/select.component.ts +0 -58
  755. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  756. package/form-controls/select/src/upd-select.module.ts +0 -32
  757. package/form-controls/textarea/index.ts +0 -1
  758. package/form-controls/textarea/ng-package.json +0 -7
  759. package/form-controls/textarea/src/textarea.component.html +0 -8
  760. package/form-controls/textarea/src/textarea.component.scss +0 -0
  761. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  762. package/form-controls/textarea/src/textarea.component.ts +0 -47
  763. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  764. package/form-controls/time-picker/index.ts +0 -1
  765. package/form-controls/time-picker/ng-package.json +0 -7
  766. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  767. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  768. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  769. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  770. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  771. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  772. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  773. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  774. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  775. package/index.ts +0 -1
  776. package/layout/index.ts +0 -1
  777. package/layout/ng-package.json +0 -7
  778. package/layout/src/abstractions/base-page.component.ts +0 -21
  779. package/layout/src/assets/i18n/en.json +0 -5
  780. package/layout/src/assets/i18n/pt.json +0 -5
  781. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  782. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  783. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  784. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  785. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  786. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  787. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  788. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  789. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  790. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  791. package/layout/src/models/upd-layout-config.model.ts +0 -71
  792. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  793. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  794. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  795. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  796. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  797. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  798. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  799. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  800. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  801. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  802. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  803. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  804. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  805. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  806. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  807. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  808. package/layout/src/partials/footer/footer.component.html +0 -30
  809. package/layout/src/partials/footer/footer.component.scss +0 -0
  810. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  811. package/layout/src/partials/footer/footer.component.ts +0 -73
  812. package/layout/src/partials/footer/public-api.ts +0 -2
  813. package/layout/src/partials/header/header.component.html +0 -163
  814. package/layout/src/partials/header/header.component.scss +0 -0
  815. package/layout/src/partials/header/header.component.spec.ts +0 -23
  816. package/layout/src/partials/header/header.component.ts +0 -86
  817. package/layout/src/partials/page-header/page-header.component.html +0 -19
  818. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  819. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  820. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  821. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  822. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  823. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  824. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  825. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  826. package/layout/src/services/upd-layout-config.service.ts +0 -20
  827. package/layout/src/upd-layout.module.ts +0 -34
  828. package/link/index.ts +0 -1
  829. package/link/ng-package.json +0 -7
  830. package/link/src/link.component.html +0 -3
  831. package/link/src/link.component.scss +0 -3
  832. package/link/src/link.component.spec.ts +0 -23
  833. package/link/src/link.component.ts +0 -48
  834. package/link/src/upd-link.module.ts +0 -17
  835. package/list/index.ts +0 -1
  836. package/list/ng-package.json +0 -7
  837. package/list/src/assets/i18n/en.json +0 -5
  838. package/list/src/assets/i18n/pt.json +0 -5
  839. package/list/src/list.component.html +0 -58
  840. package/list/src/list.component.scss +0 -21
  841. package/list/src/list.component.spec.ts +0 -23
  842. package/list/src/list.component.ts +0 -147
  843. package/list/src/models/list-item.model.ts +0 -35
  844. package/list/src/upd-list.module.ts +0 -30
  845. package/ng-package.json +0 -10
  846. package/popover/index.ts +0 -1
  847. package/popover/ng-package.json +0 -7
  848. package/popover/src/popover.component.html +0 -20
  849. package/popover/src/popover.component.scss +0 -8
  850. package/popover/src/popover.component.spec.ts +0 -23
  851. package/popover/src/popover.component.ts +0 -53
  852. package/popover/src/popover.directive.spec.ts +0 -8
  853. package/popover/src/popover.directive.ts +0 -128
  854. package/popover/src/upd-popover.module.ts +0 -20
  855. package/src/lib/public-api.ts +0 -2
  856. package/src/lib/types/public-api.ts +0 -2
  857. package/src/lib/types/validation-status.type.ts +0 -1
  858. package/src/lib/upd-components.module.ts +0 -6
  859. package/src/public-api.ts +0 -1
  860. package/tsconfig.lib.json +0 -14
  861. package/tsconfig.lib.prod.json +0 -10
  862. package/tsconfig.spec.json +0 -14
  863. /package/{form-controls/checkbox/src/checkbox.component.scss → assets/styles/marketing/_filters.scss} +0 -0
  864. /package/{button/src/index.ts → badge/index.d.ts} +0 -0
  865. /package/{card/src/index.ts → button/index.d.ts} +0 -0
  866. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  867. /package/{dropdown/src/index.ts → calendar/index.d.ts} +0 -0
  868. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  869. /package/{form-controls/checkbox/src/index.ts → card/index.d.ts} +0 -0
  870. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  871. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  872. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  873. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  874. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  875. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  876. /package/{form-controls/input/src/index.ts → drag-and-drop/index.d.ts} +0 -0
  877. /package/{form-controls/radio/src/index.ts → dropdown/index.d.ts} +0 -0
  878. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  879. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  880. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  881. /package/{src/lib/index.ts → form/index.d.ts} +0 -0
  882. /package/form-controls/{select/src/index.ts → checkbox/index.d.ts} +0 -0
  883. /package/form-controls/{textarea/src/index.ts → date-picker/index.d.ts} +0 -0
  884. /package/form-controls/{time-picker/src/index.ts → file-upload/index.d.ts} +0 -0
  885. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  886. /package/{form/src/index.ts → form-controls/input/index.d.ts} +0 -0
  887. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  888. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  889. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  890. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  891. /package/{layout/src/index.ts → form-controls/radio/index.d.ts} +0 -0
  892. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  893. /package/{link/src/index.ts → form-controls/select/index.d.ts} +0 -0
  894. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  895. /package/{list/src/index.ts → form-controls/textarea/index.d.ts} +0 -0
  896. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  897. /package/{popover/src/index.ts → form-controls/time-picker/index.d.ts} +0 -0
  898. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  899. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  900. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  901. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  902. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  903. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  904. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  905. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  906. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  907. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  908. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  909. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  910. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  911. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  912. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  913. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  914. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,1005 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Directive, HostBinding, ViewEncapsulation, Component, NgModule, viewChild, ElementRef, input, computed, signal, InjectionToken, Inject, Injectable, model } from '@angular/core';
3
+ import { BaseComponent, LayoutService, UpdCoreLayoutConfigService, PreferencesStorage, UpdCoreLayoutModule } from '@updevs/sdk/layout';
4
+ import * as i1 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import * as i1$3 from '@angular/router';
7
+ import { RouterOutlet, Router, NavigationStart, RouterModule } from '@angular/router';
8
+ import * as i1$2 from '@updevs/icons';
9
+ import { UpdIconsModule } from '@updevs/icons';
10
+ import * as i2 from '@updevs/components/dropdown';
11
+ import { UpdDropdownModule } from '@updevs/components/dropdown';
12
+ import * as i3 from '@updevs/components/link';
13
+ import { UpdLinkModule } from '@updevs/components/link';
14
+ import * as i1$1 from '@jsverse/transloco';
15
+ import { TranslocoModule, TranslocoService, TranslocoPipe, TranslocoDirective } from '@jsverse/transloco';
16
+ import { TextService } from '@updevs/sdk';
17
+ import { NotificationsService, UpdNotificationsModule } from '@updevs/sdk/notifications';
18
+ import { SecurityStorage, AuthService } from '@updevs/sdk/security';
19
+ import * as i1$4 from '@updevs/components/button';
20
+ import { UpdButtonModule } from '@updevs/components/button';
21
+ import { MenuService } from '@updevs/sdk/routes';
22
+ import { filter, finalize } from 'rxjs';
23
+ import * as i3$1 from '@angular/forms';
24
+ import { FormGroup, Validators, FormsModule } from '@angular/forms';
25
+ import * as i7 from '@updevs/components/form';
26
+ import { DynamicFieldType, UpdFormModule } from '@updevs/components/form';
27
+ import * as i6 from '@updevs/components/card';
28
+ import { UpdCardModule } from '@updevs/components/card';
29
+
30
+ /**
31
+ * Basic page structure.
32
+ */
33
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
34
+ class BasePageComponent extends BaseComponent {
35
+ constructor() {
36
+ super(...arguments);
37
+ this._layoutService = inject(LayoutService);
38
+ }
39
+ ngOnDestroy() {
40
+ super.ngOnDestroy();
41
+ this._layoutService.pageHeader.set(undefined);
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BasePageComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BasePageComponent, usesInheritance: true, ngImport: i0 }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BasePageComponent, decorators: [{
47
+ type: Directive
48
+ }] });
49
+
50
+ class FooterComponent extends BaseComponent {
51
+ constructor() {
52
+ super(...arguments);
53
+ this.wrapperClasses = '';
54
+ /**
55
+ * Whether the footer will always be shown.
56
+ */
57
+ this.isSticky = false;
58
+ /**
59
+ * Whether the footer is transparent or not.
60
+ */
61
+ this.isTransparent = true;
62
+ /**
63
+ * Links.
64
+ */
65
+ this.links = [];
66
+ /**
67
+ * Current year.
68
+ */
69
+ this.currentYear = new Date().getFullYear();
70
+ this.layoutService = inject(LayoutService);
71
+ this.baseWrapperClasses = 'footer d-print-none';
72
+ }
73
+ ngOnInit() {
74
+ this.updateWrapperClasses();
75
+ }
76
+ ngOnChanges(changes) {
77
+ if (!!changes['isSticky'].currentValue || !!changes['isTransparent'].currentValue) {
78
+ this.updateWrapperClasses();
79
+ }
80
+ }
81
+ updateWrapperClasses() {
82
+ const stickyBottomCls = this.isSticky ? ' sticky-bottom' : '';
83
+ const transparentCls = this.isTransparent ? ' footer-transparent' : '';
84
+ this.wrapperClasses = `${this.baseWrapperClasses}${stickyBottomCls}${transparentCls}`;
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FooterComponent, selector: "upd-footer", host: { properties: { "class": "this.wrapperClasses" } }, 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 @if (!!layoutService.rightFooter()) {\n <ng-container [ngTemplateOutlet]=\"layoutService.rightFooter()!\"></ng-container>\n }\n\n @if (links.length > 0) {\n <ul class=\"list-inline list-inline-dots mb-0\">\n @for (link of links; track link) {\n <li class=\"list-inline-item\">\n <a href=\"{{link.url}}\" target=\"{{link.target}}\" class=\"link-secondary\">\n <span [innerHTML]=\"link.text\"></span>\n </a>\n </li>\n }\n </ul>\n }\n </div>\n <div class=\"col-12 col-lg-auto mt-3 mt-lg-0\">\n <ul class=\"list-inline list-inline-dots mb-0\">\n <li class=\"list-inline-item\">\n <ng-container *transloco=\"let t; prefix: 'UpDevs.Footer'\">\n {{ t('Prefix') }} {{ t('Symbol') }} {{ currentYear }} {{ t('Suffix') }}\n </ng-container>\n </li>\n @if (!!version) {\n <li class=\"list-inline-item\">\n {{ version }}\n </li>\n }\n </ul>\n\n @if (!!layoutService.leftFooter()) {\n <ng-container [ngTemplateOutlet]=\"layoutService.leftFooter()!\"></ng-container>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], encapsulation: i0.ViewEncapsulation.None }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterComponent, decorators: [{
90
+ type: Component,
91
+ 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 @if (!!layoutService.rightFooter()) {\n <ng-container [ngTemplateOutlet]=\"layoutService.rightFooter()!\"></ng-container>\n }\n\n @if (links.length > 0) {\n <ul class=\"list-inline list-inline-dots mb-0\">\n @for (link of links; track link) {\n <li class=\"list-inline-item\">\n <a href=\"{{link.url}}\" target=\"{{link.target}}\" class=\"link-secondary\">\n <span [innerHTML]=\"link.text\"></span>\n </a>\n </li>\n }\n </ul>\n }\n </div>\n <div class=\"col-12 col-lg-auto mt-3 mt-lg-0\">\n <ul class=\"list-inline list-inline-dots mb-0\">\n <li class=\"list-inline-item\">\n <ng-container *transloco=\"let t; prefix: 'UpDevs.Footer'\">\n {{ t('Prefix') }} {{ t('Symbol') }} {{ currentYear }} {{ t('Suffix') }}\n </ng-container>\n </li>\n @if (!!version) {\n <li class=\"list-inline-item\">\n {{ version }}\n </li>\n }\n </ul>\n\n @if (!!layoutService.leftFooter()) {\n <ng-container [ngTemplateOutlet]=\"layoutService.leftFooter()!\"></ng-container>\n }\n </div>\n </div>\n</div>\n" }]
92
+ }], propDecorators: { wrapperClasses: [{
93
+ type: HostBinding,
94
+ args: ['class']
95
+ }] } });
96
+
97
+ class FooterModule {
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
99
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: FooterModule, declarations: [FooterComponent], imports: [CommonModule,
100
+ TranslocoModule], exports: [FooterComponent] }); }
101
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterModule, imports: [CommonModule,
102
+ TranslocoModule] }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterModule, decorators: [{
105
+ type: NgModule,
106
+ args: [{
107
+ imports: [
108
+ CommonModule,
109
+ TranslocoModule
110
+ ],
111
+ declarations: [
112
+ FooterComponent
113
+ ],
114
+ exports: [
115
+ FooterComponent
116
+ ]
117
+ }]
118
+ }] });
119
+
120
+ class HeaderComponent extends BaseComponent {
121
+ constructor() {
122
+ super(...arguments);
123
+ this.languageSwitcherRef = viewChild('languageSwitcherBtn', { read: ElementRef });
124
+ this.notificationsRef = viewChild('notificationsBtn', { read: ElementRef });
125
+ this.loggedUserRef = viewChild('loggedUserBtn', { read: ElementRef });
126
+ this.isLanguageSwitcherDropdownOpen = false;
127
+ this.isNotificationsDropdownOpen = false;
128
+ this.isLoggedUserDropdownOpen = false;
129
+ this.style = input('light');
130
+ this.nextThemeIcon = computed(() => this.currentPreferences()?.isDarkTheme ? 'sun' : 'moon-stars');
131
+ this.currentNotificationsIcon = computed(() => this.hasNewNotifications() ? 'bell-ringing' : 'bell');
132
+ this.hasNewNotifications = computed(() => this.currentNotifications().some(n => !n.dateRead));
133
+ this.languagesOptions = computed(() => {
134
+ const allLanguagesOptions = [];
135
+ const availableLanguages = (this.coreLayoutConfigService.config.availableLanguages || {});
136
+ Object.keys(availableLanguages).forEach(key => {
137
+ allLanguagesOptions.push({
138
+ id: key,
139
+ type: 'default',
140
+ text: availableLanguages[key],
141
+ isActive: this.currentLanguageKey() === key
142
+ });
143
+ });
144
+ return allLanguagesOptions;
145
+ });
146
+ this.loggedUserOptions = computed(() => {
147
+ const userActions = [];
148
+ this.coreLayoutConfigService.config.loggedUserMenuActions.forEach(act => userActions.push({
149
+ id: act.id(),
150
+ text: act.text(),
151
+ type: 'default',
152
+ icon: act.iconModel?.()
153
+ }));
154
+ return userActions;
155
+ });
156
+ this.userInfo = computed(() => this.securityStorage.getUserInfo());
157
+ this.userIdentification = computed(() => !!this.userInfo() ? this.coreLayoutConfigService.config.getUserName(this.userInfo()) : '');
158
+ this.userDescription = computed(() => !!this.coreLayoutConfigService.config.getUserDescription
159
+ ? this.coreLayoutConfigService.config.getUserDescription(this.userInfo())
160
+ : '');
161
+ this.shouldBlinkIfNewNotifications = computed(() => !!this.coreLayoutConfigService.config.shouldBlinkIfNewNotifications);
162
+ this.latestNotifications = computed(() => {
163
+ const unreadNotifications = this.currentNotifications()
164
+ .filter(n => !n.dateRead)
165
+ .sort((a, b) => new Date(b.dateReceived).getTime() - new Date(a.dateReceived).getTime())
166
+ .slice(0, this.coreLayoutConfigService.config.numberOfLastNotificationsDisplayed);
167
+ const readNotifications = this.currentNotifications()
168
+ .filter(n => !!n.dateRead)
169
+ .sort((a, b) => new Date(b.dateReceived).getTime() - new Date(a.dateReceived).getTime())
170
+ .slice(0, this.coreLayoutConfigService.config.numberOfLastNotificationsDisplayed);
171
+ return [
172
+ ...unreadNotifications,
173
+ ...readNotifications
174
+ ].slice(0, this.coreLayoutConfigService.config.numberOfLastNotificationsDisplayed);
175
+ });
176
+ this.textService = inject(TextService);
177
+ this.securityStorage = inject(SecurityStorage);
178
+ this.coreLayoutConfigService = inject(UpdCoreLayoutConfigService);
179
+ this.layoutService = inject(LayoutService);
180
+ this.translocoService = inject(TranslocoService);
181
+ this.preferencesStorage = inject(PreferencesStorage);
182
+ this.notificationsService = inject(NotificationsService);
183
+ this.currentPreferences = this.preferencesStorage.getPreferences();
184
+ this.currentNotifications = this.notificationsService.notifications;
185
+ this.currentLanguageKey = signal('');
186
+ this.wrapperClasses = computed(() => `navbar navbar-expand-md d-none d-lg-flex d-print-none navbar-${this.style()}`);
187
+ // eslint-disable-next-line @typescript-eslint/member-ordering
188
+ this.config = computed(() => this.layoutService.mainHeaderConfig());
189
+ }
190
+ get classes() {
191
+ return this.wrapperClasses();
192
+ }
193
+ ngOnInit() {
194
+ if (!!this.currentPreferences()?.isDarkTheme) {
195
+ this.layoutService.setDarkMode();
196
+ }
197
+ if (!!this.currentPreferences()?.currentLanguageCode) {
198
+ const code = this.currentPreferences().currentLanguageCode;
199
+ this.currentLanguageKey.set(code);
200
+ this.translocoService.setActiveLang(code);
201
+ }
202
+ }
203
+ switchTheme() {
204
+ this.layoutService.toggleDarkMode();
205
+ }
206
+ switchLanguage(item) {
207
+ this.currentLanguageKey.set(item.id);
208
+ this.translocoService.setActiveLang(item.id);
209
+ this.preferencesStorage.savePreferences({ ...this.currentPreferences(), currentLanguageCode: item.id });
210
+ this.layoutService.notifyUserChangedLanguage(item.id);
211
+ this.isLanguageSwitcherDropdownOpen = false;
212
+ }
213
+ selectLoggedUserMenuItem(item) {
214
+ const btn = this.coreLayoutConfigService.config.loggedUserMenuActions.find(b => b.id() === item.id);
215
+ if (!!btn?.clickFunction) {
216
+ btn.clickFunction({ data: this.userInfo() });
217
+ }
218
+ }
219
+ readNotification(notification) {
220
+ if (!notification.dateRead) {
221
+ this.notificationsService.markAsRead(notification.id);
222
+ }
223
+ this.notificationsService.clickOnNotification(notification);
224
+ }
225
+ removeNotification(notification) {
226
+ this.notificationsService.removeNotifications(notification.id);
227
+ }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HeaderComponent, selector: "upd-header", inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.classes" } }, viewQueries: [{ propertyName: "languageSwitcherRef", first: true, predicate: ["languageSwitcherBtn"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "notificationsRef", first: true, predicate: ["notificationsBtn"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "loggedUserRef", first: true, predicate: ["loggedUserBtn"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: 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 @if (!!config().showThemeSwitcher) {\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 }\n @if (!!config().showLanguageSwitcher && languagesOptions().length > 0) {\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"isLanguageSwitcherDropdownOpen=true\"\n #languageSwitcherBtn>\n <upd-icon tablerIcon=\"language\"></upd-icon>\n </upd-link>\n <upd-dropdown wrapperClasses=\"mt-1\" [isOpen]=\"isLanguageSwitcherDropdownOpen\"\n [dropdownReference]=\"languageSwitcherRef()\" [items]=\"languagesOptions()\" [shouldCloseOnOutsideClick]=\"true\"\n (isOpenChange)=\"isLanguageSwitcherDropdownOpen = $event\" (selectedItem)=\"switchLanguage($event)\">\n </upd-dropdown>\n </div>\n }\n @if (!!config().showNotifications && !!userInfo()) {\n <div class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"isNotificationsDropdownOpen = true\"\n #notificationsBtn>\n <upd-icon [tablerIcon]=\"currentNotificationsIcon()\"></upd-icon>\n @if (hasNewNotifications()) {\n <span class=\"badge bg-red\" [class.badge-blink]=\"shouldBlinkIfNewNotifications()\"></span>\n }\n </upd-link>\n <upd-dropdown wrapperClasses=\"mt-1 dropdown-menu-card\" [isOpen]=\"isNotificationsDropdownOpen\"\n [dropdownReference]=\"notificationsRef()\" [shouldCloseOnOutsideClick]=\"true\"\n (isOpenChange)=\"isNotificationsDropdownOpen = $event\" [minWidth]=\"400\" arrowType=\"right\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ 'UpDevs.NotificationCenter.Title' | transloco }}</h3>\n </div>\n @for (notification of latestNotifications(); track notification) {\n <div class=\"list-group list-group-flush list-group-hoverable\" (click)=\"readNotification(notification)\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\">\n @if (!!notification.dateRead) {\n <span class=\"status-dot d-block\"></span>\n } @else {\n <span class=\"status-dot status-dot-animated bg-primary d-block\"></span>\n }\n </div>\n <div class=\"col text-truncate\">\n <a href=\"javascript:void(0)\" class=\"text-body d-block\"\n [class.fw-bold]=\"!notification.dateRead\">\n {{ textService.getText(notification.title) }}\n </a>\n @if (!!notification.description) {\n <div class=\"d-block text-secondary text-truncate mt-n1\">\n {{ textService.getText(notification.description) }}\n </div>\n }\n </div>\n <div class=\"col-auto\">\n <upd-link [customClasses]=\"['list-group-item-actions']\"\n (clicked)=\"removeNotification(notification)\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-link>\n </div>\n </div>\n </div>\n </div>\n } @empty {\n <div class=\"empty\">\n <h1 class=\"text-body-tertiary\">{{ 'UpDevs.NotificationCenter.NoNotifications' | transloco }}</h1>\n </div>\n }\n </div>\n </upd-dropdown>\n </div>\n }\n </div>\n @if (!!config().showUserMenu && !!userInfo()) {\n <div class=\"nav-item dropdown\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"isLoggedUserDropdownOpen = true\" #loggedUserBtn>\n @if (!!userInfo()!.avatar) {\n <span class=\"avatar avatar-sm\" style=\"background-image: url({{userInfo()?.avatar}})\"></span>\n }\n\n <div class=\"d-none d-xl-block ps-2\">\n <div>{{ userIdentification() }}</div>\n @if (!!userDescription()) {\n <div class=\"mt-1 small text-muted\">{{ userDescription() }}</div>\n }\n </div>\n </upd-link>\n @if (loggedUserOptions().length > 0) {\n <upd-dropdown wrapperClasses=\"mt-1\" [isOpen]=\"isLoggedUserDropdownOpen\" [dropdownReference]=\"loggedUserRef()\"\n [items]=\"loggedUserOptions()\" [shouldCloseOnOutsideClick]=\"true\" (selectedItem)=\"selectLoggedUserMenuItem($event)\"\n (isOpenChange)=\"isLoggedUserDropdownOpen = $event\" arrowType=\"right\">\n </upd-dropdown>\n }\n </div>\n }\n </div>\n @if (!!config().showSearchBar && !!userInfo()) {\n <div class=\"collapse navbar-collapse\">\n <div class=\"me-2\" [class.w-100]=\"config().shouldUseFullSearchBar\">\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=\"{{'UpDevs.Header.Search' | transloco}}...\">\n </div>\n </form>\n </div>\n </div>\n } @else {\n <div></div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1$2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i2.DropdownComponent, selector: "upd-dropdown", inputs: ["items", "header", "isOpen", "shouldCloseOnOutsideClick", "arrowType", "wrapperClasses", "elementsExcludedFromOutsideClick", "minHeight", "maxHeight", "minWidth", "maxWidth", "dropdownReference", "dropdownReferencePosition", "textOverflowStrategy"], outputs: ["isOpenChange", "selectedItem", "checkboxChanged"] }, { kind: "component", type: i3.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }, { kind: "pipe", type: i1$1.TranslocoPipe, name: "transloco" }], encapsulation: i0.ViewEncapsulation.None }); }
230
+ }
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", 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 @if (!!config().showThemeSwitcher) {\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 }\n @if (!!config().showLanguageSwitcher && languagesOptions().length > 0) {\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"isLanguageSwitcherDropdownOpen=true\"\n #languageSwitcherBtn>\n <upd-icon tablerIcon=\"language\"></upd-icon>\n </upd-link>\n <upd-dropdown wrapperClasses=\"mt-1\" [isOpen]=\"isLanguageSwitcherDropdownOpen\"\n [dropdownReference]=\"languageSwitcherRef()\" [items]=\"languagesOptions()\" [shouldCloseOnOutsideClick]=\"true\"\n (isOpenChange)=\"isLanguageSwitcherDropdownOpen = $event\" (selectedItem)=\"switchLanguage($event)\">\n </upd-dropdown>\n </div>\n }\n @if (!!config().showNotifications && !!userInfo()) {\n <div class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"isNotificationsDropdownOpen = true\"\n #notificationsBtn>\n <upd-icon [tablerIcon]=\"currentNotificationsIcon()\"></upd-icon>\n @if (hasNewNotifications()) {\n <span class=\"badge bg-red\" [class.badge-blink]=\"shouldBlinkIfNewNotifications()\"></span>\n }\n </upd-link>\n <upd-dropdown wrapperClasses=\"mt-1 dropdown-menu-card\" [isOpen]=\"isNotificationsDropdownOpen\"\n [dropdownReference]=\"notificationsRef()\" [shouldCloseOnOutsideClick]=\"true\"\n (isOpenChange)=\"isNotificationsDropdownOpen = $event\" [minWidth]=\"400\" arrowType=\"right\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">{{ 'UpDevs.NotificationCenter.Title' | transloco }}</h3>\n </div>\n @for (notification of latestNotifications(); track notification) {\n <div class=\"list-group list-group-flush list-group-hoverable\" (click)=\"readNotification(notification)\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\">\n @if (!!notification.dateRead) {\n <span class=\"status-dot d-block\"></span>\n } @else {\n <span class=\"status-dot status-dot-animated bg-primary d-block\"></span>\n }\n </div>\n <div class=\"col text-truncate\">\n <a href=\"javascript:void(0)\" class=\"text-body d-block\"\n [class.fw-bold]=\"!notification.dateRead\">\n {{ textService.getText(notification.title) }}\n </a>\n @if (!!notification.description) {\n <div class=\"d-block text-secondary text-truncate mt-n1\">\n {{ textService.getText(notification.description) }}\n </div>\n }\n </div>\n <div class=\"col-auto\">\n <upd-link [customClasses]=\"['list-group-item-actions']\"\n (clicked)=\"removeNotification(notification)\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-link>\n </div>\n </div>\n </div>\n </div>\n } @empty {\n <div class=\"empty\">\n <h1 class=\"text-body-tertiary\">{{ 'UpDevs.NotificationCenter.NoNotifications' | transloco }}</h1>\n </div>\n }\n </div>\n </upd-dropdown>\n </div>\n }\n </div>\n @if (!!config().showUserMenu && !!userInfo()) {\n <div class=\"nav-item dropdown\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"isLoggedUserDropdownOpen = true\" #loggedUserBtn>\n @if (!!userInfo()!.avatar) {\n <span class=\"avatar avatar-sm\" style=\"background-image: url({{userInfo()?.avatar}})\"></span>\n }\n\n <div class=\"d-none d-xl-block ps-2\">\n <div>{{ userIdentification() }}</div>\n @if (!!userDescription()) {\n <div class=\"mt-1 small text-muted\">{{ userDescription() }}</div>\n }\n </div>\n </upd-link>\n @if (loggedUserOptions().length > 0) {\n <upd-dropdown wrapperClasses=\"mt-1\" [isOpen]=\"isLoggedUserDropdownOpen\" [dropdownReference]=\"loggedUserRef()\"\n [items]=\"loggedUserOptions()\" [shouldCloseOnOutsideClick]=\"true\" (selectedItem)=\"selectLoggedUserMenuItem($event)\"\n (isOpenChange)=\"isLoggedUserDropdownOpen = $event\" arrowType=\"right\">\n </upd-dropdown>\n }\n </div>\n }\n </div>\n @if (!!config().showSearchBar && !!userInfo()) {\n <div class=\"collapse navbar-collapse\">\n <div class=\"me-2\" [class.w-100]=\"config().shouldUseFullSearchBar\">\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=\"{{'UpDevs.Header.Search' | transloco}}...\">\n </div>\n </form>\n </div>\n </div>\n } @else {\n <div></div>\n }\n</div>\n" }]
234
+ }], propDecorators: { classes: [{
235
+ type: HostBinding,
236
+ args: ['class']
237
+ }] } });
238
+
239
+ class HeaderModule {
240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
241
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: HeaderModule, declarations: [HeaderComponent], imports: [CommonModule,
242
+ TranslocoModule,
243
+ UpdIconsModule,
244
+ UpdDropdownModule,
245
+ UpdLinkModule], exports: [HeaderComponent] }); }
246
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderModule, imports: [CommonModule,
247
+ TranslocoModule,
248
+ UpdIconsModule,
249
+ UpdDropdownModule,
250
+ UpdLinkModule] }); }
251
+ }
252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderModule, decorators: [{
253
+ type: NgModule,
254
+ args: [{
255
+ imports: [
256
+ CommonModule,
257
+ TranslocoModule,
258
+ UpdIconsModule,
259
+ UpdDropdownModule,
260
+ UpdLinkModule
261
+ ],
262
+ declarations: [
263
+ HeaderComponent
264
+ ],
265
+ exports: [
266
+ HeaderComponent
267
+ ]
268
+ }]
269
+ }] });
270
+
271
+ /**
272
+ * Configuration of the login page layout.
273
+ */
274
+ class LoginPageConfigModel {
275
+ constructor(init) {
276
+ /**
277
+ * Buttons used for social login (google, facebook, etc).
278
+ */
279
+ this.socialLoginButtons = [];
280
+ Object.assign(this, init);
281
+ this.layout = init?.layout || 'centered-box';
282
+ this.borderColor = init?.borderColor || 'primary';
283
+ this.signInButtonColor = init?.signInButtonColor || 'primary';
284
+ this.linksColor = init?.linksColor || this.signInButtonColor;
285
+ if (init?.socialLoginButtons) {
286
+ this.socialLoginButtons = init.socialLoginButtons;
287
+ }
288
+ }
289
+ }
290
+
291
+ /**
292
+ * Configuration for the pages related to the security.
293
+ */
294
+ class SecurityLayoutConfigModel {
295
+ constructor(init) {
296
+ this.loginPage = new LoginPageConfigModel(init?.loginPage);
297
+ }
298
+ }
299
+
300
+ /**
301
+ * Layout configuration.
302
+ */
303
+ class UpdLayoutConfigModel {
304
+ constructor(init) {
305
+ if (init?.mainLogo === undefined) {
306
+ // this.mainLogo = LogoConstants.defaultLogo; // TODO: add images
307
+ }
308
+ if (init?.smallLogo === undefined) {
309
+ // this.smallLogo = LogoConstants.smallLogo;
310
+ }
311
+ if (init?.loggedOutBackground === undefined) {
312
+ // this.loggedOutBackground = ImageConstants.loggedOutBackground;
313
+ }
314
+ this.menuTitle = init?.menuTitle || 'UpDevs';
315
+ this.showNotificationsButton = init?.showNotificationsButton || true;
316
+ this.showUserMenu = init?.showUserMenu || true;
317
+ this.displayReportErrorButton = init?.displayReportErrorButton || false;
318
+ this.useFluidLayout = init?.useFluidLayout || false;
319
+ this.securityLayoutConfig = new SecurityLayoutConfigModel(init?.securityLayoutConfig);
320
+ }
321
+ }
322
+
323
+ /**
324
+ * Layout constants.
325
+ */
326
+ class LayoutConstants {
327
+ /**
328
+ * Key to inject the default configuration.
329
+ */
330
+ static { this.defaultOptionsKey = 'upd-layout-default-options'; }
331
+ /**
332
+ * Injection token for the default configuration.
333
+ */
334
+ static { this.defaultOptionsInjectionToken = new InjectionToken(LayoutConstants.defaultOptionsKey); }
335
+ }
336
+
337
+ /**
338
+ * Layout configuration data.
339
+ */
340
+ class UpdLayoutConfigService {
341
+ constructor(layoutConfig) {
342
+ this.config = new UpdLayoutConfigModel(layoutConfig);
343
+ }
344
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutConfigService, deps: [{ token: LayoutConstants.defaultOptionsInjectionToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
345
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutConfigService }); }
346
+ }
347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutConfigService, decorators: [{
348
+ type: Injectable
349
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
350
+ type: Inject,
351
+ args: [LayoutConstants.defaultOptionsInjectionToken]
352
+ }] }] });
353
+
354
+ /**
355
+ * Basic layout structure.
356
+ */
357
+ class BaseLayout extends BaseComponent {
358
+ constructor() {
359
+ super(...arguments);
360
+ this._layoutConfigService = inject(UpdLayoutConfigService);
361
+ this._layoutService = inject(LayoutService);
362
+ }
363
+ ngOnInit() {
364
+ if (this._layoutConfigService.config.useFluidLayout) {
365
+ this._layoutService.addBodyClasses('layout-fluid');
366
+ }
367
+ }
368
+ ngOnDestroy() {
369
+ super.ngOnDestroy();
370
+ if (this._layoutConfigService.config.useFluidLayout) {
371
+ this._layoutService.removeBodyClasses('layout-fluid');
372
+ }
373
+ }
374
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BaseLayout, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
375
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BaseLayout, usesInheritance: true, ngImport: i0 }); }
376
+ }
377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BaseLayout, decorators: [{
378
+ type: Directive
379
+ }] });
380
+
381
+ class BlankLayoutComponent extends BaseLayout {
382
+ constructor() {
383
+ super(...arguments);
384
+ this.config = computed(() => this._layoutService.mainHeaderConfig());
385
+ }
386
+ ngOnInit() {
387
+ // Overriding layout fluid from parent.
388
+ }
389
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BlankLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
390
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: BlankLayoutComponent, selector: "upd-blank-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"page\" [class.page-center]=\"_layoutService.isPageCentered()\">\n @if (!config().shouldHideTopBarIfBlankLayout) {\n <upd-header [style]=\"'transparent'\"></upd-header>\n }\n\n <router-outlet></router-outlet>\n\n @if (!config().shouldHideFooterIfBlankLayout) {\n <upd-footer></upd-footer>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.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"] }] }); }
391
+ }
392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BlankLayoutComponent, decorators: [{
393
+ type: Component,
394
+ args: [{ selector: 'upd-blank-layout', template: "<div class=\"page\" [class.page-center]=\"_layoutService.isPageCentered()\">\n @if (!config().shouldHideTopBarIfBlankLayout) {\n <upd-header [style]=\"'transparent'\"></upd-header>\n }\n\n <router-outlet></router-outlet>\n\n @if (!config().shouldHideFooterIfBlankLayout) {\n <upd-footer></upd-footer>\n }\n</div>\n" }]
395
+ }] });
396
+
397
+ class BlankLayoutModule {
398
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BlankLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
399
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BlankLayoutModule, declarations: [BlankLayoutComponent], imports: [CommonModule,
400
+ RouterOutlet,
401
+ TranslocoPipe,
402
+ UpdDropdownModule,
403
+ UpdIconsModule,
404
+ UpdLinkModule,
405
+ FooterModule,
406
+ HeaderModule], exports: [BlankLayoutComponent] }); }
407
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BlankLayoutModule, imports: [CommonModule,
408
+ UpdDropdownModule,
409
+ UpdIconsModule,
410
+ UpdLinkModule,
411
+ FooterModule,
412
+ HeaderModule] }); }
413
+ }
414
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BlankLayoutModule, decorators: [{
415
+ type: NgModule,
416
+ args: [{
417
+ imports: [
418
+ CommonModule,
419
+ RouterOutlet,
420
+ TranslocoPipe,
421
+ UpdDropdownModule,
422
+ UpdIconsModule,
423
+ UpdLinkModule,
424
+ FooterModule,
425
+ HeaderModule
426
+ ],
427
+ declarations: [
428
+ BlankLayoutComponent
429
+ ],
430
+ exports: [
431
+ BlankLayoutComponent
432
+ ]
433
+ }]
434
+ }] });
435
+
436
+ var UpDevs$1 = {
437
+ Login: {
438
+ Title: "Login",
439
+ NoAccountYet: "Don't have an account?",
440
+ SignUp: "Sign-up",
441
+ SignIn: "Sign-in",
442
+ RecoverPassword: "Recover my password",
443
+ RememberMe: "Remember me on this device",
444
+ Or: "or",
445
+ Email: "Email",
446
+ Password: "Password"
447
+ },
448
+ Footer: {
449
+ Prefix: "Copyright",
450
+ "Symbol": "©",
451
+ Suffix: "All rights reserved."
452
+ },
453
+ NotificationCenter: {
454
+ Title: "Latest notifications",
455
+ NoNotifications: "No notifications"
456
+ },
457
+ Header: {
458
+ Search: "Search"
459
+ }
460
+ };
461
+ var en = {
462
+ UpDevs: UpDevs$1
463
+ };
464
+
465
+ var en$1 = /*#__PURE__*/Object.freeze({
466
+ __proto__: null,
467
+ UpDevs: UpDevs$1,
468
+ default: en
469
+ });
470
+
471
+ var UpDevs = {
472
+ Login: {
473
+ Title: "Login",
474
+ NoAccountYet: "Não tem conta?",
475
+ SignUp: "Cadastre-se",
476
+ SignIn: "Entrar",
477
+ RecoverPassword: "Recuperar minha senha",
478
+ RememberMe: "Lembrar",
479
+ Or: "ou",
480
+ Email: "Email",
481
+ Password: "Senha"
482
+ },
483
+ Footer: {
484
+ Prefix: "Copyright",
485
+ "Symbol": "©",
486
+ Suffix: "Todos os direitos reservados."
487
+ },
488
+ NotificationCenter: {
489
+ Title: "Últimas notificações",
490
+ NoNotifications: "Sem notificações"
491
+ },
492
+ Header: {
493
+ Search: "Pesquisar"
494
+ }
495
+ };
496
+ var pt = {
497
+ UpDevs: UpDevs
498
+ };
499
+
500
+ var pt$1 = /*#__PURE__*/Object.freeze({
501
+ __proto__: null,
502
+ UpDevs: UpDevs,
503
+ default: pt
504
+ });
505
+
506
+ class SidebarComponent extends BaseComponent {
507
+ constructor() {
508
+ super(...arguments);
509
+ this.wrapperClasses = 'navbar navbar-vertical navbar-expand-lg';
510
+ this.theme = 'dark';
511
+ this.menuItems = [];
512
+ this.textService = inject(TextService);
513
+ this.currentRoute = '';
514
+ this.menuItemsBackup = [];
515
+ this.router = inject(Router);
516
+ this.menuService = inject(MenuService);
517
+ }
518
+ ngOnInit() {
519
+ this.currentRoute = this.router.url;
520
+ this.menuItems = this.menuService.generateMenu();
521
+ this.menuItemsBackup = [...this.menuItems];
522
+ const menuRefreshSub = this.menuService.refreshSubject.subscribe(() => {
523
+ this.menuItems = [...this.menuService.generateMenu()];
524
+ this.menuItemsBackup = [...this.menuItems];
525
+ this.updateActiveRoute();
526
+ });
527
+ const routerSub = this.router.events.pipe(filter(event => event instanceof NavigationStart)).subscribe(event => {
528
+ this.currentRoute = event.url;
529
+ this.updateActiveRoute();
530
+ });
531
+ this.updateActiveRoute();
532
+ this.addSubscriptions(routerSub, menuRefreshSub);
533
+ }
534
+ onMenuItemClick(item) {
535
+ if (item.isLocked) {
536
+ if (!!item.lockedClickFunction) {
537
+ item.lockedClickFunction();
538
+ }
539
+ return;
540
+ }
541
+ let newMenuItems = this.resetMenuState(this.menuItems);
542
+ newMenuItems = this.setItemActive(newMenuItems, item, this.hasChildren(item) ? !item.isActive : true);
543
+ newMenuItems = this.updateParents(newMenuItems, item);
544
+ this.menuItems = newMenuItems;
545
+ if (!!item.clickFunction) {
546
+ item.clickFunction();
547
+ return;
548
+ }
549
+ if (this.hasChildren(item)) {
550
+ return;
551
+ }
552
+ const fullPath = this.findItemById(this.menuItemsBackup, item.id).getFullPath();
553
+ this.router.navigate(fullPath).then();
554
+ }
555
+ hasChildren(item) {
556
+ return (item.children?.length || 0) > 0;
557
+ }
558
+ asMenuItem(item) {
559
+ return item;
560
+ }
561
+ getItemClasses(item, activeClass, ...classes) {
562
+ return [
563
+ ...classes,
564
+ item.isActive ? activeClass : '',
565
+ item.isLocked ? 'disabled' : ''
566
+ ];
567
+ }
568
+ findActiveNode(item, fullPath) {
569
+ if (item.fullPath === fullPath) {
570
+ return item;
571
+ }
572
+ for (const child of item.children) {
573
+ const found = this.findActiveNode(child, fullPath);
574
+ if (found) {
575
+ return found;
576
+ }
577
+ }
578
+ return undefined;
579
+ }
580
+ updateActiveRoute() {
581
+ let newMenuItems = this.resetMenuState(this.menuItems);
582
+ const activePath = this.getActivePath(newMenuItems);
583
+ newMenuItems = this.setActivePath(newMenuItems, activePath);
584
+ this.menuItems = newMenuItems;
585
+ }
586
+ setActivePath(items, path) {
587
+ if (path.length === 0) {
588
+ return items;
589
+ }
590
+ return items.map(item => {
591
+ const pathItem = path.find(p => p.id === item.id);
592
+ if (!pathItem) {
593
+ return item;
594
+ }
595
+ const newItem = { ...item, isActive: true };
596
+ if (newItem.children?.length) {
597
+ newItem.children = this.setActivePath(newItem.children, path.filter(p => p.parent?.id === newItem.id));
598
+ newItem.children.forEach(child => child.parent = newItem);
599
+ }
600
+ return newItem;
601
+ });
602
+ }
603
+ getActivePath(items) {
604
+ let activeItem;
605
+ // Find the deepest active item.
606
+ for (const item of items) {
607
+ activeItem = this.findActiveNode(item, this.currentRoute);
608
+ if (activeItem) {
609
+ break;
610
+ }
611
+ }
612
+ // Collect parent hierarchy.
613
+ const path = [];
614
+ while (activeItem) {
615
+ path.unshift(activeItem);
616
+ activeItem = activeItem.parent;
617
+ }
618
+ return path;
619
+ }
620
+ resetMenuState(items) {
621
+ return items.map(item => {
622
+ const newItem = { ...item, isActive: false };
623
+ if (newItem.children?.length) {
624
+ newItem.children = this.resetMenuState(newItem.children);
625
+ newItem.children.forEach(child => child.parent = newItem);
626
+ }
627
+ return newItem;
628
+ });
629
+ }
630
+ setItemActive(items, target, isActive) {
631
+ return items.map(item => {
632
+ if (item.id === target.id) {
633
+ const newItem = { ...item, isActive };
634
+ if (newItem.children?.length) {
635
+ newItem.children = this.setItemActive(newItem.children, target, isActive);
636
+ newItem.children.forEach(child => child.parent = newItem);
637
+ }
638
+ return newItem;
639
+ }
640
+ if (item.children?.length) {
641
+ const newChildren = this.setItemActive(item.children, target, isActive);
642
+ const newItem = { ...item, children: newChildren };
643
+ newChildren.forEach(child => child.parent = newItem);
644
+ return newItem;
645
+ }
646
+ return item;
647
+ });
648
+ }
649
+ updateParents(items, childItem) {
650
+ let parent = childItem.parent;
651
+ let updatedItems = [...items];
652
+ while (parent) {
653
+ updatedItems = updatedItems.map(item => {
654
+ if (item.id === parent.id) {
655
+ return { ...parent, isActive: true };
656
+ }
657
+ return item;
658
+ });
659
+ parent = parent.parent;
660
+ }
661
+ return updatedItems;
662
+ }
663
+ findItemById(items, targetId) {
664
+ for (const item of items) {
665
+ if (item.id === targetId) {
666
+ return item;
667
+ }
668
+ if (item.children?.length) {
669
+ const child = this.findItemById(item.children, targetId);
670
+ if (!!child) {
671
+ return child;
672
+ }
673
+ }
674
+ }
675
+ return undefined;
676
+ }
677
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SidebarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
678
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", 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 @for (item of menuItems; track item.id) {\n <li class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\" [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\"></ng-container>\n </li>\n }\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"getItemClasses(item, 'show', hasChildren(item) ? 'dropdown-toggle':'')\">\n <ng-container [ngTemplateOutlet]=\"linkContent\" [ngTemplateOutletContext]=\"{menuItem: item}\"></ng-container>\n </upd-link>\n @if (hasChildren(item)) {\n <ng-container [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\"></ng-container>\n }\n</ng-template>\n\n<ng-template #linkContent let-item=\"menuItem\">\n @if (!!item.icon) {\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n }\n <span class=\"nav-link-title\">{{ textService.getText(item.title) }}</span>\n @if (item.isLocked) {\n <upd-icon class=\"ms-auto\" [model]=\"{tablerIcon: 'lock'}\"></upd-icon>\n }\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 @for (child of asMenuItem(item).children; track child.id) {\n @if (!hasChildren(child)) {\n <upd-link (clicked)=\"onMenuItemClick(child)\" [customClasses]=\"getItemClasses(child, 'active', 'dropdown-item')\">\n <ng-container [ngTemplateOutlet]=\"linkContent\" [ngTemplateOutletContext]=\"{menuItem: child}\"></ng-container>\n </upd-link>\n } @else {\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\" [customClasses]=\"getItemClasses(child, 'active', 'dropdown-item')\">\n <ng-container [ngTemplateOutlet]=\"linkContent\" [ngTemplateOutletContext]=\"{menuItem: child}\"></ng-container>\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n @for (grandchild of child.children; track grandchild) {\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"getItemClasses(grandchild, 'active', 'dropdown-item')\">\n <ng-container [ngTemplateOutlet]=\"linkContent\" [ngTemplateOutletContext]=\"{menuItem: grandchild}\">\n </ng-container>\n </upd-link>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
679
+ }
680
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SidebarComponent, decorators: [{
681
+ type: Component,
682
+ 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 @for (item of menuItems; track item.id) {\n <li class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\" [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\"></ng-container>\n </li>\n }\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"getItemClasses(item, 'show', hasChildren(item) ? 'dropdown-toggle':'')\">\n <ng-container [ngTemplateOutlet]=\"linkContent\" [ngTemplateOutletContext]=\"{menuItem: item}\"></ng-container>\n </upd-link>\n @if (hasChildren(item)) {\n <ng-container [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\"></ng-container>\n }\n</ng-template>\n\n<ng-template #linkContent let-item=\"menuItem\">\n @if (!!item.icon) {\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n }\n <span class=\"nav-link-title\">{{ textService.getText(item.title) }}</span>\n @if (item.isLocked) {\n <upd-icon class=\"ms-auto\" [model]=\"{tablerIcon: 'lock'}\"></upd-icon>\n }\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 @for (child of asMenuItem(item).children; track child.id) {\n @if (!hasChildren(child)) {\n <upd-link (clicked)=\"onMenuItemClick(child)\" [customClasses]=\"getItemClasses(child, 'active', 'dropdown-item')\">\n <ng-container [ngTemplateOutlet]=\"linkContent\" [ngTemplateOutletContext]=\"{menuItem: child}\"></ng-container>\n </upd-link>\n } @else {\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\" [customClasses]=\"getItemClasses(child, 'active', 'dropdown-item')\">\n <ng-container [ngTemplateOutlet]=\"linkContent\" [ngTemplateOutletContext]=\"{menuItem: child}\"></ng-container>\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n @for (grandchild of child.children; track grandchild) {\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"getItemClasses(grandchild, 'active', 'dropdown-item')\">\n <ng-container [ngTemplateOutlet]=\"linkContent\" [ngTemplateOutletContext]=\"{menuItem: grandchild}\">\n </ng-container>\n </upd-link>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n</ng-template>\n" }]
683
+ }], propDecorators: { wrapperClasses: [{
684
+ type: HostBinding,
685
+ args: ['class']
686
+ }], theme: [{
687
+ type: HostBinding,
688
+ args: ['attr.data-bs-theme']
689
+ }] } });
690
+
691
+ class PageHeaderComponent {
692
+ constructor() {
693
+ this.model = input.required();
694
+ }
695
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
696
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: PageHeaderComponent, selector: "upd-page-header", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null } }, 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 @if (model().actionButtons.length > 0) {\n <div class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n @for (btn of model().actionButtons; track btn) {\n <upd-button [model]=\"btn\"></upd-button>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1$4.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }] }); }
697
+ }
698
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PageHeaderComponent, decorators: [{
699
+ type: Component,
700
+ 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 @if (model().actionButtons.length > 0) {\n <div class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n @for (btn of model().actionButtons; track btn) {\n <upd-button [model]=\"btn\"></upd-button>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
701
+ }] });
702
+
703
+ class VerticalSidebarLayoutComponent extends BaseLayout {
704
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
705
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", 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 @if (!!_layoutService.pageHeader()) {\n <upd-page-header [model]=\"_layoutService.pageHeader()!\"></upd-page-header>\n }\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: i1$3.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"] }, { kind: "component", type: SidebarComponent, selector: "upd-sidebar" }, { kind: "component", type: PageHeaderComponent, selector: "upd-page-header", inputs: ["model"] }], encapsulation: i0.ViewEncapsulation.None }); }
706
+ }
707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutComponent, decorators: [{
708
+ type: Component,
709
+ 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 @if (!!_layoutService.pageHeader()) {\n <upd-page-header [model]=\"_layoutService.pageHeader()!\"></upd-page-header>\n }\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" }]
710
+ }] });
711
+
712
+ class VerticalSidebarLayoutModule {
713
+ constructor(translocoService) {
714
+ translocoService.setFallbackLangForMissingTranslation({ fallbackLang: 'en' });
715
+ translocoService.setTranslation(en$1, 'en');
716
+ translocoService.setTranslation(pt$1, 'pt');
717
+ }
718
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutModule, deps: [{ token: i1$1.TranslocoService }], target: i0.ɵɵFactoryTarget.NgModule }); }
719
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutModule, declarations: [VerticalSidebarLayoutComponent,
720
+ SidebarComponent,
721
+ PageHeaderComponent], imports: [CommonModule,
722
+ RouterModule,
723
+ TranslocoModule,
724
+ UpdIconsModule,
725
+ UpdCoreLayoutModule,
726
+ UpdButtonModule,
727
+ UpdLinkModule,
728
+ UpdDropdownModule,
729
+ FooterModule,
730
+ HeaderModule], exports: [VerticalSidebarLayoutComponent,
731
+ SidebarComponent,
732
+ PageHeaderComponent] }); }
733
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutModule, imports: [CommonModule,
734
+ RouterModule,
735
+ TranslocoModule,
736
+ UpdIconsModule,
737
+ UpdCoreLayoutModule,
738
+ UpdButtonModule,
739
+ UpdLinkModule,
740
+ UpdDropdownModule,
741
+ FooterModule,
742
+ HeaderModule] }); }
743
+ }
744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutModule, decorators: [{
745
+ type: NgModule,
746
+ args: [{
747
+ imports: [
748
+ CommonModule,
749
+ RouterModule,
750
+ TranslocoModule,
751
+ UpdIconsModule,
752
+ UpdCoreLayoutModule,
753
+ UpdButtonModule,
754
+ UpdLinkModule,
755
+ UpdDropdownModule,
756
+ FooterModule,
757
+ HeaderModule
758
+ ],
759
+ declarations: [
760
+ VerticalSidebarLayoutComponent,
761
+ SidebarComponent,
762
+ PageHeaderComponent
763
+ ],
764
+ exports: [
765
+ VerticalSidebarLayoutComponent,
766
+ SidebarComponent,
767
+ PageHeaderComponent
768
+ ]
769
+ }]
770
+ }], ctorParameters: () => [{ type: i1$1.TranslocoService }] });
771
+
772
+ class LoggedOutComponent {
773
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoggedOutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
774
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: LoggedOutComponent, selector: "upd-logged-out", ngImport: i0, template: "<p>logged-out works!</p>\n", styles: [""] }); }
775
+ }
776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoggedOutComponent, decorators: [{
777
+ type: Component,
778
+ args: [{ selector: 'upd-logged-out', template: "<p>logged-out works!</p>\n" }]
779
+ }] });
780
+
781
+ class LoginComponent {
782
+ constructor() {
783
+ this.formGroup = model(new FormGroup({}));
784
+ this.formRows = [];
785
+ this.isSigningIn = signal(false);
786
+ this.layoutConfigService = inject(UpdLayoutConfigService);
787
+ this.config = this.layoutConfigService.config.securityLayoutConfig.loginPage;
788
+ this.bodyClasses = ['border-top-wide', this.border, 'd-flex', 'flex-column'];
789
+ this.router = inject(Router);
790
+ this.authService = inject(AuthService);
791
+ this.layoutService = inject(LayoutService);
792
+ }
793
+ get border() {
794
+ return `border-${this.config.borderColor}`;
795
+ }
796
+ get linkClasses() {
797
+ return [`link-${this.config.linksColor}`];
798
+ }
799
+ get boxBgColor() {
800
+ return this.config.bgColor || (!!this.config.bgStyle ? `bg-${this.config.bgStyle}` : '') || 'bg-white';
801
+ }
802
+ ngOnInit() {
803
+ this.layoutService.addBodyClasses(this.boxBgColor);
804
+ if (this.config.layout !== 'cover') {
805
+ this.layoutService.addBodyClasses(...this.bodyClasses);
806
+ }
807
+ this.formRows = [
808
+ {
809
+ fields: [
810
+ {
811
+ name: 'username',
812
+ type: DynamicFieldType.Input,
813
+ colSize: { default: 12 },
814
+ label: { text: 'UpDevs.Login.Email', isTranslated: false },
815
+ validators: [Validators.required, Validators.minLength(3)],
816
+ shouldSubmitOnEnter: true
817
+ }
818
+ ]
819
+ },
820
+ {
821
+ fields: [
822
+ {
823
+ name: 'password',
824
+ type: DynamicFieldType.Input,
825
+ inputType: 'password',
826
+ colSize: { default: 12 },
827
+ label: { text: 'UpDevs.Login.Password', isTranslated: false },
828
+ validators: [Validators.required, Validators.minLength(3)],
829
+ shouldSubmitOnEnter: true
830
+ }
831
+ ]
832
+ },
833
+ {
834
+ fields: [
835
+ {
836
+ name: 'rememberMe',
837
+ type: DynamicFieldType.Checkbox,
838
+ colSize: { default: 12 },
839
+ label: { text: 'UpDevs.Login.RememberMe', isTranslated: false },
840
+ initValue: false
841
+ }
842
+ ]
843
+ }
844
+ ];
845
+ }
846
+ ngOnDestroy() {
847
+ this.layoutService.removeBodyClasses(this.boxBgColor);
848
+ if (this.config.layout !== 'cover') {
849
+ this.layoutService.removeBodyClasses(...this.bodyClasses);
850
+ }
851
+ }
852
+ login() {
853
+ // TODO: handle remember me
854
+ this.isSigningIn.set(true);
855
+ this.authService.login(this.formGroup().value.username, this.formGroup().value.password)
856
+ .pipe(finalize(() => this.isSigningIn.set(false)))
857
+ .subscribe();
858
+ }
859
+ goToRecoverPasswordPage() {
860
+ this.router.navigate([this.config.recoverPasswordRoute]).then();
861
+ }
862
+ goToSignUpPage() {
863
+ this.router.navigate([this.config.signUpRoute]).then();
864
+ }
865
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
866
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: LoginComponent, selector: "upd-login", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formGroup: "formGroupChange" }, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Login'\">\n <upd-header [style]=\"'transparent'\"></upd-header>\n <div class=\"page page-center\">\n @switch (config.layout) {\n @case ('centered-box') {\n <div class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCardTpl\"></ng-container>\n </div>\n }\n @case ('box-with-picture') {\n <div 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]=\"loginCardTpl\"></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 }\n @case ('cover') {\n <div class=\"row g-0 flex-fill\">\n <div class=\"col-12 col-lg-6 col-xl-4 border-top-wide d-flex flex-column justify-content-center\"\n [ngClass]=\"border\">\n <div class=\"container container-tight my-5 px-lg-5\">\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n\n <h2 class=\"h3 text-center mb-3\">\n {{ t('Title') }}\n </h2>\n\n <ng-container [ngTemplateOutlet]=\"loginFormTpl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"socialLoginTpl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"noAccountTpl\"></ng-container>\n </div>\n </div>\n <div class=\"col-12 col-lg-6 col-xl-8 d-none d-lg-block\">\n <div class=\"bg-cover h-100 min-vh-100 upd-right-login-cover-image\"></div>\n </div>\n </div>\n }\n }\n </div>\n <upd-footer></upd-footer>\n\n <ng-template #loginCardTpl>\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n <upd-card [removeBorder]=\"true\">\n <div class=\"p-4\">\n <h2 class=\"h2 text-center mb-4\">\n {{ t('Title') }}\n </h2>\n <ng-container [ngTemplateOutlet]=\"loginFormTpl\"></ng-container>\n </div>\n <ng-container [ngTemplateOutlet]=\"socialLoginTpl\"></ng-container>\n </upd-card>\n <ng-container [ngTemplateOutlet]=\"noAccountTpl\"></ng-container>\n </ng-template>\n\n <ng-template #loginFormTpl>\n <upd-form [rows]=\"formRows\" [hasActionsSection]=\"false\" [(formGroup)]=\"formGroup\" (submitted)=\"login()\"></upd-form>\n <div class=\"form-footer\">\n <upd-button [colorStyle]=\"config.signInButtonColor\" (clicked)=\"login()\" [isLoading]=\"isSigningIn()\"\n customClasses=\"w-100\">\n {{ t('SignIn') }}\n </upd-button>\n @if (!!config.recoverPasswordRoute) {\n <div class=\"d-flex mt-2\">\n <upd-link class=\"ms-auto\" [customClasses]=\"linkClasses\" (clicked)=\"goToRecoverPasswordPage()\">\n {{ t('RecoverPassword') }}\n </upd-link>\n </div>\n }\n </div>\n </ng-template>\n\n <ng-template #socialLoginTpl>\n @if (config.socialLoginButtons.length > 0) {\n <div class=\"hr-text\">\n {{ t('Or') }}\n </div>\n <div class=\"card-body\">\n <div class=\"row\">\n @for (btn of config.socialLoginButtons; track btn) {\n <div class=\"col\">\n <upd-button [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n </ng-template>\n\n <ng-template #headerTpl>\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 </ng-template>\n\n <ng-template #noAccountTpl>\n @if (!!config.signUpRoute) {\n <div class=\"text-center text-muted mt-3\">\n {{ t('NoAccountYet') }}\n <upd-link [customClasses]=\"linkClasses\" (clicked)=\"goToSignUpPage()\">{{ t('SignUp') }}</upd-link>\n </div>\n }\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }, { kind: "component", type: i6.CardComponent, selector: "upd-card", inputs: ["wrapperClasses", "title", "subtitle", "hoverEffect", "state", "type", "imagePosition", "bgColor", "stampIcon", "stampBackground", "statusBackground", "statusPosition", "ribbonBackground", "ribbonStyle", "ribbonIcon", "ribbonText", "rotate", "removeBorder", "useLightHeader", "showHeader", "isFooterTransparent", "footerText", "showProgressBar", "progress", "actions"] }, { kind: "component", type: i7.FormComponent, selector: "upd-form", inputs: ["rows", "layout", "title", "hasActionsSection", "isCard", "isDisabled", "isLoading", "isSaving", "formData", "formGroup"], outputs: ["initialized", "dataLoaded", "submitted", "formDataChange", "formGroupChange"] }, { kind: "component", type: FooterComponent, selector: "upd-footer" }, { kind: "component", type: HeaderComponent, selector: "upd-header", inputs: ["style"] }] }); }
867
+ }
868
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoginComponent, decorators: [{
869
+ type: Component,
870
+ args: [{ selector: 'upd-login', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Login'\">\n <upd-header [style]=\"'transparent'\"></upd-header>\n <div class=\"page page-center\">\n @switch (config.layout) {\n @case ('centered-box') {\n <div class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCardTpl\"></ng-container>\n </div>\n }\n @case ('box-with-picture') {\n <div 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]=\"loginCardTpl\"></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 }\n @case ('cover') {\n <div class=\"row g-0 flex-fill\">\n <div class=\"col-12 col-lg-6 col-xl-4 border-top-wide d-flex flex-column justify-content-center\"\n [ngClass]=\"border\">\n <div class=\"container container-tight my-5 px-lg-5\">\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n\n <h2 class=\"h3 text-center mb-3\">\n {{ t('Title') }}\n </h2>\n\n <ng-container [ngTemplateOutlet]=\"loginFormTpl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"socialLoginTpl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"noAccountTpl\"></ng-container>\n </div>\n </div>\n <div class=\"col-12 col-lg-6 col-xl-8 d-none d-lg-block\">\n <div class=\"bg-cover h-100 min-vh-100 upd-right-login-cover-image\"></div>\n </div>\n </div>\n }\n }\n </div>\n <upd-footer></upd-footer>\n\n <ng-template #loginCardTpl>\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n <upd-card [removeBorder]=\"true\">\n <div class=\"p-4\">\n <h2 class=\"h2 text-center mb-4\">\n {{ t('Title') }}\n </h2>\n <ng-container [ngTemplateOutlet]=\"loginFormTpl\"></ng-container>\n </div>\n <ng-container [ngTemplateOutlet]=\"socialLoginTpl\"></ng-container>\n </upd-card>\n <ng-container [ngTemplateOutlet]=\"noAccountTpl\"></ng-container>\n </ng-template>\n\n <ng-template #loginFormTpl>\n <upd-form [rows]=\"formRows\" [hasActionsSection]=\"false\" [(formGroup)]=\"formGroup\" (submitted)=\"login()\"></upd-form>\n <div class=\"form-footer\">\n <upd-button [colorStyle]=\"config.signInButtonColor\" (clicked)=\"login()\" [isLoading]=\"isSigningIn()\"\n customClasses=\"w-100\">\n {{ t('SignIn') }}\n </upd-button>\n @if (!!config.recoverPasswordRoute) {\n <div class=\"d-flex mt-2\">\n <upd-link class=\"ms-auto\" [customClasses]=\"linkClasses\" (clicked)=\"goToRecoverPasswordPage()\">\n {{ t('RecoverPassword') }}\n </upd-link>\n </div>\n }\n </div>\n </ng-template>\n\n <ng-template #socialLoginTpl>\n @if (config.socialLoginButtons.length > 0) {\n <div class=\"hr-text\">\n {{ t('Or') }}\n </div>\n <div class=\"card-body\">\n <div class=\"row\">\n @for (btn of config.socialLoginButtons; track btn) {\n <div class=\"col\">\n <upd-button [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n </ng-template>\n\n <ng-template #headerTpl>\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 </ng-template>\n\n <ng-template #noAccountTpl>\n @if (!!config.signUpRoute) {\n <div class=\"text-center text-muted mt-3\">\n {{ t('NoAccountYet') }}\n <upd-link [customClasses]=\"linkClasses\" (clicked)=\"goToSignUpPage()\">{{ t('SignUp') }}</upd-link>\n </div>\n }\n </ng-template>\n</ng-container>\n" }]
871
+ }] });
872
+
873
+ class OauthCallbackComponent {
874
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OauthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
875
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: OauthCallbackComponent, selector: "upd-oauth-callback", ngImport: i0, template: "<p>oauth-callback works!</p>\n", styles: [""] }); }
876
+ }
877
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OauthCallbackComponent, decorators: [{
878
+ type: Component,
879
+ args: [{ selector: 'upd-oauth-callback', template: "<p>oauth-callback works!</p>\n" }]
880
+ }] });
881
+
882
+ /**
883
+ * Auth flow routes.
884
+ */
885
+ const routes = [
886
+ { path: 'oauth/callback', component: OauthCallbackComponent },
887
+ { path: 'logged-out', component: LoggedOutComponent },
888
+ { path: 'login', component: LoginComponent }
889
+ ];
890
+ class AuthFlowRoutingModule {
891
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
892
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowRoutingModule, imports: [i1$3.RouterModule], exports: [RouterModule] }); }
893
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowRoutingModule, imports: [RouterModule.forRoot(routes, { useHash: true }), RouterModule] }); }
894
+ }
895
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowRoutingModule, decorators: [{
896
+ type: NgModule,
897
+ args: [{
898
+ imports: [RouterModule.forRoot(routes, { useHash: true })],
899
+ exports: [RouterModule]
900
+ }]
901
+ }] });
902
+
903
+ class AuthFlowModule {
904
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
905
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowModule, declarations: [LoginComponent,
906
+ OauthCallbackComponent,
907
+ LoggedOutComponent], imports: [CommonModule,
908
+ AuthFlowRoutingModule,
909
+ UpdButtonModule,
910
+ UpdIconsModule,
911
+ FormsModule,
912
+ TranslocoDirective,
913
+ UpdLinkModule,
914
+ UpdCardModule,
915
+ UpdFormModule,
916
+ FooterModule,
917
+ HeaderModule], exports: [LoginComponent,
918
+ OauthCallbackComponent,
919
+ LoggedOutComponent] }); }
920
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowModule, imports: [CommonModule,
921
+ AuthFlowRoutingModule,
922
+ UpdButtonModule,
923
+ UpdIconsModule,
924
+ FormsModule,
925
+ UpdLinkModule,
926
+ UpdCardModule,
927
+ UpdFormModule,
928
+ FooterModule,
929
+ HeaderModule] }); }
930
+ }
931
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowModule, decorators: [{
932
+ type: NgModule,
933
+ args: [{
934
+ imports: [
935
+ CommonModule,
936
+ AuthFlowRoutingModule,
937
+ UpdButtonModule,
938
+ UpdIconsModule,
939
+ FormsModule,
940
+ TranslocoDirective,
941
+ UpdLinkModule,
942
+ UpdCardModule,
943
+ UpdFormModule,
944
+ FooterModule,
945
+ HeaderModule
946
+ ],
947
+ declarations: [
948
+ LoginComponent,
949
+ OauthCallbackComponent,
950
+ LoggedOutComponent
951
+ ],
952
+ exports: [
953
+ LoginComponent,
954
+ OauthCallbackComponent,
955
+ LoggedOutComponent
956
+ ]
957
+ }]
958
+ }] });
959
+
960
+ /**
961
+ * Layout module.
962
+ */
963
+ class UpdLayoutModule {
964
+ /**
965
+ * Sets up the layout module with the provided configuration.
966
+ * @param config Configuration (See: #updsee[p:abstractions, i:UpdCoreLayoutConfig]).
967
+ */
968
+ static forRoot(config) {
969
+ return {
970
+ ngModule: UpdLayoutModule,
971
+ providers: [
972
+ { provide: LayoutConstants.defaultOptionsInjectionToken, useValue: config }
973
+ ]
974
+ };
975
+ }
976
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
977
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutModule, imports: [CommonModule,
978
+ UpdCoreLayoutModule,
979
+ UpdNotificationsModule] }); }
980
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutModule, providers: [
981
+ UpdLayoutConfigService
982
+ ], imports: [CommonModule,
983
+ UpdCoreLayoutModule,
984
+ UpdNotificationsModule] }); }
985
+ }
986
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutModule, decorators: [{
987
+ type: NgModule,
988
+ args: [{
989
+ imports: [
990
+ CommonModule,
991
+ UpdCoreLayoutModule,
992
+ UpdNotificationsModule
993
+ ],
994
+ providers: [
995
+ UpdLayoutConfigService
996
+ ]
997
+ }]
998
+ }] });
999
+
1000
+ /**
1001
+ * Generated bundle index. Do not edit.
1002
+ */
1003
+
1004
+ export { AuthFlowModule, AuthFlowRoutingModule, BasePageComponent, BlankLayoutComponent, BlankLayoutModule, FooterComponent, FooterModule, HeaderComponent, HeaderModule, LoggedOutComponent, LoginComponent, OauthCallbackComponent, PageHeaderComponent, SidebarComponent, UpdLayoutConfigService, UpdLayoutModule, VerticalSidebarLayoutComponent, VerticalSidebarLayoutModule, routes };
1005
+ //# sourceMappingURL=updevs-components-layout.mjs.map