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

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