@testgorilla/tgo-ui 2.24.9999 → 2.25.0

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 (347) hide show
  1. package/components/accordion/accordion.component.d.ts +100 -0
  2. package/components/accordion/accordion.component.module.d.ts +12 -0
  3. package/components/accordion/accordion.model.d.ts +2 -0
  4. package/components/autocomplete/autocomplete.component.d.ts +294 -0
  5. package/components/autocomplete/autocomplete.component.module.d.ts +23 -0
  6. package/components/autocomplete/autocomplete.model.d.ts +22 -0
  7. package/components/autocomplete/includes.pipe.d.ts +12 -0
  8. package/components/autocomplete/prevent-input.directive.d.ts +7 -0
  9. package/components/autocomplete/transform-Item.pipe.d.ts +11 -0
  10. package/components/button/button.component.d.ts +8 -1
  11. package/components/checklist/checklist.component.d.ts +78 -0
  12. package/components/checklist/checklist.model.d.ts +7 -0
  13. package/components/confirm-dialog/confirm-dialog.component.d.ts +29 -0
  14. package/components/confirm-dialog/confirm-dialog.component.module.d.ts +12 -0
  15. package/components/confirm-dialog/confirm-dialog.model.d.ts +11 -0
  16. package/components/datepicker/date-adapter.d.ts +30 -0
  17. package/components/datepicker/datepicker.component.d.ts +214 -0
  18. package/components/datepicker/datepicker.component.module.d.ts +18 -0
  19. package/components/datepicker/datepicker.service.d.ts +8 -0
  20. package/components/datepicker/no-date-format.directive.d.ts +11 -0
  21. package/components/deprecated-paginator/deprecated-paginator.component.d.ts +38 -0
  22. package/components/deprecated-paginator/deprecated-paginator.component.module.d.ts +9 -0
  23. package/components/deprecated-table/deprecated-table.component.d.ts +91 -0
  24. package/components/deprecated-table/deprecated-table.component.module.d.ts +14 -0
  25. package/components/deprecated-table/deprecated-table.model.d.ts +45 -0
  26. package/components/deprecated-table/directives/dynamic-component.directive.d.ts +13 -0
  27. package/components/dialog/dialog.component.d.ts +147 -0
  28. package/components/dialog/dialog.component.module.d.ts +11 -0
  29. package/components/dialog/dialog.service.d.ts +13 -0
  30. package/components/divider/divider.component.d.ts +39 -0
  31. package/components/divider/divider.component.module.d.ts +9 -0
  32. package/components/divider/divider.model.d.ts +1 -0
  33. package/components/dropdown/dropdown.component.d.ts +189 -0
  34. package/components/dropdown/dropdown.component.module.d.ts +17 -0
  35. package/components/dropdown/dropdown.model.d.ts +5 -0
  36. package/components/elevation-shadow/elevation-shadow.component.d.ts +26 -0
  37. package/components/elevation-shadow/elevation-shadow.component.module.d.ts +8 -0
  38. package/components/elevation-shadow/elevation-shadow.constant.d.ts +8 -0
  39. package/components/empty-state/empty-state.component.d.ts +118 -0
  40. package/components/empty-state/empty-state.component.module.d.ts +11 -0
  41. package/components/empty-state/empty-state.model.d.ts +3 -0
  42. package/components/file-upload/file-upload.component.d.ts +120 -0
  43. package/components/file-upload/file-upload.component.module.d.ts +14 -0
  44. package/components/icon-label/icon-label.component.d.ts +39 -0
  45. package/components/icon-label/icon-label.component.module.d.ts +9 -0
  46. package/components/media-card/media-card.component.d.ts +32 -0
  47. package/components/multi-input/multi-input.component.d.ts +164 -0
  48. package/components/multi-input/multi-input.component.module.d.ts +18 -0
  49. package/components/multi-input/multi-input.model.d.ts +1 -0
  50. package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +25 -0
  51. package/components/navbar/navbar.component.d.ts +119 -0
  52. package/components/navbar/navbar.component.module.d.ts +21 -0
  53. package/components/navbar/navbar.model.d.ts +21 -0
  54. package/components/overflow-menu/overflow-menu.component.d.ts +86 -0
  55. package/components/overflow-menu/overflow-menu.component.module.d.ts +15 -0
  56. package/components/overflow-menu/overflow-menu.model.d.ts +20 -0
  57. package/components/page-header/page-header.component.d.ts +38 -0
  58. package/components/page-header/page-header.component.module.d.ts +10 -0
  59. package/components/paginator/paginator.component.d.ts +58 -0
  60. package/components/paginator/paginator.component.module.d.ts +9 -0
  61. package/components/password-criteria/password.component.d.ts +42 -0
  62. package/components/password-criteria/password.component.module.d.ts +13 -0
  63. package/components/password-strength/password-strength.component.d.ts +45 -0
  64. package/components/password-strength/password-strength.component.module.d.ts +11 -0
  65. package/components/phone-input/join-strings.pipe.d.ts +7 -0
  66. package/components/phone-input/phone-input.component.d.ts +147 -0
  67. package/components/phone-input/phone-input.component.module.d.ts +20 -0
  68. package/components/phone-input/phone-input.model.d.ts +8 -0
  69. package/components/progress-bar/progress-bar.component.d.ts +73 -0
  70. package/components/progress-bar/progress-bar.component.module.d.ts +10 -0
  71. package/components/radial-progress/radial-progress.component.d.ts +68 -0
  72. package/components/radial-progress/radial-progress.component.module.d.ts +10 -0
  73. package/components/radial-progress/radial-progress.model.d.ts +10 -0
  74. package/components/rating/half-star.pipe.d.ts +14 -0
  75. package/components/rating/rating.component.d.ts +64 -0
  76. package/components/rating/rating.component.module.d.ts +10 -0
  77. package/components/scale/scale.component.d.ts +53 -0
  78. package/components/scale/scale.component.module.d.ts +8 -0
  79. package/components/segmented-bar/segmented-bar.component.d.ts +63 -0
  80. package/components/segmented-bar/segmented-bar.component.module.d.ts +13 -0
  81. package/components/segmented-bar/segmented-bar.model.d.ts +12 -0
  82. package/components/segmented-button/segmented-button.component.d.ts +55 -0
  83. package/components/segmented-button/segmented-button.component.module.d.ts +11 -0
  84. package/components/segmented-button/segmented-button.model.d.ts +8 -0
  85. package/components/side-panel/side-panel.component.d.ts +1 -1
  86. package/components/side-sheet/side-sheet.component.d.ts +43 -0
  87. package/components/side-sheet/side-sheet.component.module.d.ts +14 -0
  88. package/components/side-sheet/side-sheet.model.d.ts +10 -0
  89. package/components/side-sheet/side-sheet.service.d.ts +14 -0
  90. package/components/skeleton/skeleton.component.d.ts +26 -0
  91. package/components/skeleton/skeleton.model.d.ts +2 -0
  92. package/components/slider/slider.component.d.ts +105 -0
  93. package/components/slider/slider.component.module.d.ts +14 -0
  94. package/components/slider/slider.model.d.ts +5 -0
  95. package/components/spider-chart/spider-chart.component.d.ts +88 -0
  96. package/components/spider-chart/spider-chart.model.d.ts +12 -0
  97. package/components/spider-chart/spider-chart.module.d.ts +12 -0
  98. package/components/step/step.component.d.ts +161 -0
  99. package/components/step/step.component.module.d.ts +10 -0
  100. package/components/stepper/stepper.component.d.ts +86 -0
  101. package/components/stepper/stepper.component.module.d.ts +15 -0
  102. package/components/stepper/stepper.model.d.ts +22 -0
  103. package/components/table/sentence-case.pipe.d.ts +7 -0
  104. package/components/table/table.component.d.ts +96 -0
  105. package/components/table/table.component.module.d.ts +20 -0
  106. package/components/table/table.model.d.ts +94 -0
  107. package/components/tabs/tab.directive.d.ts +24 -0
  108. package/components/tabs/tabs.component.d.ts +73 -0
  109. package/components/tabs/tabs.component.module.d.ts +11 -0
  110. package/components/tabs/tabs.model.d.ts +15 -0
  111. package/components/tag/tag.component.d.ts +131 -0
  112. package/components/tag/tag.component.module.d.ts +13 -0
  113. package/components/tag/tag.model.d.ts +1 -0
  114. package/components/toggle/toggle.component.d.ts +113 -0
  115. package/components/toggle/toggle.component.module.d.ts +14 -0
  116. package/components/toggle/toggle.model.d.ts +1 -0
  117. package/components/universal-skills-report/universal-skills-report.component.d.ts +33 -0
  118. package/components/universal-skills-report/universal-skills-report.component.module.d.ts +14 -0
  119. package/components/universal-skills-report/universal-skills-report.model.d.ts +33 -0
  120. package/directives/drag-drop.directive.d.ts +12 -0
  121. package/directives/select-text.directive.d.ts +19 -0
  122. package/directives/step-line-element.directive.d.ts +17 -0
  123. package/esm2022/assets/i18n/da-dk.json +62 -1
  124. package/esm2022/assets/i18n/de.json +62 -1
  125. package/esm2022/assets/i18n/es.json +62 -1
  126. package/esm2022/assets/i18n/fr.json +62 -1
  127. package/esm2022/assets/i18n/it-it.json +62 -1
  128. package/esm2022/assets/i18n/ja-jp.json +62 -1
  129. package/esm2022/assets/i18n/nb-no.json +62 -1
  130. package/esm2022/assets/i18n/nl.json +62 -1
  131. package/esm2022/assets/i18n/pl-pl.json +62 -1
  132. package/esm2022/assets/i18n/pt-br.json +62 -1
  133. package/esm2022/assets/i18n/sv-se.json +62 -1
  134. package/esm2022/components/accordion/accordion.component.mjs +135 -0
  135. package/esm2022/components/accordion/accordion.component.module.mjs +40 -0
  136. package/esm2022/components/accordion/accordion.model.mjs +2 -0
  137. package/esm2022/components/alert-banner/alert-banner.component.mjs +2 -2
  138. package/esm2022/components/autocomplete/autocomplete.component.mjs +720 -0
  139. package/esm2022/components/autocomplete/autocomplete.component.module.mjs +73 -0
  140. package/esm2022/components/autocomplete/autocomplete.model.mjs +25 -0
  141. package/esm2022/components/autocomplete/includes.pipe.mjs +25 -0
  142. package/esm2022/components/autocomplete/prevent-input.directive.mjs +27 -0
  143. package/esm2022/components/autocomplete/transform-Item.pipe.mjs +32 -0
  144. package/esm2022/components/avatar/avatar.component.mjs +1 -1
  145. package/esm2022/components/button/button.component.mjs +15 -3
  146. package/esm2022/components/checklist/checklist.component.mjs +147 -0
  147. package/esm2022/components/checklist/checklist.model.mjs +2 -0
  148. package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +54 -0
  149. package/esm2022/components/confirm-dialog/confirm-dialog.component.module.mjs +29 -0
  150. package/esm2022/components/confirm-dialog/confirm-dialog.model.mjs +2 -0
  151. package/esm2022/components/datepicker/date-adapter.mjs +30 -0
  152. package/esm2022/components/datepicker/datepicker.component.mjs +333 -0
  153. package/esm2022/components/datepicker/datepicker.component.module.mjs +60 -0
  154. package/esm2022/components/datepicker/datepicker.service.mjs +20 -0
  155. package/esm2022/components/datepicker/no-date-format.directive.mjs +56 -0
  156. package/esm2022/components/deprecated-paginator/deprecated-paginator.component.mjs +55 -0
  157. package/esm2022/components/deprecated-paginator/deprecated-paginator.component.module.mjs +20 -0
  158. package/esm2022/components/deprecated-table/deprecated-table.component.mjs +158 -0
  159. package/esm2022/components/deprecated-table/deprecated-table.component.module.mjs +43 -0
  160. package/esm2022/components/deprecated-table/deprecated-table.model.mjs +13 -0
  161. package/esm2022/components/deprecated-table/directives/dynamic-component.directive.mjs +40 -0
  162. package/esm2022/components/dialog/dialog.component.mjs +253 -0
  163. package/esm2022/components/dialog/dialog.component.module.mjs +23 -0
  164. package/esm2022/components/dialog/dialog.service.mjs +35 -0
  165. package/esm2022/components/divider/divider.component.mjs +65 -0
  166. package/esm2022/components/divider/divider.component.module.mjs +19 -0
  167. package/esm2022/components/divider/divider.model.mjs +2 -0
  168. package/esm2022/components/dropdown/dropdown.component.mjs +351 -0
  169. package/esm2022/components/dropdown/dropdown.component.module.mjs +57 -0
  170. package/esm2022/components/dropdown/dropdown.model.mjs +2 -0
  171. package/esm2022/components/elevation-shadow/elevation-shadow.component.mjs +45 -0
  172. package/esm2022/components/elevation-shadow/elevation-shadow.component.module.mjs +18 -0
  173. package/esm2022/components/elevation-shadow/elevation-shadow.constant.mjs +9 -0
  174. package/esm2022/components/empty-state/empty-state.component.mjs +186 -0
  175. package/esm2022/components/empty-state/empty-state.component.module.mjs +21 -0
  176. package/esm2022/components/empty-state/empty-state.model.mjs +2 -0
  177. package/esm2022/components/field/field.component.mjs +1 -1
  178. package/esm2022/components/file-upload/file-upload.component.mjs +282 -0
  179. package/esm2022/components/file-upload/file-upload.component.module.mjs +40 -0
  180. package/esm2022/components/icon-label/icon-label.component.mjs +53 -0
  181. package/esm2022/components/icon-label/icon-label.component.module.mjs +20 -0
  182. package/esm2022/components/media-card/media-card.component.mjs +47 -0
  183. package/esm2022/components/multi-input/multi-input.component.mjs +318 -0
  184. package/esm2022/components/multi-input/multi-input.component.module.mjs +58 -0
  185. package/esm2022/components/multi-input/multi-input.model.mjs +2 -0
  186. package/esm2022/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.mjs +82 -0
  187. package/esm2022/components/navbar/navbar.component.mjs +209 -0
  188. package/esm2022/components/navbar/navbar.component.module.mjs +71 -0
  189. package/esm2022/components/navbar/navbar.model.mjs +2 -0
  190. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +195 -0
  191. package/esm2022/components/overflow-menu/overflow-menu.component.module.mjs +25 -0
  192. package/esm2022/components/overflow-menu/overflow-menu.model.mjs +2 -0
  193. package/esm2022/components/page-header/page-header.component.mjs +71 -0
  194. package/esm2022/components/page-header/page-header.component.module.mjs +20 -0
  195. package/esm2022/components/paginator/paginator.component.mjs +87 -0
  196. package/esm2022/components/paginator/paginator.component.module.mjs +19 -0
  197. package/esm2022/components/password-criteria/password.component.mjs +105 -0
  198. package/esm2022/components/password-criteria/password.component.module.mjs +39 -0
  199. package/esm2022/components/password-strength/password-strength.component.mjs +93 -0
  200. package/esm2022/components/password-strength/password-strength.component.module.mjs +21 -0
  201. package/esm2022/components/phone-input/join-strings.pipe.mjs +14 -0
  202. package/esm2022/components/phone-input/phone-input.component.mjs +353 -0
  203. package/esm2022/components/phone-input/phone-input.component.module.mjs +63 -0
  204. package/esm2022/components/phone-input/phone-input.model.mjs +2 -0
  205. package/esm2022/components/progress-bar/progress-bar.component.mjs +103 -0
  206. package/esm2022/components/progress-bar/progress-bar.component.module.mjs +21 -0
  207. package/esm2022/components/radial-progress/radial-progress.component.mjs +106 -0
  208. package/esm2022/components/radial-progress/radial-progress.component.module.mjs +20 -0
  209. package/esm2022/components/radial-progress/radial-progress.model.mjs +11 -0
  210. package/esm2022/components/rating/half-star.pipe.mjs +23 -0
  211. package/esm2022/components/rating/rating.component.mjs +92 -0
  212. package/esm2022/components/rating/rating.component.module.mjs +20 -0
  213. package/esm2022/components/scale/scale.component.mjs +124 -0
  214. package/esm2022/components/scale/scale.component.module.mjs +18 -0
  215. package/esm2022/components/segmented-bar/segmented-bar.component.mjs +106 -0
  216. package/esm2022/components/segmented-bar/segmented-bar.component.module.mjs +23 -0
  217. package/esm2022/components/segmented-bar/segmented-bar.model.mjs +2 -0
  218. package/esm2022/components/segmented-button/segmented-button.component.mjs +104 -0
  219. package/esm2022/components/segmented-button/segmented-button.component.module.mjs +21 -0
  220. package/esm2022/components/segmented-button/segmented-button.model.mjs +2 -0
  221. package/esm2022/components/side-panel/side-panel.component.mjs +2 -2
  222. package/esm2022/components/side-sheet/side-sheet.component.mjs +105 -0
  223. package/esm2022/components/side-sheet/side-sheet.component.module.mjs +43 -0
  224. package/esm2022/components/side-sheet/side-sheet.model.mjs +2 -0
  225. package/esm2022/components/side-sheet/side-sheet.service.mjs +31 -0
  226. package/esm2022/components/skeleton/skeleton.component.mjs +71 -0
  227. package/esm2022/components/skeleton/skeleton.model.mjs +2 -0
  228. package/esm2022/components/slider/slider.component.mjs +198 -0
  229. package/esm2022/components/slider/slider.component.module.mjs +43 -0
  230. package/esm2022/components/slider/slider.model.mjs +2 -0
  231. package/esm2022/components/snackbar/snackbar.component.mjs +2 -2
  232. package/esm2022/components/spider-chart/spider-chart.component.mjs +425 -0
  233. package/esm2022/components/spider-chart/spider-chart.model.mjs +4 -0
  234. package/esm2022/components/spider-chart/spider-chart.module.mjs +41 -0
  235. package/esm2022/components/step/step.component.mjs +149 -0
  236. package/esm2022/components/step/step.component.module.mjs +20 -0
  237. package/esm2022/components/stepper/stepper.component.mjs +150 -0
  238. package/esm2022/components/stepper/stepper.component.module.mjs +44 -0
  239. package/esm2022/components/stepper/stepper.model.mjs +2 -0
  240. package/esm2022/components/table/sentence-case.pipe.mjs +19 -0
  241. package/esm2022/components/table/table.component.mjs +237 -0
  242. package/esm2022/components/table/table.component.module.mjs +61 -0
  243. package/esm2022/components/table/table.model.mjs +13 -0
  244. package/esm2022/components/tabs/tab.directive.mjs +54 -0
  245. package/esm2022/components/tabs/tabs.component.mjs +188 -0
  246. package/esm2022/components/tabs/tabs.component.module.mjs +21 -0
  247. package/esm2022/components/tabs/tabs.model.mjs +2 -0
  248. package/esm2022/components/tag/tag.component.mjs +212 -0
  249. package/esm2022/components/tag/tag.component.module.mjs +24 -0
  250. package/esm2022/components/tag/tag.model.mjs +2 -0
  251. package/esm2022/components/toggle/toggle.component.mjs +190 -0
  252. package/esm2022/components/toggle/toggle.component.module.mjs +24 -0
  253. package/esm2022/components/toggle/toggle.model.mjs +2 -0
  254. package/esm2022/components/universal-skills-report/universal-skills-report.component.mjs +115 -0
  255. package/esm2022/components/universal-skills-report/universal-skills-report.component.module.mjs +43 -0
  256. package/esm2022/components/universal-skills-report/universal-skills-report.model.mjs +19 -0
  257. package/esm2022/directives/drag-drop.directive.mjs +55 -0
  258. package/esm2022/directives/select-text.directive.mjs +40 -0
  259. package/esm2022/directives/step-line-element.directive.mjs +51 -0
  260. package/esm2022/models/keyboard-events.model.mjs +13 -0
  261. package/esm2022/models/screen-breakpoints.model.mjs +6 -0
  262. package/esm2022/pipes/data-property-getter.mjs +33 -0
  263. package/esm2022/pipes/ui-ordinal-suffix.pipe.mjs +31 -0
  264. package/esm2022/providers/is-mobile.mjs +11 -0
  265. package/esm2022/public-api.mjs +214 -184
  266. package/esm2022/utils/autocomplete-utils.mjs +78 -0
  267. package/esm2022/utils/hex-to-rgb.mjs +9 -0
  268. package/esm2022/utils/table.utils.mjs +19 -0
  269. package/fesm2022/testgorilla-tgo-ui.mjs +12106 -3000
  270. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  271. package/models/keyboard-events.model.d.ts +11 -0
  272. package/models/screen-breakpoints.model.d.ts +4 -0
  273. package/package.json +2 -3
  274. package/pipes/data-property-getter.d.ts +8 -0
  275. package/pipes/ui-ordinal-suffix.pipe.d.ts +7 -0
  276. package/projects/tgo-canopy-ui/assets/i18n/da-dk.json +62 -1
  277. package/projects/tgo-canopy-ui/assets/i18n/de.json +62 -1
  278. package/projects/tgo-canopy-ui/assets/i18n/es.json +62 -1
  279. package/projects/tgo-canopy-ui/assets/i18n/fr.json +62 -1
  280. package/projects/tgo-canopy-ui/assets/i18n/it-it.json +62 -1
  281. package/projects/tgo-canopy-ui/assets/i18n/ja-jp.json +62 -1
  282. package/projects/tgo-canopy-ui/assets/i18n/nb-no.json +62 -1
  283. package/projects/tgo-canopy-ui/assets/i18n/nl.json +62 -1
  284. package/projects/tgo-canopy-ui/assets/i18n/pl-pl.json +62 -1
  285. package/projects/tgo-canopy-ui/assets/i18n/pt-br.json +62 -1
  286. package/projects/tgo-canopy-ui/assets/i18n/sv-se.json +62 -1
  287. package/providers/is-mobile.d.ts +2 -0
  288. package/public-api.d.ts +151 -14
  289. package/utils/autocomplete-utils.d.ts +12 -0
  290. package/utils/hex-to-rgb.d.ts +1 -0
  291. package/utils/table.utils.d.ts +6 -0
  292. package/components/alert-banner/index.d.ts +0 -1
  293. package/components/alert-banner/public-api.d.ts +0 -2
  294. package/components/avatar/index.d.ts +0 -1
  295. package/components/avatar/public-api.d.ts +0 -3
  296. package/components/badge/index.d.ts +0 -1
  297. package/components/badge/public-api.d.ts +0 -3
  298. package/components/button/index.d.ts +0 -1
  299. package/components/button/public-api.d.ts +0 -3
  300. package/components/card/index.d.ts +0 -1
  301. package/components/card/public-api.d.ts +0 -3
  302. package/components/checkbox/index.d.ts +0 -1
  303. package/components/checkbox/public-api.d.ts +0 -2
  304. package/components/field/index.d.ts +0 -1
  305. package/components/field/public-api.d.ts +0 -3
  306. package/components/icon/index.d.ts +0 -1
  307. package/components/icon/public-api.d.ts +0 -3
  308. package/components/logo/index.d.ts +0 -1
  309. package/components/logo/public-api.d.ts +0 -3
  310. package/components/radio-button/index.d.ts +0 -1
  311. package/components/radio-button/public-api.d.ts +0 -2
  312. package/components/side-panel/index.d.ts +0 -1
  313. package/components/side-panel/public-api.d.ts +0 -3
  314. package/components/snackbar/index.d.ts +0 -1
  315. package/components/snackbar/public-api.d.ts +0 -4
  316. package/components/spinner/index.d.ts +0 -1
  317. package/components/spinner/public-api.d.ts +0 -3
  318. package/components/tooltip/index.d.ts +0 -1
  319. package/components/tooltip/public-api.d.ts +0 -3
  320. package/esm2022/components/alert-banner/index.mjs +0 -2
  321. package/esm2022/components/alert-banner/public-api.mjs +0 -3
  322. package/esm2022/components/avatar/index.mjs +0 -2
  323. package/esm2022/components/avatar/public-api.mjs +0 -4
  324. package/esm2022/components/badge/index.mjs +0 -2
  325. package/esm2022/components/badge/public-api.mjs +0 -4
  326. package/esm2022/components/button/index.mjs +0 -2
  327. package/esm2022/components/button/public-api.mjs +0 -4
  328. package/esm2022/components/card/index.mjs +0 -2
  329. package/esm2022/components/card/public-api.mjs +0 -4
  330. package/esm2022/components/checkbox/index.mjs +0 -2
  331. package/esm2022/components/checkbox/public-api.mjs +0 -3
  332. package/esm2022/components/field/index.mjs +0 -2
  333. package/esm2022/components/field/public-api.mjs +0 -4
  334. package/esm2022/components/icon/index.mjs +0 -2
  335. package/esm2022/components/icon/public-api.mjs +0 -4
  336. package/esm2022/components/logo/index.mjs +0 -2
  337. package/esm2022/components/logo/public-api.mjs +0 -4
  338. package/esm2022/components/radio-button/index.mjs +0 -2
  339. package/esm2022/components/radio-button/public-api.mjs +0 -3
  340. package/esm2022/components/side-panel/index.mjs +0 -2
  341. package/esm2022/components/side-panel/public-api.mjs +0 -4
  342. package/esm2022/components/snackbar/index.mjs +0 -2
  343. package/esm2022/components/snackbar/public-api.mjs +0 -5
  344. package/esm2022/components/spinner/index.mjs +0 -2
  345. package/esm2022/components/spinner/public-api.mjs +0 -4
  346. package/esm2022/components/tooltip/index.mjs +0 -2
  347. package/esm2022/components/tooltip/public-api.mjs +0 -4
@@ -0,0 +1,318 @@
1
+ import { booleanAttribute, Component, EventEmitter, HostBinding, Inject, Input, Optional, Output, Self, } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { FormControl, Validators } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/material/form-field";
8
+ import * as i4 from "../icon/icon.component";
9
+ import * as i5 from "../dropdown/dropdown.component";
10
+ import * as i6 from "../validation-error/validation-error.component";
11
+ import * as i7 from "../field/field.component";
12
+ import * as i8 from "../../pipes/has-validation-error.pipe";
13
+ export class MultiInputComponent {
14
+ /**
15
+ *
16
+ * @description The Value of the multi input
17
+ * @type {MultiInputValue}
18
+ * @memberof MultiInputComponent
19
+ */
20
+ set value(v) {
21
+ this._value = v;
22
+ this.addDropdownControl();
23
+ this.multiInputForm.patchValue(v);
24
+ }
25
+ constructor(ngControl, defaultAppTheme, fb) {
26
+ this.ngControl = ngControl;
27
+ this.defaultAppTheme = defaultAppTheme;
28
+ this.fb = fb;
29
+ /**
30
+ *
31
+ * @description List of items to be displayed in the dropdown list
32
+ * @type {Record<string, string | null | number>[]}
33
+ * @memberof MultiInputComponent
34
+ */
35
+ this.itemsList = [];
36
+ /**
37
+ *
38
+ * @description The field to be displayed in the dropdown
39
+ * @type {string}
40
+ * @memberof MultiInputComponent
41
+ */
42
+ this.itemTextField = '';
43
+ /**
44
+ *
45
+ * @description The value to be displayed in the droddown
46
+ * @type {string}
47
+ * @memberof MultiInputComponent
48
+ */
49
+ this.itemValueField = '';
50
+ /**
51
+ *
52
+ * @description Disables the multi input
53
+ * @type {boolean}
54
+ * @memberof MultiInputComponent
55
+ */
56
+ this.disabled = false;
57
+ /**
58
+ *
59
+ * @description Defines if the multi input is required
60
+ * @type {boolean}
61
+ * @memberof MultiInputComponent
62
+ */
63
+ this.required = false;
64
+ /**
65
+ *
66
+ * @description Defines the label of the multi input
67
+ * @type {string}
68
+ * @memberof MultiInputComponent
69
+ */
70
+ this.label = '';
71
+ /**
72
+ *
73
+ * @description Defines the placeholder of the multi input
74
+ * @type {string}
75
+ * @memberof MultiInputComponent
76
+ */
77
+ this.placeholder = '';
78
+ /**
79
+ *
80
+ * @description Allow decimal values in the multi input
81
+ * @type {boolean}
82
+ * @memberof MultiInputComponent
83
+ */
84
+ this.allowDecimal = true;
85
+ /**
86
+ *
87
+ * @description Allow negative values in the multi input
88
+ * @type {boolean}
89
+ * @memberof MultiInputComponent
90
+ */
91
+ this.allowNegative = true;
92
+ /**
93
+ *
94
+ * @description The theme of the application
95
+ * @type {ApplicationTheme}
96
+ * @memberof MultiInputComponent
97
+ */
98
+ this.applicationTheme = 'light';
99
+ /**
100
+ *
101
+ * @description The errors of the multi input
102
+ * @type {string[]}
103
+ * @memberof MultiInputComponent
104
+ */
105
+ this.errors = [];
106
+ /**
107
+ *
108
+ * @description Hide built in errors for Reactive Forms
109
+ * @type {boolean}
110
+ * @memberof MultiInputComponent
111
+ */
112
+ this.hideBuiltInErrors = false;
113
+ /**
114
+ *
115
+ * @description Hide label in errors
116
+ * @type {boolean}
117
+ * @memberof MultiInputComponent
118
+ */
119
+ this.hideLabelInErrors = false;
120
+ /**
121
+ *
122
+ * @description The maximum characters allowed in the multi input
123
+ * @type {number}
124
+ * @memberof MultiInputComponent
125
+ */
126
+ this.maxCharacters = 0;
127
+ /**
128
+ *
129
+ * @description The width of the multi input
130
+ * @type {boolean}
131
+ * @memberof MultiInputComponent
132
+ */
133
+ this.fullWidth = false;
134
+ this.valueChange = new EventEmitter();
135
+ this.class = 'ui-multi-input';
136
+ /**
137
+ * @ignore
138
+ */
139
+ this.onChange = (_) => { };
140
+ /**
141
+ * @ignore
142
+ */
143
+ this.onTouch = () => { };
144
+ this.showError = false;
145
+ this.multiInputForm = this.fb.group({
146
+ value: null,
147
+ });
148
+ if (this.ngControl) {
149
+ this.ngControl.valueAccessor = this;
150
+ }
151
+ if (this.defaultAppTheme) {
152
+ this.applicationTheme = this.defaultAppTheme;
153
+ }
154
+ this.multiInputForm.valueChanges
155
+ .pipe(takeUntilDestroyed())
156
+ .subscribe(formValue => {
157
+ this.valueChanged(formValue);
158
+ this.checkFormErrors();
159
+ if (!formValue.value && !formValue[this.itemValueField]) {
160
+ this.showError = true;
161
+ }
162
+ });
163
+ }
164
+ ngOnInit() {
165
+ this.addDropdownControl();
166
+ this.addValidation();
167
+ if (this.ngControl && this.hasRequiredValidator) {
168
+ this.inputControl?.addValidators(Validators.required);
169
+ this.dropdownControl?.addValidators(Validators.required);
170
+ }
171
+ }
172
+ ngOnChanges(changes) {
173
+ if (changes['disabled']) {
174
+ this.updateDisableState(this.disabled);
175
+ }
176
+ }
177
+ writeValue(value) {
178
+ this.value = value;
179
+ this.addDropdownControl();
180
+ this.multiInputForm.patchValue(value);
181
+ }
182
+ setDisabledState(isDisabled) {
183
+ this.disabled = isDisabled;
184
+ this.updateDisableState(isDisabled);
185
+ }
186
+ registerOnChange(fn) {
187
+ this.onChange = fn;
188
+ }
189
+ registerOnTouched(fn) {
190
+ this.onTouch = fn;
191
+ }
192
+ valueChanged(value) {
193
+ this.valueChange.emit(value);
194
+ this.onChange(value);
195
+ }
196
+ get value() {
197
+ return this._value;
198
+ }
199
+ get hasRequiredValidator() {
200
+ return !!this.ngControl.control?.hasValidator(Validators.required);
201
+ }
202
+ get dropdownControl() {
203
+ return this.multiInputForm.get(this.itemValueField);
204
+ }
205
+ get inputControl() {
206
+ return this.multiInputForm.get('value');
207
+ }
208
+ checkFormErrors() {
209
+ if (this.ngControl) {
210
+ this.ngControl.control?.setErrors({ ...this.inputControl?.errors, ...this.dropdownControl?.errors });
211
+ }
212
+ this.showError = !!(this.inputControl?.errors || this.dropdownControl?.errors);
213
+ }
214
+ markAsTouched() {
215
+ if (this.ngControl && ((this.inputControl?.touched && this.dropdownControl?.touched) || (!this.inputControl?.value && !this.dropdownControl?.value))) {
216
+ this.ngControl.control?.markAsTouched();
217
+ }
218
+ }
219
+ addDropdownControl() {
220
+ if (!this.multiInputForm.value[this.itemValueField]) {
221
+ this.multiInputForm.addControl(this.itemValueField, new FormControl(null), { emitEvent: false });
222
+ this.updateDisableState(this.disabled);
223
+ }
224
+ }
225
+ get controlHasError() {
226
+ return this.ngControl
227
+ ? (this.showError && !!this.ngControl.control?.touched)
228
+ || (!this.inputControl?.valid && !!this.inputControl?.touched)
229
+ || (!this.dropdownControl?.valid && !!this.dropdownControl?.touched)
230
+ : this.showError
231
+ || !!this.errors.length
232
+ || (!this.inputControl?.valid && !!this.inputControl?.touched)
233
+ || (!this.dropdownControl?.valid && !!this.dropdownControl?.touched);
234
+ }
235
+ getValueLength() {
236
+ return this.inputControl?.value?.toString().length || 0;
237
+ }
238
+ addValidation() {
239
+ if (this.maxCharacters) {
240
+ this.inputControl?.addValidators(Validators.maxLength(this.maxCharacters));
241
+ }
242
+ }
243
+ updateDisableState(state) {
244
+ if (state) {
245
+ this.multiInputForm.disable({ emitEvent: false });
246
+ }
247
+ else {
248
+ this.multiInputForm.enable({ emitEvent: false });
249
+ }
250
+ }
251
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
252
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MultiInputComponent, selector: "ui-multi-input", inputs: { itemsList: "itemsList", itemTextField: "itemTextField", itemValueField: "itemValueField", value: "value", disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], label: "label", placeholder: "placeholder", allowDecimal: ["allowDecimal", "allowDecimal", booleanAttribute], allowNegative: ["allowNegative", "allowNegative", booleanAttribute], applicationTheme: "applicationTheme", errors: "errors", hideBuiltInErrors: ["hideBuiltInErrors", "hideBuiltInErrors", booleanAttribute], hideLabelInErrors: ["hideLabelInErrors", "hideLabelInErrors", booleanAttribute], maxCharacters: "maxCharacters", fullWidth: "fullWidth" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.theme": "this.applicationTheme", "class.full-width": "this.fullWidth", "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField\"\n [valueList]=\"itemsList\"\n [textField]=\"itemTextField\"\n [valueField]=\"itemValueField\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched(); checkFormErrors()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n [formControlName]=\"'value'\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n (focusout)=\"markAsTouched(); checkFormErrors()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters && !errors?.length\">{{ getValueLength() }} / {{ maxCharacters }}</mat-hint>\n\n @if (errors?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors; track error) {\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.DropdownComponent, selector: "ui-dropdown", inputs: ["label", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor"], outputs: ["closed", "opened"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme"] }, { kind: "component", type: i7.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "label", "fieldName", "placeholder", "id", "value", "errors", "disabled", "required", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "pipe", type: i8.HasValidationErrorPipe, name: "hasValidationError" }] }); }
253
+ }
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiInputComponent, decorators: [{
255
+ type: Component,
256
+ args: [{ selector: 'ui-multi-input', template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField\"\n [valueList]=\"itemsList\"\n [textField]=\"itemTextField\"\n [valueField]=\"itemValueField\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched(); checkFormErrors()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n [formControlName]=\"'value'\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n (focusout)=\"markAsTouched(); checkFormErrors()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters && !errors?.length\">{{ getValueLength() }} / {{ maxCharacters }}</mat-hint>\n\n @if (errors?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors; track error) {\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"] }]
257
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
258
+ type: Optional
259
+ }, {
260
+ type: Self
261
+ }] }, { type: undefined, decorators: [{
262
+ type: Optional
263
+ }, {
264
+ type: Inject,
265
+ args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
266
+ }] }, { type: i1.FormBuilder }], propDecorators: { itemsList: [{
267
+ type: Input,
268
+ args: [{ required: true }]
269
+ }], itemTextField: [{
270
+ type: Input,
271
+ args: [{ required: true }]
272
+ }], itemValueField: [{
273
+ type: Input,
274
+ args: [{ required: true }]
275
+ }], value: [{
276
+ type: Input
277
+ }], disabled: [{
278
+ type: Input,
279
+ args: [{ transform: booleanAttribute }]
280
+ }], required: [{
281
+ type: Input,
282
+ args: [{ transform: booleanAttribute }]
283
+ }], label: [{
284
+ type: Input
285
+ }], placeholder: [{
286
+ type: Input
287
+ }], allowDecimal: [{
288
+ type: Input,
289
+ args: [{ transform: booleanAttribute }]
290
+ }], allowNegative: [{
291
+ type: Input,
292
+ args: [{ transform: booleanAttribute }]
293
+ }], applicationTheme: [{
294
+ type: HostBinding,
295
+ args: ['attr.theme']
296
+ }, {
297
+ type: Input
298
+ }], errors: [{
299
+ type: Input
300
+ }], hideBuiltInErrors: [{
301
+ type: Input,
302
+ args: [{ transform: booleanAttribute }]
303
+ }], hideLabelInErrors: [{
304
+ type: Input,
305
+ args: [{ transform: booleanAttribute }]
306
+ }], maxCharacters: [{
307
+ type: Input
308
+ }], fullWidth: [{
309
+ type: HostBinding,
310
+ args: ['class.full-width']
311
+ }, {
312
+ type: Input
313
+ }], valueChange: [{
314
+ type: Output
315
+ }], class: [{
316
+ type: HostBinding
317
+ }] } });
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFzRCxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFTeEgsTUFBTSxPQUFPLG1CQUFtQjtJQXlCOUI7Ozs7O09BS0c7SUFDSCxJQUFhLEtBQUssQ0FBQyxDQUFrQjtRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBeUhELFlBQ2dDLFNBQW9CLEVBQ3lCLGVBQWlDLEVBQzNGLEVBQWU7UUFGRixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3lCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUMzRixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBOUpsQzs7Ozs7V0FLRztRQUN3QixjQUFTLEdBQTZDLEVBQUUsQ0FBQztRQUVwRjs7Ozs7V0FLRztRQUN3QixrQkFBYSxHQUFHLEVB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RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVE3QixhQUFhO3NCQUFyQixLQUFLO2dCQVNHLFNBQVM7c0JBRGpCLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVRLEtBQUs7c0JBQW5CLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZiwgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlJbnB1dFZhbHVlIH0gZnJvbSAnLi9tdWx0aS1pbnB1dC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLW11bHRpLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL211bHRpLWlucHV0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIExpc3Qgb2YgaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBkcm9wZG93biBsaXN0XG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsIHwgbnVtYmVyPltdfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaXRlbXNMaXN0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsIHwgbnVtYmVyPltdID0gW107XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgZmllbGQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBkcm9wZG93blxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaXRlbVRleHRGaWVsZCA9ICcnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbHVlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvZGRvd25cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGl0ZW1WYWx1ZUZpZWxkID0gJyc7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgVmFsdWUgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtNdWx0aUlucHV0VmFsdWV9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzZXQgdmFsdWUodjogTXVsdGlJbnB1dFZhbHVlKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgIHRoaXMuYWRkRHJvcGRvd25Db250cm9sKCk7XG4gICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5wYXRjaFZhbHVlKHYpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEaXNhYmxlcyB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgaWYgdGhlIG11bHRpIGlucHV0IGlzIHJlcXVpcmVkXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBsYWJlbCBvZiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG5cbiAgICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIEFsbG93IGRlY2ltYWwgdmFsdWVzIGluIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbGxvd0RlY2ltYWwgPSB0cnVlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gQWxsb3cgbmVnYXRpdmUgdmFsdWVzIGluIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbGxvd05lZ2F0aXZlID0gdHJ1ZTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB0aGVtZSBvZiB0aGUgYXBwbGljYXRpb25cbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudGhlbWUnKVxuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBlcnJvcnMgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIEhpZGUgYnVpbHQgaW4gZXJyb3JzIGZvciBSZWFjdGl2ZSBGb3Jtc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoaWRlQnVpbHRJbkVycm9ycyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gSGlkZSBsYWJlbCBpbiBlcnJvcnNcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGlkZUxhYmVsSW5FcnJvcnMgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBtYXhpbXVtIGNoYXJhY3RlcnMgYWxsb3dlZCBpbiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIG1heENoYXJhY3RlcnMgPSAwO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHdpZHRoIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnVsbC13aWR0aCcpXG4gIEBJbnB1dCgpIGZ1bGxXaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TXVsdGlJbnB1dFZhbHVlPigpO1xuXG4gIEBIb3N0QmluZGluZygpIGNsYXNzID0gJ3VpLW11bHRpLWlucHV0JztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25DaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7fTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub3VjaCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBNdWx0aUlucHV0VmFsdWUgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBzaG93RXJyb3IgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbXVsdGlJbnB1dEZvcm0gPSB0aGlzLmZiLmdyb3VwPE11bHRpSW5wdXRWYWx1ZT4oe1xuICAgIHZhbHVlOiBudWxsLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByb3RlY3RlZCBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSB0aGlzLmRlZmF1bHRBcHBUaGVtZTtcbiAgICB9XG5cbiAgICB0aGlzLm11bHRpSW5wdXRGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKGZvcm1WYWx1ZSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkKGZvcm1WYWx1ZSBhcyBNdWx0aUlucHV0VmFsdWUpO1xuICAgICAgICB0aGlzLmNoZWNrRm9ybUVycm9ycygpO1xuXG4gICAgICAgIGlmICghKGZvcm1WYWx1ZSBhcyBhbnkpLnZhbHVlICYmICEoZm9ybVZhbHVlIGFzIGFueSlbdGhpcy5pdGVtVmFsdWVGaWVsZF0pIHtcbiAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGREcm9wZG93bkNvbnRyb2woKTtcbiAgICB0aGlzLmFkZFZhbGlkYXRpb24oKTtcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLmhhc1JlcXVpcmVkVmFsaWRhdG9yKSB7XG4gICAgICB0aGlzLmlucHV0Q29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sPy5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgdGhpcy51cGRhdGVEaXNhYmxlU3RhdGUodGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogTXVsdGlJbnB1dFZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuYWRkRHJvcGRvd25Db250cm9sKCk7XG4gICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMudXBkYXRlRGlzYWJsZVN0YXRlKGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbHVlQ2hhbmdlZCh2YWx1ZTogTXVsdGlJbnB1dFZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBNdWx0aUlucHV0VmFsdWUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaGFzUmVxdWlyZWRWYWxpZGF0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkcm9wZG93bkNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IG51bGw+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dEZvcm0uZ2V0KHRoaXMuaXRlbVZhbHVlRmllbGQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBpbnB1dENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sPG51bWJlciB8IG51bGw+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dEZvcm0uZ2V0KCd2YWx1ZScpIGFzIGFueTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0Zvcm1FcnJvcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5zZXRFcnJvcnMoeyAuLi50aGlzLmlucHV0Q29udHJvbD8uZXJyb3JzLCAuLi50aGlzLmRyb3Bkb3duQ29udHJvbD8uZXJyb3JzIH0pO1xuICAgIH1cbiAgICB0aGlzLnNob3dFcnJvciA9ICEhKHRoaXMuaW5wdXRDb250cm9sPy5lcnJvcnMgfHwgdGhpcy5kcm9wZG93bkNvbnRyb2w/LmVycm9ycyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgKCh0aGlzLmlucHV0Q29udHJvbD8udG91Y2hlZCAmJiB0aGlzLmRyb3Bkb3duQ29udHJvbD8udG91Y2hlZCkgfHwgKCF0aGlzLmlucHV0Q29udHJvbD8udmFsdWUgJiYgIXRoaXMuZHJvcGRvd25Db250cm9sPy52YWx1ZSkpKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFkZERyb3Bkb3duQ29udHJvbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlJbnB1dEZvcm0udmFsdWVbdGhpcy5pdGVtVmFsdWVGaWVsZF0pIHtcbiAgICAgIHRoaXMubXVsdGlJbnB1dEZvcm0uYWRkQ29udHJvbCh0aGlzLml0ZW1WYWx1ZUZpZWxkLCBuZXcgRm9ybUNvbnRyb2wobnVsbCksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZVN0YXRlKHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY29udHJvbEhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5nQ29udHJvbFxuICAgICAgPyAodGhpcy5zaG93RXJyb3IgJiYgISF0aGlzLm5nQ29udHJvbC5jb250cm9sPy50b3VjaGVkKVxuICAgICAgICB8fCAoIXRoaXMuaW5wdXRDb250cm9sPy52YWxpZCAmJiAhIXRoaXMuaW5wdXRDb250cm9sPy50b3VjaGVkKVxuICAgICAgICB8fCAoIXRoaXMuZHJvcGRvd25Db250cm9sPy52YWxpZCAmJiAhIXRoaXMuZHJvcGRvd25Db250cm9sPy50b3VjaGVkKVxuICAgICAgOiB0aGlzLnNob3dFcnJvclxuICAgICAgfHwgISF0aGlzLmVycm9ycy5sZW5ndGhcbiAgICAgIHx8ICghdGhpcy5pbnB1dENvbnRyb2w/LnZhbGlkICYmICEhdGhpcy5pbnB1dENvbnRyb2w/LnRvdWNoZWQpXG4gICAgICB8fCAoIXRoaXMuZHJvcGRvd25Db250cm9sPy52YWxpZCAmJiAhIXRoaXMuZHJvcGRvd25Db250cm9sPy50b3VjaGVkKVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldFZhbHVlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRDb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKS5sZW5ndGggfHwgMDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVmFsaWRhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXhDaGFyYWN0ZXJzKSB7XG4gICAgICB0aGlzLmlucHV0Q29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heENoYXJhY3RlcnMpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURpc2FibGVTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cIm11bHRpSW5wdXRGb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250cm9scy13cmFwcGVyXCI+XG4gICAgPHVpLWRyb3Bkb3duXG4gICAgICBbaGFzRXJyb3JdPVwiY29udHJvbEhhc0Vycm9yXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbVZhbHVlRmllbGRcIlxuICAgICAgW3ZhbHVlTGlzdF09XCJpdGVtc0xpc3RcIlxuICAgICAgW3RleHRGaWVsZF09XCJpdGVtVGV4dEZpZWxkXCJcbiAgICAgIFt2YWx1ZUZpZWxkXT1cIml0ZW1WYWx1ZUZpZWxkXCJcbiAgICAgIFtzaG93Qm90dG9tQ29udGVudF09XCJmYWxzZVwiXG4gICAgICBbYWxsb3dDbGVhcl09XCJmYWxzZVwiXG4gICAgICAoY2xvc2VkKT1cIm1hcmtBc1RvdWNoZWQoKTsgY2hlY2tGb3JtRXJyb3JzKClcIlxuICAgID48L3VpLWRyb3Bkb3duPlxuXG4gICAgPHVpLWZpZWxkXG4gICAgICBbaGFzRXJyb3JdPVwiY29udHJvbEhhc0Vycm9yXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3ZhbHVlJ1wiXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbaGlkZUJ1aWx0SW5FcnJvcnNdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0JvdHRvbUNvbnRlbnRdPVwiZmFsc2VcIlxuICAgICAgW2FsbG93T25seURpZ2l0c109XCJ0cnVlXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcbiAgICAgIChmb2N1c291dCk9XCJtYXJrQXNUb3VjaGVkKCk7IGNoZWNrRm9ybUVycm9ycygpXCJcbiAgICA+PC91aS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPG1hdC1oaW50IGNsYXNzPVwiaW5mb1wiICpuZ0lmPVwiIWNvbnRyb2xIYXNFcnJvciAmJiBtYXhDaGFyYWN0ZXJzICYmICFlcnJvcnM/Lmxlbmd0aFwiPnt7IGdldFZhbHVlTGVuZ3RoKCkgfX0gLyB7eyBtYXhDaGFyYWN0ZXJzIH19PC9tYXQtaGludD5cblxuICBAaWYgKGVycm9ycz8ubGVuZ3RoIHx8IChuZ0NvbnRyb2w/LmVycm9ycyB8IGhhc1ZhbGlkYXRpb25FcnJvcikpIHtcbiAgICA8bWF0LWhpbnQgY2xhc3M9XCJlcnJvclwiPlxuICAgICAgQGZvciAoZXJyb3Igb2YgZXJyb3JzOyB0cmFjayBlcnJvcikge1xuICAgICAgICA8dWktaWNvblxuICAgICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgICAgIFtuYW1lXT1cImFwcGxpY2F0aW9uVGhlbWUgPT09ICdjbGFzc2ljJyA/ICdFcnJvcicgOiAnRXJyb3ItaW4tbGluZSdcIlxuICAgICAgICA+PC91aS1pY29uPnt7IGVycm9yIH19XG4gICAgICB9XG4gICAgICBAaWYgKChuZ0NvbnRyb2w/LmVycm9ycyB8IGhhc1ZhbGlkYXRpb25FcnJvcikgJiYgIWhpZGVCdWlsdEluRXJyb3JzKSB7XG4gICAgICAgIDx1aS12YWxpZGF0aW9uLWVycm9yXG4gICAgICAgICAgW3RvdWNoZWRPbl09XCIhY29udHJvbEhhc0Vycm9yXCJcbiAgICAgICAgICBbbmdDb250cm9sXT1cIm5nQ29udHJvbFwiXG4gICAgICAgICAgW2xhYmVsXT1cImhpZGVMYWJlbEluRXJyb3JzID8gbnVsbCA6IGxhYmVsXCJcbiAgICAgICAgPjwvdWktdmFsaWRhdGlvbi1lcnJvcj5cbiAgICAgIH1cbiAgICA8L21hdC1oaW50PlxuICB9XG5cbjwvZGl2PlxuIl19
@@ -0,0 +1,58 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MultiInputComponent } from './multi-input.component';
4
+ import { MatInputModule } from '@angular/material/input';
5
+ import { MatSelectModule } from '@angular/material/select';
6
+ import { DividerComponentModule } from '../divider/divider.component.module';
7
+ import { IconComponentModule } from '../icon/icon.component.module';
8
+ import { DropdownComponentModule } from '../dropdown/dropdown.component.module';
9
+ import { ReactiveFormsModule } from '@angular/forms';
10
+ import { DigitsOnlyDirective } from '../../directives/digits-only.directive';
11
+ import { HasValidationErrorPipe } from '../../pipes/has-validation-error.pipe';
12
+ import { ValidationErrorModule } from '../validation-error/validation-error.module';
13
+ import { FieldComponentModule } from '../field/field.component.module';
14
+ import * as i0 from "@angular/core";
15
+ export class MultiInputComponentModule {
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiInputComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: MultiInputComponentModule, declarations: [MultiInputComponent], imports: [CommonModule,
18
+ MatInputModule,
19
+ MatSelectModule,
20
+ DividerComponentModule,
21
+ IconComponentModule,
22
+ DropdownComponentModule,
23
+ ReactiveFormsModule,
24
+ DigitsOnlyDirective,
25
+ HasValidationErrorPipe,
26
+ ValidationErrorModule,
27
+ FieldComponentModule], exports: [MultiInputComponent] }); }
28
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiInputComponentModule, imports: [CommonModule,
29
+ MatInputModule,
30
+ MatSelectModule,
31
+ DividerComponentModule,
32
+ IconComponentModule,
33
+ DropdownComponentModule,
34
+ ReactiveFormsModule,
35
+ ValidationErrorModule,
36
+ FieldComponentModule] }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiInputComponentModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ declarations: [MultiInputComponent],
42
+ imports: [
43
+ CommonModule,
44
+ MatInputModule,
45
+ MatSelectModule,
46
+ DividerComponentModule,
47
+ IconComponentModule,
48
+ DropdownComponentModule,
49
+ ReactiveFormsModule,
50
+ DigitsOnlyDirective,
51
+ HasValidationErrorPipe,
52
+ ValidationErrorModule,
53
+ FieldComponentModule,
54
+ ],
55
+ exports: [MultiInputComponent],
56
+ }]
57
+ }] });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBcUJ2RSxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7Z0hBQXpCLHlCQUF5QixpQkFoQnJCLG1CQUFtQixhQUVoQyxZQUFZO1lBQ1osY0FBYztZQUNkLGVBQWU7WUFDZixzQkFBc0I7WUFDdEIsbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0QixxQkFBcUI7WUFDckIsb0JBQW9CLGFBRVosbUJBQW1CO2dIQUVsQix5QkFBeUIsWUFkbEMsWUFBWTtZQUNaLGNBQWM7WUFDZCxlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsbUJBQW1CO1lBR25CLHFCQUFxQjtZQUNyQixvQkFBb0I7OzRGQUlYLHlCQUF5QjtrQkFqQnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNdWx0aUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRGl2aWRlckNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IEljb25Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERpZ2l0c09ubHlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RpZ2l0cy1vbmx5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIYXNWYWxpZGF0aW9uRXJyb3JQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvaGFzLXZhbGlkYXRpb24tZXJyb3IucGlwZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JNb2R1bGUgfSBmcm9tICcuLi92YWxpZGF0aW9uLWVycm9yL3ZhbGlkYXRpb24tZXJyb3IubW9kdWxlJztcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vZmllbGQvZmllbGQuY29tcG9uZW50Lm1vZHVsZSc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtNdWx0aUlucHV0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgRGl2aWRlckNvbXBvbmVudE1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50TW9kdWxlLFxuICAgIERyb3Bkb3duQ29tcG9uZW50TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRGlnaXRzT25seURpcmVjdGl2ZSxcbiAgICBIYXNWYWxpZGF0aW9uRXJyb3JQaXBlLFxuICAgIFZhbGlkYXRpb25FcnJvck1vZHVsZSxcbiAgICBGaWVsZENvbXBvbmVudE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW011bHRpSW5wdXRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aUlucHV0Q29tcG9uZW50TW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvbXVsdGktaW5wdXQvbXVsdGktaW5wdXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE11bHRpSW5wdXRWYWx1ZSA9IFJlY29yZDxzdHJpbmcsIGFueT47XG4iXX0=
@@ -0,0 +1,82 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { AsyncPipe, NgClass, NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
3
+ import { IconComponentModule } from "../../icon/icon.component.module";
4
+ import { MatIconModule } from "@angular/material/icon";
5
+ import { MatMenuModule } from "@angular/material/menu";
6
+ import { UiTranslatePipe } from "../../../pipes/ui-translate.pipe";
7
+ import { MatButtonModule } from "@angular/material/button";
8
+ import { AccordionComponentModule } from "../../accordion/accordion.component.module";
9
+ import { AvatarComponentModule } from "../../avatar/avatar.component.module";
10
+ import { ButtonComponentModule } from "../../button/button.component.module";
11
+ import { AvatarSize } from "../../avatar/avatar.model";
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../../avatar/avatar.component";
14
+ import * as i2 from "../../button/button.component";
15
+ export class MobileNavbarSideSheetComponent {
16
+ constructor() {
17
+ this.routes = [];
18
+ this.activedRoute = '';
19
+ this.email = '';
20
+ this.userName = '';
21
+ this.menuItems = [];
22
+ this.isDesktop = false;
23
+ this.applicationTheme = 'light';
24
+ this.navigateEvent = new EventEmitter();
25
+ this.menuItemClicked = new EventEmitter();
26
+ this.logoutEvent = new EventEmitter();
27
+ this.translationContext = 'NAVBAR.';
28
+ this.avatarSize = AvatarSize;
29
+ }
30
+ navigate(routeId) {
31
+ this.navigateEvent.emit(`/${routeId}`);
32
+ }
33
+ logout() {
34
+ this.logoutEvent.emit();
35
+ }
36
+ clickMenuItem(id) {
37
+ this.menuItemClicked.emit(id);
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MobileNavbarSideSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MobileNavbarSideSheetComponent, isStandalone: true, selector: "ui-mobile-navbar-side-sheet", inputs: { routes: "routes", activedRoute: "activedRoute", email: "email", userName: "userName", menuItems: "menuItems", contentTemplateRef: "contentTemplateRef", isDesktop: "isDesktop", applicationTheme: "applicationTheme" }, outputs: { navigateEvent: "navigateEvent", menuItemClicked: "menuItemClicked", logoutEvent: "logoutEvent" }, ngImport: i0, template: "<div class=\"mobile-navbar-container\">\n <ng-container *ngIf=\"isDesktop\" [ngTemplateOutlet]=\"userInfo\"></ng-container>\n\n <div class=\"routes\">\n <div\n *ngFor=\"let route of routes\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n (click)=\"navigate(route.id)\"\n class=\"route\"\n [ngClass]=\"{ active: activedRoute === route.id }\"\n >\n <span>{{ route.title }}</span>\n </div>\n </div>\n\n <div class=\"settings\">\n <ng-container *ngFor=\"let e of menuItems\">\n <div *ngIf=\"e\" class=\"menu-item\">\n <ui-button\n [attr.data-testid]=\"e.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"e.icon\"\n [label]=\"e.text\"\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"e.text + '--' + e.text\"\n ></ui-button>\n </div>\n </ng-container>\n </div>\n</div>\n\n<div class=\"bottom-content\" [ngClass]=\"{ desktop: isDesktop }\">\n <ng-container *ngIf=\"!isDesktop\" [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\n <ng-container *ngIf=\"isDesktop; else tablet\">\n <div class=\"menu-item\">\n <ui-button\n data-testid=\"logout-button\"\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"'Logout-in-line'\"\n [label]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n (buttonClickEvent)=\"logout()\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n ></ui-button>\n </div>\n </ng-container>\n\n <ng-template #tablet>\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n </ng-template>\n</div>\n\n<ng-template #userInfo>\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop }\">\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName\"></ui-avatar>\n <div class=\"details-container\">\n <div class=\"name-container\">\n <span class=\"user-name\">{{ userName }}</span>\n <span class=\"user-email\">{{ email }}</span>\n </div>\n <ui-button\n *ngIf=\"!isDesktop\"\n data-testid=\"logout-button\"\n [tooltip]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n [iconName]=\"'Logout-in-line'\"\n [applicationTheme]=\"'light'\"\n [variant]=\"'icon-button'\"\n (click)=\"logout()\"\n ></ui-button>\n </div>\n </div>\n</ng-template>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{display:flex;flex-direction:column;height:100%}.mobile-navbar-container{min-width:340px;padding-top:16px;height:100%}.mobile-navbar-container .routes{display:none}.mobile-navbar-container .routes .route{padding:0 16px;width:100%;height:48px;display:flex;justify-content:flex-start;align-items:center;font-size:14px;cursor:pointer}.mobile-navbar-container .routes .route.active{background-color:#f4f4f4;font-weight:700;font-family:ModernGothic,sans-serif}.mobile-navbar-container .routes .route:hover{background-color:#fff2fc;font-weight:700;font-family:ModernGothic,sans-serif}.mobile-navbar-container .routes .route:active{background-color:#ffe6fa}@media (max-width: 600px){.mobile-navbar-container .routes{display:block}}.menu-item{width:100%;height:48px;display:flex;font-size:14px;font-weight:700;font-family:ModernGothic,sans-serif;flex-direction:row;align-items:center;cursor:pointer}.menu-item ::ng-deep ui-button{width:100%}.menu-item ::ng-deep ui-button button{padding-left:16px!important}.menu-item ::ng-deep ui-button button span.icon{margin-right:16px!important}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}.bottom-content{width:100%;display:flex;align-items:center;flex-direction:column;position:sticky;bottom:0;background:#fff;z-index:1}.bottom-content.desktop{position:relative;border-top:1px #D3D3D3 solid;margin-top:16px;padding:16px 0 8px}.user-info{display:flex;align-items:center;gap:16px;padding:0 16px;margin-top:32px;margin-bottom:16px;width:100%}.user-info.desktop{margin-top:0;margin-bottom:32px}.user-info .details-container{display:flex;justify-content:space-between;width:100%;gap:8px}.user-info .name-container{display:flex;flex-direction:column;width:224px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info .name-container .user-name{font-weight:700;font-size:14px;line-height:22px;font-family:ModernGothic,sans-serif;white-space:wrap}.user-info .name-container .user-email{width:100%;font-size:14px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IconComponentModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "pipe", type: UiTranslatePipe, name: "uiTranslate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: AccordionComponentModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AvatarComponentModule }, { kind: "component", type: i1.AvatarComponent, selector: "ui-avatar", inputs: ["size", "imageUrl", "name", "tooltipText", "allowEdit", "applicationTheme", "backgroundColor"], outputs: ["editClick"] }, { kind: "ngmodule", type: ButtonComponentModule }, { kind: "component", type: i2.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "transparent", "tooltipPosition"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MobileNavbarSideSheetComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'ui-mobile-navbar-side-sheet', standalone: true, imports: [
45
+ NgForOf,
46
+ NgClass,
47
+ IconComponentModule,
48
+ MatIconModule,
49
+ MatMenuModule,
50
+ UiTranslatePipe,
51
+ MatButtonModule,
52
+ AccordionComponentModule,
53
+ NgIf,
54
+ NgTemplateOutlet,
55
+ AvatarComponentModule,
56
+ ButtonComponentModule,
57
+ AsyncPipe,
58
+ ], template: "<div class=\"mobile-navbar-container\">\n <ng-container *ngIf=\"isDesktop\" [ngTemplateOutlet]=\"userInfo\"></ng-container>\n\n <div class=\"routes\">\n <div\n *ngFor=\"let route of routes\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n (click)=\"navigate(route.id)\"\n class=\"route\"\n [ngClass]=\"{ active: activedRoute === route.id }\"\n >\n <span>{{ route.title }}</span>\n </div>\n </div>\n\n <div class=\"settings\">\n <ng-container *ngFor=\"let e of menuItems\">\n <div *ngIf=\"e\" class=\"menu-item\">\n <ui-button\n [attr.data-testid]=\"e.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"e.icon\"\n [label]=\"e.text\"\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"e.text + '--' + e.text\"\n ></ui-button>\n </div>\n </ng-container>\n </div>\n</div>\n\n<div class=\"bottom-content\" [ngClass]=\"{ desktop: isDesktop }\">\n <ng-container *ngIf=\"!isDesktop\" [ngTemplateOutlet]=\"contentTemplateRef\"></ng-container>\n <ng-container *ngIf=\"isDesktop; else tablet\">\n <div class=\"menu-item\">\n <ui-button\n data-testid=\"logout-button\"\n [applicationTheme]=\"applicationTheme\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"'Logout-in-line'\"\n [label]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n (buttonClickEvent)=\"logout()\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n ></ui-button>\n </div>\n </ng-container>\n\n <ng-template #tablet>\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n </ng-template>\n</div>\n\n<ng-template #userInfo>\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop }\">\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName\"></ui-avatar>\n <div class=\"details-container\">\n <div class=\"name-container\">\n <span class=\"user-name\">{{ userName }}</span>\n <span class=\"user-email\">{{ email }}</span>\n </div>\n <ui-button\n *ngIf=\"!isDesktop\"\n data-testid=\"logout-button\"\n [tooltip]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n [iconName]=\"'Logout-in-line'\"\n [applicationTheme]=\"'light'\"\n [variant]=\"'icon-button'\"\n (click)=\"logout()\"\n ></ui-button>\n </div>\n </div>\n</ng-template>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{display:flex;flex-direction:column;height:100%}.mobile-navbar-container{min-width:340px;padding-top:16px;height:100%}.mobile-navbar-container .routes{display:none}.mobile-navbar-container .routes .route{padding:0 16px;width:100%;height:48px;display:flex;justify-content:flex-start;align-items:center;font-size:14px;cursor:pointer}.mobile-navbar-container .routes .route.active{background-color:#f4f4f4;font-weight:700;font-family:ModernGothic,sans-serif}.mobile-navbar-container .routes .route:hover{background-color:#fff2fc;font-weight:700;font-family:ModernGothic,sans-serif}.mobile-navbar-container .routes .route:active{background-color:#ffe6fa}@media (max-width: 600px){.mobile-navbar-container .routes{display:block}}.menu-item{width:100%;height:48px;display:flex;font-size:14px;font-weight:700;font-family:ModernGothic,sans-serif;flex-direction:row;align-items:center;cursor:pointer}.menu-item ::ng-deep ui-button{width:100%}.menu-item ::ng-deep ui-button button{padding-left:16px!important}.menu-item ::ng-deep ui-button button span.icon{margin-right:16px!important}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}.bottom-content{width:100%;display:flex;align-items:center;flex-direction:column;position:sticky;bottom:0;background:#fff;z-index:1}.bottom-content.desktop{position:relative;border-top:1px #D3D3D3 solid;margin-top:16px;padding:16px 0 8px}.user-info{display:flex;align-items:center;gap:16px;padding:0 16px;margin-top:32px;margin-bottom:16px;width:100%}.user-info.desktop{margin-top:0;margin-bottom:32px}.user-info .details-container{display:flex;justify-content:space-between;width:100%;gap:8px}.user-info .name-container{display:flex;flex-direction:column;width:224px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info .name-container .user-name{font-weight:700;font-size:14px;line-height:22px;font-family:ModernGothic,sans-serif;white-space:wrap}.user-info .name-container .user-email{width:100%;font-size:14px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
59
+ }], propDecorators: { routes: [{
60
+ type: Input
61
+ }], activedRoute: [{
62
+ type: Input
63
+ }], email: [{
64
+ type: Input
65
+ }], userName: [{
66
+ type: Input
67
+ }], menuItems: [{
68
+ type: Input
69
+ }], contentTemplateRef: [{
70
+ type: Input
71
+ }], isDesktop: [{
72
+ type: Input
73
+ }], applicationTheme: [{
74
+ type: Input
75
+ }], navigateEvent: [{
76
+ type: Output
77
+ }], menuItemClicked: [{
78
+ type: Output
79
+ }], logoutEvent: [{
80
+ type: Output
81
+ }] } });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLW5hdmJhci1zaWRlLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9uYXZiYXIvbW9iaWxlLW5hdmJhci1zaWRlLXNoZWV0L21vYmlsZS1uYXZiYXItc2lkZS1zaGVldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvbmF2YmFyL21vYmlsZS1uYXZiYXItc2lkZS1zaGVldC9tb2JpbGUtbmF2YmFyLXNpZGUtc2hlZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQXdCdkQsTUFBTSxPQUFPLDhCQUE4QjtJQXJCM0M7UUFzQlcsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUN0QixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFFM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixxQkFBZ0IsR0FBcUIsT0FBTyxDQUFDO1FBRTVDLGtCQUFhLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDakUsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNuRSxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxELHVCQUFrQixHQUFHLFNBQVMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsVUFBVSxDQUFDO0tBYW5DO0lBWEMsUUFBUSxDQUFDLE9BQWU7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQzsrR0EzQlUsOEJBQThCO21HQUE5Qiw4QkFBOEIsc2FDbkMzQyx5MkZBb0ZBLDJ6SURoRUksT0FBTyxtSEFDUCxPQUFPLG1GQUNQLG1CQUFtQiw4QkFDbkIsYUFBYSw4QkFDYixhQUFhLDBCQUNiLGVBQWUsbURBQ2YsZUFBZSw4QkFDZix3QkFBd0IsK0JBQ3hCLElBQUksNkZBQ0osZ0JBQWdCLG1KQUNoQixxQkFBcUIsdU9BQ3JCLHFCQUFxQiwyZ0JBQ3JCLFNBQVM7OzRGQUdBLDhCQUE4QjtrQkFyQjFDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBRzNCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixTQUFTO3FCQUNWOzhCQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUm91dGUsIE1lbnVJdGVtIH0gZnJvbSBcIi4uL25hdmJhci5tb2RlbFwiO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnRNb2R1bGUgfSBmcm9tIFwiLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudC5tb2R1bGVcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XG5pbXBvcnQgeyBVaVRyYW5zbGF0ZVBpcGUgfSBmcm9tIFwiLi4vLi4vLi4vcGlwZXMvdWktdHJhbnNsYXRlLnBpcGVcIjtcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7IEFjY29yZGlvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gXCIuLi8uLi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5tb2R1bGVcIjtcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudE1vZHVsZSB9IGZyb20gXCIuLi8uLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5tb2R1bGVcIjtcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gXCIuLi8uLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5tb2R1bGVcIjtcbmltcG9ydCB7IEF2YXRhclNpemUgfSBmcm9tIFwiLi4vLi4vYXZhdGFyL2F2YXRhci5tb2RlbFwiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25UaGVtZSB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktbW9iaWxlLW5hdmJhci1zaWRlLXNoZWV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vYmlsZS1uYXZiYXItc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vYmlsZS1uYXZiYXItc2lkZS1zaGVldC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdGb3JPZixcbiAgICBOZ0NsYXNzLFxuICAgIEljb25Db21wb25lbnRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIFVpVHJhbnNsYXRlUGlwZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgQWNjb3JkaW9uQ29tcG9uZW50TW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBdmF0YXJDb21wb25lbnRNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50TW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9iaWxlTmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgcm91dGVzOiBJUm91dGVbXSA9IFtdO1xuICBASW5wdXQoKSBhY3RpdmVkUm91dGUgPSAnJztcbiAgQElucHV0KCkgZW1haWwgPSAnJztcbiAgQElucHV0KCkgdXNlck5hbWUgPSAnJztcbiAgQElucHV0KCkgbWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGNvbnRlbnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgaXNEZXNrdG9wID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgbWVudUl0ZW1DbGlja2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgbG9nb3V0RXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRpb25Db250ZXh0ID0gJ05BVkJBUi4nO1xuICBwcm90ZWN0ZWQgYXZhdGFyU2l6ZSA9IEF2YXRhclNpemU7XG5cbiAgbmF2aWdhdGUocm91dGVJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZUV2ZW50LmVtaXQoYC8ke3JvdXRlSWR9YCk7XG4gIH1cblxuICBsb2dvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2dvdXRFdmVudC5lbWl0KCk7XG4gIH1cblxuICBjbGlja01lbnVJdGVtKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1lbnVJdGVtQ2xpY2tlZC5lbWl0KGlkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vYmlsZS1uYXZiYXItY29udGFpbmVyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Rlc2t0b3BcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ1c2VySW5mb1wiPjwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJyb3V0ZXNcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgcm91dGUgb2Ygcm91dGVzXCJcbiAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInJvdXRlLmlkXCJcbiAgICAgIGRhdGEtdGVzdC1yb2xlPVwibmF2LXJvdXRlXCJcbiAgICAgIChjbGljayk9XCJuYXZpZ2F0ZShyb3V0ZS5pZClcIlxuICAgICAgY2xhc3M9XCJyb3V0ZVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWN0aXZlZFJvdXRlID09PSByb3V0ZS5pZCB9XCJcbiAgICA+XG4gICAgICA8c3Bhbj57eyByb3V0ZS50aXRsZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNldHRpbmdzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZSBvZiBtZW51SXRlbXNcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJlXCIgY2xhc3M9XCJtZW51LWl0ZW1cIj5cbiAgICAgICAgPHVpLWJ1dHRvblxuICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cImUuaWRcIlxuICAgICAgICAgIGRhdGEtdGVzdC1yb2xlPVwibWVudS1pdGVtXCJcbiAgICAgICAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgIFtkaXNhYmxlZFNjYWxlT25DbGlja109XCJ0cnVlXCJcbiAgICAgICAgICBbdmFyaWFudF09XCInbWVudUNlbGwnXCJcbiAgICAgICAgICBpY29uUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICBbaWNvbk5hbWVdPVwiZS5pY29uXCJcbiAgICAgICAgICBbbGFiZWxdPVwiZS50ZXh0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2tFdmVudCk9XCJjbGlja01lbnVJdGVtKGUuaWQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5UYWIpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoa2V5ZG93bi5zaGlmdC50YWIpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICBbYXJpYUxhYmVsXT1cImUudGV4dCArICctLScgKyBlLnRleHRcIlxuICAgICAgICA+PC91aS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJvdHRvbS1jb250ZW50XCIgW25nQ2xhc3NdPVwieyBkZXNrdG9wOiBpc0Rlc2t0b3AgfVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRGVza3RvcFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZXNrdG9wOyBlbHNlIHRhYmxldFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cbiAgICAgIDx1aS1idXR0b25cbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsb2dvdXQtYnV0dG9uXCJcbiAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZFNjYWxlT25DbGlja109XCJ0cnVlXCJcbiAgICAgICAgW3ZhcmlhbnRdPVwiJ21lbnVDZWxsJ1wiXG4gICAgICAgIGljb25Qb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICBbaWNvbk5hbWVdPVwiJ0xvZ291dC1pbi1saW5lJ1wiXG4gICAgICAgIFtsYWJlbF09XCIodHJhbnNsYXRpb25Db250ZXh0ICsgJ0xPR19PVVQnIHwgdWlUcmFuc2xhdGUgfCBhc3luYykhXCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrRXZlbnQpPVwibG9nb3V0KClcIlxuICAgICAgICAoa2V5ZG93bi5UYWIpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKGtleWRvd24uc2hpZnQudGFiKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICA+PC91aS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdGFibGV0PlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidXNlckluZm9cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3VzZXJJbmZvPlxuICA8ZGl2IGNsYXNzPVwidXNlci1pbmZvXCIgW25nQ2xhc3NdPVwieyBkZXNrdG9wOiBpc0Rlc2t0b3AgfVwiPlxuICAgIDx1aS1hdmF0YXIgW3NpemVdPVwiYXZhdGFyU2l6ZS5NRURJVU1cIiBbbmFtZV09XCJ1c2VyTmFtZVwiPjwvdWktYXZhdGFyPlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm5hbWUtY29udGFpbmVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1uYW1lXCI+e3sgdXNlck5hbWUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1lbWFpbFwiPnt7IGVtYWlsIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8dWktYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWlzRGVza3RvcFwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwibG9nb3V0LWJ1dHRvblwiXG4gICAgICAgIFt0b29sdGlwXT1cIih0cmFuc2xhdGlvbkNvbnRleHQgKyAnTE9HX09VVCcgfCB1aVRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgICBbaWNvbk5hbWVdPVwiJ0xvZ291dC1pbi1saW5lJ1wiXG4gICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cIidsaWdodCdcIlxuICAgICAgICBbdmFyaWFudF09XCInaWNvbi1idXR0b24nXCJcbiAgICAgICAgKGNsaWNrKT1cImxvZ291dCgpXCJcbiAgICAgID48L3VpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19