@testgorilla/tgo-ui 8.19.1 → 9.0.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 (205) hide show
  1. package/components/accordion/index.d.ts +7 -7
  2. package/components/ai-audio-circle/index.d.ts +3 -3
  3. package/components/ai-caveat/index.d.ts +5 -5
  4. package/components/ai-feedback/index.d.ts +14 -14
  5. package/components/alert-banner/index.d.ts +8 -8
  6. package/components/autocomplete/index.d.ts +15 -16
  7. package/components/autocomplete-v2/index.d.ts +36 -32
  8. package/components/avatar/index.d.ts +7 -7
  9. package/components/badge/index.d.ts +6 -6
  10. package/components/breadcrumb/index.d.ts +11 -11
  11. package/components/button/index.d.ts +23 -13
  12. package/components/card/index.d.ts +4 -4
  13. package/components/checkbox/index.d.ts +24 -24
  14. package/components/core/index.d.ts +39 -31
  15. package/components/datepicker/index.d.ts +18 -18
  16. package/components/dialog/index.d.ts +29 -21
  17. package/components/divider/index.d.ts +4 -4
  18. package/components/donut-chart/index.d.ts +3 -3
  19. package/components/dropdown/index.d.ts +37 -33
  20. package/components/elevation-shadow/index.d.ts +3 -3
  21. package/components/empty-state/index.d.ts +7 -7
  22. package/components/field/index.d.ts +33 -44
  23. package/components/file-upload/index.d.ts +14 -13
  24. package/components/filter-button/index.d.ts +19 -19
  25. package/components/gaussian-chart/index.d.ts +8 -8
  26. package/components/icon/index.d.ts +20 -18
  27. package/components/icon-label/index.d.ts +5 -5
  28. package/components/inline-field/index.d.ts +20 -24
  29. package/components/logo/index.d.ts +2 -3
  30. package/components/media-dialog/index.d.ts +3 -3
  31. package/components/multi-input/index.d.ts +25 -16
  32. package/components/navbar/index.d.ts +30 -30
  33. package/components/overflow-menu/index.d.ts +20 -19
  34. package/components/page-header/index.d.ts +5 -5
  35. package/components/paginator/index.d.ts +4 -4
  36. package/components/password-criteria/index.d.ts +13 -12
  37. package/components/password-strength/index.d.ts +6 -6
  38. package/components/phone-input/index.d.ts +28 -30
  39. package/components/progress-bar/index.d.ts +5 -5
  40. package/components/prompt/index.d.ts +25 -25
  41. package/components/radial-progress/index.d.ts +5 -5
  42. package/components/radio-button/index.d.ts +28 -29
  43. package/components/rating/index.d.ts +5 -5
  44. package/components/scale/index.d.ts +4 -4
  45. package/components/segmented-bar/index.d.ts +8 -8
  46. package/components/segmented-button/index.d.ts +17 -16
  47. package/components/selectable-card/index.d.ts +6 -6
  48. package/components/side-navigation/index.d.ts +14 -14
  49. package/components/side-panel/index.d.ts +8 -8
  50. package/components/side-sheet/index.d.ts +19 -17
  51. package/components/snackbar/index.d.ts +16 -15
  52. package/components/spider-chart/index.d.ts +12 -12
  53. package/components/spinner/index.d.ts +5 -5
  54. package/components/stepper/index.d.ts +35 -35
  55. package/components/table/index.d.ts +36 -34
  56. package/components/tabs/index.d.ts +18 -17
  57. package/components/tag/index.d.ts +10 -10
  58. package/components/toggle/index.d.ts +10 -9
  59. package/components/tooltip/index.d.ts +16 -18
  60. package/components/universal-skills/index.d.ts +16 -16
  61. package/components/validation-error/index.d.ts +22 -10
  62. package/components/write-with-ai/index.d.ts +1 -1
  63. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +36 -15
  64. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
  65. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +9 -12
  66. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
  67. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +7 -10
  68. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
  69. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +39 -27
  70. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
  71. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +25 -14
  72. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
  73. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +4 -2
  74. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
  75. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +134 -117
  76. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
  77. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +47 -48
  78. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
  79. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +30 -18
  80. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
  81. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +9 -12
  82. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
  83. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +25 -18
  84. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
  85. package/fesm2022/testgorilla-tgo-ui-components-button.mjs +155 -120
  86. package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
  87. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +7 -9
  88. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
  89. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +51 -47
  90. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
  91. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +1 -1
  92. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
  93. package/fesm2022/testgorilla-tgo-ui-components-core.mjs +2232 -2210
  94. package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
  95. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +44 -25
  96. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
  97. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +55 -31
  98. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
  99. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +8 -11
  100. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
  101. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +8 -10
  102. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
  103. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +105 -90
  104. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
  105. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +5 -7
  106. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
  107. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +24 -13
  108. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
  109. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +65 -57
  110. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
  111. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +35 -23
  112. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
  113. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +34 -27
  114. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
  115. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +26 -16
  116. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
  117. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +6 -7
  118. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
  119. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +63 -57
  120. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
  121. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +24 -24
  122. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
  123. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +6 -6
  124. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
  125. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +6 -6
  126. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
  127. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +4 -4
  128. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
  129. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +42 -21
  130. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
  131. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +44 -32
  132. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
  133. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +39 -21
  134. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
  135. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +10 -14
  136. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
  137. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +7 -9
  138. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
  139. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +33 -20
  140. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
  141. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +9 -12
  142. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
  143. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +82 -73
  144. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
  145. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
  146. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +8 -11
  147. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
  148. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +47 -40
  149. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
  150. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +7 -10
  151. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
  152. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +43 -48
  153. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
  154. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +7 -12
  155. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
  156. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +1 -1
  157. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
  158. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +6 -10
  159. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
  160. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +30 -16
  161. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
  162. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +15 -14
  163. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
  164. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
  165. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +8 -11
  166. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
  167. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +27 -21
  168. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
  169. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +5 -2
  170. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
  171. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +34 -26
  172. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
  173. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +5 -5
  174. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
  175. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +10 -10
  176. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
  177. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +31 -20
  178. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
  179. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +28 -23
  180. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
  181. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +9 -12
  182. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
  183. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +85 -79
  184. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
  185. package/fesm2022/testgorilla-tgo-ui-components-table.mjs +74 -51
  186. package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
  187. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +57 -25
  188. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
  189. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +16 -17
  190. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
  191. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +25 -17
  192. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
  193. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +44 -28
  194. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
  195. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +34 -27
  196. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
  197. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +30 -14
  198. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
  199. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +13 -11
  200. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
  201. package/fesm2022/testgorilla-tgo-ui.mjs +6 -8
  202. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  203. package/index.d.ts +4 -4
  204. package/mcp/catalog.json +1 -1
  205. package/package.json +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-media-card.mjs","sources":["../../../components/media-card/media-card.component.ts","../../../components/media-card/media-card.component.html","../../../components/media-card/testgorilla-tgo-ui-components-media-card.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DividerComponentModule } from '@testgorilla/tgo-ui/components/divider';\nimport { EllipseTextDirective } from '@testgorilla/tgo-ui/components/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\n\n@Component({\n selector: 'ui-media-card',\n imports: [DividerComponentModule, ButtonComponentModule, EllipseTextDirective, MatTooltipModule],\n templateUrl: './media-card.component.html',\n styleUrl: './media-card.component.scss',\n})\nexport class MediaCardComponent {\n /**\n * The title of the card\n * @type {string}\n * @memberof MediaCardComponent\n */\n @Input({ required: true }) title: string;\n /**\n * The description of the card\n * @type {string}\n * @memberof MediaCardComponent\n */\n @Input({ required: true }) description: string;\n /**\n * The image of the card\n * @type {string}\n * @memberof MediaCardComponent\n */\n @Input({ required: true }) image: string;\n /**\n * The label of the button\n * @type {string}\n * @memberof MediaCardComponent\n */\n @Input({ required: true }) buttonLabel = '';\n @Output() buttonClick = new EventEmitter<void>();\n protected showTitleTooltip = false;\n}\n","<img [attr.src]=\"image\" alt=\"card image\" />\n\n<div class=\"media-card-content\">\n <div\n class=\"media-card-title\"\n [isMultiline]=\"true\"\n [matTooltip]=\"showTitleTooltip ? title : ''\"\n uiEllipseText\n (onChangeTextState)=\"showTitleTooltip = $event\"\n >\n {{ title }}\n </div>\n\n <div class=\"media-card-description\">\n {{ description }}\n </div>\n</div>\n\n<ui-divider [size]=\"'small'\"></ui-divider>\n\n<div class=\"media-card-action\">\n <ui-button [variant]=\"'ghost'\" [label]=\"buttonLabel\" (buttonClickEvent)=\"buttonClick.emit()\"></ui-button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;MAYa,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;AAyBE;;;;AAIG;QACwB,IAAA,CAAA,WAAW,GAAG,EAAE;AACjC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;QACtC,IAAA,CAAA,gBAAgB,GAAG,KAAK;AACnC,IAAA;+GA3BY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ/B,gmBAuBA,EAAA,MAAA,EAAA,CAAA,mjNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfY,sBAAsB,uKAAE,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIpF,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACE,eAAe,EAAA,OAAA,EAChB,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,gmBAAA,EAAA,MAAA,EAAA,CAAA,mjNAAA,CAAA,EAAA;;sBAU/F,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAMxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAMxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBAMxB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB;;;AErCH;;AAEG;;;;"}
1
+ {"version":3,"file":"testgorilla-tgo-ui-components-media-card.mjs","sources":["../../../components/media-card/media-card.component.ts","../../../components/media-card/media-card.component.html","../../../components/media-card/testgorilla-tgo-ui-components-media-card.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { EllipseTextDirective } from '@testgorilla/tgo-ui/components/core';\nimport { DividerComponentModule } from '@testgorilla/tgo-ui/components/divider';\n\n@Component({\n selector: 'ui-media-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DividerComponentModule, ButtonComponentModule, EllipseTextDirective, MatTooltipModule],\n templateUrl: './media-card.component.html',\n styleUrl: './media-card.component.scss',\n})\nexport class MediaCardComponent {\n /**\n * The title of the card\n * @type {string}\n * @memberof MediaCardComponent\n */\n @Input({ required: true }) title: string;\n /**\n * The description of the card\n * @type {string}\n * @memberof MediaCardComponent\n */\n @Input({ required: true }) description: string;\n /**\n * The image of the card\n * @type {string}\n * @memberof MediaCardComponent\n */\n @Input({ required: true }) image: string;\n /**\n * The label of the button\n * @type {string}\n * @memberof MediaCardComponent\n */\n @Input({ required: true }) buttonLabel = '';\n @Output() buttonClick = new EventEmitter<void>();\n protected showTitleTooltip = false;\n}\n","<img [attr.src]=\"image\" alt=\"card image\" />\n\n<div class=\"media-card-content\">\n <div\n class=\"media-card-title\"\n [isMultiline]=\"true\"\n [matTooltip]=\"showTitleTooltip ? title : ''\"\n uiEllipseText\n (onChangeTextState)=\"showTitleTooltip = $event\"\n >\n {{ title }}\n </div>\n\n <div class=\"media-card-description\">\n {{ description }}\n </div>\n</div>\n\n<ui-divider [size]=\"'small'\"></ui-divider>\n\n<div class=\"media-card-action\">\n <ui-button [variant]=\"'ghost'\" [label]=\"buttonLabel\" (buttonClickEvent)=\"buttonClick.emit()\"></ui-button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import * as i0 from '@angular/core';
2
- import { Inject, Component } from '@angular/core';
3
1
  import * as i2 from '@angular/common';
4
2
  import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Inject, ChangeDetectionStrategy, Component } from '@angular/core';
5
5
  import * as i1 from '@angular/material/dialog';
6
6
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
7
7
  import * as i3 from '@testgorilla/tgo-ui/components/button';
@@ -62,11 +62,11 @@ class MediaDialogComponent {
62
62
  this.dialogRef.close(null);
63
63
  }
64
64
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MediaDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MediaDialogComponent, isStandalone: true, selector: "ui-media-dialog", ngImport: i0, template: "<ng-container>\n @if (steps && steps.length > 1) {\n <ui-progress-bar [progress]=\"(currentStepIndex + 1) * (100 / steps.length)\"></ui-progress-bar>\n }\n\n <ui-dialog [title]=\"title\" (closeEvent)=\"dialogRef.close(null)\" [showCloseButton]=\"true\">\n @if (mediaContainer) {\n <div class=\"media-container\">\n <ng-container [ngTemplateOutlet]=\"mediaContainer\"></ng-container>\n </div>\n }\n\n @if (subheader) {\n <h4 class=\"subheader\">{{ subheader }}</h4>\n }\n\n @if (body) {\n <div [innerHTML]=\"body\"></div>\n }\n\n <div mat-dialog-actions class=\"footer\">\n <div>\n @if (backButtonLabel && currentStepIndex > 0) {\n <ui-button\n variant=\"text-inline\"\n size=\"medium\"\n [label]=\"backButtonLabel\"\n [attr.data-testid]=\"backButtonDataTestId\"\n (click)=\"onBackButtonClick()\"\n ></ui-button>\n }\n </div>\n\n <div class=\"action-buttons\">\n @if (secondaryButtonLabel) {\n <ui-button\n variant=\"ghost\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick()\"\n ></ui-button>\n }\n @if (primaryButtonLabel) {\n <ui-button\n variant=\"primary\"\n [label]=\"primaryButtonLabel\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (click)=\"onPrimaryButtonClick()\"\n ></ui-button>\n }\n </div>\n </div>\n </ui-dialog>\n</ng-container>\n", styles: ["::ng-deep .ui-dialog-wrapper{max-width:600px!important}ui-progress-bar{position:absolute;top:0;left:0;width:100%}.media-container{width:536px;height:302px;border-radius:10px;margin-bottom:16px;overflow:hidden}.subheader{margin:0 0 8px!important}.footer{display:flex;justify-content:space-between;align-items:center}.footer .action-buttons{display:flex;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: ButtonComponentModule }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "loadingWithLabel", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaExpanded", "ariaControls", "ariaPressed", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "ngmodule", type: DialogComponentModule }, { kind: "component", type: i4.DialogComponent, selector: "ui-dialog", inputs: ["title", "showCloseButton", "canCloseFn", "secondaryButtonLabel", "footerMessage", "primaryButtonLabel", "primaryButtonIconName", "secondaryButtonType", "primaryButtonType", "primaryButtonDataTestId", "secondaryButtonDataTestId", "companyColor", "applicationTheme", "disablePrimaryButton", "disableClose", "shouldDisableButtons", "ariaLabelledby", "ariaDescribedby", "keyboardOpen", "primaryButtonIconPosition"], outputs: ["closeEvent", "secondaryButtonClickEvent", "primaryButtonClickEvent"] }, { kind: "ngmodule", type: ProgressBarComponentModule }, { kind: "component", type: i5.ProgressBarComponent, selector: "ui-progress-bar", inputs: ["companyColor", "progress", "mode", "buffer", "applicationTheme", "ariaLabel", "ariaDescribedBy", "showPercentage"] }] }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MediaDialogComponent, isStandalone: true, selector: "ui-media-dialog", ngImport: i0, template: "<ng-container>\n @if (steps && steps.length > 1) {\n <ui-progress-bar [progress]=\"(currentStepIndex + 1) * (100 / steps.length)\"></ui-progress-bar>\n }\n\n <ui-dialog [title]=\"title\" (closeEvent)=\"dialogRef.close(null)\" [showCloseButton]=\"true\">\n @if (mediaContainer) {\n <div class=\"media-container\">\n <ng-container [ngTemplateOutlet]=\"mediaContainer\"></ng-container>\n </div>\n }\n\n @if (subheader) {\n <h4 class=\"subheader\">{{ subheader }}</h4>\n }\n\n @if (body) {\n <div [innerHTML]=\"body\"></div>\n }\n\n <div mat-dialog-actions class=\"footer\">\n <div>\n @if (backButtonLabel && currentStepIndex > 0) {\n <ui-button\n variant=\"text-inline\"\n size=\"medium\"\n [label]=\"backButtonLabel\"\n [attr.data-testid]=\"backButtonDataTestId\"\n (click)=\"onBackButtonClick()\"\n ></ui-button>\n }\n </div>\n\n <div class=\"action-buttons\">\n @if (secondaryButtonLabel) {\n <ui-button\n variant=\"ghost\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick()\"\n ></ui-button>\n }\n @if (primaryButtonLabel) {\n <ui-button\n variant=\"primary\"\n [label]=\"primaryButtonLabel\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (click)=\"onPrimaryButtonClick()\"\n ></ui-button>\n }\n </div>\n </div>\n </ui-dialog>\n</ng-container>\n", styles: ["::ng-deep .ui-dialog-wrapper{max-width:600px!important}ui-progress-bar{position:absolute;top:0;left:0;width:100%}.media-container{width:536px;height:302px;border-radius:10px;margin-bottom:16px;overflow:hidden}.subheader{margin:0 0 8px!important}.footer{display:flex;justify-content:space-between;align-items:center}.footer .action-buttons{display:flex;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: ButtonComponentModule }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "loadingWithLabel", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaExpanded", "ariaControls", "ariaPressed", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "ngmodule", type: DialogComponentModule }, { kind: "component", type: i4.DialogComponent, selector: "ui-dialog", inputs: ["title", "showCloseButton", "canCloseFn", "secondaryButtonLabel", "footerMessage", "primaryButtonLabel", "primaryButtonIconName", "secondaryButtonType", "primaryButtonType", "primaryButtonDataTestId", "secondaryButtonDataTestId", "companyColor", "applicationTheme", "disablePrimaryButton", "disableClose", "shouldDisableButtons", "ariaLabelledby", "ariaDescribedby", "keyboardOpen", "primaryButtonIconPosition"], outputs: ["closeEvent", "secondaryButtonClickEvent", "primaryButtonClickEvent"] }, { kind: "ngmodule", type: ProgressBarComponentModule }, { kind: "component", type: i5.ProgressBarComponent, selector: "ui-progress-bar", inputs: ["companyColor", "progress", "mode", "buffer", "applicationTheme", "ariaLabel", "ariaDescribedBy", "showPercentage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
66
  }
67
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MediaDialogComponent, decorators: [{
68
68
  type: Component,
69
- args: [{ selector: 'ui-media-dialog', imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, ProgressBarComponentModule], template: "<ng-container>\n @if (steps && steps.length > 1) {\n <ui-progress-bar [progress]=\"(currentStepIndex + 1) * (100 / steps.length)\"></ui-progress-bar>\n }\n\n <ui-dialog [title]=\"title\" (closeEvent)=\"dialogRef.close(null)\" [showCloseButton]=\"true\">\n @if (mediaContainer) {\n <div class=\"media-container\">\n <ng-container [ngTemplateOutlet]=\"mediaContainer\"></ng-container>\n </div>\n }\n\n @if (subheader) {\n <h4 class=\"subheader\">{{ subheader }}</h4>\n }\n\n @if (body) {\n <div [innerHTML]=\"body\"></div>\n }\n\n <div mat-dialog-actions class=\"footer\">\n <div>\n @if (backButtonLabel && currentStepIndex > 0) {\n <ui-button\n variant=\"text-inline\"\n size=\"medium\"\n [label]=\"backButtonLabel\"\n [attr.data-testid]=\"backButtonDataTestId\"\n (click)=\"onBackButtonClick()\"\n ></ui-button>\n }\n </div>\n\n <div class=\"action-buttons\">\n @if (secondaryButtonLabel) {\n <ui-button\n variant=\"ghost\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick()\"\n ></ui-button>\n }\n @if (primaryButtonLabel) {\n <ui-button\n variant=\"primary\"\n [label]=\"primaryButtonLabel\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (click)=\"onPrimaryButtonClick()\"\n ></ui-button>\n }\n </div>\n </div>\n </ui-dialog>\n</ng-container>\n", styles: ["::ng-deep .ui-dialog-wrapper{max-width:600px!important}ui-progress-bar{position:absolute;top:0;left:0;width:100%}.media-container{width:536px;height:302px;border-radius:10px;margin-bottom:16px;overflow:hidden}.subheader{margin:0 0 8px!important}.footer{display:flex;justify-content:space-between;align-items:center}.footer .action-buttons{display:flex;gap:8px}\n"] }]
69
+ args: [{ selector: 'ui-media-dialog', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, ProgressBarComponentModule], template: "<ng-container>\n @if (steps && steps.length > 1) {\n <ui-progress-bar [progress]=\"(currentStepIndex + 1) * (100 / steps.length)\"></ui-progress-bar>\n }\n\n <ui-dialog [title]=\"title\" (closeEvent)=\"dialogRef.close(null)\" [showCloseButton]=\"true\">\n @if (mediaContainer) {\n <div class=\"media-container\">\n <ng-container [ngTemplateOutlet]=\"mediaContainer\"></ng-container>\n </div>\n }\n\n @if (subheader) {\n <h4 class=\"subheader\">{{ subheader }}</h4>\n }\n\n @if (body) {\n <div [innerHTML]=\"body\"></div>\n }\n\n <div mat-dialog-actions class=\"footer\">\n <div>\n @if (backButtonLabel && currentStepIndex > 0) {\n <ui-button\n variant=\"text-inline\"\n size=\"medium\"\n [label]=\"backButtonLabel\"\n [attr.data-testid]=\"backButtonDataTestId\"\n (click)=\"onBackButtonClick()\"\n ></ui-button>\n }\n </div>\n\n <div class=\"action-buttons\">\n @if (secondaryButtonLabel) {\n <ui-button\n variant=\"ghost\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick()\"\n ></ui-button>\n }\n @if (primaryButtonLabel) {\n <ui-button\n variant=\"primary\"\n [label]=\"primaryButtonLabel\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (click)=\"onPrimaryButtonClick()\"\n ></ui-button>\n }\n </div>\n </div>\n </ui-dialog>\n</ng-container>\n", styles: ["::ng-deep .ui-dialog-wrapper{max-width:600px!important}ui-progress-bar{position:absolute;top:0;left:0;width:100%}.media-container{width:536px;height:302px;border-radius:10px;margin-bottom:16px;overflow:hidden}.subheader{margin:0 0 8px!important}.footer{display:flex;justify-content:space-between;align-items:center}.footer .action-buttons{display:flex;gap:8px}\n"] }]
70
70
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
71
71
  type: Inject,
72
72
  args: [MAT_DIALOG_DATA]
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-media-dialog.mjs","sources":["../../../components/media-dialog/media-dialog.component.ts","../../../components/media-dialog/media-dialog.component.html","../../../components/media-dialog/testgorilla-tgo-ui-components-media-dialog.ts"],"sourcesContent":["import { Component, Inject, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { DialogComponentModule } from '@testgorilla/tgo-ui/components/dialog';\nimport { MediaDialogData, MediaDialogStep } from './media-dialog.model';\nimport { ProgressBarComponentModule } from '@testgorilla/tgo-ui/components/progress-bar';\n\n@Component({\n selector: 'ui-media-dialog',\n templateUrl: './media-dialog.component.html',\n styleUrls: ['./media-dialog.component.scss'],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, ProgressBarComponentModule],\n})\nexport class MediaDialogComponent {\n primaryButtonLabel: string | undefined;\n secondaryButtonLabel: string | undefined;\n backButtonLabel: string | undefined;\n title: string | undefined;\n primaryButtonDataTestId = 'media-dialog.confirm-button';\n secondaryButtonDataTestId = 'media-dialog.cancel-button';\n backButtonDataTestId = 'media-dialog.back-button';\n\n mediaContainer: TemplateRef<any>;\n subheader: string | undefined;\n body: string;\n\n currentStepIndex = 0;\n steps: MediaDialogStep[] = [];\n\n constructor(\n public dialogRef: MatDialogRef<MediaDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private data: MediaDialogData\n ) {\n this.steps = data.steps ?? [];\n if (this.steps.length < 1) {\n this.dialogRef.close();\n throw new Error('MediaDialogComponent: steps must contain at least one step.');\n }\n this.setStep(0);\n }\n\n private setStep(index: number): void {\n const step = this.steps[index];\n this.currentStepIndex = index;\n this.title = step.title;\n this.subheader = step.subheader;\n this.body = step.body ?? '';\n this.mediaContainer = step.mediaContainer;\n this.primaryButtonLabel = step?.primaryButtonLabel;\n this.secondaryButtonLabel = step?.secondaryButtonLabel;\n this.backButtonLabel = step?.backButtonLabel;\n this.primaryButtonDataTestId = step?.primaryButtonDataTestId ?? 'media-dialog.confirm-button';\n this.secondaryButtonDataTestId = step?.secondaryButtonDataTestId ?? 'media-dialog.cancel-button';\n this.backButtonDataTestId = step?.backButtonDataTestId ?? 'media-dialog.back-button';\n }\n\n onPrimaryButtonClick(): void {\n const isLastStep = this.currentStepIndex === this.steps.length - 1;\n\n if (isLastStep) {\n this.dialogRef.close(true);\n } else {\n this.setStep(this.currentStepIndex + 1);\n }\n }\n\n onBackButtonClick(): void {\n if (this.currentStepIndex > 0) {\n this.setStep(this.currentStepIndex - 1);\n }\n }\n\n onSecondaryButtonClick(): void {\n this.dialogRef.close(false);\n }\n\n dismiss(): void {\n this.dialogRef.close(null);\n }\n}\n","<ng-container>\n @if (steps && steps.length > 1) {\n <ui-progress-bar [progress]=\"(currentStepIndex + 1) * (100 / steps.length)\"></ui-progress-bar>\n }\n\n <ui-dialog [title]=\"title\" (closeEvent)=\"dialogRef.close(null)\" [showCloseButton]=\"true\">\n @if (mediaContainer) {\n <div class=\"media-container\">\n <ng-container [ngTemplateOutlet]=\"mediaContainer\"></ng-container>\n </div>\n }\n\n @if (subheader) {\n <h4 class=\"subheader\">{{ subheader }}</h4>\n }\n\n @if (body) {\n <div [innerHTML]=\"body\"></div>\n }\n\n <div mat-dialog-actions class=\"footer\">\n <div>\n @if (backButtonLabel && currentStepIndex > 0) {\n <ui-button\n variant=\"text-inline\"\n size=\"medium\"\n [label]=\"backButtonLabel\"\n [attr.data-testid]=\"backButtonDataTestId\"\n (click)=\"onBackButtonClick()\"\n ></ui-button>\n }\n </div>\n\n <div class=\"action-buttons\">\n @if (secondaryButtonLabel) {\n <ui-button\n variant=\"ghost\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick()\"\n ></ui-button>\n }\n @if (primaryButtonLabel) {\n <ui-button\n variant=\"primary\"\n [label]=\"primaryButtonLabel\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (click)=\"onPrimaryButtonClick()\"\n ></ui-button>\n }\n </div>\n </div>\n </ui-dialog>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testgorilla-tgo-ui-components-media-dialog.mjs","sources":["../../../components/media-dialog/media-dialog.component.ts","../../../components/media-dialog/media-dialog.component.html","../../../components/media-dialog/testgorilla-tgo-ui-components-media-dialog.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, TemplateRef } from '@angular/core';\nimport { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { DialogComponentModule } from '@testgorilla/tgo-ui/components/dialog';\nimport { ProgressBarComponentModule } from '@testgorilla/tgo-ui/components/progress-bar';\n\nimport { MediaDialogData, MediaDialogStep } from './media-dialog.model';\n\n@Component({\n selector: 'ui-media-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './media-dialog.component.html',\n styleUrls: ['./media-dialog.component.scss'],\n imports: [CommonModule, MatDialogModule, ButtonComponentModule, DialogComponentModule, ProgressBarComponentModule],\n})\nexport class MediaDialogComponent {\n primaryButtonLabel: string | undefined;\n secondaryButtonLabel: string | undefined;\n backButtonLabel: string | undefined;\n title: string | undefined;\n primaryButtonDataTestId = 'media-dialog.confirm-button';\n secondaryButtonDataTestId = 'media-dialog.cancel-button';\n backButtonDataTestId = 'media-dialog.back-button';\n\n mediaContainer: TemplateRef<unknown>;\n subheader: string | undefined;\n body: string;\n\n currentStepIndex = 0;\n steps: MediaDialogStep[] = [];\n\n constructor(\n public dialogRef: MatDialogRef<MediaDialogComponent>,\n @Inject(MAT_DIALOG_DATA) private readonly data: MediaDialogData\n ) {\n this.steps = data.steps ?? [];\n if (this.steps.length < 1) {\n this.dialogRef.close();\n throw new Error('MediaDialogComponent: steps must contain at least one step.');\n }\n this.setStep(0);\n }\n\n private setStep(index: number): void {\n const step = this.steps[index];\n this.currentStepIndex = index;\n this.title = step.title;\n this.subheader = step.subheader;\n this.body = step.body ?? '';\n this.mediaContainer = step.mediaContainer;\n this.primaryButtonLabel = step?.primaryButtonLabel;\n this.secondaryButtonLabel = step?.secondaryButtonLabel;\n this.backButtonLabel = step?.backButtonLabel;\n this.primaryButtonDataTestId = step?.primaryButtonDataTestId ?? 'media-dialog.confirm-button';\n this.secondaryButtonDataTestId = step?.secondaryButtonDataTestId ?? 'media-dialog.cancel-button';\n this.backButtonDataTestId = step?.backButtonDataTestId ?? 'media-dialog.back-button';\n }\n\n onPrimaryButtonClick(): void {\n const isLastStep = this.currentStepIndex === this.steps.length - 1;\n\n if (isLastStep) {\n this.dialogRef.close(true);\n } else {\n this.setStep(this.currentStepIndex + 1);\n }\n }\n\n onBackButtonClick(): void {\n if (this.currentStepIndex > 0) {\n this.setStep(this.currentStepIndex - 1);\n }\n }\n\n onSecondaryButtonClick(): void {\n this.dialogRef.close(false);\n }\n\n dismiss(): void {\n this.dialogRef.close(null);\n }\n}\n","<ng-container>\n @if (steps && steps.length > 1) {\n <ui-progress-bar [progress]=\"(currentStepIndex + 1) * (100 / steps.length)\"></ui-progress-bar>\n }\n\n <ui-dialog [title]=\"title\" (closeEvent)=\"dialogRef.close(null)\" [showCloseButton]=\"true\">\n @if (mediaContainer) {\n <div class=\"media-container\">\n <ng-container [ngTemplateOutlet]=\"mediaContainer\"></ng-container>\n </div>\n }\n\n @if (subheader) {\n <h4 class=\"subheader\">{{ subheader }}</h4>\n }\n\n @if (body) {\n <div [innerHTML]=\"body\"></div>\n }\n\n <div mat-dialog-actions class=\"footer\">\n <div>\n @if (backButtonLabel && currentStepIndex > 0) {\n <ui-button\n variant=\"text-inline\"\n size=\"medium\"\n [label]=\"backButtonLabel\"\n [attr.data-testid]=\"backButtonDataTestId\"\n (click)=\"onBackButtonClick()\"\n ></ui-button>\n }\n </div>\n\n <div class=\"action-buttons\">\n @if (secondaryButtonLabel) {\n <ui-button\n variant=\"ghost\"\n [label]=\"secondaryButtonLabel\"\n [attr.data-testid]=\"secondaryButtonDataTestId\"\n (click)=\"onSecondaryButtonClick()\"\n ></ui-button>\n }\n @if (primaryButtonLabel) {\n <ui-button\n variant=\"primary\"\n [label]=\"primaryButtonLabel\"\n [attr.data-testid]=\"primaryButtonDataTestId\"\n (click)=\"onPrimaryButtonClick()\"\n ></ui-button>\n }\n </div>\n </div>\n </ui-dialog>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,21 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, EventEmitter, effect, HostBinding, Output, Input, Optional, Self, Component, NgModule } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, input, booleanAttribute, EventEmitter, effect, HostBinding, Output, Input, Optional, Self, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import * as i1 from '@angular/forms';
5
- import { Validators, FormControl, ReactiveFormsModule } from '@angular/forms';
6
- import * as i2 from '@angular/material/input';
7
- import { MatInputModule } from '@angular/material/input';
8
- import * as i3 from '@testgorilla/tgo-ui/components/icon';
5
+ import { Validators, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import { MatHint } from '@angular/material/form-field';
7
+ import { HasValidationErrorPipe, DigitsOnlyDirective } from '@testgorilla/tgo-ui/components/core';
8
+ import { DropdownComponent, DropdownComponentModule } from '@testgorilla/tgo-ui/components/dropdown';
9
+ import { FieldComponent, FieldComponentModule } from '@testgorilla/tgo-ui/components/field';
10
+ import * as i2 from '@testgorilla/tgo-ui/components/icon';
9
11
  import { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';
10
- import * as i4 from '@testgorilla/tgo-ui/components/dropdown';
11
- import { DropdownComponentModule } from '@testgorilla/tgo-ui/components/dropdown';
12
- import * as i5 from '@testgorilla/tgo-ui/components/validation-error';
12
+ import * as i3 from '@testgorilla/tgo-ui/components/validation-error';
13
13
  import { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';
14
- import * as i6 from '@testgorilla/tgo-ui/components/field';
15
- import { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';
16
- import * as i7 from '@testgorilla/tgo-ui/components/core';
17
- import { DigitsOnlyDirective, HasValidationErrorPipe } from '@testgorilla/tgo-ui/components/core';
18
14
  import { CommonModule } from '@angular/common';
15
+ import { MatInputModule } from '@angular/material/input';
19
16
  import { MatSelectModule } from '@angular/material/select';
20
17
  import { DividerComponentModule } from '@testgorilla/tgo-ui/components/divider';
21
18
 
@@ -33,11 +30,24 @@ const requiredMultiInput = (control) => {
33
30
  };
34
31
 
35
32
  /* eslint-disable @typescript-eslint/no-inferrable-types */
36
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
37
33
  class MultiInputComponent {
34
+ /**
35
+ * `controlHasError` reads `ngControl.touched`/`errors` — mutable state OnPush
36
+ * never re-checks on its own (e.g. an external `markAllAsTouched()` on submit).
37
+ * ngDoCheck runs whenever an ancestor is checked, so mark the view when the
38
+ * error state moves (same pattern as validation-error/autocomplete-v2).
39
+ */
40
+ ngDoCheck() {
41
+ const hasError = this.controlHasError;
42
+ if (hasError !== this.lastControlHasError) {
43
+ this.lastControlHasError = hasError;
44
+ this.cdr.markForCheck();
45
+ }
46
+ }
38
47
  constructor(ngControl, fb) {
39
48
  this.ngControl = ngControl;
40
49
  this.fb = fb;
50
+ this.cdr = inject(ChangeDetectorRef);
41
51
  /**
42
52
  *
43
53
  * @description List of items to be displayed in the dropdown list
@@ -250,14 +260,14 @@ class MultiInputComponent {
250
260
  }
251
261
  get controlHasError() {
252
262
  if (this.ngControl) {
253
- return !!(this.ngControl.errors && this.ngControl.touched);
263
+ return Boolean(this.ngControl.errors && this.ngControl.touched);
254
264
  }
255
265
  else {
256
266
  return this.errors()?.length > 0;
257
267
  }
258
268
  }
259
269
  getValueLength() {
260
- return this.inputControl?.value?.toString().length || 0;
270
+ return this.inputControl?.value?.toString().length ?? 0;
261
271
  }
262
272
  updateDisableState(state) {
263
273
  if (state) {
@@ -268,11 +278,20 @@ class MultiInputComponent {
268
278
  }
269
279
  }
270
280
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
271
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MultiInputComponent, isStandalone: false, selector: "ui-multi-input", inputs: { itemsList: { classPropertyName: "itemsList", publicName: "itemsList", isSignal: true, isRequired: true, transformFunction: null }, itemTextField: { classPropertyName: "itemTextField", publicName: "itemTextField", isSignal: true, isRequired: true, transformFunction: null }, itemValueField: { classPropertyName: "itemValueField", publicName: "itemValueField", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, allowDecimal: { classPropertyName: "allowDecimal", publicName: "allowDecimal", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, hideBuiltInErrors: { classPropertyName: "hideBuiltInErrors", publicName: "hideBuiltInErrors", isSignal: true, isRequired: false, transformFunction: null }, hideLabelInErrors: { classPropertyName: "hideLabelInErrors", publicName: "hideLabelInErrors", isSignal: true, isRequired: false, transformFunction: null }, maxCharacters: { classPropertyName: "maxCharacters", publicName: "maxCharacters", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: false, isRequired: false, transformFunction: null }, hasCustomErrors: { classPropertyName: "hasCustomErrors", publicName: "hasCustomErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.full-width": "this.fullWidth", "class": "this.class" } }, 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()\"\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 [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n @if (!hasCustomErrors()) {\n @if (!controlHasError && maxCharacters() && !errors()?.length) {\n <mat-hint class=\"info\">{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint>\n }\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></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 <ng-content select=\"[custom-errors]\"></ng-content>\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,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .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,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{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.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i3.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i4.DropdownComponent, selector: "ui-dropdown", inputs: ["label", "labelIcon", "isAIVariant", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor", "panelClass"], 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: i5.ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme", "customErrors"] }, { kind: "component", type: i6.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "autosizableTextarea", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "pipe", type: i7.HasValidationErrorPipe, name: "hasValidationError" }] }); }
281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: MultiInputComponent, isStandalone: true, selector: "ui-multi-input", inputs: { itemsList: { classPropertyName: "itemsList", publicName: "itemsList", isSignal: true, isRequired: true, transformFunction: null }, itemTextField: { classPropertyName: "itemTextField", publicName: "itemTextField", isSignal: true, isRequired: true, transformFunction: null }, itemValueField: { classPropertyName: "itemValueField", publicName: "itemValueField", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, allowDecimal: { classPropertyName: "allowDecimal", publicName: "allowDecimal", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, hideBuiltInErrors: { classPropertyName: "hideBuiltInErrors", publicName: "hideBuiltInErrors", isSignal: true, isRequired: false, transformFunction: null }, hideLabelInErrors: { classPropertyName: "hideLabelInErrors", publicName: "hideLabelInErrors", isSignal: true, isRequired: false, transformFunction: null }, maxCharacters: { classPropertyName: "maxCharacters", publicName: "maxCharacters", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: false, isRequired: false, transformFunction: null }, hasCustomErrors: { classPropertyName: "hasCustomErrors", publicName: "hasCustomErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.full-width": "this.fullWidth", "class": "this.class" } }, 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()\"\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 [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n @if (!hasCustomErrors()) {\n @if (!controlHasError && maxCharacters() && !errors()?.length) {\n <mat-hint class=\"info\">{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint>\n }\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></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 <ng-content select=\"[custom-errors]\"></ng-content>\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,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .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,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{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: "ngmodule", type: FormsModule }, { 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: "ngmodule", type: ReactiveFormsModule }, { 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: DropdownComponent, selector: "ui-dropdown", inputs: ["label", "labelIcon", "isAIVariant", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor", "panelClass"], outputs: ["closed", "opened"] }, { kind: "component", type: FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "autosizableTextarea", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: IconComponentModule }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "ngmodule", type: ValidationErrorModule }, { kind: "component", type: i3.ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme", "customErrors"] }, { kind: "pipe", type: HasValidationErrorPipe, name: "hasValidationError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
272
282
  }
273
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiInputComponent, decorators: [{
274
284
  type: Component,
275
- args: [{ selector: 'ui-multi-input', standalone: false, 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()\"\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 [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n @if (!hasCustomErrors()) {\n @if (!controlHasError && maxCharacters() && !errors()?.length) {\n <mat-hint class=\"info\">{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint>\n }\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></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 <ng-content select=\"[custom-errors]\"></ng-content>\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,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .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,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{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"] }]
285
+ args: [{ selector: 'ui-multi-input', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
286
+ FormsModule,
287
+ ReactiveFormsModule,
288
+ DropdownComponent,
289
+ FieldComponent,
290
+ MatHint,
291
+ IconComponentModule,
292
+ ValidationErrorModule,
293
+ HasValidationErrorPipe,
294
+ ], 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()\"\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 [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n @if (!hasCustomErrors()) {\n @if (!controlHasError && maxCharacters() && !errors()?.length) {\n <mat-hint class=\"info\">{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint>\n }\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></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 <ng-content select=\"[custom-errors]\"></ng-content>\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,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-text-field-wrapper,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .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,:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-text-field-wrapper{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"] }]
276
295
  }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
277
296
  type: Optional
278
297
  }, {
@@ -290,7 +309,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
290
309
 
291
310
  class MultiInputComponentModule {
292
311
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiInputComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
293
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: MultiInputComponentModule, declarations: [MultiInputComponent], imports: [CommonModule,
312
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: MultiInputComponentModule, imports: [CommonModule,
294
313
  MatInputModule,
295
314
  MatSelectModule,
296
315
  DividerComponentModule,
@@ -300,7 +319,8 @@ class MultiInputComponentModule {
300
319
  DigitsOnlyDirective,
301
320
  HasValidationErrorPipe,
302
321
  ValidationErrorModule,
303
- FieldComponentModule], exports: [MultiInputComponent] }); }
322
+ FieldComponentModule,
323
+ MultiInputComponent], exports: [MultiInputComponent] }); }
304
324
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiInputComponentModule, imports: [CommonModule,
305
325
  MatInputModule,
306
326
  MatSelectModule,
@@ -309,12 +329,12 @@ class MultiInputComponentModule {
309
329
  DropdownComponentModule,
310
330
  ReactiveFormsModule,
311
331
  ValidationErrorModule,
312
- FieldComponentModule] }); }
332
+ FieldComponentModule,
333
+ MultiInputComponent] }); }
313
334
  }
314
335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MultiInputComponentModule, decorators: [{
315
336
  type: NgModule,
316
337
  args: [{
317
- declarations: [MultiInputComponent],
318
338
  imports: [
319
339
  CommonModule,
320
340
  MatInputModule,
@@ -327,6 +347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
327
347
  HasValidationErrorPipe,
328
348
  ValidationErrorModule,
329
349
  FieldComponentModule,
350
+ MultiInputComponent,
330
351
  ],
331
352
  exports: [MultiInputComponent],
332
353
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-multi-input.mjs","sources":["../../../components/multi-input/required-multi-input.validator.ts","../../../components/multi-input/multi-input.component.ts","../../../components/multi-input/multi-input.component.html","../../../components/multi-input/multi-input.component.module.ts","../../../components/multi-input/testgorilla-tgo-ui-components-multi-input.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/unbound-method */\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\nimport { MultiInputValue } from './multi-input.model';\n\nexport const requiredMultiInput = (control: AbstractControl<MultiInputValue>): ValidationErrors | null => {\n const controlValue = control.value;\n\n const hasRequired = control.hasValidator(Validators.required);\n\n if (hasRequired && controlValue) {\n const anyFalsy = Object.values(controlValue).some(v => !v);\n if (anyFalsy) {\n return { required: true };\n }\n }\n return null;\n};\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n\nimport {\n booleanAttribute,\n Component,\n effect,\n EventEmitter,\n HostBinding,\n input,\n Input,\n OnInit,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n NgControl,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MultiInputValue } from './multi-input.model';\nimport { requiredMultiInput } from './required-multi-input.validator';\n\n@Component({\n selector: 'ui-multi-input',\n templateUrl: './multi-input.component.html',\n styleUrl: './multi-input.component.scss',\n standalone: false,\n})\nexport class MultiInputComponent implements ControlValueAccessor, OnInit {\n /**\n *\n * @description List of items to be displayed in the dropdown list\n * @type {Record<string, string | null | number>[]}\n * @memberof MultiInputComponent\n */\n itemsList = input.required<Record<string, string | null | number>[]>();\n\n /**\n *\n * @description The field to be displayed in the dropdown\n * @type {string}\n * @memberof MultiInputComponent\n */\n itemTextField = input.required<string>();\n\n /**\n *\n * @description The value to be displayed in the droddown\n * @type {string}\n * @memberof MultiInputComponent\n */\n itemValueField = input.required<string>();\n\n /**\n *\n * @description The Value of the multi input\n * @type {MultiInputValue}\n * @memberof MultiInputComponent\n */\n value = input<MultiInputValue>();\n\n /**\n *\n * @description Disables the multi input\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n *\n * @description Defines if the multi input is required\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n required = input(false, { transform: booleanAttribute });\n\n /**\n *\n * @description Defines the label of the multi input\n * @type {string}\n * @memberof MultiInputComponent\n */\n label = input('');\n\n /**\n *\n * @description Defines the placeholder of the multi input\n * @type {string}\n * @memberof MultiInputComponent\n */\n placeholder = input('');\n\n /**\n *\n * @description Allow decimal values in the multi input\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n allowDecimal = input(true, { transform: booleanAttribute });\n\n /**\n *\n * @description Allow negative values in the multi input\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n allowNegative = input(true, { transform: booleanAttribute });\n\n /**\n *\n * @description The errors of the multi input\n * @type {string[]}\n * @memberof MultiInputComponent\n */\n errors = input<string[]>([]);\n\n /**\n *\n * @description Hide built in errors for Reactive Forms\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n hideBuiltInErrors = input(false, { transform: booleanAttribute });\n\n /**\n *\n * @description Hide label in errors\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n hideLabelInErrors = input(false, { transform: booleanAttribute });\n\n /**\n *\n * @description The maximum characters allowed in the multi input\n * @type {number}\n * @memberof MultiInputComponent\n */\n maxCharacters = input(0);\n\n /**\n *\n * @description The validators to apply to input field\n * @type {Validators[]}\n * @memberof MultiInputComponent\n */\n validators = input<ValidatorFn[]>([]);\n\n /**\n *\n * @description The width of the multi input\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n @HostBinding('class.full-width')\n @Input()\n fullWidth: boolean = false;\n\n @Output() valueChange = new EventEmitter<MultiInputValue>();\n\n @HostBinding() class = 'ui-multi-input';\n\n /**\n * @description Indicates that custom errors are provided via content projection.\n * When true, the built-in error hints will be hidden.\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n hasCustomErrors = input(false, { transform: booleanAttribute });\n\n /**\n * @ignore\n */\n onChange = (_value: any): void => {};\n\n /**\n * @ignore\n */\n onTouch = (): void => {};\n\n protected readonly multiInputForm = this.fb.group<MultiInputValue>({\n value: null,\n });\n\n constructor(\n @Optional() @Self() protected ngControl: NgControl,\n private readonly fb: FormBuilder\n ) {\n effect(() => {\n this.updateDisableState(this.disabled());\n });\n\n effect(() => {\n const maxCharacters = this.maxCharacters();\n if (maxCharacters) {\n this.inputControl?.addValidators(Validators.maxLength(maxCharacters));\n this.inputControl?.updateValueAndValidity({ emitEvent: false });\n }\n });\n\n effect(() => {\n const inputValidators = this.validators();\n if (inputValidators?.length) {\n this.inputControl?.addValidators(inputValidators);\n this.inputControl?.updateValueAndValidity({ emitEvent: false });\n }\n });\n\n effect(() => {\n const value = this.value();\n // skip in the context of angular Forms\n if (!this.ngControl) {\n this.addDropdownControl();\n this.patchForm(value);\n }\n });\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n this.multiInputForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(formValue => {\n this.valueChanged(formValue as MultiInputValue);\n });\n }\n\n ngOnInit(): void {\n this.addDropdownControl();\n if (this.ngControl) {\n this.ngControl.control?.addValidators(requiredMultiInput);\n }\n }\n\n writeValue(value: MultiInputValue): void {\n this.addDropdownControl();\n this.patchForm(value);\n }\n\n patchForm(value: MultiInputValue | undefined) {\n if (value) {\n this.multiInputForm.patchValue(value, { emitEvent: false });\n } else {\n this.multiInputForm.reset(undefined, { emitEvent: false });\n }\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.updateDisableState(isDisabled);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n protected valueChanged(value: MultiInputValue): void {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected get dropdownControl(): AbstractControl<unknown> {\n return this.multiInputForm.controls[this.itemValueField()];\n }\n\n protected get inputControl(): AbstractControl<unknown> {\n return this.multiInputForm.controls.value;\n }\n\n protected markAsTouched(): void {\n this.onTouch();\n }\n\n protected addDropdownControl(): void {\n if (!this.multiInputForm.value[this.itemValueField()]) {\n this.multiInputForm.addControl(this.itemValueField(), new FormControl(null), { emitEvent: false });\n this.updateDisableState(this.disabled());\n }\n }\n\n protected get controlHasError(): boolean {\n if (this.ngControl) {\n return !!(this.ngControl.errors && this.ngControl.touched);\n } else {\n return this.errors()?.length > 0;\n }\n }\n\n protected getValueLength(): number {\n return this.inputControl?.value?.toString().length || 0;\n }\n\n private updateDisableState(state: boolean): void {\n if (state) {\n this.multiInputForm.disable({ emitEvent: false });\n } else {\n this.multiInputForm.enable({ emitEvent: false });\n }\n }\n}\n","<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()\"\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 [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n @if (!hasCustomErrors()) {\n @if (!controlHasError && maxCharacters() && !errors()?.length) {\n <mat-hint class=\"info\">{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint>\n }\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></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 <ng-content select=\"[custom-errors]\"></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MultiInputComponent } from './multi-input.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { DividerComponentModule } from '@testgorilla/tgo-ui/components/divider';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { DropdownComponentModule } from '@testgorilla/tgo-ui/components/dropdown';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DigitsOnlyDirective, HasValidationErrorPipe } from '@testgorilla/tgo-ui/components/core';\nimport { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';\nimport { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';\n\n@NgModule({\n declarations: [MultiInputComponent],\n imports: [\n CommonModule,\n MatInputModule,\n MatSelectModule,\n DividerComponentModule,\n IconComponentModule,\n DropdownComponentModule,\n ReactiveFormsModule,\n DigitsOnlyDirective,\n HasValidationErrorPipe,\n ValidationErrorModule,\n FieldComponentModule,\n ],\n exports: [MultiInputComponent],\n})\nexport class MultiInputComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testgorilla-tgo-ui-components-multi-input.mjs","sources":["../../../components/multi-input/required-multi-input.validator.ts","../../../components/multi-input/multi-input.component.ts","../../../components/multi-input/multi-input.component.html","../../../components/multi-input/multi-input.component.module.ts","../../../components/multi-input/testgorilla-tgo-ui-components-multi-input.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/unbound-method */\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { MultiInputValue } from './multi-input.model';\n\nexport const requiredMultiInput = (control: AbstractControl<MultiInputValue>): ValidationErrors | null => {\n const controlValue = control.value;\n\n const hasRequired = control.hasValidator(Validators.required);\n\n if (hasRequired && controlValue) {\n const anyFalsy = Object.values(controlValue).some(v => !v);\n if (anyFalsy) {\n return { required: true };\n }\n }\n return null;\n};\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n booleanAttribute,\n Component,\n DoCheck,\n effect,\n EventEmitter,\n HostBinding,\n inject,\n input,\n Input,\n OnInit,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n NgControl,\n ValidatorFn,\n Validators,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatHint } from '@angular/material/form-field';\n\nimport { HasValidationErrorPipe } from '@testgorilla/tgo-ui/components/core';\nimport { DropdownComponent } from '@testgorilla/tgo-ui/components/dropdown';\nimport { FieldComponent } from '@testgorilla/tgo-ui/components/field';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';\n\nimport { MultiInputValue } from './multi-input.model';\nimport { requiredMultiInput } from './required-multi-input.validator';\n\n@Component({\n selector: 'ui-multi-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './multi-input.component.html',\n styleUrl: './multi-input.component.scss',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n DropdownComponent,\n FieldComponent,\n MatHint,\n IconComponentModule,\n ValidationErrorModule,\n HasValidationErrorPipe,\n ],\n})\nexport class MultiInputComponent implements ControlValueAccessor, OnInit, DoCheck {\n private readonly cdr = inject(ChangeDetectorRef);\n private lastControlHasError?: boolean;\n\n /**\n * `controlHasError` reads `ngControl.touched`/`errors` — mutable state OnPush\n * never re-checks on its own (e.g. an external `markAllAsTouched()` on submit).\n * ngDoCheck runs whenever an ancestor is checked, so mark the view when the\n * error state moves (same pattern as validation-error/autocomplete-v2).\n */\n ngDoCheck(): void {\n const hasError = this.controlHasError;\n if (hasError !== this.lastControlHasError) {\n this.lastControlHasError = hasError;\n this.cdr.markForCheck();\n }\n }\n /**\n *\n * @description List of items to be displayed in the dropdown list\n * @type {Record<string, string | null | number>[]}\n * @memberof MultiInputComponent\n */\n itemsList = input.required<Record<string, string | null | number>[]>();\n\n /**\n *\n * @description The field to be displayed in the dropdown\n * @type {string}\n * @memberof MultiInputComponent\n */\n itemTextField = input.required<string>();\n\n /**\n *\n * @description The value to be displayed in the droddown\n * @type {string}\n * @memberof MultiInputComponent\n */\n itemValueField = input.required<string>();\n\n /**\n *\n * @description The Value of the multi input\n * @type {MultiInputValue}\n * @memberof MultiInputComponent\n */\n value = input<MultiInputValue>();\n\n /**\n *\n * @description Disables the multi input\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n *\n * @description Defines if the multi input is required\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n required = input(false, { transform: booleanAttribute });\n\n /**\n *\n * @description Defines the label of the multi input\n * @type {string}\n * @memberof MultiInputComponent\n */\n label = input('');\n\n /**\n *\n * @description Defines the placeholder of the multi input\n * @type {string}\n * @memberof MultiInputComponent\n */\n placeholder = input('');\n\n /**\n *\n * @description Allow decimal values in the multi input\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n allowDecimal = input(true, { transform: booleanAttribute });\n\n /**\n *\n * @description Allow negative values in the multi input\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n allowNegative = input(true, { transform: booleanAttribute });\n\n /**\n *\n * @description The errors of the multi input\n * @type {string[]}\n * @memberof MultiInputComponent\n */\n errors = input<string[]>([]);\n\n /**\n *\n * @description Hide built in errors for Reactive Forms\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n hideBuiltInErrors = input(false, { transform: booleanAttribute });\n\n /**\n *\n * @description Hide label in errors\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n hideLabelInErrors = input(false, { transform: booleanAttribute });\n\n /**\n *\n * @description The maximum characters allowed in the multi input\n * @type {number}\n * @memberof MultiInputComponent\n */\n maxCharacters = input(0);\n\n /**\n *\n * @description The validators to apply to input field\n * @type {Validators[]}\n * @memberof MultiInputComponent\n */\n validators = input<ValidatorFn[]>([]);\n\n /**\n *\n * @description The width of the multi input\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n @HostBinding('class.full-width')\n @Input()\n fullWidth: boolean = false;\n\n @Output() valueChange = new EventEmitter<MultiInputValue>();\n\n @HostBinding() class = 'ui-multi-input';\n\n /**\n * @description Indicates that custom errors are provided via content projection.\n * When true, the built-in error hints will be hidden.\n * @type {boolean}\n * @memberof MultiInputComponent\n */\n hasCustomErrors = input(false, { transform: booleanAttribute });\n\n /**\n * @ignore\n */\n onChange = (_value: MultiInputValue): void => {};\n\n /**\n * @ignore\n */\n onTouch = (): void => {};\n\n protected readonly multiInputForm = this.fb.group<MultiInputValue>({\n value: null,\n });\n\n constructor(\n @Optional() @Self() protected ngControl: NgControl,\n private readonly fb: FormBuilder\n ) {\n effect(() => {\n this.updateDisableState(this.disabled());\n });\n\n effect(() => {\n const maxCharacters = this.maxCharacters();\n if (maxCharacters) {\n this.inputControl?.addValidators(Validators.maxLength(maxCharacters));\n this.inputControl?.updateValueAndValidity({ emitEvent: false });\n }\n });\n\n effect(() => {\n const inputValidators = this.validators();\n if (inputValidators?.length) {\n this.inputControl?.addValidators(inputValidators);\n this.inputControl?.updateValueAndValidity({ emitEvent: false });\n }\n });\n\n effect(() => {\n const value = this.value();\n // skip in the context of angular Forms\n if (!this.ngControl) {\n this.addDropdownControl();\n this.patchForm(value);\n }\n });\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n this.multiInputForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(formValue => {\n this.valueChanged(formValue as MultiInputValue);\n });\n }\n\n ngOnInit(): void {\n this.addDropdownControl();\n if (this.ngControl) {\n this.ngControl.control?.addValidators(requiredMultiInput);\n }\n }\n\n writeValue(value: MultiInputValue): void {\n this.addDropdownControl();\n this.patchForm(value);\n }\n\n patchForm(value: MultiInputValue | undefined) {\n if (value) {\n this.multiInputForm.patchValue(value, { emitEvent: false });\n } else {\n this.multiInputForm.reset(undefined, { emitEvent: false });\n }\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.updateDisableState(isDisabled);\n }\n\n registerOnChange(fn: (value: MultiInputValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n protected valueChanged(value: MultiInputValue): void {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected get dropdownControl(): AbstractControl<unknown> {\n return this.multiInputForm.controls[this.itemValueField()];\n }\n\n protected get inputControl(): AbstractControl<unknown> {\n return this.multiInputForm.controls.value;\n }\n\n protected markAsTouched(): void {\n this.onTouch();\n }\n\n protected addDropdownControl(): void {\n if (!this.multiInputForm.value[this.itemValueField()]) {\n this.multiInputForm.addControl(this.itemValueField(), new FormControl(null), { emitEvent: false });\n this.updateDisableState(this.disabled());\n }\n }\n\n protected get controlHasError(): boolean {\n if (this.ngControl) {\n return Boolean(this.ngControl.errors && this.ngControl.touched);\n } else {\n return this.errors()?.length > 0;\n }\n }\n\n protected getValueLength(): number {\n return this.inputControl?.value?.toString().length ?? 0;\n }\n\n private updateDisableState(state: boolean): void {\n if (state) {\n this.multiInputForm.disable({ emitEvent: false });\n } else {\n this.multiInputForm.enable({ emitEvent: false });\n }\n }\n}\n","<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()\"\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 [allowNegative]=\"allowNegative()\"\n (focusout)=\"markAsTouched()\"\n ></ui-field>\n </div>\n\n @if (!hasCustomErrors()) {\n @if (!controlHasError && maxCharacters() && !errors()?.length) {\n <mat-hint class=\"info\">{{ getValueLength() }} / {{ maxCharacters() }}</mat-hint>\n }\n\n @if (errors()?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors(); track error) {\n <ui-icon name=\"Error-in-line\"></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 <ng-content select=\"[custom-errors]\"></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { DigitsOnlyDirective, HasValidationErrorPipe } from '@testgorilla/tgo-ui/components/core';\nimport { DividerComponentModule } from '@testgorilla/tgo-ui/components/divider';\nimport { DropdownComponentModule } from '@testgorilla/tgo-ui/components/dropdown';\nimport { FieldComponentModule } from '@testgorilla/tgo-ui/components/field';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { ValidationErrorModule } from '@testgorilla/tgo-ui/components/validation-error';\n\nimport { MultiInputComponent } from './multi-input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatInputModule,\n MatSelectModule,\n DividerComponentModule,\n IconComponentModule,\n DropdownComponentModule,\n ReactiveFormsModule,\n DigitsOnlyDirective,\n HasValidationErrorPipe,\n ValidationErrorModule,\n FieldComponentModule,\n MultiInputComponent,\n ],\n exports: [MultiInputComponent],\n})\nexport class MultiInputComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}