@updevs/components 1.0.0-alpha.3 → 1.0.0-alpha.30

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 (813) hide show
  1. package/README.md +5 -4
  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 +70 -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 +127 -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/input-field.model.mjs +2 -0
  150. package/esm2022/form/models/public-api.mjs +15 -0
  151. package/esm2022/form/models/radio-field.model.mjs +2 -0
  152. package/esm2022/form/models/radio-group-field.model.mjs +2 -0
  153. package/esm2022/form/models/select-field.model.mjs +2 -0
  154. package/esm2022/form/models/single-select-field.model.mjs +2 -0
  155. package/esm2022/form/models/textarea-field.model.mjs +2 -0
  156. package/esm2022/form/models/validator-config.mjs +2 -0
  157. package/esm2022/form/public-api.mjs +4 -0
  158. package/esm2022/form/tools/errors-helper.mjs +54 -0
  159. package/esm2022/form/upd-form.module.mjs +84 -0
  160. package/esm2022/form/updevs-components-form.mjs +5 -0
  161. package/esm2022/form-controls/abstractions/base-control.mjs +46 -0
  162. package/esm2022/form-controls/abstractions/index.mjs +2 -0
  163. package/esm2022/form-controls/abstractions/public-api.mjs +2 -0
  164. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +5 -0
  165. package/esm2022/form-controls/checkbox/checkbox.component.mjs +51 -0
  166. package/esm2022/form-controls/checkbox/index.mjs +2 -0
  167. package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
  168. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +32 -0
  169. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
  170. package/esm2022/form-controls/date-picker/date-picker.component.mjs +147 -0
  171. package/esm2022/form-controls/date-picker/index.mjs +2 -0
  172. package/esm2022/form-controls/date-picker/public-api.mjs +3 -0
  173. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +40 -0
  174. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +5 -0
  175. package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
  176. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
  177. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
  178. package/esm2022/form-controls/file-upload/file-upload.component.mjs +169 -0
  179. package/esm2022/form-controls/file-upload/index.mjs +2 -0
  180. package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
  181. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +48 -0
  182. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
  183. package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
  184. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
  185. package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
  186. package/esm2022/form-controls/input/index.mjs +2 -0
  187. package/esm2022/form-controls/input/input.component.mjs +185 -0
  188. package/esm2022/form-controls/input/public-api.mjs +5 -0
  189. package/esm2022/form-controls/input/types/input.type.mjs +2 -0
  190. package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
  191. package/esm2022/form-controls/input/types/public-api.mjs +3 -0
  192. package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
  193. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
  194. package/esm2022/form-controls/radio/index.mjs +2 -0
  195. package/esm2022/form-controls/radio/public-api.mjs +3 -0
  196. package/esm2022/form-controls/radio/radio.component.mjs +51 -0
  197. package/esm2022/form-controls/radio/upd-radio.module.mjs +32 -0
  198. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
  199. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +76 -0
  200. package/esm2022/form-controls/select/components/single/select.component.mjs +72 -0
  201. package/esm2022/form-controls/select/index.mjs +2 -0
  202. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +215 -0
  203. package/esm2022/form-controls/select/models/defaults.mjs +8 -0
  204. package/esm2022/form-controls/select/models/public-api.mjs +3 -0
  205. package/esm2022/form-controls/select/models/select-item.mjs +2 -0
  206. package/esm2022/form-controls/select/public-api.mjs +5 -0
  207. package/esm2022/form-controls/select/upd-select.module.mjs +57 -0
  208. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
  209. package/esm2022/form-controls/textarea/index.mjs +2 -0
  210. package/esm2022/form-controls/textarea/public-api.mjs +3 -0
  211. package/esm2022/form-controls/textarea/textarea.component.mjs +44 -0
  212. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
  213. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
  214. package/esm2022/form-controls/time-picker/index.mjs +2 -0
  215. package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
  216. package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
  217. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +124 -0
  218. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +61 -0
  219. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
  220. package/esm2022/index.mjs +2 -0
  221. package/esm2022/layout/abstractions/base-page.component.mjs +23 -0
  222. package/esm2022/layout/abstractions/base.layout.mjs +31 -0
  223. package/esm2022/layout/abstractions/public-api.mjs +2 -0
  224. package/esm2022/layout/assets/i18n/en.json +27 -0
  225. package/esm2022/layout/assets/i18n/pt.json +27 -0
  226. package/esm2022/layout/index.mjs +2 -0
  227. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +22 -0
  228. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +50 -0
  229. package/esm2022/layout/layouts/public-api.mjs +5 -0
  230. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +17 -0
  231. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +83 -0
  232. package/esm2022/layout/models/login-page-config.model.mjs +20 -0
  233. package/esm2022/layout/models/login-page.config.mjs +2 -0
  234. package/esm2022/layout/models/public-api.mjs +3 -0
  235. package/esm2022/layout/models/security-layout-config.model.mjs +10 -0
  236. package/esm2022/layout/models/security-layout.config.mjs +2 -0
  237. package/esm2022/layout/models/upd-layout-config.model.mjs +24 -0
  238. package/esm2022/layout/models/upd-layout.config.mjs +2 -0
  239. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
  240. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +73 -0
  241. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
  242. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +110 -0
  243. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
  244. package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
  245. package/esm2022/layout/pages/public-api.mjs +2 -0
  246. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +13 -0
  247. package/esm2022/layout/partials/footer/footer.component.mjs +55 -0
  248. package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
  249. package/esm2022/layout/partials/footer/public-api.mjs +4 -0
  250. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  251. package/esm2022/layout/partials/header/header.component.mjs +129 -0
  252. package/esm2022/layout/partials/header/header.module.mjs +40 -0
  253. package/esm2022/layout/partials/header/public-api.mjs +4 -0
  254. package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
  255. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  256. package/esm2022/layout/partials/public-api.mjs +5 -0
  257. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  258. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +114 -0
  259. package/esm2022/layout/public-api.mjs +8 -0
  260. package/esm2022/layout/services/public-api.mjs +2 -0
  261. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  262. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  263. package/esm2022/layout/upd-layout.module.mjs +47 -0
  264. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  265. package/esm2022/lib/index.mjs +2 -0
  266. package/esm2022/lib/models/public-api.mjs +2 -0
  267. package/esm2022/lib/models/row-column-size.mjs +2 -0
  268. package/esm2022/lib/public-api.mjs +5 -0
  269. package/esm2022/lib/tools/column-size.helper.mjs +12 -0
  270. package/esm2022/lib/tools/public-api.mjs +2 -0
  271. package/esm2022/lib/types/component-size.type.mjs +2 -0
  272. package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
  273. package/esm2022/lib/types/public-api.mjs +4 -0
  274. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  275. package/esm2022/lib/upd-components.module.mjs +14 -0
  276. package/esm2022/link/index.mjs +2 -0
  277. package/esm2022/link/link.component.mjs +51 -0
  278. package/esm2022/link/public-api.mjs +4 -0
  279. package/esm2022/link/target.type.mjs +2 -0
  280. package/esm2022/link/upd-link.module.mjs +24 -0
  281. package/esm2022/link/updevs-components-link.mjs +5 -0
  282. package/esm2022/list/assets/i18n/en.json +9 -0
  283. package/esm2022/list/assets/i18n/pt.json +9 -0
  284. package/esm2022/list/index.mjs +2 -0
  285. package/esm2022/list/list.component.mjs +113 -0
  286. package/esm2022/list/models/badge-position.type.mjs +2 -0
  287. package/esm2022/list/models/list-item.mjs +2 -0
  288. package/esm2022/list/models/list-item.model.mjs +15 -0
  289. package/esm2022/list/models/public-api.mjs +3 -0
  290. package/esm2022/list/public-api.mjs +4 -0
  291. package/esm2022/list/upd-list.module.mjs +44 -0
  292. package/esm2022/list/updevs-components-list.mjs +5 -0
  293. package/esm2022/modal/assets/i18n/en.json +17 -0
  294. package/esm2022/modal/assets/i18n/pt.json +17 -0
  295. package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
  296. package/esm2022/modal/index.mjs +2 -0
  297. package/esm2022/modal/models/base.modal.mjs +14 -0
  298. package/esm2022/modal/models/modal-config.model.mjs +20 -0
  299. package/esm2022/modal/models/modal-ref.mjs +2 -0
  300. package/esm2022/modal/models/modal.config.mjs +2 -0
  301. package/esm2022/modal/models/public-api.mjs +4 -0
  302. package/esm2022/modal/public-api.mjs +4 -0
  303. package/esm2022/modal/services/modal-alert.service.mjs +99 -0
  304. package/esm2022/modal/services/modal.service.mjs +30 -0
  305. package/esm2022/modal/services/public-api.mjs +3 -0
  306. package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
  307. package/esm2022/modal/types/modal-size.type.mjs +2 -0
  308. package/esm2022/modal/upd-modal.module.mjs +90 -0
  309. package/esm2022/modal/updevs-components-modal.mjs +5 -0
  310. package/esm2022/paginator/assets/i18n/en.json +15 -0
  311. package/esm2022/paginator/assets/i18n/pt.json +15 -0
  312. package/esm2022/paginator/index.mjs +2 -0
  313. package/esm2022/paginator/paginator.component.mjs +66 -0
  314. package/esm2022/paginator/public-api.mjs +3 -0
  315. package/esm2022/paginator/upd-paginator.module.mjs +47 -0
  316. package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
  317. package/esm2022/popover/index.mjs +2 -0
  318. package/esm2022/popover/popover.component.mjs +65 -0
  319. package/esm2022/popover/popover.directive.mjs +129 -0
  320. package/esm2022/popover/public-api.mjs +4 -0
  321. package/esm2022/popover/upd-popover.module.mjs +29 -0
  322. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  323. package/esm2022/public-api.mjs +2 -0
  324. package/esm2022/table/abstractions/base-column.model.mjs +52 -0
  325. package/esm2022/table/abstractions/base.column.mjs +98 -0
  326. package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
  327. package/esm2022/table/abstractions/public-api.mjs +3 -0
  328. package/esm2022/table/assets/i18n/en.json +74 -0
  329. package/esm2022/table/assets/i18n/pt.json +74 -0
  330. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
  331. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
  332. package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
  333. package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
  334. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
  335. package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
  336. package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
  337. package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
  338. package/esm2022/table/directives/public-api.mjs +2 -0
  339. package/esm2022/table/directives/table-column.directive.mjs +51 -0
  340. package/esm2022/table/index.mjs +2 -0
  341. package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
  342. package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
  343. package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
  344. package/esm2022/table/models/columns/image-column.model.mjs +11 -0
  345. package/esm2022/table/models/columns/number-column.model.mjs +17 -0
  346. package/esm2022/table/models/columns/public-api.mjs +7 -0
  347. package/esm2022/table/models/columns/text-column.model.mjs +11 -0
  348. package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
  349. package/esm2022/table/models/enums/public-api.mjs +2 -0
  350. package/esm2022/table/models/filter-item.model.mjs +2 -0
  351. package/esm2022/table/models/filter-operand.config.mjs +2 -0
  352. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
  353. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
  354. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
  355. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
  356. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
  357. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
  358. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
  359. package/esm2022/table/models/public-api.mjs +5 -0
  360. package/esm2022/table/models/saved-view.model.mjs +2 -0
  361. package/esm2022/table/models/table-config.model.mjs +21 -0
  362. package/esm2022/table/models/table.config.mjs +2 -0
  363. package/esm2022/table/models/upd-table-config.model.mjs +9 -0
  364. package/esm2022/table/models/upd-table.config.mjs +2 -0
  365. package/esm2022/table/public-api.mjs +6 -0
  366. package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
  367. package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
  368. package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
  369. package/esm2022/table/services/upd-table-config.service.mjs +18 -0
  370. package/esm2022/table/table.component.mjs +382 -0
  371. package/esm2022/table/tools/filters.tools.mjs +48 -0
  372. package/esm2022/table/tools/table.constants.mjs +15 -0
  373. package/esm2022/table/upd-table.module.mjs +150 -0
  374. package/esm2022/table/updevs-components-table.mjs +5 -0
  375. package/esm2022/updevs-components.mjs +5 -0
  376. package/fesm2022/updevs-components-badge.mjs +91 -0
  377. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  378. package/fesm2022/updevs-components-button.mjs +193 -0
  379. package/fesm2022/updevs-components-button.mjs.map +1 -0
  380. package/fesm2022/updevs-components-calendar.mjs +1712 -0
  381. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  382. package/fesm2022/updevs-components-card.mjs +238 -0
  383. package/fesm2022/updevs-components-card.mjs.map +1 -0
  384. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  385. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  386. package/fesm2022/updevs-components-dropdown.mjs +226 -0
  387. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  388. package/fesm2022/updevs-components-form-controls-abstractions.mjs +53 -0
  389. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  390. package/fesm2022/updevs-components-form-controls-checkbox.mjs +87 -0
  391. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  392. package/fesm2022/updevs-components-form-controls-date-picker.mjs +190 -0
  393. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  394. package/fesm2022/updevs-components-form-controls-file-upload.mjs +264 -0
  395. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  396. package/fesm2022/updevs-components-form-controls-input.mjs +259 -0
  397. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  398. package/fesm2022/updevs-components-form-controls-radio.mjs +87 -0
  399. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  400. package/fesm2022/updevs-components-form-controls-select.mjs +417 -0
  401. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  402. package/fesm2022/updevs-components-form-controls-textarea.mjs +72 -0
  403. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  404. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  405. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  406. package/fesm2022/updevs-components-form.mjs +436 -0
  407. package/fesm2022/updevs-components-form.mjs.map +1 -0
  408. package/fesm2022/updevs-components-layout.mjs +940 -0
  409. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  410. package/fesm2022/updevs-components-link.mjs +79 -0
  411. package/fesm2022/updevs-components-link.mjs.map +1 -0
  412. package/fesm2022/updevs-components-list.mjs +206 -0
  413. package/fesm2022/updevs-components-list.mjs.map +1 -0
  414. package/fesm2022/updevs-components-modal.mjs +504 -0
  415. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  416. package/fesm2022/updevs-components-paginator.mjs +160 -0
  417. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  418. package/fesm2022/updevs-components-popover.mjs +223 -0
  419. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  420. package/fesm2022/updevs-components-table.mjs +1709 -0
  421. package/fesm2022/updevs-components-table.mjs.map +1 -0
  422. package/fesm2022/updevs-components.mjs +33 -0
  423. package/fesm2022/updevs-components.mjs.map +1 -0
  424. package/form/components/dynamic-field/dynamic-field.component.d.ts +55 -0
  425. package/form/form.component.d.ts +60 -0
  426. package/form/models/checkbox-field.model.d.ts +4 -0
  427. package/form/models/checkbox-group-field.model.d.ts +6 -0
  428. package/form/models/dynamic-field.model.d.ts +28 -0
  429. package/form/models/enums/dynamic-field.type.d.ts +12 -0
  430. package/form/models/enums/public-api.d.ts +1 -0
  431. package/form/models/file-upload-field.model.d.ts +16 -0
  432. package/form/models/form-config.d.ts +2 -0
  433. package/form/models/form-row.model.d.ts +10 -0
  434. package/form/models/input-field.model.d.ts +9 -0
  435. package/form/models/public-api.d.ts +14 -0
  436. package/form/models/radio-field.model.d.ts +4 -0
  437. package/form/models/radio-group-field.model.d.ts +6 -0
  438. package/form/models/select-field.model.d.ts +28 -0
  439. package/form/models/single-select-field.model.d.ts +4 -0
  440. package/form/models/textarea-field.model.d.ts +10 -0
  441. package/form/models/validator-config.d.ts +5 -0
  442. package/form/public-api.d.ts +3 -0
  443. package/form/tools/errors-helper.d.ts +11 -0
  444. package/form/upd-form.module.d.ts +22 -0
  445. package/form-controls/abstractions/base-control.d.ts +29 -0
  446. package/form-controls/abstractions/index.d.ts +2 -0
  447. package/form-controls/abstractions/public-api.d.ts +2 -0
  448. package/form-controls/checkbox/checkbox.component.d.ts +19 -0
  449. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  450. package/form-controls/checkbox/upd-checkbox.module.d.ts +10 -0
  451. package/form-controls/date-picker/date-picker.component.d.ts +87 -0
  452. package/form-controls/date-picker/public-api.d.ts +2 -0
  453. package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
  454. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  455. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  456. package/form-controls/file-upload/public-api.d.ts +3 -0
  457. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  458. package/form-controls/input/directives/input-append.directive.d.ts +7 -0
  459. package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
  460. package/form-controls/input/input.component.d.ts +64 -0
  461. package/form-controls/input/upd-input.module.d.ts +13 -0
  462. package/form-controls/radio/radio.component.d.ts +17 -0
  463. package/form-controls/radio/upd-radio.module.d.ts +10 -0
  464. package/form-controls/select/components/multiple/select-multiple.component.d.ts +25 -0
  465. package/form-controls/select/components/single/select.component.d.ts +26 -0
  466. package/form-controls/select/models/abstractions/base-select.component.d.ts +77 -0
  467. package/form-controls/select/models/defaults.d.ts +8 -0
  468. package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  469. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  470. package/form-controls/select/upd-select.module.d.ts +16 -0
  471. package/form-controls/textarea/textarea.component.d.ts +19 -0
  472. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  473. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  474. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  475. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  476. package/index.d.ts +2 -0
  477. package/layout/abstractions/base-page.component.d.ts +12 -0
  478. package/layout/abstractions/base.layout.d.ts +15 -0
  479. package/layout/index.d.ts +1 -0
  480. package/layout/layouts/blank-layout/blank-layout.component.d.ts +9 -0
  481. package/layout/layouts/blank-layout/blank-layout.module.d.ts +15 -0
  482. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +6 -0
  483. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +22 -0
  484. package/layout/models/login-page-config.model.d.ts +46 -0
  485. package/layout/models/login-page.config.d.ts +44 -0
  486. package/layout/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  487. package/layout/models/security-layout-config.model.d.ts +12 -0
  488. package/layout/models/security-layout.config.d.ts +10 -0
  489. package/layout/models/upd-layout-config.model.d.ts +48 -0
  490. package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +9 -0
  491. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  492. package/layout/pages/auth-flow/auth-flow.module.d.ts +20 -0
  493. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  494. package/layout/pages/auth-flow/login/login.component.d.ts +26 -0
  495. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  496. package/layout/partials/footer/footer-copyright.directive.d.ts +5 -0
  497. package/layout/partials/footer/footer.component.d.ts +34 -0
  498. package/layout/partials/footer/footer.module.d.ts +9 -0
  499. package/layout/{src/partials/footer/public-api.ts → partials/footer/public-api.d.ts} +1 -0
  500. package/layout/partials/header/header.component.d.ts +48 -0
  501. package/layout/partials/header/header.module.d.ts +12 -0
  502. package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +1 -0
  503. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  504. package/layout/partials/sidebar/sidebar.component.d.ts +24 -0
  505. package/layout/services/upd-layout-config.service.d.ts +15 -0
  506. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  507. package/layout/upd-layout.module.d.ts +19 -0
  508. package/lib/index.d.ts +2 -0
  509. package/lib/models/public-api.d.ts +2 -0
  510. package/lib/models/row-column-size.d.ts +6 -0
  511. package/lib/public-api.d.ts +5 -0
  512. package/lib/tools/column-size.helper.d.ts +6 -0
  513. package/lib/tools/public-api.d.ts +2 -0
  514. package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +1 -0
  515. package/lib/types/horizontal-vertical.type.d.ts +2 -0
  516. package/lib/types/public-api.d.ts +4 -0
  517. package/lib/types/validation-status.type.d.ts +2 -0
  518. package/lib/upd-components.module.d.ts +7 -0
  519. package/link/index.d.ts +1 -0
  520. package/link/link.component.d.ts +22 -0
  521. package/link/upd-link.module.d.ts +8 -0
  522. package/list/index.d.ts +1 -0
  523. package/list/list.component.d.ts +46 -0
  524. package/list/{src/models/list-item.ts → models/list-item.d.ts} +3 -4
  525. package/list/models/list-item.model.d.ts +25 -0
  526. package/list/upd-list.module.d.ts +13 -0
  527. package/modal/components/modal-container/modal-container.component.d.ts +74 -0
  528. package/modal/index.d.ts +1 -0
  529. package/modal/models/base.modal.d.ts +8 -0
  530. package/modal/models/modal-config.model.d.ts +32 -0
  531. package/modal/models/modal-ref.d.ts +6 -0
  532. package/modal/models/modal.config.d.ts +30 -0
  533. package/modal/models/public-api.d.ts +3 -0
  534. package/modal/public-api.d.ts +3 -0
  535. package/modal/services/modal-alert.service.d.ts +22 -0
  536. package/modal/services/modal.service.d.ts +12 -0
  537. package/modal/services/public-api.d.ts +2 -0
  538. package/modal/types/modal-footer-style.type.d.ts +1 -0
  539. package/modal/types/modal-size.type.d.ts +1 -0
  540. package/modal/upd-modal.module.d.ts +18 -0
  541. package/package.json +169 -21
  542. package/paginator/index.d.ts +1 -0
  543. package/paginator/paginator.component.d.ts +42 -0
  544. package/paginator/public-api.d.ts +2 -0
  545. package/paginator/upd-paginator.module.d.ts +14 -0
  546. package/popover/index.d.ts +1 -0
  547. package/popover/popover.component.d.ts +22 -0
  548. package/popover/popover.directive.d.ts +33 -0
  549. package/popover/upd-popover.module.d.ts +9 -0
  550. package/public-api.d.ts +2 -0
  551. package/table/abstractions/base-column.model.d.ts +31 -0
  552. package/table/abstractions/base.column.d.ts +22 -0
  553. package/table/abstractions/filters-operands.service.d.ts +8 -0
  554. package/table/abstractions/public-api.d.ts +2 -0
  555. package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
  556. package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
  557. package/table/components/columns/number-column/number-column.component.d.ts +7 -0
  558. package/table/components/columns/text-column/text-column.component.d.ts +9 -0
  559. package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
  560. package/table/components/filter-row/filter-row.component.d.ts +40 -0
  561. package/table/components/save-search/save-search.component.d.ts +17 -0
  562. package/table/components/search-section/search-section.component.d.ts +36 -0
  563. package/table/directives/public-api.d.ts +1 -0
  564. package/table/directives/table-column.directive.d.ts +14 -0
  565. package/table/index.d.ts +1 -0
  566. package/table/models/columns/boolean-column.model.d.ts +15 -0
  567. package/table/models/columns/date-time-column.model.d.ts +8 -0
  568. package/table/models/columns/guid-column.model.d.ts +4 -0
  569. package/table/models/columns/image-column.model.d.ts +6 -0
  570. package/table/models/columns/number-column.model.d.ts +8 -0
  571. package/table/models/columns/public-api.d.ts +6 -0
  572. package/table/models/columns/text-column.model.d.ts +6 -0
  573. package/table/models/enums/column-type.enum.d.ts +13 -0
  574. package/table/models/enums/public-api.d.ts +1 -0
  575. package/table/models/filter-item.model.d.ts +6 -0
  576. package/table/models/filter-operand.config.d.ts +9 -0
  577. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
  578. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
  579. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
  580. package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
  581. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
  582. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
  583. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
  584. package/table/models/public-api.d.ts +4 -0
  585. package/table/models/saved-view.model.d.ts +11 -0
  586. package/table/models/table-config.model.d.ts +24 -0
  587. package/table/models/table.config.d.ts +22 -0
  588. package/table/models/upd-table-config.model.d.ts +6 -0
  589. package/table/models/upd-table.config.d.ts +6 -0
  590. package/table/public-api.d.ts +5 -0
  591. package/table/services/default-filters-operands.service.d.ts +17 -0
  592. package/table/services/storages/saved-views.storage.d.ts +19 -0
  593. package/table/services/stores/filters-operands.store.d.ts +11 -0
  594. package/table/services/upd-table-config.service.d.ts +12 -0
  595. package/table/table.component.d.ts +78 -0
  596. package/table/tools/filters.tools.d.ts +9 -0
  597. package/table/tools/table.constants.d.ts +15 -0
  598. package/table/upd-table.module.d.ts +40 -0
  599. package/CHANGELOG.md +0 -8
  600. package/button/ng-package.json +0 -7
  601. package/button/src/button.component.html +0 -8
  602. package/button/src/button.component.scss +0 -5
  603. package/button/src/button.component.spec.ts +0 -23
  604. package/button/src/button.component.ts +0 -154
  605. package/button/src/upd-button.module.ts +0 -17
  606. package/card/ng-package.json +0 -7
  607. package/card/src/card.component.html +0 -105
  608. package/card/src/card.component.scss +0 -47
  609. package/card/src/card.component.spec.ts +0 -23
  610. package/card/src/card.component.ts +0 -112
  611. package/card/src/directives/card-actions.directive.spec.ts +0 -8
  612. package/card/src/directives/card-actions.directive.ts +0 -11
  613. package/card/src/directives/card-footer.directive.spec.ts +0 -8
  614. package/card/src/directives/card-footer.directive.ts +0 -11
  615. package/card/src/directives/card-header.directive.spec.ts +0 -8
  616. package/card/src/directives/card-header.directive.ts +0 -11
  617. package/card/src/directives/card-image.directive.spec.ts +0 -8
  618. package/card/src/directives/card-image.directive.ts +0 -11
  619. package/card/src/types/public-api.ts +0 -5
  620. package/card/src/upd-card.module.ts +0 -32
  621. package/dropdown/ng-package.json +0 -7
  622. package/dropdown/src/dropdown.component.html +0 -32
  623. package/dropdown/src/dropdown.component.scss +0 -19
  624. package/dropdown/src/dropdown.component.spec.ts +0 -23
  625. package/dropdown/src/dropdown.component.ts +0 -182
  626. package/dropdown/src/models/public-api.ts +0 -2
  627. package/dropdown/src/upd-dropdown.module.ts +0 -25
  628. package/form/ng-package.json +0 -7
  629. package/form/src/form.module.ts +0 -10
  630. package/form/src/public-api.ts +0 -1
  631. package/form-controls/checkbox/ng-package.json +0 -7
  632. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  633. package/form-controls/checkbox/src/checkbox.component.scss +0 -0
  634. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  635. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  636. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  637. package/form-controls/input/ng-package.json +0 -7
  638. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  639. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  640. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  641. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  642. package/form-controls/input/src/input.component.html +0 -82
  643. package/form-controls/input/src/input.component.scss +0 -13
  644. package/form-controls/input/src/input.component.spec.ts +0 -23
  645. package/form-controls/input/src/input.component.ts +0 -124
  646. package/form-controls/input/src/upd-input.module.ts +0 -29
  647. package/form-controls/radio/ng-package.json +0 -7
  648. package/form-controls/radio/src/radio.component.html +0 -7
  649. package/form-controls/radio/src/radio.component.scss +0 -0
  650. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  651. package/form-controls/radio/src/radio.component.ts +0 -47
  652. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  653. package/form-controls/select/ng-package.json +0 -7
  654. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  655. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  656. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  657. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  658. package/form-controls/select/src/components/shared.scss +0 -40
  659. package/form-controls/select/src/components/single/select.component.html +0 -53
  660. package/form-controls/select/src/components/single/select.component.scss +0 -3
  661. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  662. package/form-controls/select/src/components/single/select.component.ts +0 -58
  663. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  664. package/form-controls/select/src/upd-select.module.ts +0 -32
  665. package/form-controls/textarea/ng-package.json +0 -7
  666. package/form-controls/textarea/src/textarea.component.html +0 -8
  667. package/form-controls/textarea/src/textarea.component.scss +0 -0
  668. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  669. package/form-controls/textarea/src/textarea.component.ts +0 -47
  670. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  671. package/form-controls/time-picker/ng-package.json +0 -7
  672. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  673. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  674. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  675. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  676. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  677. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  678. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  679. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  680. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  681. package/layout/ng-package.json +0 -7
  682. package/layout/src/abstractions/base-page.component.ts +0 -21
  683. package/layout/src/assets/i18n/en.json +0 -5
  684. package/layout/src/assets/i18n/pt.json +0 -5
  685. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  686. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  687. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  688. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  689. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  690. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  691. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  692. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  693. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  694. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  695. package/layout/src/models/upd-layout-config.model.ts +0 -71
  696. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  697. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  698. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  699. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  700. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  701. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  702. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  703. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  704. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  705. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  706. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  707. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  708. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  709. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  710. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  711. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  712. package/layout/src/partials/footer/footer.component.html +0 -30
  713. package/layout/src/partials/footer/footer.component.scss +0 -0
  714. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  715. package/layout/src/partials/footer/footer.component.ts +0 -73
  716. package/layout/src/partials/header/header.component.html +0 -163
  717. package/layout/src/partials/header/header.component.scss +0 -0
  718. package/layout/src/partials/header/header.component.spec.ts +0 -23
  719. package/layout/src/partials/header/header.component.ts +0 -86
  720. package/layout/src/partials/page-header/page-header.component.html +0 -19
  721. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  722. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  723. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  724. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  725. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  726. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  727. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  728. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  729. package/layout/src/services/upd-layout-config.service.ts +0 -20
  730. package/layout/src/upd-layout.module.ts +0 -34
  731. package/link/ng-package.json +0 -7
  732. package/link/src/link.component.html +0 -3
  733. package/link/src/link.component.scss +0 -3
  734. package/link/src/link.component.spec.ts +0 -23
  735. package/link/src/link.component.ts +0 -48
  736. package/link/src/upd-link.module.ts +0 -17
  737. package/list/ng-package.json +0 -7
  738. package/list/src/assets/i18n/en.json +0 -5
  739. package/list/src/assets/i18n/pt.json +0 -5
  740. package/list/src/list.component.html +0 -58
  741. package/list/src/list.component.scss +0 -21
  742. package/list/src/list.component.spec.ts +0 -23
  743. package/list/src/list.component.ts +0 -147
  744. package/list/src/models/list-item.model.ts +0 -35
  745. package/list/src/upd-list.module.ts +0 -30
  746. package/ng-package.json +0 -10
  747. package/popover/ng-package.json +0 -7
  748. package/popover/src/popover.component.html +0 -20
  749. package/popover/src/popover.component.scss +0 -8
  750. package/popover/src/popover.component.spec.ts +0 -23
  751. package/popover/src/popover.component.ts +0 -53
  752. package/popover/src/popover.directive.spec.ts +0 -8
  753. package/popover/src/popover.directive.ts +0 -128
  754. package/popover/src/upd-popover.module.ts +0 -20
  755. package/src/lib/public-api.ts +0 -2
  756. package/src/lib/types/public-api.ts +0 -2
  757. package/src/lib/types/validation-status.type.ts +0 -1
  758. package/src/lib/upd-components.module.ts +0 -6
  759. package/src/public-api.ts +0 -1
  760. package/tsconfig.lib.json +0 -14
  761. package/tsconfig.lib.prod.json +0 -10
  762. package/tsconfig.spec.json +0 -14
  763. /package/{button/src/index.ts → badge/index.d.ts} +0 -0
  764. /package/{card/src/index.ts → button/index.d.ts} +0 -0
  765. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  766. /package/{dropdown/src/index.ts → calendar/index.d.ts} +0 -0
  767. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  768. /package/{form-controls/checkbox/src/index.ts → card/index.d.ts} +0 -0
  769. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  770. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  771. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  772. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  773. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  774. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  775. /package/{form-controls/input/src/index.ts → drag-and-drop/index.d.ts} +0 -0
  776. /package/{form-controls/radio/src/index.ts → dropdown/index.d.ts} +0 -0
  777. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  778. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  779. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  780. /package/{src/lib/index.ts → form/index.d.ts} +0 -0
  781. /package/form-controls/{select/src/index.ts → checkbox/index.d.ts} +0 -0
  782. /package/form-controls/{textarea/src/index.ts → date-picker/index.d.ts} +0 -0
  783. /package/form-controls/{time-picker/src/index.ts → file-upload/index.d.ts} +0 -0
  784. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  785. /package/{form/src/index.ts → form-controls/input/index.d.ts} +0 -0
  786. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  787. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  788. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  789. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  790. /package/{layout/src/index.ts → form-controls/radio/index.d.ts} +0 -0
  791. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  792. /package/{link/src/index.ts → form-controls/select/index.d.ts} +0 -0
  793. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  794. /package/{list/src/index.ts → form-controls/textarea/index.d.ts} +0 -0
  795. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  796. /package/{popover/src/index.ts → form-controls/time-picker/index.d.ts} +0 -0
  797. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  798. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  799. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  800. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  801. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  802. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  803. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  804. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  805. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  806. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  807. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  808. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  809. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  810. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  811. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  812. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  813. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,940 @@
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.textService = inject(TextService);
525
+ this.router = inject(Router);
526
+ this.menuService = inject(MenuService);
527
+ }
528
+ ngOnInit() {
529
+ this.menuItems = this.menuService.generateMenu();
530
+ const routerSub = this.router.events.pipe(filter(event => event instanceof NavigationStart)).subscribe(event => this.updateActiveRoute(event.url));
531
+ this.updateActiveRoute(this.router.url);
532
+ this.addSubscriptions(routerSub);
533
+ }
534
+ onMenuItemClick(item) {
535
+ if (item.isLocked) {
536
+ if (!!item.lockedClickFunction) {
537
+ item.lockedClickFunction();
538
+ }
539
+ return;
540
+ }
541
+ this.resetMenuState(this.menuItems);
542
+ item.isActive = true;
543
+ this.updateParents(item);
544
+ if (!!item.clickFunction) {
545
+ item.clickFunction();
546
+ return;
547
+ }
548
+ if ((item.children?.length || 0) > 0) {
549
+ return;
550
+ }
551
+ this.router.navigate(item.getFullPath()).then();
552
+ }
553
+ hasChildren(item) {
554
+ return (item.children?.length || 0) > 0;
555
+ }
556
+ asMenuItem(item) {
557
+ return item;
558
+ }
559
+ getItemClasses(item, activeClass, ...classes) {
560
+ return [
561
+ ...classes,
562
+ item.isActive ? activeClass : '',
563
+ item.isLocked ? 'disabled' : ''
564
+ ];
565
+ }
566
+ findActiveNode(item, fullPath) {
567
+ if (item.fullPath === fullPath) {
568
+ return item;
569
+ }
570
+ else if (item.children.length > 0) {
571
+ let result;
572
+ for (let i = 0; !result && i < item.children.length; i++) {
573
+ result = this.findActiveNode(item.children[i], fullPath);
574
+ }
575
+ return result;
576
+ }
577
+ return undefined;
578
+ }
579
+ updateActiveRoute(newPath) {
580
+ this.resetMenuState(this.menuItems);
581
+ let item;
582
+ for (const mi of this.menuItems) {
583
+ item = this.findActiveNode(mi, newPath);
584
+ if (!!item) {
585
+ break;
586
+ }
587
+ }
588
+ while (!!item) {
589
+ item.isActive = true;
590
+ item = item.parent;
591
+ }
592
+ }
593
+ resetMenuState(items) {
594
+ items.forEach(i => {
595
+ i.isActive = false;
596
+ if (i.children.length > 0) {
597
+ this.resetMenuState(i.children);
598
+ }
599
+ });
600
+ }
601
+ updateParents(menuItem) {
602
+ let item = menuItem;
603
+ while (!!item) {
604
+ item.isActive = true;
605
+ item = item.parent;
606
+ }
607
+ }
608
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SidebarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
609
+ 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\">{{ textService.getText(item.title) }}</span>\n @if (item.isLocked) {\n <upd-icon class=\"ms-auto\" [model]=\"{tablerIcon: 'lock'}\"></upd-icon>\n }\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n @for (child of asMenuItem(item).children; track child) {\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 }); }
610
+ }
611
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SidebarComponent, decorators: [{
612
+ type: Component,
613
+ 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\">{{ textService.getText(item.title) }}</span>\n @if (item.isLocked) {\n <upd-icon class=\"ms-auto\" [model]=\"{tablerIcon: 'lock'}\"></upd-icon>\n }\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n @for (child of asMenuItem(item).children; track child) {\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" }]
614
+ }], propDecorators: { wrapperClasses: [{
615
+ type: HostBinding,
616
+ args: ['class']
617
+ }], theme: [{
618
+ type: HostBinding,
619
+ args: ['attr.data-bs-theme']
620
+ }] } });
621
+
622
+ class PageHeaderComponent {
623
+ constructor() {
624
+ this.model = input.required();
625
+ }
626
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
627
+ 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"] }] }); }
628
+ }
629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PageHeaderComponent, decorators: [{
630
+ type: Component,
631
+ 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" }]
632
+ }] });
633
+
634
+ class VerticalSidebarLayoutComponent extends BaseLayout {
635
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
636
+ 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 }); }
637
+ }
638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutComponent, decorators: [{
639
+ type: Component,
640
+ 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" }]
641
+ }] });
642
+
643
+ class VerticalSidebarLayoutModule {
644
+ constructor(translocoService) {
645
+ translocoService.setFallbackLangForMissingTranslation({ fallbackLang: 'en' });
646
+ translocoService.setTranslation(en$1, 'en');
647
+ translocoService.setTranslation(pt$1, 'pt');
648
+ }
649
+ 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 }); }
650
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutModule, declarations: [VerticalSidebarLayoutComponent,
651
+ SidebarComponent,
652
+ PageHeaderComponent,
653
+ FooterCopyrightDirective], imports: [CommonModule,
654
+ RouterModule,
655
+ TranslocoModule,
656
+ UpdIconsModule,
657
+ UpdCoreLayoutModule,
658
+ UpdButtonModule,
659
+ UpdLinkModule,
660
+ UpdDropdownModule,
661
+ FooterModule,
662
+ HeaderModule], exports: [VerticalSidebarLayoutComponent,
663
+ SidebarComponent,
664
+ PageHeaderComponent,
665
+ FooterCopyrightDirective] }); }
666
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutModule, imports: [CommonModule,
667
+ RouterModule,
668
+ TranslocoModule,
669
+ UpdIconsModule,
670
+ UpdCoreLayoutModule,
671
+ UpdButtonModule,
672
+ UpdLinkModule,
673
+ UpdDropdownModule,
674
+ FooterModule,
675
+ HeaderModule] }); }
676
+ }
677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: VerticalSidebarLayoutModule, decorators: [{
678
+ type: NgModule,
679
+ args: [{
680
+ imports: [
681
+ CommonModule,
682
+ RouterModule,
683
+ TranslocoModule,
684
+ UpdIconsModule,
685
+ UpdCoreLayoutModule,
686
+ UpdButtonModule,
687
+ UpdLinkModule,
688
+ UpdDropdownModule,
689
+ FooterModule,
690
+ HeaderModule
691
+ ],
692
+ declarations: [
693
+ VerticalSidebarLayoutComponent,
694
+ SidebarComponent,
695
+ PageHeaderComponent,
696
+ FooterCopyrightDirective
697
+ ],
698
+ exports: [
699
+ VerticalSidebarLayoutComponent,
700
+ SidebarComponent,
701
+ PageHeaderComponent,
702
+ FooterCopyrightDirective
703
+ ]
704
+ }]
705
+ }], ctorParameters: () => [{ type: i1$1.TranslocoService }] });
706
+
707
+ class LoggedOutComponent {
708
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoggedOutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
709
+ 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: [""] }); }
710
+ }
711
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoggedOutComponent, decorators: [{
712
+ type: Component,
713
+ args: [{ selector: 'upd-logged-out', template: "<p>logged-out works!</p>\n" }]
714
+ }] });
715
+
716
+ class LoginComponent {
717
+ constructor() {
718
+ this.formGroup = model(new FormGroup({}));
719
+ this.formRows = [];
720
+ this.isSigningIn = signal(false);
721
+ this.layoutConfigService = inject(UpdLayoutConfigService);
722
+ this.config = this.layoutConfigService.config.securityLayoutConfig.loginPage;
723
+ this.bodyClasses = ['border-top-wide', this.border, 'd-flex', 'flex-column'];
724
+ this.router = inject(Router);
725
+ this.authService = inject(AuthService);
726
+ this.layoutService = inject(LayoutService);
727
+ }
728
+ get border() {
729
+ return `border-${this.config.borderColor}`;
730
+ }
731
+ get linkClasses() {
732
+ return [`link-${this.config.linksColor}`];
733
+ }
734
+ get boxBgColor() {
735
+ return this.config.bgColor || (!!this.config.bgStyle ? `bg-${this.config.bgStyle}` : '') || 'bg-white';
736
+ }
737
+ ngOnInit() {
738
+ this.layoutService.addBodyClasses(this.boxBgColor);
739
+ if (this.config.layout !== 'cover') {
740
+ this.layoutService.addBodyClasses(...this.bodyClasses);
741
+ }
742
+ this.formRows = [
743
+ {
744
+ fields: [
745
+ {
746
+ name: 'username',
747
+ type: DynamicFieldType.Input,
748
+ colSize: { default: 12 },
749
+ label: { text: 'UpDevs.Login.Email', isTranslated: false },
750
+ validators: [Validators.required, Validators.minLength(3)],
751
+ shouldSubmitOnEnter: true
752
+ }
753
+ ]
754
+ },
755
+ {
756
+ fields: [
757
+ {
758
+ name: 'password',
759
+ type: DynamicFieldType.Input,
760
+ inputType: 'password',
761
+ colSize: { default: 12 },
762
+ label: { text: 'UpDevs.Login.Password', isTranslated: false },
763
+ validators: [Validators.required, Validators.minLength(3)],
764
+ shouldSubmitOnEnter: true
765
+ }
766
+ ]
767
+ },
768
+ {
769
+ fields: [
770
+ {
771
+ name: 'rememberMe',
772
+ type: DynamicFieldType.Checkbox,
773
+ colSize: { default: 12 },
774
+ label: { text: 'UpDevs.Login.RememberMe', isTranslated: false },
775
+ initValue: false
776
+ }
777
+ ]
778
+ }
779
+ ];
780
+ }
781
+ ngOnDestroy() {
782
+ this.layoutService.removeBodyClasses(this.boxBgColor);
783
+ if (this.config.layout !== 'cover') {
784
+ this.layoutService.removeBodyClasses(...this.bodyClasses);
785
+ }
786
+ }
787
+ login() {
788
+ // TODO: handle remember me
789
+ this.isSigningIn.set(true);
790
+ this.authService.login(this.formGroup().value.username, this.formGroup().value.password)
791
+ .pipe(finalize(() => this.isSigningIn.set(false)))
792
+ .subscribe();
793
+ }
794
+ goToRecoverPasswordPage() {
795
+ this.router.navigate([this.config.recoverPasswordRoute]).then();
796
+ }
797
+ goToSignUpPage() {
798
+ this.router.navigate([this.config.signUpRoute]).then();
799
+ }
800
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
801
+ 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"] }] }); }
802
+ }
803
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoginComponent, decorators: [{
804
+ type: Component,
805
+ 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" }]
806
+ }] });
807
+
808
+ class OauthCallbackComponent {
809
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OauthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
810
+ 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: [""] }); }
811
+ }
812
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OauthCallbackComponent, decorators: [{
813
+ type: Component,
814
+ args: [{ selector: 'upd-oauth-callback', template: "<p>oauth-callback works!</p>\n" }]
815
+ }] });
816
+
817
+ /**
818
+ * Auth flow routes.
819
+ */
820
+ const routes = [
821
+ { path: 'oauth/callback', component: OauthCallbackComponent },
822
+ { path: 'logged-out', component: LoggedOutComponent },
823
+ { path: 'login', component: LoginComponent }
824
+ ];
825
+ class AuthFlowRoutingModule {
826
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
827
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowRoutingModule, imports: [i1$3.RouterModule], exports: [RouterModule] }); }
828
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowRoutingModule, imports: [RouterModule.forRoot(routes, { useHash: true }), RouterModule] }); }
829
+ }
830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowRoutingModule, decorators: [{
831
+ type: NgModule,
832
+ args: [{
833
+ imports: [RouterModule.forRoot(routes, { useHash: true })],
834
+ exports: [RouterModule]
835
+ }]
836
+ }] });
837
+
838
+ class AuthFlowModule {
839
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
840
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowModule, declarations: [LoginComponent,
841
+ OauthCallbackComponent,
842
+ LoggedOutComponent], imports: [CommonModule,
843
+ AuthFlowRoutingModule,
844
+ UpdButtonModule,
845
+ UpdIconsModule,
846
+ FormsModule,
847
+ TranslocoDirective,
848
+ UpdLinkModule,
849
+ UpdCardModule,
850
+ UpdFormModule,
851
+ FooterModule,
852
+ HeaderModule], exports: [LoginComponent,
853
+ OauthCallbackComponent,
854
+ LoggedOutComponent] }); }
855
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowModule, imports: [CommonModule,
856
+ AuthFlowRoutingModule,
857
+ UpdButtonModule,
858
+ UpdIconsModule,
859
+ FormsModule,
860
+ UpdLinkModule,
861
+ UpdCardModule,
862
+ UpdFormModule,
863
+ FooterModule,
864
+ HeaderModule] }); }
865
+ }
866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: AuthFlowModule, decorators: [{
867
+ type: NgModule,
868
+ args: [{
869
+ imports: [
870
+ CommonModule,
871
+ AuthFlowRoutingModule,
872
+ UpdButtonModule,
873
+ UpdIconsModule,
874
+ FormsModule,
875
+ TranslocoDirective,
876
+ UpdLinkModule,
877
+ UpdCardModule,
878
+ UpdFormModule,
879
+ FooterModule,
880
+ HeaderModule
881
+ ],
882
+ declarations: [
883
+ LoginComponent,
884
+ OauthCallbackComponent,
885
+ LoggedOutComponent
886
+ ],
887
+ exports: [
888
+ LoginComponent,
889
+ OauthCallbackComponent,
890
+ LoggedOutComponent
891
+ ]
892
+ }]
893
+ }] });
894
+
895
+ /**
896
+ * Layout module.
897
+ */
898
+ class UpdLayoutModule {
899
+ /**
900
+ * Sets up the layout module with the provided configuration.
901
+ * @param config Configuration (See: #updsee[p:abstractions, i:UpdCoreLayoutConfig]).
902
+ */
903
+ static forRoot(config) {
904
+ return {
905
+ ngModule: UpdLayoutModule,
906
+ providers: [
907
+ { provide: LayoutConstants.defaultOptionsInjectionToken, useValue: config }
908
+ ]
909
+ };
910
+ }
911
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
912
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutModule, imports: [CommonModule,
913
+ UpdCoreLayoutModule,
914
+ UpdNotificationsModule] }); }
915
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutModule, providers: [
916
+ UpdLayoutConfigService
917
+ ], imports: [CommonModule,
918
+ UpdCoreLayoutModule,
919
+ UpdNotificationsModule] }); }
920
+ }
921
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdLayoutModule, decorators: [{
922
+ type: NgModule,
923
+ args: [{
924
+ imports: [
925
+ CommonModule,
926
+ UpdCoreLayoutModule,
927
+ UpdNotificationsModule
928
+ ],
929
+ providers: [
930
+ UpdLayoutConfigService
931
+ ]
932
+ }]
933
+ }] });
934
+
935
+ /**
936
+ * Generated bundle index. Do not edit.
937
+ */
938
+
939
+ export { AuthFlowModule, AuthFlowRoutingModule, BasePageComponent, BlankLayoutComponent, BlankLayoutModule, FooterComponent, FooterCopyrightDirective, FooterModule, HeaderComponent, HeaderModule, LoggedOutComponent, LoginComponent, OauthCallbackComponent, PageHeaderComponent, SidebarComponent, UpdLayoutConfigService, UpdLayoutModule, VerticalSidebarLayoutComponent, VerticalSidebarLayoutModule, routes };
940
+ //# sourceMappingURL=updevs-components-layout.mjs.map