@testgorilla/tgo-ui 5.2.4 → 6.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 (42) hide show
  1. package/components/ai-audio-circle/ai-audio-circle.component.d.ts +2 -1
  2. package/components/alert-banner/alert-banner.component.d.ts +4 -8
  3. package/components/autocomplete/autocomplete.component.d.ts +4 -6
  4. package/components/card/card.component.d.ts +12 -7
  5. package/components/card/card.model.d.ts +1 -0
  6. package/components/checklist/checklist.component.d.ts +1 -2
  7. package/components/datepicker/datepicker.component.d.ts +3 -5
  8. package/components/dialog/confirm-dialog/confirm-dialog.component.d.ts +3 -5
  9. package/components/empty-state/empty-state.component.d.ts +1 -4
  10. package/components/field/field.component.d.ts +4 -4
  11. package/components/media-dialog/media-dialog.component.d.ts +2 -4
  12. package/components/phone-input/phone-input.component.d.ts +4 -6
  13. package/components/snackbar/snackbar.component.d.ts +3 -5
  14. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +16 -5
  15. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
  16. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +1 -1
  17. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
  18. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +16 -24
  19. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
  20. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +19 -21
  21. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
  22. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +20 -12
  23. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
  24. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +2 -6
  25. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
  26. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +13 -15
  27. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
  28. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +4 -8
  29. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
  30. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +9 -16
  31. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
  32. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +3 -5
  33. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
  34. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +9 -11
  35. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
  36. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +13 -15
  37. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
  38. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +1 -1
  39. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
  40. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +11 -13
  41. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
  42. package/package.json +29 -29
@@ -11,6 +11,7 @@ export declare class AiAudioCircleComponent implements OnDestroy, AfterViewInit
11
11
  candidateAudioTrack: import("@angular/core").InputSignal<MediaStreamTrack | undefined>;
12
12
  state: import("@angular/core").ModelSignal<InterviewState>;
13
13
  canvasSize: import("@angular/core").InputSignal<number>;
14
+ animated: import("@angular/core").InputSignal<boolean>;
14
15
  isSpeaking: WritableSignal<boolean>;
15
16
  scaleValue: WritableSignal<number>;
16
17
  audioContext?: AudioContext;
@@ -55,5 +56,5 @@ export declare class AiAudioCircleComponent implements OnDestroy, AfterViewInit
55
56
  private cleanup;
56
57
  ngOnDestroy(): void;
57
58
  static ɵfac: i0.ɵɵFactoryDeclaration<AiAudioCircleComponent, never>;
58
- static ɵcmp: i0.ɵɵComponentDeclaration<AiAudioCircleComponent, "ui-ai-audio-circle", never, { "audioTrack": { "alias": "audioTrack"; "required": false; "isSignal": true; }; "candidateAudioTrack": { "alias": "candidateAudioTrack"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": false; "isSignal": true; }; }, { "state": "stateChange"; }, never, never, false, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<AiAudioCircleComponent, "ui-ai-audio-circle", never, { "audioTrack": { "alias": "audioTrack"; "required": false; "isSignal": true; }; "candidateAudioTrack": { "alias": "candidateAudioTrack"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; }, { "state": "stateChange"; }, never, never, false, never>;
59
60
  }
@@ -1,5 +1,4 @@
1
1
  import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
3
2
  import { IconName } from '@testgorilla/tgo-ui/components/icon';
4
3
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
5
4
  import { AlertBarType, AlertVariant } from '@testgorilla/tgo-ui/components/core';
@@ -7,8 +6,7 @@ import { LinkTargetType } from './alert-banner.model';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class AlertBannerComponent implements OnInit, OnChanges {
9
8
  private readonly defaultAppTheme;
10
- private domSanitizer;
11
- constructor(defaultAppTheme: ApplicationTheme, domSanitizer: DomSanitizer);
9
+ constructor(defaultAppTheme: ApplicationTheme);
12
10
  /**
13
11
  * Alert Banner type
14
12
  *
@@ -30,7 +28,7 @@ export declare class AlertBannerComponent implements OnInit, OnChanges {
30
28
  *
31
29
  * @memberof AlertBannerComponent
32
30
  */
33
- set message(msg: string);
31
+ message: string;
34
32
  /**
35
33
  * Include dismmiss button
36
34
  *
@@ -113,20 +111,18 @@ export declare class AlertBannerComponent implements OnInit, OnChanges {
113
111
  * @memberof AlertBannerComponent
114
112
  */
115
113
  ariaDescribedby: string;
116
- set secondaryAlerts(alerts: string[]);
114
+ secondaryAlerts: string[];
117
115
  get isDismissed(): boolean;
118
116
  iconName: IconName;
119
117
  visible: boolean;
120
118
  fullWidth: boolean;
121
119
  position: string;
122
120
  cssClass: string;
123
- _message: SafeHtml;
124
- _secondaryAlerts: SafeHtml[];
125
121
  dismissAlertBanner: boolean;
126
122
  ngOnInit(): void;
127
123
  ngOnChanges(changes: SimpleChanges): void;
128
124
  private updateBanner;
129
125
  dismissClick(): void;
130
- static ɵfac: i0.ɵɵFactoryDeclaration<AlertBannerComponent, [{ optional: true; }, null]>;
126
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlertBannerComponent, [{ optional: true; }]>;
131
127
  static ɵcmp: i0.ɵɵComponentDeclaration<AlertBannerComponent, "ui-alert-banner", never, { "alertType": { "alias": "alertType"; "required": false; }; "alertVariant": { "alias": "alertVariant"; "required": false; }; "message": { "alias": "message"; "required": false; }; "includeDismissButton": { "alias": "includeDismissButton"; "required": false; }; "shadow": { "alias": "shadow"; "required": false; }; "linkText": { "alias": "linkText"; "required": false; }; "linkUrl": { "alias": "linkUrl"; "required": false; }; "linkTarget": { "alias": "linkTarget"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "isFullWidth": { "alias": "isFullWidth"; "required": false; }; "closeButtonTooltip": { "alias": "closeButtonTooltip"; "required": false; }; "hasIcon": { "alias": "hasIcon"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "secondaryAlerts": { "alias": "secondaryAlerts"; "required": false; }; }, {}, never, never, false, never>;
132
128
  }
@@ -3,7 +3,6 @@ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
3
3
  import { AfterViewInit, ChangeDetectorRef, DestroyRef, DoCheck, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
4
4
  import { ControlValueAccessor, NgControl } from '@angular/forms';
5
5
  import { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';
6
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
7
6
  import { BehaviorSubject, ReplaySubject, Subscription } from 'rxjs';
8
7
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
9
8
  import { AutocompleteUtils } from '@testgorilla/tgo-ui/components/core';
@@ -12,7 +11,6 @@ import * as i0 from "@angular/core";
12
11
  export declare class AutocompleteComponent implements ControlValueAccessor, OnChanges, AfterViewInit, DoCheck, OnDestroy {
13
12
  private readonly defaultAppTheme;
14
13
  private readonly cdr;
15
- private readonly domSanitizer;
16
14
  ngControl: NgControl;
17
15
  private readonly platformId;
18
16
  private readonly el;
@@ -253,7 +251,7 @@ export declare class AutocompleteComponent implements ControlValueAccessor, OnCh
253
251
  set cdkVirtualScrollViewport(viewport: CdkVirtualScrollViewport);
254
252
  matAutocomplete: MatAutocomplete;
255
253
  matInput: ElementRef<HTMLInputElement>;
256
- protected safeErrors: SafeHtml[];
254
+ protected safeErrors: string[];
257
255
  protected value: any;
258
256
  protected inputValue: any;
259
257
  protected isInputFocus: boolean;
@@ -279,7 +277,7 @@ export declare class AutocompleteComponent implements ControlValueAccessor, OnCh
279
277
  private observer;
280
278
  protected keyboardFocused: import("@angular/core").WritableSignal<boolean>;
281
279
  isAlreadyAdded: boolean;
282
- constructor(defaultAppTheme: ApplicationTheme, cdr: ChangeDetectorRef, domSanitizer: DomSanitizer, ngControl: NgControl, platformId: any, el: ElementRef, focusMonitor: FocusMonitor, destroyRef: DestroyRef, ngZone: NgZone);
280
+ constructor(defaultAppTheme: ApplicationTheme, cdr: ChangeDetectorRef, ngControl: NgControl, platformId: any, el: ElementRef, focusMonitor: FocusMonitor, destroyRef: DestroyRef, ngZone: NgZone);
283
281
  ngOnInit(): void;
284
282
  /**
285
283
  * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors
@@ -311,7 +309,7 @@ export declare class AutocompleteComponent implements ControlValueAccessor, OnCh
311
309
  protected get isDropdown(): boolean;
312
310
  protected onChevronClick(autocomplete: MatAutocomplete): void;
313
311
  protected get inputWidth(): number;
314
- protected trackByFn: (index: number, value: any) => any;
312
+ protected trackByFn: (index: number, value: string) => string;
315
313
  /**
316
314
  * Adding company color variable to the body to style overlay container that's out of the component scope.
317
315
  */
@@ -320,7 +318,7 @@ export declare class AutocompleteComponent implements ControlValueAccessor, OnCh
320
318
  protected get hasObjectValue(): boolean;
321
319
  onKeydown($event: KeyboardEvent): void;
322
320
  protected getVirtualScrollHeight(itemCount: number): number;
323
- static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, [{ optional: true; }, null, null, { optional: true; self: true; }, null, null, null, null, null]>;
321
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, [{ optional: true; }, null, { optional: true; self: true; }, null, null, null, null, null]>;
324
322
  static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "ui-autocomplete", never, { "itemsList": { "alias": "itemsList"; "required": false; }; "suggestionsList": { "alias": "suggestionsList"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "allowAdd": { "alias": "allowAdd"; "required": false; }; "textField": { "alias": "textField"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "itemValue": { "alias": "itemValue"; "required": false; }; "type": { "alias": "type"; "required": false; }; "minCharactersSearch": { "alias": "minCharactersSearch"; "required": false; }; "variant": { "alias": "variant"; "required": true; }; "showBottomContent": { "alias": "showBottomContent"; "required": false; }; "valuePrimitive": { "alias": "valuePrimitive"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "required": { "alias": "required"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "companyColor": { "alias": "companyColor"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "dropdownPanelClass": { "alias": "dropdownPanelClass"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "size": { "alias": "size"; "required": false; }; "allowUserInput": { "alias": "allowUserInput"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "exactMatchSelect": { "alias": "exactMatchSelect"; "required": false; }; "maxItemSelected": { "alias": "maxItemSelected"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "isDynamicFilteringEnabled": { "alias": "isDynamicFilteringEnabled"; "required": false; }; "dynamicFilterLoading": { "alias": "dynamicFilterLoading"; "required": false; }; "dynamicFilteredList": { "alias": "dynamicFilteredList"; "required": false; }; "infiniteScroll": { "alias": "infiniteScroll"; "required": false; }; "hasMoreOptionsForInfiniteScroll": { "alias": "hasMoreOptionsForInfiniteScroll"; "required": false; }; }, { "selectionChange": "selectionChange"; "searchTextChange": "searchTextChange"; "blur": "blur"; "focus": "focus"; "scrollViewportBottomReached": "scrollViewportBottomReached"; "scrollViewportBottomReachedFiltered": "scrollViewportBottomReachedFiltered"; }, never, never, false, never>;
325
323
  static ngAcceptInputType_virtualScroll: unknown;
326
324
  }
@@ -1,12 +1,10 @@
1
1
  import { EventEmitter, OnChanges, OnInit } from '@angular/core';
2
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
3
2
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
4
3
  import { IconSize } from '@testgorilla/tgo-ui/components/icon';
5
- import { CardSize, CardVariant } from './card.model';
4
+ import { CardSize, CardSizeVariant, CardVariant } from './card.model';
6
5
  import * as i0 from "@angular/core";
7
6
  export declare class CardComponent implements OnChanges, OnInit {
8
7
  private readonly defaultAppTheme;
9
- private domSanitizer;
10
8
  /**
11
9
  * Card size. Defaults "medium".
12
10
  *
@@ -14,6 +12,13 @@ export declare class CardComponent implements OnChanges, OnInit {
14
12
  * @memberof CardComponent
15
13
  */
16
14
  size: CardSize;
15
+ /**
16
+ * Card size variant. Defaults "default".
17
+ *
18
+ * @type {CardSizeVariant}
19
+ * @memberof CardComponent
20
+ */
21
+ sizeVariant: CardSizeVariant;
17
22
  /**
18
23
  * Card variants. Defaults "default".
19
24
  *
@@ -68,15 +73,15 @@ export declare class CardComponent implements OnChanges, OnInit {
68
73
  * Emits when card is being selected
69
74
  */
70
75
  cardSelected: EventEmitter<boolean>;
71
- safeErrors: SafeHtml[];
76
+ safeErrors: string[];
72
77
  classes: string;
73
- constructor(defaultAppTheme: ApplicationTheme, domSanitizer: DomSanitizer);
78
+ constructor(defaultAppTheme: ApplicationTheme);
74
79
  ngOnChanges(): void;
75
80
  ngOnInit(): void;
76
81
  get cardVariant(): CardVariant;
77
82
  get errorIconSize(): IconSize;
78
83
  get isSelected(): boolean;
79
84
  selectCard(): void;
80
- static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, [{ optional: true; }, null]>;
81
- static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ui-card", never, { "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "errorsSize": { "alias": "errorsSize"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "allowSelect": { "alias": "allowSelect"; "required": false; }; "allowFocus": { "alias": "allowFocus"; "required": false; }; }, { "cardSelected": "cardSelected"; }, never, ["*"], false, never>;
85
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, [{ optional: true; }]>;
86
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ui-card", never, { "size": { "alias": "size"; "required": false; }; "sizeVariant": { "alias": "sizeVariant"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "errorsSize": { "alias": "errorsSize"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "allowSelect": { "alias": "allowSelect"; "required": false; }; "allowFocus": { "alias": "allowFocus"; "required": false; }; }, { "cardSelected": "cardSelected"; }, never, ["*"], false, never>;
82
87
  }
@@ -1,2 +1,3 @@
1
1
  export type CardSize = 'small' | 'medium' | 'large';
2
+ export type CardSizeVariant = 'regular' | 'condensed';
2
3
  export type CardVariant = 'default' | 'shadow' | 'state' | 'error' | 'educative' | 'premium' | 'ai' | 'actionDriver' | 'neutral' | 'neutral-state';
@@ -4,7 +4,6 @@ import type { ChecklistItem } from './checklist.model';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ChecklistComponent {
6
6
  private readonly defaultAppTheme;
7
- private readonly domSanitizer;
8
7
  /**
9
8
  * Label for the checklist
10
9
  * @type {string}
@@ -16,7 +15,7 @@ export declare class ChecklistComponent {
16
15
  * @type {string}
17
16
  * @memberof ChecklistComponent
18
17
  */
19
- description: import("@angular/core").InputSignalWithTransform<import("@angular/platform-browser").SafeHtml | null, string>;
18
+ description: import("@angular/core").InputSignal<string | null>;
20
19
  /**
21
20
  * Items for the checklist
22
21
  * @type {ModelSignal<ChecklistItem[]>}
@@ -2,13 +2,11 @@ import { ChangeDetectorRef, DoCheck, EventEmitter, OnChanges, SimpleChanges, OnI
2
2
  import { ControlValueAccessor, FormControl, FormGroup, NgControl } from '@angular/forms';
3
3
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
4
4
  import { MatDatepicker } from '@angular/material/datepicker';
5
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
6
5
  import { DatepickerService } from './datepicker.service';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class DatepickerComponent implements OnChanges, ControlValueAccessor, DoCheck, OnInit {
9
8
  private readonly defaultAppTheme;
10
9
  private cdr;
11
- private sanitizer;
12
10
  ngControl: NgControl;
13
11
  private datepickerService;
14
12
  class: string;
@@ -47,7 +45,7 @@ export declare class DatepickerComponent implements OnChanges, ControlValueAcces
47
45
  * @memberof DatepickerComponent
48
46
  */
49
47
  value?: Array<Date | null> | Date;
50
- _errors: SafeHtml[];
48
+ _errors: string[];
51
49
  /**
52
50
  * Input field errors
53
51
  *
@@ -210,7 +208,7 @@ export declare class DatepickerComponent implements OnChanges, ControlValueAcces
210
208
  }>;
211
209
  errorsLength: boolean;
212
210
  protected translationContext: string;
213
- constructor(defaultAppTheme: ApplicationTheme, cdr: ChangeDetectorRef, sanitizer: DomSanitizer, ngControl: NgControl, datepickerService: DatepickerService);
211
+ constructor(defaultAppTheme: ApplicationTheme, cdr: ChangeDetectorRef, ngControl: NgControl, datepickerService: DatepickerService);
214
212
  get hint(): string;
215
213
  /**
216
214
  * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors
@@ -232,6 +230,6 @@ export declare class DatepickerComponent implements OnChanges, ControlValueAcces
232
230
  private setRange;
233
231
  onInput(event: Event): void;
234
232
  private setStyleVariable;
235
- static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerComponent, [{ optional: true; }, null, null, { optional: true; self: true; }, null]>;
233
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerComponent, [{ optional: true; }, null, { optional: true; self: true; }, null]>;
236
234
  static ɵcmp: i0.ɵɵComponentDeclaration<DatepickerComponent, "ui-datepicker", never, { "label": { "alias": "label"; "required": false; }; "fieldName": { "alias": "fieldName"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "id": { "alias": "id"; "required": false; }; "value": { "alias": "value"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "isRange": { "alias": "isRange"; "required": false; }; "setSingleDateRangeOnBlur": { "alias": "setSingleDateRangeOnBlur"; "required": false; }; "showInnerErrors": { "alias": "showInnerErrors"; "required": false; }; "innerErrorsMessage": { "alias": "innerErrorsMessage"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "hintMessage": { "alias": "hintMessage"; "required": false; }; "updateOnBlur": { "alias": "updateOnBlur"; "required": false; }; "showBottomContent": { "alias": "showBottomContent"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "monthPicker": { "alias": "monthPicker"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; "preventUserInput": { "alias": "preventUserInput"; "required": false; }; "companyColor": { "alias": "companyColor"; "required": false; }; "browserTimezone": { "alias": "browserTimezone"; "required": false; }; }, { "changed": "changed"; }, never, never, false, never>;
237
235
  }
@@ -1,5 +1,4 @@
1
1
  import { MatDialogRef } from '@angular/material/dialog';
2
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
3
2
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
4
3
  import { ButtonColor, ButtonIconPosition } from '@testgorilla/tgo-ui/components/button';
5
4
  import { IconName } from '@testgorilla/tgo-ui/components/icon';
@@ -9,13 +8,12 @@ export declare class ConfirmDialogComponent {
9
8
  private readonly defaultAppTheme;
10
9
  dialogRef: MatDialogRef<ConfirmDialogComponent>;
11
10
  private data;
12
- protected domSanitizer: DomSanitizer;
13
11
  confirmMessage: string | undefined;
14
12
  confirmButtonText: string | undefined;
15
13
  cancelButtonText: string | undefined;
16
14
  title: string | undefined;
17
15
  lang: import("@testgorilla/tgo-ui/components/core").Language;
18
- confirmMessageHtml: SafeHtml | undefined;
16
+ confirmMessageHtml: string | undefined;
19
17
  showCloseButton: boolean;
20
18
  showSecondaryButton: boolean;
21
19
  color: string | null;
@@ -33,8 +31,8 @@ export declare class ConfirmDialogComponent {
33
31
  * @memberof DialogComponent
34
32
  */
35
33
  applicationTheme: ApplicationTheme;
36
- constructor(defaultAppTheme: ApplicationTheme, dialogRef: MatDialogRef<ConfirmDialogComponent>, data: ConfirmDialogData, domSanitizer: DomSanitizer);
34
+ constructor(defaultAppTheme: ApplicationTheme, dialogRef: MatDialogRef<ConfirmDialogComponent>, data: ConfirmDialogData);
37
35
  onConfirm(): void;
38
- static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialogComponent, [{ optional: true; }, null, null, null]>;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialogComponent, [{ optional: true; }, null, null]>;
39
37
  static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDialogComponent, "ui-confirm-dialog", never, { "applicationTheme": { "alias": "applicationTheme"; "required": false; }; }, {}, never, never, false, never>;
40
38
  }
@@ -1,5 +1,4 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import { SafeHtml } from '@angular/platform-browser';
3
2
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
4
3
  import { ButtonColor, ButtonIconPosition, ButtonSize } from '@testgorilla/tgo-ui/components/button';
5
4
  import { IconName } from '@testgorilla/tgo-ui/components/icon';
@@ -7,8 +6,6 @@ import { ButtonVariant, EmptyStateVariant, IllustrationVariant } from './empty-s
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class EmptyStateComponent {
9
8
  private readonly defaultAppTheme;
10
- private domSanitizer;
11
- safeBodyText: SafeHtml;
12
9
  /**
13
10
  * @description If the default image should be displayed.
14
11
  * @type {boolean}
@@ -44,7 +41,7 @@ export declare class EmptyStateComponent {
44
41
  * @type {string}
45
42
  * @memberof EmptyStateComponent
46
43
  */
47
- set bodyText(value: string);
44
+ bodyText: string;
48
45
  /**
49
46
  * @description Displays primary button if passed.
50
47
  * @type {string}
@@ -2,7 +2,7 @@ import { FocusMonitor } from '@angular/cdk/a11y';
2
2
  import { AfterViewInit, ChangeDetectorRef, DestroyRef, DoCheck, ElementRef, EventEmitter, NgZone, OnInit } from '@angular/core';
3
3
  import { ControlValueAccessor, NgControl } from '@angular/forms';
4
4
  import { MatIconRegistry } from '@angular/material/icon';
5
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
5
+ import { DomSanitizer } from '@angular/platform-browser';
6
6
  import { CdkTextareaAutosize } from '@angular/cdk/text-field';
7
7
  import { FieldType } from './field.model';
8
8
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
@@ -54,7 +54,7 @@ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoC
54
54
  *
55
55
  * @memberof FieldComponent
56
56
  */
57
- labelHtml: import("@angular/core").InputSignalWithTransform<SafeHtml | null, string>;
57
+ labelHtml: import("@angular/core").InputSignal<string | null>;
58
58
  /**
59
59
  * Icon to display alongside the label
60
60
  *
@@ -97,7 +97,7 @@ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoC
97
97
  * @memberof FieldComponent
98
98
  */
99
99
  badgeVariant?: BadgeVariant | undefined;
100
- _errors: SafeHtml[];
100
+ _errors: string[];
101
101
  /**
102
102
  * Input field errors
103
103
  *
@@ -368,7 +368,7 @@ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoC
368
368
  onSubmit(): void;
369
369
  private clearSpace;
370
370
  onBlur(): void;
371
- trackByFn: (index: number, value: any) => any;
371
+ trackByFn: (index: number, value: string) => string;
372
372
  focus(): void;
373
373
  refocusPasswordButton(btn: any): void;
374
374
  static ɵfac: i0.ɵɵFactoryDeclaration<FieldComponent, [{ optional: true; }, null, null, null, { optional: true; self: true; }, null, null, null]>;
@@ -1,12 +1,10 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import { MatDialogRef } from '@angular/material/dialog';
3
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
4
3
  import { MediaDialogData, MediaDialogStep } from './media-dialog.model';
5
4
  import * as i0 from "@angular/core";
6
5
  export declare class MediaDialogComponent {
7
6
  dialogRef: MatDialogRef<MediaDialogComponent>;
8
7
  private data;
9
- protected domSanitizer: DomSanitizer;
10
8
  primaryButtonLabel: string | undefined;
11
9
  secondaryButtonLabel: string | undefined;
12
10
  backButtonLabel: string | undefined;
@@ -16,10 +14,10 @@ export declare class MediaDialogComponent {
16
14
  backButtonDataTestId: string;
17
15
  mediaContainer: TemplateRef<any>;
18
16
  subheader: string | undefined;
19
- body: SafeHtml;
17
+ body: string;
20
18
  currentStepIndex: number;
21
19
  steps: MediaDialogStep[];
22
- constructor(dialogRef: MatDialogRef<MediaDialogComponent>, data: MediaDialogData, domSanitizer: DomSanitizer);
20
+ constructor(dialogRef: MatDialogRef<MediaDialogComponent>, data: MediaDialogData);
23
21
  private setStep;
24
22
  onPrimaryButtonClick(): void;
25
23
  onBackButtonClick(): void;
@@ -3,7 +3,6 @@ import { ChangeDetectorRef, DoCheck, ElementRef, OnDestroy, OnInit } from '@angu
3
3
  import { ControlValueAccessor, NgControl, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
4
4
  import { ErrorStateMatcher } from '@angular/material/core';
5
5
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
6
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
7
6
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
8
7
  import { UICountry } from './phone-input.model';
9
8
  import * as i0 from "@angular/core";
@@ -13,7 +12,6 @@ export declare class PhoneInputComponent implements OnInit, OnDestroy, ControlVa
13
12
  private fb;
14
13
  private focusMonitor;
15
14
  private ref;
16
- private sanitizer;
17
15
  private readonly defaultAppTheme;
18
16
  /**
19
17
  * Phone number
@@ -65,7 +63,7 @@ export declare class PhoneInputComponent implements OnInit, OnDestroy, ControlVa
65
63
  * @memberof PhoneInputComponent
66
64
  */
67
65
  fullWidth: boolean;
68
- _errors: SafeHtml[];
66
+ _errors: string[];
69
67
  /**
70
68
  * Input field errors
71
69
  *
@@ -114,7 +112,7 @@ export declare class PhoneInputComponent implements OnInit, OnDestroy, ControlVa
114
112
  private internalPlaceholder;
115
113
  protected selectedCountry: UICountry;
116
114
  private unsubscribeAll$;
117
- constructor(ngControl: NgControl, errorMatcher: ErrorStateMatcher, fb: UntypedFormBuilder, focusMonitor: FocusMonitor, ref: ChangeDetectorRef, sanitizer: DomSanitizer, defaultAppTheme: ApplicationTheme);
115
+ constructor(ngControl: NgControl, errorMatcher: ErrorStateMatcher, fb: UntypedFormBuilder, focusMonitor: FocusMonitor, ref: ChangeDetectorRef, defaultAppTheme: ApplicationTheme);
118
116
  /**
119
117
  * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors
120
118
  * to display validation errors that might happen (e.g. required)
@@ -141,7 +139,7 @@ export declare class PhoneInputComponent implements OnInit, OnDestroy, ControlVa
141
139
  private getCountryByCallingCode;
142
140
  private loadCountries;
143
141
  disableClick(ev: Event): void;
144
- trackByFn: (index: number, value: any) => any;
145
- static ɵfac: i0.ɵɵFactoryDeclaration<PhoneInputComponent, [{ optional: true; self: true; }, null, null, null, null, null, { optional: true; }]>;
142
+ trackByFn: (index: number, value: string) => string;
143
+ static ɵfac: i0.ɵɵFactoryDeclaration<PhoneInputComponent, [{ optional: true; self: true; }, null, null, null, null, { optional: true; }]>;
146
144
  static ɵcmp: i0.ɵɵComponentDeclaration<PhoneInputComponent, "ui-phone-input", never, { "value": { "alias": "value"; "required": false; }; "countryList": { "alias": "countryList"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; }, {}, never, never, false, never>;
147
145
  }
@@ -4,13 +4,11 @@ import { IconName } from '@testgorilla/tgo-ui/components/icon';
4
4
  import { SnackbarLink, SnackbarType, SnackbarVariant } from './snackbar.model';
5
5
  import { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';
6
6
  import { LinkTargetType } from '@testgorilla/tgo-ui/components/alert-banner';
7
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
8
7
  import * as i0 from "@angular/core";
9
8
  export declare class SnackbarComponent implements OnInit {
10
9
  private readonly defaultAppTheme;
11
10
  private data;
12
11
  private snackbarRef;
13
- private domSanitizer;
14
12
  /**
15
13
  * Background color of the button while in active state
16
14
  *
@@ -104,7 +102,7 @@ export declare class SnackbarComponent implements OnInit {
104
102
  timerStartedAt: number;
105
103
  timerPausedAt: number;
106
104
  position: string;
107
- safeHtml: SafeHtml;
105
+ safeHtml: string;
108
106
  translationContext: string;
109
107
  protected readonly maxCharacters = 70;
110
108
  constructor(defaultAppTheme: ApplicationTheme, data: {
@@ -114,7 +112,7 @@ export declare class SnackbarComponent implements OnInit {
114
112
  applicationTheme?: ApplicationTheme;
115
113
  html?: string;
116
114
  seconds?: number;
117
- }, snackbarRef: MatSnackBarRef<SnackbarComponent>, domSanitizer: DomSanitizer);
115
+ }, snackbarRef: MatSnackBarRef<SnackbarComponent>);
118
116
  ngOnInit(): void;
119
117
  show(): void;
120
118
  hide(): void;
@@ -123,6 +121,6 @@ export declare class SnackbarComponent implements OnInit {
123
121
  dismissClick(): void;
124
122
  onLinkClick(event: Event): void;
125
123
  private dismissSnackbar;
126
- static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarComponent, [{ optional: true; }, null, null, null]>;
124
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarComponent, [{ optional: true; }, null, null]>;
127
125
  static ɵcmp: i0.ɵɵComponentDeclaration<SnackbarComponent, "ui-snackbar", never, { "snackbarType": { "alias": "snackbarType"; "required": false; }; "message": { "alias": "message"; "required": false; }; "html": { "alias": "html"; "required": false; }; "seconds": { "alias": "seconds"; "required": false; }; "includeDismissButton": { "alias": "includeDismissButton"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "linkText": { "alias": "linkText"; "required": false; }; "linkUrl": { "alias": "linkUrl"; "required": false; }; "linkTarget": { "alias": "linkTarget"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "closeButtonTooltip": { "alias": "closeButtonTooltip"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; }, {}, never, never, false, never>;
128
126
  }
@@ -15,6 +15,7 @@ class AiAudioCircleComponent {
15
15
  this.candidateAudioTrack = input();
16
16
  this.state = model(InterviewState.AiListening);
17
17
  this.canvasSize = input(280);
18
+ this.animated = input(true);
18
19
  this.isSpeaking = signal(false);
19
20
  this.scaleValue = signal(1);
20
21
  this.currentAmp = 0.02;
@@ -78,15 +79,18 @@ class AiAudioCircleComponent {
78
79
  { color: Color.BRAND_20, opacity: 0.6 },
79
80
  { color: Color.INFORMATIVE_30, opacity: 0.65 },
80
81
  ];
82
+ // Use deterministic seed values when not animated for stable visual tests
83
+ const seedVelocities = [0.12, -0.08, 0.15, -0.1, 0.06];
84
+ const seedRadii = [0.72, 0.65, 0.8, 0.68, 0.76];
81
85
  this.blobs = colors.map((c, i) => {
82
86
  const angle = (i / colors.length) * Math.PI * 2;
83
87
  const dist = baseRadius * 0.25;
84
88
  return {
85
89
  x: centerX + Math.cos(angle) * dist,
86
90
  y: centerY + Math.sin(angle) * dist,
87
- vx: (Math.random() - 0.5) * 0.4,
88
- vy: (Math.random() - 0.5) * 0.4,
89
- radius: baseRadius * (0.6 + Math.random() * 0.4),
91
+ vx: this.animated() ? (Math.random() - 0.5) * 0.4 : seedVelocities[i],
92
+ vy: this.animated() ? (Math.random() - 0.5) * 0.4 : seedVelocities[(i + 2) % 5],
93
+ radius: baseRadius * (this.animated() ? 0.6 + Math.random() * 0.4 : seedRadii[i]),
90
94
  color: c.color,
91
95
  opacity: c.opacity,
92
96
  };
@@ -189,6 +193,11 @@ class AiAudioCircleComponent {
189
193
  startAnimations() {
190
194
  this.animatePulse = this.animatePulse.bind(this);
191
195
  this.mainLoop = this.mainLoop.bind(this);
196
+ if (!this.animated()) {
197
+ // Render a single static frame for deterministic visual tests
198
+ this.animatePulse();
199
+ return;
200
+ }
192
201
  this.animatePulse();
193
202
  this.mainLoop();
194
203
  }
@@ -345,7 +354,9 @@ class AiAudioCircleComponent {
345
354
  ctx.fillStyle = highlightGradient;
346
355
  ctx.fill();
347
356
  ctx.restore();
348
- this.pulseAnimationId = requestAnimationFrame(this.animatePulse);
357
+ if (this.animated()) {
358
+ this.pulseAnimationId = requestAnimationFrame(this.animatePulse);
359
+ }
349
360
  }
350
361
  hexToRgb(hex) {
351
362
  const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
@@ -387,7 +398,7 @@ class AiAudioCircleComponent {
387
398
  this.cleanup();
388
399
  }
389
400
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AiAudioCircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
390
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: AiAudioCircleComponent, isStandalone: false, selector: "ui-ai-audio-circle", inputs: { audioTrack: { classPropertyName: "audioTrack", publicName: "audioTrack", isSignal: true, isRequired: false, transformFunction: null }, candidateAudioTrack: { classPropertyName: "candidateAudioTrack", publicName: "candidateAudioTrack", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, viewQueries: [{ propertyName: "pulseCanvasRef", first: true, predicate: ["pulseCanvas"], descendants: true }], ngImport: i0, template: "<div class=\"ai-audio-visualizer\">\n <div class=\"canvas-container\">\n <canvas #pulseCanvas></canvas>\n </div>\n</div>\n", styles: [".ai-audio-visualizer{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.canvas-container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center}canvas{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: AiAudioCircleComponent, isStandalone: false, selector: "ui-ai-audio-circle", inputs: { audioTrack: { classPropertyName: "audioTrack", publicName: "audioTrack", isSignal: true, isRequired: false, transformFunction: null }, candidateAudioTrack: { classPropertyName: "candidateAudioTrack", publicName: "candidateAudioTrack", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, canvasSize: { classPropertyName: "canvasSize", publicName: "canvasSize", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, viewQueries: [{ propertyName: "pulseCanvasRef", first: true, predicate: ["pulseCanvas"], descendants: true }], ngImport: i0, template: "<div class=\"ai-audio-visualizer\">\n <div class=\"canvas-container\">\n <canvas #pulseCanvas></canvas>\n </div>\n</div>\n", styles: [".ai-audio-visualizer{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.canvas-container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center}canvas{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
391
402
  }
392
403
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AiAudioCircleComponent, decorators: [{
393
404
  type: Component,