@testgorilla/tgo-ui 2.23.17 → 2.23.19

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 (40) hide show
  1. package/components/button/button.component.d.ts +9 -1
  2. package/components/dialog/dialog.service.d.ts +1 -1
  3. package/components/field/field.component.d.ts +31 -5
  4. package/components/icon/icon.component.d.ts +1 -0
  5. package/components/overflow-menu/overflow-menu.component.d.ts +39 -5
  6. package/components/overflow-menu/overflow-menu.component.module.d.ts +5 -1
  7. package/components/overflow-menu/overflow-menu.model.d.ts +10 -0
  8. package/directives/ellipse-text.directive.d.ts +4 -1
  9. package/esm2022/assets/i18n/en.json +3 -0
  10. package/esm2022/components/alert-banner/alert-banner.component.mjs +2 -2
  11. package/esm2022/components/avatar/avatar.component.mjs +1 -1
  12. package/esm2022/components/button/button.component.mjs +12 -3
  13. package/esm2022/components/checkbox/checkbox.component.mjs +9 -3
  14. package/esm2022/components/dialog/dialog.component.mjs +1 -1
  15. package/esm2022/components/dialog/dialog.service.mjs +3 -2
  16. package/esm2022/components/dropdown/dropdown.component.mjs +1 -1
  17. package/esm2022/components/empty-state/empty-state.component.mjs +1 -1
  18. package/esm2022/components/field/field.component.mjs +55 -17
  19. package/esm2022/components/icon/icon.component.mjs +7 -7
  20. package/esm2022/components/multi-input/multi-input.component.mjs +1 -1
  21. package/esm2022/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.mjs +1 -1
  22. package/esm2022/components/navbar/navbar.component.mjs +1 -1
  23. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +128 -11
  24. package/esm2022/components/overflow-menu/overflow-menu.component.module.mjs +8 -4
  25. package/esm2022/components/overflow-menu/overflow-menu.model.mjs +1 -1
  26. package/esm2022/components/page-header/page-header.component.mjs +1 -1
  27. package/esm2022/components/password-criteria/password.component.mjs +1 -1
  28. package/esm2022/components/radial-progress/radial-progress.component.mjs +1 -1
  29. package/esm2022/components/radio-button/radio-button.component.mjs +1 -1
  30. package/esm2022/components/side-sheet/side-sheet.component.mjs +1 -1
  31. package/esm2022/components/snackbar/snackbar.component.mjs +2 -2
  32. package/esm2022/components/table/table.component.mjs +2 -2
  33. package/esm2022/components/toggle/toggle.component.mjs +1 -1
  34. package/esm2022/directives/ellipse-text.directive.mjs +15 -6
  35. package/fesm2022/testgorilla-tgo-ui.mjs +233 -58
  36. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  37. package/package.json +3 -2
  38. package/projects/tgo-canopy-ui/assets/i18n/en.json +3 -0
  39. package/projects/tgo-canopy-ui/theme/_button.scss +74 -0
  40. package/projects/tgo-canopy-ui/theme/theme.scss +1 -0
@@ -3,6 +3,7 @@ import { IconName } from '../icon/icon.model';
3
3
  import { ButtonBadgeConfig, ButtonColor, ButtonIconPosition, ButtonSize, ButtonState, ButtonType, IconButtonSize, LinkUrlTarget } from './button.model';
4
4
  import { MatButton } from '@angular/material/button';
5
5
  import { ApplicationTheme } from '../../models/application-theme.model';
6
+ import { TooltipPosition } from '@angular/material/tooltip';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class ButtonComponent implements OnInit, AfterViewInit {
8
9
  private readonly defaultAppTheme;
@@ -180,6 +181,13 @@ export declare class ButtonComponent implements OnInit, AfterViewInit {
180
181
  * @memberof ButtonComponent
181
182
  */
182
183
  preventDefault: boolean;
184
+ /**
185
+ * Sets tooltip position
186
+ *
187
+ * @type {TooltipPosition}
188
+ * @memberof ButtonComponent
189
+ */
190
+ tooltipPosition: TooltipPosition;
183
191
  buttonClickEvent: EventEmitter<Event>;
184
192
  buttonHoverEvent: EventEmitter<Event>;
185
193
  buttonElement: MatButton;
@@ -217,6 +225,6 @@ export declare class ButtonComponent implements OnInit, AfterViewInit {
217
225
  onKeyup(event: KeyboardEvent): void;
218
226
  onLabelEllipsisChange(state: boolean): void;
219
227
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, [{ optional: true; }]>;
220
- static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ui-button", never, { "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "label": { "alias": "label"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "justIcon": { "alias": "justIcon"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "url": { "alias": "url"; "required": false; }; "urlTarget": { "alias": "urlTarget"; "required": false; }; "value": { "alias": "value"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "isPremium": { "alias": "isPremium"; "required": false; }; "type": { "alias": "type"; "required": false; }; "companyColor": { "alias": "companyColor"; "required": false; }; "buttonBadgeConfig": { "alias": "buttonBadgeConfig"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "disabledScaleOnClick": { "alias": "disabledScaleOnClick"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaRequired": { "alias": "ariaRequired"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "language": { "alias": "language"; "required": false; }; "preventDefault": { "alias": "preventDefault"; "required": false; }; }, { "buttonClickEvent": "buttonClickEvent"; "buttonHoverEvent": "buttonHoverEvent"; }, never, never, false, never>;
228
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ui-button", never, { "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "label": { "alias": "label"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "justIcon": { "alias": "justIcon"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "url": { "alias": "url"; "required": false; }; "urlTarget": { "alias": "urlTarget"; "required": false; }; "value": { "alias": "value"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "isPremium": { "alias": "isPremium"; "required": false; }; "type": { "alias": "type"; "required": false; }; "companyColor": { "alias": "companyColor"; "required": false; }; "buttonBadgeConfig": { "alias": "buttonBadgeConfig"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "disabledScaleOnClick": { "alias": "disabledScaleOnClick"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaRequired": { "alias": "ariaRequired"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "language": { "alias": "language"; "required": false; }; "preventDefault": { "alias": "preventDefault"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; }, { "buttonClickEvent": "buttonClickEvent"; "buttonHoverEvent": "buttonHoverEvent"; }, never, never, false, never>;
221
229
  static ngAcceptInputType_preventDefault: unknown;
222
230
  }
@@ -7,7 +7,7 @@ export declare class DialogService {
7
7
  private matDialog;
8
8
  private readonly defaultAppTheme;
9
9
  constructor(matDialog: MatDialog, defaultAppTheme: ApplicationTheme);
10
- open(dialogComponent: ComponentType<any>, applicationTheme?: ApplicationTheme, size?: DialogSize, panelClass?: string, extraData?: any): MatDialogRef<any>;
10
+ open(dialogComponent: ComponentType<any>, applicationTheme?: ApplicationTheme, size?: DialogSize, panelClass?: string, extraData?: any, backdropClass?: string): MatDialogRef<any>;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, [null, { optional: true; }]>;
12
12
  static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
13
13
  }
@@ -1,17 +1,21 @@
1
- import { ChangeDetectorRef, DoCheck, EventEmitter, OnInit } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, DestroyRef, DoCheck, EventEmitter, NgZone, OnInit } from '@angular/core';
2
2
  import { ControlValueAccessor, NgControl } from '@angular/forms';
3
3
  import { FieldType } from '../../components/field/field.model';
4
4
  import { MatIconRegistry } from '@angular/material/icon';
5
5
  import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
6
6
  import { ApplicationTheme } from '../../models/application-theme.model';
7
7
  import { IconName } from '../icon/icon.model';
8
+ import { FocusMonitor } from "@angular/cdk/a11y";
8
9
  import * as i0 from "@angular/core";
9
- export declare class FieldComponent implements OnInit, ControlValueAccessor, DoCheck {
10
+ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoCheck, AfterViewInit {
10
11
  private readonly defaultAppTheme;
11
12
  private matIconRegistry;
12
13
  private domSanitizer;
13
14
  private cdr;
14
15
  ngControl: NgControl;
16
+ private focusMonitor;
17
+ private ngZone;
18
+ private destroyRef;
15
19
  class: string;
16
20
  /**
17
21
  * Indicator of the autocomplete width
@@ -218,12 +222,33 @@ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoC
218
222
  * @memberof FieldComponent
219
223
  */
220
224
  textareaHeight: number;
225
+ /**
226
+ * A string representing the ARIA requirement for accessibility.
227
+ * This attribute is used to indicate whether an input field is required for form submission.
228
+ * @type {string}
229
+ * @memberof FieldComponent
230
+ */
231
+ ariaLabelledby: string;
232
+ /**
233
+ * A string representing the ARIA requirement for accessibility.
234
+ * This attribute is used to indicate whether an input field is required for form submission.
235
+ * @type {string}
236
+ * @memberof FieldComponent
237
+ */
238
+ ariaDescribedby: string;
239
+ /**
240
+ * Show state of error
241
+ * @type {boolean}
242
+ * @memberof FieldComponent
243
+ */
221
244
  hasError: boolean;
222
245
  validateEvent: EventEmitter<string>;
223
246
  fieldBlur: EventEmitter<void>;
247
+ field: HTMLInputElement;
224
248
  get getPasswordIcon(): IconName;
225
249
  isActiveField: boolean;
226
250
  isActiveHover: boolean;
251
+ keyboardFocused: import("@angular/core").WritableSignal<boolean>;
227
252
  protected readonly translationContext = "FIELD.";
228
253
  /**
229
254
  * @ignore
@@ -233,7 +258,8 @@ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoC
233
258
  * @ignore
234
259
  */
235
260
  onTouch: () => void;
236
- constructor(defaultAppTheme: ApplicationTheme, matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer, cdr: ChangeDetectorRef, ngControl: NgControl);
261
+ constructor(defaultAppTheme: ApplicationTheme, matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer, cdr: ChangeDetectorRef, ngControl: NgControl, focusMonitor: FocusMonitor, ngZone: NgZone, destroyRef: DestroyRef);
262
+ ngAfterViewInit(): void;
237
263
  /**
238
264
  * Used to mark component view as dirty when touched programmatically with markAsTouched/markAllAsTouched or errors
239
265
  * to display validation errors that might happen (e.g. required)
@@ -262,6 +288,6 @@ export declare class FieldComponent implements OnInit, ControlValueAccessor, DoC
262
288
  private clearSpace;
263
289
  onBlur(): void;
264
290
  trackByFn: (index: number, value: any) => any;
265
- static ɵfac: i0.ɵɵFactoryDeclaration<FieldComponent, [{ optional: true; }, null, null, null, { optional: true; self: true; }]>;
266
- static ɵcmp: i0.ɵɵComponentDeclaration<FieldComponent, "ui-field", never, { "fullWidth": { "alias": "fullWidth"; "required": false; }; "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; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "hintMessage": { "alias": "hintMessage"; "required": false; }; "type": { "alias": "type"; "required": false; }; "updateOnBlur": { "alias": "updateOnBlur"; "required": false; }; "allowOnlyDigits": { "alias": "allowOnlyDigits"; "required": false; }; "allowNegative": { "alias": "allowNegative"; "required": false; }; "language": { "alias": "language"; "required": false; }; "showBottomContent": { "alias": "showBottomContent"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "isValid": { "alias": "isValid"; "required": false; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; }; "trimOnBlur": { "alias": "trimOnBlur"; "required": false; }; "trimOnSubmit": { "alias": "trimOnSubmit"; "required": false; }; "maxRows": { "alias": "maxRows"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "textareaHeight": { "alias": "textareaHeight"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; }, { "validateEvent": "validateEvent"; "fieldBlur": "fieldBlur"; }, never, never, false, never>;
291
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldComponent, [{ optional: true; }, null, null, null, { optional: true; self: true; }, null, null, null]>;
292
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldComponent, "ui-field", never, { "fullWidth": { "alias": "fullWidth"; "required": false; }; "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; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "hintMessage": { "alias": "hintMessage"; "required": false; }; "type": { "alias": "type"; "required": false; }; "updateOnBlur": { "alias": "updateOnBlur"; "required": false; }; "allowOnlyDigits": { "alias": "allowOnlyDigits"; "required": false; }; "allowNegative": { "alias": "allowNegative"; "required": false; }; "language": { "alias": "language"; "required": false; }; "showBottomContent": { "alias": "showBottomContent"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "isValid": { "alias": "isValid"; "required": false; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; }; "trimOnBlur": { "alias": "trimOnBlur"; "required": false; }; "trimOnSubmit": { "alias": "trimOnSubmit"; "required": false; }; "maxRows": { "alias": "maxRows"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "textareaHeight": { "alias": "textareaHeight"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; }, { "validateEvent": "validateEvent"; "fieldBlur": "fieldBlur"; }, never, never, false, never>;
267
293
  }
@@ -54,6 +54,7 @@ export declare class IconComponent implements OnInit {
54
54
  applicationTheme: ApplicationTheme;
55
55
  customCssClass: string;
56
56
  filename: IconName | undefined;
57
+ _name: string;
57
58
  constructor(defaultAppTheme: ApplicationTheme, matIconRegistry: MatIconRegistry, domSanitzer: DomSanitizer, iconsService: IconsService);
58
59
  ngOnInit(): void;
59
60
  ngOnChanges(changes: SimpleChanges): void;
@@ -1,10 +1,14 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { EventEmitter, NgZone, OnInit, QueryList } from '@angular/core';
2
2
  import { IconName } from '../icon/icon.model';
3
- import { OverflowMenuButtonsType } from './overflow-menu.model';
3
+ import { OverflowMenuButtonModify, OverflowMenuButtonsType } from './overflow-menu.model';
4
4
  import { ApplicationTheme } from "../../models/application-theme.model";
5
+ import { MatMenu, MatMenuTrigger } from "@angular/material/menu";
6
+ import { FocusMonitor } from "@angular/cdk/a11y";
5
7
  import * as i0 from "@angular/core";
6
8
  export declare class OverflowMenuComponent implements OnInit {
7
9
  private readonly defaultAppTheme;
10
+ private focusMonitor;
11
+ private ngZone;
8
12
  /**
9
13
  * Menu buttons
10
14
  *
@@ -46,14 +50,44 @@ export declare class OverflowMenuComponent implements OnInit {
46
50
  * @memberof OverflowMenuComponent
47
51
  */
48
52
  ariaRequired: boolean;
53
+ /**
54
+ * A string representing the ARIA requirement for accessibility.
55
+ * This attribute is used to indicate whether an input for description.
56
+ * @type {text}
57
+ * @memberof OverflowMenuComponent
58
+ */
59
+ describedby: string;
60
+ /**
61
+ * The language to be used
62
+ *
63
+ * @type {Language}
64
+ * @memberof OverflowMenuComponent
65
+ */
66
+ language: import("@testgorilla/tgo-ui").Language;
49
67
  selectItem: EventEmitter<string>;
50
68
  menuOpened: EventEmitter<void>;
51
69
  menuClosed: EventEmitter<void>;
52
- constructor(defaultAppTheme: ApplicationTheme);
70
+ matmenus: QueryList<MatMenu>;
71
+ matTrigger: QueryList<MatMenuTrigger>;
72
+ buttonElement: any;
73
+ menuItems: string[];
74
+ submenus: Array<OverflowMenuButtonModify[]>;
75
+ isMenuRendered: import("@angular/core").WritableSignal<boolean>;
76
+ isMenuOpened: import("@angular/core").WritableSignal<boolean>;
77
+ isFocused: import("@angular/core").WritableSignal<boolean>;
78
+ constructor(defaultAppTheme: ApplicationTheme, focusMonitor: FocusMonitor, ngZone: NgZone);
53
79
  ngOnInit(): void;
80
+ ngAfterViewInit(): void;
54
81
  onSelectItem(event: Event, value: string): void;
55
82
  onMenuOpened(): void;
56
83
  onMenuClosed(): void;
57
- static ɵfac: i0.ɵɵFactoryDeclaration<OverflowMenuComponent, [{ optional: true; }]>;
58
- static ɵcmp: i0.ɵɵComponentDeclaration<OverflowMenuComponent, "ui-overflow-menu", never, { "buttons": { "alias": "buttons"; "required": false; }; "iconTrigger": { "alias": "iconTrigger"; "required": false; }; "menuLabel": { "alias": "menuLabel"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaRequired": { "alias": "ariaRequired"; "required": false; }; }, { "selectItem": "selectItem"; "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; }, never, ["[menu-content]"], false, never>;
84
+ onButtonFocus(button: OverflowMenuButtonModify): void;
85
+ onButtonBlur(button: OverflowMenuButtonModify): void;
86
+ onButtonClick(button: OverflowMenuButtonModify, $event: Event): void;
87
+ getMenu(index: any): MatMenu | null;
88
+ private reindex;
89
+ private createSubmenus;
90
+ onSubmenuOpened(): void;
91
+ static ɵfac: i0.ɵɵFactoryDeclaration<OverflowMenuComponent, [{ optional: true; }, null, null]>;
92
+ static ɵcmp: i0.ɵɵComponentDeclaration<OverflowMenuComponent, "ui-overflow-menu", never, { "buttons": { "alias": "buttons"; "required": false; }; "iconTrigger": { "alias": "iconTrigger"; "required": false; }; "menuLabel": { "alias": "menuLabel"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaRequired": { "alias": "ariaRequired"; "required": false; }; "describedby": { "alias": "describedby"; "required": false; }; "language": { "alias": "language"; "required": false; }; }, { "selectItem": "selectItem"; "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; }, never, ["[menu-content]"], false, never>;
59
93
  }
@@ -4,8 +4,12 @@ import * as i2 from "@angular/common";
4
4
  import * as i3 from "../button/button.component.module";
5
5
  import * as i4 from "../icon/icon.component.module";
6
6
  import * as i5 from "@angular/material/menu";
7
+ import * as i6 from "@angular/material/button";
8
+ import * as i7 from "@angular/material/tooltip";
9
+ import * as i8 from "../../directives/ellipse-text.directive";
10
+ import * as i9 from "../../pipes/ui-translate.pipe";
7
11
  export declare class OverflowMenuComponentModule {
8
12
  static ɵfac: i0.ɵɵFactoryDeclaration<OverflowMenuComponentModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<OverflowMenuComponentModule, [typeof i1.OverflowMenuComponent], [typeof i2.CommonModule, typeof i3.ButtonComponentModule, typeof i4.IconComponentModule, typeof i5.MatMenuModule], [typeof i1.OverflowMenuComponent]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<OverflowMenuComponentModule, [typeof i1.OverflowMenuComponent], [typeof i2.CommonModule, typeof i3.ButtonComponentModule, typeof i4.IconComponentModule, typeof i5.MatMenuModule, typeof i6.MatButtonModule, typeof i7.MatTooltipModule, typeof i8.EllipseTextDirective, typeof i9.UiTranslatePipe], [typeof i1.OverflowMenuComponent]>;
10
14
  static ɵinj: i0.ɵɵInjectorDeclaration<OverflowMenuComponentModule>;
11
15
  }
@@ -7,4 +7,14 @@ export type OverflowMenuButtonsType = {
7
7
  value: string;
8
8
  disabled?: boolean;
9
9
  btnTemplate?: TemplateRef<any>;
10
+ subMenu?: OverflowMenuButtonsType[] | number;
11
+ action?: number | string;
12
+ describedby?: string;
13
+ ariaLabel?: string;
10
14
  };
15
+ type ButtonOptions = {
16
+ isTextEllipsed?: boolean;
17
+ isFocused?: boolean;
18
+ };
19
+ export type OverflowMenuButtonModify = OverflowMenuButtonsType & ButtonOptions;
20
+ export {};
@@ -7,11 +7,14 @@ import * as i0 from "@angular/core";
7
7
  export declare class EllipseTextDirective implements OnInit {
8
8
  private el;
9
9
  isMultiline: boolean;
10
+ maxDiffPixels: number;
10
11
  checkEllipsis$: Subject<void>;
12
+ refreshEllipsis$: Subject<void>;
13
+ set refresh(_: any);
11
14
  onChangeTextState: EventEmitter<boolean>;
12
15
  resize(): void;
13
16
  constructor(el: ElementRef);
14
17
  ngOnInit(): void;
15
18
  static ɵfac: i0.ɵɵFactoryDeclaration<EllipseTextDirective, never>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<EllipseTextDirective, "[uiEllipseText]", never, { "isMultiline": { "alias": "isMultiline"; "required": false; }; }, { "onChangeTextState": "onChangeTextState"; }, never, never, true, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EllipseTextDirective, "[uiEllipseText]", never, { "isMultiline": { "alias": "isMultiline"; "required": false; }; "maxDiffPixels": { "alias": "maxDiffPixels"; "required": false; }; "refresh": { "alias": "refresh"; "required": false; }; }, { "onChangeTextState": "onChangeTextState"; }, never, never, true, never>;
17
20
  }
@@ -103,5 +103,8 @@
103
103
  },
104
104
  "BUTTON": {
105
105
  "PREMIUM_FEATURE": "Premium Feature"
106
+ },
107
+ "MENU": {
108
+ "MENUITEM_DISABLED": "This menu item is disabled"
106
109
  }
107
110
  }
@@ -119,7 +119,7 @@ export class AlertBannerComponent {
119
119
  }, 200);
120
120
  }
121
121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AlertBannerComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
122
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: AlertBannerComponent, selector: "ui-alert-banner", inputs: { alertType: "alertType", alertVariant: "alertVariant", message: "message", includeDismissButton: "includeDismissButton", shadow: "shadow", linkText: "linkText", linkUrl: "linkUrl", linkTarget: "linkTarget", applicationTheme: "applicationTheme", isFullWidth: "isFullWidth", closeButtonTooltip: "closeButtonTooltip", language: "language", secondaryAlerts: "secondaryAlerts" }, host: { properties: { "class.display-none": "this.isDismissed" } }, ngImport: i0, template: "<div [ngClass]=\"cssClass\" [@openClose] *ngIf=\"visible\" class=\"alert-container\" [attr.theme]=\"applicationTheme\" [class.shadow]=\"alertVariant === 'callout' && shadow ? true : false\">\n\n <div class=\"primary-alert-container\">\n <div class=\"alert-text\">\n <ui-icon class=\"left-icon\" [name]=\"iconName\" size=\"24\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span [innerHTML]=\"_message\"></span>\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n </div>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme === 'classic'\"\n variant=\"text\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n (buttonClickEvent)=\"dismissClick()\"\n ></ui-button>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme !== 'classic' && alertVariant !== 'callout'\"\n class=\"right-icon\"\n [variant]=\"'icon-button'\"\n [applicationTheme]=\"applicationTheme\"\n [iconName]=\"'Close-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate : language)\"\n (click)=\"dismissClick()\"\n ></ui-button>\n </div>\n <div class=\"secondary-alerts-container\">\n <div class=\"alert-text\" *ngFor=\"let alert of _secondaryAlerts\">\n <ui-icon class=\"left-icon\" [name]=\"'Stop-filled'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span [innerHTML]=\"alert\"></span>\n </div>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{display:flex;width:100%;justify-content:center}:host .snackbar-container{max-width:600px}:host .alert-container,:host .snackbar-container{margin:0 auto;display:flex;padding:0 14px;border-radius:4px;align-items:center;justify-content:space-between;opacity:1;min-height:48px}:host .alert-container.fixed,:host .snackbar-container.fixed{position:fixed}:host .alert-container.static,:host .snackbar-container.static{position:relative}:host .alert-container ui-icon,:host .snackbar-container ui-icon{margin-right:14px}:host .alert-container ui-button,:host .snackbar-container ui-button{margin-left:14px}:host .alert-container ::ng-deep button.mat-mdc-unelevated-button.big,:host .snackbar-container ::ng-deep button.mat-mdc-unelevated-button.big{padding:0;min-width:auto}:host .alert-container .alert-text,:host .alert-container .snackbar-text,:host .snackbar-container .alert-text,:host .snackbar-container .snackbar-text{display:flex;align-items:center;color:#000}:host .alert-container .alert-text a,:host .alert-container .snackbar-text a,:host .snackbar-container .alert-text a,:host .snackbar-container .snackbar-text a{color:#000;text-decoration:underline;font-weight:700}:host .alert-container .alert-text a:hover,:host .alert-container .alert-text a:visited,:host .alert-container .alert-text a:focus,:host .alert-container .snackbar-text a:hover,:host .alert-container .snackbar-text a:visited,:host .alert-container .snackbar-text a:focus,:host .snackbar-container .alert-text a:hover,:host .snackbar-container .alert-text a:visited,:host .snackbar-container .alert-text a:focus,:host .snackbar-container .snackbar-text a:hover,:host .snackbar-container .snackbar-text a:visited,:host .snackbar-container .snackbar-text a:focus{text-decoration:none}:host .alert-container.success,:host .snackbar-container.success{background-color:#cbd6cb}:host .alert-container.info,:host .snackbar-container.info{background-color:#c8d7de}:host .alert-container.warning,:host .snackbar-container.warning{background-color:#f0d6bb}:host .alert-container.error,:host .snackbar-container.error{background-color:#e3c3c6}:host .alert-container[theme=dark].success,:host .alert-container[theme=light].success,:host .snackbar-container[theme=dark].success,:host .snackbar-container[theme=light].success{background-color:#aae47a}:host .alert-container[theme=dark].info,:host .alert-container[theme=light].info,:host .snackbar-container[theme=dark].info,:host .snackbar-container[theme=light].info{background-color:#d9e8ff}:host .alert-container[theme=dark].warning,:host .alert-container[theme=light].warning,:host .snackbar-container[theme=dark].warning,:host .snackbar-container[theme=light].warning{background-color:#ffe1b3}:host .alert-container[theme=dark].error,:host .alert-container[theme=light].error,:host .snackbar-container[theme=dark].error,:host .snackbar-container[theme=light].error{background-color:#ffac9a}::ng-deep .display-none{display:none!important}@media (max-width: 600px){:host .alert-container,:host .snackbar-container{padding:8px 14px}}:host .alert-container{max-width:1312px;flex-direction:column}:host .alert-container.fixed{top:0;z-index:98}:host .alert-container.full-width{width:100%;min-width:100%}:host .alert-container a{margin-left:7px}:host .alert-container[theme=dark] .alert-text,:host .alert-container[theme=light] .alert-text{padding:12px 0}:host .alert-container[theme=dark].banner,:host .alert-container[theme=light].banner{border-radius:0}:host .alert-container[theme=dark].callout,:host .alert-container[theme=light].callout{border-radius:10px}:host .alert-container[theme=dark].shadow,:host .alert-container[theme=light].shadow{box-shadow:0 4px 16px #2424240a}:host .alert-container[theme=dark] .left-icon,:host .alert-container[theme=light] .left-icon{margin-right:8px}:host .alert-container[theme=dark] .right-icon,:host .alert-container[theme=light] .right-icon{cursor:pointer;margin-left:8px;margin-right:2px}:host .alert-container .primary-alert-container{display:flex;justify-content:space-between;align-items:center;width:100%}:host .alert-container .secondary-alerts-container{padding-left:8px;display:flex;width:100%;flex-direction:column}:host .alert-container .secondary-alerts-container .alert-text{padding:4px 0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "language", "preventDefault"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme"] }, { kind: "pipe", type: i5.UiTranslatePipe, name: "uiTranslate" }], animations: [
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: AlertBannerComponent, selector: "ui-alert-banner", inputs: { alertType: "alertType", alertVariant: "alertVariant", message: "message", includeDismissButton: "includeDismissButton", shadow: "shadow", linkText: "linkText", linkUrl: "linkUrl", linkTarget: "linkTarget", applicationTheme: "applicationTheme", isFullWidth: "isFullWidth", closeButtonTooltip: "closeButtonTooltip", language: "language", secondaryAlerts: "secondaryAlerts" }, host: { properties: { "class.display-none": "this.isDismissed" } }, ngImport: i0, template: "<div [ngClass]=\"cssClass\" [@openClose] *ngIf=\"visible\" class=\"alert-container\" [attr.theme]=\"applicationTheme\" [class.shadow]=\"alertVariant === 'callout' && shadow ? true : false\">\n\n <div class=\"primary-alert-container\">\n <div class=\"alert-text\">\n <ui-icon class=\"left-icon\" [name]=\"iconName\" size=\"24\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span [innerHTML]=\"_message\"></span>\n <a *ngIf=\"!!linkText\" [target]=\"linkTarget\" [href]=\"linkUrl\">{{ linkText }}</a>\n </div>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme === 'classic'\"\n variant=\"text\"\n [justIcon]=\"true\"\n class=\"close\"\n iconName=\"Close\"\n (buttonClickEvent)=\"dismissClick()\"\n ></ui-button>\n <ui-button\n *ngIf=\"includeDismissButton && applicationTheme !== 'classic' && alertVariant !== 'callout'\"\n class=\"right-icon\"\n [variant]=\"'icon-button'\"\n [applicationTheme]=\"applicationTheme\"\n [iconName]=\"'Close-in-line'\"\n [size]=\"'small'\"\n [tooltip]=\"closeButtonTooltip || ('COMMON.CLOSE' | uiTranslate : language)\"\n (click)=\"dismissClick()\"\n ></ui-button>\n </div>\n <div class=\"secondary-alerts-container\">\n <div class=\"alert-text\" *ngFor=\"let alert of _secondaryAlerts\">\n <ui-icon class=\"left-icon\" [name]=\"'Stop-filled'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span [innerHTML]=\"alert\"></span>\n </div>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{display:flex;width:100%;justify-content:center}:host .snackbar-container{max-width:600px}:host .alert-container,:host .snackbar-container{margin:0 auto;display:flex;padding:0 14px;border-radius:4px;align-items:center;justify-content:space-between;opacity:1;min-height:48px}:host .alert-container.fixed,:host .snackbar-container.fixed{position:fixed}:host .alert-container.static,:host .snackbar-container.static{position:relative}:host .alert-container ui-icon,:host .snackbar-container ui-icon{margin-right:14px}:host .alert-container ui-button,:host .snackbar-container ui-button{margin-left:14px}:host .alert-container ::ng-deep button.mat-mdc-unelevated-button.big,:host .snackbar-container ::ng-deep button.mat-mdc-unelevated-button.big{padding:0;min-width:auto}:host .alert-container .alert-text,:host .alert-container .snackbar-text,:host .snackbar-container .alert-text,:host .snackbar-container .snackbar-text{display:flex;align-items:center;color:#000}:host .alert-container .alert-text a,:host .alert-container .snackbar-text a,:host .snackbar-container .alert-text a,:host .snackbar-container .snackbar-text a{color:#000;text-decoration:underline;font-weight:700}:host .alert-container .alert-text a:hover,:host .alert-container .alert-text a:visited,:host .alert-container .alert-text a:focus,:host .alert-container .snackbar-text a:hover,:host .alert-container .snackbar-text a:visited,:host .alert-container .snackbar-text a:focus,:host .snackbar-container .alert-text a:hover,:host .snackbar-container .alert-text a:visited,:host .snackbar-container .alert-text a:focus,:host .snackbar-container .snackbar-text a:hover,:host .snackbar-container .snackbar-text a:visited,:host .snackbar-container .snackbar-text a:focus{text-decoration:none}:host .alert-container.success,:host .snackbar-container.success{background-color:#cbd6cb}:host .alert-container.info,:host .snackbar-container.info{background-color:#c8d7de}:host .alert-container.warning,:host .snackbar-container.warning{background-color:#f0d6bb}:host .alert-container.error,:host .snackbar-container.error{background-color:#e3c3c6}:host .alert-container[theme=dark].success,:host .alert-container[theme=light].success,:host .snackbar-container[theme=dark].success,:host .snackbar-container[theme=light].success{background-color:#aae47a}:host .alert-container[theme=dark].info,:host .alert-container[theme=light].info,:host .snackbar-container[theme=dark].info,:host .snackbar-container[theme=light].info{background-color:#d9e8ff}:host .alert-container[theme=dark].warning,:host .alert-container[theme=light].warning,:host .snackbar-container[theme=dark].warning,:host .snackbar-container[theme=light].warning{background-color:#ffe1b3}:host .alert-container[theme=dark].error,:host .alert-container[theme=light].error,:host .snackbar-container[theme=dark].error,:host .snackbar-container[theme=light].error{background-color:#ffac9a}::ng-deep .display-none{display:none!important}@media (max-width: 600px){:host .alert-container,:host .snackbar-container{padding:8px 14px}}:host .alert-container{max-width:1312px;flex-direction:column}:host .alert-container.fixed{top:0;z-index:98}:host .alert-container.full-width{width:100%;min-width:100%}:host .alert-container a{margin-left:7px}:host .alert-container[theme=dark] .alert-text,:host .alert-container[theme=light] .alert-text{padding:12px 0}:host .alert-container[theme=dark].banner,:host .alert-container[theme=light].banner{border-radius:0}:host .alert-container[theme=dark].callout,:host .alert-container[theme=light].callout{border-radius:10px}:host .alert-container[theme=dark].shadow,:host .alert-container[theme=light].shadow{box-shadow:0 4px 16px #2424240a}:host .alert-container[theme=dark] .left-icon,:host .alert-container[theme=light] .left-icon{margin-right:8px}:host .alert-container[theme=dark] .right-icon,:host .alert-container[theme=light] .right-icon{cursor:pointer;margin-left:8px;margin-right:2px}:host .alert-container .primary-alert-container{display:flex;justify-content:space-between;align-items:center;width:100%}:host .alert-container .secondary-alerts-container{padding-left:8px;display:flex;width:100%;flex-direction:column}:host .alert-container .secondary-alerts-container .alert-text{padding:4px 0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "language", "preventDefault", "tooltipPosition"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme"] }, { kind: "pipe", type: i5.UiTranslatePipe, name: "uiTranslate" }], animations: [
123
123
  trigger('openClose', [
124
124
  transition(':enter', [animate('0.2s ease-out', style({ opacity: 1 }))]),
125
125
  transition(':leave', [animate('0.2s ease-in', style({ opacity: 0 }))]),
@@ -169,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
169
169
  type: HostBinding,
170
170
  args: ['class.display-none']
171
171
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7O0FBZTVFLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDNkUsZUFBaUMsRUFDcEcsWUFBMEI7UUFEeUMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ3BHLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBT3BDOzs7Ozs7V0FNRztRQUNNLGNBQVMsR0FBaUIsU0FBUyxDQUFDO1FBRTdDOzs7Ozs7V0FNRztRQUNNLGlCQUFZLEdBQWlCLFFBQVEsQ0FBQztRQVcvQzs7Ozs7V0FLRztRQUNNLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUVyQzs7Ozs7V0FLRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFeEI7Ozs7O1dBS0c7UUFDTSxhQUFRLEdBQUksRUFBRSxDQUFDO1FBU3hCOzs7Ozs7V0FNRztRQUNNLGVBQVUsR0FBb0IsUUFBUSxDQUFDO1FBRWhE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QVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDdkUsQ0FBQztxQkFDSCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBSTVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0NBQW9DO29FQWVqRCxTQUFTO3NCQUFqQixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT08sT0FBTztzQkFBbkIsS0FBSztnQkFVRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBUUcsTUFBTTtzQkFBZCxLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBU0csa0JBQWtCO3NCQUExQixLQUFLO2dCQVNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sZUFBZTtzQkFBM0IsS0FBSztnQkFJaUMsV0FBVztzQkFBakQsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEljb25OYW1lIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pY29uL2ljb24ubW9kZWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25UaGVtZSB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi10aGVtZS5tb2RlbCc7XG5pbXBvcnQgeyBBbGVydEJhclR5cGUsIEFsZXJ0VmFyaWFudCB9IGZyb20gJy4uLy4uL3V0aWxzL2FsZXJ0LWJhci5tb2RlbCc7XG5pbXBvcnQgeyBhbGVydEJhcnNVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvYWxlcnQtYmFycy51dGlscyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9sb2NhbGl6YXRpb24vbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBMaW5rVGFyZ2V0VHlwZSB9IGZyb20gJy4vYWxlcnQtYmFubmVyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktYWxlcnQtYmFubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWJhbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LWJhbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignb3BlbkNsb3NlJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW2FuaW1hdGUoJzAuMnMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbYW5pbWF0ZSgnMC4ycyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pLFxuICAgIF0pLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplclxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFsZXJ0IEJhbm5lciB0eXBlXG4gICAqXG4gICAqIEB0eXBlIHtBbGVydEJhclR5cGV9XG4gICAqIEBkZWZhdWx0ICdzdWNjZXNzJ1xuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFsZXJ0VHlwZTogQWxlcnRCYXJUeXBlID0gJ3N1Y2Nlc3MnO1xuXG4gIC8qKlxuICAgKiBBbGVydCBCYW5uZXIgdmFyaWFudFxuICAgKlxuICAgKiBAdHlwZSB7QWxlcnRWYXJpYW50fVxuICAgKiBAZGVmYXVsdCAnYmFubmVyJ1xuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFsZXJ0VmFyaWFudDogQWxlcnRWYXJpYW50ID0gJ2Jhbm5lcic7XG5cbiAgLyoqXG4gICAqIEFsZXJ0IGJhbm5lciBtZXNzYWdlXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2V0IG1lc3NhZ2UobXNnOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9tZXNzYWdlID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIGRpc21taXNzIGJ1dHRvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgaW5jbHVkZURpc21pc3NCdXR0b24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHNoYWRvdyBvciBub3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzaGFkb3cgPSBmYWxzZTtcblxuICAvKipcbiAgICogTGluayB0ZXh0IHRoYXQgd2lsbCBhcHBlbmRlZCBhdCB0aGUgZW5kIG9mIG1lc3NhZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVGV4dD8gPSAnJztcblxuICAvKipcbiAgICogTGluayB1cmxcbiAgICpcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaW5rIHRhcmdldFxuICAgKlxuICAgKiBAdHlwZSB7QHR5cGUge0xpbmtUYXJnZXRUeXBlfX1cbiAgICogQGRlZmF1bHQgJ19ibGFuaydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVGFyZ2V0PzogTGlua1RhcmdldFR5cGUgPSAnX2JsYW5rJztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBkZWZhdWx0ICdsaWdodCdcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICAvKipcbiAgICogU2V0cyB0aGUgZnVsbCB3aWR0aFxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBpc0Z1bGxXaWR0aDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ2xvc2UgYnV0dG9uIHRvb2x0aXBcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjbG9zZUJ1dHRvblRvb2x0aXAgPSAnJztcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIHRvIGJlIHVzZWRcbiAgICogQHByb3BlcnR5IGxhbmd1YWdlXG4gICAqIEB0eXBlIHtMYW5ndWFnZX1cbiAgICogQGRlZmF1bHQgTGFuZ3VhZ2VTZXJ2aWNlLmRlZmF1bHRMYW5ndWFnZVxuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGxhbmd1YWdlID0gTGFuZ3VhZ2VTZXJ2aWNlLmRlZmF1bHRMYW5ndWFnZTtcblxuICBASW5wdXQoKSBzZXQgc2Vjb25kYXJ5QWxlcnRzKGFsZXJ0czpzdHJpbmdbXSl7XG4gICAgdGhpcy5fc2Vjb25kYXJ5QWxlcnRzID0gYWxlcnRzLm1hcCggYWxlcnQgPT4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoYWxlcnQpKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzcGxheS1ub25lJykgZ2V0IGlzRGlzbWlzc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmRpc21pc3NBbGVydEJhbm5lcjtcbiAgfVxuXG4gIGljb25OYW1lOiBJY29uTmFtZTtcbiAgdmlzaWJsZSA9IHRydWU7XG4gIGZ1bGxXaWR0aDogYm9vbGVhbjtcbiAgZml4ZWQ6IGJvb2xlYW47XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIGNzc0NsYXNzOiBzdHJpbmc7XG4gIF9tZXNzYWdlOiBTYWZlSHRtbCA9ICcnO1xuICBfc2Vjb25kYXJ5QWxlcnRzOiBTYWZlSHRtbFtdID0gW107XG4gIGRpc21pc3NBbGVydEJhbm5lciA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWNvbk5hbWUgPSBhbGVydEJhcnNVdGlsLnNldEljb24odGhpcy5hbGVydFR5cGUpO1xuICAgIHRoaXMucG9zaXRpb24gPSBhbGVydEJhcnNVdGlsLnNldFBvc2l0aW9uKHRoaXMuZml4ZWQpO1xuICAgIHRoaXMuZml4ZWQgPSB0aGlzLmFsZXJ0VmFyaWFudCA9PT0gJ2Jhbm5lcicgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5mdWxsV2lkdGggPSB0aGlzLmlzRnVsbFdpZHRoID8/IHRoaXMuYWxlcnRWYXJpYW50ID09PSAnYmFubmVyJztcbiAgICB0aGlzLmNzc0NsYXNzID0gYWxlcnRCYXJzVXRpbC5zZXRDc3NDbGFzcyh0aGlzLmZ1bGxXaWR0aCwgdGhpcy5hbGVydFR5cGUsIHRoaXMucG9zaXRpb24sIHRoaXMuYWxlcnRWYXJpYW50KTtcbiAgfVxuXG4gIC8vSGlkZSBzbmFja2JhciB3aGVuIGRpc21pc3MgYnV0dG9uIGlzIGNsaWNrZWRcbiAgZGlzbWlzc0NsaWNrKCkge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kaXNtaXNzQWxlcnRCYW5uZXIgPSB0cnVlO1xuICAgIH0sIDIwMCk7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbQG9wZW5DbG9zZV0gKm5nSWY9XCJ2aXNpYmxlXCIgY2xhc3M9XCJhbGVydC1jb250YWluZXJcIiBbYXR0ci50aGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCIgW2NsYXNzLnNoYWRvd109XCJhbGVydFZhcmlhbnQgPT09ICdjYWxsb3V0JyAmJiBzaGFkb3cgPyB0cnVlIDogZmFsc2VcIj5cblxuICA8ZGl2IGNsYXNzPVwicHJpbWFyeS1hbGVydC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxuICAgICAgPHVpLWljb24gY2xhc3M9XCJsZWZ0LWljb25cIiBbbmFtZV09XCJpY29uTmFtZVwiIHNpemU9XCIyNFwiIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj48L3VpLWljb24+XG4gICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIl9tZXNzYWdlXCI+PC9zcGFuPlxuICAgICAgPGEgKm5nSWY9XCIhIWxpbmtUZXh0XCIgW3RhcmdldF09XCJsaW5rVGFyZ2V0XCIgW2hyZWZdPVwibGlua1VybFwiPnt7IGxpbmtUZXh0IH19PC9hPlxuICAgIDwvZGl2PlxuICAgIDx1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiaW5jbHVkZURpc21pc3NCdXR0b24gJiYgYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnXCJcbiAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgIFtqdXN0SWNvbl09XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgaWNvbk5hbWU9XCJDbG9zZVwiXG4gICAgICAoYnV0dG9uQ2xpY2tFdmVudCk9XCJkaXNtaXNzQ2xpY2soKVwiXG4gICAgPjwvdWktYnV0dG9uPlxuICAgIDx1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiaW5jbHVkZURpc21pc3NCdXR0b24gJiYgYXBwbGljYXRpb25UaGVtZSAhPT0gJ2NsYXNzaWMnICYmIGFsZXJ0VmFyaWFudCAhPT0gJ2NhbGxvdXQnXCJcbiAgICAgIGNsYXNzPVwicmlnaHQtaWNvblwiXG4gICAgICBbdmFyaWFudF09XCInaWNvbi1idXR0b24nXCJcbiAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgW2ljb25OYW1lXT1cIidDbG9zZS1pbi1saW5lJ1wiXG4gICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgIFt0b29sdGlwXT1cImNsb3NlQnV0dG9uVG9vbHRpcCB8fCAoJ0NPTU1PTi5DTE9TRScgfCB1aVRyYW5zbGF0ZSA6IGxhbmd1YWdlKVwiXG4gICAgICAoY2xpY2spPVwiZGlzbWlzc0NsaWNrKClcIlxuICAgID48L3VpLWJ1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzZWNvbmRhcnktYWxlcnRzLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJhbGVydC10ZXh0XCIgKm5nRm9yPVwibGV0IGFsZXJ0IG9mIF9zZWNvbmRhcnlBbGVydHNcIj5cbiAgICAgIDx1aS1pY29uIGNsYXNzPVwibGVmdC1pY29uXCIgW25hbWVdPVwiJ1N0b3AtZmlsbGVkJ1wiIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj48L3VpLWljb24+XG4gICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImFsZXJ0XCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7O0FBZTVFLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDNkUsZUFBaUMsRUFDcEcsWUFBMEI7UUFEeUMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ3BHLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBT3BDOzs7Ozs7V0FNRztRQUNNLGNBQVMsR0FBaUIsU0FBUyxDQUFDO1FBRTdDOzs7Ozs7V0FNRztRQUNNLGlCQUFZLEdBQWlCLFFBQVEsQ0FBQztRQVcvQzs7Ozs7V0FLRztRQUNNLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUVyQzs7Ozs7V0FLRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFeEI7Ozs7O1dBS0c7UUFDTSxhQUFRLEdBQUksRUFBRSxDQUFDO1FBU3hCOzs7Ozs7V0FNRztRQUNNLGVBQVUsR0FBb0IsUUFBUSxDQUFDO1FBRWhE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QVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDdkUsQ0FBQztxQkFDSCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBSTVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0NBQW9DO29FQWVqRCxTQUFTO3NCQUFqQixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT08sT0FBTztzQkFBbkIsS0FBSztnQkFVRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBUUcsTUFBTTtzQkFBZCxLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBU0csa0JBQWtCO3NCQUExQixLQUFLO2dCQVNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sZUFBZTtzQkFBM0IsS0FBSztnQkFJaUMsV0FBVztzQkFBakQsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEljb25OYW1lIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pY29uL2ljb24ubW9kZWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25UaGVtZSB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi10aGVtZS5tb2RlbCc7XG5pbXBvcnQgeyBBbGVydEJhclR5cGUsIEFsZXJ0VmFyaWFudCB9IGZyb20gJy4uLy4uL3V0aWxzL2FsZXJ0LWJhci5tb2RlbCc7XG5pbXBvcnQgeyBhbGVydEJhcnNVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvYWxlcnQtYmFycy51dGlscyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9sb2NhbGl6YXRpb24vbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBMaW5rVGFyZ2V0VHlwZSB9IGZyb20gJy4vYWxlcnQtYmFubmVyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktYWxlcnQtYmFubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWJhbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LWJhbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignb3BlbkNsb3NlJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW2FuaW1hdGUoJzAuMnMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbYW5pbWF0ZSgnMC4ycyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pLFxuICAgIF0pLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplclxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFsZXJ0IEJhbm5lciB0eXBlXG4gICAqXG4gICAqIEB0eXBlIHtBbGVydEJhclR5cGV9XG4gICAqIEBkZWZhdWx0ICdzdWNjZXNzJ1xuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFsZXJ0VHlwZTogQWxlcnRCYXJUeXBlID0gJ3N1Y2Nlc3MnO1xuXG4gIC8qKlxuICAgKiBBbGVydCBCYW5uZXIgdmFyaWFudFxuICAgKlxuICAgKiBAdHlwZSB7QWxlcnRWYXJpYW50fVxuICAgKiBAZGVmYXVsdCAnYmFubmVyJ1xuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFsZXJ0VmFyaWFudDogQWxlcnRWYXJpYW50ID0gJ2Jhbm5lcic7XG5cbiAgLyoqXG4gICAqIEFsZXJ0IGJhbm5lciBtZXNzYWdlXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2V0IG1lc3NhZ2UobXNnOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9tZXNzYWdlID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIGRpc21taXNzIGJ1dHRvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgaW5jbHVkZURpc21pc3NCdXR0b24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHNoYWRvdyBvciBub3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzaGFkb3cgPSBmYWxzZTtcblxuICAvKipcbiAgICogTGluayB0ZXh0IHRoYXQgd2lsbCBhcHBlbmRlZCBhdCB0aGUgZW5kIG9mIG1lc3NhZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVGV4dD8gPSAnJztcblxuICAvKipcbiAgICogTGluayB1cmxcbiAgICpcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaW5rIHRhcmdldFxuICAgKlxuICAgKiBAdHlwZSB7QHR5cGUge0xpbmtUYXJnZXRUeXBlfX1cbiAgICogQGRlZmF1bHQgJ19ibGFuaydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVGFyZ2V0PzogTGlua1RhcmdldFR5cGUgPSAnX2JsYW5rJztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBkZWZhdWx0ICdsaWdodCdcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICAvKipcbiAgICogU2V0cyB0aGUgZnVsbCB3aWR0aFxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBpc0Z1bGxXaWR0aDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ2xvc2UgYnV0dG9uIHRvb2x0aXBcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjbG9zZUJ1dHRvblRvb2x0aXAgPSAnJztcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIHRvIGJlIHVzZWRcbiAgICogQHByb3BlcnR5IGxhbmd1YWdlXG4gICAqIEB0eXBlIHtMYW5ndWFnZX1cbiAgICogQGRlZmF1bHQgTGFuZ3VhZ2VTZXJ2aWNlLmRlZmF1bHRMYW5ndWFnZVxuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGxhbmd1YWdlID0gTGFuZ3VhZ2VTZXJ2aWNlLmRlZmF1bHRMYW5ndWFnZTtcblxuICBASW5wdXQoKSBzZXQgc2Vjb25kYXJ5QWxlcnRzKGFsZXJ0czpzdHJpbmdbXSl7XG4gICAgdGhpcy5fc2Vjb25kYXJ5QWxlcnRzID0gYWxlcnRzLm1hcCggYWxlcnQgPT4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoYWxlcnQpKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzcGxheS1ub25lJykgZ2V0IGlzRGlzbWlzc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmRpc21pc3NBbGVydEJhbm5lcjtcbiAgfVxuXG4gIGljb25OYW1lOiBJY29uTmFtZTtcbiAgdmlzaWJsZSA9IHRydWU7XG4gIGZ1bGxXaWR0aDogYm9vbGVhbjtcbiAgZml4ZWQ6IGJvb2xlYW47XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIGNzc0NsYXNzOiBzdHJpbmc7XG4gIF9tZXNzYWdlOiBTYWZlSHRtbCA9ICcnO1xuICBfc2Vjb25kYXJ5QWxlcnRzOiBTYWZlSHRtbFtdID0gW107XG4gIGRpc21pc3NBbGVydEJhbm5lciA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWNvbk5hbWUgPSBhbGVydEJhcnNVdGlsLnNldEljb24odGhpcy5hbGVydFR5cGUpO1xuICAgIHRoaXMucG9zaXRpb24gPSBhbGVydEJhcnNVdGlsLnNldFBvc2l0aW9uKHRoaXMuZml4ZWQpO1xuICAgIHRoaXMuZml4ZWQgPSB0aGlzLmFsZXJ0VmFyaWFudCA9PT0gJ2Jhbm5lcicgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5mdWxsV2lkdGggPSB0aGlzLmlzRnVsbFdpZHRoID8/IHRoaXMuYWxlcnRWYXJpYW50ID09PSAnYmFubmVyJztcbiAgICB0aGlzLmNzc0NsYXNzID0gYWxlcnRCYXJzVXRpbC5zZXRDc3NDbGFzcyh0aGlzLmZ1bGxXaWR0aCwgdGhpcy5hbGVydFR5cGUsIHRoaXMucG9zaXRpb24sIHRoaXMuYWxlcnRWYXJpYW50KTtcbiAgfVxuXG4gIC8vSGlkZSBzbmFja2JhciB3aGVuIGRpc21pc3MgYnV0dG9uIGlzIGNsaWNrZWRcbiAgZGlzbWlzc0NsaWNrKCkge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kaXNtaXNzQWxlcnRCYW5uZXIgPSB0cnVlO1xuICAgIH0sIDIwMCk7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbQG9wZW5DbG9zZV0gKm5nSWY9XCJ2aXNpYmxlXCIgY2xhc3M9XCJhbGVydC1jb250YWluZXJcIiBbYXR0ci50aGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCIgW2NsYXNzLnNoYWRvd109XCJhbGVydFZhcmlhbnQgPT09ICdjYWxsb3V0JyAmJiBzaGFkb3cgPyB0cnVlIDogZmFsc2VcIj5cblxuICA8ZGl2IGNsYXNzPVwicHJpbWFyeS1hbGVydC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxuICAgICAgPHVpLWljb24gY2xhc3M9XCJsZWZ0LWljb25cIiBbbmFtZV09XCJpY29uTmFtZVwiIHNpemU9XCIyNFwiIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj48L3VpLWljb24+XG4gICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIl9tZXNzYWdlXCI+PC9zcGFuPlxuICAgICAgPGEgKm5nSWY9XCIhIWxpbmtUZXh0XCIgW3RhcmdldF09XCJsaW5rVGFyZ2V0XCIgW2hyZWZdPVwibGlua1VybFwiPnt7IGxpbmtUZXh0IH19PC9hPlxuICAgIDwvZGl2PlxuICAgIDx1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiaW5jbHVkZURpc21pc3NCdXR0b24gJiYgYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnXCJcbiAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgIFtqdXN0SWNvbl09XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgaWNvbk5hbWU9XCJDbG9zZVwiXG4gICAgICAoYnV0dG9uQ2xpY2tFdmVudCk9XCJkaXNtaXNzQ2xpY2soKVwiXG4gICAgPjwvdWktYnV0dG9uPlxuICAgIDx1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiaW5jbHVkZURpc21pc3NCdXR0b24gJiYgYXBwbGljYXRpb25UaGVtZSAhPT0gJ2NsYXNzaWMnICYmIGFsZXJ0VmFyaWFudCAhPT0gJ2NhbGxvdXQnXCJcbiAgICAgIGNsYXNzPVwicmlnaHQtaWNvblwiXG4gICAgICBbdmFyaWFudF09XCInaWNvbi1idXR0b24nXCJcbiAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgW2ljb25OYW1lXT1cIidDbG9zZS1pbi1saW5lJ1wiXG4gICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgIFt0b29sdGlwXT1cImNsb3NlQnV0dG9uVG9vbHRpcCB8fCAoJ0NPTU1PTi5DTE9TRScgfCB1aVRyYW5zbGF0ZSA6IGxhbmd1YWdlKVwiXG4gICAgICAoY2xpY2spPVwiZGlzbWlzc0NsaWNrKClcIlxuICAgID48L3VpLWJ1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzZWNvbmRhcnktYWxlcnRzLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJhbGVydC10ZXh0XCIgKm5nRm9yPVwibGV0IGFsZXJ0IG9mIF9zZWNvbmRhcnlBbGVydHNcIj5cbiAgICAgIDx1aS1pY29uIGNsYXNzPVwibGVmdC1pY29uXCIgW25hbWVdPVwiJ1N0b3AtZmlsbGVkJ1wiIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj48L3VpLWljb24+XG4gICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImFsZXJ0XCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -73,7 +73,7 @@ export class AvatarComponent {
73
73
  this.editClick.emit(event);
74
74
  }
75
75
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AvatarComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: AvatarComponent, selector: "ui-avatar", inputs: { size: "size", imageUrl: "imageUrl", name: "name", tooltipText: "tooltipText", allowEdit: "allowEdit", applicationTheme: "applicationTheme", backgroundColor: "backgroundColor" }, outputs: { editClick: "editClick" }, ngImport: i0, template: "<div\n class=\"avatar-container\"\n [attr.type]=\"!imageUrl && !name ? 'icon' : 'initials'\"\n [ngClass]=\"[size]\"\n [attr.theme]=\"applicationTheme\"\n [ngStyle]=\"{ backgroundColor: backgroundAvatarColor }\"\n>\n <span *ngIf=\"name && !imageUrl\">\n {{ name | nameInitials }}\n </span>\n <img *ngIf=\"imageUrl\" [attr.src]=\"imageUrl\" [alt]=\"'profile-image'\">\n <ui-icon [color]=\"applicationTheme === 'classic' ? 'dark' : 'rebrand-black'\" [applicationTheme]=\"applicationTheme\" [size]=\"iconSize[size]\" *ngIf=\"!imageUrl && !name\" [name]=\"'User-profile'\"></ui-icon>\n <div class=\"edit-avatar\" *ngIf=\"size === avatarSize.LARGE && allowEdit\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [companyColor]=\"'black'\"\n [size]=\"'small'\"\n [iconName]=\"'Edit'\"\n [variant]=\"'icon-button'\"\n [tooltip]=\"tooltipText\"\n (buttonClickEvent)=\"onEditClick($event)\"\n ></ui-button>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host .clickable{cursor:pointer}:host .non-clickable{pointer-events:none}:host .avatar-container{font-family:Open Sans,sans-serif;font-weight:400;display:flex;justify-content:center;align-items:center;border-radius:100%;background:#cbd6cb;position:relative;-webkit-user-select:none;user-select:none}:host .avatar-container[type=icon]{background:#e0e0e0}:host .avatar-container img{width:100%;height:100%;object-fit:cover;border-radius:100%}:host .avatar-container.small{width:24px;height:24px;font-size:10px}:host .avatar-container.smallMedium{width:36px;height:36px;font-size:14px}:host .avatar-container.medium{width:48px;height:48px;font-size:20px}:host .avatar-container.large{width:120px;height:120px;font-size:50px;letter-spacing:-2}:host .avatar-container .edit-avatar{display:flex;justify-content:center;align-items:center;position:absolute;right:0;bottom:0;background:#f6f6f6;width:32px;height:32px;border-radius:100%}:host .avatar-container[theme=dark],:host .avatar-container[theme=light]{background:#e9e9e9;color:#242424}:host .avatar-container[theme=dark] .edit-avatar,:host .avatar-container[theme=light] .edit-avatar{box-shadow:0 4px 16px #24242414;background:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme"] }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "language", "preventDefault"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "pipe", type: i4.NameInitialsPipe, name: "nameInitials" }] }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: AvatarComponent, selector: "ui-avatar", inputs: { size: "size", imageUrl: "imageUrl", name: "name", tooltipText: "tooltipText", allowEdit: "allowEdit", applicationTheme: "applicationTheme", backgroundColor: "backgroundColor" }, outputs: { editClick: "editClick" }, ngImport: i0, template: "<div\n class=\"avatar-container\"\n [attr.type]=\"!imageUrl && !name ? 'icon' : 'initials'\"\n [ngClass]=\"[size]\"\n [attr.theme]=\"applicationTheme\"\n [ngStyle]=\"{ backgroundColor: backgroundAvatarColor }\"\n>\n <span *ngIf=\"name && !imageUrl\">\n {{ name | nameInitials }}\n </span>\n <img *ngIf=\"imageUrl\" [attr.src]=\"imageUrl\" [alt]=\"'profile-image'\">\n <ui-icon [color]=\"applicationTheme === 'classic' ? 'dark' : 'rebrand-black'\" [applicationTheme]=\"applicationTheme\" [size]=\"iconSize[size]\" *ngIf=\"!imageUrl && !name\" [name]=\"'User-profile'\"></ui-icon>\n <div class=\"edit-avatar\" *ngIf=\"size === avatarSize.LARGE && allowEdit\">\n <ui-button\n [applicationTheme]=\"applicationTheme\"\n [companyColor]=\"'black'\"\n [size]=\"'small'\"\n [iconName]=\"'Edit'\"\n [variant]=\"'icon-button'\"\n [tooltip]=\"tooltipText\"\n (buttonClickEvent)=\"onEditClick($event)\"\n ></ui-button>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host .clickable{cursor:pointer}:host .non-clickable{pointer-events:none}:host .avatar-container{font-family:Open Sans,sans-serif;font-weight:400;display:flex;justify-content:center;align-items:center;border-radius:100%;background:#cbd6cb;position:relative;-webkit-user-select:none;user-select:none}:host .avatar-container[type=icon]{background:#e0e0e0}:host .avatar-container img{width:100%;height:100%;object-fit:cover;border-radius:100%}:host .avatar-container.small{width:24px;height:24px;font-size:10px}:host .avatar-container.smallMedium{width:36px;height:36px;font-size:14px}:host .avatar-container.medium{width:48px;height:48px;font-size:20px}:host .avatar-container.large{width:120px;height:120px;font-size:50px;letter-spacing:-2}:host .avatar-container .edit-avatar{display:flex;justify-content:center;align-items:center;position:absolute;right:0;bottom:0;background:#f6f6f6;width:32px;height:32px;border-radius:100%}:host .avatar-container[theme=dark],:host .avatar-container[theme=light]{background:#e9e9e9;color:#242424}:host .avatar-container[theme=dark] .edit-avatar,:host .avatar-container[theme=light] .edit-avatar{box-shadow:0 4px 16px #24242414;background:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme"] }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "language", "preventDefault", "tooltipPosition"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "pipe", type: i4.NameInitialsPipe, name: "nameInitials" }] }); }
77
77
  }
78
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AvatarComponent, decorators: [{
79
79
  type: Component,