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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/README.md +4 -7
  2. package/assets/styles/_bootstrap-components.scss +18 -1
  3. package/assets/styles/_core.scss +9 -0
  4. package/assets/styles/_debug.scss +49 -0
  5. package/assets/styles/_props.scss +91 -0
  6. package/assets/styles/_seven-columns.scss +73 -0
  7. package/assets/styles/_updevs.scss +4 -0
  8. package/assets/styles/_utilities-marketing.scss +209 -0
  9. package/assets/styles/_utilities.scss +127 -92
  10. package/assets/styles/_variables-dark.scss +8 -6
  11. package/assets/styles/_variables.scss +325 -256
  12. package/assets/styles/helpers/_index.scss +143 -0
  13. package/assets/styles/layout/_core.scss +3 -2
  14. package/assets/styles/layout/_dark.scss +40 -35
  15. package/assets/styles/layout/_footer.scss +1 -1
  16. package/assets/styles/layout/_navbar.scss +31 -19
  17. package/assets/styles/layout/_page.scss +6 -5
  18. package/assets/styles/layout/_root.scss +26 -34
  19. package/assets/styles/marketing/_browser.scss +67 -0
  20. package/assets/styles/marketing/_core.scss +8 -0
  21. package/assets/styles/marketing/_hero.scss +70 -0
  22. package/assets/styles/marketing/_pricing.scss +111 -0
  23. package/assets/styles/marketing/_sections.scss +124 -0
  24. package/assets/styles/marketing/_shape.scss +31 -0
  25. package/assets/styles/mixins/_functions.scss +53 -0
  26. package/assets/styles/mixins/_mixins.scss +9 -9
  27. package/assets/styles/ui/_accordion.scss +165 -11
  28. package/assets/styles/ui/_alerts.scss +80 -38
  29. package/assets/styles/ui/_avatars.scss +36 -9
  30. package/assets/styles/ui/_badges.scss +47 -13
  31. package/assets/styles/ui/_button-group.scss +1 -1
  32. package/assets/styles/ui/_buttons.scss +33 -37
  33. package/assets/styles/ui/_calendars.scss +2 -2
  34. package/assets/styles/ui/_cards.scss +9 -0
  35. package/assets/styles/ui/_carousel.scss +1 -1
  36. package/assets/styles/ui/_charts.scss +1 -1
  37. package/assets/styles/ui/_chat.scss +38 -0
  38. package/assets/styles/ui/_close.scss +54 -1
  39. package/assets/styles/ui/_datagrid.scss +1 -1
  40. package/assets/styles/ui/_dropdowns.scss +3 -0
  41. package/assets/styles/ui/_empty.scss +0 -5
  42. package/assets/styles/ui/_flags.scss +2 -2
  43. package/assets/styles/ui/_forms.scss +33 -7
  44. package/assets/styles/ui/_grid.scss +1 -1
  45. package/assets/styles/ui/_icons.scss +1 -1
  46. package/assets/styles/ui/_images.scss +4 -0
  47. package/assets/styles/ui/_lists.scss +12 -16
  48. package/assets/styles/ui/_loaders.scss +1 -1
  49. package/assets/styles/ui/_markdown.scss +15 -4
  50. package/assets/styles/ui/_modals.scss +2 -2
  51. package/assets/styles/ui/_nav.scss +17 -3
  52. package/assets/styles/ui/_offcanvas.scss +2 -2
  53. package/assets/styles/ui/_pagination.scss +2 -0
  54. package/assets/styles/ui/_payments.scss +1 -1
  55. package/assets/styles/ui/_placeholder.scss +1 -1
  56. package/assets/styles/ui/_progress.scss +1 -1
  57. package/assets/styles/ui/_ribbons.scss +1 -0
  58. package/assets/styles/ui/_segmented.scss +101 -0
  59. package/assets/styles/ui/_signature.scss +15 -0
  60. package/assets/styles/ui/_social.scss +52 -0
  61. package/assets/styles/ui/_status.scss +1 -1
  62. package/assets/styles/ui/_steps.scss +5 -1
  63. package/assets/styles/ui/_switch-icon.scss +1 -1
  64. package/assets/styles/ui/_tables.scss +27 -1
  65. package/assets/styles/ui/_tags.scss +1 -1
  66. package/assets/styles/ui/_timeline.scss +1 -1
  67. package/assets/styles/ui/_toasts.scss +0 -1
  68. package/assets/styles/ui/_tracking.scss +1 -1
  69. package/assets/styles/ui/_type.scss +169 -8
  70. package/assets/styles/ui/forms/_form-check.scss +1 -1
  71. package/assets/styles/ui/forms/_form-colorinput.scss +1 -1
  72. package/assets/styles/ui/forms/_form-custom.scss +1 -1
  73. package/assets/styles/ui/forms/_form-imagecheck.scss +6 -5
  74. package/assets/styles/ui/forms/_form-selectgroup.scss +2 -2
  75. package/assets/styles/ui/typo/_hr.scss +4 -2
  76. package/assets/styles/utils/_colors.scss +72 -11
  77. package/assets/styles/utils/_opacity.scss +1 -1
  78. package/assets/styles/utils/_scroll.scss +0 -2
  79. package/assets/styles/utils/_sizing.scss +1 -1
  80. package/assets/styles/utils/_text.scss +1 -2
  81. package/assets/styles/vendor/_apexcharts.scss +52 -0
  82. package/assets/styles/vendor/_coloris.scss +72 -0
  83. package/assets/styles/vendor/_dropzone.scss +27 -0
  84. package/assets/styles/vendor/_fslightbox.scss +13 -0
  85. package/assets/styles/vendor/_jsvectormap.scss +47 -0
  86. package/assets/styles/vendor/_litepicker.scss +69 -0
  87. package/assets/styles/vendor/_nouislider.scss +49 -0
  88. package/assets/styles/vendor/_plyr.scss +3 -0
  89. package/assets/styles/vendor/_stars-rating.scss +22 -0
  90. package/assets/styles/vendor/_tom-select.scss +81 -0
  91. package/assets/styles/vendor/_turbo.scss +3 -0
  92. package/assets/styles/vendor/_typed.scss +4 -0
  93. package/assets/styles/vendor/_wysiwyg.scss +46 -0
  94. package/badge/badge-config.model.d.ts +14 -0
  95. package/badge/badge.component.d.ts +24 -0
  96. package/badge/badge.config.d.ts +12 -0
  97. package/badge/public-api.d.ts +3 -0
  98. package/badge/upd-badge.module.d.ts +8 -0
  99. package/button/button.component.d.ts +61 -0
  100. package/button/upd-button.module.d.ts +10 -0
  101. package/calendar/calendar.component.d.ts +127 -0
  102. package/calendar/components/calendar-body/calendar-body.component.d.ts +263 -0
  103. package/calendar/components/calendar-header/calendar-header.component.d.ts +57 -0
  104. package/calendar/components/calendar-month-view/calendar-month-view.component.d.ts +151 -0
  105. package/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.d.ts +10 -0
  106. package/calendar/components/calendar-year-view/calendar-year-view.component.d.ts +9 -0
  107. package/calendar/models/calendar-cell.model.d.ts +16 -0
  108. package/calendar/models/calendar-user-event.model.d.ts +4 -0
  109. package/calendar/models/date-range.model.d.ts +26 -0
  110. package/calendar/models/public-api.d.ts +2 -0
  111. package/calendar/public-api.d.ts +5 -0
  112. package/calendar/services/calendar-range-strategy.service.d.ts +35 -0
  113. package/calendar/services/calendar-signals.service.d.ts +24 -0
  114. package/calendar/services/calendar.service.d.ts +15 -0
  115. package/calendar/services/public-api.d.ts +1 -0
  116. package/calendar/tools/events-options.d.ts +12 -0
  117. package/calendar/tools/keyboard-tools.d.ts +9 -0
  118. package/calendar/tools/passive-listeners.d.ts +16 -0
  119. package/calendar/types/calendar-cell-class-function.type.d.ts +3 -0
  120. package/calendar/types/calendar-cell-css-classes.type.d.ts +3 -0
  121. package/calendar/types/calendar-view.type.d.ts +1 -0
  122. package/calendar/types/modifier-key.type.d.ts +1 -0
  123. package/calendar/types/public-api.d.ts +1 -0
  124. package/calendar/upd-calendar.module.d.ts +18 -0
  125. package/card/card.component.d.ts +54 -0
  126. package/card/directives/card-actions.directive.d.ts +7 -0
  127. package/card/directives/card-footer.directive.d.ts +7 -0
  128. package/card/directives/card-header.directive.d.ts +7 -0
  129. package/card/directives/card-image.directive.d.ts +7 -0
  130. package/card/upd-card.module.d.ts +14 -0
  131. package/drag-and-drop/drag-and-drop.component.d.ts +26 -0
  132. package/drag-and-drop/models/drag-and-drop-column.config.d.ts +8 -0
  133. package/drag-and-drop/models/drag-and-drop-column.model.d.ts +10 -0
  134. package/drag-and-drop/models/drag-and-drop-item.d.ts +7 -0
  135. package/drag-and-drop/models/drag-and-drop-item.model.d.ts +13 -0
  136. package/drag-and-drop/models/drag-and-drop.config.d.ts +6 -0
  137. package/drag-and-drop/models/public-api.d.ts +4 -0
  138. package/drag-and-drop/public-api.d.ts +3 -0
  139. package/drag-and-drop/upd-drag-and-drop.module.d.ts +9 -0
  140. package/dropdown/dropdown.component.d.ts +76 -0
  141. package/dropdown/models/dropdown-action-clicked.model.d.ts +6 -0
  142. package/dropdown/{src/models/dropdown-item.ts → models/dropdown-item.d.ts} +7 -4
  143. package/dropdown/{src/models/dropdown-item.type.ts → models/dropdown-item.type.d.ts} +1 -1
  144. package/dropdown/models/public-api.d.ts +4 -0
  145. package/dropdown/models/toolbar.type.d.ts +1 -0
  146. package/dropdown/upd-dropdown.module.d.ts +12 -0
  147. package/esm2022/badge/badge-config.model.mjs +14 -0
  148. package/esm2022/badge/badge.component.mjs +50 -0
  149. package/esm2022/badge/badge.config.mjs +2 -0
  150. package/esm2022/badge/index.mjs +2 -0
  151. package/esm2022/badge/public-api.mjs +4 -0
  152. package/esm2022/badge/upd-badge.module.mjs +24 -0
  153. package/esm2022/badge/updevs-components-badge.mjs +5 -0
  154. package/esm2022/button/button.component.mjs +157 -0
  155. package/esm2022/button/index.mjs +2 -0
  156. package/esm2022/button/public-api.mjs +3 -0
  157. package/esm2022/button/upd-button.module.mjs +32 -0
  158. package/esm2022/button/updevs-components-button.mjs +5 -0
  159. package/esm2022/calendar/assets/i18n/en.json +16 -0
  160. package/esm2022/calendar/assets/i18n/pt.json +16 -0
  161. package/esm2022/calendar/calendar.component.mjs +247 -0
  162. package/esm2022/calendar/components/calendar-body/calendar-body.component.mjs +515 -0
  163. package/esm2022/calendar/components/calendar-header/calendar-header.component.mjs +144 -0
  164. package/esm2022/calendar/components/calendar-month-view/calendar-month-view.component.mjs +423 -0
  165. package/esm2022/calendar/components/calendar-multi-year-view/calendar-multi-year-view.component.mjs +18 -0
  166. package/esm2022/calendar/components/calendar-year-view/calendar-year-view.component.mjs +17 -0
  167. package/esm2022/calendar/index.mjs +2 -0
  168. package/esm2022/calendar/models/calendar-cell.model.mjs +18 -0
  169. package/esm2022/calendar/models/calendar-user-event.model.mjs +2 -0
  170. package/esm2022/calendar/models/date-range.model.mjs +18 -0
  171. package/esm2022/calendar/models/public-api.mjs +3 -0
  172. package/esm2022/calendar/public-api.mjs +6 -0
  173. package/esm2022/calendar/services/calendar-range-strategy.service.mjs +99 -0
  174. package/esm2022/calendar/services/calendar-signals.service.mjs +47 -0
  175. package/esm2022/calendar/services/calendar.service.mjs +40 -0
  176. package/esm2022/calendar/services/public-api.mjs +2 -0
  177. package/esm2022/calendar/tools/events-options.mjs +14 -0
  178. package/esm2022/calendar/tools/keyboard-tools.mjs +14 -0
  179. package/esm2022/calendar/tools/passive-listeners.mjs +29 -0
  180. package/esm2022/calendar/types/calendar-cell-class-function.type.mjs +2 -0
  181. package/esm2022/calendar/types/calendar-cell-css-classes.type.mjs +2 -0
  182. package/esm2022/calendar/types/calendar-view.type.mjs +2 -0
  183. package/esm2022/calendar/types/modifier-key.type.mjs +2 -0
  184. package/esm2022/calendar/types/public-api.mjs +2 -0
  185. package/esm2022/calendar/upd-calendar.module.mjs +70 -0
  186. package/esm2022/calendar/updevs-components-calendar.mjs +5 -0
  187. package/esm2022/card/card.component.mjs +136 -0
  188. package/esm2022/card/directives/card-actions.directive.mjs +16 -0
  189. package/esm2022/card/directives/card-footer.directive.mjs +16 -0
  190. package/esm2022/card/directives/card-header.directive.mjs +16 -0
  191. package/esm2022/card/directives/card-image.directive.mjs +16 -0
  192. package/esm2022/card/directives/public-api.mjs +5 -0
  193. package/esm2022/card/index.mjs +2 -0
  194. package/esm2022/card/public-api.mjs +4 -0
  195. package/esm2022/card/types/card-state.type.mjs +2 -0
  196. package/esm2022/card/types/card-style.type.mjs +2 -0
  197. package/esm2022/card/types/hover-effect.type.mjs +2 -0
  198. package/esm2022/card/types/ribbon-style.type.mjs +2 -0
  199. package/esm2022/card/types/status-position.type.mjs +2 -0
  200. package/esm2022/card/upd-card.module.mjs +50 -0
  201. package/esm2022/card/updevs-components-card.mjs +5 -0
  202. package/esm2022/drag-and-drop/drag-and-drop.component.mjs +134 -0
  203. package/esm2022/drag-and-drop/index.mjs +2 -0
  204. package/esm2022/drag-and-drop/models/drag-and-drop-column.config.mjs +2 -0
  205. package/esm2022/drag-and-drop/models/drag-and-drop-column.model.mjs +9 -0
  206. package/esm2022/drag-and-drop/models/drag-and-drop-item.mjs +2 -0
  207. package/esm2022/drag-and-drop/models/drag-and-drop-item.model.mjs +14 -0
  208. package/esm2022/drag-and-drop/models/drag-and-drop.config.mjs +2 -0
  209. package/esm2022/drag-and-drop/models/public-api.mjs +5 -0
  210. package/esm2022/drag-and-drop/public-api.mjs +4 -0
  211. package/esm2022/drag-and-drop/upd-drag-and-drop.module.mjs +28 -0
  212. package/esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs +5 -0
  213. package/esm2022/dropdown/dropdown.component.mjs +182 -0
  214. package/esm2022/dropdown/index.mjs +2 -0
  215. package/esm2022/dropdown/models/dropdown-action-clicked.model.mjs +2 -0
  216. package/esm2022/dropdown/models/dropdown-item.mjs +2 -0
  217. package/esm2022/dropdown/models/dropdown-item.type.mjs +2 -0
  218. package/esm2022/dropdown/models/public-api.mjs +5 -0
  219. package/esm2022/dropdown/models/toolbar.type.mjs +2 -0
  220. package/esm2022/dropdown/public-api.mjs +4 -0
  221. package/esm2022/dropdown/upd-dropdown.module.mjs +40 -0
  222. package/esm2022/dropdown/updevs-components-dropdown.mjs +5 -0
  223. package/esm2022/form/assets/i18n/en.json +17 -0
  224. package/esm2022/form/assets/i18n/pt.json +17 -0
  225. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +127 -0
  226. package/esm2022/form/form.component.mjs +122 -0
  227. package/esm2022/form/index.mjs +2 -0
  228. package/esm2022/form/models/checkbox-field.model.mjs +2 -0
  229. package/esm2022/form/models/checkbox-group-field.model.mjs +2 -0
  230. package/esm2022/form/models/dynamic-field.model.mjs +2 -0
  231. package/esm2022/form/models/enums/dynamic-field.type.mjs +14 -0
  232. package/esm2022/form/models/enums/public-api.mjs +2 -0
  233. package/esm2022/form/models/file-upload-field.model.mjs +2 -0
  234. package/esm2022/form/models/form-config.mjs +2 -0
  235. package/esm2022/form/models/form-row.model.mjs +2 -0
  236. package/esm2022/form/models/input-field.model.mjs +2 -0
  237. package/esm2022/form/models/public-api.mjs +15 -0
  238. package/esm2022/form/models/radio-field.model.mjs +2 -0
  239. package/esm2022/form/models/radio-group-field.model.mjs +2 -0
  240. package/esm2022/form/models/select-field.model.mjs +2 -0
  241. package/esm2022/form/models/single-select-field.model.mjs +2 -0
  242. package/esm2022/form/models/textarea-field.model.mjs +2 -0
  243. package/esm2022/form/models/validator-config.mjs +2 -0
  244. package/esm2022/form/public-api.mjs +4 -0
  245. package/esm2022/form/tools/errors-helper.mjs +54 -0
  246. package/esm2022/form/upd-form.module.mjs +84 -0
  247. package/esm2022/form/updevs-components-form.mjs +5 -0
  248. package/esm2022/form-controls/abstractions/base-control.mjs +46 -0
  249. package/esm2022/form-controls/abstractions/index.mjs +2 -0
  250. package/esm2022/form-controls/abstractions/public-api.mjs +2 -0
  251. package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +5 -0
  252. package/esm2022/form-controls/checkbox/checkbox.component.mjs +51 -0
  253. package/esm2022/form-controls/checkbox/index.mjs +2 -0
  254. package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
  255. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +32 -0
  256. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
  257. package/esm2022/form-controls/date-picker/date-picker.component.mjs +147 -0
  258. package/esm2022/form-controls/date-picker/index.mjs +2 -0
  259. package/esm2022/form-controls/date-picker/public-api.mjs +3 -0
  260. package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +40 -0
  261. package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +5 -0
  262. package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
  263. package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
  264. package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
  265. package/esm2022/form-controls/file-upload/file-upload.component.mjs +169 -0
  266. package/esm2022/form-controls/file-upload/index.mjs +2 -0
  267. package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
  268. package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +48 -0
  269. package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
  270. package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
  271. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
  272. package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
  273. package/esm2022/form-controls/input/index.mjs +2 -0
  274. package/esm2022/form-controls/input/input.component.mjs +185 -0
  275. package/esm2022/form-controls/input/public-api.mjs +5 -0
  276. package/esm2022/form-controls/input/types/input.type.mjs +2 -0
  277. package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
  278. package/esm2022/form-controls/input/types/public-api.mjs +3 -0
  279. package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
  280. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
  281. package/esm2022/form-controls/radio/index.mjs +2 -0
  282. package/esm2022/form-controls/radio/public-api.mjs +3 -0
  283. package/esm2022/form-controls/radio/radio.component.mjs +51 -0
  284. package/esm2022/form-controls/radio/upd-radio.module.mjs +32 -0
  285. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
  286. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +76 -0
  287. package/esm2022/form-controls/select/components/single/select.component.mjs +72 -0
  288. package/esm2022/form-controls/select/index.mjs +2 -0
  289. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +215 -0
  290. package/esm2022/form-controls/select/models/defaults.mjs +8 -0
  291. package/esm2022/form-controls/select/models/public-api.mjs +3 -0
  292. package/esm2022/form-controls/select/models/select-item.mjs +2 -0
  293. package/esm2022/form-controls/select/public-api.mjs +5 -0
  294. package/esm2022/form-controls/select/upd-select.module.mjs +57 -0
  295. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
  296. package/esm2022/form-controls/textarea/index.mjs +2 -0
  297. package/esm2022/form-controls/textarea/public-api.mjs +3 -0
  298. package/esm2022/form-controls/textarea/textarea.component.mjs +44 -0
  299. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
  300. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
  301. package/esm2022/form-controls/time-picker/index.mjs +2 -0
  302. package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
  303. package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
  304. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +124 -0
  305. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +61 -0
  306. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
  307. package/esm2022/index.mjs +2 -0
  308. package/esm2022/layout/abstractions/base-page.component.mjs +23 -0
  309. package/esm2022/layout/abstractions/base.layout.mjs +31 -0
  310. package/esm2022/layout/abstractions/public-api.mjs +2 -0
  311. package/esm2022/layout/assets/i18n/en.json +27 -0
  312. package/esm2022/layout/assets/i18n/pt.json +27 -0
  313. package/esm2022/layout/index.mjs +2 -0
  314. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +22 -0
  315. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +50 -0
  316. package/esm2022/layout/layouts/public-api.mjs +5 -0
  317. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +17 -0
  318. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +78 -0
  319. package/esm2022/layout/models/login-page-config.model.mjs +20 -0
  320. package/esm2022/layout/models/login-page.config.mjs +2 -0
  321. package/esm2022/layout/models/public-api.mjs +3 -0
  322. package/esm2022/layout/models/security-layout-config.model.mjs +10 -0
  323. package/esm2022/layout/models/security-layout.config.mjs +2 -0
  324. package/esm2022/layout/models/upd-layout-config.model.mjs +24 -0
  325. package/esm2022/layout/models/upd-layout.config.mjs +2 -0
  326. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
  327. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +73 -0
  328. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
  329. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +110 -0
  330. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
  331. package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
  332. package/esm2022/layout/pages/public-api.mjs +2 -0
  333. package/esm2022/layout/partials/footer/footer.component.mjs +52 -0
  334. package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
  335. package/esm2022/layout/partials/footer/public-api.mjs +3 -0
  336. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  337. package/esm2022/layout/partials/header/header.component.mjs +130 -0
  338. package/esm2022/layout/partials/header/header.module.mjs +40 -0
  339. package/esm2022/layout/partials/header/public-api.mjs +4 -0
  340. package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
  341. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  342. package/esm2022/layout/partials/public-api.mjs +5 -0
  343. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  344. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +195 -0
  345. package/esm2022/layout/public-api.mjs +8 -0
  346. package/esm2022/layout/services/public-api.mjs +2 -0
  347. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  348. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  349. package/esm2022/layout/upd-layout.module.mjs +47 -0
  350. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  351. package/esm2022/lib/index.mjs +2 -0
  352. package/esm2022/lib/models/public-api.mjs +2 -0
  353. package/esm2022/lib/models/row-column-size.mjs +2 -0
  354. package/esm2022/lib/public-api.mjs +5 -0
  355. package/esm2022/lib/tools/column-size.helper.mjs +12 -0
  356. package/esm2022/lib/tools/public-api.mjs +2 -0
  357. package/esm2022/lib/types/component-size.type.mjs +2 -0
  358. package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
  359. package/esm2022/lib/types/public-api.mjs +4 -0
  360. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  361. package/esm2022/lib/upd-components.module.mjs +14 -0
  362. package/esm2022/link/index.mjs +2 -0
  363. package/esm2022/link/link.component.mjs +51 -0
  364. package/esm2022/link/public-api.mjs +4 -0
  365. package/esm2022/link/target.type.mjs +2 -0
  366. package/esm2022/link/upd-link.module.mjs +24 -0
  367. package/esm2022/link/updevs-components-link.mjs +5 -0
  368. package/esm2022/list/assets/i18n/en.json +9 -0
  369. package/esm2022/list/assets/i18n/pt.json +9 -0
  370. package/esm2022/list/index.mjs +2 -0
  371. package/esm2022/list/list.component.mjs +113 -0
  372. package/esm2022/list/models/badge-position.type.mjs +2 -0
  373. package/esm2022/list/models/list-item.mjs +2 -0
  374. package/esm2022/list/models/list-item.model.mjs +15 -0
  375. package/esm2022/list/models/public-api.mjs +3 -0
  376. package/esm2022/list/public-api.mjs +4 -0
  377. package/esm2022/list/upd-list.module.mjs +44 -0
  378. package/esm2022/list/updevs-components-list.mjs +5 -0
  379. package/esm2022/modal/assets/i18n/en.json +17 -0
  380. package/esm2022/modal/assets/i18n/pt.json +17 -0
  381. package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
  382. package/esm2022/modal/index.mjs +2 -0
  383. package/esm2022/modal/models/base.modal.mjs +14 -0
  384. package/esm2022/modal/models/modal-config.model.mjs +20 -0
  385. package/esm2022/modal/models/modal-ref.mjs +2 -0
  386. package/esm2022/modal/models/modal.config.mjs +2 -0
  387. package/esm2022/modal/models/public-api.mjs +4 -0
  388. package/esm2022/modal/public-api.mjs +4 -0
  389. package/esm2022/modal/services/modal-alert.service.mjs +99 -0
  390. package/esm2022/modal/services/modal.service.mjs +30 -0
  391. package/esm2022/modal/services/public-api.mjs +3 -0
  392. package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
  393. package/esm2022/modal/types/modal-size.type.mjs +2 -0
  394. package/esm2022/modal/upd-modal.module.mjs +90 -0
  395. package/esm2022/modal/updevs-components-modal.mjs +5 -0
  396. package/esm2022/paginator/assets/i18n/en.json +15 -0
  397. package/esm2022/paginator/assets/i18n/pt.json +15 -0
  398. package/esm2022/paginator/index.mjs +2 -0
  399. package/esm2022/paginator/paginator.component.mjs +66 -0
  400. package/esm2022/paginator/public-api.mjs +3 -0
  401. package/esm2022/paginator/upd-paginator.module.mjs +47 -0
  402. package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
  403. package/esm2022/popover/index.mjs +2 -0
  404. package/esm2022/popover/popover.component.mjs +65 -0
  405. package/esm2022/popover/popover.directive.mjs +129 -0
  406. package/esm2022/popover/public-api.mjs +4 -0
  407. package/esm2022/popover/upd-popover.module.mjs +29 -0
  408. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  409. package/esm2022/public-api.mjs +2 -0
  410. package/esm2022/table/abstractions/base-column.model.mjs +52 -0
  411. package/esm2022/table/abstractions/base.column.mjs +98 -0
  412. package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
  413. package/esm2022/table/abstractions/public-api.mjs +3 -0
  414. package/esm2022/table/assets/i18n/en.json +74 -0
  415. package/esm2022/table/assets/i18n/pt.json +74 -0
  416. package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
  417. package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
  418. package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
  419. package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
  420. package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
  421. package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
  422. package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
  423. package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
  424. package/esm2022/table/directives/public-api.mjs +2 -0
  425. package/esm2022/table/directives/table-column.directive.mjs +52 -0
  426. package/esm2022/table/index.mjs +2 -0
  427. package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
  428. package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
  429. package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
  430. package/esm2022/table/models/columns/image-column.model.mjs +11 -0
  431. package/esm2022/table/models/columns/number-column.model.mjs +17 -0
  432. package/esm2022/table/models/columns/public-api.mjs +7 -0
  433. package/esm2022/table/models/columns/text-column.model.mjs +11 -0
  434. package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
  435. package/esm2022/table/models/enums/public-api.mjs +2 -0
  436. package/esm2022/table/models/filter-item.model.mjs +2 -0
  437. package/esm2022/table/models/filter-operand.config.mjs +2 -0
  438. package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
  439. package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
  440. package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
  441. package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
  442. package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
  443. package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
  444. package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
  445. package/esm2022/table/models/public-api.mjs +5 -0
  446. package/esm2022/table/models/saved-view.model.mjs +2 -0
  447. package/esm2022/table/models/table-config.model.mjs +29 -0
  448. package/esm2022/table/models/table.config.mjs +2 -0
  449. package/esm2022/table/models/upd-table-config.model.mjs +9 -0
  450. package/esm2022/table/models/upd-table.config.mjs +2 -0
  451. package/esm2022/table/public-api.mjs +6 -0
  452. package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
  453. package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
  454. package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
  455. package/esm2022/table/services/upd-table-config.service.mjs +18 -0
  456. package/esm2022/table/table.component.mjs +442 -0
  457. package/esm2022/table/tools/filters.tools.mjs +48 -0
  458. package/esm2022/table/tools/table.constants.mjs +15 -0
  459. package/esm2022/table/upd-table.module.mjs +150 -0
  460. package/esm2022/table/updevs-components-table.mjs +5 -0
  461. package/esm2022/updevs-components.mjs +5 -0
  462. package/fesm2022/updevs-components-badge.mjs +91 -0
  463. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  464. package/fesm2022/updevs-components-button.mjs +193 -0
  465. package/fesm2022/updevs-components-button.mjs.map +1 -0
  466. package/fesm2022/updevs-components-calendar.mjs +1712 -0
  467. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  468. package/fesm2022/updevs-components-card.mjs +238 -0
  469. package/fesm2022/updevs-components-card.mjs.map +1 -0
  470. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  471. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  472. package/fesm2022/updevs-components-dropdown.mjs +226 -0
  473. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  474. package/fesm2022/updevs-components-form-controls-abstractions.mjs +53 -0
  475. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  476. package/fesm2022/updevs-components-form-controls-checkbox.mjs +87 -0
  477. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  478. package/fesm2022/updevs-components-form-controls-date-picker.mjs +190 -0
  479. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  480. package/fesm2022/updevs-components-form-controls-file-upload.mjs +264 -0
  481. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  482. package/fesm2022/updevs-components-form-controls-input.mjs +259 -0
  483. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  484. package/fesm2022/updevs-components-form-controls-radio.mjs +87 -0
  485. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  486. package/fesm2022/updevs-components-form-controls-select.mjs +417 -0
  487. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  488. package/fesm2022/updevs-components-form-controls-textarea.mjs +72 -0
  489. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  490. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  491. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  492. package/fesm2022/updevs-components-form.mjs +436 -0
  493. package/fesm2022/updevs-components-form.mjs.map +1 -0
  494. package/fesm2022/updevs-components-layout.mjs +1005 -0
  495. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  496. package/fesm2022/updevs-components-link.mjs +79 -0
  497. package/fesm2022/updevs-components-link.mjs.map +1 -0
  498. package/fesm2022/updevs-components-list.mjs +206 -0
  499. package/fesm2022/updevs-components-list.mjs.map +1 -0
  500. package/fesm2022/updevs-components-modal.mjs +504 -0
  501. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  502. package/fesm2022/updevs-components-paginator.mjs +160 -0
  503. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  504. package/fesm2022/updevs-components-popover.mjs +223 -0
  505. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  506. package/fesm2022/updevs-components-table.mjs +1771 -0
  507. package/fesm2022/updevs-components-table.mjs.map +1 -0
  508. package/fesm2022/updevs-components.mjs +33 -0
  509. package/fesm2022/updevs-components.mjs.map +1 -0
  510. package/form/components/dynamic-field/dynamic-field.component.d.ts +55 -0
  511. package/form/form.component.d.ts +60 -0
  512. package/form/models/checkbox-field.model.d.ts +4 -0
  513. package/form/models/checkbox-group-field.model.d.ts +6 -0
  514. package/form/models/dynamic-field.model.d.ts +28 -0
  515. package/form/models/enums/dynamic-field.type.d.ts +12 -0
  516. package/form/models/enums/public-api.d.ts +1 -0
  517. package/form/models/file-upload-field.model.d.ts +16 -0
  518. package/form/models/form-config.d.ts +2 -0
  519. package/form/models/form-row.model.d.ts +10 -0
  520. package/form/models/input-field.model.d.ts +9 -0
  521. package/form/models/public-api.d.ts +14 -0
  522. package/form/models/radio-field.model.d.ts +4 -0
  523. package/form/models/radio-group-field.model.d.ts +6 -0
  524. package/form/models/select-field.model.d.ts +28 -0
  525. package/form/models/single-select-field.model.d.ts +4 -0
  526. package/form/models/textarea-field.model.d.ts +10 -0
  527. package/form/models/validator-config.d.ts +5 -0
  528. package/form/public-api.d.ts +3 -0
  529. package/form/tools/errors-helper.d.ts +11 -0
  530. package/form/upd-form.module.d.ts +22 -0
  531. package/form-controls/abstractions/base-control.d.ts +29 -0
  532. package/form-controls/abstractions/index.d.ts +2 -0
  533. package/form-controls/abstractions/public-api.d.ts +2 -0
  534. package/form-controls/checkbox/checkbox.component.d.ts +19 -0
  535. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  536. package/form-controls/checkbox/upd-checkbox.module.d.ts +10 -0
  537. package/form-controls/date-picker/date-picker.component.d.ts +87 -0
  538. package/form-controls/date-picker/public-api.d.ts +2 -0
  539. package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
  540. package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
  541. package/form-controls/file-upload/file-upload.component.d.ts +46 -0
  542. package/form-controls/file-upload/public-api.d.ts +3 -0
  543. package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
  544. package/form-controls/input/directives/input-append.directive.d.ts +7 -0
  545. package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
  546. package/form-controls/input/input.component.d.ts +64 -0
  547. package/form-controls/input/upd-input.module.d.ts +13 -0
  548. package/form-controls/radio/radio.component.d.ts +17 -0
  549. package/form-controls/radio/upd-radio.module.d.ts +10 -0
  550. package/form-controls/select/components/multiple/select-multiple.component.d.ts +25 -0
  551. package/form-controls/select/components/single/select.component.d.ts +26 -0
  552. package/form-controls/select/models/abstractions/base-select.component.d.ts +77 -0
  553. package/form-controls/select/models/defaults.d.ts +8 -0
  554. package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  555. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  556. package/form-controls/select/upd-select.module.d.ts +16 -0
  557. package/form-controls/textarea/textarea.component.d.ts +19 -0
  558. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  559. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  560. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  561. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  562. package/index.d.ts +2 -0
  563. package/layout/abstractions/base-page.component.d.ts +12 -0
  564. package/layout/abstractions/base.layout.d.ts +15 -0
  565. package/layout/index.d.ts +1 -0
  566. package/layout/layouts/blank-layout/blank-layout.component.d.ts +9 -0
  567. package/layout/layouts/blank-layout/blank-layout.module.d.ts +15 -0
  568. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +6 -0
  569. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +21 -0
  570. package/layout/models/login-page-config.model.d.ts +46 -0
  571. package/layout/models/login-page.config.d.ts +44 -0
  572. package/layout/{src/models/public-api.ts → models/public-api.d.ts} +1 -0
  573. package/layout/models/security-layout-config.model.d.ts +12 -0
  574. package/layout/models/security-layout.config.d.ts +10 -0
  575. package/layout/models/upd-layout-config.model.d.ts +48 -0
  576. package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +9 -0
  577. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  578. package/layout/pages/auth-flow/auth-flow.module.d.ts +20 -0
  579. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  580. package/layout/pages/auth-flow/login/login.component.d.ts +26 -0
  581. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  582. package/layout/partials/footer/footer.component.d.ts +34 -0
  583. package/layout/partials/footer/footer.module.d.ts +9 -0
  584. package/layout/partials/footer/public-api.d.ts +2 -0
  585. package/layout/partials/header/header.component.d.ts +48 -0
  586. package/layout/partials/header/header.module.d.ts +12 -0
  587. package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +1 -0
  588. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  589. package/layout/partials/sidebar/sidebar.component.d.ts +30 -0
  590. package/layout/services/upd-layout-config.service.d.ts +15 -0
  591. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  592. package/layout/upd-layout.module.d.ts +19 -0
  593. package/lib/index.d.ts +2 -0
  594. package/lib/models/public-api.d.ts +2 -0
  595. package/lib/models/row-column-size.d.ts +6 -0
  596. package/lib/public-api.d.ts +5 -0
  597. package/lib/tools/column-size.helper.d.ts +6 -0
  598. package/lib/tools/public-api.d.ts +2 -0
  599. package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +1 -0
  600. package/lib/types/horizontal-vertical.type.d.ts +2 -0
  601. package/lib/types/public-api.d.ts +4 -0
  602. package/lib/types/validation-status.type.d.ts +2 -0
  603. package/lib/upd-components.module.d.ts +7 -0
  604. package/link/index.d.ts +1 -0
  605. package/link/link.component.d.ts +22 -0
  606. package/link/upd-link.module.d.ts +8 -0
  607. package/list/index.d.ts +1 -0
  608. package/list/list.component.d.ts +46 -0
  609. package/list/{src/models/list-item.ts → models/list-item.d.ts} +3 -4
  610. package/list/models/list-item.model.d.ts +25 -0
  611. package/list/upd-list.module.d.ts +13 -0
  612. package/modal/components/modal-container/modal-container.component.d.ts +74 -0
  613. package/modal/index.d.ts +1 -0
  614. package/modal/models/base.modal.d.ts +8 -0
  615. package/modal/models/modal-config.model.d.ts +32 -0
  616. package/modal/models/modal-ref.d.ts +6 -0
  617. package/modal/models/modal.config.d.ts +30 -0
  618. package/modal/models/public-api.d.ts +3 -0
  619. package/modal/public-api.d.ts +3 -0
  620. package/modal/services/modal-alert.service.d.ts +22 -0
  621. package/modal/services/modal.service.d.ts +12 -0
  622. package/modal/services/public-api.d.ts +2 -0
  623. package/modal/types/modal-footer-style.type.d.ts +1 -0
  624. package/modal/types/modal-size.type.d.ts +1 -0
  625. package/modal/upd-modal.module.d.ts +18 -0
  626. package/package.json +169 -21
  627. package/paginator/index.d.ts +1 -0
  628. package/paginator/paginator.component.d.ts +42 -0
  629. package/paginator/public-api.d.ts +2 -0
  630. package/paginator/upd-paginator.module.d.ts +14 -0
  631. package/popover/index.d.ts +1 -0
  632. package/popover/popover.component.d.ts +22 -0
  633. package/popover/popover.directive.d.ts +33 -0
  634. package/popover/upd-popover.module.d.ts +9 -0
  635. package/public-api.d.ts +2 -0
  636. package/table/abstractions/base-column.model.d.ts +31 -0
  637. package/table/abstractions/base.column.d.ts +22 -0
  638. package/table/abstractions/filters-operands.service.d.ts +8 -0
  639. package/table/abstractions/public-api.d.ts +2 -0
  640. package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
  641. package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
  642. package/table/components/columns/number-column/number-column.component.d.ts +7 -0
  643. package/table/components/columns/text-column/text-column.component.d.ts +9 -0
  644. package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
  645. package/table/components/filter-row/filter-row.component.d.ts +40 -0
  646. package/table/components/save-search/save-search.component.d.ts +17 -0
  647. package/table/components/search-section/search-section.component.d.ts +36 -0
  648. package/table/directives/public-api.d.ts +1 -0
  649. package/table/directives/table-column.directive.d.ts +14 -0
  650. package/table/index.d.ts +1 -0
  651. package/table/models/columns/boolean-column.model.d.ts +15 -0
  652. package/table/models/columns/date-time-column.model.d.ts +8 -0
  653. package/table/models/columns/guid-column.model.d.ts +4 -0
  654. package/table/models/columns/image-column.model.d.ts +6 -0
  655. package/table/models/columns/number-column.model.d.ts +8 -0
  656. package/table/models/columns/public-api.d.ts +6 -0
  657. package/table/models/columns/text-column.model.d.ts +6 -0
  658. package/table/models/enums/column-type.enum.d.ts +13 -0
  659. package/table/models/enums/public-api.d.ts +1 -0
  660. package/table/models/filter-item.model.d.ts +6 -0
  661. package/table/models/filter-operand.config.d.ts +9 -0
  662. package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
  663. package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
  664. package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
  665. package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
  666. package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
  667. package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
  668. package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
  669. package/table/models/public-api.d.ts +4 -0
  670. package/table/models/saved-view.model.d.ts +11 -0
  671. package/table/models/table-config.model.d.ts +33 -0
  672. package/table/models/table.config.d.ts +31 -0
  673. package/table/models/upd-table-config.model.d.ts +6 -0
  674. package/table/models/upd-table.config.d.ts +6 -0
  675. package/table/public-api.d.ts +5 -0
  676. package/table/services/default-filters-operands.service.d.ts +17 -0
  677. package/table/services/storages/saved-views.storage.d.ts +19 -0
  678. package/table/services/stores/filters-operands.store.d.ts +11 -0
  679. package/table/services/upd-table-config.service.d.ts +12 -0
  680. package/table/table.component.d.ts +81 -0
  681. package/table/tools/filters.tools.d.ts +9 -0
  682. package/table/tools/table.constants.d.ts +15 -0
  683. package/table/upd-table.module.d.ts +40 -0
  684. package/CHANGELOG.md +0 -8
  685. package/button/index.ts +0 -1
  686. package/button/ng-package.json +0 -7
  687. package/button/src/button.component.html +0 -8
  688. package/button/src/button.component.scss +0 -5
  689. package/button/src/button.component.spec.ts +0 -23
  690. package/button/src/button.component.ts +0 -154
  691. package/button/src/upd-button.module.ts +0 -17
  692. package/card/index.ts +0 -1
  693. package/card/ng-package.json +0 -7
  694. package/card/src/card.component.html +0 -105
  695. package/card/src/card.component.scss +0 -47
  696. package/card/src/card.component.spec.ts +0 -23
  697. package/card/src/card.component.ts +0 -112
  698. package/card/src/directives/card-actions.directive.spec.ts +0 -8
  699. package/card/src/directives/card-actions.directive.ts +0 -11
  700. package/card/src/directives/card-footer.directive.spec.ts +0 -8
  701. package/card/src/directives/card-footer.directive.ts +0 -11
  702. package/card/src/directives/card-header.directive.spec.ts +0 -8
  703. package/card/src/directives/card-header.directive.ts +0 -11
  704. package/card/src/directives/card-image.directive.spec.ts +0 -8
  705. package/card/src/directives/card-image.directive.ts +0 -11
  706. package/card/src/types/public-api.ts +0 -5
  707. package/card/src/upd-card.module.ts +0 -32
  708. package/dropdown/index.ts +0 -1
  709. package/dropdown/ng-package.json +0 -7
  710. package/dropdown/src/dropdown.component.html +0 -32
  711. package/dropdown/src/dropdown.component.scss +0 -19
  712. package/dropdown/src/dropdown.component.spec.ts +0 -23
  713. package/dropdown/src/dropdown.component.ts +0 -182
  714. package/dropdown/src/models/public-api.ts +0 -2
  715. package/dropdown/src/upd-dropdown.module.ts +0 -25
  716. package/form/index.ts +0 -1
  717. package/form/ng-package.json +0 -7
  718. package/form/src/form.module.ts +0 -10
  719. package/form/src/public-api.ts +0 -1
  720. package/form-controls/checkbox/index.ts +0 -1
  721. package/form-controls/checkbox/ng-package.json +0 -7
  722. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  723. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  724. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  725. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  726. package/form-controls/input/index.ts +0 -1
  727. package/form-controls/input/ng-package.json +0 -7
  728. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  729. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  730. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  731. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  732. package/form-controls/input/src/input.component.html +0 -82
  733. package/form-controls/input/src/input.component.scss +0 -13
  734. package/form-controls/input/src/input.component.spec.ts +0 -23
  735. package/form-controls/input/src/input.component.ts +0 -124
  736. package/form-controls/input/src/upd-input.module.ts +0 -29
  737. package/form-controls/radio/index.ts +0 -1
  738. package/form-controls/radio/ng-package.json +0 -7
  739. package/form-controls/radio/src/radio.component.html +0 -7
  740. package/form-controls/radio/src/radio.component.scss +0 -0
  741. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  742. package/form-controls/radio/src/radio.component.ts +0 -47
  743. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  744. package/form-controls/select/index.ts +0 -1
  745. package/form-controls/select/ng-package.json +0 -7
  746. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  747. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  748. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  749. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  750. package/form-controls/select/src/components/shared.scss +0 -40
  751. package/form-controls/select/src/components/single/select.component.html +0 -53
  752. package/form-controls/select/src/components/single/select.component.scss +0 -3
  753. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  754. package/form-controls/select/src/components/single/select.component.ts +0 -58
  755. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  756. package/form-controls/select/src/upd-select.module.ts +0 -32
  757. package/form-controls/textarea/index.ts +0 -1
  758. package/form-controls/textarea/ng-package.json +0 -7
  759. package/form-controls/textarea/src/textarea.component.html +0 -8
  760. package/form-controls/textarea/src/textarea.component.scss +0 -0
  761. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  762. package/form-controls/textarea/src/textarea.component.ts +0 -47
  763. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  764. package/form-controls/time-picker/index.ts +0 -1
  765. package/form-controls/time-picker/ng-package.json +0 -7
  766. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  767. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  768. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  769. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  770. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  771. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  772. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  773. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  774. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  775. package/index.ts +0 -1
  776. package/layout/index.ts +0 -1
  777. package/layout/ng-package.json +0 -7
  778. package/layout/src/abstractions/base-page.component.ts +0 -21
  779. package/layout/src/assets/i18n/en.json +0 -5
  780. package/layout/src/assets/i18n/pt.json +0 -5
  781. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  782. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  783. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  784. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  785. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  786. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  787. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  788. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  789. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  790. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  791. package/layout/src/models/upd-layout-config.model.ts +0 -71
  792. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  793. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  794. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  795. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  796. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  797. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  798. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  799. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  800. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  801. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  802. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  803. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  804. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  805. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  806. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  807. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  808. package/layout/src/partials/footer/footer.component.html +0 -30
  809. package/layout/src/partials/footer/footer.component.scss +0 -0
  810. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  811. package/layout/src/partials/footer/footer.component.ts +0 -73
  812. package/layout/src/partials/footer/public-api.ts +0 -2
  813. package/layout/src/partials/header/header.component.html +0 -163
  814. package/layout/src/partials/header/header.component.scss +0 -0
  815. package/layout/src/partials/header/header.component.spec.ts +0 -23
  816. package/layout/src/partials/header/header.component.ts +0 -86
  817. package/layout/src/partials/page-header/page-header.component.html +0 -19
  818. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  819. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  820. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  821. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  822. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  823. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  824. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  825. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  826. package/layout/src/services/upd-layout-config.service.ts +0 -20
  827. package/layout/src/upd-layout.module.ts +0 -34
  828. package/link/index.ts +0 -1
  829. package/link/ng-package.json +0 -7
  830. package/link/src/link.component.html +0 -3
  831. package/link/src/link.component.scss +0 -3
  832. package/link/src/link.component.spec.ts +0 -23
  833. package/link/src/link.component.ts +0 -48
  834. package/link/src/upd-link.module.ts +0 -17
  835. package/list/index.ts +0 -1
  836. package/list/ng-package.json +0 -7
  837. package/list/src/assets/i18n/en.json +0 -5
  838. package/list/src/assets/i18n/pt.json +0 -5
  839. package/list/src/list.component.html +0 -58
  840. package/list/src/list.component.scss +0 -21
  841. package/list/src/list.component.spec.ts +0 -23
  842. package/list/src/list.component.ts +0 -147
  843. package/list/src/models/list-item.model.ts +0 -35
  844. package/list/src/upd-list.module.ts +0 -30
  845. package/ng-package.json +0 -10
  846. package/popover/index.ts +0 -1
  847. package/popover/ng-package.json +0 -7
  848. package/popover/src/popover.component.html +0 -20
  849. package/popover/src/popover.component.scss +0 -8
  850. package/popover/src/popover.component.spec.ts +0 -23
  851. package/popover/src/popover.component.ts +0 -53
  852. package/popover/src/popover.directive.spec.ts +0 -8
  853. package/popover/src/popover.directive.ts +0 -128
  854. package/popover/src/upd-popover.module.ts +0 -20
  855. package/src/lib/public-api.ts +0 -2
  856. package/src/lib/types/public-api.ts +0 -2
  857. package/src/lib/types/validation-status.type.ts +0 -1
  858. package/src/lib/upd-components.module.ts +0 -6
  859. package/src/public-api.ts +0 -1
  860. package/tsconfig.lib.json +0 -14
  861. package/tsconfig.lib.prod.json +0 -10
  862. package/tsconfig.spec.json +0 -14
  863. /package/{form-controls/checkbox/src/checkbox.component.scss → assets/styles/marketing/_filters.scss} +0 -0
  864. /package/{button/src/index.ts → badge/index.d.ts} +0 -0
  865. /package/{card/src/index.ts → button/index.d.ts} +0 -0
  866. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  867. /package/{dropdown/src/index.ts → calendar/index.d.ts} +0 -0
  868. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  869. /package/{form-controls/checkbox/src/index.ts → card/index.d.ts} +0 -0
  870. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  871. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  872. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  873. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  874. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  875. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  876. /package/{form-controls/input/src/index.ts → drag-and-drop/index.d.ts} +0 -0
  877. /package/{form-controls/radio/src/index.ts → dropdown/index.d.ts} +0 -0
  878. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  879. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  880. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  881. /package/{src/lib/index.ts → form/index.d.ts} +0 -0
  882. /package/form-controls/{select/src/index.ts → checkbox/index.d.ts} +0 -0
  883. /package/form-controls/{textarea/src/index.ts → date-picker/index.d.ts} +0 -0
  884. /package/form-controls/{time-picker/src/index.ts → file-upload/index.d.ts} +0 -0
  885. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  886. /package/{form/src/index.ts → form-controls/input/index.d.ts} +0 -0
  887. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  888. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  889. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  890. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  891. /package/{layout/src/index.ts → form-controls/radio/index.d.ts} +0 -0
  892. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  893. /package/{link/src/index.ts → form-controls/select/index.d.ts} +0 -0
  894. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  895. /package/{list/src/index.ts → form-controls/textarea/index.d.ts} +0 -0
  896. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  897. /package/{popover/src/index.ts → form-controls/time-picker/index.d.ts} +0 -0
  898. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  899. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  900. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  901. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  902. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  903. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  904. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  905. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  906. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  907. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  908. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  909. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  910. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  911. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  912. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  913. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  914. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,52 @@
1
+ import { Component, HostBinding, ViewEncapsulation, inject } from '@angular/core';
2
+ import { BaseComponent, LayoutService } from '@updevs/sdk/layout';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@jsverse/transloco";
6
+ export class FooterComponent extends BaseComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.wrapperClasses = '';
10
+ /**
11
+ * Whether the footer will always be shown.
12
+ */
13
+ this.isSticky = false;
14
+ /**
15
+ * Whether the footer is transparent or not.
16
+ */
17
+ this.isTransparent = true;
18
+ /**
19
+ * Links.
20
+ */
21
+ this.links = [];
22
+ /**
23
+ * Current year.
24
+ */
25
+ this.currentYear = new Date().getFullYear();
26
+ this.layoutService = inject(LayoutService);
27
+ this.baseWrapperClasses = 'footer d-print-none';
28
+ }
29
+ ngOnInit() {
30
+ this.updateWrapperClasses();
31
+ }
32
+ ngOnChanges(changes) {
33
+ if (!!changes['isSticky'].currentValue || !!changes['isTransparent'].currentValue) {
34
+ this.updateWrapperClasses();
35
+ }
36
+ }
37
+ updateWrapperClasses() {
38
+ const stickyBottomCls = this.isSticky ? ' sticky-bottom' : '';
39
+ const transparentCls = this.isTransparent ? ' footer-transparent' : '';
40
+ this.wrapperClasses = `${this.baseWrapperClasses}${stickyBottomCls}${transparentCls}`;
41
+ }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
43
+ 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: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], encapsulation: i0.ViewEncapsulation.None }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterComponent, decorators: [{
46
+ type: Component,
47
+ 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" }]
48
+ }], propDecorators: { wrapperClasses: [{
49
+ type: HostBinding,
50
+ args: ['class']
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBb0MsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBILE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFRbEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQU5sRDs7UUFPMEIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFMUM7O1dBRUc7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckI7O1dBRUc7UUFDSCxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUN4Qjs7V0FFRztRQUNILGdCQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQU05QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV2Qyx1QkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztLQWlCdEQ7SUFmRyxRQUFRO1FBQ0osSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDaEYsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxHQUFHLGNBQWMsRUFBRSxDQUFDO0lBQzFGLENBQUM7OEdBMUNRLGVBQWU7a0dBQWYsZUFBZSx3SkNWNUIsMm5EQXVDQTs7MkZEN0JhLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0ksWUFBWSxpQkFHUCxpQkFBaUIsQ0FBQyxJQUFJOzhCQUdmLGNBQWM7c0JBQW5DLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaW5rTW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkay9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIExheW91dFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1mb290ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Zvb3Rlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgd3JhcHBlckNsYXNzZXMgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGZvb3RlciB3aWxsIGFsd2F5cyBiZSBzaG93bi5cbiAgICAgKi9cbiAgICBpc1N0aWNreSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGZvb3RlciBpcyB0cmFuc3BhcmVudCBvciBub3QuXG4gICAgICovXG4gICAgaXNUcmFuc3BhcmVudCA9IHRydWU7XG4gICAgLyoqXG4gICAgICogTGlua3MuXG4gICAgICovXG4gICAgbGlua3M6IExpbmtNb2RlbFtdID0gW107XG4gICAgLyoqXG4gICAgICogQ3VycmVudCB5ZWFyLlxuICAgICAqL1xuICAgIGN1cnJlbnRZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuICAgIC8qKlxuICAgICAqIFZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLlxuICAgICAqL1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSBiYXNlV3JhcHBlckNsYXNzZXMgPSAnZm9vdGVyIGQtcHJpbnQtbm9uZSc7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVXcmFwcGVyQ2xhc3NlcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhY2hhbmdlc1snaXNTdGlja3knXS5jdXJyZW50VmFsdWUgfHwgISFjaGFuZ2VzWydpc1RyYW5zcGFyZW50J10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVdyYXBwZXJDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVdyYXBwZXJDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdGlja3lCb3R0b21DbHMgPSB0aGlzLmlzU3RpY2t5ID8gJyBzdGlja3ktYm90dG9tJyA6ICcnO1xuICAgICAgICBjb25zdCB0cmFuc3BhcmVudENscyA9IHRoaXMuaXNUcmFuc3BhcmVudCA/ICcgZm9vdGVyLXRyYW5zcGFyZW50JyA6ICcnO1xuICAgICAgICB0aGlzLndyYXBwZXJDbGFzc2VzID0gYCR7dGhpcy5iYXNlV3JhcHBlckNsYXNzZXN9JHtzdGlja3lCb3R0b21DbHN9JHt0cmFuc3BhcmVudENsc31gO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXIteGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IHRleHQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LXJvdy1yZXZlcnNlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctYXV0byBtcy1sZy1hdXRvXCI+XG4gICAgICAgICAgICBAaWYgKCEhbGF5b3V0U2VydmljZS5yaWdodEZvb3RlcigpKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsYXlvdXRTZXJ2aWNlLnJpZ2h0Rm9vdGVyKCkhXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAobGlua3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtaW5saW5lIGxpc3QtaW5saW5lLWRvdHMgbWItMFwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIGxpbmtzOyB0cmFjayBsaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWlubGluZS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7bGluay51cmx9fVwiIHRhcmdldD1cInt7bGluay50YXJnZXR9fVwiIGNsYXNzPVwibGluay1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsaW5rLnRleHRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1sZy1hdXRvIG10LTMgbXQtbGctMFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1pbmxpbmUgbGlzdC1pbmxpbmUtZG90cyBtYi0wXCI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1pbmxpbmUtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcHJlZml4OiAnVXBEZXZzLkZvb3RlcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHQoJ1ByZWZpeCcpIH19IHt7IHQoJ1N5bWJvbCcpIH19IHt7IGN1cnJlbnRZZWFyIH19IHt7IHQoJ1N1ZmZpeCcpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgQGlmICghIXZlcnNpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1pbmxpbmUtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdmVyc2lvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdWw+XG5cbiAgICAgICAgICAgIEBpZiAoISFsYXlvdXRTZXJ2aWNlLmxlZnRGb290ZXIoKSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGF5b3V0U2VydmljZS5sZWZ0Rm9vdGVyKCkhXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { TranslocoModule } from '@jsverse/transloco';
4
+ import { FooterComponent } from './footer.component';
5
+ import * as i0 from "@angular/core";
6
+ export class FooterModule {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: FooterModule, declarations: [FooterComponent], imports: [CommonModule,
9
+ TranslocoModule], exports: [FooterComponent] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterModule, imports: [CommonModule,
11
+ TranslocoModule] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FooterModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [
17
+ CommonModule,
18
+ TranslocoModule
19
+ ],
20
+ declarations: [
21
+ FooterComponent
22
+ ],
23
+ exports: [
24
+ FooterComponent
25
+ ]
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL2Zvb3Rlci9mb290ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBY3JELE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWSxpQkFOakIsZUFBZSxhQUpmLFlBQVk7WUFDWixlQUFlLGFBTWYsZUFBZTsrR0FHVixZQUFZLFlBVmpCLFlBQVk7WUFDWixlQUFlOzsyRkFTVixZQUFZO2tCQVp4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCO29CQUNELFlBQVksRUFBRTt3QkFDVixlQUFlO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsZUFBZTtxQkFDbEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vZm9vdGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbG9jb01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEZvb3RlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBGb290ZXJDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvb3Rlck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './footer.component';
2
+ export * from './footer.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL2Zvb3Rlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvb3Rlci5tb2R1bGUnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXN0eWxlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGF5b3V0L3NyYy9wYXJ0aWFscy9oZWFkZXIvaGVhZGVyLXN0eWxlLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEhlYWRlclN0eWxlVHlwZSA9ICdsaWdodCcgfCAnZGFyaycgfCAndHJhbnNwYXJlbnQnO1xuIl19
@@ -0,0 +1,130 @@
1
+ import { Component, ViewEncapsulation, HostBinding, inject, computed, signal, viewChild, ElementRef, input } from '@angular/core';
2
+ import { TextService } from '@updevs/sdk';
3
+ import { BaseComponent, LayoutService, PreferencesStorage, UpdCoreLayoutConfigService } from '@updevs/sdk/layout';
4
+ import { TranslocoService } from '@jsverse/transloco';
5
+ import { NotificationsService } from '@updevs/sdk/notifications';
6
+ import { SecurityStorage } from '@updevs/sdk/security';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@updevs/icons";
9
+ import * as i2 from "@updevs/components/dropdown";
10
+ import * as i3 from "@updevs/components/link";
11
+ import * as i4 from "@jsverse/transloco";
12
+ export class HeaderComponent extends BaseComponent {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.languageSwitcherRef = viewChild('languageSwitcherBtn', { read: ElementRef });
16
+ this.notificationsRef = viewChild('notificationsBtn', { read: ElementRef });
17
+ this.loggedUserRef = viewChild('loggedUserBtn', { read: ElementRef });
18
+ this.isLanguageSwitcherDropdownOpen = false;
19
+ this.isNotificationsDropdownOpen = false;
20
+ this.isLoggedUserDropdownOpen = false;
21
+ this.style = input('light');
22
+ this.nextThemeIcon = computed(() => this.currentPreferences()?.isDarkTheme ? 'sun' : 'moon-stars');
23
+ this.currentNotificationsIcon = computed(() => this.hasNewNotifications() ? 'bell-ringing' : 'bell');
24
+ this.hasNewNotifications = computed(() => this.currentNotifications().some(n => !n.dateRead));
25
+ this.languagesOptions = computed(() => {
26
+ const allLanguagesOptions = [];
27
+ const availableLanguages = (this.coreLayoutConfigService.config.availableLanguages || {});
28
+ Object.keys(availableLanguages).forEach(key => {
29
+ allLanguagesOptions.push({
30
+ id: key,
31
+ type: 'default',
32
+ text: availableLanguages[key],
33
+ isActive: this.currentLanguageKey() === key
34
+ });
35
+ });
36
+ return allLanguagesOptions;
37
+ });
38
+ this.loggedUserOptions = computed(() => {
39
+ const userActions = [];
40
+ this.coreLayoutConfigService.config.loggedUserMenuActions.forEach(act => userActions.push({
41
+ id: act.id(),
42
+ text: act.text(),
43
+ type: 'default',
44
+ icon: act.iconModel?.()
45
+ }));
46
+ return userActions;
47
+ });
48
+ this.userInfo = computed(() => this.securityStorage.getUserInfo());
49
+ this.userIdentification = computed(() => !!this.userInfo() ? this.coreLayoutConfigService.config.getUserName(this.userInfo()) : '');
50
+ this.userDescription = computed(() => !!this.coreLayoutConfigService.config.getUserDescription
51
+ ? this.coreLayoutConfigService.config.getUserDescription(this.userInfo())
52
+ : '');
53
+ this.shouldBlinkIfNewNotifications = computed(() => !!this.coreLayoutConfigService.config.shouldBlinkIfNewNotifications);
54
+ this.latestNotifications = computed(() => {
55
+ const unreadNotifications = this.currentNotifications()
56
+ .filter(n => !n.dateRead)
57
+ .sort((a, b) => new Date(b.dateReceived).getTime() - new Date(a.dateReceived).getTime())
58
+ .slice(0, this.coreLayoutConfigService.config.numberOfLastNotificationsDisplayed);
59
+ const readNotifications = this.currentNotifications()
60
+ .filter(n => !!n.dateRead)
61
+ .sort((a, b) => new Date(b.dateReceived).getTime() - new Date(a.dateReceived).getTime())
62
+ .slice(0, this.coreLayoutConfigService.config.numberOfLastNotificationsDisplayed);
63
+ return [
64
+ ...unreadNotifications,
65
+ ...readNotifications
66
+ ].slice(0, this.coreLayoutConfigService.config.numberOfLastNotificationsDisplayed);
67
+ });
68
+ this.textService = inject(TextService);
69
+ this.securityStorage = inject(SecurityStorage);
70
+ this.coreLayoutConfigService = inject(UpdCoreLayoutConfigService);
71
+ this.layoutService = inject(LayoutService);
72
+ this.translocoService = inject(TranslocoService);
73
+ this.preferencesStorage = inject(PreferencesStorage);
74
+ this.notificationsService = inject(NotificationsService);
75
+ this.currentPreferences = this.preferencesStorage.getPreferences();
76
+ this.currentNotifications = this.notificationsService.notifications;
77
+ this.currentLanguageKey = signal('');
78
+ this.wrapperClasses = computed(() => `navbar navbar-expand-md d-none d-lg-flex d-print-none navbar-${this.style()}`);
79
+ // eslint-disable-next-line @typescript-eslint/member-ordering
80
+ this.config = computed(() => this.layoutService.mainHeaderConfig());
81
+ }
82
+ get classes() {
83
+ return this.wrapperClasses();
84
+ }
85
+ ngOnInit() {
86
+ if (!!this.currentPreferences()?.isDarkTheme) {
87
+ this.layoutService.setDarkMode();
88
+ }
89
+ if (!!this.currentPreferences()?.currentLanguageCode) {
90
+ const code = this.currentPreferences().currentLanguageCode;
91
+ this.currentLanguageKey.set(code);
92
+ this.translocoService.setActiveLang(code);
93
+ }
94
+ }
95
+ switchTheme() {
96
+ this.layoutService.toggleDarkMode();
97
+ }
98
+ switchLanguage(item) {
99
+ this.currentLanguageKey.set(item.id);
100
+ this.translocoService.setActiveLang(item.id);
101
+ this.preferencesStorage.savePreferences({ ...this.currentPreferences(), currentLanguageCode: item.id });
102
+ this.layoutService.notifyUserChangedLanguage(item.id);
103
+ this.isLanguageSwitcherDropdownOpen = false;
104
+ }
105
+ selectLoggedUserMenuItem(item) {
106
+ const btn = this.coreLayoutConfigService.config.loggedUserMenuActions.find(b => b.id() === item.id);
107
+ if (!!btn?.clickFunction) {
108
+ btn.clickFunction({ data: this.userInfo() });
109
+ }
110
+ }
111
+ readNotification(notification) {
112
+ if (!notification.dateRead) {
113
+ this.notificationsService.markAsRead(notification.id);
114
+ }
115
+ this.notificationsService.clickOnNotification(notification);
116
+ }
117
+ removeNotification(notification) {
118
+ this.notificationsService.removeNotifications(notification.id);
119
+ }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
121
+ 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.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: i4.TranslocoPipe, name: "transloco" }], encapsulation: i0.ViewEncapsulation.None }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderComponent, decorators: [{
124
+ type: Component,
125
+ 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" }]
126
+ }], propDecorators: { classes: [{
127
+ type: HostBinding,
128
+ args: ['class']
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixXQUFXLEVBRVgsTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFBRSxLQUFLLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQXFCLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFVdkQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQU5sRDs7UUFXSSx3QkFBbUIsR0FBRyxTQUFTLENBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM3RSxxQkFBZ0IsR0FBRyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN2RSxrQkFBYSxHQUFHLFNBQVMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENB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QUMsQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDdkIsR0FBRyxDQUFDLGFBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsWUFBK0I7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxZQUErQjtRQUM5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7OEdBaklRLGVBQWU7a0dBQWYsZUFBZSxnVkFLdUMsVUFBVSwrSEFDaEIsVUFBVSx5SEFDaEIsVUFBVSxvRUNsQ2pFLCs5T0EwSEE7OzJGRC9GYSxlQUFlO2tCQU4zQixTQUFTOytCQUNJLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSTs4QkFHWCxPQUFPO3NCQUFoQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPbkluaXQsXG4gICAgaW5qZWN0LFxuICAgIGNvbXB1dGVkLFxuICAgIHNpZ25hbCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZiwgaW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZXJJY29uc1R5cGUgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcbmltcG9ydCB7IFRleHRTZXJ2aWNlIH0gZnJvbSAnQHVwZGV2cy9zZGsnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgTGF5b3V0U2VydmljZSwgUHJlZmVyZW5jZXNTdG9yYWdlLCBVcGRDb3JlTGF5b3V0Q29uZmlnU2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBEcm9wZG93bkl0ZW0gfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Nb2RlbCwgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkay9ub3RpZmljYXRpb25zJztcbmltcG9ydCB7IFNlY3VyaXR5U3RvcmFnZSB9IGZyb20gJ0B1cGRldnMvc2RrL3NlY3VyaXR5JztcblxuaW1wb3J0IHsgSGVhZGVyU3R5bGVUeXBlIH0gZnJvbSAnLi9oZWFkZXItc3R5bGUudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud3JhcHBlckNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBsYW5ndWFnZVN3aXRjaGVyUmVmID0gdmlld0NoaWxkKCdsYW5ndWFnZVN3aXRjaGVyQnRuJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICAgIG5vdGlmaWNhdGlvbnNSZWYgPSB2aWV3Q2hpbGQoJ25vdGlmaWNhdGlvbnNCdG4nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gICAgbG9nZ2VkVXNlclJlZiA9IHZpZXdDaGlsZCgnbG9nZ2VkVXNlckJ0bicsIHsgcmVhZDogRWxlbWVudFJlZiB9KTtcblxuICAgIGlzTGFuZ3VhZ2VTd2l0Y2hlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIGlzTm90aWZpY2F0aW9uc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIGlzTG9nZ2VkVXNlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgc3R5bGUgPSBpbnB1dDxIZWFkZXJTdHlsZVR5cGU+KCdsaWdodCcpO1xuICAgIHJlYWRvbmx5IG5leHRUaGVtZUljb24gPSBjb21wdXRlZDxUYWJsZXJJY29uc1R5cGU+KCgpID0+IHRoaXMuY3VycmVudFByZWZlcmVuY2VzKCk/LmlzRGFya1RoZW1lID8gJ3N1bicgOiAnbW9vbi1zdGFycycpO1xuICAgIHJlYWRvbmx5IGN1cnJlbnROb3RpZmljYXRpb25zSWNvbiA9IGNvbXB1dGVkPFRhYmxlckljb25zVHlwZT4oKCkgPT4gdGhpcy5oYXNOZXdOb3RpZmljYXRpb25zKCkgPyAnYmVsbC1yaW5naW5nJyA6ICdiZWxsJyk7XG4gICAgcmVhZG9ubHkgaGFzTmV3Tm90aWZpY2F0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3VycmVudE5vdGlmaWNhdGlvbnMoKS5zb21lKG4gPT4gIW4uZGF0ZVJlYWQpKTtcbiAgICByZWFkb25seSBsYW5ndWFnZXNPcHRpb25zID0gY29tcHV0ZWQ8RHJvcGRvd25JdGVtW10+KCgpID0+IHtcbiAgICAgICAgY29uc3QgYWxsTGFuZ3VhZ2VzT3B0aW9uczogRHJvcGRvd25JdGVtW10gPSBbXTtcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlTGFuZ3VhZ2VzID0gKHRoaXMuY29yZUxheW91dENvbmZpZ1NlcnZpY2UuY29uZmlnLmF2YWlsYWJsZUxhbmd1YWdlcyB8fCB7fSk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoYXZhaWxhYmxlTGFuZ3VhZ2VzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBhbGxMYW5ndWFnZXNPcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBrZXksXG4gICAgICAgICAgICAgICAgdHlwZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIHRleHQ6IGF2YWlsYWJsZUxhbmd1YWdlc1trZXldLFxuICAgICAgICAgICAgICAgIGlzQWN0aXZlOiB0aGlzLmN1cnJlbnRMYW5ndWFnZUtleSgpID09PSBrZXlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYWxsTGFuZ3VhZ2VzT3B0aW9ucztcbiAgICB9KTtcbiAgICByZWFkb25seSBsb2dnZWRVc2VyT3B0aW9ucyA9IGNvbXB1dGVkPERyb3Bkb3duSXRlbVtdPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXJBY3Rpb25zOiBEcm9wZG93bkl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuY29yZUxheW91dENvbmZpZ1NlcnZpY2UuY29uZmlnLmxvZ2dlZFVzZXJNZW51QWN0aW9ucy5mb3JFYWNoKGFjdCA9PiB1c2VyQWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBhY3QuaWQhKCksXG4gICAgICAgICAgICB0ZXh0OiBhY3QudGV4dCEoKSxcbiAgICAgICAgICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgIGljb246IGFjdC5pY29uTW9kZWw/LigpXG4gICAgICAgIH0pKTtcblxuICAgICAgICByZXR1cm4gdXNlckFjdGlvbnM7XG4gICAgfSk7XG4gICAgcmVhZG9ubHkgdXNlckluZm8gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlY3VyaXR5U3RvcmFnZS5nZXRVc2VySW5mbygpKTtcbiAgICByZWFkb25seSB1c2VySWRlbnRpZmljYXRpb24gPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICAhIXRoaXMudXNlckluZm8oKSA/IHRoaXMuY29yZUxheW91dENvbmZpZ1NlcnZpY2UuY29uZmlnLmdldFVzZXJOYW1lKHRoaXMudXNlckluZm8oKSEpIDogJydcbiAgICApO1xuICAgIHJlYWRvbmx5IHVzZXJEZXNjcmlwdGlvbiA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICEhdGhpcy5jb3JlTGF5b3V0Q29uZmlnU2VydmljZS5jb25maWcuZ2V0VXNlckRlc2NyaXB0aW9uXG4gICAgICAgICAgICA/IHRoaXMuY29yZUxheW91dENvbmZpZ1NlcnZpY2UuY29uZmlnLmdldFVzZXJEZXNjcmlwdGlvbih0aGlzLnVzZXJJbmZvKCkhKVxuICAgICAgICAgICAgOiAnJ1xuICAgICk7XG4gICAgcmVhZG9ubHkgc2hvdWxkQmxpbmtJZk5ld05vdGlmaWNhdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMuY29yZUxheW91dENvbmZpZ1NlcnZpY2UuY29uZmlnLnNob3VsZEJsaW5rSWZOZXdOb3RpZmljYXRpb25zKTtcbiAgICByZWFkb25seSBsYXRlc3ROb3RpZmljYXRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB1bnJlYWROb3RpZmljYXRpb25zID0gdGhpcy5jdXJyZW50Tm90aWZpY2F0aW9ucygpXG4gICAgICAgICAgICAuZmlsdGVyKG4gPT4gIW4uZGF0ZVJlYWQpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gbmV3IERhdGUoYi5kYXRlUmVjZWl2ZWQpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGEuZGF0ZVJlY2VpdmVkKS5nZXRUaW1lKCkpXG4gICAgICAgICAgICAuc2xpY2UoMCwgdGhpcy5jb3JlTGF5b3V0Q29uZmlnU2VydmljZS5jb25maWcubnVtYmVyT2ZMYXN0Tm90aWZpY2F0aW9uc0Rpc3BsYXllZCk7XG4gICAgICAgIGNvbnN0IHJlYWROb3RpZmljYXRpb25zID0gdGhpcy5jdXJyZW50Tm90aWZpY2F0aW9ucygpXG4gICAgICAgICAgICAuZmlsdGVyKG4gPT4gISFuLmRhdGVSZWFkKVxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IG5ldyBEYXRlKGIuZGF0ZVJlY2VpdmVkKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShhLmRhdGVSZWNlaXZlZCkuZ2V0VGltZSgpKVxuICAgICAgICAgICAgLnNsaWNlKDAsIHRoaXMuY29yZUxheW91dENvbmZpZ1NlcnZpY2UuY29uZmlnLm51bWJlck9mTGFzdE5vdGlmaWNhdGlvbnNEaXNwbGF5ZWQpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi51bnJlYWROb3RpZmljYXRpb25zLFxuICAgICAgICAgICAgLi4ucmVhZE5vdGlmaWNhdGlvbnNcbiAgICAgICAgXS5zbGljZSgwLCB0aGlzLmNvcmVMYXlvdXRDb25maWdTZXJ2aWNlLmNvbmZpZy5udW1iZXJPZkxhc3ROb3RpZmljYXRpb25zRGlzcGxheWVkKTtcbiAgICB9KTtcbiAgICByZWFkb25seSB0ZXh0U2VydmljZSA9IGluamVjdChUZXh0U2VydmljZSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyaXR5U3RvcmFnZSA9IGluamVjdChTZWN1cml0eVN0b3JhZ2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29yZUxheW91dENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoVXBkQ29yZUxheW91dENvbmZpZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbGF5b3V0U2VydmljZSA9IGluamVjdChMYXlvdXRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVmZXJlbmNlc1N0b3JhZ2UgPSBpbmplY3QoUHJlZmVyZW5jZXNTdG9yYWdlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmaWNhdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRQcmVmZXJlbmNlcyA9IHRoaXMucHJlZmVyZW5jZXNTdG9yYWdlLmdldFByZWZlcmVuY2VzKCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50Tm90aWZpY2F0aW9ucyA9IHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uubm90aWZpY2F0aW9ucztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRMYW5ndWFnZUtleSA9IHNpZ25hbCgnJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB3cmFwcGVyQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+IGBuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBkLW5vbmUgZC1sZy1mbGV4IGQtcHJpbnQtbm9uZSBuYXZiYXItJHt0aGlzLnN0eWxlKCl9YCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICAgIHJlYWRvbmx5IGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMubGF5b3V0U2VydmljZS5tYWluSGVhZGVyQ29uZmlnKCkpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMuY3VycmVudFByZWZlcmVuY2VzKCk/LmlzRGFya1RoZW1lKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uuc2V0RGFya01vZGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMuY3VycmVudFByZWZlcmVuY2VzKCk/LmN1cnJlbnRMYW5ndWFnZUNvZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLmN1cnJlbnRQcmVmZXJlbmNlcygpIS5jdXJyZW50TGFuZ3VhZ2VDb2RlITtcblxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2VLZXkuc2V0KGNvZGUpO1xuICAgICAgICAgICAgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnNldEFjdGl2ZUxhbmcoY29kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2hUaGVtZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnRvZ2dsZURhcmtNb2RlKCk7XG4gICAgfVxuXG4gICAgc3dpdGNoTGFuZ3VhZ2UoaXRlbTogRHJvcGRvd25JdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlS2V5LnNldChpdGVtLmlkKTtcbiAgICAgICAgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnNldEFjdGl2ZUxhbmcoaXRlbS5pZCk7XG4gICAgICAgIHRoaXMucHJlZmVyZW5jZXNTdG9yYWdlLnNhdmVQcmVmZXJlbmNlcyh7IC4uLnRoaXMuY3VycmVudFByZWZlcmVuY2VzKCksIGN1cnJlbnRMYW5ndWFnZUNvZGU6IGl0ZW0uaWQgfSk7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5ub3RpZnlVc2VyQ2hhbmdlZExhbmd1YWdlKGl0ZW0uaWQpO1xuXG4gICAgICAgIHRoaXMuaXNMYW5ndWFnZVN3aXRjaGVyRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgc2VsZWN0TG9nZ2VkVXNlck1lbnVJdGVtKGl0ZW06IERyb3Bkb3duSXRlbSk6IHZvaWQge1xuICAgICAgICBjb25zdCBidG4gPSB0aGlzLmNvcmVMYXlvdXRDb25maWdTZXJ2aWNlLmNvbmZpZy5sb2dnZWRVc2VyTWVudUFjdGlvbnMuZmluZChiID0+IGIuaWQhKCkgPT09IGl0ZW0uaWQpO1xuXG4gICAgICAgIGlmICghIWJ0bj8uY2xpY2tGdW5jdGlvbikge1xuICAgICAgICAgICAgYnRuLmNsaWNrRnVuY3Rpb24hKHsgZGF0YTogdGhpcy51c2VySW5mbygpIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVhZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIGlmICghbm90aWZpY2F0aW9uLmRhdGVSZWFkKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLm1hcmtBc1JlYWQobm90aWZpY2F0aW9uLmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuY2xpY2tPbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pO1xuICAgIH1cblxuICAgIHJlbW92ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UucmVtb3ZlTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb24uaWQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXIteGxcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLW5hdiBmbGV4LXJvdyBvcmRlci1tZC1sYXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLW5vbmUgZC1tZC1mbGV4IG1lLTNcIj5cbiAgICAgICAgICAgIEBpZiAoISFjb25maWcoKS5zaG93VGhlbWVTd2l0Y2hlcikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8dXBkLWxpbmsgW2lzTmF2aWdhdGlvbl09XCJ0cnVlXCIgW2N1c3RvbUNsYXNzZXNdPVwiWydweC0wJ11cIiAoY2xpY2tlZCk9XCJzd2l0Y2hUaGVtZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gW3RhYmxlckljb25dPVwibmV4dFRoZW1lSWNvbigpXCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtbGluaz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoISFjb25maWcoKS5zaG93TGFuZ3VhZ2VTd2l0Y2hlciAmJiBsYW5ndWFnZXNPcHRpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8dXBkLWxpbmsgW2lzTmF2aWdhdGlvbl09XCJ0cnVlXCIgW2N1c3RvbUNsYXNzZXNdPVwiWydweC0wJ11cIiAoY2xpY2tlZCk9XCJpc0xhbmd1YWdlU3dpdGNoZXJEcm9wZG93bk9wZW49dHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgI2xhbmd1YWdlU3dpdGNoZXJCdG4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cImxhbmd1YWdlXCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtbGluaz5cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1kcm9wZG93biB3cmFwcGVyQ2xhc3Nlcz1cIm10LTFcIiBbaXNPcGVuXT1cImlzTGFuZ3VhZ2VTd2l0Y2hlckRyb3Bkb3duT3BlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZHJvcGRvd25SZWZlcmVuY2VdPVwibGFuZ3VhZ2VTd2l0Y2hlclJlZigpXCIgW2l0ZW1zXT1cImxhbmd1YWdlc09wdGlvbnMoKVwiIFtzaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzT3BlbkNoYW5nZSk9XCJpc0xhbmd1YWdlU3dpdGNoZXJEcm9wZG93bk9wZW4gPSAkZXZlbnRcIiAoc2VsZWN0ZWRJdGVtKT1cInN3aXRjaExhbmd1YWdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCEhY29uZmlnKCkuc2hvd05vdGlmaWNhdGlvbnMgJiYgISF1c2VySW5mbygpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtIGRyb3Bkb3duIGQtbm9uZSBkLW1kLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1saW5rIFtpc05hdmlnYXRpb25dPVwidHJ1ZVwiIFtjdXN0b21DbGFzc2VzXT1cIlsncHgtMCddXCIgKGNsaWNrZWQpPVwiaXNOb3RpZmljYXRpb25zRHJvcGRvd25PcGVuID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgI25vdGlmaWNhdGlvbnNCdG4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gW3RhYmxlckljb25dPVwiY3VycmVudE5vdGlmaWNhdGlvbnNJY29uKClcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChoYXNOZXdOb3RpZmljYXRpb25zKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJnLXJlZFwiIFtjbGFzcy5iYWRnZS1ibGlua109XCJzaG91bGRCbGlua0lmTmV3Tm90aWZpY2F0aW9ucygpXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3VwZC1saW5rPlxuICAgICAgICAgICAgICAgICAgICA8dXBkLWRyb3Bkb3duIHdyYXBwZXJDbGFzc2VzPVwibXQtMSBkcm9wZG93bi1tZW51LWNhcmRcIiBbaXNPcGVuXT1cImlzTm90aWZpY2F0aW9uc0Ryb3Bkb3duT3BlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZHJvcGRvd25SZWZlcmVuY2VdPVwibm90aWZpY2F0aW9uc1JlZigpXCIgW3Nob3VsZENsb3NlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cImlzTm90aWZpY2F0aW9uc0Ryb3Bkb3duT3BlbiA9ICRldmVudFwiIFttaW5XaWR0aF09XCI0MDBcIiBhcnJvd1R5cGU9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZVwiPnt7ICdVcERldnMuTm90aWZpY2F0aW9uQ2VudGVyLlRpdGxlJyB8IHRyYW5zbG9jbyB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobm90aWZpY2F0aW9uIG9mIGxhdGVzdE5vdGlmaWNhdGlvbnMoKTsgdHJhY2sgbm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2ggbGlzdC1ncm91cC1ob3ZlcmFibGVcIiAoY2xpY2spPVwicmVhZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCEhbm90aWZpY2F0aW9uLmRhdGVSZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0dXMtZG90IGQtYmxvY2tcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cy1kb3Qgc3RhdHVzLWRvdC1hbmltYXRlZCBiZy1wcmltYXJ5IGQtYmxvY2tcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cInRleHQtYm9keSBkLWJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZnctYm9sZF09XCIhbm90aWZpY2F0aW9uLmRhdGVSZWFkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGV4dFNlcnZpY2UuZ2V0VGV4dChub3RpZmljYXRpb24udGl0bGUpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCEhbm90aWZpY2F0aW9uLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtYmxvY2sgdGV4dC1zZWNvbmRhcnkgdGV4dC10cnVuY2F0ZSBtdC1uMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0U2VydmljZS5nZXRUZXh0KG5vdGlmaWNhdGlvbi5kZXNjcmlwdGlvbikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1saW5rIFtjdXN0b21DbGFzc2VzXT1cIlsnbGlzdC1ncm91cC1pdGVtLWFjdGlvbnMnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwicmVtb3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInhcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91cGQtbGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cInRleHQtYm9keS10ZXJ0aWFyeVwiPnt7ICdVcERldnMuTm90aWZpY2F0aW9uQ2VudGVyLk5vTm90aWZpY2F0aW9ucycgfCB0cmFuc2xvY28gfX08L2gxPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKCEhY29uZmlnKCkuc2hvd1VzZXJNZW51ICYmICEhdXNlckluZm8oKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtIGRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgPHVwZC1saW5rIFtpc05hdmlnYXRpb25dPVwidHJ1ZVwiIFtjdXN0b21DbGFzc2VzXT1cIlsncHgtMCddXCIgKGNsaWNrZWQpPVwiaXNMb2dnZWRVc2VyRHJvcGRvd25PcGVuID0gdHJ1ZVwiICNsb2dnZWRVc2VyQnRuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhdXNlckluZm8oKSEuYXZhdGFyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhciBhdmF0YXItc21cIiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCh7e3VzZXJJbmZvKCk/LmF2YXRhcn19KVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLW5vbmUgZC14bC1ibG9jayBwcy0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IHVzZXJJZGVudGlmaWNhdGlvbigpIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCEhdXNlckRlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBzbWFsbCB0ZXh0LW11dGVkXCI+e3sgdXNlckRlc2NyaXB0aW9uKCkgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC91cGQtbGluaz5cbiAgICAgICAgICAgICAgICBAaWYgKGxvZ2dlZFVzZXJPcHRpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICA8dXBkLWRyb3Bkb3duIHdyYXBwZXJDbGFzc2VzPVwibXQtMVwiIFtpc09wZW5dPVwiaXNMb2dnZWRVc2VyRHJvcGRvd25PcGVuXCIgW2Ryb3Bkb3duUmVmZXJlbmNlXT1cImxvZ2dlZFVzZXJSZWYoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwibG9nZ2VkVXNlck9wdGlvbnMoKVwiIFtzaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIiAoc2VsZWN0ZWRJdGVtKT1cInNlbGVjdExvZ2dlZFVzZXJNZW51SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc09wZW5DaGFuZ2UpPVwiaXNMb2dnZWRVc2VyRHJvcGRvd25PcGVuID0gJGV2ZW50XCIgYXJyb3dUeXBlPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKCEhY29uZmlnKCkuc2hvd1NlYXJjaEJhciAmJiAhIXVzZXJJbmZvKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTJcIiBbY2xhc3Mudy0xMDBdPVwiY29uZmlnKCkuc2hvdWxkVXNlRnVsbFNlYXJjaEJhclwiPlxuICAgICAgICAgICAgICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIG5vdmFsaWRhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWljb24tYWRkb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInNlYXJjaFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiB2YWx1ZT1cIlwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJ7eydVcERldnMuSGVhZGVyLlNlYXJjaCcgfCB0cmFuc2xvY299fS4uLlwiPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { UpdIconsModule } from '@updevs/icons';
4
+ import { UpdDropdownModule } from '@updevs/components/dropdown';
5
+ import { UpdLinkModule } from '@updevs/components/link';
6
+ import { TranslocoModule } from '@jsverse/transloco';
7
+ import { HeaderComponent } from './header.component';
8
+ import * as i0 from "@angular/core";
9
+ export class HeaderModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: HeaderModule, declarations: [HeaderComponent], imports: [CommonModule,
12
+ TranslocoModule,
13
+ UpdIconsModule,
14
+ UpdDropdownModule,
15
+ UpdLinkModule], exports: [HeaderComponent] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderModule, imports: [CommonModule,
17
+ TranslocoModule,
18
+ UpdIconsModule,
19
+ UpdDropdownModule,
20
+ UpdLinkModule] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HeaderModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ imports: [
26
+ CommonModule,
27
+ TranslocoModule,
28
+ UpdIconsModule,
29
+ UpdDropdownModule,
30
+ UpdLinkModule
31
+ ],
32
+ declarations: [
33
+ HeaderComponent
34
+ ],
35
+ exports: [
36
+ HeaderComponent
37
+ ]
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL2hlYWRlci9oZWFkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBaUJyRCxNQUFNLE9BQU8sWUFBWTs4R0FBWixZQUFZOytHQUFaLFlBQVksaUJBTmpCLGVBQWUsYUFQZixZQUFZO1lBQ1osZUFBZTtZQUNmLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsYUFBYSxhQU1iLGVBQWU7K0dBR1YsWUFBWSxZQWJqQixZQUFZO1lBQ1osZUFBZTtZQUNmLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsYUFBYTs7MkZBU1IsWUFBWTtrQkFmeEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixhQUFhO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsZUFBZTtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7cUJBQ2xCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVcGRJY29uc01vZHVsZSB9IGZyb20gJ0B1cGRldnMvaWNvbnMnO1xuaW1wb3J0IHsgVXBkRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgVXBkTGlua01vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9saW5rJztcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbG9jb01vZHVsZSxcbiAgICAgICAgVXBkSWNvbnNNb2R1bGUsXG4gICAgICAgIFVwZERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBVcGRMaW5rTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgSGVhZGVyQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEhlYWRlckNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './header.component';
2
+ export * from './header.module';
3
+ export * from './header-style.type';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL2hlYWRlci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci1zdHlsZS50eXBlJztcbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Component, input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@updevs/components/button";
4
+ export class PageHeaderComponent {
5
+ constructor() {
6
+ this.model = input.required();
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ 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.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"] }] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PageHeaderComponent, decorators: [{
12
+ type: Component,
13
+ 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" }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVFqRCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTUksVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQW1CLENBQUM7S0FDN0M7OEdBRlksbUJBQW1CO2tHQUFuQixtQkFBbUIsMExDUmhDLDgwQkF1QkE7OzJGRGZhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDSSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlSGVhZGVyTW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1wYWdlLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wYWdlLWhlYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VIZWFkZXJDb21wb25lbnQge1xuICAgIG1vZGVsID0gaW5wdXQucmVxdWlyZWQ8UGFnZUhlYWRlck1vZGVsPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cInBhZ2UtaGVhZGVyIGQtcHJpbnQtbm9uZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIteGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2UtcHJldGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbW9kZWwoKS50aXRsZUhlYWRlciB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbW9kZWwoKS50aXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAobW9kZWwoKS5hY3Rpb25CdXR0b25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gbXMtYXV0byBkLXByaW50LW5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChidG4gb2YgbW9kZWwoKS5hY3Rpb25CdXR0b25zOyB0cmFjayBidG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBbbW9kZWxdPVwiYnRuXCI+PC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './page-header.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL3BhZ2UtaGVhZGVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnZS1oZWFkZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './footer/public-api';
2
+ export * from './header/public-api';
3
+ export * from './page-header/public-api';
4
+ export * from './sidebar/public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9vdGVyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2UtaGVhZGVyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zaWRlYmFyL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './sidebar.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL3NpZGViYXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaWRlYmFyLmNvbXBvbmVudCc7XG4iXX0=