@updevs/components 1.0.0-alpha.2 → 1.0.0-alpha.20

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