@testgorilla/tgo-ui 11.22.2 → 12.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 (227) hide show
  1. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +335 -229
  2. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
  3. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +547 -465
  4. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
  5. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +160 -75
  6. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
  7. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +678 -278
  8. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
  9. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +337 -274
  10. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
  11. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +351 -192
  12. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
  13. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +1950 -960
  14. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
  15. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +1206 -1044
  16. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
  17. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +328 -182
  18. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
  19. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +383 -203
  20. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
  21. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +553 -261
  22. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
  23. package/fesm2022/testgorilla-tgo-ui-components-button.mjs +709 -739
  24. package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
  25. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +219 -184
  26. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
  27. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +515 -458
  28. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
  29. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +423 -162
  30. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
  31. package/fesm2022/testgorilla-tgo-ui-components-core.mjs +10784 -10996
  32. package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
  33. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +810 -533
  34. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
  35. package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs +473 -116
  36. package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs.map +1 -1
  37. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +1149 -540
  38. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
  39. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +148 -84
  40. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
  41. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +239 -142
  42. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
  43. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +599 -467
  44. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
  45. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +126 -70
  46. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
  47. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +324 -329
  48. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
  49. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +969 -648
  50. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
  51. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +553 -419
  52. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
  53. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +847 -452
  54. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
  55. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +398 -302
  56. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
  57. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +162 -95
  58. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
  59. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +1825 -1789
  60. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
  61. package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs +1018 -672
  62. package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs.map +1 -1
  63. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +758 -368
  64. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
  65. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +204 -212
  66. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
  67. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +183 -48
  68. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
  69. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +243 -79
  70. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
  71. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +751 -361
  72. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
  73. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +1122 -385
  74. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
  75. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +689 -413
  76. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
  77. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +227 -92
  78. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
  79. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +174 -113
  80. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
  81. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +367 -165
  82. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
  83. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +253 -118
  84. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
  85. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +730 -444
  86. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
  87. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs +533 -221
  88. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
  89. package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs +274 -76
  90. package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs.map +1 -1
  91. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +184 -124
  92. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
  93. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +1223 -574
  94. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
  95. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +249 -160
  96. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
  97. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +447 -439
  98. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
  99. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +226 -150
  100. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
  101. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +255 -67
  102. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
  103. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +205 -162
  104. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
  105. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +245 -153
  106. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
  107. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +274 -140
  108. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
  109. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs +319 -147
  110. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
  111. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +286 -84
  112. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
  113. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +660 -208
  114. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
  115. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +579 -320
  116. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
  117. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +419 -200
  118. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
  119. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +132 -80
  120. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
  121. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +741 -390
  122. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
  123. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +455 -329
  124. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
  125. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +543 -514
  126. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
  127. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +193 -104
  128. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
  129. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +760 -524
  130. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
  131. package/fesm2022/testgorilla-tgo-ui-components-table.mjs +714 -415
  132. package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
  133. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +847 -438
  134. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
  135. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +535 -275
  136. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
  137. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +316 -246
  138. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
  139. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +404 -284
  140. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
  141. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +664 -383
  142. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
  143. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +201 -112
  144. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
  145. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +1014 -458
  146. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
  147. package/fesm2022/testgorilla-tgo-ui.mjs +147 -155
  148. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  149. package/mcp/catalog.json +1 -1
  150. package/package.json +16 -17
  151. package/projects/tgo-canopy-ui/assets/icons/rebrand/Sequences-filled.svg +3 -0
  152. package/projects/tgo-canopy-ui/assets/icons/rebrand/Sequences-in-line.svg +3 -0
  153. package/projects/tgo-canopy-ui/theme/_palette.scss +23 -18
  154. package/types/testgorilla-tgo-ui-components-accordion.d.ts +214 -158
  155. package/types/testgorilla-tgo-ui-components-ai-audio-circle.d.ts +93 -69
  156. package/types/testgorilla-tgo-ui-components-ai-caveat.d.ts +37 -34
  157. package/types/testgorilla-tgo-ui-components-ai-feedback.d.ts +126 -86
  158. package/types/testgorilla-tgo-ui-components-alert-banner.d.ts +260 -185
  159. package/types/testgorilla-tgo-ui-components-audio-waveform.d.ts +96 -67
  160. package/types/testgorilla-tgo-ui-components-autocomplete-v2.d.ts +455 -256
  161. package/types/testgorilla-tgo-ui-components-autocomplete.d.ts +545 -390
  162. package/types/testgorilla-tgo-ui-components-avatar.d.ts +128 -102
  163. package/types/testgorilla-tgo-ui-components-badge.d.ts +191 -139
  164. package/types/testgorilla-tgo-ui-components-breadcrumb.d.ts +100 -62
  165. package/types/testgorilla-tgo-ui-components-button.d.ts +479 -340
  166. package/types/testgorilla-tgo-ui-components-card.d.ts +153 -114
  167. package/types/testgorilla-tgo-ui-components-checkbox.d.ts +299 -223
  168. package/types/testgorilla-tgo-ui-components-checklist.d.ts +149 -97
  169. package/types/testgorilla-tgo-ui-components-core.d.ts +307 -295
  170. package/types/testgorilla-tgo-ui-components-datepicker.d.ts +404 -299
  171. package/types/testgorilla-tgo-ui-components-device-control.d.ts +151 -81
  172. package/types/testgorilla-tgo-ui-components-dialog.d.ts +442 -329
  173. package/types/testgorilla-tgo-ui-components-divider.d.ts +64 -51
  174. package/types/testgorilla-tgo-ui-components-donut-chart.d.ts +41 -37
  175. package/types/testgorilla-tgo-ui-components-dropdown.d.ts +335 -241
  176. package/types/testgorilla-tgo-ui-components-elevation-shadow.d.ts +48 -43
  177. package/types/testgorilla-tgo-ui-components-empty-state.d.ts +317 -215
  178. package/types/testgorilla-tgo-ui-components-field.d.ts +559 -388
  179. package/types/testgorilla-tgo-ui-components-file-upload.d.ts +230 -168
  180. package/types/testgorilla-tgo-ui-components-filter-button.d.ts +263 -206
  181. package/types/testgorilla-tgo-ui-components-gaussian-chart.d.ts +107 -94
  182. package/types/testgorilla-tgo-ui-components-icon-label.d.ts +84 -61
  183. package/types/testgorilla-tgo-ui-components-icon.d.ts +137 -110
  184. package/types/testgorilla-tgo-ui-components-infinite-scroll-table.d.ts +429 -303
  185. package/types/testgorilla-tgo-ui-components-inline-field.d.ts +338 -254
  186. package/types/testgorilla-tgo-ui-components-logo.d.ts +119 -101
  187. package/types/testgorilla-tgo-ui-components-media-card.d.ts +51 -35
  188. package/types/testgorilla-tgo-ui-components-media-dialog.d.ts +40 -45
  189. package/types/testgorilla-tgo-ui-components-multi-input.d.ts +283 -194
  190. package/types/testgorilla-tgo-ui-components-navbar.d.ts +326 -208
  191. package/types/testgorilla-tgo-ui-components-overflow-menu.d.ts +276 -204
  192. package/types/testgorilla-tgo-ui-components-page-header.d.ts +67 -50
  193. package/types/testgorilla-tgo-ui-components-paginator.d.ts +103 -70
  194. package/types/testgorilla-tgo-ui-components-password-criteria.d.ts +67 -58
  195. package/types/testgorilla-tgo-ui-components-password-strength.d.ts +66 -57
  196. package/types/testgorilla-tgo-ui-components-phone-input.d.ts +217 -175
  197. package/types/testgorilla-tgo-ui-components-popover.d.ts +94 -53
  198. package/types/testgorilla-tgo-ui-components-popup-tip.d.ts +81 -44
  199. package/types/testgorilla-tgo-ui-components-progress-bar.d.ts +115 -84
  200. package/types/testgorilla-tgo-ui-components-prompt.d.ts +315 -219
  201. package/types/testgorilla-tgo-ui-components-radial-progress.d.ts +146 -107
  202. package/types/testgorilla-tgo-ui-components-radio-button.d.ts +296 -219
  203. package/types/testgorilla-tgo-ui-components-rating.d.ts +134 -95
  204. package/types/testgorilla-tgo-ui-components-scale-table.d.ts +67 -47
  205. package/types/testgorilla-tgo-ui-components-scale.d.ts +91 -66
  206. package/types/testgorilla-tgo-ui-components-segmented-bar.d.ts +118 -89
  207. package/types/testgorilla-tgo-ui-components-segmented-button.d.ts +107 -80
  208. package/types/testgorilla-tgo-ui-components-segmented-toggle.d.ts +138 -105
  209. package/types/testgorilla-tgo-ui-components-selectable-card.d.ts +90 -56
  210. package/types/testgorilla-tgo-ui-components-side-navigation.d.ts +183 -107
  211. package/types/testgorilla-tgo-ui-components-side-panel.d.ts +156 -145
  212. package/types/testgorilla-tgo-ui-components-side-sheet.d.ts +98 -89
  213. package/types/testgorilla-tgo-ui-components-skeleton.d.ts +50 -33
  214. package/types/testgorilla-tgo-ui-components-slider.d.ts +278 -198
  215. package/types/testgorilla-tgo-ui-components-snackbar.d.ts +211 -159
  216. package/types/testgorilla-tgo-ui-components-spider-chart.d.ts +140 -121
  217. package/types/testgorilla-tgo-ui-components-spinner.d.ts +93 -72
  218. package/types/testgorilla-tgo-ui-components-stepper.d.ts +480 -338
  219. package/types/testgorilla-tgo-ui-components-table.d.ts +280 -233
  220. package/types/testgorilla-tgo-ui-components-tabs.d.ts +282 -183
  221. package/types/testgorilla-tgo-ui-components-tag.d.ts +266 -193
  222. package/types/testgorilla-tgo-ui-components-toggle.d.ts +180 -132
  223. package/types/testgorilla-tgo-ui-components-tooltip.d.ts +142 -105
  224. package/types/testgorilla-tgo-ui-components-universal-skills.d.ts +165 -144
  225. package/types/testgorilla-tgo-ui-components-validation-error.d.ts +70 -51
  226. package/types/testgorilla-tgo-ui-components-write-with-ai.d.ts +210 -133
  227. package/types/testgorilla-tgo-ui.d.ts +52 -45
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-stepper.mjs","sources":["../../../components/stepper/step-line-element.directive.ts","../../../components/stepper/step.component.ts","../../../components/stepper/step.component.html","../../../components/stepper/stepper.component.ts","../../../components/stepper/stepper.component.html","../../../components/stepper/step.component.module.ts","../../../components/stepper/stepper.component.module.ts","../../../components/stepper/testgorilla-tgo-ui-components-stepper.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, Input, OnChanges } from '@angular/core';\n\nimport { StepperPosition } from './stepper.model';\n\nconst MARGINS = 36;\nconst PADDING = 16;\n\n/**\n * Directive is used to draw lines between steps\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector -- public directive selector; ui-prefix rename is breaking, deferred to the breaking-change MAJOR (see plan)\n selector: '[stepLineElement]',\n})\nexport class StepLineElementDirective implements OnChanges {\n @Input() stepLineElement: HTMLElement;\n @Input() position: StepperPosition = 'horizontal';\n\n @HostListener('window:resize.out-zone')\n resize(): void {\n this.setSize();\n }\n\n constructor(private readonly el: ElementRef<HTMLElement>) {}\n\n setSize(): void {\n if (this.position === 'horizontal') {\n this.el.nativeElement.style.width = `calc(100% + ${this.stepLineElement.getBoundingClientRect().width / 2 - PADDING}px)`;\n this.el.nativeElement.style.height = `0`;\n this.el.nativeElement.style.top = '45px';\n this.el.nativeElement.style.left = `-${this.stepLineElement.getBoundingClientRect().width / 2 - MARGINS}px`;\n } else {\n this.el.nativeElement.style.height = `calc(100% + ${this.stepLineElement.getBoundingClientRect().height / 2 - PADDING}px)`;\n this.el.nativeElement.style.width = '0';\n this.el.nativeElement.style.top = `-${this.stepLineElement.getBoundingClientRect().height / 2 - 30}px`;\n this.el.nativeElement.style.left = '34px';\n }\n }\n\n ngOnChanges(): void {\n queueMicrotask(() => {\n this.setSize();\n });\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nimport { ApplicationTheme, IKeyboardEvent } from '@testgorilla/tgo-ui/components/core';\nimport { IconName, IconComponent } from '@testgorilla/tgo-ui/components/icon';\nimport { TooltipPositionType, TooltipComponentModule } from '@testgorilla/tgo-ui/components/tooltip';\n\nimport { HtmlDescription, StepperPosition, StepperVariation } from './stepper.model';\n\n@Component({\n selector: 'ui-step',\n templateUrl: './step.component.html',\n styleUrls: ['./step.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TooltipComponentModule, NgClass, IconComponent, MatTooltip, NgTemplateOutlet],\n})\nexport class StepComponent implements AfterViewInit {\n /**\n * Input property for the label of the step.\n *\n * @memberof StepComponent\n */\n @Input() label: string;\n\n /**\n * Input property indicating whether the step has been visited.\n *\n * @memberof StepComponent\n */\n @Input() isVisited: boolean;\n\n /**\n * Input property indicating whether the form has been submitted.\n *\n * @memberof StepComponent\n */\n @Input() submitted: boolean;\n\n /**\n * Input property for the icon associated with the step.\n *\n * @memberof StepComponent\n */\n @Input() icon: IconName | undefined = '';\n\n /**\n * Input property for the index of the step.\n *\n * @memberof StepComponent\n */\n @Input() index: number;\n\n /**\n * Input property indicating whether the step is currently selected.\n *\n * @memberof StepComponent\n */\n @Input() selected: boolean;\n\n /**\n * Input property indicating whether the step is the last step in the stepper.\n *\n * @memberof StepComponent\n */\n @Input() isLast: boolean;\n\n /**\n * Input property indicating the selected index in the stepper.\n *\n * @memberof StepComponent\n */\n @Input() selectedIndex: number;\n\n /**\n * Input property indicating whether the step is disabled.\n *\n * @memberof StepComponent\n */\n @Input() disabled = false;\n\n /**\n * Input property indicating whether the previous step has been visited.\n *\n * @memberof StepComponent\n */\n @Input() prevStepIsVisited: boolean | undefined = false;\n\n /**\n * Input property indicating whether the component is in mobile mode.\n *\n * @memberof StepComponent\n */\n @Input() mobileMode = false;\n\n /**\n * Input property indicating whether the component is in large tablet mode.\n *\n * @memberof StepComponent\n */\n @Input() largeTabletMode: boolean | null = false;\n\n /**\n * Input property indicating whether the final icon should be displayed.\n *\n * @memberof StepComponent\n */\n @Input() finalIcon = false;\n\n /**\n * Input property indicating to display icon when step is selected.\n *\n * @memberof StepComponent\n */\n @Input() showIconWhenSelected = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof StepComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the stepper position\n *\n * @type {StepperPosition}\n * @memberof StepComponent\n */\n @Input() position: StepperPosition;\n\n /**\n *\n * Step description\n *\n * @type {HtmlDescription[]}\n * @memberof StepComponent\n */\n @Input() htmlDescription: HtmlDescription[] = [];\n\n /**\n *\n * Sets bold font weight for label\n *\n * @type {boolean}\n * @memberof StepComponent\n */\n @Input() boldLabel = false;\n\n /**\n *\n * Template for the step description\n *\n * @type {TemplateRef}\n * @memberof StepComponent\n */\n @Input() descriptionTpl?: TemplateRef<unknown>;\n\n /**\n *\n * Tooltip for the step label\n *\n * @type {string}\n * @memberof StepComponent\n */\n @Input() labelTooltip?: string;\n\n /**\n *\n * Always show step icon instead of number\n *\n * @type {boolean}\n * @memberof StepComponent\n */\n @Input() alwaysShowIcon = false;\n\n /**\n *\n * Context for the step template\n *\n * @type {any}\n * @memberof StepComponent\n */\n @Input() context: unknown;\n\n /**\n * A string representing the step variant.\n * This attribute is used to indicate the variant that should be used.\n * @type {string}\n * @memberof StepComponent\n */\n @Input() stepVariant: StepperVariation = 'primary';\n\n /**\n * Event emitted when the step was clicked.\n * @type {number}\n * @memberof StepComponent\n */\n @Output() stepSelected = new EventEmitter<number>();\n\n @ViewChild('step') stepElement: ElementRef<HTMLElement>;\n\n protected readonly TooltipPositionType = TooltipPositionType;\n\n protected keyboardFocused = signal(false);\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private readonly focusMonitor: FocusMonitor,\n private readonly destroyRef: DestroyRef\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngAfterViewInit() {\n this.subscriberFocus();\n }\n\n protected get hasLastStepDefaultIcon(): boolean {\n return !this.showIconWhenSelected || (this.showIconWhenSelected && !this.selected);\n }\n\n protected onStepSelected(index: number): void {\n if (!this.disabled) {\n this.stepSelected.emit(index);\n }\n }\n\n protected subscriberFocus(): void {\n this.focusMonitor\n .monitor(this.stepElement.nativeElement)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(origin => this.keyboardFocused.set(origin === 'keyboard'));\n }\n\n onKeydown($event: KeyboardEvent): void {\n if ($event.key === (IKeyboardEvent.ENTER as string) || $event.key === (IKeyboardEvent.SPACE as string)) {\n this.onStepSelected(this.index);\n } else if ($event.key === (IKeyboardEvent.ARROW_UP as string)) {\n const prevIndex = this.index - 1;\n const prevElement = document.getElementById(`step-${prevIndex}`);\n\n if (!prevElement) {\n return;\n }\n this.focusMonitor.focusVia(prevElement, 'keyboard');\n } else if ($event.key === (IKeyboardEvent.ARROW_DOWN as string)) {\n const nextIndex = this.index + 1;\n const nextElement = document.getElementById(`step-${nextIndex}`);\n\n if (!nextElement) {\n return;\n }\n this.focusMonitor.focusVia(nextElement, 'keyboard');\n }\n }\n}\n","@if (!mobileMode) {\n <ui-tooltip\n [message]=\"stepVariant === 'secondary' && largeTabletMode ? label : ''\"\n [position]=\"TooltipPositionType.BOTTOM\"\n >\n <div\n class=\"step-container\"\n #step\n tabindex=\"0\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n role=\"button\"\n [ngClass]=\"{\n 'secondary-step-variant': stepVariant === 'secondary',\n 'visited-next': isVisited && index > selectedIndex,\n 'visited-prev': isVisited && index < selectedIndex,\n active: selected,\n 'last-step': finalIcon && hasLastStepDefaultIcon && !alwaysShowIcon,\n disabled: disabled,\n vertical: position === 'vertical',\n 'keyboard-focused': keyboardFocused(),\n }\"\n [attr.theme]=\"applicationTheme\"\n (keydown.enter)=\"onStepSelected(index)\"\n (keydown.space)=\"$event.preventDefault(); onStepSelected(index)\"\n (click)=\"onStepSelected(index)\"\n >\n <div class=\"step-icon\">\n @if (index && stepVariant === 'primary') {\n <div class=\"line\" [ngClass]=\"{ visited: prevStepIsVisited }\"></div>\n }\n\n @if (!finalIcon) {\n <div class=\"icon-wrapper\">\n @switch (true) {\n @case (isVisited && !selected && !alwaysShowIcon) {\n <ui-icon\n size=\"24\"\n [name]=\"stepVariant === 'secondary' ? 'Check-small-filled' : 'Check'\"\n [color]=\"\n (isVisited && index < selectedIndex) || stepVariant === 'secondary'\n ? 'white'\n : applicationTheme === 'classic'\n ? 'petrol'\n : 'rebrand-black'\n \"\n ></ui-icon>\n }\n @case ((selected && !!icon) || alwaysShowIcon) {\n <ui-icon\n [size]=\"'24'\"\n [name]=\"icon!\"\n [color]=\"isLast && !selected ? 'rebrand-black' : 'white'\"\n ></ui-icon>\n }\n @default {\n {{ index + 1 }}\n }\n }\n </div>\n } @else {\n @if (hasLastStepDefaultIcon && !alwaysShowIcon) {\n <img\n [alt]=\"'step-finish-image'\"\n [attr.src]=\"\n applicationTheme === 'classic'\n ? '/images/step-finish.svg'\n : isVisited\n ? '/images/rebrand-last-step-icon-light.svg'\n : '/images/rebrand-last-step-icon-black.svg'\n \"\n />\n } @else {\n <div class=\"icon-wrapper\">\n @if (icon || (icon && alwaysShowIcon)) {\n <ui-icon [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\n } @else {\n {{ index + 1 }}\n }\n </div>\n }\n }\n </div>\n\n <div class=\"steps-label\">\n @if (label) {\n <div class=\"step-label\" [ngClass]=\"{ 'step-bold-label': boldLabel }\" [matTooltip]=\"labelTooltip ?? ''\">\n {{ label }}\n </div>\n }\n\n <div class=\"step-description-container\">\n @for (description of htmlDescription; track description) {\n <div class=\"step-description\">\n <div>{{ description.text }}</div>\n @if (description.iconName) {\n <ui-icon\n [name]=\"description.iconName\"\n [size]=\"'24'\"\n [matTooltip]=\"description.iconTooltip ?? ''\"\n ></ui-icon>\n }\n </div>\n }\n </div>\n\n @if (descriptionTpl) {\n <ng-container\n [ngTemplateOutlet]=\"descriptionTpl\"\n [ngTemplateOutletContext]=\"{\n $implicit: context,\n label,\n isVisited,\n submitted,\n index,\n selected,\n isLast,\n selectedIndex,\n disabled,\n prevStepIsVisited,\n mobileMode,\n finalIcon,\n showIconWhenSelected,\n position,\n }\"\n ></ng-container>\n }\n </div>\n </div>\n </ui-tooltip>\n} @else {\n <div\n class=\"mobile-step-container\"\n #step\n tabindex=\"0\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [ngClass]=\"{\n 'secondary-step-variant': stepVariant === 'secondary',\n active: selected,\n disabled: disabled,\n visited: isVisited,\n 'keyboard-focused': keyboardFocused(),\n }\"\n (keydown)=\"onKeydown($event)\"\n (keydown.enter)=\"onStepSelected(index)\"\n (click)=\"onStepSelected(index)\"\n [attr.theme]=\"applicationTheme\"\n role=\"tab\"\n [attr.aria-selected]=\"selected\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n [attr.aria-controls]=\"index\"\n [id]=\"'step-' + index\"\n >\n <div class=\"step\">\n @if (!finalIcon) {\n <div class=\"icon\">\n @switch (true) {\n @case (isVisited && !selected) {\n <ui-icon [size]=\"'16'\" [name]=\"'Check'\" [color]=\"'white'\"></ui-icon>\n }\n @case (selected && !!icon) {\n <ui-icon [size]=\"'16'\" [name]=\"icon!\" [color]=\"'white'\"></ui-icon>\n }\n @default {\n {{ index + 1 }}\n }\n }\n </div>\n } @else {\n @if (hasLastStepDefaultIcon) {\n <img\n [alt]=\"'step-finish-image'\"\n [width]=\"24\"\n [height]=\"24\"\n [attr.src]=\"\n applicationTheme === 'classic'\n ? '/images/step-finish.svg'\n : isVisited\n ? '/images/rebrand-last-step-icon-light.svg'\n : '/images/rebrand-last-step-icon-black.svg'\n \"\n />\n } @else {\n <div class=\"icon\">\n @if (icon) {\n <ui-icon [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\n } @else {\n {{ index + 1 }}\n }\n </div>\n }\n }\n\n <span class=\"label\">{{ label }}</span>\n </div>\n </div>\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgClass, AsyncPipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable } from 'rxjs';\n\nimport {\n ApplicationTheme,\n IS_MOBILE_TOKEN,\n IS_LARGE_TABLET_TOKEN,\n UiTranslatePipe,\n} from '@testgorilla/tgo-ui/components/core';\nimport { IconComponent } from '@testgorilla/tgo-ui/components/icon';\nimport { RadialProgressComponent } from '@testgorilla/tgo-ui/components/radial-progress';\n\nimport { StepLineElementDirective } from './step-line-element.directive';\nimport { StepComponent } from './step.component';\nimport { Step, StepperPosition, StepperVariation } from './stepper.model';\n\n@Component({\n selector: 'ui-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n StepComponent,\n StepLineElementDirective,\n IconComponent,\n RadialProgressComponent,\n AsyncPipe,\n UiTranslatePipe,\n ],\n})\nexport class StepperComponent implements AfterViewInit {\n /**\n *\n * Auto selects first step as visited\n * Defaults to true\n *\n * @memberof StepperComponent\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('firstStepAutoSelect') set setFirstStepAutoSelect(value: boolean) {\n this.firstStepAutoSelect = value;\n if (!this.firstStepAutoSelect) {\n this.itemSteps = this.itemSteps.map((step, i) => ({\n ...step,\n isVisited: i === 0 && this.selectedIndex === -1 ? false : step.isVisited,\n }));\n }\n }\n\n /**\n * Input property to set the steps for the stepper.\n * The first step will be marked as visited automatically.\n *\n * @memberof StepperComponent\n */\n @Input() set steps(itemSteps: Step[]) {\n this.itemSteps = itemSteps;\n if (itemSteps.length && this.firstStepAutoSelect) {\n const [first, ...other] = itemSteps;\n first.isVisited = true;\n this.itemSteps = [first, ...other];\n }\n }\n\n /**\n * Input property to set the selected index of the stepper.\n * Default value is 0.\n *\n * @memberof StepperComponent\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('selectedIndex') set setSelectedIndex(value: number) {\n this.selectedIndex = value;\n if (!this.firstStepAutoSelect) {\n this.itemSteps = this.itemSteps.map((step, i) => ({\n ...step,\n isVisited: i === 0 && this.selectedIndex === -1 ? false : step.isVisited,\n }));\n }\n }\n\n /**\n * Input property indicating whether the final icon should be displayed.\n * Default value is false.\n *\n * @memberof StepperComponent\n */\n @Input() lastStepFinalIcon = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof StepperComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof StepperComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * Defines the stepper position\n *\n * @type {StepperPosition}\n * @memberof StepperComponent\n */\n @Input() position: StepperPosition = 'horizontal';\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof StepperComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Selects the visual variant. 'primary' (the default) is the candidate\n * test-taking-flow style; 'secondary' is the newer company-side style\n * used in assessment/job creation wizards. Don't use the default in\n * company-side wizards.\n * @type {string}\n * @memberof StepperComponent\n */\n @Input() stepperVariant: StepperVariation = 'primary';\n\n @Input() testId: string | null = null;\n\n stepTestId(step: Step, index: number): string | null {\n if (step.testId) {\n return step.testId;\n }\n return this.testId ? `${this.testId}-${index + 1}` : null;\n }\n\n @Output() selectionChange = new EventEmitter<{ selectedIndex: number; previousIndex: number; step: Step }>();\n\n private isOpened = false;\n private firstStepAutoSelect = true;\n protected itemSteps: Step[] = [];\n protected progressValue = 0;\n protected translationContext = 'STEPPER.';\n protected selectedIndex = 0;\n\n get isOpen(): boolean {\n return this.isOpened;\n }\n\n set isOpen(value: boolean) {\n this.isOpened = value;\n }\n\n protected keyboardFocused = signal(false);\n\n @ViewChild('stepper') stepperElement: ElementRef<HTMLElement>;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>,\n @Inject(IS_LARGE_TABLET_TOKEN) protected readonly isLargeTablet$: Observable<boolean>,\n protected focusMonitor: FocusMonitor,\n protected destroyRef: DestroyRef\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngAfterViewInit(): void {\n this.subscriberFocus();\n }\n\n protected onSelect(changedIndex: number, step: Step): void {\n if (!step.isVisited && this.selectedIndex !== changedIndex) {\n step.isVisited = true;\n }\n this.selectionChange.emit({ selectedIndex: changedIndex, previousIndex: this.selectedIndex, step });\n\n this.selectedIndex = changedIndex;\n this.onCloseStepList();\n }\n\n protected showStepsToggle(): void {\n this.isOpen = !this.isOpen;\n\n setTimeout(() => {\n this.selectedStepFocus();\n });\n }\n\n protected onCloseStepList(): void {\n this.isOpen = false;\n }\n\n protected subscriberFocus(): void {\n if (!this.stepperElement) {\n return;\n }\n\n this.focusMonitor\n .monitor(this.stepperElement.nativeElement)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(origin => this.keyboardFocused.set(origin === 'keyboard'));\n }\n\n private selectedStepFocus(): void {\n const selectedElement = document.getElementById(`step-${this.selectedIndex}`);\n\n if (this.keyboardFocused() && this.isOpen && selectedElement) {\n this.focusMonitor.focusVia(selectedElement, 'keyboard');\n }\n }\n}\n","<ng-container>\n <div style=\"position: absolute; left: -99999px\" [attr.aria-live]=\"'polite'\">\n <span>\n {{ itemSteps[selectedIndex]?.label ?? '' }}\n {{\n translationContext + 'SELECTED_OF'\n | uiTranslate: { selected: (selectedIndex ?? 0) + 1, total: itemSteps?.length ?? 0 }\n | async\n }}\n {{\n itemSteps[selectedIndex]?.isVisited &&\n itemSteps.length <= (selectedIndex ?? 0) + 1 &&\n itemSteps[selectedIndex + 1]?.isVisited\n ? (translationContext + 'COMPLETED' | uiTranslate | async)\n : (translationContext + 'INCOMPLETE' | uiTranslate | async)\n }}\n </span>\n </div>\n\n @if ((position === 'horizontal' && (isMobile$ | async) === false) || position === 'vertical') {\n <div\n class=\"stepper-wrapper\"\n role=\"tablist\"\n [ngClass]=\"[position, stepperVariant === 'secondary' ? 'secondary-variant' : '']\"\n [attr.theme]=\"applicationTheme\"\n >\n @for (step of itemSteps; track step; let i = $index; let isLast = $last) {\n <div class=\"step\" #stepElement>\n <ui-step\n [label]=\"step.label\"\n [isVisited]=\"step.isVisited!\"\n [icon]=\"step.iconName\"\n [index]=\"i\"\n [selected]=\"i === selectedIndex\"\n [selectedIndex]=\"selectedIndex\"\n [isLast]=\"isLast\"\n [disabled]=\"step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)\"\n [prevStepIsVisited]=\"itemSteps[i - 1]?.isVisited && step.isVisited\"\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\n (stepSelected)=\"onSelect($event, step)\"\n [applicationTheme]=\"applicationTheme\"\n role=\"tab\"\n [attr.aria-controls]=\"'step-panel-' + i\"\n [attr.aria-selected]=\"i === selectedIndex\"\n [attr.aria-label]=\"step.label\"\n [attr.data-testid]=\"stepTestId(step, i)\"\n [attr.tabindex]=\"(step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)) ? -1 : 0\"\n [htmlDescription]=\"step.htmlDescription ?? []\"\n [boldLabel]=\"!!step.boldLabel\"\n [position]=\"position\"\n [descriptionTpl]=\"step.descriptionTpl\"\n [labelTooltip]=\"step.labelTooltip\"\n [alwaysShowIcon]=\"!!step.alwaysShowIcon\"\n [context]=\"step.context\"\n [stepVariant]=\"stepperVariant\"\n [largeTabletMode]=\"isLargeTablet$ | async\"\n ></ui-step>\n </div>\n @if (!isLast && stepperVariant === 'primary') {\n <div class=\"separator-line\" [ngClass]=\"{ visited: step.isVisited && !!itemSteps[i + 1]?.isVisited }\">\n <div [stepLineElement]=\"stepElement\" [position]=\"position\" class=\"line\"></div>\n </div>\n }\n @if (!isLast && stepperVariant === 'secondary') {\n <div class=\"separator-arrow\">\n <ui-icon class=\"separator-icon\" name=\"Arrow-chevron-right-in-line\" size=\"24\" color=\"gray\"></ui-icon>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"mobile-stepper-wrapper\">\n <div\n class=\"stepper\"\n tabindex=\"0\"\n #stepper\n role=\"button\"\n [ngClass]=\"{ 'keyboard-focused': keyboardFocused() }\"\n (keydown.enter)=\"showStepsToggle()\"\n (keydown.space)=\"showStepsToggle()\"\n [attr.aria-expanded]=\"isOpen\"\n >\n <div class=\"progress-step\" [tabindex]=\"-1\" [attr.aria-hidden]=\"true\">\n <ui-radial-progress\n [applicationTheme]=\"applicationTheme\"\n [value]=\"selectedIndex + 1\"\n [total]=\"itemSteps.length\"\n ></ui-radial-progress>\n </div>\n <div class=\"step-info\">\n <div class=\"current-step\">\n <span>{{ selectedIndex + 1 }}/{{ itemSteps.length }} </span>\n <span>{{ itemSteps[selectedIndex].label }}</span>\n </div>\n <div class=\"next-step\">\n @if (itemSteps.length !== selectedIndex + 1) {\n <span>{{ ('COMMON.NEXT' | uiTranslate | async) + ':' }} {{ itemSteps[selectedIndex + 1].label }}</span>\n } @else {\n <span>{{ translationContext + 'FINAL_STEP' | uiTranslate | async }}</span>\n }\n </div>\n </div>\n <div\n class=\"open-steps\"\n tabindex=\"0\"\n role=\"button\"\n (keydown.enter)=\"showStepsToggle()\"\n (click)=\"showStepsToggle()\"\n [ngClass]=\"{ opened: isOpen }\"\n [attr.data-testid]=\"testId ? testId + '-toggle' : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <ui-icon\n data-testid=\"ui-stepper-icon\"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n </div>\n </div>\n @if (isOpen) {\n <div>\n <div class=\"step-list\">\n @for (step of itemSteps; track step; let i = $index; let isLast = $last) {\n <div class=\"step\">\n <ui-step\n [label]=\"step.label\"\n [isVisited]=\"step.isVisited!\"\n [icon]=\"step.iconName\"\n [index]=\"i\"\n [selected]=\"i === selectedIndex\"\n [selectedIndex]=\"selectedIndex\"\n [isLast]=\"isLast\"\n [disabled]=\"step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)\"\n [mobileMode]=\"true\"\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\n (stepSelected)=\"onSelect($event, step)\"\n [applicationTheme]=\"applicationTheme\"\n [attr.aria-label]=\"ariaLabel + '--' + step.label\"\n [attr.data-testid]=\"stepTestId(step, i)\"\n [stepVariant]=\"stepperVariant\"\n ></ui-step>\n </div>\n }\n </div>\n <div\n class=\"overlay\"\n tabindex=\"0\"\n role=\"button\"\n (keydown.enter)=\"onCloseStepList()\"\n (click)=\"onCloseStepList()\"\n ></div>\n </div>\n }\n </div>\n }\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { TooltipComponentModule } from '@testgorilla/tgo-ui/components/tooltip';\n\nimport { StepComponent } from './step.component';\n\n@NgModule({\n imports: [CommonModule, IconComponentModule, MatTooltipModule, TooltipComponentModule, StepComponent],\n exports: [StepComponent],\n})\nexport class StepComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { RadialProgressComponentModule } from '@testgorilla/tgo-ui/components/radial-progress';\n\nimport { StepLineElementDirective } from './step-line-element.directive';\nimport { StepComponentModule } from './step.component.module';\nimport { StepperComponent } from './stepper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n IconComponentModule,\n StepComponentModule,\n MatProgressSpinnerModule,\n RadialProgressComponentModule,\n UiTranslatePipe,\n MatInputModule,\n StepperComponent,\n StepLineElementDirective,\n ],\n exports: [StepperComponent],\n})\nexport class StepperComponentModule {}\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-stepper.mjs","names":["i2"],"sources":["../../../components/stepper/step-line-element.directive.ts","../../../components/stepper/step.component.ts","../../../components/stepper/step.component.html","../../../components/stepper/stepper.component.ts","../../../components/stepper/stepper.component.html","../../../components/stepper/step.component.module.ts","../../../components/stepper/stepper.component.module.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, Input, OnChanges } from '@angular/core';\n\nimport { StepperPosition } from './stepper.model';\n\nconst MARGINS = 36;\nconst PADDING = 16;\n\n/**\n * Directive is used to draw lines between steps\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector -- public directive selector; ui-prefix rename is breaking, deferred to the breaking-change MAJOR (see plan)\n selector: '[stepLineElement]',\n})\nexport class StepLineElementDirective implements OnChanges {\n @Input() stepLineElement: HTMLElement;\n @Input() position: StepperPosition = 'horizontal';\n\n @HostListener('window:resize.out-zone')\n resize(): void {\n this.setSize();\n }\n\n constructor(private readonly el: ElementRef<HTMLElement>) {}\n\n setSize(): void {\n if (this.position === 'horizontal') {\n this.el.nativeElement.style.width = `calc(100% + ${this.stepLineElement.getBoundingClientRect().width / 2 - PADDING}px)`;\n this.el.nativeElement.style.height = `0`;\n this.el.nativeElement.style.top = '45px';\n this.el.nativeElement.style.left = `-${this.stepLineElement.getBoundingClientRect().width / 2 - MARGINS}px`;\n } else {\n this.el.nativeElement.style.height = `calc(100% + ${this.stepLineElement.getBoundingClientRect().height / 2 - PADDING}px)`;\n this.el.nativeElement.style.width = '0';\n this.el.nativeElement.style.top = `-${this.stepLineElement.getBoundingClientRect().height / 2 - 30}px`;\n this.el.nativeElement.style.left = '34px';\n }\n }\n\n ngOnChanges(): void {\n queueMicrotask(() => {\n this.setSize();\n });\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nimport { ApplicationTheme, IKeyboardEvent } from '@testgorilla/tgo-ui/components/core';\nimport { IconName, IconComponent } from '@testgorilla/tgo-ui/components/icon';\nimport { TooltipPositionType, TooltipComponentModule } from '@testgorilla/tgo-ui/components/tooltip';\n\nimport { HtmlDescription, StepperPosition, StepperVariation } from './stepper.model';\n\n@Component({\n selector: 'ui-step',\n templateUrl: './step.component.html',\n styleUrls: ['./step.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TooltipComponentModule, NgClass, IconComponent, MatTooltip, NgTemplateOutlet],\n})\nexport class StepComponent implements AfterViewInit {\n /**\n * Input property for the label of the step.\n *\n * @memberof StepComponent\n */\n @Input() label: string;\n\n /**\n * Input property indicating whether the step has been visited.\n *\n * @memberof StepComponent\n */\n @Input() isVisited: boolean;\n\n /**\n * Input property indicating whether the form has been submitted.\n *\n * @memberof StepComponent\n */\n @Input() submitted: boolean;\n\n /**\n * Input property for the icon associated with the step.\n *\n * @memberof StepComponent\n */\n @Input() icon: IconName | undefined = '';\n\n /**\n * Input property for the index of the step.\n *\n * @memberof StepComponent\n */\n @Input() index: number;\n\n /**\n * Input property indicating whether the step is currently selected.\n *\n * @memberof StepComponent\n */\n @Input() selected: boolean;\n\n /**\n * Input property indicating whether the step is the last step in the stepper.\n *\n * @memberof StepComponent\n */\n @Input() isLast: boolean;\n\n /**\n * Input property indicating the selected index in the stepper.\n *\n * @memberof StepComponent\n */\n @Input() selectedIndex: number;\n\n /**\n * Input property indicating whether the step is disabled.\n *\n * @memberof StepComponent\n */\n @Input() disabled = false;\n\n /**\n * Input property indicating whether the previous step has been visited.\n *\n * @memberof StepComponent\n */\n @Input() prevStepIsVisited: boolean | undefined = false;\n\n /**\n * Input property indicating whether the component is in mobile mode.\n *\n * @memberof StepComponent\n */\n @Input() mobileMode = false;\n\n /**\n * Input property indicating whether the component is in large tablet mode.\n *\n * @memberof StepComponent\n */\n @Input() largeTabletMode: boolean | null = false;\n\n /**\n * Input property indicating whether the final icon should be displayed.\n *\n * @memberof StepComponent\n */\n @Input() finalIcon = false;\n\n /**\n * Input property indicating to display icon when step is selected.\n *\n * @memberof StepComponent\n */\n @Input() showIconWhenSelected = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof StepComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n *\n * Defines the stepper position\n *\n * @type {StepperPosition}\n * @memberof StepComponent\n */\n @Input() position: StepperPosition;\n\n /**\n *\n * Step description\n *\n * @type {HtmlDescription[]}\n * @memberof StepComponent\n */\n @Input() htmlDescription: HtmlDescription[] = [];\n\n /**\n *\n * Sets bold font weight for label\n *\n * @type {boolean}\n * @memberof StepComponent\n */\n @Input() boldLabel = false;\n\n /**\n *\n * Template for the step description\n *\n * @type {TemplateRef}\n * @memberof StepComponent\n */\n @Input() descriptionTpl?: TemplateRef<unknown>;\n\n /**\n *\n * Tooltip for the step label\n *\n * @type {string}\n * @memberof StepComponent\n */\n @Input() labelTooltip?: string;\n\n /**\n *\n * Always show step icon instead of number\n *\n * @type {boolean}\n * @memberof StepComponent\n */\n @Input() alwaysShowIcon = false;\n\n /**\n *\n * Context for the step template\n *\n * @type {any}\n * @memberof StepComponent\n */\n @Input() context: unknown;\n\n /**\n * A string representing the step variant.\n * This attribute is used to indicate the variant that should be used.\n * @type {string}\n * @memberof StepComponent\n */\n @Input() stepVariant: StepperVariation = 'primary';\n\n /**\n * Event emitted when the step was clicked.\n * @type {number}\n * @memberof StepComponent\n */\n @Output() stepSelected = new EventEmitter<number>();\n\n @ViewChild('step') stepElement: ElementRef<HTMLElement>;\n\n protected readonly TooltipPositionType = TooltipPositionType;\n\n protected keyboardFocused = signal(false);\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n private readonly focusMonitor: FocusMonitor,\n private readonly destroyRef: DestroyRef\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngAfterViewInit() {\n this.subscriberFocus();\n }\n\n protected get hasLastStepDefaultIcon(): boolean {\n return !this.showIconWhenSelected || (this.showIconWhenSelected && !this.selected);\n }\n\n protected onStepSelected(index: number): void {\n if (!this.disabled) {\n this.stepSelected.emit(index);\n }\n }\n\n protected subscriberFocus(): void {\n this.focusMonitor\n .monitor(this.stepElement.nativeElement)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(origin => this.keyboardFocused.set(origin === 'keyboard'));\n }\n\n onKeydown($event: KeyboardEvent): void {\n if ($event.key === (IKeyboardEvent.ENTER as string) || $event.key === (IKeyboardEvent.SPACE as string)) {\n this.onStepSelected(this.index);\n } else if ($event.key === (IKeyboardEvent.ARROW_UP as string)) {\n const prevIndex = this.index - 1;\n const prevElement = document.getElementById(`step-${prevIndex}`);\n\n if (!prevElement) {\n return;\n }\n this.focusMonitor.focusVia(prevElement, 'keyboard');\n } else if ($event.key === (IKeyboardEvent.ARROW_DOWN as string)) {\n const nextIndex = this.index + 1;\n const nextElement = document.getElementById(`step-${nextIndex}`);\n\n if (!nextElement) {\n return;\n }\n this.focusMonitor.focusVia(nextElement, 'keyboard');\n }\n }\n}\n","@if (!mobileMode) {\n <ui-tooltip\n [message]=\"stepVariant === 'secondary' && largeTabletMode ? label : ''\"\n [position]=\"TooltipPositionType.BOTTOM\"\n >\n <div\n class=\"step-container\"\n #step\n tabindex=\"0\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n role=\"button\"\n [ngClass]=\"{\n 'secondary-step-variant': stepVariant === 'secondary',\n 'visited-next': isVisited && index > selectedIndex,\n 'visited-prev': isVisited && index < selectedIndex,\n active: selected,\n 'last-step': finalIcon && hasLastStepDefaultIcon && !alwaysShowIcon,\n disabled: disabled,\n vertical: position === 'vertical',\n 'keyboard-focused': keyboardFocused(),\n }\"\n [attr.theme]=\"applicationTheme\"\n (keydown.enter)=\"onStepSelected(index)\"\n (keydown.space)=\"$event.preventDefault(); onStepSelected(index)\"\n (click)=\"onStepSelected(index)\"\n >\n <div class=\"step-icon\">\n @if (index && stepVariant === 'primary') {\n <div class=\"line\" [ngClass]=\"{ visited: prevStepIsVisited }\"></div>\n }\n\n @if (!finalIcon) {\n <div class=\"icon-wrapper\">\n @switch (true) {\n @case (isVisited && !selected && !alwaysShowIcon) {\n <ui-icon\n size=\"24\"\n [name]=\"stepVariant === 'secondary' ? 'Check-small-filled' : 'Check'\"\n [color]=\"\n (isVisited && index < selectedIndex) || stepVariant === 'secondary'\n ? 'white'\n : applicationTheme === 'classic'\n ? 'petrol'\n : 'rebrand-black'\n \"\n ></ui-icon>\n }\n @case ((selected && !!icon) || alwaysShowIcon) {\n <ui-icon\n [size]=\"'24'\"\n [name]=\"icon!\"\n [color]=\"isLast && !selected ? 'rebrand-black' : 'white'\"\n ></ui-icon>\n }\n @default {\n {{ index + 1 }}\n }\n }\n </div>\n } @else {\n @if (hasLastStepDefaultIcon && !alwaysShowIcon) {\n <img\n [alt]=\"'step-finish-image'\"\n [attr.src]=\"\n applicationTheme === 'classic'\n ? '/images/step-finish.svg'\n : isVisited\n ? '/images/rebrand-last-step-icon-light.svg'\n : '/images/rebrand-last-step-icon-black.svg'\n \"\n />\n } @else {\n <div class=\"icon-wrapper\">\n @if (icon || (icon && alwaysShowIcon)) {\n <ui-icon [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\n } @else {\n {{ index + 1 }}\n }\n </div>\n }\n }\n </div>\n\n <div class=\"steps-label\">\n @if (label) {\n <div class=\"step-label\" [ngClass]=\"{ 'step-bold-label': boldLabel }\" [matTooltip]=\"labelTooltip ?? ''\">\n {{ label }}\n </div>\n }\n\n <div class=\"step-description-container\">\n @for (description of htmlDescription; track description) {\n <div class=\"step-description\">\n <div>{{ description.text }}</div>\n @if (description.iconName) {\n <ui-icon\n [name]=\"description.iconName\"\n [size]=\"'24'\"\n [matTooltip]=\"description.iconTooltip ?? ''\"\n ></ui-icon>\n }\n </div>\n }\n </div>\n\n @if (descriptionTpl) {\n <ng-container\n [ngTemplateOutlet]=\"descriptionTpl\"\n [ngTemplateOutletContext]=\"{\n $implicit: context,\n label,\n isVisited,\n submitted,\n index,\n selected,\n isLast,\n selectedIndex,\n disabled,\n prevStepIsVisited,\n mobileMode,\n finalIcon,\n showIconWhenSelected,\n position,\n }\"\n ></ng-container>\n }\n </div>\n </div>\n </ui-tooltip>\n} @else {\n <div\n class=\"mobile-step-container\"\n #step\n tabindex=\"0\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [ngClass]=\"{\n 'secondary-step-variant': stepVariant === 'secondary',\n active: selected,\n disabled: disabled,\n visited: isVisited,\n 'keyboard-focused': keyboardFocused(),\n }\"\n (keydown)=\"onKeydown($event)\"\n (keydown.enter)=\"onStepSelected(index)\"\n (click)=\"onStepSelected(index)\"\n [attr.theme]=\"applicationTheme\"\n role=\"tab\"\n [attr.aria-selected]=\"selected\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n [attr.aria-controls]=\"index\"\n [id]=\"'step-' + index\"\n >\n <div class=\"step\">\n @if (!finalIcon) {\n <div class=\"icon\">\n @switch (true) {\n @case (isVisited && !selected) {\n <ui-icon [size]=\"'16'\" [name]=\"'Check'\" [color]=\"'white'\"></ui-icon>\n }\n @case (selected && !!icon) {\n <ui-icon [size]=\"'16'\" [name]=\"icon!\" [color]=\"'white'\"></ui-icon>\n }\n @default {\n {{ index + 1 }}\n }\n }\n </div>\n } @else {\n @if (hasLastStepDefaultIcon) {\n <img\n [alt]=\"'step-finish-image'\"\n [width]=\"24\"\n [height]=\"24\"\n [attr.src]=\"\n applicationTheme === 'classic'\n ? '/images/step-finish.svg'\n : isVisited\n ? '/images/rebrand-last-step-icon-light.svg'\n : '/images/rebrand-last-step-icon-black.svg'\n \"\n />\n } @else {\n <div class=\"icon\">\n @if (icon) {\n <ui-icon [size]=\"'24'\" [name]=\"icon\" [color]=\"'white'\"></ui-icon>\n } @else {\n {{ index + 1 }}\n }\n </div>\n }\n }\n\n <span class=\"label\">{{ label }}</span>\n </div>\n </div>\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgClass, AsyncPipe } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable } from 'rxjs';\n\nimport {\n ApplicationTheme,\n IS_MOBILE_TOKEN,\n IS_LARGE_TABLET_TOKEN,\n UiTranslatePipe,\n} from '@testgorilla/tgo-ui/components/core';\nimport { IconComponent } from '@testgorilla/tgo-ui/components/icon';\nimport { RadialProgressComponent } from '@testgorilla/tgo-ui/components/radial-progress';\n\nimport { StepLineElementDirective } from './step-line-element.directive';\nimport { StepComponent } from './step.component';\nimport { Step, StepperPosition, StepperVariation } from './stepper.model';\n\n@Component({\n selector: 'ui-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n StepComponent,\n StepLineElementDirective,\n IconComponent,\n RadialProgressComponent,\n AsyncPipe,\n UiTranslatePipe,\n ],\n})\nexport class StepperComponent implements AfterViewInit {\n /**\n *\n * Auto selects first step as visited\n * Defaults to true\n *\n * @memberof StepperComponent\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('firstStepAutoSelect') set setFirstStepAutoSelect(value: boolean) {\n this.firstStepAutoSelect = value;\n if (!this.firstStepAutoSelect) {\n this.itemSteps = this.itemSteps.map((step, i) => ({\n ...step,\n isVisited: i === 0 && this.selectedIndex === -1 ? false : step.isVisited,\n }));\n }\n }\n\n /**\n * Input property to set the steps for the stepper.\n * The first step will be marked as visited automatically.\n *\n * @memberof StepperComponent\n */\n @Input() set steps(itemSteps: Step[]) {\n this.itemSteps = itemSteps;\n if (itemSteps.length && this.firstStepAutoSelect) {\n const [first, ...other] = itemSteps;\n first.isVisited = true;\n this.itemSteps = [first, ...other];\n }\n }\n\n /**\n * Input property to set the selected index of the stepper.\n * Default value is 0.\n *\n * @memberof StepperComponent\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('selectedIndex') set setSelectedIndex(value: number) {\n this.selectedIndex = value;\n if (!this.firstStepAutoSelect) {\n this.itemSteps = this.itemSteps.map((step, i) => ({\n ...step,\n isVisited: i === 0 && this.selectedIndex === -1 ? false : step.isVisited,\n }));\n }\n }\n\n /**\n * Input property indicating whether the final icon should be displayed.\n * Default value is false.\n *\n * @memberof StepperComponent\n */\n @Input() lastStepFinalIcon = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof StepperComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof StepperComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * Defines the stepper position\n *\n * @type {StepperPosition}\n * @memberof StepperComponent\n */\n @Input() position: StepperPosition = 'horizontal';\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof StepperComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Selects the visual variant. 'primary' (the default) is the candidate\n * test-taking-flow style; 'secondary' is the newer company-side style\n * used in assessment/job creation wizards. Don't use the default in\n * company-side wizards.\n * @type {string}\n * @memberof StepperComponent\n */\n @Input() stepperVariant: StepperVariation = 'primary';\n\n @Input() testId: string | null = null;\n\n stepTestId(step: Step, index: number): string | null {\n if (step.testId) {\n return step.testId;\n }\n return this.testId ? `${this.testId}-${index + 1}` : null;\n }\n\n @Output() selectionChange = new EventEmitter<{ selectedIndex: number; previousIndex: number; step: Step }>();\n\n private isOpened = false;\n private firstStepAutoSelect = true;\n protected itemSteps: Step[] = [];\n protected progressValue = 0;\n protected translationContext = 'STEPPER.';\n protected selectedIndex = 0;\n\n get isOpen(): boolean {\n return this.isOpened;\n }\n\n set isOpen(value: boolean) {\n this.isOpened = value;\n }\n\n protected keyboardFocused = signal(false);\n\n @ViewChild('stepper') stepperElement: ElementRef<HTMLElement>;\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme,\n @Inject(IS_MOBILE_TOKEN) protected readonly isMobile$: Observable<boolean>,\n @Inject(IS_LARGE_TABLET_TOKEN) protected readonly isLargeTablet$: Observable<boolean>,\n protected focusMonitor: FocusMonitor,\n protected destroyRef: DestroyRef\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngAfterViewInit(): void {\n this.subscriberFocus();\n }\n\n protected onSelect(changedIndex: number, step: Step): void {\n if (!step.isVisited && this.selectedIndex !== changedIndex) {\n step.isVisited = true;\n }\n this.selectionChange.emit({ selectedIndex: changedIndex, previousIndex: this.selectedIndex, step });\n\n this.selectedIndex = changedIndex;\n this.onCloseStepList();\n }\n\n protected showStepsToggle(): void {\n this.isOpen = !this.isOpen;\n\n setTimeout(() => {\n this.selectedStepFocus();\n });\n }\n\n protected onCloseStepList(): void {\n this.isOpen = false;\n }\n\n protected subscriberFocus(): void {\n if (!this.stepperElement) {\n return;\n }\n\n this.focusMonitor\n .monitor(this.stepperElement.nativeElement)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(origin => this.keyboardFocused.set(origin === 'keyboard'));\n }\n\n private selectedStepFocus(): void {\n const selectedElement = document.getElementById(`step-${this.selectedIndex}`);\n\n if (this.keyboardFocused() && this.isOpen && selectedElement) {\n this.focusMonitor.focusVia(selectedElement, 'keyboard');\n }\n }\n}\n","<ng-container>\n <div style=\"position: absolute; left: -99999px\" [attr.aria-live]=\"'polite'\">\n <span>\n {{ itemSteps[selectedIndex]?.label ?? '' }}\n {{\n translationContext + 'SELECTED_OF'\n | uiTranslate: { selected: (selectedIndex ?? 0) + 1, total: itemSteps?.length ?? 0 }\n | async\n }}\n {{\n itemSteps[selectedIndex]?.isVisited &&\n itemSteps.length <= (selectedIndex ?? 0) + 1 &&\n itemSteps[selectedIndex + 1]?.isVisited\n ? (translationContext + 'COMPLETED' | uiTranslate | async)\n : (translationContext + 'INCOMPLETE' | uiTranslate | async)\n }}\n </span>\n </div>\n\n @if ((position === 'horizontal' && (isMobile$ | async) === false) || position === 'vertical') {\n <div\n class=\"stepper-wrapper\"\n role=\"tablist\"\n [ngClass]=\"[position, stepperVariant === 'secondary' ? 'secondary-variant' : '']\"\n [attr.theme]=\"applicationTheme\"\n >\n @for (step of itemSteps; track step; let i = $index; let isLast = $last) {\n <div class=\"step\" #stepElement>\n <ui-step\n [label]=\"step.label\"\n [isVisited]=\"step.isVisited!\"\n [icon]=\"step.iconName\"\n [index]=\"i\"\n [selected]=\"i === selectedIndex\"\n [selectedIndex]=\"selectedIndex\"\n [isLast]=\"isLast\"\n [disabled]=\"step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)\"\n [prevStepIsVisited]=\"itemSteps[i - 1]?.isVisited && step.isVisited\"\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\n (stepSelected)=\"onSelect($event, step)\"\n [applicationTheme]=\"applicationTheme\"\n role=\"tab\"\n [attr.aria-controls]=\"'step-panel-' + i\"\n [attr.aria-selected]=\"i === selectedIndex\"\n [attr.aria-label]=\"step.label\"\n [attr.data-testid]=\"stepTestId(step, i)\"\n [attr.tabindex]=\"(step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)) ? -1 : 0\"\n [htmlDescription]=\"step.htmlDescription ?? []\"\n [boldLabel]=\"!!step.boldLabel\"\n [position]=\"position\"\n [descriptionTpl]=\"step.descriptionTpl\"\n [labelTooltip]=\"step.labelTooltip\"\n [alwaysShowIcon]=\"!!step.alwaysShowIcon\"\n [context]=\"step.context\"\n [stepVariant]=\"stepperVariant\"\n [largeTabletMode]=\"isLargeTablet$ | async\"\n ></ui-step>\n </div>\n @if (!isLast && stepperVariant === 'primary') {\n <div class=\"separator-line\" [ngClass]=\"{ visited: step.isVisited && !!itemSteps[i + 1]?.isVisited }\">\n <div [stepLineElement]=\"stepElement\" [position]=\"position\" class=\"line\"></div>\n </div>\n }\n @if (!isLast && stepperVariant === 'secondary') {\n <div class=\"separator-arrow\">\n <ui-icon class=\"separator-icon\" name=\"Arrow-chevron-right-in-line\" size=\"24\" color=\"gray\"></ui-icon>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"mobile-stepper-wrapper\">\n <div\n class=\"stepper\"\n tabindex=\"0\"\n #stepper\n role=\"button\"\n [ngClass]=\"{ 'keyboard-focused': keyboardFocused() }\"\n (keydown.enter)=\"showStepsToggle()\"\n (keydown.space)=\"showStepsToggle()\"\n [attr.aria-expanded]=\"isOpen\"\n >\n <div class=\"progress-step\" [tabindex]=\"-1\" [attr.aria-hidden]=\"true\">\n <ui-radial-progress\n [applicationTheme]=\"applicationTheme\"\n [value]=\"selectedIndex + 1\"\n [total]=\"itemSteps.length\"\n ></ui-radial-progress>\n </div>\n <div class=\"step-info\">\n <div class=\"current-step\">\n <span>{{ selectedIndex + 1 }}/{{ itemSteps.length }} </span>\n <span>{{ itemSteps[selectedIndex].label }}</span>\n </div>\n <div class=\"next-step\">\n @if (itemSteps.length !== selectedIndex + 1) {\n <span>{{ ('COMMON.NEXT' | uiTranslate | async) + ':' }} {{ itemSteps[selectedIndex + 1].label }}</span>\n } @else {\n <span>{{ translationContext + 'FINAL_STEP' | uiTranslate | async }}</span>\n }\n </div>\n </div>\n <div\n class=\"open-steps\"\n tabindex=\"0\"\n role=\"button\"\n (keydown.enter)=\"showStepsToggle()\"\n (click)=\"showStepsToggle()\"\n [ngClass]=\"{ opened: isOpen }\"\n [attr.data-testid]=\"testId ? testId + '-toggle' : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <ui-icon\n data-testid=\"ui-stepper-icon\"\n [applicationTheme]=\"applicationTheme\"\n [size]=\"'24'\"\n [name]=\"applicationTheme === 'classic' ? 'Arrow_down' : 'Arrow-chevron-down-in-line'\"\n ></ui-icon>\n </div>\n </div>\n @if (isOpen) {\n <div>\n <div class=\"step-list\">\n @for (step of itemSteps; track step; let i = $index; let isLast = $last) {\n <div class=\"step\">\n <ui-step\n [label]=\"step.label\"\n [isVisited]=\"step.isVisited!\"\n [icon]=\"step.iconName\"\n [index]=\"i\"\n [selected]=\"i === selectedIndex\"\n [selectedIndex]=\"selectedIndex\"\n [isLast]=\"isLast\"\n [disabled]=\"step.disabled ?? (i > selectedIndex + 1 && !step.isVisited)\"\n [mobileMode]=\"true\"\n [finalIcon]=\"isLast ? lastStepFinalIcon : false\"\n [showIconWhenSelected]=\"!!step.showIconWhenSelected\"\n (stepSelected)=\"onSelect($event, step)\"\n [applicationTheme]=\"applicationTheme\"\n [attr.aria-label]=\"ariaLabel + '--' + step.label\"\n [attr.data-testid]=\"stepTestId(step, i)\"\n [stepVariant]=\"stepperVariant\"\n ></ui-step>\n </div>\n }\n </div>\n <div\n class=\"overlay\"\n tabindex=\"0\"\n role=\"button\"\n (keydown.enter)=\"onCloseStepList()\"\n (click)=\"onCloseStepList()\"\n ></div>\n </div>\n }\n </div>\n }\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { TooltipComponentModule } from '@testgorilla/tgo-ui/components/tooltip';\n\nimport { StepComponent } from './step.component';\n\n@NgModule({\n imports: [CommonModule, IconComponentModule, MatTooltipModule, TooltipComponentModule, StepComponent],\n exports: [StepComponent],\n})\nexport class StepComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { RadialProgressComponentModule } from '@testgorilla/tgo-ui/components/radial-progress';\n\nimport { StepLineElementDirective } from './step-line-element.directive';\nimport { StepComponentModule } from './step.component.module';\nimport { StepperComponent } from './stepper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n IconComponentModule,\n StepComponentModule,\n MatProgressSpinnerModule,\n RadialProgressComponentModule,\n UiTranslatePipe,\n MatInputModule,\n StepperComponent,\n StepLineElementDirective,\n ],\n exports: [StepperComponent],\n})\nexport class StepperComponentModule {}\n"],"mappings":"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"}